void UpdatePause(void) { while(pause) { StartFoxFrame(); AESysFrameStart(); PlayAudio(&BackgroundSnd); if(FoxInput_KeyTriggered(VK_ESCAPE)) { pause = FALSE; } if(GetNextState() == GS_Quit || GetNextState() == GS_Restart) { pause = FALSE; } DrawPause(); EventPause(); FoxInput_Update(); SaveSettings(); SetChannelGroupVolume(EffectType, SFXVolume); SetChannelGroupVolume(MusicType, BGMVolume); UpdateSoundSystem(); AESysFrameEnd(); EndFoxFrame(); } SaveSettings(); FreePause(); }
void Input(STATE* state) { int c = 0; c = getch(); if (c == ERR) return; if (c == state->keymap[TETRIS_KEY_QUIT]) { state->status = STATUS_GAMEOVER; } else if (c == state->keymap[TETRIS_KEY_DROP]) { EventDrop(state); } else if (c == state->keymap[TETRIS_KEY_LOWER]) { EventLower(state); } else if (c == state->keymap[TETRIS_KEY_ROTATE_CW]) { EventRotate(state, 1); } else if (c == state->keymap[TETRIS_KEY_ROTATE_CCW]) { EventRotate(state, -1); } else if (c == state->keymap[TETRIS_KEY_MOVE_LEFT]) { EventMove(state, -1); } else if (c == state->keymap[TETRIS_KEY_MOVE_RIGHT]) { EventMove(state, 1); } else if (c == state->keymap[TETRIS_KEY_PAUSE]) { if (! state->game_over_f) { if (state->pause_f) EventUnpause(state); else EventPause(state); } } else if (c == state->keymap[TETRIS_KEY_RESET]) { Reset(state); } else { printw("\a"); } flushinp(); return; }