diff --git a/engines/titanic/pet_control/pet_control.cpp b/engines/titanic/pet_control/pet_control.cpp index 3c3efe14195..2d44885a3e1 100644 --- a/engines/titanic/pet_control/pet_control.cpp +++ b/engines/titanic/pet_control/pet_control.cpp @@ -155,7 +155,7 @@ void CPetControl::postLoad() { if (!_remoteTargetName.empty() && root) _remoteTarget = dynamic_cast(root->findByName(_remoteTargetName)); - setArea(_currentArea); + setArea(_currentArea, true); loaded(); } @@ -210,8 +210,8 @@ void CPetControl::resetActiveNPC() { _activeNPCName = ""; } -PetArea CPetControl::setArea(PetArea newArea) { - if (newArea == _currentArea || !isAreaActive()) +PetArea CPetControl::setArea(PetArea newArea, bool forceChange) { + if ((!forceChange && newArea == _currentArea) || !isAreaActive()) return _currentArea; // Signal the currently active area that it's being left diff --git a/engines/titanic/pet_control/pet_control.h b/engines/titanic/pet_control/pet_control.h index cdef505104e..d6f426b5072 100644 --- a/engines/titanic/pet_control/pet_control.h +++ b/engines/titanic/pet_control/pet_control.h @@ -181,7 +181,7 @@ public: /** * Sets the currently viewed area within the PET */ - PetArea setArea(PetArea newSection); + PetArea setArea(PetArea newSection, bool forceChange = false); /** * Hides the text cursor in the current section, if applicable