yesNoBox::yesNoBox( const char* p_name, bool p_initSprites ) { initTextField( ); if( p_initSprites ) initOAMTable( true ); regularFont->printString( p_name, 8, 8, true ); swiWaitForVBlank( ); _isNamed = true; _language = SAVE::SAV->getActiveFile( ).m_options.m_language; }
yesNoBox::yesNoBox( messageBox p_box, bool p_initSprites ) { initTextField( ); if( p_initSprites ) initOAMTable( true ); _isNamed = p_box.m_isNamed; _language = SAVE::SAV->getActiveFile( ).m_options.m_language; }
yesNoBox::yesNoBox( SAVE::language p_language, bool p_initSprites ) { initTextField( ); if( p_initSprites ) initOAMTable( true ); _isNamed = false; _language = p_language; }
void Journal::handleMouseDown(int x, int y) { int val; int16 zoneNum = _vm->grid()->findZoneForPos(GS_ROOM, x, y); switch (_panelMode) { case PM_INFO_BOX: exitInfoPanelMode(); break; case PM_YES_NO: if (zoneNum == ZN_YES) { _panelMode = PM_NORMAL; int currentSlot = _currentSavePage * 10 + _currentSaveSlot; switch (_prevZoneNum) { case ZN_REVIEW_ENTRY: if (_saveDescriptions[currentSlot][0]) { _vm->graphics()->clearBobs(); _vm->display()->palFadeOut(ROOM_JOURNAL); _vm->sound()->stopSong(); _vm->loadGameState(currentSlot); _vm->display()->clearTexts(0, GAME_SCREEN_HEIGHT - 1); _quitMode = QM_RESTORE; } else { exitYesNoPanelMode(); } break; case ZN_MAKE_ENTRY: if (_textField.text[0]) { closeTextField(); _vm->saveGameState(currentSlot, _textField.text); _quitMode = QM_CONTINUE; } else { exitYesNoPanelMode(); } break; case ZN_GIVEUP: _quitMode = QM_CONTINUE; _vm->quitGame(); break; } } else if (zoneNum == ZN_NO) { exitYesNoPanelMode(); } break; case PM_NORMAL: switch (zoneNum) { case ZN_REVIEW_ENTRY: enterYesNoPanelMode(zoneNum, TXT_REVIEW_ENTRY); break; case ZN_MAKE_ENTRY: initTextField(_saveDescriptions[_currentSavePage * 10 + _currentSaveSlot]); enterYesNoPanelMode(zoneNum, TXT_MAKE_ENTRY); break; case ZN_CLOSE: _quitMode = QM_CONTINUE; break; case ZN_GIVEUP: enterYesNoPanelMode(zoneNum, TXT_GIVE_UP); break; case ZN_TEXT_SPEED: val = (x - 136) * QueenEngine::MAX_TEXT_SPEED / (266 - 136); _vm->talkSpeed(val); drawConfigPanel(); break; case ZN_SFX_TOGGLE: _vm->sound()->toggleSfx(); drawConfigPanel(); break; case ZN_MUSIC_VOLUME: val = (x - 136) * Audio::Mixer::kMaxMixerVolume / (266 - 136); _vm->sound()->setVolume(val); drawConfigPanel(); break; case ZN_DESC_1: case ZN_DESC_2: case ZN_DESC_3: case ZN_DESC_4: case ZN_DESC_5: case ZN_DESC_6: case ZN_DESC_7: case ZN_DESC_8: case ZN_DESC_9: case ZN_DESC_10: _currentSaveSlot = zoneNum - ZN_DESC_1; drawSaveSlot(); break; case ZN_PAGE_A: case ZN_PAGE_B: case ZN_PAGE_C: case ZN_PAGE_D: case ZN_PAGE_E: case ZN_PAGE_F: case ZN_PAGE_G: case ZN_PAGE_H: case ZN_PAGE_I: case ZN_PAGE_J: _currentSavePage = zoneNum - ZN_PAGE_A; drawSaveDescriptions(); break; case ZN_INFO_BOX: enterInfoPanelMode(); break; case ZN_MUSIC_TOGGLE: _vm->sound()->toggleMusic(); if (_vm->sound()->musicOn()) { _vm->sound()->playLastSong(); } else { _vm->sound()->stopSong(); } drawConfigPanel(); break; case ZN_VOICE_TOGGLE: _vm->sound()->toggleSpeech(); drawConfigPanel(); break; case ZN_TEXT_TOGGLE: _vm->subtitles(!_vm->subtitles()); drawConfigPanel(); break; } break; } update(); }