aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/room_flags.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2016-06-26 12:39:44 -0400
committerPaul Gilbert2016-07-15 19:25:09 -0400
commit6f063c4703e5705edbba7ad39ef9c0656b74bc75 (patch)
tree64cb04d4e3f3a327f6a080ffef8e7af6c0f12152 /engines/titanic/room_flags.cpp
parent0146a3c6b6bdb16eef6f46e116b0d9fe9883858f (diff)
downloadscummvm-rg350-6f063c4703e5705edbba7ad39ef9c0656b74bc75.tar.gz
scummvm-rg350-6f063c4703e5705edbba7ad39ef9c0656b74bc75.tar.bz2
scummvm-rg350-6f063c4703e5705edbba7ad39ef9c0656b74bc75.zip
TITANIC: Fleshing out CGameObject and CPetControl methods
Diffstat (limited to 'engines/titanic/room_flags.cpp')
-rw-r--r--engines/titanic/room_flags.cpp30
1 files changed, 19 insertions, 11 deletions
diff --git a/engines/titanic/room_flags.cpp b/engines/titanic/room_flags.cpp
index ac378e20c1..4b3aeb424e 100644
--- a/engines/titanic/room_flags.cpp
+++ b/engines/titanic/room_flags.cpp
@@ -433,14 +433,17 @@ void CRoomFlags::changeLocation(int action) {
setRoomBits(roomNum);
}
-bool CRoomFlags::compareFlags(CRoomFlags flags1, CRoomFlags flags2) const {
- if (flags1.getFloorNum() != flags2.getFloorNum())
+bool CRoomFlags::compareClassElevator(uint flags1, uint flags2) {
+ CRoomFlags f1(flags1);
+ CRoomFlags f2(flags2);
+
+ if (f1.getFloorNum() != f2.getFloorNum())
return false;
- uint elev1 = flags1.getElevatorNum();
- uint elev2 = flags2.getElevatorNum();
- uint class1 = getPassengerClassNum();
- uint class2 = getPassengerClassNum();
+ uint elev1 = f1.getElevatorNum();
+ uint elev2 = f2.getElevatorNum();
+ uint class1 = f1.getPassengerClassNum();
+ uint class2 = f2.getPassengerClassNum();
if (class1 > 0 && class1 < 3) {
if (elev1 == 2)
@@ -458,12 +461,17 @@ bool CRoomFlags::compareFlags(CRoomFlags flags1, CRoomFlags flags2) const {
return elev1 == elev2;
}
-bool CRoomFlags::compareLocation(uint roomFlags) {
- CRoomFlags flags(roomFlags);
+bool CRoomFlags::compareLocation(uint flags1, uint flags2) {
+ CRoomFlags f1(flags1);
+ CRoomFlags f2(flags2);
+
+ return f1.getElevatorNum() == f2.getElevatorBits() &&
+ f1.getFloorNum() == f2.getFloorNum() &&
+ f1.getRoomNum() == f2.getRoomNum();
+}
- return getElevatorNum() == flags.getElevatorBits() &&
- getFloorNum() == flags.getFloorNum() &&
- getRoomNum() == flags.getRoomNum();
+bool CRoomFlags::isTitania(uint flags1, uint flags2) {
+ return flags2 == 0x8A397;
}
void CRoomFlags::setRandomLocation(int classNum, bool flag) {