diff options
author | Strangerke | 2017-01-15 22:24:28 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2017-01-25 22:42:22 +0100 |
commit | 3ee08c1ac30d09a8f2c1c7d56ce78a913ca64c5c (patch) | |
tree | 5d3b63b15b8779bcac72e9ae0f81a191ea61ccbe | |
parent | 9c52ea3b268669e16487baf655f8d7f04db53e61 (diff) | |
download | scummvm-rg350-3ee08c1ac30d09a8f2c1c7d56ce78a913ca64c5c.tar.gz scummvm-rg350-3ee08c1ac30d09a8f2c1c7d56ce78a913ca64c5c.tar.bz2 scummvm-rg350-3ee08c1ac30d09a8f2c1c7d56ce78a913ca64c5c.zip |
CRYO: get rid of 3 GOTOs
-rw-r--r-- | engines/cryo/eden.cpp | 39 | ||||
-rw-r--r-- | engines/cryo/eden.h | 1 |
2 files changed, 23 insertions, 17 deletions
diff --git a/engines/cryo/eden.cpp b/engines/cryo/eden.cpp index 83f59026f5..8a197e6aa2 100644 --- a/engines/cryo/eden.cpp +++ b/engines/cryo/eden.cpp @@ -2671,6 +2671,16 @@ void EdenGame::displayBackgroundFollower() { } } +void EdenGame::displayNoFollower(int16 bank) { + if (bank) { + useBank(bank); + if (_globals->_characterPtr == &kPersons[PER_UNKN_156]) + noclipax_avecnoir(0, 0, 16); + else + noclipax(0, 0, 16); + } +} + // Original name: af_fondperso1 void EdenGame::displayCharacterBackground1() { byte bank; @@ -2681,41 +2691,36 @@ void EdenGame::displayCharacterBackground1() { bank = _globals->_characterBackgroundBankIdx; if (_globals->_eventType == EventType::etEventE) { _globals->_var103 = 1; - goto no_suiveur; + displayNoFollower(bank); + return; } _gameIcons[0].sx = 60; perso_rects[PER_MESSENGER].left = 62; } if (_globals->_characterPtr == &kPersons[PER_THOO]) { bank = 37; - if (_globals->_curObjectId == Objects::obShell) - goto no_suiveur; + if (_globals->_curObjectId == Objects::obShell) { + displayNoFollower(bank); + return; + } } ptab = kPersoRoomBankTable + _globals->_characterPtr->_roomBankId; bank = *ptab++; if (!(_globals->_characterPtr->_partyMask & _globals->_party)) { while ((bank = *ptab++) != 0xFF) { - if (bank == (_globals->_roomNum & 0xFF)) { //TODO: signed vs unsigned - chg r31 to uns? + if (bank == (_globals->_roomNum & 0xFF)) { //TODO: signed vs unsigned - chg bank to uns? bank = *ptab; break; } ptab++; } - if (bank != 0xFF) - goto no_suiveur; - ptab = kPersoRoomBankTable + _globals->_characterPtr->_roomBankId; - bank = *ptab++; + if (bank == 0xFF) { + ptab = kPersoRoomBankTable + _globals->_characterPtr->_roomBankId; + bank = *ptab++; + } } displayBackgroundFollower(); -no_suiveur: - ; - if (bank) { - useBank(bank); - if (_globals->_characterPtr == &kPersons[PER_UNKN_156]) - noclipax_avecnoir(0, 0, 16); - else - noclipax(0, 0, 16); - } + displayNoFollower(bank); } // Original name: af_fondperso diff --git a/engines/cryo/eden.h b/engines/cryo/eden.h index 873fcd3111..277dfc1385 100644 --- a/engines/cryo/eden.h +++ b/engines/cryo/eden.h @@ -179,6 +179,7 @@ private: void no_perso(); void closeCharacterScreen(); void displayBackgroundFollower(); + void displayNoFollower(int16 bank); void displayCharacterBackground1(); void displayCharacterBackground(); void setCharacterIcon(); |