aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/subroutine.cpp
diff options
context:
space:
mode:
authorTravis Howell2006-10-13 11:38:41 +0000
committerTravis Howell2006-10-13 11:38:41 +0000
commitf46fb07f277cef1828c3807a38230db604df58d6 (patch)
tree5b72eea95a7b30092850f428b6dda23b98233143 /engines/agos/subroutine.cpp
parent0385a4d2bbcde1fac41452f5f75f091c3e84e533 (diff)
downloadscummvm-rg350-f46fb07f277cef1828c3807a38230db604df58d6.tar.gz
scummvm-rg350-f46fb07f277cef1828c3807a38230db604df58d6.tar.bz2
scummvm-rg350-f46fb07f277cef1828c3807a38230db604df58d6.zip
Add differences in opcode table for Elvira 2 and cleanup
svn-id: r24294
Diffstat (limited to 'engines/agos/subroutine.cpp')
-rw-r--r--engines/agos/subroutine.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/engines/agos/subroutine.cpp b/engines/agos/subroutine.cpp
index 16036032cc..c7535d0197 100644
--- a/engines/agos/subroutine.cpp
+++ b/engines/agos/subroutine.cpp
@@ -55,6 +55,23 @@ static const char *const opcodeArgTable_elvira1[300] = {
" ", "NI ","N ",
};
+static const char *const opcodeArgTable_elvira2[256] = {
+ " ", "I ", "I ", "I ", "I ", "I ", "I ", "II ", "II ", "II ", "II ", "B ", "B ", "BN ", "BN ",
+ "BN ", "BN ", "BB ", "BB ", "BB ", "BB ", "II ", "II ", "N ", "I ", "I ", "I ", "IN ", "IB ",
+ "II ", "I ", "I ", "II ", "II ", "IBB ", "BIB ", "BB ", "B ", "BI ", "IB ", "B ", "B ", "BN ",
+ "BN ", "BN ", "BB ", "BB ", "BN ", "BN ", "BB ", "BB ", "BN ", "BB ", "BN ", "B ", "I ", "IB ",
+ "IB ", "II ", "I ", "I ", "IN ", "B ", "T ", "T ", "I ", "I ", " ", "T ", " ", " ",
+ "N ", "IBN ", "I ", "I ", "I ", "NN ", " ", " ", "IT ", "II ", "I ", "B ", " ", "IB ", "IBB ",
+ "IIB ", "T ", "T ", "T ", "IB ", "IB ", "IB ", "B ", "BB ", "IBB ", "NB ", "N ", "NBNNN ", "N ",
+ " ", "BNNNNNN ", "B ", " ", "B ", "B ", "N ", "NNNNNIN ", "N ", "N ", "N ", "NNN ", "NBNN ",
+ "IBNN ", "IB ", "IB ", "IB ", "IB ", "N ", "N ", "N ", "BI ", " ", " ", "N ", "I ", "IBB ",
+ "NN ", "N ", "N ", "Ban ", "BB ", " ", " ", " ", " ", "IB ", "B ", " ", "II ", " ", "BI ", "N ",
+ "I ", "IB ", "IB ", "IB ", "IB ", "IB ", "IB ", "IB ", "BI ", "BB ", "B ", "B ", "B ", "B ",
+ "IBB ", "IBN ", "IB ", "B ", " ", "TB ", "TB ", "I ", "N ", "B ", "INB ", "INB ", "INB ", "INB ",
+ "INB ", "INB ", "INB ", "N ", " ", "INBB ", "B ", "B ", "Ian ", "B ", "B ", "B ", "B ", "T ",
+ "T ", "B ", " ", "I ", " ", " "
+};
+
static const char *const opcodeArgTable_waxworks[256] = {
" ", "I ", "I ", "I ", "I ", "I ", "I ", "II ", "II ", "II ", "II ", "B ", "B ", "BN ", "BN ",
"BN ", "BN ", "BB ", "BB ", "BB ", "BB ", "II ", "II ", "N ", "I ", "I ", "I ", "IN ", "IB ",
@@ -636,8 +653,10 @@ byte *AGOSEngine::readSingleOpcode(Common::File *in, byte *ptr) {
table = opcodeArgTable_simon1talkie;
else if (getGameType() == GType_SIMON1)
table = opcodeArgTable_simon1dos;
- else if (getGameType() == GType_WW || getGameType() == GType_ELVIRA2)
+ else if (getGameType() == GType_WW)
table = opcodeArgTable_waxworks;
+ else if (getGameType() == GType_ELVIRA2)
+ table = opcodeArgTable_elvira2;
else
table = opcodeArgTable_elvira1;