diff options
author | Paul Gilbert | 2016-06-23 22:44:17 -0400 |
---|---|---|
committer | Paul Gilbert | 2016-07-15 19:24:33 -0400 |
commit | 934787b19be3aa86e02d77eea0a1a5ffa1771075 (patch) | |
tree | aa39eb85818c0d99ea1c03059355296e53e96281 /engines | |
parent | a4b746d24eaeba4cfd05603be2591dc3ec2d10e9 (diff) | |
download | scummvm-rg350-934787b19be3aa86e02d77eea0a1a5ffa1771075.tar.gz scummvm-rg350-934787b19be3aa86e02d77eea0a1a5ffa1771075.tar.bz2 scummvm-rg350-934787b19be3aa86e02d77eea0a1a5ffa1771075.zip |
TITANIC: Finsihed remaining PET Remote methods
Diffstat (limited to 'engines')
-rw-r--r-- | engines/titanic/pet_control/pet_remote.cpp | 20 | ||||
-rw-r--r-- | engines/titanic/pet_control/pet_remote.h | 2 |
2 files changed, 18 insertions, 4 deletions
diff --git a/engines/titanic/pet_control/pet_remote.cpp b/engines/titanic/pet_control/pet_remote.cpp index 6f133259a8..f59f1fb0d7 100644 --- a/engines/titanic/pet_control/pet_remote.cpp +++ b/engines/titanic/pet_control/pet_remote.cpp @@ -178,7 +178,19 @@ void CPetRemote::enter(PetArea oldArea) { } void CPetRemote::enterRoom(CRoomItem *room) { - // TODO + clearGlyphs(); + + if (room) { + CString roomName = room->getName(); + int roomIndex = roomIndexOf(roomName); + if (roomIndex != -1) { + Common::Array<uint> indexes; + if (getRemoteData(roomIndex, indexes)) { + loadGlyphs(indexes); + _items.scrollToStart(); + } + } + } } CPetText *CPetRemote::getText() { @@ -298,17 +310,19 @@ int CPetRemote::roomIndexOf(const CString &name) { return -1; } -void CPetRemote::getRemoteData(int roomIndex, Common::Array<uint> &indexes) { +bool CPetRemote::getRemoteData(int roomIndex, Common::Array<uint> &indexes) { const byte *p = &REMOTE_DATA[0]; for (int idx = 0; idx < TOTAL_ROOMS; ++idx) { if (*p == roomIndex) { for (int ctr = 0; ctr < *p; ++ctr) indexes.push_back(p[ctr + 1]); - return; + return true; } p += *(p + 1) + 2; } + + return false; } bool CPetRemote::loadGlyphs(const Common::Array<uint> &indexes) { diff --git a/engines/titanic/pet_control/pet_remote.h b/engines/titanic/pet_control/pet_remote.h index 58c429f5bf..22ea1e05ad 100644 --- a/engines/titanic/pet_control/pet_remote.h +++ b/engines/titanic/pet_control/pet_remote.h @@ -70,7 +70,7 @@ private: /** * Return a list of remote action glyph indexes for a given room */ - void getRemoteData(int roomIndex, Common::Array<uint> &indexes); + bool getRemoteData(int roomIndex, Common::Array<uint> &indexes); /** * Clear the list of rooms glyphs |