示例#1
0
文件: yesNoBox.cpp 项目: PH111P/perm2
    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;
    }
示例#2
0
文件: yesNoBox.cpp 项目: PH111P/perm2
 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;
 }
示例#3
0
文件: yesNoBox.cpp 项目: PH111P/perm2
 yesNoBox::yesNoBox( SAVE::language p_language, bool p_initSprites ) {
     initTextField( );
     if( p_initSprites ) initOAMTable( true );
     _isNamed  = false;
     _language = p_language;
 }
示例#4
0
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();
}