diff options
-rw-r--r-- | engines/agos/agos.h | 2 | ||||
-rw-r--r-- | engines/agos/debug.cpp | 13 | ||||
-rw-r--r-- | engines/agos/vga.cpp | 2 |
3 files changed, 11 insertions, 6 deletions
diff --git a/engines/agos/agos.h b/engines/agos/agos.h index bf0f0221bb..d3ddaff1c8 100644 --- a/engines/agos/agos.h +++ b/engines/agos/agos.h @@ -1195,7 +1195,7 @@ protected: void dx_clear_surfaces(uint num_lines); void dx_update_screen_and_palette(); - void dump_video_script(const byte *src, bool one_opcode_only); + void dumpVideoScript(const byte *src, bool one_opcode_only); void dump_vga_file(const byte *vga); void dump_vga_script(const byte *ptr, uint res, uint sprite_id); void dump_vga_script_always(const byte *ptr, uint res, uint sprite_id); diff --git a/engines/agos/debug.cpp b/engines/agos/debug.cpp index 01c7612b65..205457ae98 100644 --- a/engines/agos/debug.cpp +++ b/engines/agos/debug.cpp @@ -65,9 +65,11 @@ const byte *AGOSEngine::dumpOpcode(const byte *p) { } else { st = s = elvira1_opcode_name_table[opcode]; } + if (s == NULL) { - error("INVALID OPCODE %d", opcode); + error("dumpOpcode: INVALID OPCODE %d", opcode); } + while (*st != '|') st++; printf("%s ", st + 1); @@ -194,7 +196,7 @@ void AGOSEngine::dumpSubroutines() { } } -void AGOSEngine::dump_video_script(const byte *src, bool one_opcode_only) { +void AGOSEngine::dumpVideoScript(const byte *src, bool one_opcode_only) { uint opcode; const char *str, *strn; @@ -208,7 +210,6 @@ void AGOSEngine::dump_video_script(const byte *src, bool one_opcode_only) { if (opcode >= _numVideoOpcodes) { error("Invalid opcode %x", opcode); - return; } if (getGameType() == GType_FF || getGameType() == GType_PP) { @@ -223,6 +224,10 @@ void AGOSEngine::dump_video_script(const byte *src, bool one_opcode_only) { strn = str = elvira1_video_opcode_name_table[opcode]; } + if (strn == NULL) { + error("dumpVideoScript: INVALID OPCODE %d", opcode); + } + while (*strn != '|') strn++; printf("%.2d: %s ", opcode, strn + 1); @@ -475,7 +480,7 @@ void AGOSEngine::dump_vga_bitmaps(const byte *vga, byte *vga1, int res) { void AGOSEngine::dump_vga_script_always(const byte *ptr, uint res, uint sprite_id) { printf("; address=%x, vgafile=%d vgasprite=%d\n", (unsigned int)(ptr - _vgaBufferPointers[res].vgaFile1), res, sprite_id); - dump_video_script(ptr, false); + dumpVideoScript(ptr, false); printf("; end\n"); } diff --git a/engines/agos/vga.cpp b/engines/agos/vga.cpp index fc2fb566cc..436e0b82ad 100644 --- a/engines/agos/vga.cpp +++ b/engines/agos/vga.cpp @@ -213,7 +213,7 @@ void AGOSEngine::runVgaScript() { if (_continousVgaScript) { if (_vcPtr != (const byte *)&_vc_get_out_of_code) { printf("%.5d %.5X: %5d %4d ", _vgaTickCounter, (unsigned int)(_vcPtr - _curVgaFile1), _vgaCurSpriteId, _vgaCurZoneNum); - dump_video_script(_vcPtr, true); + dumpVideoScript(_vcPtr, true); } } |