[Scummvm-cvs-logs] SF.net SVN: scummvm: [29169] scummvm/trunk/engines/lure
dreammaster at users.sourceforge.net
dreammaster at users.sourceforge.net
Sun Oct 7 13:12:46 CEST 2007
Revision: 29169
http://scummvm.svn.sourceforge.net/scummvm/?rev=29169&view=rev
Author: dreammaster
Date: 2007-10-07 04:12:46 -0700 (Sun, 07 Oct 2007)
Log Message:
-----------
Added support for setting animations by their index rather than their offset, allowing for easier multi-language support. Also fixed translation of inventory window
Modified Paths:
--------------
scummvm/trunk/engines/lure/hotspots.cpp
scummvm/trunk/engines/lure/hotspots.h
scummvm/trunk/engines/lure/luredefs.h
scummvm/trunk/engines/lure/res_struct.cpp
Modified: scummvm/trunk/engines/lure/hotspots.cpp
===================================================================
--- scummvm/trunk/engines/lure/hotspots.cpp 2007-10-07 11:11:06 UTC (rev 29168)
+++ scummvm/trunk/engines/lure/hotspots.cpp 2007-10-07 11:12:46 UTC (rev 29169)
@@ -234,21 +234,36 @@
setAnimation(tempAnim);
}
+void Hotspot::setAnimationIndex(int animIndex) {
+ Resources &r = Resources::getReference();
+
+ // Get the animation specified
+ HotspotAnimData *tempAnim = r.animRecords()[animIndex];
+
+ _animId = tempAnim->animRecordId;
+ if (_data)
+ _data->animRecordId = tempAnim->animRecordId;
+
+ setAnimation(tempAnim);
+}
+
struct SizeOverrideEntry {
- uint16 animId;
+ int animIndex;
uint16 width, height;
};
static const SizeOverrideEntry sizeOverrides[] = {
- {BLACKSMITH_STANDARD, 32, 48},
- {BLACKSMITH_HAMMERING_ANIM_ID, 48, 47},
+ {BLACKSMITH_DEFAULT_ANIM_INDEX, 32, 48},
+ {BLACKSMITH_HAMMERING_ANIM_INDEX, 48, 47},
{0, 0, 0}
};
void Hotspot::setAnimation(HotspotAnimData *newRecord) {
- Disk &r = Disk::getReference();
+ Disk &disk = Disk::getReference();
+ Resources &res = Resources::getReference();
uint16 tempWidth, tempHeight;
int16 xStart;
+ int animIndex = res.getAnimationIndex(newRecord);
if (_frames) {
delete _frames;
@@ -258,13 +273,13 @@
_numFrames = 0;
_frameNumber = 0;
if (!newRecord) return;
- if (!r.exists(newRecord->animId)) return;
+ if (!disk.exists(newRecord->animId)) return;
// Scan for any size overrides - some animations get their size set after decoding, but
// we want it in advance so we can decode the animation straight to a graphic surface
const SizeOverrideEntry *p = &sizeOverrides[0];
- while ((p->animId != 0) && (p->animId != newRecord->animId)) ++p;
- if (p->animId != 0)
+ while ((p->animIndex != 0) && (p->animIndex != animIndex)) ++p;
+ if (p->animIndex != 0)
setSize(p->width, p->height);
_anim = newRecord;
@@ -289,7 +304,7 @@
_frameNumber = 0;
// Special handling need
- if (newRecord->animRecordId == SERF_ANIM_ID) {
+ if (_hotspotId == RACK_SERF_ID) {
_frameStartsUsed = true;
_frames = new Surface(416, 27);
} else {
@@ -315,7 +330,7 @@
pSrc = dest->data() + frameOffset;
}
- if (newRecord->animRecordId == SERF_ANIM_ID) {
+ if (_hotspotId == RACK_SERF_ID) {
// Save the start of each frame for serf, since the size varies
xStart = (frameNumCtr == 0) ? 0 : _frameStarts[frameNumCtr - 1] + tempWidth;
_frameStarts[frameNumCtr] = xStart;
@@ -1422,8 +1437,6 @@
}
}
-uint16 giveTalkIds[6] = {0xCF5E, 0xCF14, 0xCF90, 0xCFAA, 0xCFD0, 0xCFF6};
-
void Hotspot::doGive(HotspotData *hotspot) {
Resources &res = Resources::getReference();
uint16 usedId = _currentActions.top().supportData().param(1);
@@ -1462,8 +1475,8 @@
if (sequenceOffset == NOONE_ID) {
// Start a conversation based on the index of field #6
uint16 index = fields.getField(GIVE_TALK_INDEX);
- assert(index < 6);
- startTalk(hotspot, giveTalkIds[index]);
+ uint16 id = res.getGiveTalkId(index);
+ startTalk(hotspot, id);
} else if (sequenceOffset == 0) {
// Move item into character's inventory
@@ -1686,18 +1699,20 @@
void Hotspot::doStatus(HotspotData *hotspot) {
char buffer[MAX_DESC_SIZE];
uint16 numItems = 0;
+ Resources &res = Resources::getReference();
+ StringList &stringList = res.stringList();
StringData &strings = StringData::getReference();
- Resources &resources = Resources::getReference();
Room &room = Room::getReference();
room.update();
endAction();
strings.getString(room.roomNumber(), buffer);
- strcat(buffer, "\n\nYou are carrying ");
+ strcat(buffer, "\n\n");
+ strcat(buffer, stringList.getString(S_YOU_ARE_CARRYING));
// Scan through the list and add in any items assigned to the player
- HotspotDataList &list = resources.hotspotData();
+ HotspotDataList &list = res.hotspotData();
HotspotDataList::iterator i;
for (i = list.begin(); i != list.end(); ++i) {
HotspotData *rec = *i;
@@ -1710,13 +1725,16 @@
}
// If there were no items, add in the word 'nothing'
- if (numItems == 0) strcat(buffer, "nothing.");
+ if (numItems == 0) strcat(buffer, stringList.getString(S_INV_NOTHING));
// If the player has money, add it in
- uint16 numGroats = resources.fieldList().numGroats();
+ uint16 numGroats = res.fieldList().numGroats();
if (numGroats > 0) {
- sprintf(buffer + strlen(buffer), "\n\nYou have %d groat", numGroats);
- if (numGroats > 1) strcat(buffer, "s");
+ strcat(buffer, "\n\n");
+ strcat(buffer, stringList.getString(S_YOU_HAVE));
+ sprintf(buffer + strlen(buffer), "%d", numGroats);
+ strcat(buffer, " ");
+ strcat(buffer, stringList.getString((numGroats == 1) ? S_GROAT : S_GROATS));
}
// Display the dialog
@@ -2391,9 +2409,10 @@
// There is some countdown left to do
h.updateMovement();
- bool decrementFlag = (h.resource()->actionHotspotId != 0);
- if (decrementFlag) {
+ bool decrementFlag = (h.resource()->actionHotspotId == 0);
+ if (!decrementFlag) {
HotspotData *hotspot = res.getHotspot(h.resource()->actionHotspotId);
+ assert(hotspot);
decrementFlag = (hotspot->roomNumber != h.hotspotId()) ? false :
Support::charactersIntersecting(hotspot, h.resource());
}
@@ -3069,16 +3088,16 @@
h.setPosition(player->x() - 14, player->y() - 10);
h.setActionCtr(h.actionCtr() + 1);
if (h.actionCtr() == 6) {
- uint16 animId;
+ int animIndex;
if ((fields.getField(11) == 2) || (fields.getField(28) != 0)) {
fields.setField(28, 0);
- animId = PLAYER_ANIM_ID;
+ animIndex = PLAYER_ANIM_INDEX;
} else {
fields.setField(28, fields.getField(28) + 1);
- animId = SELENA_ANIM_ID;
+ animIndex = SELENA_ANIM_INDEX;
}
- player->setAnimation(animId);
+ player->setAnimationIndex(animIndex);
}
if (h.executeScript()) {
@@ -3578,7 +3597,7 @@
else {
// Set up alternate animation
h.setWidth(32);
- h.setAnimation(EWAN_ALT_ANIM_ID);
+ h.setAnimationIndex(EWAN_ALT_ANIM_INDEX);
ewanXOffset = true;
h.setPosition(h.x() - 8, h.y());
id = BG_EXTRA2 << 8;
@@ -3605,7 +3624,7 @@
if (h.hotspotId() == EWAN_ID) {
// Make sure Ewan is back to his standard animation
h.setWidth(16);
- h.setAnimation(EWAN_ANIM_ID);
+ h.setAnimationIndex(EWAN_ANIM_INDEX);
if (ewanXOffset) {
h.setPosition(h.x() + 8, h.y());
Modified: scummvm/trunk/engines/lure/hotspots.h
===================================================================
--- scummvm/trunk/engines/lure/hotspots.h 2007-10-07 11:11:06 UTC (rev 29168)
+++ scummvm/trunk/engines/lure/hotspots.h 2007-10-07 11:12:46 UTC (rev 29169)
@@ -352,6 +352,7 @@
~Hotspot();
void setAnimation(uint16 newAnimId);
+ void setAnimationIndex(int animIndex);
void setAnimation(HotspotAnimData *newRecord);
uint16 hotspotId() { return _hotspotId; }
uint16 originalId() { return _originalId; }
Modified: scummvm/trunk/engines/lure/luredefs.h
===================================================================
--- scummvm/trunk/engines/lure/luredefs.h 2007-10-07 11:11:06 UTC (rev 29168)
+++ scummvm/trunk/engines/lure/luredefs.h 2007-10-07 11:12:46 UTC (rev 29169)
@@ -34,7 +34,7 @@
#define SUPPORT_FILENAME "lure.dat"
#define LURE_DAT_MAJOR 1
-#define LURE_DAT_MINOR 22
+#define LURE_DAT_MINOR 23
#define LURE_DEBUG 1
@@ -246,6 +246,7 @@
#define CASTLE_SKORL_ID 0x3F3
#define FIRST_NONCHARACTER_ID 0x408
#define SACK_ID 0x40D
+#define RACK_SERF_ID 0x411
#define PRISONER_ID 0x412
#define SID_ID 0x420
#define OIL_BURNER_ID 0x424
@@ -285,19 +286,20 @@
// Misc constants
#define GENERAL_MAGIC_ID 42
-#define PLAYER_FIGHT_ANIM_ID 0x55F6
#define VOICE_ANIM_INDEX 1
#define PUZZLED_ANIM_INDEX 2
#define EXCLAMATION_ANIM_INDEX 3
-#define SERF_ANIM_ID 0x58A0
-#define BLACKSMITH_STANDARD 0x8a12
-#define BLACKSMITH_HAMMERING_ANIM_ID 0x9c11
-#define EWAN_ANIM_ID 0x59E4
-#define EWAN_ALT_ANIM_ID 0x59ED
-#define PLAYER_ANIM_ID 0x5C80
-#define SELENA_ANIM_ID 0x5CAA
#define DEFAULT_VOLUME 192
+// Animation record indexes
+#define PLAYER_FIGHT_ANIM_INDEX 10
+#define BLACKSMITH_HAMMERING_ANIM_INDEX 21
+#define EWAN_ANIM_INDEX 22
+#define EWAN_ALT_ANIM_INDEX 23
+#define PLAYER_ANIM_INDEX 31
+#define SELENA_ANIM_INDEX 32
+#define BLACKSMITH_DEFAULT_ANIM_INDEX 33
+
#define CONVERSE_COUNTDOWN_SIZE 40
#define IDLE_COUNTDOWN_SIZE 15
#define MAX_TELL_COMMANDS 8
Modified: scummvm/trunk/engines/lure/res_struct.cpp
===================================================================
--- scummvm/trunk/engines/lure/res_struct.cpp 2007-10-07 11:11:06 UTC (rev 29168)
+++ scummvm/trunk/engines/lure/res_struct.cpp 2007-10-07 11:12:46 UTC (rev 29169)
@@ -75,49 +75,49 @@
// Room data holding class
RoomData::RoomData(RoomResource *rec, MemoryBlock *pathData) {
- roomNumber = FROM_LE_16(rec->roomNumber);
+ roomNumber = READ_LE_UINT16(&rec->roomNumber);
hdrFlags = rec->hdrFlags;
actions = FROM_LE_32(rec->actions) & 0xfffffff;
flags = (FROM_LE_32(rec->actions) >> 24) & 0xf0;
- descId = FROM_LE_16(rec->descId);
- sequenceOffset = FROM_LE_16(rec->sequenceOffset);
- numLayers = FROM_LE_16(rec->numLayers);
+ descId = READ_LE_UINT16(&rec->descId);
+ sequenceOffset = READ_LE_UINT16(&rec->sequenceOffset);
+ numLayers = READ_LE_UINT16(&rec->numLayers);
paths.load(pathData->data() + (roomNumber - 1) * ROOM_PATHS_SIZE);
for (int ctr = 0; ctr < 4; ++ctr)
- layers[ctr] = FROM_LE_16(rec->layers[ctr]);
+ layers[ctr] = READ_LE_UINT16(&rec->layers[ctr]);
- clippingXStart = FROM_LE_16(rec->clippingXStart);
- clippingXEnd = FROM_LE_16(rec->clippingXEnd);
+ clippingXStart = READ_LE_UINT16(&rec->clippingXStart);
+ clippingXEnd = READ_LE_UINT16(&rec->clippingXEnd);
exitTime = FROM_LE_32(rec->exitTime);
areaFlag = rec->areaFlag;
- walkBounds.left = FROM_LE_16(rec->walkBounds.xs);
- walkBounds.right = FROM_LE_16(rec->walkBounds.xe);
- walkBounds.top = FROM_LE_16(rec->walkBounds.ys);
- walkBounds.bottom = FROM_LE_16(rec->walkBounds.ye);
+ walkBounds.left = READ_LE_UINT16(&rec->walkBounds.xs);
+ walkBounds.right = READ_LE_UINT16(&rec->walkBounds.xe);
+ walkBounds.top = READ_LE_UINT16(&rec->walkBounds.ys);
+ walkBounds.bottom = READ_LE_UINT16(&rec->walkBounds.ye);
}
// Room exit hotspot area holding class
RoomExitHotspotData::RoomExitHotspotData(RoomExitHotspotResource *rec) {
- hotspotId = FROM_LE_16(rec->hotspotId);
- xs = FROM_LE_16(rec->xs);
- ys = FROM_LE_16(rec->ys);
- xe = FROM_LE_16(rec->xe);
- ye = FROM_LE_16(rec->ye);
+ hotspotId = READ_LE_UINT16(&rec->hotspotId);
+ xs = READ_LE_UINT16(&rec->xs);
+ ys = READ_LE_UINT16(&rec->ys);
+ xe = READ_LE_UINT16(&rec->xe);
+ ye = READ_LE_UINT16(&rec->ye);
cursorNum = rec->cursorNum;
- destRoomNumber = FROM_LE_16(rec->destRoomNumber);
+ destRoomNumber = READ_LE_UINT16(&rec->destRoomNumber);
}
// Room exit class
RoomExitData::RoomExitData(RoomExitResource *rec) {
- xs = FROM_LE_16(rec->xs);
- ys = FROM_LE_16(rec->ys);
- xe = FROM_LE_16(rec->xe);
- ye = FROM_LE_16(rec->ye);
- sequenceOffset = FROM_LE_16(rec->sequenceOffset);
+ xs = READ_LE_UINT16(&rec->xs);
+ ys = READ_LE_UINT16(&rec->ys);
+ xe = READ_LE_UINT16(&rec->xe);
+ ye = READ_LE_UINT16(&rec->ye);
+ sequenceOffset = READ_LE_UINT16(&rec->sequenceOffset);
roomNumber = rec->newRoom;
x = rec->newRoomX;
y = rec->newRoomY;
@@ -304,12 +304,12 @@
// Room exit joins class
RoomExitJoinData::RoomExitJoinData(RoomExitJoinResource *rec) {
- hotspots[0].hotspotId = FROM_LE_16(rec->hotspot1Id);
+ hotspots[0].hotspotId = READ_LE_UINT16(&rec->hotspot1Id);
hotspots[0].currentFrame = rec->h1CurrentFrame;
hotspots[0].destFrame = rec->h1DestFrame;
hotspots[0].openSound = rec->h1OpenSound;
hotspots[0].closeSound = rec->h1CloseSound;
- hotspots[1].hotspotId = FROM_LE_16(rec->hotspot2Id);
+ hotspots[1].hotspotId = READ_LE_UINT16(&rec->hotspot2Id);
hotspots[1].currentFrame = rec->h2CurrentFrame;
hotspots[1].destFrame = rec->h2DestFrame;
hotspots[1].openSound = rec->h2OpenSound;
@@ -378,42 +378,42 @@
// Hotspot data
HotspotData::HotspotData(HotspotResource *rec) {
- hotspotId = FROM_LE_16(rec->hotspotId);
- nameId = FROM_LE_16(rec->nameId);
- descId = FROM_LE_16(rec->descId);
- descId2 = FROM_LE_16(rec->descId2);
+ hotspotId = READ_LE_UINT16(&rec->hotspotId);
+ nameId = READ_LE_UINT16(&rec->nameId);
+ descId = READ_LE_UINT16(&rec->descId);
+ descId2 = READ_LE_UINT16(&rec->descId2);
actions = READ_LE_UINT32(&rec->actions);
- actionsOffset = FROM_LE_16(rec->actionsOffset);
+ actionsOffset = READ_LE_UINT16(&rec->actionsOffset);
flags = (byte) (actions >> 24) & 0xf0;
actions &= 0xfffffff;
- roomNumber = FROM_LE_16(rec->roomNumber);
+ roomNumber = READ_LE_UINT16(&rec->roomNumber);
layer = rec->layer;
scriptLoadFlag = rec->scriptLoadFlag;
- loadOffset = FROM_LE_16(rec->loadOffset);
- startX = FROM_LE_16(rec->startX);
- startY = FROM_LE_16(rec->startY);
- width = FROM_LE_16(rec->width);
- height = FROM_LE_16(rec->height);
- widthCopy = FROM_LE_16(rec->widthCopy);
- heightCopy = FROM_LE_16(rec->heightCopy);
- yCorrection = FROM_LE_16(rec->yCorrection);
- walkX = FROM_LE_16(rec->walkX);
- walkY = FROM_LE_16(rec->walkY);
+ loadOffset = READ_LE_UINT16(&rec->loadOffset);
+ startX = READ_LE_UINT16(&rec->startX);
+ startY = READ_LE_UINT16(&rec->startY);
+ width = READ_LE_UINT16(&rec->width);
+ height = READ_LE_UINT16(&rec->height);
+ widthCopy = READ_LE_UINT16(&rec->widthCopy);
+ heightCopy = READ_LE_UINT16(&rec->heightCopy);
+ yCorrection = READ_LE_UINT16(&rec->yCorrection);
+ walkX = READ_LE_UINT16(&rec->walkX);
+ walkY = READ_LE_UINT16(&rec->walkY);
talkX = rec->talkX;
talkY = rec->talkY;
- colourOffset = FROM_LE_16(rec->colourOffset);
- animRecordId = FROM_LE_16(rec->animRecordId);
- hotspotScriptOffset = FROM_LE_16(rec->hotspotScriptOffset);
- talkScriptOffset = FROM_LE_16(rec->talkScriptOffset);
- tickProcId = FROM_LE_16(rec->tickProcId);
- tickTimeout = FROM_LE_16(rec->tickTimeout);
- tickScriptOffset = FROM_LE_16(rec->tickScriptOffset);
- npcSchedule = FROM_LE_16(rec->npcSchedule);
- characterMode = (CharacterMode) FROM_LE_16(rec->characterMode);
- delayCtr = FROM_LE_16(rec->delayCtr);
- flags2 = FROM_LE_16(rec->flags2);
- headerFlags = FROM_LE_16(rec->hdrFlags);
+ colourOffset = READ_LE_UINT16(&rec->colourOffset);
+ animRecordId = READ_LE_UINT16(&rec->animRecordId);
+ hotspotScriptOffset = READ_LE_UINT16(&rec->hotspotScriptOffset);
+ talkScriptOffset = READ_LE_UINT16(&rec->talkScriptOffset);
+ tickProcId = READ_LE_UINT16(&rec->tickProcId);
+ tickTimeout = READ_LE_UINT16(&rec->tickTimeout);
+ tickScriptOffset = READ_LE_UINT16(&rec->tickScriptOffset);
+ npcSchedule = READ_LE_UINT16(&rec->npcSchedule);
+ characterMode = (CharacterMode) READ_LE_UINT16(&rec->characterMode);
+ delayCtr = READ_LE_UINT16(&rec->delayCtr);
+ flags2 = READ_LE_UINT16(&rec->flags2);
+ headerFlags = READ_LE_UINT16(&rec->hdrFlags);
// Initialise runtime fields
actionCtr = 0;
@@ -540,19 +540,19 @@
// Hotspot override data
HotspotOverrideData::HotspotOverrideData(HotspotOverrideResource *rec) {
- hotspotId = FROM_LE_16(rec->hotspotId);
- xs = FROM_LE_16(rec->xs);
- ys = FROM_LE_16(rec->ys);
- xe = FROM_LE_16(rec->xe);
- ye = FROM_LE_16(rec->ye);
+ hotspotId = READ_LE_UINT16(&rec->hotspotId);
+ xs = READ_LE_UINT16(&rec->xs);
+ ys = READ_LE_UINT16(&rec->ys);
+ xe = READ_LE_UINT16(&rec->xe);
+ ye = READ_LE_UINT16(&rec->ye);
}
// Hotspot animation movement frame
MovementData::MovementData(MovementResource *rec) {
- frameNumber = FROM_LE_16(rec->frameNumber);
- xChange = FROM_LE_16(rec->xChange);
- yChange = FROM_LE_16(rec->yChange);
+ frameNumber = READ_LE_UINT16(&rec->frameNumber);
+ xChange = READ_LE_UINT16(&rec->xChange);
+ yChange = READ_LE_UINT16(&rec->yChange);
}
// List of movement frames
@@ -577,13 +577,12 @@
return true;
}
-
// Hotspot animation data
HotspotAnimData::HotspotAnimData(HotspotAnimResource *rec) {
- animRecordId = FROM_LE_16(rec->animRecordId);
- animId = FROM_LE_16(rec->animId);
- flags = FROM_LE_16(rec->flags);
+ animRecordId = READ_LE_UINT16(&rec->animRecordId);
+ animId = READ_LE_UINT16(&rec->animId);
+ flags = READ_LE_UINT16(&rec->flags);
upFrame = rec->upFrame;
downFrame = rec->downFrame;
@@ -649,9 +648,9 @@
// The following class holds a single talking entry
TalkEntryData::TalkEntryData(TalkDataResource *rec) {
- preSequenceId = FROM_LE_16(rec->preSequenceId);
- descId = FROM_LE_16(rec->descId);
- postSequenceId = FROM_LE_16(rec->postSequenceId);
+ preSequenceId = READ_LE_UINT16(&rec->preSequenceId);
+ descId = READ_LE_UINT16(&rec->descId);
+ postSequenceId = READ_LE_UINT16(&rec->postSequenceId);
}
// The following class acts as a container for all the talk entries and
@@ -685,10 +684,10 @@
int ctr;
for (ctr = 0; ctr < ROOM_EXIT_COORDINATES_NUM_ENTRIES; ++ctr) {
- uint16 tempY = FROM_LE_16(rec->entries[ctr].y);
- _entries[ctr].x = FROM_LE_16(rec->entries[ctr].x);
+ uint16 tempY = READ_LE_UINT16(&rec->entries[ctr].y);
+ _entries[ctr].x = READ_LE_UINT16(&rec->entries[ctr].x);
_entries[ctr].y = tempY & 0xfff;
- _entries[ctr].roomNumber = FROM_LE_16(rec->entries[ctr].roomNumber);
+ _entries[ctr].roomNumber = READ_LE_UINT16(&rec->entries[ctr].roomNumber);
_entries[ctr].hotspotIndexId = (tempY >> 12) << 4;
}
@@ -816,13 +815,13 @@
CharacterScheduleResource *&rec) {
_parent = parentSet;
- if ((rec->action == 0) || (FROM_LE_16(rec->action) > NPC_JUMP_ADDRESS))
+ if ((rec->action == 0) || (READ_LE_UINT16(&rec->action) > NPC_JUMP_ADDRESS))
error("Invalid action encountered reading NPC schedule");
- _action = (Action) FROM_LE_16(rec->action);
+ _action = (Action) READ_LE_UINT16(&rec->action);
_numParams = actionNumParams[_action];
for (int index = 0; index < _numParams; ++index)
- _params[index] = FROM_LE_16(rec->params[index]);
+ _params[index] = READ_LE_UINT16(&rec->params[index]);
rec = (CharacterScheduleResource *) ((byte *) rec +
(_numParams + 1) * sizeof(uint16));
@@ -999,7 +998,7 @@
RoomExitIndexedHotspotData::RoomExitIndexedHotspotData(RoomExitIndexedHotspotResource *rec) {
roomNumber = rec->roomNumber;
hotspotIndex = rec->hotspotIndex;
- hotspotId = FROM_LE_16(rec->hotspotId);
+ hotspotId = READ_LE_UINT16(&rec->hotspotId);
}
uint16 RoomExitIndexedHotspotList::getHotspot(uint16 roomNumber, uint8 hotspotIndexId) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list