/* when in single player mode, eliminate all but the first active player */
if (!options.network && !setup.team_mode)
+ {
for(i=0; i<MAX_PLAYERS; i++)
+ {
if (stored_player[i].active)
+ {
for(j=i+1; j<MAX_PLAYERS; j++)
- stored_player[j].active = FALSE;
+ {
+ struct PlayerInfo *player = &stored_player[j];
+ int jx = player->jx, jy = player->jy;
+
+ if (player->active)
+ {
+ player->active = FALSE;
+ StorePlayer[jx][jy] = 0;
+ Feld[jx][jy] = EL_LEERRAUM;
+ }
+ }
+ }
+ }
+ }
for(i=0; i<MAX_PLAYERS; i++)
{
if (tape.recording)
{
TapeStop();
- SaveLevelTape(tape.level_nr); /* Ask to save tape */
+ SaveTape(tape.level_nr); /* Ask to save tape */
}
if ((hi_pos=NewHiScore()) >= 0)
int sieb_x = 0, sieb_y = 0;
int i, x,y, element;
byte *recorded_player_action;
- byte summarized_player_action;
+ byte summarized_player_action = 0;
if (game_status != PLAYING)
return;
scroll_x = jx-MIDPOSX + (scroll_x < jx-MIDPOSX ? -offset : +offset);
/* don't scroll over playfield boundaries */
- if (scroll_x < -1 || scroll_x > lev_fieldx - SCR_FIELDX + 2)
- scroll_x = (scroll_x < -1 ? -1 : lev_fieldx - SCR_FIELDX + 2);
+ if (scroll_x < -1 || scroll_x > lev_fieldx - SCR_FIELDX + 1)
+ scroll_x = (scroll_x < -1 ? -1 : lev_fieldx - SCR_FIELDX + 1);
/* don't scroll more than one field at a time */
scroll_x = old_scroll_x + SIGN(scroll_x - old_scroll_x);
scroll_y = jy-MIDPOSY + (scroll_y < jy-MIDPOSY ? -offset : +offset);
/* don't scroll over playfield boundaries */
- if (scroll_y < -1 || scroll_y > lev_fieldy - SCR_FIELDY + 2)
- scroll_y = (scroll_y < -1 ? -1 : lev_fieldy - SCR_FIELDY + 2);
+ if (scroll_y < -1 || scroll_y > lev_fieldy - SCR_FIELDY + 1)
+ scroll_y = (scroll_y < -1 ? -1 : lev_fieldy - SCR_FIELDY + 1);
/* don't scroll more than one field at a time */
scroll_y = old_scroll_y + SIGN(scroll_y - old_scroll_y);