diff options
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();  | 
