[Scummvm-cvs-logs] CVS: scummvm/queen command.cpp,1.45,1.46 debug.cpp,1.4,1.5 debug.h,1.4,1.5 logic.cpp,1.140,1.141 music.cpp,1.1,1.2 sound.cpp,1.23,1.24 sound.h,1.10,1.11 structs.h,1.28,1.29

Joost Peters joostp at users.sourceforge.net
Sat Dec 27 21:27:04 CET 2003


Update of /cvsroot/scummvm/scummvm/queen
In directory sc8-pr-cvs1:/tmp/cvs-serv25470/queen

Modified Files:
	command.cpp debug.cpp debug.h logic.cpp music.cpp sound.cpp 
	sound.h structs.h 
Log Message:
- added 'song' debugger command
- restore music after loading game
- fix for bug in Roland Floda Corridor music
- added LE struct reading methods (and renamed the old BE ones) for future compatibility with original DOS savegames



Index: command.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/command.cpp,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- command.cpp	15 Dec 2003 12:59:43 -0000	1.45
+++ command.cpp	28 Dec 2003 01:17:29 -0000	1.46
@@ -277,35 +277,35 @@
 	_cmdList = new CmdListData[_numCmdList + 1];
 	memset(&_cmdList[0], 0, sizeof(CmdListData));
 	for (i = 1; i <= _numCmdList; i++) {
-		_cmdList[i].readFrom(ptr);
+		_cmdList[i].readFromBE(ptr);
 	}
 	
 	_numCmdArea = READ_BE_UINT16(ptr); ptr += 2;
 	_cmdArea = new CmdArea[_numCmdArea + 1];
 	memset(&_cmdArea[0], 0, sizeof(CmdArea));
 	for (i = 1; i <= _numCmdArea; i++) {
-		_cmdArea[i].readFrom(ptr);
+		_cmdArea[i].readFromBE(ptr);
 	}
 
 	_numCmdObject = READ_BE_UINT16(ptr); ptr += 2;
 	_cmdObject = new CmdObject[_numCmdObject + 1];
 	memset(&_cmdObject[0], 0, sizeof(CmdObject));
 	for (i = 1; i <= _numCmdObject; i++) {
-		_cmdObject[i].readFrom(ptr);
+		_cmdObject[i].readFromBE(ptr);
 	}
 
 	_numCmdInventory = READ_BE_UINT16(ptr);	ptr += 2;
 	_cmdInventory = new CmdInventory[_numCmdInventory + 1];
 	memset(&_cmdInventory[0], 0, sizeof(CmdInventory));
 	for (i = 1; i <= _numCmdInventory; i++) {
-		_cmdInventory[i].readFrom(ptr);
+		_cmdInventory[i].readFromBE(ptr);
 	}
 
 	_numCmdGameState = READ_BE_UINT16(ptr);	ptr += 2;
 	_cmdGameState = new CmdGameState[_numCmdGameState + 1];
 	memset(&_cmdGameState[0], 0, sizeof(CmdGameState));
 	for (i = 1; i <= _numCmdGameState; i++) {
-		_cmdGameState[i].readFrom(ptr);
+		_cmdGameState[i].readFromBE(ptr);
 	}
 }
 

Index: debug.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/debug.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- debug.cpp	26 Dec 2003 12:58:27 -0000	1.4
+++ debug.cpp	28 Dec 2003 01:17:29 -0000	1.5
@@ -28,6 +28,7 @@
 #include "queen/logic.h"
 #include "queen/queen.h"
 #include "queen/resource.h"
+#include "queen/sound.h"
 #include "queen/structs.h"
 
 #include "common/debugger.cpp"
@@ -46,6 +47,7 @@
 	DCmd_Register("info", &Debugger::Cmd_Info);
 	DCmd_Register("items", &Debugger::Cmd_Items);
 	DCmd_Register("room", &Debugger::Cmd_Room);
+	DCmd_Register("song", &Debugger::Cmd_Song);
 }
 
 
@@ -173,5 +175,16 @@
 	return true;
 }
 
+bool Debugger::Cmd_Song(int argc, const char **argv) {
+	
+	if (argc == 2) {
+		int16 songNum = atoi(argv[1]);
+		_vm->sound()->playSong(songNum);
+		DebugPrintf("Playing song %d\n", songNum);
+	} else {
+		DebugPrintf("Usage: %s songnum\n", argv[0]);
+	}
+	return true;
+}
 
 } // End of namespace Queen

