aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStrangerke2015-12-22 11:49:17 +0100
committerWillem Jan Palenstijn2015-12-23 21:35:34 +0100
commit0823ebb36f7a464ea5986768c95d4e8d0adff3f9 (patch)
treebb4c8ab4b902e1ba45a2aa13da107a34fb86dd9a
parent503b63386628257ab79374afe4f7cca2b72b2527 (diff)
downloadscummvm-rg350-0823ebb36f7a464ea5986768c95d4e8d0adff3f9.tar.gz
scummvm-rg350-0823ebb36f7a464ea5986768c95d4e8d0adff3f9.tar.bz2
scummvm-rg350-0823ebb36f7a464ea5986768c95d4e8d0adff3f9.zip
LAB: Reduce the use of redirections in Resource
-rw-r--r--engines/lab/resource.cpp49
-rw-r--r--engines/lab/resource.h4
2 files changed, 25 insertions, 28 deletions
diff --git a/engines/lab/resource.cpp b/engines/lab/resource.cpp
index 0e8c118637..43820cf0ee 100644
--- a/engines/lab/resource.cpp
+++ b/engines/lab/resource.cpp
@@ -94,7 +94,7 @@ Common::String Resource::getText(const Common::String fileName) {
return str;
}
-bool Resource::readRoomData(const Common::String fileName) {
+void Resource::readRoomData(const Common::String fileName) {
Common::File *dataFile = openDataFile(fileName, MKTAG('D', 'O', 'R', '1'));
_vm->_manyRooms = dataFile->readUint16LE();
@@ -103,22 +103,22 @@ bool Resource::readRoomData(const Common::String fileName) {
memset(_vm->_rooms, 0, (_vm->_manyRooms + 1) * sizeof(RoomData));
for (uint16 i = 1; i <= _vm->_manyRooms; i++) {
- _vm->_rooms[i]._doors[NORTH] = dataFile->readUint16LE();
- _vm->_rooms[i]._doors[SOUTH] = dataFile->readUint16LE();
- _vm->_rooms[i]._doors[EAST] = dataFile->readUint16LE();
- _vm->_rooms[i]._doors[WEST] = dataFile->readUint16LE();
- _vm->_rooms[i]._transitionType = dataFile->readByte();
-
- _vm->_rooms[i]._view[NORTH] = nullptr;
- _vm->_rooms[i]._view[SOUTH] = nullptr;
- _vm->_rooms[i]._view[EAST] = nullptr;
- _vm->_rooms[i]._view[WEST] = nullptr;
- _vm->_rooms[i]._rules = nullptr;
- _vm->_rooms[i]._roomMsg = "";
+ RoomData curRoom = _vm->_rooms[i];
+ curRoom._doors[NORTH] = dataFile->readUint16LE();
+ curRoom._doors[SOUTH] = dataFile->readUint16LE();
+ curRoom._doors[EAST] = dataFile->readUint16LE();
+ curRoom._doors[WEST] = dataFile->readUint16LE();
+ curRoom._transitionType = dataFile->readByte();
+
+ curRoom._view[NORTH] = nullptr;
+ curRoom._view[SOUTH] = nullptr;
+ curRoom._view[EAST] = nullptr;
+ curRoom._view[WEST] = nullptr;
+ curRoom._rules = nullptr;
+ curRoom._roomMsg = "";
}
delete dataFile;
- return true;
}
InventoryData *Resource::readInventory(const Common::String fileName) {
@@ -134,27 +134,25 @@ InventoryData *Resource::readInventory(const Common::String fileName) {
}
delete dataFile;
-
return inventory;
}
-bool Resource::readViews(uint16 roomNum) {
+void Resource::readViews(uint16 roomNum) {
Common::String fileName = "LAB:Rooms/" + Common::String::format("%d", roomNum);
Common::File *dataFile = openDataFile(fileName, MKTAG('R', 'O', 'M', '4'));
freeViews(roomNum);
+ RoomData curRoom = _vm->_rooms[roomNum];
- _vm->_rooms[roomNum]._roomMsg = readString(dataFile);
- _vm->_rooms[roomNum]._view[NORTH] = readView(dataFile);
- _vm->_rooms[roomNum]._view[SOUTH] = readView(dataFile);
- _vm->_rooms[roomNum]._view[EAST] = readView(dataFile);
- _vm->_rooms[roomNum]._view[WEST] = readView(dataFile);
- _vm->_rooms[roomNum]._rules = readRule(dataFile);
+ curRoom._roomMsg = readString(dataFile);
+ curRoom._view[NORTH] = readView(dataFile);
+ curRoom._view[SOUTH] = readView(dataFile);
+ curRoom._view[EAST] = readView(dataFile);
+ curRoom._view[WEST] = readView(dataFile);
+ curRoom._rules = readRule(dataFile);
_vm->_music->updateMusic();
-
delete dataFile;
- return true;
}
void Resource::freeViews(uint16 roomNum) {
@@ -247,7 +245,7 @@ Common::String Resource::readString(Common::File *file) {
int16 *Resource::readConditions(Common::File *file) {
int16 i = 0, cond;
int16 *list = new int16[25];
- memset(list, 0, 25 * 2);
+ memset(list, 0, 25 * sizeof(int16));
do {
cond = file->readUint16LE();
@@ -287,7 +285,6 @@ void Resource::freeRule(RuleList *ruleList) {
freeAction((*rule)->_actionList);
delete[](*rule)->_condition;
delete *rule;
- *rule = nullptr;
}
delete ruleList;
diff --git a/engines/lab/resource.h b/engines/lab/resource.h
index 73757e8247..dcb7491c75 100644
--- a/engines/lab/resource.h
+++ b/engines/lab/resource.h
@@ -98,9 +98,9 @@ public:
~Resource() {}
Common::File *openDataFile(const Common::String fileName, uint32 fileHeader = 0);
- bool readRoomData(const Common::String fileName);
+ void readRoomData(const Common::String fileName);
InventoryData *readInventory(const Common::String fileName);
- bool readViews(uint16 roomNum);
+ void readViews(uint16 roomNum);
void freeViews(uint16 roomNum);
TextFont *getFont(const Common::String fileName);
Common::String getText(const Common::String fileName);