aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/room.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/scumm/room.cpp')
-rw-r--r--engines/scumm/room.cpp66
1 files changed, 31 insertions, 35 deletions
diff --git a/engines/scumm/room.cpp b/engines/scumm/room.cpp
index 58b6cdb105..8962a0e971 100644
--- a/engines/scumm/room.cpp
+++ b/engines/scumm/room.cpp
@@ -18,9 +18,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
@@ -118,7 +115,7 @@ void ScummEngine::startScene(int room, Actor *a, int objectNr) {
VAR(VAR_ROOM) = room;
_fullRedraw = true;
- _res->increaseResourceCounter();
+ _res->increaseResourceCounters();
_currentRoom = room;
VAR(VAR_ROOM) = room;
@@ -264,7 +261,7 @@ void ScummEngine::setupRoomSubBlocks() {
//
// Determine the room dimensions (width/height)
//
- rmhd = (const RoomHeader *)findResourceData(MKID_BE('RMHD'), roomptr);
+ rmhd = (const RoomHeader *)findResourceData(MKTAG('R','M','H','D'), roomptr);
if (_game.version == 8) {
_roomWidth = READ_LE_UINT32(&(rmhd->v8.width));
@@ -286,18 +283,18 @@ void ScummEngine::setupRoomSubBlocks() {
if (_game.version == 8) {
_IM00_offs = getObjectImage(roomptr, 1) - roomptr;
} else if (_game.features & GF_SMALL_HEADER) {
- _IM00_offs = findResourceData(MKID_BE('IM00'), roomptr) - roomptr;
+ _IM00_offs = findResourceData(MKTAG('I','M','0','0'), roomptr) - roomptr;
} else if (_game.heversion >= 70) {
byte *roomImagePtr = getResourceAddress(rtRoomImage, _roomResource);
- _IM00_offs = findResource(MKID_BE('IM00'), roomImagePtr) - roomImagePtr;
+ _IM00_offs = findResource(MKTAG('I','M','0','0'), roomImagePtr) - roomImagePtr;
} else {
- _IM00_offs = findResource(MKID_BE('IM00'), findResource(MKID_BE('RMIM'), roomptr)) - roomptr;
+ _IM00_offs = findResource(MKTAG('I','M','0','0'), findResource(MKTAG('R','M','I','M'), roomptr)) - roomptr;
}
//
// Look for an exit script
//
- ptr = findResourceData(MKID_BE('EXCD'), roomResPtr);
+ ptr = findResourceData(MKTAG('E','X','C','D'), roomResPtr);
if (ptr)
_EXCD_offs = ptr - roomResPtr;
if (_dumpScripts && _EXCD_offs)
@@ -306,7 +303,7 @@ void ScummEngine::setupRoomSubBlocks() {
//
// Look for an entry script
//
- ptr = findResourceData(MKID_BE('ENCD'), roomResPtr);
+ ptr = findResourceData(MKTAG('E','N','C','D'), roomResPtr);
if (ptr)
_ENCD_offs = ptr - roomResPtr;
if (_dumpScripts && _ENCD_offs)
@@ -326,7 +323,7 @@ void ScummEngine::setupRoomSubBlocks() {
if (_game.features & GF_SMALL_HEADER) {
ResourceIterator localScriptIterator(searchptr, true);
- while ((ptr = localScriptIterator.findNext(MKID_BE('LSCR'))) != NULL) {
+ while ((ptr = localScriptIterator.findNext(MKTAG('L','S','C','R'))) != NULL) {
int id = 0;
ptr += _resourceHeaderSize; /* skip tag & size */
id = ptr[0];
@@ -341,7 +338,7 @@ void ScummEngine::setupRoomSubBlocks() {
}
} else if (_game.heversion >= 90) {
ResourceIterator localScriptIterator2(searchptr, false);
- while ((ptr = localScriptIterator2.findNext(MKID_BE('LSC2'))) != NULL) {
+ while ((ptr = localScriptIterator2.findNext(MKTAG('L','S','C','2'))) != NULL) {
int id = 0;
ptr += _resourceHeaderSize; /* skip tag & size */
@@ -359,7 +356,7 @@ void ScummEngine::setupRoomSubBlocks() {
}
ResourceIterator localScriptIterator(searchptr, false);
- while ((ptr = localScriptIterator.findNext(MKID_BE('LSCR'))) != NULL) {
+ while ((ptr = localScriptIterator.findNext(MKTAG('L','S','C','R'))) != NULL) {
int id = 0;
ptr += _resourceHeaderSize; /* skip tag & size */
@@ -376,7 +373,7 @@ void ScummEngine::setupRoomSubBlocks() {
} else {
ResourceIterator localScriptIterator(searchptr, false);
- while ((ptr = localScriptIterator.findNext(MKID_BE('LSCR'))) != NULL) {
+ while ((ptr = localScriptIterator.findNext(MKTAG('L','S','C','R'))) != NULL) {
int id = 0;
ptr += _resourceHeaderSize; /* skip tag & size */
@@ -403,18 +400,18 @@ void ScummEngine::setupRoomSubBlocks() {
}
// Locate the EGA palette (currently unused).
- ptr = findResourceData(MKID_BE('EPAL'), roomptr);
+ ptr = findResourceData(MKTAG('E','P','A','L'), roomptr);
if (ptr)
_EPAL_offs = ptr - roomptr;
// Locate the standard room palette (for V3-V5 games).
- ptr = findResourceData(MKID_BE('CLUT'), roomptr);
+ ptr = findResourceData(MKTAG('C','L','U','T'), roomptr);
if (ptr)
_CLUT_offs = ptr - roomptr;
// Locate the standard room palettes (for V6+ games).
if (_game.version >= 6) {
- ptr = findResource(MKID_BE('PALS'), roomptr);
+ ptr = findResource(MKTAG('P','A','L','S'), roomptr);
if (ptr) {
_PALS_offs = ptr - roomptr;
}
@@ -425,7 +422,7 @@ void ScummEngine::setupRoomSubBlocks() {
if (_game.version == 8)
trans = (byte)READ_LE_UINT32(&(rmhd->v8.transparency));
else {
- ptr = findResourceData(MKID_BE('TRNS'), roomptr);
+ ptr = findResourceData(MKTAG('T','R','N','S'), roomptr);
if (ptr)
trans = ptr[0];
else
@@ -434,7 +431,7 @@ void ScummEngine::setupRoomSubBlocks() {
// Actor Palette in HE 70 games
if (_game.heversion == 70) {
- ptr = findResourceData(MKID_BE('REMP'), roomptr);
+ ptr = findResourceData(MKTAG('R','E','M','P'), roomptr);
if (ptr) {
for (i = 0; i < 256; i++)
_HEV7ActorPalette[i] = *ptr++;
@@ -468,7 +465,7 @@ void ScummEngine::setupRoomSubBlocks() {
* So it is not appropriate to call it after loading a savegame.
*/
void ScummEngine::resetRoomSubBlocks() {
- int i;
+ ResId i;
const byte *ptr;
byte *roomptr;
@@ -485,7 +482,7 @@ void ScummEngine::resetRoomSubBlocks() {
_res->nukeResource(rtMatrix, 1);
_res->nukeResource(rtMatrix, 2);
if (_game.features & GF_SMALL_HEADER) {
- ptr = findResourceData(MKID_BE('BOXD'), roomptr);
+ ptr = findResourceData(MKTAG('B','O','X','D'), roomptr);
if (ptr) {
byte numOfBoxes = *ptr;
int size;
@@ -506,21 +503,21 @@ void ScummEngine::resetRoomSubBlocks() {
}
} else {
- ptr = findResourceData(MKID_BE('BOXD'), roomptr);
+ ptr = findResourceData(MKTAG('B','O','X','D'), roomptr);
if (ptr) {
int size = getResourceDataSize(ptr);
_res->createResource(rtMatrix, 2, size);
roomptr = getResourceAddress(rtRoom, _roomResource);
- ptr = findResourceData(MKID_BE('BOXD'), roomptr);
+ ptr = findResourceData(MKTAG('B','O','X','D'), roomptr);
memcpy(getResourceAddress(rtMatrix, 2), ptr, size);
}
- ptr = findResourceData(MKID_BE('BOXM'), roomptr);
+ ptr = findResourceData(MKTAG('B','O','X','M'), roomptr);
if (ptr) {
int size = getResourceDataSize(ptr);
_res->createResource(rtMatrix, 1, size);
roomptr = getResourceAddress(rtRoom, _roomResource);
- ptr = findResourceData(MKID_BE('BOXM'), roomptr);
+ ptr = findResourceData(MKTAG('B','O','X','M'), roomptr);
memcpy(getResourceAddress(rtMatrix, 1), ptr, size);
}
}
@@ -528,14 +525,14 @@ void ScummEngine::resetRoomSubBlocks() {
//
// Load scale data
//
- for (i = 1; i < _res->num[rtScaleTable]; i++)
+ for (i = 1; i < _res->_types[rtScaleTable].size(); i++)
_res->nukeResource(rtScaleTable, i);
- ptr = findResourceData(MKID_BE('SCAL'), roomptr);
+ ptr = findResourceData(MKTAG('S','C','A','L'), roomptr);
if (ptr) {
int s1, s2, y1, y2;
if (_game.version == 8) {
- for (i = 1; i < _res->num[rtScaleTable]; i++, ptr += 16) {
+ for (i = 1; i < _res->_types[rtScaleTable].size(); i++, ptr += 16) {
s1 = READ_LE_UINT32(ptr);
y1 = READ_LE_UINT32(ptr + 4);
s2 = READ_LE_UINT32(ptr + 8);
@@ -543,7 +540,7 @@ void ScummEngine::resetRoomSubBlocks() {
setScaleSlot(i, 0, y1, s1, 0, y2, s2);
}
} else {
- for (i = 1; i < _res->num[rtScaleTable]; i++, ptr += 8) {
+ for (i = 1; i < _res->_types[rtScaleTable].size(); i++, ptr += 8) {
s1 = READ_LE_UINT16(ptr);
y1 = READ_LE_UINT16(ptr + 2);
s2 = READ_LE_UINT16(ptr + 4);
@@ -558,7 +555,7 @@ void ScummEngine::resetRoomSubBlocks() {
// Color cycling
// HE 7.0 games load resources but don't use them.
if (_game.version >= 4 && _game.heversion <= 62) {
- ptr = findResourceData(MKID_BE('CYCL'), roomptr);
+ ptr = findResourceData(MKTAG('C','Y','C','L'), roomptr);
if (ptr) {
initCycl(ptr);
}
@@ -567,7 +564,7 @@ void ScummEngine::resetRoomSubBlocks() {
#ifdef ENABLE_HE
// Polygons in HE 80+ games
if (_game.heversion >= 80) {
- ptr = findResourceData(MKID_BE('POLD'), roomptr);
+ ptr = findResourceData(MKTAG('P','O','L','D'), roomptr);
if (ptr) {
((ScummEngine_v71he *)this)->_wiz->polygonLoad(ptr);
}
@@ -715,7 +712,6 @@ void ScummEngine_v3old::setupRoomSubBlocks() {
}
void ScummEngine_v3old::resetRoomSubBlocks() {
- int i;
const byte *ptr;
byte *roomptr;
@@ -772,7 +768,7 @@ void ScummEngine_v3old::resetRoomSubBlocks() {
size = 0;
// Compute matrix size
- for (i = 0; i < numOfBoxes; i++) {
+ for (int i = 0; i < numOfBoxes; i++) {
while (*tmp != 0xFF) {
size++;
tmp++;
@@ -797,8 +793,8 @@ void ScummEngine_v3old::resetRoomSubBlocks() {
//
// No scale data in old bundle games
//
- for (i = 1; i < _res->num[rtScaleTable]; i++)
- _res->nukeResource(rtScaleTable, i);
+ for (ResId id = 1; id < _res->_types[rtScaleTable].size(); id++)
+ _res->nukeResource(rtScaleTable, id);
}