X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fgame_sp%2FMurphy.c;fp=src%2Fgame_sp%2FMurphy.c;h=c0a148fd909df8866a04ef7e3a03f220f6318d8e;hp=bf590db0fd22da5b5dfe0991a440be88b764cb52;hb=2558f6e933a3b70682bd2437c00065842bd3cf2c;hpb=c30edbbd22c95dc165311601b15d5370e134fbf8 diff --git a/src/game_sp/Murphy.c b/src/game_sp/Murphy.c index bf590db0..c0a148fd 100644 --- a/src/game_sp/Murphy.c +++ b/src/game_sp/Murphy.c @@ -11,6 +11,32 @@ static boolean subMoveKillsMurphy(int si, int ax, int bl); #define LocalStretch (2) #define MurphyZoomFactor (ZoomFactor) + +// Variables that hold information about the animation sequence +static int dx1 = 0; // image/animation token +static int dx2 = 0; // an additional image position of a second sprite, for instance: yellow disk if pushed +static int MurphyDX = 0, MurphyDY = 0; // murphys move steps +static int SeqPos = 0; // index into dx() +static int ClearPos = 0; // Position to clear before blitting sprites, none=-1 +static int dxPos = 0; // field-position to draw dx(SeqPos) +static int dx2Step = 0; // position of dx2 relative to dx-position +static int dx1SequenceLength = 0; + + +void SaveEngineSnapshotValues_SP_Murphy(ListNode **buffers) +{ + SaveSnapshotBuffer(buffers, ARGS_ADDRESS_AND_SIZEOF(dx1)); + SaveSnapshotBuffer(buffers, ARGS_ADDRESS_AND_SIZEOF(dx2)); + SaveSnapshotBuffer(buffers, ARGS_ADDRESS_AND_SIZEOF(MurphyDX)); + SaveSnapshotBuffer(buffers, ARGS_ADDRESS_AND_SIZEOF(MurphyDY)); + SaveSnapshotBuffer(buffers, ARGS_ADDRESS_AND_SIZEOF(SeqPos)); + SaveSnapshotBuffer(buffers, ARGS_ADDRESS_AND_SIZEOF(ClearPos)); + SaveSnapshotBuffer(buffers, ARGS_ADDRESS_AND_SIZEOF(dxPos)); + SaveSnapshotBuffer(buffers, ARGS_ADDRESS_AND_SIZEOF(dx2Step)); + SaveSnapshotBuffer(buffers, ARGS_ADDRESS_AND_SIZEOF(dx1SequenceLength)); +} + + // ========================================================================== // SUBROUTINE // Move Murphy in any direction @@ -22,16 +48,6 @@ void subAnimateMurphy(int *si) int time1, time2; int tDeltaX, tDeltaY, tPos, Tmp; - // Variables that hold information about the animation sequence - static int dx1 = 0; // image/animation token - static int dx2 = 0; // an additional image position of a second sprite, for instance: yellow disk if pushed - static int MurphyDX = 0, MurphyDY = 0; // murphys move steps - static int SeqPos = 0; // index into dx() - static int ClearPos = 0; // Position to clear before blitting sprites, none=-1 - static int dxPos = 0; // field-position to draw dx(SeqPos) - static int dx2Step = 0; // position of dx2 relative to dx-position - static int dx1SequenceLength = 0; - ax = PlayField16[*si]; al = LowByte(ax);