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];
// ==========================================================================
void subDoGameStuff()
{
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.
!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
-#if 1
- printf("::: DoGameStuff.c: !!!!!!!!!! GAME OVER !!!!!!!!!!\n");
- printf("::: [KillMurphyFlag == %d]\n", KillMurphyFlag);
-#endif
-
/* give Murphy some more time (LeadOutCounter) to reach the exit */
}
} // loc_g_22FB: