diff options
author | Walter van Niftrik | 2019-03-26 23:41:23 +0100 |
---|---|---|
committer | Walter van Niftrik | 2019-03-30 23:18:02 +0100 |
commit | fa7688a93199f25e84d7c39ca232a4f20a629274 (patch) | |
tree | bcb44cb7606e0bd515a69cf3a724061e0408ff14 /engines/adl/adl_v5.cpp | |
parent | 658af785d1d6cb448e1dcf0251f80e2e9f62794a (diff) | |
download | scummvm-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.cpp | 25 |
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; } |