Index: debug.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/debug.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- debug.h	26 Dec 2003 12:58:27 -0000	1.4
+++ debug.h	28 Dec 2003 01:17:29 -0000	1.5
@@ -48,7 +48,8 @@
 	bool Cmd_Info(int argc, const char **argv);
 	bool Cmd_Items(int argc, const char **argv);
 	bool Cmd_Room(int argc, const char **argv);
-
+	bool Cmd_Song(int argc, const char **argv);
+	
 private:
 
 	QueenEngine *_vm;

Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.cpp,v
retrieving revision 1.140
retrieving revision 1.141
diff -u -d -r1.140 -r1.141
--- logic.cpp	27 Dec 2003 12:58:26 -0000	1.140
+++ logic.cpp	28 Dec 2003 01:17:29 -0000	1.141
@@ -70,7 +70,7 @@
 	_objectData = new ObjectData[_numObjects + 1];
 	memset(&_objectData[0], 0, sizeof(ObjectData));
 	for (i = 1; i <= _numObjects; i++) {
-		_objectData[i].readFrom(ptr);
+		_objectData[i].readFromBE(ptr);
 	}
 
 	// Room data
@@ -100,7 +100,7 @@
 	_itemData = new ItemData[_numItems + 1];
 	memset(&_itemData[0], 0, sizeof(ItemData));
 	for (i = 1; i <= _numItems; i++) {
-		_itemData[i].readFrom(ptr);
+		_itemData[i].readFromBE(ptr);
 	}
 
 	// Graphic Image Data
@@ -109,7 +109,7 @@
 	_graphicData = new GraphicData[_numGraphics + 1];
 	memset(&_graphicData[0], 0, sizeof(GraphicData));
 	for (i = 1; i <= _numGraphics; i++) {
-		_graphicData[i].readFrom(ptr);
+		_graphicData[i].readFromBE(ptr);
 	}
 
 	_objMax   = new int16[_numRooms + 1];
@@ -125,14 +125,14 @@
 		memset(&_area[i][0], 0, sizeof(Area));
 		for (j = 1; j <= _areaMax[i]; j++) {
 			assert(j < MAX_AREAS_NUMBER);
-			_area[i][j].readFrom(ptr);
+			_area[i][j].readFromBE(ptr);
 		}
 	}
 
 	_objectBox = new Box[_numObjects + 1];
 	memset(&_objectBox[0], 0, sizeof(Box));
 	for (i = 1; i <= _numObjects; i++) {
-		_objectBox[i].readFrom(ptr);
+		_objectBox[i].readFromBE(ptr);
 	}
 
 	// Walk OFF Data
@@ -141,7 +141,7 @@
 	_walkOffData = new WalkOffData[_numWalkOffs + 1];
 	memset(&_walkOffData[0], 0, sizeof(WalkOffData));
 	for (i = 1; i <= _numWalkOffs; i++) {
-		_walkOffData[i].readFrom(ptr);
+		_walkOffData[i].readFromBE(ptr);
 	}
 
 	// Special Object Descriptions
@@ -150,7 +150,7 @@
 	_objectDescription = new ObjectDescription[_numObjDesc + 1];
 	memset(&_objectDescription[0], 0, sizeof(ObjectDescription));
 	for (i = 1; i <= _numObjDesc; i++) {
-		_objectDescription[i].readFrom(ptr);
+		_objectDescription[i].readFromBE(ptr);
 	}
 
 	_vm->command()->readCommandsFrom(ptr);
@@ -163,7 +163,7 @@
 	_furnitureData = new FurnitureData[_numFurniture + 1];
 	memset(&_furnitureData[0], 0, sizeof(_furnitureData));
 	for (i = 1; i <= _numFurniture; i++) {
-		_furnitureData[i].readFrom(ptr);
+		_furnitureData[i].readFromBE(ptr);
 	}
 
 	// Actors
@@ -175,7 +175,7 @@
 	_actorData = new ActorData[_numActors + 1];
 	memset(&_actorData[0], 0, sizeof(ActorData));
 	for (i = 1; i <= _numActors; i++) {
-		_actorData[i].readFrom(ptr);
+		_actorData[i].readFromBE(ptr);
 	}
 
 	_numGraphicAnim = READ_BE_UINT16(ptr); ptr += 2;
