X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=1b7eaa3bdb5bae22d0627adc2bb070eb2c1901c1;hb=eb51a78900b95e3f7c9c3fbc9e4cf9360b374188;hp=9b20bd43fe64a51fb22a8d0bea525b4529a2884c;hpb=2b37570006f2a25e5e5de1cedac61dda372329b0;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 9b20bd43..1b7eaa3b 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() @@ -15027,6 +15045,8 @@ void MapUndoRedoButtons() MapGadget(game_gadget[GAME_CTRL_ID_UNDO]); MapGadget(game_gadget[GAME_CTRL_ID_REDO]); + + ModifyGadget(game_gadget[GAME_CTRL_ID_PAUSE2], GDI_CHECKED, TRUE, GDI_END); } void UnmapUndoRedoButtons() @@ -15036,6 +15056,8 @@ void UnmapUndoRedoButtons() MapGameButtonsAtSamePosition(GAME_CTRL_ID_UNDO); MapGameButtonsAtSamePosition(GAME_CTRL_ID_REDO); + + ModifyGadget(game_gadget[GAME_CTRL_ID_PAUSE2], GDI_CHECKED, FALSE, GDI_END); } void MapGameButtons() @@ -15047,18 +15069,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 +15184,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;