[Scummvm-cvs-logs] CVS: scummvm/queen cutaway.cpp,1.125,1.126 grid.cpp,1.4,1.5 logic.cpp,1.195,1.196 queen.h,1.29,1.30 sound.cpp,1.41,1.42 talk.cpp,1.95,1.96
Nicolas Bacca
arisme at users.sourceforge.net
Tue Mar 23 12:45:08 CET 2004
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/queen cutaway.cpp,1.123.2.2,1.123.2.3 grid.cpp,1.4,1.4.2.1 logic.cpp,1.187.2.6,1.187.2.7 queen.h,1.29,1.29.2.1 sound.cpp,1.35.2.5,1.35.2.6 talk.cpp,1.89.2.2,1.89.2.3
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse.h,1.32,1.33 dimuse_music.cpp,1.17,1.18 dimuse_tables.cpp,1.15,1.16
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/queen
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25387
Modified Files:
cutaway.cpp grid.cpp logic.cpp queen.h sound.cpp talk.cpp
Log Message:
Fix #922003 - FOTAQ crash on PocketPC
Index: cutaway.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/cutaway.cpp,v
retrieving revision 1.125
retrieving revision 1.126
diff -u -d -r1.125 -r1.126
--- cutaway.cpp 7 Mar 2004 10:46:01 -0000 1.125
+++ cutaway.cpp 23 Mar 2004 20:34:19 -0000 1.126
@@ -74,9 +74,9 @@
_comPanel = READ_BE_UINT16(ptr);
ptr += 2;
debug(6, "_comPanel = %i", _comPanel);
-
- _cutawayObjectCount = (int16)READ_BE_UINT16(ptr);
+ _cutawayObjectCount = (int16)READ_BE_INT16(ptr);
ptr += 2;
+
debug(6, "_cutawayObjectCount = %i", _cutawayObjectCount);
if (_cutawayObjectCount < 0) {
@@ -86,7 +86,7 @@
else
_vm->input()->canQuit(true);
- int16 flags1 = (int16)READ_BE_UINT16(ptr);
+ int16 flags1 = (int16)READ_BE_INT16(ptr);
ptr += 2;
debug(6, "flags1 = %i", flags1);
@@ -179,7 +179,7 @@
ptr = Talk::getString(ptr, _talkFile, MAX_FILENAME_LENGTH);
debug(6, "Talk file = '%s'", _talkFile);
- _talkTo = (int16)READ_BE_UINT16(ptr);
+ _talkTo = (int16)READ_BE_INT16(ptr);
ptr += 2;
debug(6, "_talkTo = %i", _talkTo);
}
@@ -188,23 +188,23 @@
{
byte *oldPtr = ptr;
- object.objectNumber = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.moveToX = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.moveToY = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.bank = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.animList = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.execute = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.limitBobX1 = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.limitBobY1 = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.limitBobX2 = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.limitBobY2 = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.specialMove = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.animType = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.fromObject = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.bobStartX = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.bobStartY = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.room = (int16)READ_BE_UINT16(ptr); ptr += 2;
- object.scale = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ object.objectNumber = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.moveToX = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.moveToY = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.bank = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.animList = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.execute = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.limitBobX1 = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.limitBobY1 = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.limitBobX2 = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.limitBobY2 = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.specialMove = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.animType = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.fromObject = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.bobStartX = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.bobStartY = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.room = (int16)READ_BE_INT16(ptr); ptr += 2;
+ object.scale = (int16)READ_BE_INT16(ptr); ptr += 2;
if ((ptr - oldPtr) != 17*sizeof(int16))
error("Wrong number of values read");
@@ -263,14 +263,14 @@
byte *Cutaway::turnOnPeople(byte *ptr, CutawayObject &object) {
// Lines 1248-1259 in cutaway.c
- object.personCount = (int16)READ_BE_UINT16(ptr);
+ object.personCount = (int16)READ_BE_INT16(ptr);
ptr += 2;
if (object.personCount > MAX_PERSON_COUNT)
error("[Cutaway::turnOnPeople] object.personCount > MAX_PERSON_COUNT");
for (int i = 0; i < object.personCount; i++) {
- object.person[i] = (int16)READ_BE_UINT16(ptr);
+ object.person[i] = (int16)READ_BE_INT16(ptr);
ptr += 2;
//debug(6, "[%i] Turn on person %i", i, object.person[i]);
}
@@ -491,13 +491,13 @@
anim.originalFrame = _vm->logic()->findFrame(header);
}
- anim.unpackFrame = (int16)READ_BE_UINT16(ptr);
+ anim.unpackFrame = (int16)READ_BE_INT16(ptr);
ptr += 2;
- anim.speed = ((int16)READ_BE_UINT16(ptr)) / 3 + 1;
+ anim.speed = ((int16)READ_BE_INT16(ptr)) / 3 + 1;
ptr += 2;
- anim.bank = (int16)READ_BE_UINT16(ptr);
+ anim.bank = (int16)READ_BE_INT16(ptr);
ptr += 2;
if (anim.bank == 0) {
@@ -514,26 +514,26 @@
}
}
- anim.mx = (int16)READ_BE_UINT16(ptr);
+ anim.mx = (int16)READ_BE_INT16(ptr);
ptr += 2;
- anim.my = (int16)READ_BE_UINT16(ptr);
+ anim.my = (int16)READ_BE_INT16(ptr);
ptr += 2;
- anim.cx = (int16)READ_BE_UINT16(ptr);
+ anim.cx = (int16)READ_BE_INT16(ptr);
ptr += 2;
- anim.cy = (int16)READ_BE_UINT16(ptr);
+ anim.cy = (int16)READ_BE_INT16(ptr);
ptr += 2;
- anim.scale = (int16)READ_BE_UINT16(ptr);
+ anim.scale = (int16)READ_BE_INT16(ptr);
ptr += 2;
if (_vm->resource()->isDemo()) {
anim.song = 0;
}
else {
- anim.song = (int16)READ_BE_UINT16(ptr);
+ anim.song = (int16)READ_BE_INT16(ptr);
ptr += 2;
}
@@ -575,7 +575,7 @@
// Read animation frames
for (;;) {
- header = (int16)READ_BE_UINT16(ptr);
+ header = (int16)READ_BE_INT16(ptr);
ptr += 2;
if (-2 == header)
@@ -1007,7 +1007,7 @@
byte *ptr = _gameStatePtr;
// Skipping GAMESTATE data
- int gameStateCount = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ int gameStateCount = (int16)READ_BE_INT16(ptr); ptr += 2;
if (gameStateCount > 0)
ptr += (gameStateCount * 12);
@@ -1051,16 +1051,16 @@
}
}
- int quitObjectCount = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ int quitObjectCount = (int16)READ_BE_INT16(ptr); ptr += 2;
for (i = 0; i < quitObjectCount; i++) {
- int16 objectIndex = (int16)READ_BE_UINT16(ptr); ptr += 2;
- int16 fromIndex = (int16)READ_BE_UINT16(ptr); ptr += 2;
- int16 x = (int16)READ_BE_UINT16(ptr); ptr += 2;
- int16 y = (int16)READ_BE_UINT16(ptr); ptr += 2;
- int16 room = (int16)READ_BE_UINT16(ptr); ptr += 2;
- int16 frame = (int16)READ_BE_UINT16(ptr); ptr += 2;
- int16 bank = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ int16 objectIndex = (int16)READ_BE_INT16(ptr); ptr += 2;
+ int16 fromIndex = (int16)READ_BE_INT16(ptr); ptr += 2;
+ int16 x = (int16)READ_BE_INT16(ptr); ptr += 2;
+ int16 y = (int16)READ_BE_INT16(ptr); ptr += 2;
+ int16 room = (int16)READ_BE_INT16(ptr); ptr += 2;
+ int16 frame = (int16)READ_BE_INT16(ptr); ptr += 2;
+ int16 bank = (int16)READ_BE_INT16(ptr); ptr += 2;
int bobIndex = _vm->logic()->findBob(objectIndex);
ObjectData *object = _vm->logic()->objectData(objectIndex);
@@ -1116,11 +1116,11 @@
}
} // for()
- int16 specialMove = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ int16 specialMove = (int16)READ_BE_INT16(ptr); ptr += 2;
if (specialMove > 0)
_vm->logic()->executeSpecialMove(specialMove);
- _lastSong = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ _lastSong = (int16)READ_BE_INT16(ptr); ptr += 2;
}
if (joeRoom == _temporaryRoom &&
@@ -1141,15 +1141,15 @@
// Lines 2047-2115 in cutaway.c
byte *ptr = _gameStatePtr;
- int gameStateCount = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ int gameStateCount = (int16)READ_BE_INT16(ptr); ptr += 2;
for (int i = 0; i < gameStateCount; i++) {
- int16 stateIndex = (int16)READ_BE_UINT16(ptr); ptr += 2;
- int16 stateValue = (int16)READ_BE_UINT16(ptr); ptr += 2;
- int16 objectIndex = (int16)READ_BE_UINT16(ptr); ptr += 2;
- int16 areaIndex = (int16)READ_BE_UINT16(ptr); ptr += 2;
- int16 areaSubIndex = (int16)READ_BE_UINT16(ptr); ptr += 2;
- int16 fromObject = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ int16 stateIndex = (int16)READ_BE_INT16(ptr); ptr += 2;
+ int16 stateValue = (int16)READ_BE_INT16(ptr); ptr += 2;
+ int16 objectIndex = (int16)READ_BE_INT16(ptr); ptr += 2;
+ int16 areaIndex = (int16)READ_BE_INT16(ptr); ptr += 2;
+ int16 areaSubIndex = (int16)READ_BE_INT16(ptr); ptr += 2;
+ int16 fromObject = (int16)READ_BE_INT16(ptr); ptr += 2;
bool update = false;
Index: grid.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/grid.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- grid.cpp 14 Jan 2004 10:40:25 -0000 1.4
+++ grid.cpp 23 Mar 2004 20:34:19 -0000 1.5
@@ -46,8 +46,8 @@
_areaMax[0] = 0;
memset(&_area[0], 0, sizeof(Area) * MAX_AREAS_NUMBER);
for (i = 1; i <= _numRoomAreas; i++) {
- _objMax[i] = (int16)READ_BE_UINT16(ptr); ptr += 2;
- _areaMax[i] = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ _objMax[i] = (int16)READ_BE_INT16(ptr); ptr += 2;
+ _areaMax[i] = (int16)READ_BE_INT16(ptr); ptr += 2;
memset(&_area[i][0], 0, sizeof(Area));
for (j = 1; j <= _areaMax[i]; j++) {
assert(j < MAX_AREAS_NUMBER);
Index: logic.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/logic.cpp,v
retrieving revision 1.195
retrieving revision 1.196
diff -u -d -r1.195 -r1.196
--- logic.cpp 18 Mar 2004 21:27:51 -0000 1.195
+++ logic.cpp 23 Mar 2004 20:34:19 -0000 1.196
@@ -1298,11 +1298,11 @@
void Logic::loadState(uint32 ver, byte *&ptr) {
uint16 i;
for (i = 0; i < 4; i++) {
- _inventoryItem[i] = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ _inventoryItem[i] = (int16)READ_BE_INT16(ptr); ptr += 2;
}
- _joe.x = (int16)READ_BE_UINT16(ptr); ptr += 2;
- _joe.y = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ _joe.x = (int16)READ_BE_INT16(ptr); ptr += 2;
+ _joe.y = (int16)READ_BE_INT16(ptr); ptr += 2;
_currentRoom = READ_BE_UINT16(ptr); ptr += 2;
@@ -1313,7 +1313,7 @@
_itemData[i].readFromBE(ptr);
for (i = 0; i < GAME_STATE_COUNT; i++) {
- _gameState[i] = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ _gameState[i] = (int16)READ_BE_INT16(ptr); ptr += 2;
}
for (i = 0; i < TALK_SELECTED_COUNT; i++)
Index: queen.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/queen.h,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- queen.h 15 Jan 2004 21:07:17 -0000 1.29
+++ queen.h 23 Mar 2004 20:34:19 -0000 1.30
@@ -26,6 +26,22 @@
class GameDetector;
+#if defined(_WIN32_WCE) && (_WIN32_WCE <= 300)
+
+FORCEINLINE int16 READ_BE_INT16(const void *ptr) {
+ uint16 result;
+ char dummy[2];
+ result = READ_BE_UINT16(ptr);
+ strcpy(dummy, "x"); // Hello, I'm a drunk optimizer. Thanks for helping me.
+ return result;
+}
+
+#else
+
+#define READ_BE_INT16 READ_BE_UINT16
+
+#endif
+
namespace Queen {
struct GameStateHeader {
Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/sound.cpp,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -d -r1.41 -r1.42
--- sound.cpp 17 Mar 2004 14:10:51 -0000 1.41
+++ sound.cpp 23 Mar 2004 20:34:19 -0000 1.42
@@ -167,7 +167,7 @@
}
void Sound::loadState(uint32 ver, byte *&ptr) {
- _lastOverride = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ _lastOverride = (int16)READ_BE_INT16(ptr); ptr += 2;
}
void SBSound::playSound(byte *sound, uint32 size, bool isSpeech) {
Index: talk.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/talk.cpp,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -d -r1.95 -r1.96
--- talk.cpp 19 Mar 2004 10:49:29 -0000 1.95
+++ talk.cpp 23 Mar 2004 20:34:19 -0000 1.96
@@ -300,8 +300,8 @@
uint8 *ptr = _cutawayPtr;
- int16 cutawayGameState = (int16)READ_BE_UINT16(ptr); ptr += 2;
- int16 cutawayTestValue = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ int16 cutawayGameState = (int16)READ_BE_INT16(ptr); ptr += 2;
+ int16 cutawayTestValue = (int16)READ_BE_INT16(ptr); ptr += 2;
if (_vm->logic()->gameState(cutawayGameState) == cutawayTestValue) {
getString(ptr, cutawayFilename, 20);
@@ -360,7 +360,7 @@
for (int i = 1; i <= max; i++) {
ptr += 2;
- int16 currentId = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ int16 currentId = (int16)READ_BE_INT16(ptr); ptr += 2;
if (id == currentId) {
ptr = getString(ptr, str, MAX_STRING_LENGTH, 4);
//debug(6, "Found string with ID %i: '%s'", id, str);
@@ -409,7 +409,7 @@
// Load talk header
//
- _levelMax = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ _levelMax = (int16)READ_BE_INT16(ptr); ptr += 2;
//debug(6, "levelMax = %i", _levelMax);
@@ -420,15 +420,15 @@
else
canQuit = true;
- _uniqueKey = (int16)READ_BE_UINT16(ptr); ptr += 2;
- _talkKey = (int16)READ_BE_UINT16(ptr); ptr += 2;
- _jMax = (int16)READ_BE_UINT16(ptr); ptr += 2;
- _pMax = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ _uniqueKey = (int16)READ_BE_INT16(ptr); ptr += 2;
+ _talkKey = (int16)READ_BE_INT16(ptr); ptr += 2;
+ _jMax = (int16)READ_BE_INT16(ptr); ptr += 2;
+ _pMax = (int16)READ_BE_INT16(ptr); ptr += 2;
for (i = 0; i < 2; i++) {
- _gameState [i] = (int16)READ_BE_UINT16(ptr); ptr += 2;
- _testValue [i] = (int16)READ_BE_UINT16(ptr); ptr += 2;
- _itemNumber[i] = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ _gameState [i] = (int16)READ_BE_INT16(ptr); ptr += 2;
+ _testValue [i] = (int16)READ_BE_INT16(ptr); ptr += 2;
+ _itemNumber[i] = (int16)READ_BE_INT16(ptr); ptr += 2;
}
//debug(6, "uniqueKey = %i", _uniqueKey);
@@ -454,13 +454,13 @@
for (i = 1; i <= _levelMax; i++)
for (int j = 0; j <= 5; j++) {
ptr += 2;
- _dialogueTree[i][j].head = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ _dialogueTree[i][j].head = (int16)READ_BE_INT16(ptr); ptr += 2;
ptr += 2;
- _dialogueTree[i][j].dialogueNodeValue1 = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ _dialogueTree[i][j].dialogueNodeValue1 = (int16)READ_BE_INT16(ptr); ptr += 2;
ptr += 2;
- _dialogueTree[i][j].gameStateIndex = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ _dialogueTree[i][j].gameStateIndex = (int16)READ_BE_INT16(ptr); ptr += 2;
ptr += 2;
- _dialogueTree[i][j].gameStateValue = (int16)READ_BE_UINT16(ptr); ptr += 2;
+ _dialogueTree[i][j].gameStateValue = (int16)READ_BE_INT16(ptr); ptr += 2;
}
}
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/queen cutaway.cpp,1.123.2.2,1.123.2.3 grid.cpp,1.4,1.4.2.1 logic.cpp,1.187.2.6,1.187.2.7 queen.h,1.29,1.29.2.1 sound.cpp,1.35.2.5,1.35.2.6 talk.cpp,1.89.2.2,1.89.2.3
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse.h,1.32,1.33 dimuse_music.cpp,1.17,1.18 dimuse_tables.cpp,1.15,1.16
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list