From: Holger Schemel Date: Fri, 9 Nov 2018 07:29:04 +0000 (+0100) Subject: moved (and renamed) global variable to game structure (AllPlayersGone) X-Git-Tag: 4.1.2.0~105 X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=commitdiff_plain;h=bf88ae3e5f7cc53fec7a06298f6632368c6c8e0c moved (and renamed) global variable to game structure (AllPlayersGone) --- diff --git a/src/events.c b/src/events.c index 73624acc..ef78d9c9 100644 --- a/src/events.c +++ b/src/events.c @@ -2039,7 +2039,7 @@ void HandleKey(Key key, int key_status) return; } - if (game_status == GAME_MODE_PLAYING && AllPlayersGone && + if (game_status == GAME_MODE_PLAYING && game.all_players_gone && (key == KSYM_Return || key == setup.shortcut.toggle_pause)) { GameEnd(); @@ -2425,7 +2425,7 @@ void HandleJoystick(void) newbutton = ((joy & JOY_BUTTON) != 0); #endif - if (newbutton && AllPlayersGone) + if (newbutton && game.all_players_gone) { GameEnd(); diff --git a/src/game.c b/src/game.c index 45ad3136..c8c5de48 100644 --- a/src/game.c +++ b/src/game.c @@ -3558,7 +3558,7 @@ void InitGame(void) ScrollStepSize = 0; // will be correctly initialized by ScrollScreen() - AllPlayersGone = FALSE; + game.all_players_gone = FALSE; game.LevelSolved = FALSE; game.GameOver = FALSE; @@ -4573,7 +4573,7 @@ void GameWon(void) if (ExitX >= 0 && ExitY >= 0) // local player has left the level { // close exit door after last player - if ((AllPlayersGone && + if ((game.all_players_gone && (Feld[ExitX][ExitY] == EL_EXIT_OPEN || Feld[ExitX][ExitY] == EL_SP_EXIT_OPEN || Feld[ExitX][ExitY] == EL_STEEL_EXIT_OPEN)) || @@ -6813,7 +6813,7 @@ static void TurnRoundExt(int x, int y) { int attr_x = -1, attr_y = -1; - if (AllPlayersGone) + if (game.all_players_gone) { attr_x = ExitX; attr_y = ExitY; @@ -6877,13 +6877,13 @@ static void TurnRoundExt(int x, int y) MovDir[x][y] = MV_NONE; if (attr_x < x) - MovDir[x][y] |= (AllPlayersGone ? MV_RIGHT : MV_LEFT); + MovDir[x][y] |= (game.all_players_gone ? MV_RIGHT : MV_LEFT); else if (attr_x > x) - MovDir[x][y] |= (AllPlayersGone ? MV_LEFT : MV_RIGHT); + MovDir[x][y] |= (game.all_players_gone ? MV_LEFT : MV_RIGHT); if (attr_y < y) - MovDir[x][y] |= (AllPlayersGone ? MV_DOWN : MV_UP); + MovDir[x][y] |= (game.all_players_gone ? MV_DOWN : MV_UP); else if (attr_y > y) - MovDir[x][y] |= (AllPlayersGone ? MV_UP : MV_DOWN); + MovDir[x][y] |= (game.all_players_gone ? MV_UP : MV_DOWN); if (element == EL_ROBOT) { @@ -7182,7 +7182,7 @@ static void TurnRoundExt(int x, int y) int newx, newy; boolean move_away = (move_pattern == MV_AWAY_FROM_PLAYER); - if (AllPlayersGone) + if (game.all_players_gone) { attr_x = ExitX; attr_y = ExitY; @@ -7950,7 +7950,8 @@ static void StartMoving(int x, int y) game.friends_still_needed--; if (!game.friends_still_needed && - !game.GameOver && AllPlayersGone) + !game.GameOver && + game.all_players_gone) LevelSolved(); return; @@ -9096,7 +9097,8 @@ static void CheckExit(int x, int y) return; } - if (AllPlayersGone) // do not re-open exit door closed after last player + // do not re-open exit door closed after last player + if (game.all_players_gone) return; Feld[x][y] = EL_EXIT_OPENING; @@ -9120,7 +9122,8 @@ static void CheckExitEM(int x, int y) return; } - if (AllPlayersGone) // do not re-open exit door closed after last player + // do not re-open exit door closed after last player + if (game.all_players_gone) return; Feld[x][y] = EL_EM_EXIT_OPENING; @@ -9144,7 +9147,8 @@ static void CheckExitSteel(int x, int y) return; } - if (AllPlayersGone) // do not re-open exit door closed after last player + // do not re-open exit door closed after last player + if (game.all_players_gone) return; Feld[x][y] = EL_STEEL_EXIT_OPENING; @@ -9168,7 +9172,8 @@ static void CheckExitSteelEM(int x, int y) return; } - if (AllPlayersGone) // do not re-open exit door closed after last player + // do not re-open exit door closed after last player + if (game.all_players_gone) return; Feld[x][y] = EL_EM_STEEL_EXIT_OPENING; @@ -9189,7 +9194,8 @@ static void CheckExitSP(int x, int y) return; } - if (AllPlayersGone) // do not re-open exit door closed after last player + // do not re-open exit door closed after last player + if (game.all_players_gone) return; Feld[x][y] = EL_SP_EXIT_OPENING; @@ -11123,11 +11129,11 @@ static void CheckLevelSolved(void) game_em.game_over = TRUE; - AllPlayersGone = TRUE; + game.all_players_gone = TRUE; } if (game_em.game_over) // game lost - AllPlayersGone = TRUE; + game.all_players_gone = TRUE; } else if (level.game_engine_type == GAME_ENGINE_TYPE_SP) { @@ -11138,11 +11144,11 @@ static void CheckLevelSolved(void) game_sp.game_over = TRUE; - AllPlayersGone = TRUE; + game.all_players_gone = TRUE; } if (game_sp.game_over) // game lost - AllPlayersGone = TRUE; + game.all_players_gone = TRUE; } else if (level.game_engine_type == GAME_ENGINE_TYPE_MM) { @@ -11153,11 +11159,11 @@ static void CheckLevelSolved(void) game_mm.game_over = TRUE; - AllPlayersGone = TRUE; + game.all_players_gone = TRUE; } if (game_mm.game_over) // game lost - AllPlayersGone = TRUE; + game.all_players_gone = TRUE; } } @@ -11208,7 +11214,7 @@ static void CheckLevelTime(void) KillPlayer(&stored_player[i]); } } - else if (game.no_time_limit && !AllPlayersGone) // level w/o time limit + else if (game.no_time_limit && !game.all_players_gone) { game_panel_controls[GAME_PANEL_TIME].value = TimePlayed; } @@ -11333,7 +11339,7 @@ static void GameActionsExt(void) if (game.LevelSolved && !game.LevelSolved_GameEnd) GameWon(); - if (AllPlayersGone && !TAPE_IS_STOPPED(tape)) + if (game.all_players_gone && !TAPE_IS_STOPPED(tape)) TapeStop(); if (game_status != GAME_MODE_PLAYING) // status might have changed @@ -12745,7 +12751,7 @@ void ScrollPlayer(struct PlayerInfo *player, int mode) for (i = 0; i < MAX_PLAYERS; i++) KillPlayer(&stored_player[i]); } - else if (game.no_time_limit && !AllPlayersGone) // level w/o time limit + else if (game.no_time_limit && !game.all_players_gone) { game_panel_controls[GAME_PANEL_TIME].value = TimePlayed; @@ -13407,7 +13413,7 @@ void BuryPlayer(struct PlayerInfo *player) player->buried = TRUE; - if (AllPlayersGone) + if (game.all_players_gone) game.GameOver = TRUE; } @@ -13431,7 +13437,7 @@ void RemovePlayer(struct PlayerInfo *player) if (!found) { - AllPlayersGone = TRUE; + game.all_players_gone = TRUE; game.GameOver = TRUE; } @@ -14970,7 +14976,7 @@ void RequestQuitGameExt(boolean skip_request, boolean quick_quit, char *message) void RequestQuitGame(boolean ask_if_really_quit) { boolean quick_quit = (!ask_if_really_quit || level_editor_test_game); - boolean skip_request = AllPlayersGone || quick_quit; + boolean skip_request = game.all_players_gone || quick_quit; RequestQuitGameExt(skip_request, quick_quit, "Do you really want to quit the game?"); @@ -15245,8 +15251,6 @@ static ListNode *SaveEngineSnapshotBuffers(void) SaveSnapshotBuffer(&buffers, ARGS_ADDRESS_AND_SIZEOF(ScrollStepSize)); - SaveSnapshotBuffer(&buffers, ARGS_ADDRESS_AND_SIZEOF(AllPlayersGone)); - SaveSnapshotBuffer(&buffers, ARGS_ADDRESS_AND_SIZEOF(AmoebaCnt)); SaveSnapshotBuffer(&buffers, ARGS_ADDRESS_AND_SIZEOF(AmoebaCnt2)); diff --git a/src/game.h b/src/game.h index 602922bd..aed0ce04 100644 --- a/src/game.h +++ b/src/game.h @@ -204,6 +204,8 @@ struct GameInfo int players_still_needed; int friends_still_needed; + boolean all_players_gone; + // values for the new EMC elements int lenses_time_left; int magnify_time_left; diff --git a/src/game_mm/mm_main.h b/src/game_mm/mm_main.h index cc93b922..d8c8c42d 100644 --- a/src/game_mm/mm_main.h +++ b/src/game_mm/mm_main.h @@ -235,7 +235,6 @@ extern int BX1, BY1, BX2, BY2; extern int SBX_Left, SBX_Right; extern int SBY_Upper, SBY_Lower; extern int ZX, ZY, ExitX, ExitY; -extern int AllPlayersGone; extern int TimeFrames, TimePlayed, TimeLeft; extern boolean SiebAktiv; extern int SiebCount; diff --git a/src/main.c b/src/main.c index c6721602..1d3a8059 100644 --- a/src/main.c +++ b/src/main.c @@ -128,7 +128,6 @@ int SBX_Left, SBX_Right; int SBY_Upper, SBY_Lower; int ZX, ZY; int ExitX, ExitY; -int AllPlayersGone; int TimeFrames, TimePlayed, TimeLeft, TapeTime; diff --git a/src/main.h b/src/main.h index b645a73c..f4a738bc 100644 --- a/src/main.h +++ b/src/main.h @@ -3630,7 +3630,6 @@ extern int SBX_Left, SBX_Right; extern int SBY_Upper, SBY_Lower; extern int ZX, ZY; extern int ExitX, ExitY; -extern int AllPlayersGone; extern int TimeFrames, TimePlayed, TimeLeft, TapeTime; diff --git a/src/tools.c b/src/tools.c index 251bfbe0..5adfc325 100644 --- a/src/tools.c +++ b/src/tools.c @@ -4581,7 +4581,7 @@ static boolean RequestDoor(char *text, unsigned int req_state) // pause network game while waiting for request to answer if (network.enabled && game_status == GAME_MODE_PLAYING && - !AllPlayersGone && + !game.all_players_gone && req_state & REQUEST_WAIT_FOR_INPUT) SendToServer_PausePlaying(); @@ -4722,7 +4722,7 @@ static boolean RequestDoor(char *text, unsigned int req_state) // continue network game after request if (network.enabled && game_status == GAME_MODE_PLAYING && - !AllPlayersGone && + !game.all_players_gone && req_state & REQUEST_WAIT_FOR_INPUT) SendToServer_ContinuePlaying(); @@ -4749,7 +4749,7 @@ static boolean RequestEnvelope(char *text, unsigned int req_state) // pause network game while waiting for request to answer if (network.enabled && game_status == GAME_MODE_PLAYING && - !AllPlayersGone && + !game.all_players_gone && req_state & REQUEST_WAIT_FOR_INPUT) SendToServer_PausePlaying(); @@ -4807,7 +4807,7 @@ static boolean RequestEnvelope(char *text, unsigned int req_state) // continue network game after request if (network.enabled && game_status == GAME_MODE_PLAYING && - !AllPlayersGone && + !game.all_players_gone && req_state & REQUEST_WAIT_FOR_INPUT) SendToServer_ContinuePlaying();