aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2006-10-19 23:57:54 +0000
committerTravis Howell2006-10-19 23:57:54 +0000
commite26954bcdb0a0277b5c6df4e785d1909d9865c7f (patch)
tree720980dd7d74f7650fdb909455d91e1e6255b143
parent75ee62d948b3593663155779129f81bfe47e3e27 (diff)
downloadscummvm-rg350-e26954bcdb0a0277b5c6df4e785d1909d9865c7f.tar.gz
scummvm-rg350-e26954bcdb0a0277b5c6df4e785d1909d9865c7f.tar.bz2
scummvm-rg350-e26954bcdb0a0277b5c6df4e785d1909d9865c7f.zip
Split script opcode tables up into more specifics
svn-id: r24393
-rw-r--r--engines/agos/script.cpp21
-rw-r--r--engines/agos/script_e2.cpp19
-rw-r--r--engines/agos/script_ff.cpp16
-rw-r--r--engines/agos/script_pp.cpp15
-rw-r--r--engines/agos/script_s1.cpp19
-rw-r--r--engines/agos/script_s2.cpp19
-rw-r--r--engines/agos/script_ww.cpp22
7 files changed, 67 insertions, 64 deletions
diff --git a/engines/agos/script.cpp b/engines/agos/script.cpp
index b9ac893268..3a03444a74 100644
--- a/engines/agos/script.cpp
+++ b/engines/agos/script.cpp
@@ -37,7 +37,7 @@ extern bool isSmartphone(void);
namespace AGOS {
void AGOSEngine::setupCommonOpcodes(OpcodeProc *op) {
- // A sensible set of opcodes for Simon 1 and later.
+ // A common set of opcodes for Elvira 2 and later.
op[1] = &AGOSEngine::o_at;
op[2] = &AGOSEngine::o_notAt;
@@ -85,9 +85,6 @@ void AGOSEngine::setupCommonOpcodes(OpcodeProc *op) {
op[62] = &AGOSEngine::o_print;
op[63] = &AGOSEngine::o_message;
op[64] = &AGOSEngine::o_msg;
- op[65] = &AGOSEngine::o_addTextBox;
- op[66] = &AGOSEngine::o_setShortText;
- op[67] = &AGOSEngine::o_setLongText;
op[68] = &AGOSEngine::o_end;
op[69] = &AGOSEngine::o_done;
op[71] = &AGOSEngine::o_process;
@@ -148,22 +145,6 @@ void AGOSEngine::setupCommonOpcodes(OpcodeProc *op) {
op[157] = &AGOSEngine::o_getOValue;
op[158] = &AGOSEngine::o_setOValue;
op[160] = &AGOSEngine::o_ink;
- op[161] = &AGOSEngine::o_screenTextBox;
- op[162] = &AGOSEngine::o_screenTextMsg;
- op[163] = &AGOSEngine::o_playEffect;
- op[164] = &AGOSEngine::o_getDollar2;
- op[165] = &AGOSEngine::o_isAdjNoun;
- op[166] = &AGOSEngine::o_b2Set;
- op[167] = &AGOSEngine::o_b2Clear;
- op[168] = &AGOSEngine::o_b2Zero;
- op[169] = &AGOSEngine::o_b2NotZero;
- op[175] = &AGOSEngine::o_lockZones;
- op[176] = &AGOSEngine::o_unlockZones;
- op[178] = &AGOSEngine::o_getPathPosn;
- op[179] = &AGOSEngine::o_scnTxtLongText;
- op[180] = &AGOSEngine::o_mouseOn;
- op[184] = &AGOSEngine::o_unloadZone;
- op[186] = &AGOSEngine::o_unfreezeZones;
}
void AGOSEngine::setupOpcodes() {
diff --git a/engines/agos/script_e2.cpp b/engines/agos/script_e2.cpp
index 33231a4de4..abaff14f88 100644
--- a/engines/agos/script_e2.cpp
+++ b/engines/agos/script_e2.cpp
@@ -67,25 +67,6 @@ void AGOSEngine::setupElvira2Opcodes(OpcodeProc *op) {
op[181] = &AGOSEngine::o_b2Clear;
op[182] = &AGOSEngine::o_b2Zero;
op[183] = &AGOSEngine::o_b2NotZero;
-
- // Code difference, check if triggered
- op[65] = NULL;
- op[66] = NULL;
- op[67] = NULL;
- op[70] = NULL;
- op[163] = NULL;
- op[164] = NULL;
- op[167] = NULL;
- op[168] = NULL;
- op[169] = NULL;
- op[170] = NULL;
- op[171] = NULL;
- op[172] = NULL;
- op[173] = NULL;
- op[174] = NULL;
- op[176] = NULL;
- op[177] = NULL;
- op[178] = NULL;
}
// -----------------------------------------------------------------------
diff --git a/engines/agos/script_ff.cpp b/engines/agos/script_ff.cpp
index 36eb28c78b..39f684fbd0 100644
--- a/engines/agos/script_ff.cpp
+++ b/engines/agos/script_ff.cpp
@@ -36,6 +36,8 @@ void AGOSEngine::setupFeebleOpcodes(OpcodeProc *op) {
op[23] = &AGOSEngine::o3_chance;
op[37] = &AGOSEngine::o3_jumpOut;
op[65] = &AGOSEngine::o3_addTextBox;
+ op[66] = &AGOSEngine::o_setShortText;
+ op[67] = &AGOSEngine::o_setLongText;
op[70] = &AGOSEngine::o3_printLongText;
op[83] = &AGOSEngine::o2_rescan;
op[98] = &AGOSEngine::o2_animate;
@@ -51,15 +53,27 @@ void AGOSEngine::setupFeebleOpcodes(OpcodeProc *op) {
op[134] = &AGOSEngine::o3_listSaveGames;
op[135] = &AGOSEngine::o3_checkCD;
op[161] = &AGOSEngine::o3_screenTextBox;
- op[163] = NULL;
+ op[162] = &AGOSEngine::o_screenTextMsg;
+ op[164] = &AGOSEngine::o_getDollar2;
op[165] = &AGOSEngine::o3_isAdjNoun;
+ op[166] = &AGOSEngine::o_b2Set;
+ op[167] = &AGOSEngine::o_b2Clear;
+ op[168] = &AGOSEngine::o_b2Zero;
+ op[169] = &AGOSEngine::o_b2NotZero;
op[171] = &AGOSEngine::o3_hyperLinkOn;
op[172] = &AGOSEngine::o3_hyperLinkOff;
op[173] = &AGOSEngine::o3_checkPaths;
+ op[175] = &AGOSEngine::o_lockZones;
+ op[176] = &AGOSEngine::o_unlockZones;
op[177] = &AGOSEngine::o3_screenTextPObj;
+ op[178] = &AGOSEngine::o_getPathPosn;
+ op[179] = &AGOSEngine::o_scnTxtLongText;
+ op[180] = &AGOSEngine::o_mouseOn;
op[181] = &AGOSEngine::o3_mouseOff;
op[182] = &AGOSEngine::o3_loadVideo;
op[183] = &AGOSEngine::o3_playVideo;
+ op[184] = &AGOSEngine::o_unloadZone;
+ op[186] = &AGOSEngine::o_unfreezeZones;
op[187] = &AGOSEngine::o3_centreScroll;
op[188] = &AGOSEngine::o2_isShortText;
op[189] = &AGOSEngine::o2_clearMarks;
diff --git a/engines/agos/script_pp.cpp b/engines/agos/script_pp.cpp
index 530fdbb7d0..70792a36b2 100644
--- a/engines/agos/script_pp.cpp
+++ b/engines/agos/script_pp.cpp
@@ -37,6 +37,7 @@ void AGOSEngine::setupPuzzleOpcodes(OpcodeProc *op) {
op[63] = &AGOSEngine::o4_message;
op[65] = &AGOSEngine::o3_addTextBox;
op[66] = &AGOSEngine::o4_setShortText;
+ op[67] = &AGOSEngine::o_setLongText;
op[70] = &AGOSEngine::o3_printLongText;
op[83] = &AGOSEngine::o2_rescan;
op[98] = &AGOSEngine::o2_animate;
@@ -54,17 +55,21 @@ void AGOSEngine::setupPuzzleOpcodes(OpcodeProc *op) {
op[133] = &AGOSEngine::o4_loadUserGame;
op[134] = &AGOSEngine::o3_listSaveGames;
op[161] = &AGOSEngine::o3_screenTextBox;
- op[163] = NULL;
+ op[162] = &AGOSEngine::o_screenTextMsg;
+ op[164] = &AGOSEngine::o_getDollar2;
op[165] = &AGOSEngine::o3_isAdjNoun;
- op[166] = NULL;
- op[167] = NULL;
- op[168] = NULL;
- op[169] = NULL;
op[171] = &AGOSEngine::o3_hyperLinkOn;
op[172] = &AGOSEngine::o3_hyperLinkOff;
op[173] = &AGOSEngine::o4_saveOopsPosition;
+ op[175] = &AGOSEngine::o_lockZones;
+ op[176] = &AGOSEngine::o_unlockZones;
op[177] = &AGOSEngine::o3_screenTextPObj;
+ op[178] = &AGOSEngine::o_getPathPosn;
+ op[179] = &AGOSEngine::o_scnTxtLongText;
+ op[180] = &AGOSEngine::o_mouseOn;
op[181] = &AGOSEngine::o3_mouseOff;
+ op[184] = &AGOSEngine::o_unloadZone;
+ op[186] = &AGOSEngine::o_unfreezeZones;
op[187] = &AGOSEngine::o4_resetGameTime;
op[188] = &AGOSEngine::o2_isShortText;
op[189] = &AGOSEngine::o2_clearMarks;
diff --git a/engines/agos/script_s1.cpp b/engines/agos/script_s1.cpp
index 6f06d0f97b..61a4614971 100644
--- a/engines/agos/script_s1.cpp
+++ b/engines/agos/script_s1.cpp
@@ -30,16 +30,35 @@ namespace AGOS {
void AGOSEngine::setupSimon1Opcodes(OpcodeProc *op) {
setupCommonOpcodes(op);
+ op[65] = &AGOSEngine::o_addTextBox;
+ op[66] = &AGOSEngine::o_setShortText;
+ op[67] = &AGOSEngine::o_setLongText;
op[70] = &AGOSEngine::o1_printLongText;
op[83] = &AGOSEngine::o1_rescan;
op[98] = &AGOSEngine::o1_animate;
op[99] = &AGOSEngine::o1_stopAnimate;
op[127] = &AGOSEngine::o1_playTune;
+ op[161] = &AGOSEngine::o_screenTextBox;
+ op[162] = &AGOSEngine::o_screenTextMsg;
+ op[163] = &AGOSEngine::o_playEffect;
+ op[164] = &AGOSEngine::o_getDollar2;
+ op[165] = &AGOSEngine::o_isAdjNoun;
+ op[166] = &AGOSEngine::o_b2Set;
+ op[167] = &AGOSEngine::o_b2Clear;
+ op[168] = &AGOSEngine::o_b2Zero;
+ op[169] = &AGOSEngine::o_b2NotZero;
+ op[175] = &AGOSEngine::o_lockZones;
+ op[176] = &AGOSEngine::o_unlockZones;
op[177] = &AGOSEngine::o1_screenTextPObj;
+ op[178] = &AGOSEngine::o_getPathPosn;
+ op[179] = &AGOSEngine::o_scnTxtLongText;
+ op[180] = &AGOSEngine::o_mouseOn;
op[181] = &AGOSEngine::o1_mouseOff;
op[182] = &AGOSEngine::o1_loadBeard;
op[183] = &AGOSEngine::o1_unloadBeard;
+ op[184] = &AGOSEngine::o_unloadZone;
op[185] = &AGOSEngine::o1_loadStrings;
+ op[186] = &AGOSEngine::o_unfreezeZones;
op[187] = &AGOSEngine::o1_specialFade;
}
diff --git a/engines/agos/script_s2.cpp b/engines/agos/script_s2.cpp
index a8848276cb..186795885d 100644
--- a/engines/agos/script_s2.cpp
+++ b/engines/agos/script_s2.cpp
@@ -30,13 +30,32 @@ namespace AGOS {
void AGOSEngine::setupSimon2Opcodes(OpcodeProc *op) {
setupCommonOpcodes(op);
+ op[65] = &AGOSEngine::o_addTextBox;
+ op[66] = &AGOSEngine::o_setShortText;
+ op[67] = &AGOSEngine::o_setLongText;
op[70] = &AGOSEngine::o2_printLongText;
op[83] = &AGOSEngine::o2_rescan;
op[98] = &AGOSEngine::o2_animate;
op[99] = &AGOSEngine::o2_stopAnimate;
op[127] = &AGOSEngine::o2_playTune;
+ op[161] = &AGOSEngine::o_screenTextBox;
+ op[162] = &AGOSEngine::o_screenTextMsg;
+ op[163] = &AGOSEngine::o_playEffect;
+ op[164] = &AGOSEngine::o_getDollar2;
+ op[165] = &AGOSEngine::o_isAdjNoun;
+ op[166] = &AGOSEngine::o_b2Set;
+ op[167] = &AGOSEngine::o_b2Clear;
+ op[168] = &AGOSEngine::o_b2Zero;
+ op[169] = &AGOSEngine::o_b2NotZero;
+ op[175] = &AGOSEngine::o_lockZones;
+ op[176] = &AGOSEngine::o_unlockZones;
op[177] = &AGOSEngine::o2_screenTextPObj;
+ op[178] = &AGOSEngine::o_getPathPosn;
+ op[179] = &AGOSEngine::o_scnTxtLongText;
+ op[180] = &AGOSEngine::o_mouseOn;
op[181] = &AGOSEngine::o2_mouseOff;
+ op[184] = &AGOSEngine::o_unloadZone;
+ op[186] = &AGOSEngine::o_unfreezeZones;
op[188] = &AGOSEngine::o2_isShortText;
op[189] = &AGOSEngine::o2_clearMarks;
op[190] = &AGOSEngine::o2_waitMark;
diff --git a/engines/agos/script_ww.cpp b/engines/agos/script_ww.cpp
index ecb3b70eb1..5297cb4e3c 100644
--- a/engines/agos/script_ww.cpp
+++ b/engines/agos/script_ww.cpp
@@ -32,7 +32,6 @@ namespace AGOS {
void AGOSEngine::setupWaxworksOpcodes(OpcodeProc *op) {
setupCommonOpcodes(op);
- // Confirmed
op[8] = &AGOSEngine::oe1_isNotAt;
op[9] = &AGOSEngine::oe1_sibling;
op[10] = &AGOSEngine::oe1_notSibling;
@@ -43,6 +42,9 @@ void AGOSEngine::setupWaxworksOpcodes(OpcodeProc *op) {
op[35] = &AGOSEngine::oe1_copyfo;
op[54] = &AGOSEngine::oww_moveDirn;
op[55] = &AGOSEngine::oww_goto;
+ op[65] = &AGOSEngine::o_addTextBox;
+ op[66] = &AGOSEngine::o_setShortText;
+ op[67] = &AGOSEngine::o_setLongText;
op[70] = &AGOSEngine::o1_printLongText;
op[73] = &AGOSEngine::oe1_pObj;
op[74] = &AGOSEngine::oe1_pName;
@@ -79,24 +81,6 @@ void AGOSEngine::setupWaxworksOpcodes(OpcodeProc *op) {
op[188] = &AGOSEngine::oww_boxPObj;
op[189] = &AGOSEngine::o_lockZones;
op[190] = &AGOSEngine::o_unlockZones;
-
- // Code difference, check if triggered
- op[161] = NULL;
- op[163] = NULL;
- op[164] = NULL;
- op[165] = NULL;
- op[166] = NULL;
- op[167] = NULL;
- op[168] = NULL;
- op[169] = NULL;
- op[170] = NULL;
- op[171] = NULL;
- op[172] = NULL;
- op[173] = NULL;
- op[174] = NULL;
- op[176] = NULL;
- op[177] = NULL;
- op[178] = NULL;
}
// -----------------------------------------------------------------------