LAB: Simplify the room doors array

This commit is contained in:
Filippos Karapetis 2015-12-13 19:31:40 +02:00 committed by Willem Jan Palenstijn
parent c883769adc
commit 1524e20ef1
3 changed files with 6 additions and 19 deletions

View file

@ -180,17 +180,7 @@ void LabEngine::drawDirection(CloseDataPtr closePtr) {
*/ */
uint16 LabEngine::processArrow(uint16 curDirection, uint16 arrow) { uint16 LabEngine::processArrow(uint16 curDirection, uint16 arrow) {
if (arrow == 1) { // Forward if (arrow == 1) { // Forward
uint16 room = 1; uint16 room = _rooms[_roomNum]._doors[curDirection];
if (curDirection == NORTH)
room = _rooms[_roomNum]._northDoor;
else if (curDirection == SOUTH)
room = _rooms[_roomNum]._southDoor;
else if (curDirection == EAST)
room = _rooms[_roomNum]._eastDoor;
else if (curDirection == WEST)
room = _rooms[_roomNum]._westDoor;
if (room != 0) if (room != 0)
_roomNum = room; _roomNum = room;

View file

@ -127,10 +127,7 @@ struct Rule {
}; };
struct RoomData { struct RoomData {
uint16 _northDoor; uint16 _doors[4];
uint16 _southDoor;
uint16 _eastDoor;
uint16 _westDoor;
byte _transitionType; byte _transitionType;
ViewData *_view[4]; ViewData *_view[4];
RuleList *_rules; RuleList *_rules;

View file

@ -98,10 +98,10 @@ bool Resource::readRoomData(const char *fileName) {
memset(_vm->_rooms, 0, (_vm->_manyRooms + 1) * sizeof(RoomData)); memset(_vm->_rooms, 0, (_vm->_manyRooms + 1) * sizeof(RoomData));
for (uint16 i = 1; i <= _vm->_manyRooms; i++) { for (uint16 i = 1; i <= _vm->_manyRooms; i++) {
_vm->_rooms[i]._northDoor = dataFile->readUint16LE(); _vm->_rooms[i]._doors[NORTH] = dataFile->readUint16LE();
_vm->_rooms[i]._southDoor = dataFile->readUint16LE(); _vm->_rooms[i]._doors[SOUTH] = dataFile->readUint16LE();
_vm->_rooms[i]._eastDoor = dataFile->readUint16LE(); _vm->_rooms[i]._doors[EAST] = dataFile->readUint16LE();
_vm->_rooms[i]._westDoor = dataFile->readUint16LE(); _vm->_rooms[i]._doors[WEST] = dataFile->readUint16LE();
_vm->_rooms[i]._transitionType = dataFile->readByte(); _vm->_rooms[i]._transitionType = dataFile->readByte();
_vm->_rooms[i]._view[NORTH] = nullptr; _vm->_rooms[i]._view[NORTH] = nullptr;