static void CallAnimation(int si, byte bl);
static boolean IsToBeAnimated(int bl);
-int *AnimationPosTable;
-byte *AnimationSubTable;
+int AnimationPosTable[SP_MAX_PLAYFIELD_SIZE];
+byte AnimationSubTable[SP_MAX_PLAYFIELD_SIZE];
// ==========================================================================
// Do game stuff
// ==========================================================================
-void subDoGameStuff()
+void subDoGameStuff(void)
{
int si, cx, dx, bl;
+ int InfotronsNeeded_last = InfotronsNeeded;
subAnimateMurphy(&MurphyPosIndex); // move Murphy in any direction
+ if (InfotronsNeeded != InfotronsNeeded_last)
+ game.snapshot.collected_item = TRUE;
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Build a database of locations and subs-to-call of animatable fields only:
// Make a snapshot from the field before the animation cycle starts.
if (KillMurphyFlag == 1 || MurphyMoveCounter == 0)
{
if (LeadOutCounter == 0 &&
- !game_sp.LevelSolved &&
- !game_sp.GameOver)
+ !game_sp.level_solved &&
+ !game_sp.game_over)
{
-#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
-#if 1
- printf("::: DoGameStuff.c: !!!!!!!!!! GAME OVER !!!!!!!!!!\n");
- printf("::: [KillMurphyFlag == %d]\n", KillMurphyFlag);
-#endif
-
- /* give Murphy some more time (LeadOutCounter) to reach the exit */
+ // give Murphy some more time (LeadOutCounter) to reach the exit
}
} // loc_g_22FB:
}