X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgame.c;h=29303a7e2f75eb069f2d18bb80d21beae9f9b3a3;hb=4239ba2adc93afb81230b1a4ea42e7eaf68452c6;hp=7f98027c8fd1eab482f50346680d6d6fc4ddebbc;hpb=ff45a13c41aeeb995cb556c3f3b7f7be477fc214;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 7f98027c..29303a7e 100644 --- a/src/game.c +++ b/src/game.c @@ -2446,7 +2446,7 @@ void DisplayGameControlValues() /* redraw game control buttons */ RedrawGameButtons(); - game_status = GAME_MODE_PSEUDO_PANEL; + SetGameStatus(GAME_MODE_PSEUDO_PANEL); for (i = 0; i < NUM_GAME_PANEL_CONTROLS; i++) { @@ -2574,7 +2574,7 @@ void DisplayGameControlValues() redraw_mask |= REDRAW_DOOR_1; } - game_status = GAME_MODE_PLAYING; + SetGameStatus(GAME_MODE_PLAYING); } void UpdateAndDisplayGameControlValues() @@ -3097,11 +3097,11 @@ void InitGame() // required here to update video display before fading (FIX THIS) DrawMaskedBorder(REDRAW_DOOR_2); - game_status = GAME_MODE_PLAYING; - if (!game.restart_level) CloseDoor(DOOR_CLOSE_1); + SetGameStatus(GAME_MODE_PLAYING); + /* needed if different viewport properties defined for playing */ ChangeViewportPropertiesIfNeeded(); @@ -3113,12 +3113,14 @@ void InitGame() if (CheckIfGlobalBorderHasChanged()) fade_mask = REDRAW_ALL; - FadeOut(fade_mask); + ExpireSoundLoops(TRUE); - OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); + FadeOut(fade_mask); ClearField(); + OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); + DrawCompleteVideoDisplay(); InitGameEngine(); @@ -4422,7 +4424,7 @@ void GameEnd() if (level_editor_test_game) { - game_status = GAME_MODE_MAIN; + SetGameStatus(GAME_MODE_MAIN); DrawMainMenu(); @@ -4431,7 +4433,7 @@ void GameEnd() if (!local_player->LevelSolved_SaveScore) { - game_status = GAME_MODE_MAIN; + SetGameStatus(GAME_MODE_MAIN); DrawMainMenu(); @@ -4450,7 +4452,7 @@ void GameEnd() if ((hi_pos = NewHiScore()) >= 0) { - game_status = GAME_MODE_SCORES; + SetGameStatus(GAME_MODE_SCORES); DrawHallOfFame(hi_pos); @@ -4462,7 +4464,7 @@ void GameEnd() } else { - game_status = GAME_MODE_MAIN; + SetGameStatus(GAME_MODE_MAIN); if (raise_level) { @@ -11097,8 +11099,11 @@ void GameActions() SendToServer_MovePlayer(summarized_player_action); #endif + // summarize all actions at local players mapped input device position + // (this allows using different input devices in single player mode) if (!options.network && !game.team_mode) - local_player->effective_action = summarized_player_action; + stored_player[map_player_action[local_player->index_nr]].effective_action = + summarized_player_action; if (tape.recording && setup.team_mode && @@ -11134,6 +11139,7 @@ void GameActions() #if USE_NEW_PLAYER_ASSIGNMENTS // !!! also map player actions in single player mode !!! // if (game.team_mode) + if (1) { byte mapped_action[MAX_PLAYERS]; @@ -14466,7 +14472,7 @@ void RequestQuitGameExt(boolean skip_request, boolean quick_quit, char *message) if (quick_quit) FadeSkipNextFadeIn(); - game_status = GAME_MODE_MAIN; + SetGameStatus(GAME_MODE_MAIN); DrawMainMenu(); }