if (game_status == GAME_MODE_PLAYING &&
level.game_engine_type == GAME_ENGINE_TYPE_EM)
{
+#if 1
+ RedrawPlayfield_EM(force_redraw);
+#else
BlitScreenToBitmap_EM(backbuffer);
+#endif
}
else if (game_status == GAME_MODE_PLAYING && !game.envelope_active)
{
int last_player_frame = player->Frame;
int frame = 0;
+#if 1
+ /* GfxElement[][] is set to the element the player is digging or collecting;
+ remove also for off-screen player if the player is not moving anymore */
+ if (IN_LEV_FIELD(jx, jy) && !player_is_moving)
+ GfxElement[jx][jy] = EL_UNDEFINED;
+#endif
+
if (!player->active || !IN_SCR_FIELD(SCREENX(last_jx), SCREENY(last_jy)))
return;
return game_frame_delay_value;
}
+int getCenteredPlayerNr_EM()
+{
+ if (game.centered_player_nr_next >= 0 &&
+ !native_em_level.ply[game.centered_player_nr_next]->alive)
+ game.centered_player_nr_next = game.centered_player_nr;
+
+ if (game.centered_player_nr != game.centered_player_nr_next)
+ game.centered_player_nr = game.centered_player_nr_next;
+
+ return game.centered_player_nr;
+}
+
+int getActivePlayers_EM()
+{
+ int num_players = 0;
+ int i;
+
+ if (!tape.playing)
+ return -1;
+
+ for (i = 0; i < MAX_PLAYERS; i++)
+ if (tape.player_participates[i])
+ num_players++;
+
+ return num_players;
+}
+
unsigned int InitRND(long seed)
{
if (level.game_engine_type == GAME_ENGINE_TYPE_EM)