@@ -183,7 +183,7 @@
 	_graphicAnim = new GraphicAnim[_numGraphicAnim + 1];
 	memset(&_graphicAnim[0], 0, sizeof(GraphicAnim));
 	for (i = 1; i <= _numGraphicAnim; i++) {
-		_graphicAnim[i].readFrom(ptr);
+		_graphicAnim[i].readFromBE(ptr);
 	}
 
 	_currentRoom = _objectData[_entryObj].room;
@@ -2296,10 +2296,10 @@
 	WRITE_BE_UINT16(ptr, _currentRoom); ptr += 2;
 
 	for (i = 1; i <= _numObjects; i++)
-		_objectData[i].writeTo(ptr);
+		_objectData[i].writeToBE(ptr);
 		
 	for (i = 1; i <= _numItems; i++)
-		_itemData[i].writeTo(ptr);
+		_itemData[i].writeToBE(ptr);
 		
 	for (i = 0; i < GAME_STATE_COUNT; i++) {
 		WRITE_BE_UINT16(ptr, gameState(i)); ptr += 2;
@@ -2307,17 +2307,17 @@
 	
 	for (i = 1; i <= _numRooms; i++)
 		for (j = 1; j <= _areaMax[i]; j++)
-			_area[i][j].writeTo(ptr);
+			_area[i][j].writeToBE(ptr);
 			
 	for (i = 0; i < TALK_SELECTED_COUNT; i++)
-			_talkSelected[i].writeTo(ptr);
+			_talkSelected[i].writeToBE(ptr);
 	
 	for (i = 1; i <= _numWalkOffs; i++)
-		_walkOffData[i].writeTo(ptr);
+		_walkOffData[i].writeToBE(ptr);
 
 	WRITE_BE_UINT16(ptr, _joe.facing); ptr += 2;
 	WRITE_BE_UINT16(ptr, _vm->bam()->_flag); ptr += 2;
-	WRITE_BE_UINT16(ptr, 0); ptr += 2; //TODO: lastoverride
+	WRITE_BE_UINT16(ptr, _vm->sound()->lastOverride()); ptr += 2;
 	
 	//TODO: lastmerge, lastalter, altmrgpri
 	for (i = 0; i < 3; i++) {
@@ -2364,10 +2364,10 @@
 	currentRoom(READ_BE_UINT16(ptr)); ptr += 2;
 	
 	for (i = 1; i <= _numObjects; i++)
-		_objectData[i].readFrom(ptr);
+		_objectData[i].readFromBE(ptr);
 
 	for (i = 1; i <= _numItems; i++)
-		_itemData[i].readFrom(ptr);
+		_itemData[i].readFromBE(ptr);
 
 	for (i = 0; i < GAME_STATE_COUNT; i++) {
 		gameState(i, (int16)READ_BE_UINT16(ptr)); ptr += 2;
@@ -2375,18 +2375,17 @@
 
 	for (i = 1; i <= _numRooms; i++)
 		for (j = 1; j <= _areaMax[i]; j++)
-			_area[i][j].readFrom(ptr);
+			_area[i][j].readFromBE(ptr);
 	
 	for (i = 0; i < TALK_SELECTED_COUNT; i++)
-		_talkSelected[i].readFrom(ptr);
+		_talkSelected[i].readFromBE(ptr);
 		
 	for (i = 1; i <= _numWalkOffs; i++)
-		_walkOffData[i].readFrom(ptr);
+		_walkOffData[i].readFromBE(ptr);
 
 	joeFacing(READ_BE_UINT16(ptr));  ptr += 2;
 	_vm->bam()->_flag = READ_BE_UINT16(ptr); ptr += 2;
-	READ_BE_UINT16(ptr); ptr += 2; //TODO: lastoverride
-	//_vm->sound()->playSound(_vm->sound()->lastOverride())
+	_vm->sound()->playSong((int16)READ_BE_UINT16(ptr)); ptr += 2;
 	
 	//TODO: lastmerge, lastalter, altmrgpri
 	for (i = 0; i < 3; i++) {

Index: music.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/music.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- music.cpp	14 Dec 2003 00:33:21 -0000	1.1
+++ music.cpp	28 Dec 2003 01:17:29 -0000	1.2
@@ -46,6 +46,10 @@
 	Music::~Music() {
 		stopSong();
 		_midi->unloadMusic();
+		// Send All Notes Off
+		for (int i = 0; i < 16; ++i)
+			_driver->send((123 << 8) | 0xB0 | i);
+		_driver->close();
 		delete _midi;
 		delete[] _musicData;	
 	}

Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/sound.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- sound.cpp	24 Dec 2003 00:24:56 -0000	1.23
+++ sound.cpp	28 Dec 2003 01:17:29 -0000	1.24
@@ -110,7 +110,7 @@
 	if (!musicOn())
 		return;
 
-	//TODO: Record onto song stack for saving/loading
+	_lastOverride = songNum;
 	
 	switch (_tune[newTune - 1].mode) {
 		//Random loop
@@ -127,7 +127,16 @@
 			break;
 	}
 
-	_vm->music()->playSong(_tune[newTune - 1].tuneNum[0] - 1);
+	int16 song = _tune[newTune - 1].tuneNum[0] - 1;
+
+	// Work around bug in Roland music, note that these numbers are 'one-off' from
+	// the original code.
+	if (/*isRoland && */ song == 88 || song == 89) {
+		warning("Working around Roland music bug");
+		song = 62;
+	}
+	
+	_vm->music()->playSong(song);
 }
 
 

Index: sound.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/sound.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- sound.h	21 Dec 2003 00:07:16 -0000	1.10
+++ sound.h	28 Dec 2003 01:17:29 -0000	1.11
@@ -72,6 +72,8 @@
 	void musicToggle(bool val)	{ _musicToggle = val; }
 	void toggleMusic()		{ _musicToggle ^= true; }
 
+	int16 lastOverride()		{ return _lastOverride; }
+	
 protected:
 	SoundMixer *_mixer;
 	QueenEngine *_vm;

Index: structs.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/structs.h,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- structs.h	13 Dec 2003 20:05:28 -0000	1.28
+++ structs.h	28 Dec 2003 01:17:29 -0000	1.29
@@ -29,14 +29,21 @@
 struct Box {
 	int16 x1, y1, x2, y2;
 
-	void readFrom(byte *&ptr) {
+	void readFromBE(byte *&ptr) {
 		x1 = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		y1 = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		x2 = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		y2 = (int16)READ_BE_UINT16(ptr); ptr += 2;
 	}
 
-	void writeTo(byte *&ptr) {
+	void readFromLE(byte *&ptr) {
+		x1 = (int16)READ_LE_UINT16(ptr); ptr += 2;
+		y1 = (int16)READ_LE_UINT16(ptr); ptr += 2;
+		x2 = (int16)READ_LE_UINT16(ptr); ptr += 2;
+		y2 = (int16)READ_LE_UINT16(ptr); ptr += 2;
+	}
+
+	void writeToBE(byte *&ptr) {
 		WRITE_BE_UINT16(ptr, x1); ptr += 2;
 		WRITE_BE_UINT16(ptr, y1); ptr += 2;
 		WRITE_BE_UINT16(ptr, x2); ptr += 2;
@@ -71,17 +78,25 @@
 	//! entry in ObjectData, object lying in this area
 	uint16 object;
 
-	void readFrom(byte *&ptr) {
+	void readFromBE(byte *&ptr) {
 		mapNeighbours = (int16)READ_BE_UINT16(ptr); ptr += 2;
-		box.readFrom(ptr);
+		box.readFromBE(ptr);
 		bottomScaleFactor = READ_BE_UINT16(ptr); ptr += 2;
 		topScaleFactor = READ_BE_UINT16(ptr); ptr += 2;
 		object = READ_BE_UINT16(ptr); ptr += 2;
 	}
 
-	void writeTo(byte *&ptr) {
+	void readFromLE(byte *&ptr) {
+		mapNeighbours = (int16)READ_LE_UINT16(ptr); ptr += 2;
+		box.readFromLE(ptr);
+		bottomScaleFactor = READ_LE_UINT16(ptr); ptr += 2;
+		topScaleFactor = READ_LE_UINT16(ptr); ptr += 2;
+		object = READ_LE_UINT16(ptr); ptr += 2;
+	}
+
+	void writeToBE(byte *&ptr) {
 		WRITE_BE_UINT16(ptr, mapNeighbours); ptr += 2;
-		box.writeTo(ptr);
+		box.writeToBE(ptr);
 		WRITE_BE_UINT16(ptr, bottomScaleFactor); ptr += 2;
 		WRITE_BE_UINT16(ptr, topScaleFactor); ptr += 2;
 		WRITE_BE_UINT16(ptr, object); ptr += 2;
@@ -113,13 +128,19 @@
 	//! coordinates to reach
 	uint16 x, y;
 
-	void readFrom(byte *& ptr) {
+	void readFromBE(byte *&ptr) {
 		entryObj = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		x = READ_BE_UINT16(ptr); ptr += 2;
 		y = READ_BE_UINT16(ptr); ptr += 2;
 	}
 
-	void writeTo(byte *&ptr) {
+	void readFromLE(byte *&ptr) {
+		entryObj = (int16)READ_LE_UINT16(ptr); ptr += 2;
+		x = READ_LE_UINT16(ptr); ptr += 2;
+		y = READ_LE_UINT16(ptr); ptr += 2;
+	}
+
+	void writeToBE(byte *&ptr) {
 		WRITE_BE_UINT16(ptr, entryObj); ptr += 2;
 		WRITE_BE_UINT16(ptr, x); ptr += 2;
 		WRITE_BE_UINT16(ptr, y); ptr += 2;
@@ -155,7 +176,7 @@
 	//! moving speed of object
 	uint16 speed;
 
-	void readFrom(byte *& ptr) {
+	void readFromBE(byte *&ptr) {
 		x = READ_BE_UINT16(ptr); ptr += 2;
 		y = READ_BE_UINT16(ptr); ptr += 2;
 		firstFrame = (int16)READ_BE_UINT16(ptr); ptr += 2;
@@ -221,7 +242,7 @@
 	*/
 	int16 image;
 
-	void readFrom(byte *& ptr) {
+	void readFromBE(byte *&ptr) {
 		name = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		x = READ_BE_UINT16(ptr); ptr += 2;
 		y = READ_BE_UINT16(ptr); ptr += 2;
@@ -231,8 +252,19 @@
 		state = READ_BE_UINT16(ptr); ptr += 2;
 		image = (int16)READ_BE_UINT16(ptr); ptr += 2;
 	}
+	
+	void readFromLE(byte *&ptr) {
+		name = (int16)READ_LE_UINT16(ptr); ptr += 2;
+		x = READ_LE_UINT16(ptr); ptr += 2;
+		y = READ_LE_UINT16(ptr); ptr += 2;
+		description = READ_LE_UINT16(ptr); ptr += 2;
+		entryObj = (int16)READ_LE_UINT16(ptr); ptr += 2;
+		room = READ_LE_UINT16(ptr); ptr += 2;
+		state = READ_LE_UINT16(ptr); ptr += 2;
+		image = (int16)READ_LE_UINT16(ptr); ptr += 2;
+	}
 
-	void writeTo(byte *&ptr) {
+	void writeToBE(byte *&ptr) {
 		WRITE_BE_UINT16(ptr, name); ptr += 2;
 		WRITE_BE_UINT16(ptr, x); ptr += 2;
 		WRITE_BE_UINT16(ptr, y); ptr += 2;
@@ -279,7 +311,7 @@
 	//! last description number used (in order to avoid re-using it)
 	uint16 lastSeenNumber;
 
-	void readFrom(byte *&ptr) {
+	void readFromBE(byte *&ptr) {
 		object = READ_BE_UINT16(ptr); ptr += 2;
 		type = READ_BE_UINT16(ptr); ptr += 2;
 		lastDescription = READ_BE_UINT16(ptr); ptr += 2;
@@ -300,7 +332,7 @@
 	//! entry in OBJECT_DESCR (>0 if available)
 	int16 sfxDescription;
 
-	void readFrom(byte *&ptr) {
+	void readFromBE(byte *&ptr) {
 		name = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		description = READ_BE_UINT16(ptr); ptr += 2;
 		state = READ_BE_UINT16(ptr); ptr += 2;
@@ -308,7 +340,15 @@
 		sfxDescription = (int16)READ_BE_UINT16(ptr); ptr += 2;
 	}
 
-	void writeTo(byte *&ptr) {
+	void readFromLE(byte *&ptr) {
+		name = (int16)READ_LE_UINT16(ptr); ptr += 2;
+		description = READ_LE_UINT16(ptr); ptr += 2;
+		state = READ_LE_UINT16(ptr); ptr += 2;
+		frame = READ_LE_UINT16(ptr); ptr += 2;
+		sfxDescription = (int16)READ_LE_UINT16(ptr); ptr += 2;
+	}
+
+	void writeToBE(byte *&ptr) {
 		WRITE_BE_UINT16(ptr, name); ptr += 2;
 		WRITE_BE_UINT16(ptr, description); ptr += 2;
 		WRITE_BE_UINT16(ptr, state); ptr += 2;
@@ -340,7 +380,7 @@
 	//! entry in ACTOR_FILE
 	uint16 actorFile;
 
-	void readFrom(byte *&ptr) {
+	void readFromBE(byte *&ptr) {
 		room = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		bobNum = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		name = READ_BE_UINT16(ptr); ptr += 2;
@@ -385,7 +425,7 @@
 	//! special section to execute (refer to execute.c l.423-451)
 	int16 specialSection;
 
-	void readFrom(byte *&ptr) {
+	void readFromBE(byte *&ptr) {
 		verb = (Verb)READ_BE_UINT16(ptr); ptr += 2;
 		nounObj1 = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		nounObj2 = (int16)READ_BE_UINT16(ptr); ptr += 2;
@@ -412,7 +452,7 @@
 	//! room in which the area must be changed
 	uint16 room;
 
-	void readFrom(byte *&ptr) {
+	void readFromBE(byte *&ptr) {
 		id = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		area = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		room = READ_BE_UINT16(ptr); ptr += 2;
@@ -428,7 +468,7 @@
 	//! >0: copy from srcObj, 0: nothing, -1: delete dstObj
 	int16 srcObj;
 
-	void readFrom(byte *&ptr) {
+	void readFromBE(byte *&ptr) {
 		id = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		dstObj = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		srcObj = (int16)READ_BE_UINT16(ptr); ptr += 2;
@@ -444,7 +484,7 @@
 	//! >0: valid
 	int16 srcItem;
 
-	void readFrom(byte *&ptr) {
+	void readFromBE(byte *&ptr) {
 		id = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		dstItem = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		srcItem = (int16)READ_BE_UINT16(ptr); ptr += 2;
@@ -459,7 +499,7 @@
 	int16 gameStateValue;
 	uint16 speakValue;
 
-	void readFrom(byte *&ptr) {
+	void readFromBE(byte *&ptr) {
 		id = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		gameStateSlot = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		gameStateValue = (int16)READ_BE_UINT16(ptr); ptr += 2;
@@ -490,7 +530,7 @@
 	*/
 	int16 gameStateValue;
 
-	void readFrom(byte *&ptr) {
+	void readFromBE(byte *&ptr) {
 		room = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		gameStateValue = (int16)READ_BE_UINT16(ptr); ptr += 2;
 	}
@@ -502,7 +542,7 @@
 	int16 frame;
 	uint16 speed;
 
-	void readFrom(byte *&ptr) {
+	void readFromBE(byte *&ptr) {
 		keyFrame = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		frame = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		speed = READ_BE_UINT16(ptr); ptr += 2;
@@ -532,14 +572,21 @@
 	bool hasTalkedTo;
 	int16 values[4];
 
-	void readFrom(byte *&ptr) {
+	void readFromBE(byte *&ptr) {
 		hasTalkedTo = READ_BE_UINT16(ptr) != 0; ptr += 2;
 		for (int i = 0; i < 4; i++) {
 			values[i] = (int16)READ_BE_UINT16(ptr); ptr += 2;
 		}	
 	}
 
-	void writeTo(byte *&ptr) {
+	void readFromLE(byte *&ptr) {
+		hasTalkedTo = READ_LE_UINT16(ptr) != 0; ptr += 2;
+		for (int i = 0; i < 4; i++) {
+			values[i] = (int16)READ_LE_UINT16(ptr); ptr += 2;
+		}	
+	}
+
+	void writeToBE(byte *&ptr) {
 		WRITE_BE_UINT16(ptr, (uint16)hasTalkedTo); ptr += 2;
 		for (int i = 0; i < 4; i++) {
 			WRITE_BE_UINT16(ptr, values[i]); ptr += 2;





More information about the Scummvm-git-logs mailing list