TITANIC: Show SGT furniture in stateroom even after upgrading

This commit is contained in:
Paul Gilbert 2017-10-10 19:26:47 -04:00
parent 3fd2cf29b1
commit 567556a5c1

View File

@ -125,10 +125,10 @@ bool CSGTStateRoom::VisibleMsg(CVisibleMsg *msg) {
bool CSGTStateRoom::EnterRoomMsg(CEnterRoomMsg *msg) {
CPetControl *pet = getPetControl();
uint roomFlags = pet->getRoomFlags();
uint assignedRoom = pet->getAssignedRoomFlags();
if (roomFlags == assignedRoom) {
// WORKAROUND: Correctly show SGT furniture states in assigned stateroom
// even when the user has already upgraded to 2nd or 1st class
if (pet->isInAssignedRoom()) {
loadFrame(_savedFrame);
_isClosed = _savedIsClosed;
setVisible(_savedVisible);
@ -139,7 +139,7 @@ bool CSGTStateRoom::EnterRoomMsg(CEnterRoomMsg *msg) {
if (isEquals("Drawer")) {
petSetArea(PET_REMOTE);
if (roomFlags == assignedRoom && getPassengerClass() == 3
if (pet->isInAssignedRoom() && getPassengerClass() == 3
&& _statics->_announcementFlag) {
// Congratulations, you may have won an upgrade
playSound(TRANSLATE("b#21.wav", "b#2.wav"));
@ -149,7 +149,7 @@ bool CSGTStateRoom::EnterRoomMsg(CEnterRoomMsg *msg) {
_statics->_drawer = "Closed";
setVisible(false);
_isClosed = true;
} else if (roomFlags != assignedRoom) {
} else if (!pet->isInAssignedRoom()) {
loadFrame(0);
if (_displayFlag) {
setVisible(true);