aboutsummaryrefslogtreecommitdiff
path: root/engines/adl/adl_v5.cpp
diff options
context:
space:
mode:
authorWalter van Niftrik2019-03-26 23:41:23 +0100
committerWalter van Niftrik2019-03-30 23:18:02 +0100
commitfa7688a93199f25e84d7c39ca232a4f20a629274 (patch)
treebcb44cb7606e0bd515a69cf3a724061e0408ff14 /engines/adl/adl_v5.cpp
parent658af785d1d6cb448e1dcf0251f80e2e9f62794a (diff)
downloadscummvm-rg350-fa7688a93199f25e84d7c39ca232a4f20a629274.tar.gz
scummvm-rg350-fa7688a93199f25e84d7c39ca232a4f20a629274.tar.bz2
scummvm-rg350-fa7688a93199f25e84d7c39ca232a4f20a629274.zip
ADL: Refactor opcodes
Diffstat (limited to 'engines/adl/adl_v5.cpp')
-rw-r--r--engines/adl/adl_v5.cpp25
1 files changed, 18 insertions, 7 deletions
diff --git a/engines/adl/adl_v5.cpp b/engines/adl/adl_v5.cpp
index 929ffff7f4..b797e73901 100644
--- a/engines/adl/adl_v5.cpp
+++ b/engines/adl/adl_v5.cpp
@@ -65,7 +65,18 @@ AdlEngine_v5::RegionChunkType AdlEngine_v5::getRegionChunkType(const uint16 addr
}
}
-int AdlEngine_v5::o5_isNounNotInRoom(ScriptEnv &e) {
+void AdlEngine_v5::setupOpcodeTables() {
+ AdlEngine_v4::setupOpcodeTables();
+
+ _condOpcodes[0x0a] = opcode(&AdlEngine_v5::o_abortScript);
+
+ _actOpcodes[0x0a] = opcode(&AdlEngine_v5::o_dummy);
+ _actOpcodes[0x0b] = opcode(&AdlEngine_v5::o_setTextMode);
+ _actOpcodes[0x0e] = opcode(&AdlEngine_v5::o_dummy);
+ _actOpcodes[0x13] = opcode(&AdlEngine_v5::o_dummy);
+}
+
+int AdlEngine_v5::o_isNounNotInRoom(ScriptEnv &e) {
OP_DEBUG_1("\t&& NO_SUCH_ITEMS_IN_ROOM(%s)", itemRoomStr(e.arg(1)).c_str());
Common::List<Item>::const_iterator item;
@@ -83,7 +94,7 @@ int AdlEngine_v5::o5_isNounNotInRoom(ScriptEnv &e) {
return 1;
}
-int AdlEngine_v5::o5_abortScript(ScriptEnv &e) {
+int AdlEngine_v5::o_abortScript(ScriptEnv &e) {
OP_DEBUG_0("\t&& ABORT_SCRIPT()");
_abortScript = true;
@@ -92,13 +103,13 @@ int AdlEngine_v5::o5_abortScript(ScriptEnv &e) {
return -1;
}
-int AdlEngine_v5::o5_dummy(ScriptEnv &e) {
+int AdlEngine_v5::o_dummy(ScriptEnv &e) {
OP_DEBUG_0("\tDUMMY()");
return 0;
}
-int AdlEngine_v5::o5_setTextMode(ScriptEnv &e) {
+int AdlEngine_v5::o_setTextMode(ScriptEnv &e) {
OP_DEBUG_1("\tSET_TEXT_MODE(%d)", e.arg(1));
switch (e.arg(1)) {
@@ -126,7 +137,7 @@ int AdlEngine_v5::o5_setTextMode(ScriptEnv &e) {
}
}
-int AdlEngine_v5::o5_setRegionRoom(ScriptEnv &e) {
+int AdlEngine_v5::o_setRegionRoom(ScriptEnv &e) {
OP_DEBUG_2("\tSET_REGION_ROOM(%d, %d)", e.arg(1), e.arg(2));
getCurRoom().curPicture = getCurRoom().picture;
@@ -137,7 +148,7 @@ int AdlEngine_v5::o5_setRegionRoom(ScriptEnv &e) {
return -1;
}
-int AdlEngine_v5::o5_setRoomPic(ScriptEnv &e) {
+int AdlEngine_v5::o_setRoomPic(ScriptEnv &e) {
const byte isFirstTime = restoreRoomState(e.arg(1));
// CHECKME: More peculiar isFirstTime handling (see also restoreRoomState).
@@ -147,7 +158,7 @@ int AdlEngine_v5::o5_setRoomPic(ScriptEnv &e) {
if (isFirstTime != 0xff)
getRoom(e.arg(1)).isFirstTime = isFirstTime;
- o4_setRoomPic(e);
+ AdlEngine_v4::o_setRoomPic(e);
return 2;
}