mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-23 19:16:21 +00:00
TITANIC: Fix magazine being winnable multiple times
This commit is contained in:
parent
7b0db9e1ec
commit
ee458e557e
@ -912,7 +912,7 @@ bool CGameObject::compareViewNameTo(const CString &name) const {
|
||||
return !getViewFullName().compareToIgnoreCase(name);
|
||||
}
|
||||
|
||||
int CGameObject::compareRoomNameTo(const CString &name) {
|
||||
bool CGameObject::compareRoomNameTo(const CString &name) {
|
||||
CRoomItem *room = getGameManager()->getRoom();
|
||||
return !room->getName().compareToIgnoreCase(name);
|
||||
}
|
||||
|
@ -329,7 +329,7 @@ protected:
|
||||
/**
|
||||
* Compare the name of the parent room to the item to a passed string
|
||||
*/
|
||||
int compareRoomNameTo(const CString &name);
|
||||
bool compareRoomNameTo(const CString &name);
|
||||
|
||||
/**
|
||||
* Gets the first object under the system MailMan
|
||||
|
@ -236,23 +236,31 @@ bool CTelevision::MovieEndMsg(CMovieEndMsg *msg) {
|
||||
}
|
||||
|
||||
if (_channelNum == 3 && compareRoomNameTo("SGTState") && getPassengerClass() == THIRD_CLASS) {
|
||||
// You may be a winner
|
||||
CProximity prox1, prox2;
|
||||
prox1._soundType = prox2._soundType = Audio::Mixer::kSpeechSoundType;
|
||||
playSound("z#47.wav", prox1);
|
||||
_soundHandle = playSound("b#20.wav", prox2);
|
||||
CMagazine *magazine = dynamic_cast<CMagazine *>(getRoot()->findByName("Magazine"));
|
||||
// WORKAROUND: The original allowed the magazine to be "won" multiple times. We
|
||||
// now search for magazine within the room (which is it's initial, hidden location).
|
||||
// That way, when it's 'Won', it's no longer present and can't be won again
|
||||
CMagazine *magazine = dynamic_cast<CMagazine *>(findRoom()->findByName("Magazine"));
|
||||
|
||||
if (magazine) {
|
||||
// You may be a winner
|
||||
CProximity prox1, prox2;
|
||||
prox1._soundType = prox2._soundType = Audio::Mixer::kSpeechSoundType;
|
||||
playSound("z#47.wav", prox1);
|
||||
_soundHandle = playSound("b#20.wav", prox2);
|
||||
|
||||
// Get the room flags for the SGT floor we're on
|
||||
CPetControl *pet = getPetControl();
|
||||
uint roomFlags = pet->getRoomFlags();
|
||||
|
||||
debugC(kDebugScripts, "Assigned room - %d", roomFlags);
|
||||
// Send the magazine to the SuccUBus
|
||||
debugC(DEBUG_INTERMEDIATE, kDebugScripts, "Assigned room - %d", roomFlags);
|
||||
magazine->addMail(roomFlags);
|
||||
magazine->sendMail(roomFlags, roomFlags);
|
||||
}
|
||||
|
||||
loadFrame(561);
|
||||
loadFrame(561);
|
||||
} else {
|
||||
petDisplayMessage(NOTHING_ON_CHANNEL);
|
||||
}
|
||||
} else if (_channelNum == 2) {
|
||||
loadFrame(_seasonFrame);
|
||||
} else if (_channelNum == 4 && _channel4Glyph) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user