X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=f7ff3eab01a0d85cf274df89332e410030031d47;hb=0f93b05731f58802973324200cfd8aecb11a4786;hp=9b20bd43fe64a51fb22a8d0bea525b4529a2884c;hpb=2b37570006f2a25e5e5de1cedac61dda372329b0;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 9b20bd43..f7ff3eab 100644 --- a/src/game.c +++ b/src/game.c @@ -14998,7 +14998,7 @@ void FreeGameButtons() FreeGadget(game_gadget[i]); } -static void MapGameButtonsAtSamePosition(int id) +static void UnmapGameButtonsAtSamePosition(int id) { int i; @@ -15006,10 +15006,26 @@ static void MapGameButtonsAtSamePosition(int id) if (i != id && gamebutton_info[i].pos->x == gamebutton_info[id].pos->x && gamebutton_info[i].pos->y == gamebutton_info[id].pos->y) - MapGadget(game_gadget[i]); + UnmapGadget(game_gadget[i]); } -static void UnmapGameButtonsAtSamePosition(int id) +static void UnmapGameButtonsAtSamePosition_All() +{ + if (setup.show_snapshot_buttons) + { + UnmapGameButtonsAtSamePosition(GAME_CTRL_ID_SAVE); + UnmapGameButtonsAtSamePosition(GAME_CTRL_ID_PAUSE2); + UnmapGameButtonsAtSamePosition(GAME_CTRL_ID_LOAD); + } + else + { + UnmapGameButtonsAtSamePosition(GAME_CTRL_ID_STOP); + UnmapGameButtonsAtSamePosition(GAME_CTRL_ID_PAUSE); + UnmapGameButtonsAtSamePosition(GAME_CTRL_ID_PLAY); + } +} + +static void MapGameButtonsAtSamePosition(int id) { int i; @@ -15017,7 +15033,9 @@ static void UnmapGameButtonsAtSamePosition(int id) if (i != id && gamebutton_info[i].pos->x == gamebutton_info[id].pos->x && gamebutton_info[i].pos->y == gamebutton_info[id].pos->y) - UnmapGadget(game_gadget[i]); + MapGadget(game_gadget[i]); + + UnmapGameButtonsAtSamePosition_All(); } void MapUndoRedoButtons() @@ -15047,18 +15065,7 @@ void MapGameButtons() i != GAME_CTRL_ID_REDO) MapGadget(game_gadget[i]); - if (setup.show_snapshot_buttons) - { - UnmapGameButtonsAtSamePosition(GAME_CTRL_ID_SAVE); - UnmapGameButtonsAtSamePosition(GAME_CTRL_ID_PAUSE2); - UnmapGameButtonsAtSamePosition(GAME_CTRL_ID_LOAD); - } - else - { - UnmapGameButtonsAtSamePosition(GAME_CTRL_ID_STOP); - UnmapGameButtonsAtSamePosition(GAME_CTRL_ID_PAUSE); - UnmapGameButtonsAtSamePosition(GAME_CTRL_ID_PLAY); - } + UnmapGameButtonsAtSamePosition_All(); RedrawGameButtons(); } @@ -15173,7 +15180,7 @@ static void HandleGameButtonsExt(int id, int button) SendToServer_ContinuePlaying(); else #endif - TapeTogglePause(TAPE_TOGGLE_MANUAL); + TapeTogglePause(TAPE_TOGGLE_MANUAL | TAPE_TOGGLE_PLAY_PAUSE); } break;