diff options
-rw-r--r-- | engines/sherlock/objects.cpp | 2 | ||||
-rw-r--r-- | engines/sherlock/objects.h | 2 | ||||
-rw-r--r-- | engines/sherlock/user_interface.cpp | 4 |
3 files changed, 6 insertions, 2 deletions
diff --git a/engines/sherlock/objects.cpp b/engines/sherlock/objects.cpp index a27807627e..2d939ce6cf 100644 --- a/engines/sherlock/objects.cpp +++ b/engines/sherlock/objects.cpp @@ -855,6 +855,7 @@ WalkSequences &WalkSequences::operator=(const WalkSequences &src) { ActionType::ActionType() { _cAnimNum = _cAnimSpeed = 0; + _useFlag = 0; } void ActionType::load(Common::SeekableReadStream &s) { @@ -874,7 +875,6 @@ void ActionType::load(Common::SeekableReadStream &s) { /*----------------------------------------------------------------*/ UseType::UseType(): ActionType() { - _useFlag = 0; } void UseType::load(Common::SeekableReadStream &s, bool isRoseTattoo) { diff --git a/engines/sherlock/objects.h b/engines/sherlock/objects.h index 8cfb466255..996054be43 100644 --- a/engines/sherlock/objects.h +++ b/engines/sherlock/objects.h @@ -156,6 +156,7 @@ struct ActionType { int _cAnimNum; int _cAnimSpeed; Common::String _names[NAMES_COUNT]; + int _useFlag; // Which flag USE will set (if any) ActionType(); @@ -166,7 +167,6 @@ struct ActionType { }; struct UseType: public ActionType { - int _useFlag; // Which flag USE will set (if any) Common::String _target; Common::String _verb; diff --git a/engines/sherlock/user_interface.cpp b/engines/sherlock/user_interface.cpp index 37bde6be6c..9db29023c8 100644 --- a/engines/sherlock/user_interface.cpp +++ b/engines/sherlock/user_interface.cpp @@ -65,6 +65,10 @@ void UserInterface::checkAction(ActionType &action, int objNum, FixedTextActionI Talk &talk = *_vm->_talk; Point32 pt(-1, -1); + if (action._useFlag) + // Automatically set the given flag + _vm->setFlags(action._useFlag); + if (objNum >= 1000) // Ignore actions done on characters return; |