aboutsummaryrefslogtreecommitdiff
path: root/engines/agos
diff options
context:
space:
mode:
authorTravis Howell2006-10-06 06:12:57 +0000
committerTravis Howell2006-10-06 06:12:57 +0000
commitf1475e24f56fd823fbeef9b2aaffae8ac49160c2 (patch)
treea562caf41320429765072df50d4dc4293aabc73e /engines/agos
parent81cbb8f71826eb8c8df85aecebfec489ffe5caec (diff)
downloadscummvm-rg350-f1475e24f56fd823fbeef9b2aaffae8ac49160c2.tar.gz
scummvm-rg350-f1475e24f56fd823fbeef9b2aaffae8ac49160c2.tar.bz2
scummvm-rg350-f1475e24f56fd823fbeef9b2aaffae8ac49160c2.zip
Add debug video opcodes table for Elvira 1
svn-id: r24135
Diffstat (limited to 'engines/agos')
-rw-r--r--engines/agos/debug.cpp4
-rw-r--r--engines/agos/debug.h98
-rw-r--r--engines/agos/vga.cpp6
3 files changed, 92 insertions, 16 deletions
diff --git a/engines/agos/debug.cpp b/engines/agos/debug.cpp
index f3869c0037..2a108b8f29 100644
--- a/engines/agos/debug.cpp
+++ b/engines/agos/debug.cpp
@@ -216,8 +216,10 @@ void AGOSEngine::dump_video_script(const byte *src, bool one_opcode_only) {
strn = str = simon2_video_opcode_name_table[opcode];
} else if (getGameType() == GType_SIMON1) {
strn = str = simon1_video_opcode_name_table[opcode];
- } else {
+ } else if (getGameType() == GType_ELVIRA2 || getGameType() == GType_WW) {
strn = str = ww_video_opcode_name_table[opcode];
+ } else {
+ strn = str = elvira1_video_opcode_name_table[opcode];
}
while (*strn != '|')
diff --git a/engines/agos/debug.h b/engines/agos/debug.h
index 487a283a54..899a3834b0 100644
--- a/engines/agos/debug.h
+++ b/engines/agos/debug.h
@@ -1729,6 +1729,80 @@ static const char *const puzzlepack_opcode_name_table[256] = {
"BBBB|SET_COLOR",
};
+const char *const elvira1_video_opcode_name_table[] = {
+ /* 0 */
+ "x|RET",
+ "ddd|FADEOUT",
+ "d|CALL",
+ "ddddd|NEW_SPRITE",
+ /* 4 */
+ "ddd|FADEIN",
+ "vd|SKIP_IF_NEQ",
+ "d|SKIP_IFN_SIB_WITH_A",
+ "d|SKIP_IF_SIB_WITH_A",
+ /* 8 */
+ "dd|SKIP_IF_PARENT_IS",
+ "dd|SKIP_IF_UNK3_IS",
+ "dddd|DRAW",
+ "d|VC_11",
+ /* 12 */
+ "|VC_12",
+ "d|DELAY",
+ "d|SET_SPRITE_OFFSET_X",
+ "d|SET_SPRITE_OFFSET_Y",
+ /* 16 */
+ "d|SYNC",
+ "d|WAIT_SYNC",
+ "d|VC_18",
+ "i|JUMP_REL",
+ /* 20 */
+ "|CHAIN_TO",
+ "dd|SET_REPEAT",
+ "i|END_REPEAT",
+ "d|SET_PALETTE",
+ /* 24 */
+ "d|SET_PRIORITY",
+ "diid|SET_SPRITE_XY",
+ "x|HALT_SPRITE",
+ "ddddd|SET_WINDOW",
+ /* 28 */
+ "|RESET",
+ "dddd|PLAY_SOUND",
+ "|STOP_ALL_SOUNDS",
+ "d|SET_FRAME_RATE",
+ /* 32 */
+ "d|SET_WINDOW",
+ "|VC_33",
+ "|MOUSE_ON",
+ "|MOUSE_OFF",
+ /* 36 */
+ "|VC_36",
+ "d|VC_37",
+ "dd|CLEAR_WINDOW",
+ "d|VC_39",
+ /* 40 */
+ "dd|SET_WINDOW_IMAGE",
+ "dd|VC_41",
+ "|VC_42",
+ "|VC_43",
+ /* 44 */
+ "d|VC_44",
+ "d|VC_45",
+ "d|VC_46",
+ "dd|VC_47",
+ /* 48 */
+ "dd|VC_48",
+ "|VC_49",
+ "ddddddddd|VC_50",
+ "v|SKIP_IF_VAR_ZERO",
+ /* 52 */
+ "vd|SET_VAR",
+ "vd|ADD_VAR",
+ "vd|SUB_VAR",
+ "|VC_55",
+ "dd|VC_56",
+};
+
const char *const ww_video_opcode_name_table[] = {
/* 0 */
"x|RET",
@@ -1749,9 +1823,9 @@ const char *const ww_video_opcode_name_table[] = {
"d|DELAY",
"d|SET_SPRITE_OFFSET_X",
"d|SET_SPRITE_OFFSET_Y",
- "d|IDENT_WAKEUP",
+ "d|SYNC",
/* 16 */
- "d|IDENT_SLEEP",
+ "d|WAIT_SYNC",
"d|VC_17",
"i|JUMP_REL",
"|CHAIN_TO",
@@ -1776,7 +1850,7 @@ const char *const ww_video_opcode_name_table[] = {
"|MOUSE_OFF",
"dd|CLEAR_WINDOW",
/* 36 */
- "dd|SAVELOAD_THING",
+ "dd|SET_WINDOW_IMAGE",
"dd|VC_37",
"v|SKIP_IF_VAR_ZERO",
"vd|SET_VAR",
@@ -1832,9 +1906,9 @@ const char *const simon1_video_opcode_name_table[] = {
"d|DELAY",
"d|SET_SPRITE_OFFSET_X",
"d|SET_SPRITE_OFFSET_Y",
- "d|IDENT_WAKEUP",
+ "d|SYNC",
/* 16 */
- "d|IDENT_SLEEP",
+ "d|WAIT_SYNC",
"dq|SET_PATHFIND_ITEM",
"i|JUMP_REL",
"|CHAIN_TO",
@@ -1859,7 +1933,7 @@ const char *const simon1_video_opcode_name_table[] = {
"|MOUSE_OFF",
"dd|CLEAR_WINDOW",
/* 36 */
- "dd|SAVELOAD_THING",
+ "dd|SET_WINDOW_IMAGE",
"v|SET_SPRITE_OFFSET_Y",
"v|SKIP_IF_VAR_ZERO",
"vd|SET_VAR",
@@ -1915,9 +1989,9 @@ const char *const simon2_video_opcode_name_table[] = {
"b|DELAY",
"d|SET_SPRITE_OFFSET_X",
"d|SET_SPRITE_OFFSET_Y",
- "d|IDENT_WAKEUP",
+ "d|SYNC",
/* 16 */
- "d|IDENT_SLEEP",
+ "d|WAIT_SYNC",
"dq|SET_PATHFIND_ITEM",
"i|JUMP_REL",
"|CHAIN_TO",
@@ -1942,7 +2016,7 @@ const char *const simon2_video_opcode_name_table[] = {
"|MOUSE_OFF",
"dd|CLEAR_WINDOW",
/* 36 */
- "dd|SAVELOAD_THING",
+ "dd|SET_WINDOW_IMAGE",
"v|SET_SPRITE_OFFSET_Y",
"v|SKIP_IF_VAR_ZERO",
"vd|SET_VAR",
@@ -2012,9 +2086,9 @@ const char *const feeblefiles_video_opcode_name_table[] = {
"b|DELAY",
"d|SET_SPRITE_OFFSET_X",
"d|SET_SPRITE_OFFSET_Y",
- "d|IDENT_WAKEUP",
+ "d|SYNC",
/* 16 */
- "d|IDENT_SLEEP",
+ "d|WAIT_SYNC",
"dq|SET_PATHFIND_ITEM",
"i|JUMP_REL",
"|CHAIN_TO",
@@ -2039,7 +2113,7 @@ const char *const feeblefiles_video_opcode_name_table[] = {
"|MOUSE_OFF",
"dd|CLEAR_WINDOW",
/* 36 */
- "dd|SAVELOAD_THING",
+ "dd|SET_WINDOW_IMAGE",
"v|SET_SPRITE_OFFSET_Y",
"v|SKIP_IF_VAR_ZERO",
"vd|SET_VAR",
diff --git a/engines/agos/vga.cpp b/engines/agos/vga.cpp
index 7832ab915c..fc2fb566cc 100644
--- a/engines/agos/vga.cpp
+++ b/engines/agos/vga.cpp
@@ -107,7 +107,8 @@ void AGOSEngine::setupElvira1VideoOpcodes(VgaOpcodeProc *op) {
op[5] = &AGOSEngine::vc5_skip_if_neq;
op[6] = &AGOSEngine::vc6_skip_ifn_sib_with_a;
op[7] = &AGOSEngine::vc7_skip_if_sib_with_a;
-
+ op[8] = &AGOSEngine::vc8_skip_if_parent_is;
+ op[9] = &AGOSEngine::vc9_skip_if_unk3_is;
op[10] = &AGOSEngine::vc10_draw;
op[13] = &AGOSEngine::vc12_delay;
@@ -126,7 +127,6 @@ void AGOSEngine::setupElvira1VideoOpcodes(VgaOpcodeProc *op) {
op[26] = &AGOSEngine::vc25_halt_sprite;
op[27] = &AGOSEngine::vc26_setSubWindow;
op[28] = &AGOSEngine::vc27_resetSprite;
-
op[29] = &AGOSEngine::vc52_playSound;
op[30] = &AGOSEngine::vc29_stopAllSounds;
op[31] = &AGOSEngine::vc30_setFrameRate;
@@ -2415,7 +2415,7 @@ void AGOSEngine::vc59() {
} else if (getGameType() == GType_SIMON1) {
if (!_sound->isVoiceActive())
vcSkipNextInstruction();
- } else if (getGameType() == GType_WW) {
+ } else {
// Skip if not EGA
vcSkipNextInstruction();
}