スリム化小ネタ

整数型のdupされた連続領域(たとえばY座標ey、X座標ex、方向ew、速度ev)を
一時的に保管し、条件によって元に戻すような処理。

dim dmy,4
(中略)
memcpy dmy,ey,32
…Y座標ey、X座標ex、方向ew、速度evから移動後の座標、速度、向きを求める処理。
if 進めるかどうかのチェック {
  memcpy ey,dmy,32 ; 進めないなら4値とも元に戻したい
}

連続領域であることを利用してeyから32バイト分を別途用意した配列dmyにCopyしていますが、
memcpy dmy,ey,32 は dmy=ey,ex,ew,ev とすればdimが不要になる分、サイズ削減できます。
メリットとして「進めないなら座標と向きは元に戻すが速度を0にしたい」という場合は
dmy=ey,ex,ew,0 としておけばOK。
また応用として「進めないときの速度は、キャラクター属性ezが1なら停止、0ならバック」
としたいときは、dmy=ey,ex,ew,(ez-1)*ev のように書けます。