aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/myst_scripts.h
diff options
context:
space:
mode:
authorBastien Bouclet2016-02-06 17:41:50 +0100
committerBastien Bouclet2016-02-07 15:27:03 +0100
commit0463e00fb6b776c7774c4e1f06261e78732788f6 (patch)
treeeae9a09163526920e731c60dd784e49b3e5ea75a /engines/mohawk/myst_scripts.h
parentbff0dd191540b7698c9615a213916d1adf562bbb (diff)
downloadscummvm-rg350-0463e00fb6b776c7774c4e1f06261e78732788f6.tar.gz
scummvm-rg350-0463e00fb6b776c7774c4e1f06261e78732788f6.tar.bz2
scummvm-rg350-0463e00fb6b776c7774c4e1f06261e78732788f6.zip
MOHAWK: Don't downcast _invokingResource using static_cast
Diffstat (limited to 'engines/mohawk/myst_scripts.h')
-rw-r--r--engines/mohawk/myst_scripts.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/engines/mohawk/myst_scripts.h b/engines/mohawk/myst_scripts.h
index 835bb7c270..69052b10f5 100644
--- a/engines/mohawk/myst_scripts.h
+++ b/engines/mohawk/myst_scripts.h
@@ -151,8 +151,6 @@ protected:
Common::Array<MystOpcode *> _opcodes;
- MystArea *_invokingResource;
-
uint16 _savedCardId;
uint16 _savedMapCardId;
uint16 _savedCursorId;
@@ -163,8 +161,25 @@ protected:
static const uint16 _startCard[];
void setupCommonOpcodes();
+
+ template<class T>
+ T *getInvokingResource() const;
+
+private:
+ MystArea *_invokingResource;
};
+template<class T>
+T *MystScriptParser::getInvokingResource() const {
+ T *resource = dynamic_cast<T *>(_invokingResource);
+
+ if (!resource) {
+ error("Invoking resource has unexpected type");
+ }
+
+ return resource;
+}
+
} // End of namespace Mohawk
#undef DECLARE_OPCODE