static boolean SCSaveGame(int option) { char *ptr; if (!FileMenuKeySteal) { int x, y; FileMenuKeySteal = true; // We need to activate the text input interface to type the save // game name: x = SaveMenu.x + 1; y = SaveMenu.y + 1 + option * ITEM_HEIGHT; I_StartTextInput(x, y, x + 190, y + ITEM_HEIGHT - 2); M_StringCopy(oldSlotText, SlotText[option], sizeof(oldSlotText)); ptr = SlotText[option]; while (*ptr) { ptr++; } *ptr = '['; *(ptr + 1) = 0; SlotStatus[option]++; currentSlot = option; slotptr = ptr - SlotText[option]; return false; } else { G_SaveGame(option, SlotText[option]); FileMenuKeySteal = false; I_StopTextInput(); MN_DeactivateMenu(); } BorderNeedRefresh = true; if (quicksave == -1) { quicksave = option + 1; players[consoleplayer].message = NULL; players[consoleplayer].messageTics = 1; } return true; }
void MN_DeactivateMenu(void) { if (CurrentMenu != NULL) { CurrentMenu->oldItPos = CurrentItPos; } MenuActive = false; if (FileMenuKeySteal) { I_StopTextInput(); } if (!netgame) { paused = false; } S_StartSound(NULL, sfx_dorcls); if (soundchanged) { S_SetMaxVolume(true); //recalc the sound curve soundchanged = false; } players[consoleplayer].message = NULL; players[consoleplayer].messageTics = 1; }
static void StopChatInput(void) { chat_on = false; I_StopTextInput(); }