diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/hdb/menu.cpp | 373 | ||||
-rw-r--r-- | engines/hdb/menu.h | 142 |
2 files changed, 314 insertions, 201 deletions
diff --git a/engines/hdb/menu.cpp b/engines/hdb/menu.cpp index b93b1b7e94..9785db1638 100644 --- a/engines/hdb/menu.cpp +++ b/engines/hdb/menu.cpp @@ -37,6 +37,141 @@ namespace HDB { Menu::Menu() { + + if (g_hdb->isPPC()) { + _menuX = 18 * 8; + _menuY = 16; + _menuItemWidth = 88; + _menuItemHeight = 40; + _mResumeY = 48 * 4; + _mQuitY = 48 * 3; + _mOptionsY = 48 * 2; + _mLoadY = 48 * 1; + _mControlsY = 160; + _menuExitXLeft = 60; + _menuExitY = (g_hdb->_screenHeight - 80); + _menuExitYTop = 48; + _menuVortSaveY = 220; + _menuVortSaveX = 76; + _mRocketX = 0; + _mRocketY = 10; + _mRocketYBottom = 21 * 8; + _mRocketEXHX = 0; + _mRocketEXHX2 = 0; + _mTitleY = 27 * 8; + _oohOhhX = 88; + _oohOhhY = 128; + _newGameX = 20; + _newGameX2 = _newGameX + 50; + _modePuzzleY = 70; + _modeActionY = 160; + _optionsX = 2 * 8; + _optionsY = 6 * 8; + _vortSaveX = 80; + _vortSaveTextX = _vortSaveX + 40; + _vortSaveY = 220; + _saveSlotX = 8; + _saveSlotY = 68; + _quitX = 0; + _quitY = 0; + _quitYesX1 = (146 - 16); + _quitYesX2 = (211 - 16); + _quitYesY1 = (287); + _quitYesY2 = (312); + _quitNoX1 = (65 - 16); + _quitNoX2 = (130 - 16); + _quitNoY1 = (287); + _quitNoY2 = (312); + _controlX = 0; + _controlY = 0; + _controlUpX = 0; + _controlUpY = 0; + _controlDownX = 0; + _controlDownY = 0; + _controlLeftX = 0; + _controlLeftY = 0; + _controlRightX = 0; + _controlRightY = 0; + _controlUseX = 0; + _controlUseY = 0; + _controlWidth = 0; + _controlHeight = 0; + _assignX = 0; + _assignY = 0; + _backoutX = 0; + _backoutY = 0; + _warpBackoutX = (g_hdb->_screenWidth - _menuBackoutGfx->_width); + _warpBackoutY = (g_hdb->_screenHeight - _menuBackoutGfx->_height); + _warpX = 0; + _warpY = 4; + } else { + _menuX = 48 * 8; + _menuY = 80; + _menuItemWidth = 88; + _menuItemHeight = 40; + _mResumeY = 48 * 4; + _mQuitY = 48 * 3; + _mOptionsY = 48 * 2; + _mLoadY = 48 * 1; + _mControlsY = 270; + _menuExitXLeft = 60; + _menuExitY = (g_hdb->_screenHeight - 80); + _menuExitYTop = 48; + _menuVortSaveY = 220; + _menuVortSaveX = 76; + _mRocketX = 18 * 8; + _mRocketY = 48; + _mRocketYBottom = 28 * 8; + _mRocketEXHX = 6 * 8 - 4; + _mRocketEXHX2 = 11 * 8 - 4; + _mTitleY = 34 * 8; + _oohOhhX = 256; + _oohOhhY = 224; + _newGameX = 220; + _newGameX2 = _newGameX + 50; + _modePuzzleY = 130; + _modeActionY = 220; + _optionsX = 26 * 8; + _optionsY = 10 * 8; + _vortSaveX = (200 - 44); + _vortSaveTextX = _vortSaveX + 40; + _vortSaveY = 72; + _saveSlotX = 200; + _saveSlotY = 80; + _quitX = 0; + _quitY = 0; + _quitYesX1 = (30 * 8 + _quitX); + _quitYesX2 = (38 * 8 + 4 + _quitX); + _quitYesY1 = (50 * 8 + _quitY); + _quitYesY2 = (53 * 8 + 4 + _quitY); + _quitNoX1 = (41 * 8 + _quitX); + _quitNoX2 = (49 * 8 + 4 + _quitX); + _quitNoY1 = (50 * 8 + _quitY); + _quitNoY2 = (53 * 8 + 4 + _quitY); + _controlX = 60; + _controlY = 40; + _controlUpX = (276 + _controlX); + _controlUpY = (114 + _controlY); + _controlDownX = (276 + _controlX); + _controlDownY = (129 + _controlY); + _controlLeftX = (396 + _controlX); + _controlLeftY = (114 + _controlY); + _controlRightX = (396 + _controlX); + _controlRightY = (129 + _controlY); + _controlUseX = (330 + _controlX); + _controlUseY = (209 + _controlY); + _controlWidth = 32; + _controlHeight = 16; + _assignX = (_controlX + 20 * 8); + _assignY = (_controlY + 150); + _backoutX = 0; + _backoutY = g_hdb->_screenHeight - 32; + _warpBackoutX = _backoutX; + _warpBackoutY = _backoutY; + _warpX = 214; + _warpY = 160; + } + _starWarp = 0; _rocketEx = 0; _titleActive = false; @@ -46,8 +181,8 @@ Menu::Menu() { _newgameActive = false; _warpActive = false; _optionsScrolling = false; - _optionsScrollX = kMenuX; - _rocketX = kMRocketX; + _optionsScrollX = _menuX; + _rocketX = _mRocketX; _sayHDB = false; _menuKey = 0; @@ -125,10 +260,6 @@ Menu::Menu() { _versionGfx = NULL; _warpGfx = NULL; - - _menuExitY = g_hdb->_screenHeight - 80; - _backoutY = g_hdb->_screenHeight - 32; - _warpBackoutY = _backoutY; } Menu::~Menu() { @@ -366,10 +497,10 @@ void Menu::startMenu() { _nebulaYVel = g_hdb->_rnd->getRandomNumber(9) + 2; } - _optionsScrollX = kMenuX; + _optionsScrollX = _menuX; _oBannerY = -48; - _rocketY = kMRocketY; - _rocketX = kMRocketX; + _rocketY = _mRocketY; + _rocketX = _mRocketX; _menuActive = true; _clickDelay = 30; @@ -432,9 +563,7 @@ void Menu::drawMenu() { } } - // // Draw the Secret Stars! (tm) - // if (g_hdb->getStarsMonkeystone7() == STARS_MONKEYSTONE_7 || g_hdb->getStarsMonkeystone14() == STARS_MONKEYSTONE_14 || g_hdb->getStarsMonkeystone21() == STARS_MONKEYSTONE_21) { @@ -488,9 +617,9 @@ void Menu::drawMenu() { _rocketX += -_optionsXV; _oBannerY += _optionsXV / 3; _optionsXV -= 3; - if (_optionsScrollX < kMenuX) { - _optionsScrollX = kMenuX; - _rocketX = kMRocketX; + if (_optionsScrollX < _menuX) { + _optionsScrollX = _menuX; + _rocketX = _mRocketX; _oBannerY = -48; _optionsScrolling = false; _newgameActive = false; @@ -502,30 +631,30 @@ void Menu::drawMenu() { drawNebula(); _newGfx->drawMasked(centerPic(_newGfx), _oBannerY); - _modePuzzleGfx->drawMasked(kNewGameX, kModePuzzleY); - _modePuzzleGfx->drawMasked(kNewGameX, kModeActionY); + _modePuzzleGfx->drawMasked(_newGameX, _modePuzzleY); + _modePuzzleGfx->drawMasked(_newGameX, _modeActionY); - g_hdb->_gfx->setCursor(kNewGameX2, kModePuzzleY - 10); + g_hdb->_gfx->setCursor(_newGameX2, _modePuzzleY - 10); g_hdb->_gfx->drawText("PUZZLE MODE"); - g_hdb->_gfx->setCursor(kNewGameX2, kModePuzzleY + 10); + g_hdb->_gfx->setCursor(_newGameX2, _modePuzzleY + 10); g_hdb->_gfx->drawText("In this mode, the focus"); - g_hdb->_gfx->setCursor(kNewGameX2, kModePuzzleY + 22); + g_hdb->_gfx->setCursor(_newGameX2, _modePuzzleY + 22); g_hdb->_gfx->drawText("is on solving puzzles and"); - g_hdb->_gfx->setCursor(kNewGameX2, kModePuzzleY + 34); + g_hdb->_gfx->setCursor(_newGameX2, _modePuzzleY + 34); g_hdb->_gfx->drawText("avoiding enemies."); - g_hdb->_gfx->setCursor(kNewGameX2, kModeActionY - 10); + g_hdb->_gfx->setCursor(_newGameX2, _modeActionY - 10); g_hdb->_gfx->drawText("ACTION MODE"); - g_hdb->_gfx->setCursor(kNewGameX2, kModeActionY + 10); + g_hdb->_gfx->setCursor(_newGameX2, _modeActionY + 10); g_hdb->_gfx->drawText("In this mode, the focus"); - g_hdb->_gfx->setCursor(kNewGameX2, kModeActionY + 22); + g_hdb->_gfx->setCursor(_newGameX2, _modeActionY + 22); g_hdb->_gfx->drawText("is on solving puzzles and"); - g_hdb->_gfx->setCursor(kNewGameX2, kModeActionY + 34); + g_hdb->_gfx->setCursor(_newGameX2, _modeActionY + 34); g_hdb->_gfx->drawText("attacking enemies!"); // title logo - _titleLogo->drawMasked(centerPic(_titleLogo), _rocketY + kMTitleY); - _menuBackoutGfx->drawMasked(kBackoutX, g_hdb->_menu->_backoutY); + _titleLogo->drawMasked(centerPic(_titleLogo), _rocketY + _mTitleY); + _menuBackoutGfx->drawMasked(_backoutX, g_hdb->_menu->_backoutY); } } else if (_optionsActive) { //------------------------------------------------------------------- @@ -541,9 +670,9 @@ void Menu::drawMenu() { _rocketX += -_optionsXV; _oBannerY += _optionsXV / 3; _optionsXV -= 3; - if (_optionsScrollX < kMenuX) { - _optionsScrollX = kMenuX; - _rocketX = kMRocketX; + if (_optionsScrollX < _menuX) { + _optionsScrollX = _menuX; + _rocketX = _mRocketX; _oBannerY = -48; _optionsScrolling = false; _optionsActive = false; @@ -559,27 +688,27 @@ void Menu::drawMenu() { drawNebula(); _optionsGfx->drawMasked(centerPic(_optionsGfx), _oBannerY); - g_hdb->_gfx->setCursor(kOptionsX + kOptionSPC, kOptionsY); + g_hdb->_gfx->setCursor(_optionsX + kOptionSPC, _optionsY); if (!g_hdb->_sound->getMusicVolume()) g_hdb->_gfx->drawText("Music OFF"); else g_hdb->_gfx->drawText("Music Volume"); - drawSlider(kOptionsX, kOptionsY + 20, g_hdb->_sound->getMusicVolume()); + drawSlider(_optionsX, _optionsY + 20, g_hdb->_sound->getMusicVolume()); - g_hdb->_gfx->setCursor(kOptionsX + kOptionSPC, kOptionsY + kOptionLineSPC * 2); + g_hdb->_gfx->setCursor(_optionsX + kOptionSPC, _optionsY + kOptionLineSPC * 2); if (!g_hdb->_sound->getSFXVolume()) g_hdb->_gfx->drawText("Sound Effects OFF"); else g_hdb->_gfx->drawText("Sound Effects Volume"); - drawSlider(kOptionsX, kOptionsY + kOptionLineSPC * 2 + 20, g_hdb->_sound->getSFXVolume()); + drawSlider(_optionsX, _optionsY + kOptionLineSPC * 2 + 20, g_hdb->_sound->getSFXVolume()); // Voices ON or OFF - drawToggle(kOptionsX, kOptionsY + kOptionLineSPC * 4 + 20, g_hdb->_sound->getVoiceStatus()); + drawToggle(_optionsX, _optionsY + kOptionLineSPC * 4 + 20, g_hdb->_sound->getVoiceStatus()); if (!g_hdb->isVoiceless()) { - g_hdb->_gfx->setCursor(kOptionsX + kOptionSPC + 24, kOptionsY + kOptionLineSPC * 4 + 24); + g_hdb->_gfx->setCursor(_optionsX + kOptionSPC + 24, _optionsY + kOptionLineSPC * 4 + 24); if (!g_hdb->_sound->getVoiceStatus()) g_hdb->_gfx->drawText("Voice Dialogue OFF"); else @@ -588,11 +717,11 @@ void Menu::drawMenu() { // title logo - _titleLogo->drawMasked(centerPic(_titleLogo), _rocketY + kMTitleY); - _menuBackoutGfx->drawMasked(kBackoutX, g_hdb->_menu->_backoutY); + _titleLogo->drawMasked(centerPic(_titleLogo), _rocketY + _mTitleY); + _menuBackoutGfx->drawMasked(_backoutX, g_hdb->_menu->_backoutY); // Ignore Controls Screen Button - //_controlButtonGfx->drawMasked(centerPic(_controlButtonGfx), kMControlsY); + //_controlButtonGfx->drawMasked(centerPic(_controlButtonGfx), _mControlsY); } else if (_optionsActive == 2) { // // Draw CONTROLS screen @@ -616,9 +745,9 @@ void Menu::drawMenu() { _rocketX += -_optionsXV; _oBannerY += _optionsXV / 3; _optionsXV -= 3; - if (_optionsScrollX < kMenuX) { - _optionsScrollX = kMenuX; - _rocketX = kMRocketX; + if (_optionsScrollX < _menuX) { + _optionsScrollX = _menuX; + _rocketX = _mRocketX; _oBannerY = -48; _optionsScrolling = false; _gamefilesActive = false; @@ -631,18 +760,18 @@ void Menu::drawMenu() { static uint32 anim_time = 0; drawNebula(); - _titleLogo->drawMasked(centerPic(_titleLogo), _rocketY + kMTitleY); + _titleLogo->drawMasked(centerPic(_titleLogo), _rocketY + _mTitleY); // CHOOSE SLOT screen _modeLoadGfx->drawMasked(centerPic(_modeLoadGfx), _oBannerY); - _menuBackoutGfx->drawMasked(kBackoutX, g_hdb->_menu->_backoutY); + _menuBackoutGfx->drawMasked(_backoutX, g_hdb->_menu->_backoutY); if (_saveGames[kAutoSaveSlot].seconds) - _vortexian[anim]->drawMasked(kVortSaveX, kVortSaveY); + _vortexian[anim]->drawMasked(_vortSaveX, _vortSaveY); if (g_hdb->isPPC()) { - g_hdb->_gfx->setCursor(kVortSaveTextX, kVortSaveY); + g_hdb->_gfx->setCursor(_vortSaveTextX, _vortSaveY); g_hdb->_gfx->drawText("Last Vortexian"); - g_hdb->_gfx->setCursor(kVortSaveTextX, kVortSaveY + 12); + g_hdb->_gfx->setCursor(_vortSaveTextX, _vortSaveY + 12); g_hdb->_gfx->drawText("Saved Game"); } @@ -656,14 +785,14 @@ void Menu::drawMenu() { for (int i = 0; i < kNumSaveSlots; i++) { int seconds = _saveGames[i].seconds; - _slotGfx->drawMasked(kSaveSlotX - 8, i * 32 + (kSaveSlotY - 4)); + _slotGfx->drawMasked(_saveSlotX - 8, i * 32 + (_saveSlotY - 4)); if (seconds || _saveGames[i].mapName[0]) { g_hdb->_gfx->setTextEdges(0, g_hdb->_screenWidth + 60, 0, g_hdb->_screenHeight); - g_hdb->_gfx->setCursor(kSaveSlotX, i * 32 + kSaveSlotY); + g_hdb->_gfx->setCursor(_saveSlotX, i * 32 + _saveSlotY); g_hdb->_gfx->drawText(_saveGames[i].mapName); - g_hdb->_gfx->setCursor(kSaveSlotX + 180, i * 32 + kSaveSlotY); + g_hdb->_gfx->setCursor(_saveSlotX + 180, i * 32 + _saveSlotY); char buff[16]; sprintf(buff, "%02d:%02d", seconds / 3600, (seconds / 60) % 60); g_hdb->_gfx->drawText(buff); @@ -678,28 +807,28 @@ void Menu::drawMenu() { drawNebula(); drawWarpScreen(); // title logo - _titleLogo->drawMasked(centerPic(_titleLogo), _rocketY + kMTitleY); - _menuBackoutGfx->drawMasked(kWarpBackoutX, g_hdb->_menu->_warpBackoutY); + _titleLogo->drawMasked(centerPic(_titleLogo), _rocketY + _mTitleY); + _menuBackoutGfx->drawMasked(_warpBackoutX, g_hdb->_menu->_warpBackoutY); char string[32]; for (int i = 0; i < 10; i++) { sprintf(string, "Map %2d", i); - g_hdb->_gfx->setCursor(kWarpX + 4, i * 16 + kWarpY); + g_hdb->_gfx->setCursor(_warpX + 4, i * 16 + _warpY); g_hdb->_gfx->drawText(string); } for (int i = 0; i < 10; i++) { sprintf(string, "Map %d", i + 10); - g_hdb->_gfx->setCursor(kWarpX + 80, i * 16 + kWarpY); + g_hdb->_gfx->setCursor(_warpX + 80, i * 16 + _warpY); g_hdb->_gfx->drawText(string); } for (int i = 0; i < 10; i++) { sprintf(string, "Map %d", i + 20); - g_hdb->_gfx->setCursor(kWarpX + 160, i * 16 + kWarpY); + g_hdb->_gfx->setCursor(_warpX + 160, i * 16 + _warpY); g_hdb->_gfx->drawText(string); } if (_warpActive > 1) { - g_hdb->_gfx->setCursor(kWarpX + 60, kWarpY + 164); + g_hdb->_gfx->setCursor(_warpX + 60, _warpY + 164); sprintf(string, "Warping to MAP%d", _warpActive - 2); g_hdb->_gfx->centerPrint(string); } @@ -713,12 +842,12 @@ void Menu::drawMenu() { if (_quitActive == 3 || !g_hdb->isDemo()) { if (!_quitScreen) _quitScreen = g_hdb->_gfx->loadPic(PIC_QUITSCREEN); - _quitScreen->drawMasked(kQuitX, kQuitY); + _quitScreen->drawMasked(_quitX, _quitY); } else if (_quitActive == 2) { // XXXX - _screenshots1gfx->drawMasked(kQuitX, kQuitY); - _screenshots2gfx->drawMasked(kQuitX, g_hdb->_screenHeight - _screenshots2gfx->_height); + _screenshots1gfx->drawMasked(_quitX, _quitY); + _screenshots2gfx->drawMasked(_quitX, g_hdb->_screenHeight - _screenshots2gfx->_height); } else if (_quitActive == 1) { - _screenshots1agfx->drawMasked(kQuitX, kQuitY); + _screenshots1agfx->drawMasked(_quitX, _quitY); } } } @@ -919,7 +1048,7 @@ void Menu::drawTitle() { case 2: // draw entire screen & ooh ooh _titleScreen->draw(0, 0); - _oohOohGfx->draw(kOohOhhX, kOohOhhY); + _oohOohGfx->draw(_oohOhhX, _oohOhhY); break; case 4: // fadeout monkeystone logo @@ -949,25 +1078,25 @@ void Menu::drawTitle() { } // draw rocket - _rocketMain->drawMasked(kMRocketX, _rocketY); - _rocketSecond->drawMasked(kMRocketX + 40, _rocketY + kMRocketYBottom); + _rocketMain->drawMasked(_mRocketX, _rocketY); + _rocketSecond->drawMasked(_mRocketX + 40, _rocketY + _mRocketYBottom); // exhaust if (_rocketEx < 5) { - _rocketEx1->drawMasked(kMRocketX + kMRocketEXHX, _rocketY + kMRocketYBottom); - _rocketEx2->drawMasked(kMRocketX + kMRocketEXHX2, _rocketY + kMRocketYBottom); + _rocketEx1->drawMasked(_mRocketX + _mRocketEXHX, _rocketY + _mRocketYBottom); + _rocketEx2->drawMasked(_mRocketX + _mRocketEXHX2, _rocketY + _mRocketYBottom); } else if (_rocketEx >= 5 && _rocketEx < 10) { - _rocketEx2->drawMasked(kMRocketX + kMRocketEXHX, _rocketY + kMRocketYBottom); - _rocketEx1->drawMasked(kMRocketX + kMRocketEXHX2, _rocketY + kMRocketYBottom); + _rocketEx2->drawMasked(_mRocketX + _mRocketEXHX, _rocketY + _mRocketYBottom); + _rocketEx1->drawMasked(_mRocketX + _mRocketEXHX2, _rocketY + _mRocketYBottom); } else { _rocketEx = 0; - _rocketEx1->drawMasked(kMRocketX + kMRocketEXHX, _rocketY + kMRocketYBottom); - _rocketEx2->drawMasked(kMRocketX + kMRocketEXHX2, _rocketY + kMRocketYBottom); + _rocketEx1->drawMasked(_mRocketX + _mRocketEXHX, _rocketY + _mRocketYBottom); + _rocketEx2->drawMasked(_mRocketX + _mRocketEXHX2, _rocketY + _mRocketYBottom); } _rocketEx++; // title logo - _titleLogo->drawMasked(centerPic(_titleLogo), _rocketY + kMTitleY); + _titleLogo->drawMasked(centerPic(_titleLogo), _rocketY + _mTitleY); break; } @@ -1058,8 +1187,8 @@ void Menu::drawTitle() { _titleDelay = 1; _rocketY += _rocketYVel; - if (_rocketY < kMRocketY) { - _rocketY = kMRocketY; + if (_rocketY < _mRocketY) { + _rocketY = _mRocketY; _titleCycle = 12; _titleDelay = 1; } @@ -1107,30 +1236,30 @@ void Menu::processInput(int x, int y) { if (_menuActive) { int resume = getMenuKey(); // quit game? - if (x >= kMenuX && x < kMenuX + kMenuItemWidth && - y >= kMenuY + kMQuitY && y < kMenuY + kMQuitY + kMenuItemHeight) { + if (x >= _menuX && x < _menuX + _menuItemWidth && + y >= _menuY + _mQuitY && y < _menuY + _mQuitY + _menuItemHeight) { g_hdb->_sound->playSound(SND_BYE); _quitTimer = g_hdb->getTimeSlice() + 1000; _quitActive = 1; _menuActive = false; return; - } else if (x >= kMenuX && x < kMenuX + kMenuItemWidth && - y >= kMenuY && y < kMenuY + kMenuItemHeight) { + } else if (x >= _menuX && x < _menuX + _menuItemWidth && + y >= _menuY && y < _menuY + _menuItemHeight) { // new game? _optionsScrolling = true; _optionsXV = 5; g_hdb->_sound->playSound(SND_MENU_ACCEPT); g_hdb->_sound->freeSound(SND_HDB); _nextScreen = 2; - } else if (x >= kMenuX && x < kMenuX + kMenuItemWidth && - y >= kMenuY + kMLoadY && y < kMenuY + kMLoadY + kMenuItemHeight) { + } else if (x >= _menuX && x < _menuX + _menuItemWidth && + y >= _menuY + _mLoadY && y < _menuY + _mLoadY + _menuItemHeight) { // game files? _optionsScrolling = true; _optionsXV = 5; g_hdb->_sound->playSound(SND_MENU_ACCEPT); _nextScreen = 1; - } else if (x >= kMenuX && x < kMenuX + kMenuItemWidth && - y >= kMenuY + kMOptionsY && y < kMenuY + kMOptionsY + kMenuItemHeight) { + } else if (x >= _menuX && x < _menuX + _menuItemWidth && + y >= _menuY + _mOptionsY && y < _menuY + _mOptionsY + _menuItemHeight) { // options? SoundType temp; temp = g_hdb->_sound->whatSongIsPlaying(); @@ -1140,8 +1269,8 @@ void Menu::processInput(int x, int y) { _optionsXV = 5; _nextScreen = 0; g_hdb->_sound->playSound(SND_MENU_ACCEPT); - } else if (((x >= kMenuX && x < kMenuX + kMenuItemWidth && - y >= kMenuY + kMResumeY && y < kMenuY + kMResumeY + kMenuItemHeight) || resume) && + } else if (((x >= _menuX && x < _menuX + _menuItemWidth && + y >= _menuY + _mResumeY && y < _menuY + _mResumeY + _menuItemHeight) || resume) && (true == g_hdb->_map->isLoaded() || _saveGames[5].seconds)) { // resume game? ( must be playing already or have an autosave ) g_hdb->_sound->playSound(SND_POP); @@ -1196,7 +1325,7 @@ void Menu::processInput(int x, int y) { if (!g_hdb->getCheatingOn()) open = (x >= _nebulaX && x < _nebulaX + 16 && y >= _nebulaY && y < _nebulaY + 16); else - open = (y > g_hdb->_menu->_menuExitY && x < kMenuExitXLeft); + open = (y > g_hdb->_menu->_menuExitY && x < _menuExitXLeft); if (open) { @@ -1212,20 +1341,20 @@ void Menu::processInput(int x, int y) { //------------------------------------------------------------------- int xit = getMenuKey(); - if (y >= g_hdb->_menu->_menuExitY || y < kMenuExitYTop || xit) { + if (y >= g_hdb->_menu->_menuExitY || y < _menuExitYTop || xit) { _optionsScrolling = true; _optionsXV = -5; g_hdb->_sound->playSound(SND_MENU_BACKOUT); } // PUZZLE MODE area - if (y >= kModePuzzleY - 10 && y <= kModeActionY - 10) { + if (y >= _modePuzzleY - 10 && y <= _modeActionY - 10) { g_hdb->setActionMode(0); g_hdb->_sound->playSound(SND_MENU_ACCEPT); _newgameActive = false; g_hdb->changeGameState(); // that's it! the Game Loop takes over from here... - } else if (y >= kModeActionY - 10 && y <= g_hdb->_menu->_menuExitY) { + } else if (y >= _modeActionY - 10 && y <= g_hdb->_menu->_menuExitY) { // ACTION MODE area g_hdb->setActionMode(1); g_hdb->_sound->playSound(SND_MENU_ACCEPT); @@ -1248,32 +1377,32 @@ void Menu::processInput(int x, int y) { int offset; // Slider 1 - if (x >= 0 && x <= kOptionsX + 200 && - y >= kOptionsY + 20 && y <= kOptionsY + 36) { + if (x >= 0 && x <= _optionsX + 200 && + y >= _optionsY + 20 && y <= _optionsY + 36) { int oldVol = g_hdb->_sound->getMusicVolume(); - if (x < kOptionsX) { + if (x < _optionsX) { if (oldVol) { g_hdb->_sound->stopMusic(); g_hdb->_sound->setMusicVolume(0); g_hdb->_sound->playSound(SND_GUI_INPUT); } } else { - offset = ((x - kOptionsX) * 256) / 200; + offset = ((x - _optionsX) * 256) / 200; g_hdb->_sound->setMusicVolume(offset); if (!oldVol) g_hdb->_sound->startMusic(_resumeSong); } - } else if (x >= 0 && x <= kOptionsX + 200 && - y >= kOptionsY + kOptionLineSPC * 2 + 20 && y <= kOptionsY + kOptionLineSPC * 2 + 36) { + } else if (x >= 0 && x <= _optionsX + 200 && + y >= _optionsY + kOptionLineSPC * 2 + 20 && y <= _optionsY + kOptionLineSPC * 2 + 36) { // Slider 2 - if (x >= kOptionsX) - offset = ((x - kOptionsX) * 256) / 200; + if (x >= _optionsX) + offset = ((x - _optionsX) * 256) / 200; else offset = 0; g_hdb->_sound->setSFXVolume(offset); g_hdb->_sound->playSound(SND_MENU_SLIDER); - } else if (x >= kOptionsX && x <= kOptionsX + 200 && - y >= kOptionsY + kOptionLineSPC * 4 + 24 && y <= kOptionsY + kOptionLineSPC * 4 + 40) { + } else if (x >= _optionsX && x <= _optionsX + 200 && + y >= _optionsY + kOptionLineSPC * 4 + 24 && y <= _optionsY + kOptionLineSPC * 4 + 40) { // Voices ON/OFF if (!g_hdb->isVoiceless()) { int value = g_hdb->_sound->getVoiceStatus(); @@ -1281,12 +1410,12 @@ void Menu::processInput(int x, int y) { g_hdb->_sound->setVoiceStatus(value); g_hdb->_sound->playSound(SND_GUI_INPUT); } - } else if (y >= g_hdb->_menu->_menuExitY || y < kMenuExitYTop || xit) { + } else if (y >= g_hdb->_menu->_menuExitY || y < _menuExitYTop || xit) { g_hdb->_sound->playSound(SND_MENU_BACKOUT); _optionsScrolling = true; _optionsXV = -5; } else if (x >= (g_hdb->_screenWidth / 2 - _controlButtonGfx->_width / 2) && x < (g_hdb->_screenWidth / 2 + _controlButtonGfx->_width / 2) && - y >= kMControlsY && y < kMControlsY + _controlButtonGfx->_height) { + y >= _mControlsY && y < _mControlsY + _controlButtonGfx->_height) { // CONTROLS BUTTON! // Ignore Controls Button @@ -1300,7 +1429,7 @@ void Menu::processInput(int x, int y) { //------------------------------------------------------------------- int xit = getMenuKey(); - if (y >= g_hdb->_menu->_menuExitY + 15 || y < kMenuExitYTop || xit) { + if (y >= g_hdb->_menu->_menuExitY + 15 || y < _menuExitYTop || xit) { _optionsScrolling = true; _optionsXV = -5; g_hdb->_sound->playSound(SND_MENU_BACKOUT); @@ -1310,7 +1439,7 @@ void Menu::processInput(int x, int y) { if (g_hdb->isPPC()) { // 5 Slots screen // Vortexian autosave LOAD? - if (y > kVortSaveY && (y < kVortSaveY + 32) && (x >= kVortSaveX) && (x < kVortSaveX + 96) && _saveGames[kAutoSaveSlot].seconds) { + if (y > _vortSaveY && (y < _vortSaveY + 32) && (x >= _vortSaveX) && (x < _vortSaveX + 96) && _saveGames[kAutoSaveSlot].seconds) { g_hdb->_sound->playSound(SND_VORTEX_SAVE); if (g_hdb->loadGameState(kAutoSaveSlot).getCode() == Common::kNoError) { _gamefilesActive = false; @@ -1324,7 +1453,7 @@ void Menu::processInput(int x, int y) { int i = 0; for (; i < kNumSaveSlots; i++) - if (y >= (i * 32 + kSaveSlotY - 4) && y <= (i * 32 + kSaveSlotY + 24)) + if (y >= (i * 32 + _saveSlotY - 4) && y <= (i * 32 + _saveSlotY + 24)) break; if (i >= kNumSaveSlots) return; @@ -1357,23 +1486,23 @@ void Menu::processInput(int x, int y) { //------------------------------------------------------------------- int xit = getMenuKey(); - if ((y >= g_hdb->_menu->_menuExitY && x < kMenuExitXLeft) || xit) { + if ((y >= g_hdb->_menu->_menuExitY && x < _menuExitXLeft) || xit) { _menuActive = true; _warpActive = false; g_hdb->_sound->playSound(SND_MENU_BACKOUT); _clickDelay = 10; - } else if (y >= kWarpY && y < kWarpY + 160) { + } else if (y >= _warpY && y < _warpY + 160) { int map; - if (x > kWarpX + 160) + if (x > _warpX + 160) map = 20; else - if (x > kWarpX + 80) + if (x > _warpX + 80) map = 10; else map = 0; - map += (y - kWarpY) / 16; + map += (y - _warpY) / 16; _warpActive = map + 2; g_hdb->paint(); @@ -1402,7 +1531,7 @@ void Menu::processInput(int x, int y) { int xit = getMenuKey(); if (!g_hdb->isDemo()) { - if ((x >= kQuitNoX1 && x <= kQuitNoX2 && y > kQuitNoY1 && y < kQuitNoY2 && _quitTimer < g_hdb->getTimeSlice()) || xit) { + if ((x >= _quitNoX1 && x <= _quitNoX2 && y > _quitNoY1 && y < _quitNoY2 && _quitTimer < g_hdb->getTimeSlice()) || xit) { g_hdb->_sound->playSound(SND_MENU_BACKOUT); delete _quitScreen; _quitScreen = NULL; @@ -1410,7 +1539,7 @@ void Menu::processInput(int x, int y) { _menuActive = true; _quitActive = 0; } else if (_quitTimer < g_hdb->getTimeSlice()) { - if (x >= kQuitYesX1 && x <= kQuitYesX2 && y > kQuitYesY1 && y < kQuitYesY2) { + if (x >= _quitYesX1 && x <= _quitYesX2 && y > _quitYesY1 && y < _quitYesY2) { writeConfig(); g_hdb->quitGame(); } @@ -1420,7 +1549,7 @@ void Menu::processInput(int x, int y) { _quitActive++; _quitTimer = g_hdb->getTimeSlice() + 1000; } else { - if (_quitActive == 3 && (x >= kQuitNoX1 && x <= kQuitNoX2 && y > kQuitNoY1 && y < kQuitNoY2 && _quitTimer < g_hdb->getTimeSlice())) { + if (_quitActive == 3 && (x >= _quitNoX1 && x <= _quitNoX2 && y > _quitNoY1 && y < _quitNoY2 && _quitTimer < g_hdb->getTimeSlice())) { g_hdb->_sound->playSound(SND_MENU_BACKOUT); delete _quitScreen; _quitScreen = NULL; @@ -1485,33 +1614,33 @@ void Menu::drawRocketAndSelections() { } // menu items - _newGfx->drawMasked(_optionsScrollX, kMenuY); - _modeLoadGfx->drawMasked(_optionsScrollX, kMenuY + kMLoadY); - _optionsGfx->drawMasked(_optionsScrollX, kMenuY + kMOptionsY); - _quitGfx->drawMasked(_optionsScrollX, kMenuY + kMQuitY); + _newGfx->drawMasked(_optionsScrollX, _menuY); + _modeLoadGfx->drawMasked(_optionsScrollX, _menuY + _mLoadY); + _optionsGfx->drawMasked(_optionsScrollX, _menuY + _mOptionsY); + _quitGfx->drawMasked(_optionsScrollX, _menuY + _mQuitY); if (g_hdb->_map->isLoaded() || _saveGames[5].seconds) - _resumeGfx->drawMasked(_optionsScrollX, kMenuY + kMResumeY); + _resumeGfx->drawMasked(_optionsScrollX, _menuY + _mResumeY); // draw rocket _rocketMain->drawMasked(_rocketX, _rocketY); - _rocketSecond->drawMasked(_rocketX + 40, _rocketY + kMRocketYBottom); + _rocketSecond->drawMasked(_rocketX + 40, _rocketY + _mRocketYBottom); // exhaust if (_rocketEx < 5) { - _rocketEx1->drawMasked(kMRocketX + kMRocketEXHX, _rocketY + kMRocketYBottom); - _rocketEx2->drawMasked(kMRocketX + kMRocketEXHX2, _rocketY + kMRocketYBottom); + _rocketEx1->drawMasked(_mRocketX + _mRocketEXHX, _rocketY + _mRocketYBottom); + _rocketEx2->drawMasked(_mRocketX + _mRocketEXHX2, _rocketY + _mRocketYBottom); } else if (_rocketEx >= 5 && _rocketEx < 10) { - _rocketEx2->drawMasked(kMRocketX + kMRocketEXHX, _rocketY + kMRocketYBottom); - _rocketEx1->drawMasked(kMRocketX + kMRocketEXHX2, _rocketY + kMRocketYBottom); + _rocketEx2->drawMasked(_mRocketX + _mRocketEXHX, _rocketY + _mRocketYBottom); + _rocketEx1->drawMasked(_mRocketX + _mRocketEXHX2, _rocketY + _mRocketYBottom); } else { _rocketEx = 0; - _rocketEx1->drawMasked(kMRocketX + kMRocketEXHX, _rocketY + kMRocketYBottom); - _rocketEx2->drawMasked(kMRocketX + kMRocketEXHX2, _rocketY + kMRocketYBottom); + _rocketEx1->drawMasked(_mRocketX + _mRocketEXHX, _rocketY + _mRocketYBottom); + _rocketEx2->drawMasked(_mRocketX + _mRocketEXHX2, _rocketY + _mRocketYBottom); } _rocketEx++; // title logo - _titleLogo->drawMasked(centerPic(_titleLogo), _rocketY + kMTitleY); + _titleLogo->drawMasked(centerPic(_titleLogo), _rocketY + _mTitleY); } void Menu::drawSlider(int x, int y, int offset) { @@ -1550,7 +1679,7 @@ void Menu::drawToggle(int x, int y, bool flag) { void Menu::drawWarpScreen() { if (g_hdb->isPPC()) { - g_hdb->_gfx->setCursor(0, kWarpY + 176); + g_hdb->_gfx->setCursor(0, _warpY + 176); g_hdb->_gfx->centerPrint("MONKEYSTONE WARP ZONE!"); } else _warpPlaque->drawMasked(centerPic(_warpPlaque), 64); diff --git a/engines/hdb/menu.h b/engines/hdb/menu.h index 319b51ff79..c9b1b8dd97 100644 --- a/engines/hdb/menu.h +++ b/engines/hdb/menu.h @@ -59,89 +59,12 @@ enum { kStarBlueX = 70, kStarBlueY = 180, - kMenuX = 48 * 8, - kMenuY = 80, - - kMenuItemWidth = 88, - kMenuItemHeight = 40, - - kMResumeY = 48 * 4, - kMQuitY = 48 * 3, - kMOptionsY = 48 * 2, - kMLoadY = 48 * 1, - kMControlsY = 270, - - kMenuExitXLeft = 60, - kMenuExitYTop = 48, - kMenuVortSaveY = 220, - kMenuVortSaveX = 76, - - kMRocketX = 18 * 8, - kMRocketY = 48, - kMRocketYBottom = 28 * 8, - kMRocketEXHX = 6 * 8 - 4, - kMRocketEXHX2 = 11 * 8 - 4, - kMTitleY = 34 * 8, - kOohOhhX = 256, - kOohOhhY = 224, - - kNewGameX = 220, - kNewGameX2 = kNewGameX + 50, - - kModePuzzleY = 130, - kModeActionY = 220, - - kOptionsX = 8 * 26, - kOptionsY = 8 * 10, - - kVortSaveX = 200 - 44, - kVortSaveTextX = kVortSaveX + 40, - kVortSaveY = 72, - kSaveSlotX = 200, - kSaveSlotY = 80, - - kQuitX = 0, - kQuitY = 0, - kQuitYesX1 = 30 * 8, - kQuitYesX2 = 38 * 8 + 4, - kQuitYesY1 = 50 * 8, - kQuitYesY2 = 53 * 8 + 4, - kQuitNoX1 = 41 * 8, - kQuitNoX2 = 49 * 8 + 4, - kQuitNoY1 = 50 * 8, - kQuitNoY2 = 53 * 8 + 4, - - kControlX = 60, - kControlY = 40, - kControlUpX = 276 + kControlX, - kControlUpY = 114 + kControlY, - kControlDownX = 276 + kControlX, - kControlDownY = 129 + kControlY, - kControlLeftX = 396 + kControlX, - kControlLeftY = 114 + kControlY, - kControlRightX = 396 + kControlX, - kControlRightY = 129 + kControlY, - kControlUseX = 330 + kControlX, - kControlUseY = 209 + kControlY, - kControlWidth = 32, - kControlHeight = 16, - - kAssignX = kControlX + 20 * 8, - kAssignY = kControlY + 150, - - kBackoutX = 0, - - kWarpBackoutX = kBackoutX, - - kWarpX = 214, - kWarpY = 160, + kOptionSPC = 16, + kOptionLineSPC = 32, kScreenFade = 512, kNebulaCount = 7, kMaxStars = 10, - - kOptionSPC = 16, - kOptionLineSPC = 32 }; struct Star { @@ -190,9 +113,70 @@ public: } // Platform-specific Constants + int _menuX, _menuY; + int _menuItemWidth; + int _menuItemHeight; + int _mResumeY; + int _mQuitY; + int _mOptionsY; + int _mLoadY; + int _mControlsY; + int _menuExitXLeft; int _menuExitY; + int _menuExitYTop; + int _menuVortSaveY; + int _menuVortSaveX; + int _mRocketX; + int _mRocketY; + int _mRocketYBottom; + int _mRocketEXHX; + int _mRocketEXHX2; + int _mTitleY; + int _oohOhhX; + int _oohOhhY; + int _newGameX; + int _newGameX2; + int _modePuzzleY; + int _modeActionY; + int _optionsX; + int _optionsY; + int _vortSaveX; + int _vortSaveTextX; + int _vortSaveY; + int _saveSlotX; + int _saveSlotY; + int _quitX; + int _quitY; + int _quitYesX1; + int _quitYesX2; + int _quitYesY1; + int _quitYesY2; + int _quitNoX1; + int _quitNoX2; + int _quitNoY1; + int _quitNoY2; + int _controlX; + int _controlY; + int _controlUpX; + int _controlUpY; + int _controlDownX; + int _controlDownY; + int _controlLeftX; + int _controlLeftY; + int _controlRightX; + int _controlRightY; + int _controlUseX; + int _controlUseY; + int _controlWidth; + int _controlHeight; + int _assignX; + int _assignY; + int _backoutX; int _backoutY; + int _warpBackoutX; int _warpBackoutY; + int _warpX; + int _warpY; Save _saveGames[kNumSaveSlots + 1]; |