From 2620d6836c001f2f295cb6efd6beab78f5a3c50f Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Sun, 8 Mar 2009 08:45:21 +0000 Subject: Add initial support for Personal Nightmare. Thanks to dreammaster for file decompression and icon decoding code. NOTE: setjmp/longjmp code will require conversion for portability. svn-id: r39216 --- engines/agos/debug.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'engines/agos/debug.cpp') diff --git a/engines/agos/debug.cpp b/engines/agos/debug.cpp index 069af828c3..0959d48e07 100644 --- a/engines/agos/debug.cpp +++ b/engines/agos/debug.cpp @@ -231,8 +231,10 @@ void AGOSEngine::dumpVideoScript(const byte *src, bool singeOpcode) { strn = str = simon1_videoOpcodeNameTable[opcode]; } else if (getGameType() == GType_ELVIRA2 || getGameType() == GType_WW) { strn = str = ww_videoOpcodeNameTable[opcode]; - } else { + } else if (getGameType() == GType_ELVIRA1) { strn = str = elvira1_videoOpcodeNameTable[opcode]; + } else { + strn = str = pn_videoOpcodeNameTable[opcode]; } if (strn == NULL) { @@ -295,6 +297,24 @@ void AGOSEngine::dumpVgaScriptAlways(const byte *ptr, uint16 res, uint16 id) { printf("; end\n"); } +void AGOSEngine::dumpAllVgaFiles() { + uint8 start = (getGameType() == GType_PN) ? 0 : 2; + uint8 end = (getGameType() == GType_PN) ? 26 : 450; + + for (int f = start; f < end; f++) { + uint16 zoneNum = (getGameType() == GType_PN) ? 0 : f; + loadZone(f, false); + + VgaPointersEntry *vpe = &_vgaBufferPointers[zoneNum]; + if (vpe->vgaFile1 != NULL) { + _curVgaFile1 = vpe->vgaFile1; + dumpVgaFile(_curVgaFile1); + } + } + + error("Complete"); +} + void AGOSEngine_Feeble::dumpVgaFile(const byte *vga) { const byte *pp; const byte *p; -- cgit v1.2.3