[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