X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=fb6691a72849769c94eacd0015a628acb54ca1af;hb=f2ddf39ad776c01f9b8a57818fe3ea9777649778;hp=7f98027c8fd1eab482f50346680d6d6fc4ddebbc;hpb=bfe3ef29da6539dffdd8674a67c3144f6a3cdddc;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 7f98027c..fb6691a7 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,16 @@ void InitGame() if (CheckIfGlobalBorderHasChanged()) fade_mask = REDRAW_ALL; - FadeOut(fade_mask); + FadeSoundsAndMusic(); - OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); + ExpireSoundLoops(TRUE); + + FadeOut(fade_mask); ClearField(); + OpenDoor(GetDoorState() | DOOR_NO_DELAY | DOOR_FORCE_REDRAW); + DrawCompleteVideoDisplay(); InitGameEngine(); @@ -4422,7 +4426,7 @@ void GameEnd() if (level_editor_test_game) { - game_status = GAME_MODE_MAIN; + SetGameStatus(GAME_MODE_MAIN); DrawMainMenu(); @@ -4431,7 +4435,7 @@ void GameEnd() if (!local_player->LevelSolved_SaveScore) { - game_status = GAME_MODE_MAIN; + SetGameStatus(GAME_MODE_MAIN); DrawMainMenu(); @@ -4450,7 +4454,7 @@ void GameEnd() if ((hi_pos = NewHiScore()) >= 0) { - game_status = GAME_MODE_SCORES; + SetGameStatus(GAME_MODE_SCORES); DrawHallOfFame(hi_pos); @@ -4462,7 +4466,7 @@ void GameEnd() } else { - game_status = GAME_MODE_MAIN; + SetGameStatus(GAME_MODE_MAIN); if (raise_level) { @@ -11097,8 +11101,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 +11141,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 +14474,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(); } @@ -14847,47 +14855,47 @@ static struct } gamebutton_info[NUM_GAME_BUTTONS] = { { - IMG_GAME_BUTTON_GFX_STOP, &game.button.stop, + IMG_GFX_GAME_BUTTON_STOP, &game.button.stop, GAME_CTRL_ID_STOP, "stop game" }, { - IMG_GAME_BUTTON_GFX_PAUSE, &game.button.pause, + IMG_GFX_GAME_BUTTON_PAUSE, &game.button.pause, GAME_CTRL_ID_PAUSE, "pause game" }, { - IMG_GAME_BUTTON_GFX_PLAY, &game.button.play, + IMG_GFX_GAME_BUTTON_PLAY, &game.button.play, GAME_CTRL_ID_PLAY, "play game" }, { - IMG_GAME_BUTTON_GFX_UNDO, &game.button.undo, + IMG_GFX_GAME_BUTTON_UNDO, &game.button.undo, GAME_CTRL_ID_UNDO, "undo step" }, { - IMG_GAME_BUTTON_GFX_REDO, &game.button.redo, + IMG_GFX_GAME_BUTTON_REDO, &game.button.redo, GAME_CTRL_ID_REDO, "redo step" }, { - IMG_GAME_BUTTON_GFX_SAVE, &game.button.save, + IMG_GFX_GAME_BUTTON_SAVE, &game.button.save, GAME_CTRL_ID_SAVE, "save game" }, { - IMG_GAME_BUTTON_GFX_PAUSE2, &game.button.pause2, + IMG_GFX_GAME_BUTTON_PAUSE2, &game.button.pause2, GAME_CTRL_ID_PAUSE2, "pause game" }, { - IMG_GAME_BUTTON_GFX_LOAD, &game.button.load, + IMG_GFX_GAME_BUTTON_LOAD, &game.button.load, GAME_CTRL_ID_LOAD, "load game" }, { - IMG_GAME_BUTTON_GFX_SOUND_MUSIC, &game.button.sound_music, + IMG_GFX_GAME_BUTTON_SOUND_MUSIC, &game.button.sound_music, SOUND_CTRL_ID_MUSIC, "background music on/off" }, { - IMG_GAME_BUTTON_GFX_SOUND_LOOPS, &game.button.sound_loops, + IMG_GFX_GAME_BUTTON_SOUND_LOOPS, &game.button.sound_loops, SOUND_CTRL_ID_LOOPS, "sound loops on/off" }, { - IMG_GAME_BUTTON_GFX_SOUND_SIMPLE, &game.button.sound_simple, + IMG_GFX_GAME_BUTTON_SOUND_SIMPLE, &game.button.sound_simple, SOUND_CTRL_ID_SIMPLE, "normal sounds on/off" } };