projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
separated graphic and control definitions for global animations
[rocksndiamonds.git]
/
src
/
game_sp
/
DoGameStuff.c
diff --git
a/src/game_sp/DoGameStuff.c
b/src/game_sp/DoGameStuff.c
index d41da8c37157b22de6391797f33366ae4b652282..88434a90dbc64112c2f4b04002fbd5df2572d9b7 100644
(file)
--- a/
src/game_sp/DoGameStuff.c
+++ b/
src/game_sp/DoGameStuff.c
@@
-4,30
+4,26
@@
#include "DoGameStuff.h"
#include "DoGameStuff.h"
+
static void CallAnimation(int si, byte bl);
static boolean IsToBeAnimated(int bl);
static void CallAnimation(int si, byte bl);
static boolean IsToBeAnimated(int bl);
-// static char *VB_Name = "modDoGameStuff";
-
-// --- Option Explicit
+int AnimationPosTable[SP_MAX_PLAYFIELD_SIZE];
+byte AnimationSubTable[SP_MAX_PLAYFIELD_SIZE];
-int *AnimationPosTable;
-byte *AnimationSubTable;
// ==========================================================================
// SUBROUTINE
// Do game stuff
// ==========================================================================
// ==========================================================================
// SUBROUTINE
// Do game stuff
// ==========================================================================
-
int
subDoGameStuff()
+
void
subDoGameStuff()
{
{
- int subDoGameStuff;
-
int si, cx, dx, bl;
subAnimateMurphy(&MurphyPosIndex); // move Murphy in any direction
int si, cx, dx, bl;
subAnimateMurphy(&MurphyPosIndex); // move Murphy in any direction
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
+ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Build a database of locations and subs-to-call of animatable fields only:
// Make a snapshot from the field before the animation cycle starts.
// first and last line are not animated.
// Build a database of locations and subs-to-call of animatable fields only:
// Make a snapshot from the field before the animation cycle starts.
// first and last line are not animated.
@@
-52,7
+48,7
@@
int subDoGameStuff()
}
while (0 < cx); // locloop_g_2282' until all lines scanned(not top- and bottom edge)
}
while (0 < cx); // locloop_g_2282' until all lines scanned(not top- and bottom edge)
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
+ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Now use the database to animate all animatables the fastest way.
// All the other fields are not checked anymore: those have no database entry.
// The field from before animation is frozen in the database in order not to
// Now use the database to animate all animatables the fastest way.
// All the other fields are not checked anymore: those have no database entry.
// The field from before animation is frozen in the database in order not to
@@
-66,49
+62,22
@@
int subDoGameStuff()
} // loop locloop_g_22B8 ' until all animatables done
}
} // loop locloop_g_22B8 ' until all animatables done
}
-#if 0
- printf("::: DoGameStuff.c: KillMurphyFlag == %d [%d]\n",
- KillMurphyFlag, MurphyMoveCounter);
-#endif
-
// All animations are done now
// All animations are done now
- // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
+ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
if (KillMurphyFlag == 1 || MurphyMoveCounter == 0)
{
if (KillMurphyFlag == 1 || MurphyMoveCounter == 0)
{
-#if 1
- if (LeadOutCounter == 0 && !game_sp_info.LevelSolved)
-#else
- if (LeadOutCounter == 0)
-#endif
+ if (LeadOutCounter == 0 &&
+ !game_sp.LevelSolved &&
+ !game_sp.GameOver)
{
{
-#if 1
- printf("::: DoGameStuff.c: killing murphy [%d] ...\n", KillMurphyFlag);
-#endif
+ KillMurphyFlag = 0; // no more "kill Murphy"
+ ExplodeFieldSP(MurphyExplodePos); // Explode
+ LeadOutCounter = 0x40; // quit: start lead-out
- KillMurphyFlag = 0; // no more "kill Murphy"
- ExplodeFieldSP(MurphyExplodePos); // Explode
- LeadOutCounter = 0x40; // quit: start lead-out
+ /* give Murphy some more time (LeadOutCounter) to reach the exit */
}
}
-
-#if 1
- if (KillMurphyFlag == 1 &&
- !game_sp_info.LevelSolved &&
- !game_sp_info.GameOver)
- {
-#if 1
- printf("::: DoGameStuff.c: !!!!!!!!!! GAME OVER !!!!!!!!!!\n");
-#endif
-
- game_sp_info.GameOver = TRUE;
- }
-#endif
-
-
} // loc_g_22FB:
} // loc_g_22FB:
-
-
- return subDoGameStuff;
-} // subDoGameStuff
+}
static boolean IsToBeAnimated(int bl)
{
static boolean IsToBeAnimated(int bl)
{