From 871e278f8be3fc4b27fadca50922dd2193dbd409 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sun, 10 Apr 2005 12:59:17 +0000 Subject: Reduce dependencies on scumm/util.h; modified ScummNESFile a bit so that it complies a bit better with our code formatting rules svn-id: r17508 --- scumm/actor.cpp | 11 ++ scumm/actor.h | 12 +- scumm/akos.cpp | 1 + scumm/bomp.cpp | 1 + scumm/boxes.cpp | 2 + scumm/charset.cpp | 1 + scumm/costume.cpp | 1 + scumm/imuse_digi/dimuse_bndmgr.cpp | 1 + scumm/imuse_digi/dimuse_sndmgr.cpp | 3 + scumm/nut_renderer.cpp | 1 + scumm/object.cpp | 1 + scumm/palette.cpp | 2 + scumm/palette_he.cpp | 1 + scumm/resource.cpp | 4 + scumm/resource_v2.cpp | 4 + scumm/resource_v3.cpp | 1 + scumm/resource_v4.cpp | 1 + scumm/resource_v7he.cpp | 2 + scumm/room.cpp | 1 + scumm/script.cpp | 1 + scumm/script_v100he.cpp | 1 + scumm/script_v2.cpp | 1 + scumm/script_v5.cpp | 2 + scumm/script_v6he.cpp | 1 + scumm/script_v72he.cpp | 1 + scumm/script_v80he.cpp | 1 + scumm/script_v90he.cpp | 1 + scumm/scumm.cpp | 9 ++ scumm/scumm.h | 9 +- scumm/smush/smush_font.cpp | 1 + scumm/sound.cpp | 1 + scumm/sprite_he.cpp | 1 + scumm/string.cpp | 1 + scumm/util.cpp | 222 ++++++++++++++++++++----------------- scumm/util.h | 40 ++----- 35 files changed, 199 insertions(+), 145 deletions(-) diff --git a/scumm/actor.cpp b/scumm/actor.cpp index 7f5193edf6..f9cf50eb18 100644 --- a/scumm/actor.cpp +++ b/scumm/actor.cpp @@ -32,6 +32,7 @@ #include "scumm/saveload.h" #include "scumm/sound.h" #include "scumm/usage_bits.h" +#include "scumm/util.h" #include "scumm/wiz_he.h" namespace Scumm { @@ -1747,6 +1748,16 @@ byte *Actor::getActorName() { return ptr; } +int Actor::getAnimVar(byte var) const { + checkRange(26, 0, var, "getAnimVar %d out of range(r)"); + return _animVariable[var]; +} + +void Actor::setAnimVar(byte var, int value) { + checkRange(26, 0, var, "setAnimVar %d out of range(r)"); + _animVariable[var] = value; +} + void Actor::remapActorPaletteColor(int color, int new_color) { const byte *akos, *akpl; int akpl_size, i; diff --git a/scumm/actor.h b/scumm/actor.h index ed63cc567e..7580b418fa 100644 --- a/scumm/actor.h +++ b/scumm/actor.h @@ -26,6 +26,8 @@ #include "common/scummsys.h" #include "scumm/scumm.h" + + namespace Scumm { enum MoveFlags { @@ -225,14 +227,8 @@ public: return _facing; } - int getAnimVar(byte var) const { - checkRange(26, 0, var, "getAnimVar %d out of range(r)"); - return _animVariable[var]; - } - void setAnimVar(byte var, int value) { - checkRange(26, 0, var, "setAnimVar %d out of range(r)"); - _animVariable[var] = value; - } + int getAnimVar(byte var) const; + void setAnimVar(byte var, int value); void setAnimSpeed(byte newAnimSpeed) { _animSpeed = newAnimSpeed; diff --git a/scumm/akos.cpp b/scumm/akos.cpp index 40f1c765cc..e9c4b591bb 100644 --- a/scumm/akos.cpp +++ b/scumm/akos.cpp @@ -28,6 +28,7 @@ #include "scumm/imuse.h" #include "scumm/imuse_digi/dimuse.h" #include "scumm/sound.h" +#include "scumm/util.h" #include "scumm/wiz_he.h" namespace Scumm { diff --git a/scumm/bomp.cpp b/scumm/bomp.cpp index 7fd6b852a5..ded9f912bc 100644 --- a/scumm/bomp.cpp +++ b/scumm/bomp.cpp @@ -23,6 +23,7 @@ #include "scumm/scumm.h" #include "scumm/akos.h" #include "scumm/bomp.h" +#include "scumm/util.h" namespace Scumm { diff --git a/scumm/boxes.cpp b/scumm/boxes.cpp index 43c9fddd42..c58ef8abc1 100644 --- a/scumm/boxes.cpp +++ b/scumm/boxes.cpp @@ -24,6 +24,8 @@ #include "scumm/scumm.h" #include "scumm/actor.h" #include "scumm/boxes.h" +#include "scumm/util.h" + #include "common/util.h" namespace Scumm { diff --git a/scumm/charset.cpp b/scumm/charset.cpp index 76613f01dd..24175b095b 100644 --- a/scumm/charset.cpp +++ b/scumm/charset.cpp @@ -22,6 +22,7 @@ #include "scumm/charset.h" #include "scumm/scumm.h" #include "scumm/nut_renderer.h" +#include "scumm/util.h" #include "scumm/wiz_he.h" namespace Scumm { diff --git a/scumm/costume.cpp b/scumm/costume.cpp index 9d234457a1..5229fb6465 100644 --- a/scumm/costume.cpp +++ b/scumm/costume.cpp @@ -25,6 +25,7 @@ #include "scumm/actor.h" #include "scumm/costume.h" #include "scumm/sound.h" +#include "scumm/util.h" #if defined(__PALM_OS__) #include "arm/native.h" diff --git a/scumm/imuse_digi/dimuse_bndmgr.cpp b/scumm/imuse_digi/dimuse_bndmgr.cpp index c9690753b2..b94a2f44b6 100644 --- a/scumm/imuse_digi/dimuse_bndmgr.cpp +++ b/scumm/imuse_digi/dimuse_bndmgr.cpp @@ -21,6 +21,7 @@ #include "stdafx.h" #include "common/scummsys.h" #include "scumm/scumm.h" +#include "scumm/util.h" #include "scumm/imuse_digi/dimuse_bndmgr.h" namespace Scumm { diff --git a/scumm/imuse_digi/dimuse_sndmgr.cpp b/scumm/imuse_digi/dimuse_sndmgr.cpp index 924d0e2193..238aeb2e91 100644 --- a/scumm/imuse_digi/dimuse_sndmgr.cpp +++ b/scumm/imuse_digi/dimuse_sndmgr.cpp @@ -21,10 +21,13 @@ #include "stdafx.h" #include "common/scummsys.h" #include "common/util.h" + #include "sound/voc.h" #include "sound/vorbis.h" #include "sound/mp3.h" + #include "scumm/scumm.h" +#include "scumm/util.h" #include "scumm/imuse_digi/dimuse.h" #include "scumm/imuse_digi/dimuse_sndmgr.h" #include "scumm/imuse_digi/dimuse_bndmgr.h" diff --git a/scumm/nut_renderer.cpp b/scumm/nut_renderer.cpp index a74d75e851..0a3e718cd2 100644 --- a/scumm/nut_renderer.cpp +++ b/scumm/nut_renderer.cpp @@ -22,6 +22,7 @@ #include "scumm/scumm.h" #include "scumm/nut_renderer.h" #include "scumm/bomp.h" +#include "scumm/util.h" namespace Scumm { diff --git a/scumm/object.cpp b/scumm/object.cpp index 4b93a25b9f..23c4ec7f0d 100644 --- a/scumm/object.cpp +++ b/scumm/object.cpp @@ -28,6 +28,7 @@ #include "scumm/object.h" #include "scumm/resource.h" #include "scumm/usage_bits.h" +#include "scumm/util.h" namespace Scumm { diff --git a/scumm/palette.cpp b/scumm/palette.cpp index e6a5fd7648..e659b62488 100644 --- a/scumm/palette.cpp +++ b/scumm/palette.cpp @@ -22,9 +22,11 @@ #include "stdafx.h" #include "common/system.h" #include "common/util.h" + #include "scumm/scumm.h" #include "scumm/intern.h" #include "scumm/resource.h" +#include "scumm/util.h" namespace Scumm { diff --git a/scumm/palette_he.cpp b/scumm/palette_he.cpp index b8cf58965d..b4d47215d7 100644 --- a/scumm/palette_he.cpp +++ b/scumm/palette_he.cpp @@ -25,6 +25,7 @@ #include "scumm/scumm.h" #include "scumm/intern.h" #include "scumm/resource.h" +#include "scumm/util.h" namespace Scumm { diff --git a/scumm/resource.cpp b/scumm/resource.cpp index 0c3d2c7039..43199daeff 100644 --- a/scumm/resource.cpp +++ b/scumm/resource.cpp @@ -22,6 +22,7 @@ #include "stdafx.h" #include "common/str.h" + #include "scumm/dialogs.h" #include "scumm/imuse.h" #include "scumm/imuse_digi/dimuse.h" @@ -30,9 +31,12 @@ #include "scumm/resource.h" #include "scumm/scumm.h" #include "scumm/sound.h" +#include "scumm/util.h" #include "scumm/verbs.h" + #include "sound/mididrv.h" // Need MD_ enum values + namespace Scumm { extern const char *resTypeFromId(int id); diff --git a/scumm/resource_v2.cpp b/scumm/resource_v2.cpp index fb8dddc807..a0ab105ec1 100644 --- a/scumm/resource_v2.cpp +++ b/scumm/resource_v2.cpp @@ -20,11 +20,15 @@ */ #include "stdafx.h" + #include "scumm/scumm.h" #include "scumm/intern.h" #include "scumm/resource.h" +#include "scumm/util.h" + #include "sound/mididrv.h" + namespace Scumm { void ScummEngine_v2::readClassicIndexFile() { diff --git a/scumm/resource_v3.cpp b/scumm/resource_v3.cpp index 6313393329..909050de10 100644 --- a/scumm/resource_v3.cpp +++ b/scumm/resource_v3.cpp @@ -23,6 +23,7 @@ #include "stdafx.h" #include "scumm/scumm.h" #include "scumm/intern.h" +#include "scumm/util.h" namespace Scumm { diff --git a/scumm/resource_v4.cpp b/scumm/resource_v4.cpp index 9efa16573b..afcb39a7e8 100644 --- a/scumm/resource_v4.cpp +++ b/scumm/resource_v4.cpp @@ -24,6 +24,7 @@ #include "scumm/scumm.h" #include "scumm/intern.h" #include "scumm/resource.h" +#include "scumm/util.h" namespace Scumm { diff --git a/scumm/resource_v7he.cpp b/scumm/resource_v7he.cpp index 50ce21d870..52e92518b5 100644 --- a/scumm/resource_v7he.cpp +++ b/scumm/resource_v7he.cpp @@ -28,6 +28,8 @@ #include "scumm/intern.h" #include "scumm/resource.h" #include "scumm/resource_v7he.h" +#include "scumm/util.h" + #include "common/stream.h" #include "common/system.h" diff --git a/scumm/room.cpp b/scumm/room.cpp index b820de15e9..aac55f99c5 100644 --- a/scumm/room.cpp +++ b/scumm/room.cpp @@ -29,6 +29,7 @@ #include "scumm/resource.h" #include "scumm/scumm.h" #include "scumm/sound.h" +#include "scumm/util.h" namespace Scumm { diff --git a/scumm/script.cpp b/scumm/script.cpp index 92dbac56ee..66e2a7d3af 100644 --- a/scumm/script.cpp +++ b/scumm/script.cpp @@ -28,6 +28,7 @@ #include "scumm/actor.h" #include "scumm/object.h" #include "scumm/resource.h" +#include "scumm/util.h" #include "scumm/scumm.h" namespace Scumm { diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp index 3430936c68..7831c46eb5 100644 --- a/scumm/script_v100he.cpp +++ b/scumm/script_v100he.cpp @@ -33,6 +33,7 @@ #include "scumm/resource_v7he.h" #include "scumm/scumm.h" #include "scumm/sound.h" +#include "scumm/util.h" namespace Scumm { diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp index 3313c39497..ddfd88bf54 100644 --- a/scumm/script_v2.cpp +++ b/scumm/script_v2.cpp @@ -27,6 +27,7 @@ #include "scumm/object.h" #include "scumm/scumm.h" #include "scumm/sound.h" +#include "scumm/util.h" #include "scumm/verbs.h" namespace Scumm { diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp index 513f74c1a8..5e4a45ede5 100644 --- a/scumm/script_v5.cpp +++ b/scumm/script_v5.cpp @@ -27,7 +27,9 @@ #include "scumm/object.h" #include "scumm/scumm.h" #include "scumm/sound.h" +#include "scumm/util.h" #include "scumm/verbs.h" + #include "common/savefile.h" namespace Scumm { diff --git a/scumm/script_v6he.cpp b/scumm/script_v6he.cpp index 4a202ae5e4..eff6626ec8 100644 --- a/scumm/script_v6he.cpp +++ b/scumm/script_v6he.cpp @@ -34,6 +34,7 @@ #include "scumm/resource.h" #include "scumm/scumm.h" #include "scumm/sound.h" +#include "scumm/util.h" #include "scumm/verbs.h" namespace Scumm { diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp index 2e6acdeeec..76c2ce85c3 100644 --- a/scumm/script_v72he.cpp +++ b/scumm/script_v72he.cpp @@ -34,6 +34,7 @@ #include "scumm/resource_v7he.h" #include "scumm/scumm.h" #include "scumm/sound.h" +#include "scumm/util.h" #include "scumm/verbs.h" namespace Scumm { diff --git a/scumm/script_v80he.cpp b/scumm/script_v80he.cpp index 1b59643b40..73b820ad86 100644 --- a/scumm/script_v80he.cpp +++ b/scumm/script_v80he.cpp @@ -33,6 +33,7 @@ #include "scumm/resource_v7he.h" #include "scumm/scumm.h" #include "scumm/sound.h" +#include "scumm/util.h" namespace Scumm { diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp index 36e79be646..05cb6f51f1 100644 --- a/scumm/script_v90he.cpp +++ b/scumm/script_v90he.cpp @@ -33,6 +33,7 @@ #include "scumm/resource_v7he.h" #include "scumm/scumm.h" #include "scumm/sound.h" +#include "scumm/util.h" namespace Scumm { diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 4e5387e622..3c2422adb2 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -2265,6 +2265,15 @@ char ScummEngine::displayMessage(const char *altButton, const char *message, ... #pragma mark --- Miscellaneous --- #pragma mark - + +uint32 ScummEngine::fileReadDword() { +#if defined(SCUMM_LITTLE_ENDIAN) + return _fileHandle->readUint32LE(); +#elif defined(SCUMM_BIG_ENDIAN) + return _fileHandle->readUint32BE(); +#endif +} + void ScummEngine::errorString(const char *buf1, char *buf2) { if (_currentScript != 0xFF) { ScriptSlot *ss = &vm.slot[_currentScript]; diff --git a/scumm/scumm.h b/scumm/scumm.h index 6a6227aebd..b8e2ed8e11 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -31,7 +31,6 @@ #include "scumm/gfx.h" #include "scumm/script.h" -#include "scumm/util.h" namespace GUI { class Dialog; @@ -45,6 +44,7 @@ namespace Scumm { class Actor; class BaseCostumeLoader; class BaseCostumeRenderer; +class BaseScummFile; class CharsetRenderer; class IMuse; class IMuseDigital; @@ -1210,12 +1210,7 @@ public: protected: byte *_2byteFontPtr; - -#if defined(SCUMM_LITTLE_ENDIAN) - uint32 fileReadDword() { return _fileHandle->readUint32LE(); } -#elif defined(SCUMM_BIG_ENDIAN) - uint32 fileReadDword() { return _fileHandle->readUint32BE(); } -#endif + uint32 fileReadDword(); public: diff --git a/scumm/smush/smush_font.cpp b/scumm/smush/smush_font.cpp index 15de3d2261..4b71700b36 100644 --- a/scumm/smush/smush_font.cpp +++ b/scumm/smush/smush_font.cpp @@ -22,6 +22,7 @@ #include "stdafx.h" #include "common/file.h" #include "scumm/scumm.h" +#include "scumm/util.h" #include "scumm/smush/smush_font.h" diff --git a/scumm/sound.cpp b/scumm/sound.cpp index 263d6ed6cb..c0934ea626 100644 --- a/scumm/sound.cpp +++ b/scumm/sound.cpp @@ -27,6 +27,7 @@ #include "scumm/scumm.h" #include "scumm/saveload.h" #include "scumm/sound.h" +#include "scumm/util.h" #include "common/config-manager.h" #include "common/timer.h" diff --git a/scumm/sprite_he.cpp b/scumm/sprite_he.cpp index b0b1c8b327..b0e4f035fa 100644 --- a/scumm/sprite_he.cpp +++ b/scumm/sprite_he.cpp @@ -28,6 +28,7 @@ #include "scumm/scumm.h" #include "scumm/sprite_he.h" #include "scumm/usage_bits.h" +#include "scumm/util.h" #include "scumm/wiz_he.h" namespace Scumm { diff --git a/scumm/string.cpp b/scumm/string.cpp index 34f46d98f5..bf11debf71 100644 --- a/scumm/string.cpp +++ b/scumm/string.cpp @@ -31,6 +31,7 @@ #include "scumm/imuse_digi/dimuse.h" #include "scumm/verbs.h" #include "scumm/sound.h" +#include "scumm/util.h" namespace Scumm { diff --git a/scumm/util.cpp b/scumm/util.cpp index a4e0f614da..7e723ba830 100644 --- a/scumm/util.cpp +++ b/scumm/util.cpp @@ -275,7 +275,31 @@ const char *tag2str(uint32 tag) { #pragma mark --- ScummNESFile --- #pragma mark - - ScummNESFile::ScummNESFile() : _stream(0), _buf(0), _ROMset(kROMsetNum) { +enum ResType { + NES_UNKNOWN, + NES_GLOBDATA, + NES_ROOM, + NES_SCRIPT, + NES_SOUND, + NES_COSTUME, + NES_ROOMGFX, + NES_COSTUMEGFX, + NES_SPRPALS, + NES_SPRDESC, + NES_SPRLENS, + NES_SPROFFS, + NES_SPRDATA, + NES_CHARSET, + NES_PREPLIST +}; + +struct ScummNESFile::Resource { + uint32 offset[kROMsetNum]; + uint16 length[kROMsetNum]; + ResType type; +}; + +ScummNESFile::ScummNESFile() : _stream(0), _buf(0), _ROMset(kROMsetNum) { } uint32 ScummNESFile::write(const void *, uint32) { @@ -287,7 +311,7 @@ void ScummNESFile::setEnc(byte enc) { _stream->setEnc(enc); } -static ScummNESFile::t_resource res_roomgfx[40] = { +static ScummNESFile::Resource res_roomgfx[40] = { { {0x04001,0x04001,0x04001,0x04001}, {0x03C9,0x03B9,0x03F0,0x0426}, NES_ROOMGFX }, { {0x043CA,0x043BA,0x043F1,0x04427}, {0x069E,0x069E,0x069E,0x069E}, NES_ROOMGFX }, { {0x04A68,0x04A58,0x04A8F,0x04AC5}, {0x0327,0x0327,0x0327,0x0327}, NES_ROOMGFX }, @@ -330,12 +354,12 @@ static ScummNESFile::t_resource res_roomgfx[40] = { { {0x1312E,0x132C7,0x12F15,0x12F10}, {0x037A,0x037A,0x037A,0x037A}, NES_ROOMGFX } }; -static ScummNESFile::t_resource res_costumegfx[2] = { +static ScummNESFile::Resource res_costumegfx[2] = { { {0x30001,0x30001,0x2EFE1,0x30001}, {0x0EB8,0x0EB8,0x0EB8,0x0EB8}, NES_COSTUMEGFX }, { {0x2F9F1,0x2F9F1,0x30001,0x2F608}, {0x0340,0x0340,0x0340,0x0340}, NES_COSTUMEGFX } }; -static ScummNESFile::t_resource res_rooms[55] = { +static ScummNESFile::Resource res_rooms[55] = { { {0x00000,0x00000,0x00000,0x00000}, {0x0000,0x0000,0x0000,0x0000}, NES_ROOM }, { {0x14001,0x14001,0x14001,0x14001}, {0x0D0C,0x0D0C,0x0D12,0x0D76}, NES_ROOM }, { {0x134A8,0x13641,0x1328F,0x1328A}, {0x04B3,0x04B3,0x04B3,0x04C6}, NES_ROOM }, @@ -393,7 +417,7 @@ static ScummNESFile::t_resource res_rooms[55] = { { {0x13E42,0x2BDD7,0x27CF6,0x2C4BF}, {0x0169,0x0169,0x0169,0x0169}, NES_ROOM } }; -static ScummNESFile::t_resource res_scripts[179] = { +static ScummNESFile::Resource res_scripts[179] = { { {0x00000,0x00000,0x00000,0x00000}, {0x0000,0x0000,0x0000,0x0000}, NES_SCRIPT }, // 0 { {0x29966,0x29966,0x28F80,0x2947D}, {0x044D,0x044D,0x043B,0x0480}, NES_SCRIPT }, { {0x29DB3,0x29DB3,0x293BB,0x298FD}, {0x0207,0x0207,0x0209,0x0226}, NES_SCRIPT }, @@ -575,7 +599,7 @@ static ScummNESFile::t_resource res_scripts[179] = { { {0x2AD35,0x2AD47,0x2A3A6,0x2A93A}, {0x009C,0x009C,0x009C,0x009C}, NES_SCRIPT } }; -static ScummNESFile::t_resource res_sounds[82] = { +static ScummNESFile::Resource res_sounds[82] = { { {0x0FFE8,0x0BF54,0x0BF58,0x07F74}, {0x000A,0x000A,0x000A,0x000A}, NES_SOUND }, { {0x30ECA,0x30ECA,0x30352,0x30ECA}, {0x0832,0x0832,0x0832,0x0832}, NES_SOUND }, { {0x30ECA,0x30ECA,0x30352,0x30ECA}, {0x0832,0x0832,0x0832,0x0832}, NES_SOUND }, @@ -660,7 +684,7 @@ static ScummNESFile::t_resource res_sounds[82] = { { {0x3B099,0x3B27F,0x3A429,0x3A858}, {0x0BE4,0x0BE4,0x0BE4,0x0BE4}, NES_SOUND } }; -static ScummNESFile::t_resource res_costumes[25] = { +static ScummNESFile::Resource res_costumes[25] = { { {0x17F05,0x0BEFF,0x0FEF5,0x0BF17}, {0x0055,0x0055,0x0055,0x0055}, NES_COSTUME }, { {0x17F05,0x0BEFF,0x0FEF5,0x0BF17}, {0x0055,0x0055,0x0055,0x0055}, NES_COSTUME }, { {0x17F05,0x0BEFF,0x0FEF5,0x0BF17}, {0x0055,0x0055,0x0055,0x0055}, NES_COSTUME }, @@ -688,43 +712,43 @@ static ScummNESFile::t_resource res_costumes[25] = { { {0x13FAB,0x0FEA2,0x17E9A,0x13E77}, {0x004B,0x004B,0x004B,0x004B}, NES_COSTUME } }; -static ScummNESFile::t_resource res_globdata = +static ScummNESFile::Resource res_globdata = { {0x2CA11,0x2CA11,0x2C001,0x2C628}, {0x0307,0x0307,0x0307,0x0307}, NES_GLOBDATA }; // sprite palette data -static ScummNESFile::t_resource res_sprpals[2] = { +static ScummNESFile::Resource res_sprpals[2] = { { {0x0BFC1,0x07F61,0x07F55,0x07ED8}, {0x0010,0x0010,0x0010,0x0010}, NES_SPRPALS }, { {0x0BFD1,0x0BEB2,0x07F65,0x07EE8}, {0x0010,0x0010,0x0010,0x0010}, NES_SPRPALS } }; // associates costume IDs with sprite sets (indexes into SPRLENS/SPROFFS) -static ScummNESFile::t_resource res_sprdesc[2] = { +static ScummNESFile::Resource res_sprdesc[2] = { { {0x0FFB7,0x0BEC2,0x0BF1B,0x07EF8}, {0x0031,0x0031,0x0031,0x0031}, NES_SPRDESC }, { {0x0BFE1,0x07F71,0x07F75,0x07F29}, {0x0009,0x0009,0x0009,0x0009}, NES_SPRDESC } }; // number of sprites in each set (indicates length within SPRDATA) -static ScummNESFile::t_resource res_sprlens[2] = { +static ScummNESFile::Resource res_sprlens[2] = { { {0x0FEA2,0x1BE32,0x13E6A,0x0FE61}, {0x0115,0x0115,0x0115,0x0115}, NES_SPRLENS }, { {0x07FF5,0x07F5B,0x07F4F,0x07ED2}, {0x0006,0x0006,0x0006,0x0006}, NES_SPRLENS } }; // offset of each sprite set (indexes into SPRDATA) -static ScummNESFile::t_resource res_sproffs[2] = { +static ScummNESFile::Resource res_sproffs[2] = { { {0x2BDC5,0x2FD42,0x2BCE0,0x2F959}, {0x022A,0x022A,0x022A,0x022A}, NES_SPROFFS }, { {0x0BFEA,0x0BEF3,0x0BF4C,0x07F32}, {0x000C,0x000C,0x000C,0x000C}, NES_SPROFFS } }; // sprite data sets (packed NES sprite data) -static ScummNESFile::t_resource res_sprdata[2] = { +static ScummNESFile::Resource res_sprdata[2] = { { {0x2CE11,0x2CE11,0x2C401,0x2CA28}, {0x2BE0,0x2BE0,0x2BE0,0x2BE0}, NES_SPRDATA }, { {0x07F6B,0x0BE28,0x0FE6B,0x07E48}, {0x008A,0x008A,0x008A,0x008A}, NES_SPRDATA } }; -static ScummNESFile::t_resource res_charset = +static ScummNESFile::Resource res_charset = { {0x3F6EE,0x3F724,0x3F739,0x3F739}, {0x0090,0x0090,0x0090,0x0090}, NES_CHARSET }; -static ScummNESFile::t_resource res_preplist = +static ScummNESFile::Resource res_preplist = { {0x3FB5A,0x3FB90,0x3FBA9,0x3FBAF}, {0x000E,0x000E,0x000E,0x0010}, NES_PREPLIST }; uint16 write_byte(Common::MemoryWriteStream *out, byte val) { @@ -741,25 +765,25 @@ uint16 write_word(Common::MemoryWriteStream *out, uint16 val) { return 2; } -byte ScummNESFile::FileReadByte() { +byte ScummNESFile::fileReadByte() { byte b = 0; File::read(&b, 1); return b; } -uint16 ScummNESFile::FileReadUint16LE() { - uint16 a = FileReadByte(); - uint16 b = FileReadByte(); +uint16 ScummNESFile::fileReadUint16LE() { + uint16 a = fileReadByte(); + uint16 b = fileReadByte(); return a | (b << 8); } -uint32 ScummNESFile::resOffset(p_resource res) { +uint32 ScummNESFile::resOffset(Resource *res) { return res->offset[_ROMset]; } -uint16 ScummNESFile::resLength(p_resource res) { +uint16 ScummNESFile::resLength(Resource *res) { return res->length[_ROMset]; } -uint16 ScummNESFile::extractResource(Common::MemoryWriteStream *output, p_resource res) { +uint16 ScummNESFile::extractResource(Common::MemoryWriteStream *output, Resource *res) { uint16 len, i, j; byte val; byte cnt; @@ -778,14 +802,14 @@ uint16 ScummNESFile::extractResource(Common::MemoryWriteStream *output, p_resour len = resLength(res); for (i = 0; i < len; i++) - reslen += write_byte(output, FileReadByte()); + reslen += write_byte(output, fileReadByte()); break; case NES_ROOMGFX: case NES_COSTUMEGFX: reslen += write_word(output, (uint16)(resLength(res) + 2)); - len = FileReadByte(); + len = fileReadByte(); reslen += write_byte(output, (byte)len); if (!len) @@ -793,10 +817,10 @@ uint16 ScummNESFile::extractResource(Common::MemoryWriteStream *output, p_resour len = len << 4; for (i = 0; i < len;) { - reslen += write_byte(output, cnt = FileReadByte()); + reslen += write_byte(output, cnt = fileReadByte()); for (j = 0; j < (cnt & 0x7F); j++, i++) if ((cnt & 0x80) || (j == 0)) - reslen += write_byte(output, FileReadByte()); + reslen += write_byte(output, fileReadByte()); } if (File::pos() - resOffset(res) != resLength(res)) @@ -806,7 +830,7 @@ uint16 ScummNESFile::extractResource(Common::MemoryWriteStream *output, p_resour case NES_ROOM: case NES_SCRIPT: - len = FileReadUint16LE(); + len = fileReadUint16LE(); if (len != resLength(res)) error("extract_resource - length mismatch while extracting room/script resource (was %04X, should be %04X)", len, resLength(res)); @@ -814,29 +838,29 @@ uint16 ScummNESFile::extractResource(Common::MemoryWriteStream *output, p_resour File::seek(-2, SEEK_CUR); for (i = 0; i < len; i++) - reslen += write_byte(output, FileReadByte()); + reslen += write_byte(output, fileReadByte()); break; case NES_SOUND: len = resLength(res) + 2; - val = FileReadByte(); - cnt = FileReadByte(); + val = fileReadByte(); + cnt = fileReadByte(); if ((val == 2) && (cnt == 100)) { reslen += write_word(output, len); reslen += write_byte(output, val); reslen += write_byte(output, cnt); - cnt = FileReadByte(); + cnt = fileReadByte(); reslen += write_byte(output, cnt); for (i = 0; i < cnt; i++) - reslen += write_byte(output, FileReadByte()); + reslen += write_byte(output, fileReadByte()); for (i = 0; i < cnt; i++) - reslen += write_byte(output, FileReadByte()); + reslen += write_byte(output, fileReadByte()); while (1) { - reslen += write_byte(output, val = FileReadByte()); + reslen += write_byte(output, val = fileReadByte()); if (val >= 0xFE) break; } @@ -845,18 +869,18 @@ uint16 ScummNESFile::extractResource(Common::MemoryWriteStream *output, p_resour reslen += write_byte(output, val); reslen += write_byte(output, cnt); while (1) { - reslen += write_byte(output, val = FileReadByte()); + reslen += write_byte(output, val = fileReadByte()); if (val >= 0xFE) break; if (val >= 0x10) - reslen += write_byte(output, FileReadByte()); + reslen += write_byte(output, fileReadByte()); else { - reslen += write_byte(output, FileReadByte()); - reslen += write_byte(output, FileReadByte()); - reslen += write_byte(output, FileReadByte()); - reslen += write_byte(output, FileReadByte()); + reslen += write_byte(output, fileReadByte()); + reslen += write_byte(output, fileReadByte()); + reslen += write_byte(output, fileReadByte()); + reslen += write_byte(output, fileReadByte()); } } } else @@ -878,7 +902,7 @@ uint16 ScummNESFile::extractResource(Common::MemoryWriteStream *output, p_resour reslen += write_word(output, (uint16)(len + 2)); for (i = 0; i < len; i++) - reslen += write_byte(output, FileReadByte()); + reslen += write_byte(output, fileReadByte()); break; @@ -893,7 +917,7 @@ uint16 ScummNESFile::extractResource(Common::MemoryWriteStream *output, p_resour for (j = 0; j < 4; j++) { reslen += write_byte(output,' '); - for (i = 1; val = FileReadByte(); i++) + for (i = 1; (val = fileReadByte()); i++) reslen += write_byte(output, val); for (; i < 8; i++) reslen += write_byte(output, 0); @@ -910,66 +934,66 @@ uint16 ScummNESFile::extractResource(Common::MemoryWriteStream *output, p_resour // based on structure of Classic PC Maniac Mansion LFL files // (roomgfx resources are arranged in order, one per file, // after the room blocks) */ -static ScummNESFile::p_resource lfl_01[] = { &res_rooms[1], &res_roomgfx[1], &res_scripts[57], &res_scripts[61], &res_scripts[76], &res_scripts[105], &res_scripts[111], &res_sounds[5], &res_scripts[132], &res_scripts[148], &res_scripts[155], &res_scripts[156], &res_sounds[39], NULL }; -static ScummNESFile::p_resource lfl_02[] = { &res_rooms[2], &res_roomgfx[2], NULL }; -static ScummNESFile::p_resource lfl_03[] = { &res_rooms[3], &res_roomgfx[3], &res_scripts[21], &res_sounds[26], NULL }; -static ScummNESFile::p_resource lfl_04[] = { &res_rooms[4], &res_roomgfx[4], &res_scripts[46], &res_scripts[56], &res_scripts[137], &res_scripts[146], &res_sounds[12], &res_sounds[11], &res_sounds[13], &res_sounds[42], NULL }; -static ScummNESFile::p_resource lfl_05[] = { &res_rooms[5], &res_roomgfx[5], &res_scripts[30], &res_scripts[31], &res_scripts[32], &res_scripts[33], &res_scripts[34], &res_scripts[35], &res_sounds[22], &res_sounds[23], &res_sounds[24], &res_sounds[21], &res_sounds[46], NULL }; -static ScummNESFile::p_resource lfl_06[] = { &res_rooms[6], &res_roomgfx[6], NULL }; -static ScummNESFile::p_resource lfl_07[] = { &res_rooms[7], &res_roomgfx[7], &res_scripts[17], &res_scripts[58], &res_scripts[59], &res_scripts[60], &res_scripts[74], &res_scripts[81], &res_scripts[82], &res_scripts[150], &res_sounds[14], &res_sounds[15], &res_sounds[16], &res_sounds[17], NULL }; -static ScummNESFile::p_resource lfl_08[] = { &res_rooms[8], &res_roomgfx[8], &res_scripts[7], &res_scripts[12], &res_scripts[13], &res_scripts[47], &res_scripts[48], &res_scripts[49], &res_scripts[154], &res_sounds[32], &res_sounds[33], &res_sounds[36], NULL }; -static ScummNESFile::p_resource lfl_09[] = { &res_rooms[9], &res_roomgfx[9], &res_scripts[10], &res_scripts[11], &res_scripts[45], &res_scripts[55], &res_scripts[84], &res_scripts[85], &res_scripts[86], NULL }; -static ScummNESFile::p_resource lfl_10[] = { &res_rooms[10], &res_roomgfx[10], &res_scripts[24], &res_scripts[149], &res_sounds[28], NULL }; -static ScummNESFile::p_resource lfl_11[] = { &res_rooms[11], &res_roomgfx[11], &res_scripts[166], &res_scripts[167], &res_scripts[168], NULL }; -static ScummNESFile::p_resource lfl_12[] = { &res_rooms[12], &res_roomgfx[12], &res_scripts[51], &res_scripts[103], &res_scripts[104], &res_scripts[161], &res_sounds[63], &res_costumes[14], NULL }; -static ScummNESFile::p_resource lfl_13[] = { &res_rooms[13], &res_roomgfx[13], NULL }; -static ScummNESFile::p_resource lfl_14[] = { &res_rooms[14], &res_roomgfx[14], NULL }; -static ScummNESFile::p_resource lfl_15[] = { &res_rooms[15], &res_roomgfx[15], &res_sounds[27], NULL }; -static ScummNESFile::p_resource lfl_16[] = { &res_rooms[16], &res_roomgfx[16], &res_scripts[14], &res_scripts[121], &res_scripts[122], &res_sounds[40], &res_sounds[64], &res_sounds[68], NULL }; -static ScummNESFile::p_resource lfl_17[] = { &res_rooms[17], &res_roomgfx[17], &res_scripts[20], &res_scripts[100], &res_sounds[25], &res_sounds[44], &res_sounds[2], &res_sounds[50], &res_sounds[52], NULL }; -static ScummNESFile::p_resource lfl_18[] = { &res_rooms[18], &res_roomgfx[18], &res_scripts[25], &res_scripts[26], &res_scripts[27], &res_scripts[28], &res_scripts[64], &res_scripts[65], &res_scripts[66], &res_scripts[67], &res_scripts[68], &res_scripts[69], &res_scripts[70], &res_scripts[71], &res_scripts[73], &res_scripts[101], &res_sounds[35], NULL }; -static ScummNESFile::p_resource lfl_19[] = { &res_rooms[19], &res_roomgfx[19], &res_scripts[36], &res_scripts[37], &res_scripts[38], &res_scripts[39], &res_scripts[40], &res_scripts[152], &res_scripts[153], &res_costumes[10], NULL }; -static ScummNESFile::p_resource lfl_20[] = { &res_rooms[20], &res_roomgfx[20], &res_scripts[107], &res_scripts[108], &res_scripts[109], &res_scripts[110], &res_scripts[159], NULL }; -static ScummNESFile::p_resource lfl_21[] = { &res_rooms[21], &res_roomgfx[21], &res_scripts[41], &res_scripts[42], &res_scripts[43], &res_scripts[53], &res_scripts[136], &res_sounds[29], &res_sounds[20], &res_sounds[37], NULL }; -static ScummNESFile::p_resource lfl_22[] = { &res_rooms[22], &res_roomgfx[22], &res_scripts[15], NULL }; -static ScummNESFile::p_resource lfl_23[] = { &res_rooms[23], &res_roomgfx[23], &res_scripts[77], &res_scripts[79], &res_scripts[80], &res_scripts[83], &res_sounds[41], NULL }; -static ScummNESFile::p_resource lfl_24[] = { &res_rooms[24], &res_roomgfx[24], &res_scripts[18], &res_scripts[19], &res_scripts[78], &res_sounds[7], &res_sounds[3], &res_sounds[18], &res_sounds[34], &res_costumes[12], NULL }; -static ScummNESFile::p_resource lfl_25[] = { &res_rooms[25], &res_roomgfx[25], &res_scripts[29], &res_sounds[30], &res_sounds[31], NULL }; -static ScummNESFile::p_resource lfl_26[] = { &res_rooms[26], &res_roomgfx[26], &res_scripts[87], &res_scripts[88], &res_scripts[89], &res_scripts[90], &res_scripts[91], &res_scripts[92], &res_scripts[93], &res_scripts[94], &res_scripts[95], &res_scripts[96], &res_scripts[97], &res_scripts[98], &res_scripts[116], &res_scripts[151], &res_scripts[174], &res_costumes[11], NULL }; -static ScummNESFile::p_resource lfl_27[] = { &res_rooms[27], &res_roomgfx[27], &res_scripts[16], &res_scripts[52], &res_scripts[54], &res_scripts[113], &res_sounds[45], &res_costumes[19], NULL }; -static ScummNESFile::p_resource lfl_28[] = { &res_rooms[28], &res_roomgfx[28], &res_scripts[22], &res_scripts[23], NULL }; -static ScummNESFile::p_resource lfl_29[] = { &res_rooms[29], &res_roomgfx[29], &res_scripts[75], &res_sounds[43], NULL }; -static ScummNESFile::p_resource lfl_30[] = { &res_rooms[30], &res_roomgfx[30], &res_scripts[63], &res_sounds[0], &res_scripts[123], &res_scripts[125], &res_scripts[126], &res_scripts[127], &res_scripts[129], &res_sounds[55], &res_sounds[59], &res_sounds[60], &res_costumes[8], NULL }; -static ScummNESFile::p_resource lfl_31[] = { &res_rooms[31], &res_roomgfx[31], &res_scripts[99], &res_scripts[115], &res_scripts[117], &res_scripts[119], &res_scripts[147], &res_scripts[157], &res_scripts[158], &res_scripts[160], &res_costumes[13], &res_costumes[9], &res_costumes[23], &res_costumes[24], NULL }; -static ScummNESFile::p_resource lfl_32[] = { &res_rooms[32], &res_roomgfx[32], &res_costumes[15], NULL }; -static ScummNESFile::p_resource lfl_33[] = { &res_rooms[33], &res_roomgfx[33], &res_scripts[120], &res_scripts[135], &res_sounds[56], &res_sounds[57], &res_sounds[58], &res_sounds[1], &res_costumes[22], NULL }; -static ScummNESFile::p_resource lfl_34[] = { &res_rooms[34], &res_roomgfx[34], NULL }; -static ScummNESFile::p_resource lfl_35[] = { &res_rooms[35], &res_roomgfx[35], NULL }; -static ScummNESFile::p_resource lfl_36[] = { &res_rooms[36], &res_roomgfx[36], &res_sounds[10], &res_sounds[4], NULL }; -static ScummNESFile::p_resource lfl_37[] = { &res_rooms[37], &res_roomgfx[37], NULL }; -static ScummNESFile::p_resource lfl_38[] = { &res_rooms[38], &res_roomgfx[38], &res_scripts[138], &res_scripts[139], &res_scripts[140], &res_scripts[141], &res_scripts[142], &res_scripts[143], &res_scripts[144], &res_scripts[145], NULL }; -static ScummNESFile::p_resource lfl_39[] = { &res_rooms[39], &res_roomgfx[39], NULL }; -static ScummNESFile::p_resource lfl_40[] = { &res_rooms[40], &res_roomgfx[0], &res_scripts[112], &res_costumes[17], NULL }; -static ScummNESFile::p_resource lfl_41[] = { &res_rooms[41], &res_scripts[106], &res_sounds[47], &res_sounds[48], &res_sounds[53], &res_sounds[49], &res_sounds[51], NULL }; -static ScummNESFile::p_resource lfl_42[] = { &res_rooms[42], &res_scripts[124], &res_costumes[18], NULL }; -static ScummNESFile::p_resource lfl_43[] = { &res_rooms[43], &res_scripts[44], &res_sounds[19], NULL }; -static ScummNESFile::p_resource lfl_44[] = { &res_rooms[44], &res_scripts[102], &res_sounds[6], &res_sounds[38], &res_sounds[8], &res_sounds[9], &res_costumes[1], &res_costumes[2], &res_costumes[5], &res_costumes[6], &res_costumes[3], &res_costumes[4], &res_costumes[7], NULL }; -static ScummNESFile::p_resource lfl_45[] = { &res_rooms[45], &res_scripts[1], &res_scripts[2], &res_scripts[3], &res_scripts[4], &res_scripts[5], &res_scripts[9], &res_scripts[114], &res_scripts[131], &res_scripts[164], &res_scripts[165], &res_scripts[169], &res_scripts[170], &res_scripts[171], &res_scripts[172], &res_scripts[173], &res_scripts[175], &res_sounds[54], NULL }; -static ScummNESFile::p_resource lfl_46[] = { &res_rooms[46], &res_scripts[130], &res_sounds[65], &res_costumes[0], &res_costumes[21], NULL }; -static ScummNESFile::p_resource lfl_47[] = { &res_rooms[47], &res_scripts[62], &res_sounds[69], NULL }; -static ScummNESFile::p_resource lfl_48[] = { &res_rooms[48], NULL }; -static ScummNESFile::p_resource lfl_49[] = { &res_rooms[49], NULL }; -static ScummNESFile::p_resource lfl_50[] = { &res_rooms[50], &res_scripts[133], &res_scripts[163], NULL }; -static ScummNESFile::p_resource lfl_51[] = { &res_rooms[51], &res_scripts[118], &res_scripts[128], &res_sounds[61], &res_sounds[62], &res_sounds[67], &res_sounds[66], &res_costumes[16], &res_costumes[20], NULL }; -static ScummNESFile::p_resource lfl_52[] = { &res_rooms[52], NULL }; +static ScummNESFile::Resource *lfl_01[] = { &res_rooms[1], &res_roomgfx[1], &res_scripts[57], &res_scripts[61], &res_scripts[76], &res_scripts[105], &res_scripts[111], &res_sounds[5], &res_scripts[132], &res_scripts[148], &res_scripts[155], &res_scripts[156], &res_sounds[39], NULL }; +static ScummNESFile::Resource *lfl_02[] = { &res_rooms[2], &res_roomgfx[2], NULL }; +static ScummNESFile::Resource *lfl_03[] = { &res_rooms[3], &res_roomgfx[3], &res_scripts[21], &res_sounds[26], NULL }; +static ScummNESFile::Resource *lfl_04[] = { &res_rooms[4], &res_roomgfx[4], &res_scripts[46], &res_scripts[56], &res_scripts[137], &res_scripts[146], &res_sounds[12], &res_sounds[11], &res_sounds[13], &res_sounds[42], NULL }; +static ScummNESFile::Resource *lfl_05[] = { &res_rooms[5], &res_roomgfx[5], &res_scripts[30], &res_scripts[31], &res_scripts[32], &res_scripts[33], &res_scripts[34], &res_scripts[35], &res_sounds[22], &res_sounds[23], &res_sounds[24], &res_sounds[21], &res_sounds[46], NULL }; +static ScummNESFile::Resource *lfl_06[] = { &res_rooms[6], &res_roomgfx[6], NULL }; +static ScummNESFile::Resource *lfl_07[] = { &res_rooms[7], &res_roomgfx[7], &res_scripts[17], &res_scripts[58], &res_scripts[59], &res_scripts[60], &res_scripts[74], &res_scripts[81], &res_scripts[82], &res_scripts[150], &res_sounds[14], &res_sounds[15], &res_sounds[16], &res_sounds[17], NULL }; +static ScummNESFile::Resource *lfl_08[] = { &res_rooms[8], &res_roomgfx[8], &res_scripts[7], &res_scripts[12], &res_scripts[13], &res_scripts[47], &res_scripts[48], &res_scripts[49], &res_scripts[154], &res_sounds[32], &res_sounds[33], &res_sounds[36], NULL }; +static ScummNESFile::Resource *lfl_09[] = { &res_rooms[9], &res_roomgfx[9], &res_scripts[10], &res_scripts[11], &res_scripts[45], &res_scripts[55], &res_scripts[84], &res_scripts[85], &res_scripts[86], NULL }; +static ScummNESFile::Resource *lfl_10[] = { &res_rooms[10], &res_roomgfx[10], &res_scripts[24], &res_scripts[149], &res_sounds[28], NULL }; +static ScummNESFile::Resource *lfl_11[] = { &res_rooms[11], &res_roomgfx[11], &res_scripts[166], &res_scripts[167], &res_scripts[168], NULL }; +static ScummNESFile::Resource *lfl_12[] = { &res_rooms[12], &res_roomgfx[12], &res_scripts[51], &res_scripts[103], &res_scripts[104], &res_scripts[161], &res_sounds[63], &res_costumes[14], NULL }; +static ScummNESFile::Resource *lfl_13[] = { &res_rooms[13], &res_roomgfx[13], NULL }; +static ScummNESFile::Resource *lfl_14[] = { &res_rooms[14], &res_roomgfx[14], NULL }; +static ScummNESFile::Resource *lfl_15[] = { &res_rooms[15], &res_roomgfx[15], &res_sounds[27], NULL }; +static ScummNESFile::Resource *lfl_16[] = { &res_rooms[16], &res_roomgfx[16], &res_scripts[14], &res_scripts[121], &res_scripts[122], &res_sounds[40], &res_sounds[64], &res_sounds[68], NULL }; +static ScummNESFile::Resource *lfl_17[] = { &res_rooms[17], &res_roomgfx[17], &res_scripts[20], &res_scripts[100], &res_sounds[25], &res_sounds[44], &res_sounds[2], &res_sounds[50], &res_sounds[52], NULL }; +static ScummNESFile::Resource *lfl_18[] = { &res_rooms[18], &res_roomgfx[18], &res_scripts[25], &res_scripts[26], &res_scripts[27], &res_scripts[28], &res_scripts[64], &res_scripts[65], &res_scripts[66], &res_scripts[67], &res_scripts[68], &res_scripts[69], &res_scripts[70], &res_scripts[71], &res_scripts[73], &res_scripts[101], &res_sounds[35], NULL }; +static ScummNESFile::Resource *lfl_19[] = { &res_rooms[19], &res_roomgfx[19], &res_scripts[36], &res_scripts[37], &res_scripts[38], &res_scripts[39], &res_scripts[40], &res_scripts[152], &res_scripts[153], &res_costumes[10], NULL }; +static ScummNESFile::Resource *lfl_20[] = { &res_rooms[20], &res_roomgfx[20], &res_scripts[107], &res_scripts[108], &res_scripts[109], &res_scripts[110], &res_scripts[159], NULL }; +static ScummNESFile::Resource *lfl_21[] = { &res_rooms[21], &res_roomgfx[21], &res_scripts[41], &res_scripts[42], &res_scripts[43], &res_scripts[53], &res_scripts[136], &res_sounds[29], &res_sounds[20], &res_sounds[37], NULL }; +static ScummNESFile::Resource *lfl_22[] = { &res_rooms[22], &res_roomgfx[22], &res_scripts[15], NULL }; +static ScummNESFile::Resource *lfl_23[] = { &res_rooms[23], &res_roomgfx[23], &res_scripts[77], &res_scripts[79], &res_scripts[80], &res_scripts[83], &res_sounds[41], NULL }; +static ScummNESFile::Resource *lfl_24[] = { &res_rooms[24], &res_roomgfx[24], &res_scripts[18], &res_scripts[19], &res_scripts[78], &res_sounds[7], &res_sounds[3], &res_sounds[18], &res_sounds[34], &res_costumes[12], NULL }; +static ScummNESFile::Resource *lfl_25[] = { &res_rooms[25], &res_roomgfx[25], &res_scripts[29], &res_sounds[30], &res_sounds[31], NULL }; +static ScummNESFile::Resource *lfl_26[] = { &res_rooms[26], &res_roomgfx[26], &res_scripts[87], &res_scripts[88], &res_scripts[89], &res_scripts[90], &res_scripts[91], &res_scripts[92], &res_scripts[93], &res_scripts[94], &res_scripts[95], &res_scripts[96], &res_scripts[97], &res_scripts[98], &res_scripts[116], &res_scripts[151], &res_scripts[174], &res_costumes[11], NULL }; +static ScummNESFile::Resource *lfl_27[] = { &res_rooms[27], &res_roomgfx[27], &res_scripts[16], &res_scripts[52], &res_scripts[54], &res_scripts[113], &res_sounds[45], &res_costumes[19], NULL }; +static ScummNESFile::Resource *lfl_28[] = { &res_rooms[28], &res_roomgfx[28], &res_scripts[22], &res_scripts[23], NULL }; +static ScummNESFile::Resource *lfl_29[] = { &res_rooms[29], &res_roomgfx[29], &res_scripts[75], &res_sounds[43], NULL }; +static ScummNESFile::Resource *lfl_30[] = { &res_rooms[30], &res_roomgfx[30], &res_scripts[63], &res_sounds[0], &res_scripts[123], &res_scripts[125], &res_scripts[126], &res_scripts[127], &res_scripts[129], &res_sounds[55], &res_sounds[59], &res_sounds[60], &res_costumes[8], NULL }; +static ScummNESFile::Resource *lfl_31[] = { &res_rooms[31], &res_roomgfx[31], &res_scripts[99], &res_scripts[115], &res_scripts[117], &res_scripts[119], &res_scripts[147], &res_scripts[157], &res_scripts[158], &res_scripts[160], &res_costumes[13], &res_costumes[9], &res_costumes[23], &res_costumes[24], NULL }; +static ScummNESFile::Resource *lfl_32[] = { &res_rooms[32], &res_roomgfx[32], &res_costumes[15], NULL }; +static ScummNESFile::Resource *lfl_33[] = { &res_rooms[33], &res_roomgfx[33], &res_scripts[120], &res_scripts[135], &res_sounds[56], &res_sounds[57], &res_sounds[58], &res_sounds[1], &res_costumes[22], NULL }; +static ScummNESFile::Resource *lfl_34[] = { &res_rooms[34], &res_roomgfx[34], NULL }; +static ScummNESFile::Resource *lfl_35[] = { &res_rooms[35], &res_roomgfx[35], NULL }; +static ScummNESFile::Resource *lfl_36[] = { &res_rooms[36], &res_roomgfx[36], &res_sounds[10], &res_sounds[4], NULL }; +static ScummNESFile::Resource *lfl_37[] = { &res_rooms[37], &res_roomgfx[37], NULL }; +static ScummNESFile::Resource *lfl_38[] = { &res_rooms[38], &res_roomgfx[38], &res_scripts[138], &res_scripts[139], &res_scripts[140], &res_scripts[141], &res_scripts[142], &res_scripts[143], &res_scripts[144], &res_scripts[145], NULL }; +static ScummNESFile::Resource *lfl_39[] = { &res_rooms[39], &res_roomgfx[39], NULL }; +static ScummNESFile::Resource *lfl_40[] = { &res_rooms[40], &res_roomgfx[0], &res_scripts[112], &res_costumes[17], NULL }; +static ScummNESFile::Resource *lfl_41[] = { &res_rooms[41], &res_scripts[106], &res_sounds[47], &res_sounds[48], &res_sounds[53], &res_sounds[49], &res_sounds[51], NULL }; +static ScummNESFile::Resource *lfl_42[] = { &res_rooms[42], &res_scripts[124], &res_costumes[18], NULL }; +static ScummNESFile::Resource *lfl_43[] = { &res_rooms[43], &res_scripts[44], &res_sounds[19], NULL }; +static ScummNESFile::Resource *lfl_44[] = { &res_rooms[44], &res_scripts[102], &res_sounds[6], &res_sounds[38], &res_sounds[8], &res_sounds[9], &res_costumes[1], &res_costumes[2], &res_costumes[5], &res_costumes[6], &res_costumes[3], &res_costumes[4], &res_costumes[7], NULL }; +static ScummNESFile::Resource *lfl_45[] = { &res_rooms[45], &res_scripts[1], &res_scripts[2], &res_scripts[3], &res_scripts[4], &res_scripts[5], &res_scripts[9], &res_scripts[114], &res_scripts[131], &res_scripts[164], &res_scripts[165], &res_scripts[169], &res_scripts[170], &res_scripts[171], &res_scripts[172], &res_scripts[173], &res_scripts[175], &res_sounds[54], NULL }; +static ScummNESFile::Resource *lfl_46[] = { &res_rooms[46], &res_scripts[130], &res_sounds[65], &res_costumes[0], &res_costumes[21], NULL }; +static ScummNESFile::Resource *lfl_47[] = { &res_rooms[47], &res_scripts[62], &res_sounds[69], NULL }; +static ScummNESFile::Resource *lfl_48[] = { &res_rooms[48], NULL }; +static ScummNESFile::Resource *lfl_49[] = { &res_rooms[49], NULL }; +static ScummNESFile::Resource *lfl_50[] = { &res_rooms[50], &res_scripts[133], &res_scripts[163], NULL }; +static ScummNESFile::Resource *lfl_51[] = { &res_rooms[51], &res_scripts[118], &res_scripts[128], &res_sounds[61], &res_sounds[62], &res_sounds[67], &res_sounds[66], &res_costumes[16], &res_costumes[20], NULL }; +static ScummNESFile::Resource *lfl_52[] = { &res_rooms[52], NULL }; /* remaining 'standard' resources (not used by any of the original LFL files) */ -static ScummNESFile::p_resource lfl_53[] = { &res_rooms[53], &res_scripts[177], &res_scripts[178], &res_sounds[70], &res_sounds[71], &res_sounds[72], &res_sounds[73], &res_sounds[74], &res_sounds[75], &res_sounds[76], &res_sounds[77], &res_sounds[78], &res_sounds[79], &res_sounds[80], &res_sounds[81], NULL }; +static ScummNESFile::Resource *lfl_53[] = { &res_rooms[53], &res_scripts[177], &res_scripts[178], &res_sounds[70], &res_sounds[71], &res_sounds[72], &res_sounds[73], &res_sounds[74], &res_sounds[75], &res_sounds[76], &res_sounds[77], &res_sounds[78], &res_sounds[79], &res_sounds[80], &res_sounds[81], NULL }; /* all 'non-standard' resources (the costume-related stuff) */ -static ScummNESFile::p_resource lfl_54[] = { &res_rooms[54], &res_sprdesc[0], &res_sprdesc[1], &res_sprlens[0], &res_sprlens[1], &res_sproffs[0], &res_sproffs[1], &res_sprdata[0], &res_sprdata[1], &res_costumegfx[0], &res_costumegfx[1], &res_sprpals[0], &res_sprpals[1], &res_charset, &res_preplist, NULL }; +static ScummNESFile::Resource *lfl_54[] = { &res_rooms[54], &res_sprdesc[0], &res_sprdesc[1], &res_sprlens[0], &res_sprlens[1], &res_sproffs[0], &res_sproffs[1], &res_sprdata[0], &res_sprdata[1], &res_costumegfx[0], &res_costumegfx[1], &res_sprpals[0], &res_sprpals[1], &res_charset, &res_preplist, NULL }; typedef struct _lfl { int num; - ScummNESFile::p_resource *entries; + ScummNESFile::Resource **entries; } t_lfl, *p_lfl; t_lfl lfls[] = { @@ -1058,7 +1082,7 @@ bool ScummNESFile::generateResource(int res) { Common::MemoryWriteStream out(_buf, bufsize); for (j = 0; lfl->entries[j] != NULL; j++) { - p_resource entry = lfl->entries[j]; + Resource *entry = lfl->entries[j]; extractResource(&out, entry); } write_byte(&out, 0xD1); @@ -1080,7 +1104,7 @@ bool ScummNESFile::generateIndex() { uint16 respos = 0; for (j = 0; lfl->entries[j] != NULL; j++) { - p_resource entry = lfl->entries[j]; + Resource *entry = lfl->entries[j]; switch (entry->type) { case NES_ROOM: diff --git a/scumm/util.h b/scumm/util.h index 5863a47587..48821755b1 100644 --- a/scumm/util.h +++ b/scumm/util.h @@ -65,54 +65,32 @@ public: uint32 write(const void *ptr, uint32 size); }; -typedef enum _res_type { - NES_UNKNOWN, - NES_GLOBDATA, - NES_ROOM, - NES_SCRIPT, - NES_SOUND, - NES_COSTUME, - NES_ROOMGFX, - NES_COSTUMEGFX, - NES_SPRPALS, - NES_SPRDESC, - NES_SPRLENS, - NES_SPROFFS, - NES_SPRDATA, - NES_CHARSET, - NES_PREPLIST -} res_type; - class ScummNESFile : public BaseScummFile { public: - typedef enum _romset { + enum ROMset { kROMsetUSA, kROMsetEurope, kROMsetSweden, kROMsetFrance, kROMsetNum - } t_romset; + }; - typedef struct _resource { - uint32 offset[kROMsetNum]; - uint16 length[kROMsetNum]; - res_type type; - } t_resource, *p_resource; + struct Resource; private: Common::MemoryReadStream *_stream; - t_romset _ROMset; + ROMset _ROMset; byte *_buf; bool generateIndex(); bool generateResource(int res); - uint16 extractResource(Common::MemoryWriteStream *out, p_resource res); + uint16 extractResource(Common::MemoryWriteStream *out, Resource *res); - uint32 resOffset(p_resource res); - uint16 resLength(p_resource res); + uint32 resOffset(Resource *res); + uint16 resLength(Resource *res); - byte FileReadByte(); - uint16 FileReadUint16LE(); + byte fileReadByte(); + uint16 fileReadUint16LE(); public: ScummNESFile(); -- cgit v1.2.3