diff options
author | Nipun Garg | 2019-07-30 03:50:28 +0530 |
---|---|---|
committer | Eugene Sandulenko | 2019-09-03 17:17:30 +0200 |
commit | b8bbc32a89e53f6eb271d848cdb4935494c0f43f (patch) | |
tree | 2ee92e4dd65ef50716b8ebe63eca4cab93571b0a /engines/hdb | |
parent | 3acb70c759586faef9a5f9f5131c6da6e17e5f89 (diff) | |
download | scummvm-rg350-b8bbc32a89e53f6eb271d848cdb4935494c0f43f.tar.gz scummvm-rg350-b8bbc32a89e53f6eb271d848cdb4935494c0f43f.tar.bz2 scummvm-rg350-b8bbc32a89e53f6eb271d848cdb4935494c0f43f.zip |
HDB: Add support for the PPC version
Diffstat (limited to 'engines/hdb')
-rw-r--r-- | engines/hdb/ai-inventory.cpp | 5 | ||||
-rw-r--r-- | engines/hdb/hdb.cpp | 4 | ||||
-rw-r--r-- | engines/hdb/menu.cpp | 30 | ||||
-rw-r--r-- | engines/hdb/sound.cpp | 2 | ||||
-rw-r--r-- | engines/hdb/window.cpp | 9 |
5 files changed, 44 insertions, 6 deletions
diff --git a/engines/hdb/ai-inventory.cpp b/engines/hdb/ai-inventory.cpp index dbb7f3dab3..9eb91ebd7c 100644 --- a/engines/hdb/ai-inventory.cpp +++ b/engines/hdb/ai-inventory.cpp @@ -305,7 +305,10 @@ bool AI::completeDelivery(const char *id) { for (; i < _numDeliveries; i++) memcpy(&_deliveries[i], &_deliveries[i + 1], sizeof(_deliveries[0])); _numDeliveries--; - g_hdb->_sound->playVoice(GUY_COMPLETED, 1); + if (g_hdb->isPPC()) + g_hdb->_sound->playSound(SND_QUEST_COMPLETE); + else + g_hdb->_sound->playVoice(GUY_COMPLETED, 1); return true; } return false; diff --git a/engines/hdb/hdb.cpp b/engines/hdb/hdb.cpp index 900709ff8b..12d0871768 100644 --- a/engines/hdb/hdb.cpp +++ b/engines/hdb/hdb.cpp @@ -379,6 +379,10 @@ void HDBGame::setTargetXY(int x, int y) { if (p->touchpWait) return; + // Double-Clicking on the player to open inventory? + if (g_hdb->isPPC()) + warning("STUB: Add double-click to inventory functionality for PPC version"); + // If we're attacking...don't do anything else AIState stateList[] = { STATE_ATK_CLUB_UP, STATE_ATK_CLUB_DOWN, STATE_ATK_CLUB_LEFT, STATE_ATK_CLUB_RIGHT, diff --git a/engines/hdb/menu.cpp b/engines/hdb/menu.cpp index 9c36c9bd02..3158e789d6 100644 --- a/engines/hdb/menu.cpp +++ b/engines/hdb/menu.cpp @@ -619,10 +619,16 @@ void Menu::drawMenu() { _modeLoadGfx->drawMasked(centerPic(_modeLoadGfx), _oBannerY); _menuBackoutGfx->drawMasked(kBackoutX, kBackoutY); - - if (_saveGames[0].seconds) { + if (_saveGames[kAutoSaveSlot].seconds) _vortexian[anim]->drawMasked(kVortSaveX, kVortSaveY); + + if (g_hdb->isPPC()) { + g_hdb->_gfx->setCursor(kVortSaveTextX, kVortSaveY); + g_hdb->_gfx->drawText("Last Vortexian"); + g_hdb->_gfx->setCursor(kVortSaveTextX, kVortSaveY + 12); + g_hdb->_gfx->drawText("Saved Game"); } + if (anim_time < g_hdb->getTimeSlice()) { anim_time = g_hdb->getTimeSlice() + 50; anim++; @@ -760,6 +766,10 @@ void Menu::freeMenu() { delete _demoPlaqueGfx; _demoPlaqueGfx = NULL; + if (g_hdb->isPPC()) { + warning("FIXME: When handangoGfx is added, free it here"); + } + if (_nebulaGfx[0]) { for (int i = 0; i < kNebulaCount; i++) { delete _nebulaGfx[i]; @@ -1279,6 +1289,22 @@ void Menu::processInput(int x, int y) { g_hdb->_sound->playSound(SND_MENU_BACKOUT); } + // Vortexian Load only exists on PocketPC! + if (g_hdb->isPPC()) { + // 5 Slots screen + // Vortexian autosave LOAD? + if (y > kVortSaveY && (y < kVortSaveY + 32) && (x >= kVortSaveX) && (x < kVortSaveX + 96) && _saveGames[kAutoSaveSlot].seconds) { + g_hdb->_sound->playSound(SND_VORTEX_SAVE); + if (g_hdb->loadGameState(kAutoSaveSlot).getCode() == Common::kNoError) { + _gamefilesActive = false; + freeMenu(); + g_hdb->setGameState(GAME_PLAY); + return; + } + } + + } + int i = 0; for (; i < kNumSaveSlots; i++) if (y >= (i * 32 + kSaveSlotY - 4) && y <= (i * 32 + kSaveSlotY + 24)) diff --git a/engines/hdb/sound.cpp b/engines/hdb/sound.cpp index 5e488460a9..620fd4ae9a 100644 --- a/engines/hdb/sound.cpp +++ b/engines/hdb/sound.cpp @@ -1567,7 +1567,7 @@ bool Sound::playSoundEx(int index, int channel, bool loop) { } bool Sound::playVoice(int index, int actor) { - if (!_voicesOn) + if (!_voicesOn || g_hdb->isPPC()) return false; // make sure we aren't playing a line more than once this time (only on CHANNEL 0) diff --git a/engines/hdb/window.cpp b/engines/hdb/window.cpp index 06332246ab..57bf9cc730 100644 --- a/engines/hdb/window.cpp +++ b/engines/hdb/window.cpp @@ -131,12 +131,17 @@ bool Window::init() { _invWinInfo.width = kInvItemSpaceX * 3; _invWinInfo.height = kInvItemSpaceY * 4; - _invWinInfo.x = kScreenWidth - _gfxInfobar->_width + 16; + + warning("FIXME: Fully separate the PC and PPC versions of Window"); + + if (!g_hdb->isPPC()) + _invWinInfo.x = kScreenWidth - _gfxInfobar->_width + 16; _invWinInfo.y = 40; _dlvsInfo.width = kInvItemSpaceX * 3; _dlvsInfo.height = kInvItemSpaceY * 4; - _dlvsInfo.x = (kScreenWidth - _gfxInfobar->_width) + 16; + if (!g_hdb->isPPC()) + _dlvsInfo.x = (kScreenWidth - _gfxInfobar->_width) + 16; _dlvsInfo.y = 272; _gemGfx = NULL; |