[Scummvm-git-logs] scummvm master -> 81cb0f11dbad5e1744807a926f245c4b2e8307be

dreammaster dreammaster at scummvm.org
Mon Dec 26 05:54:14 CET 2016


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
81cb0f11db TITANIC: Cleanup and fixes for class checks when SuccUBus sucking


Commit: 81cb0f11dbad5e1744807a926f245c4b2e8307be
    https://github.com/scummvm/scummvm/commit/81cb0f11dbad5e1744807a926f245c4b2e8307be
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2016-12-25T23:54:00-05:00

Commit Message:
TITANIC: Cleanup and fixes for class checks when SuccUBus sucking

Changed paths:
    engines/titanic/npcs/bilge_succubus.cpp
    engines/titanic/npcs/succubus.cpp
    engines/titanic/npcs/succubus.h
    engines/titanic/pet_control/pet_control.cpp
    engines/titanic/pet_control/pet_control.h
    engines/titanic/room_flags.cpp
    engines/titanic/room_flags.h


diff --git a/engines/titanic/npcs/bilge_succubus.cpp b/engines/titanic/npcs/bilge_succubus.cpp
index 53cf963..01d80be 100644
--- a/engines/titanic/npcs/bilge_succubus.cpp
+++ b/engines/titanic/npcs/bilge_succubus.cpp
@@ -116,14 +116,13 @@ bool CBilgeSuccUBus::PETDeliverMsg(CPETDeliverMsg *msg) {
 		return true;
 	}
 
-	_field19C = 0;
+	_sendLost = false;
 	_mailP = mailObject;
 
 	uint roomFlags = _roomFlags;
-	if (!pet->testRooms5(roomFlags) ||
-			getPassengerClass() > pet->getMailDest(roomFlags)) {
+	if (!pet->isSuccUBusDest(roomFlags) || pet->getMailDestClass(roomFlags) < getPassengerClass()) {
 		roomFlags = pet->getSpecialRoomFlags("BilgeRoom");
-		_field19C = 1;
+		_sendLost = true;
 	}
 
 	_isChicken = mailObject->getName() == "Chicken";
diff --git a/engines/titanic/npcs/succubus.cpp b/engines/titanic/npcs/succubus.cpp
index 2e92d5d..637a041 100644
--- a/engines/titanic/npcs/succubus.cpp
+++ b/engines/titanic/npcs/succubus.cpp
@@ -82,7 +82,7 @@ CSuccUBus::CSuccUBus() : CTrueTalkNPC() {
 	_field184 = 15;
 	_field188 = 0;
 	_rect2 = Rect(0, 0, 240, 340);
-	_field19C = 0;
+	_sendLost = false;
 	_soundHandle = -1;
 	_isChicken = false;
 	_isFeathers = false;
@@ -141,7 +141,7 @@ void CSuccUBus::save(SimpleFile *file, int indent) {
 	file->writeNumberLine(_rect2.top, indent);
 	file->writeNumberLine(_rect2.right, indent);
 	file->writeNumberLine(_rect2.bottom, indent);
-	file->writeNumberLine(_field19C, indent);
+	file->writeNumberLine(_sendLost, indent);
 	file->writeNumberLine(_soundHandle, indent);
 	file->writeNumberLine(_isChicken, indent);
 	file->writeNumberLine(_isFeathers, indent);
@@ -205,7 +205,7 @@ void CSuccUBus::load(SimpleFile *file) {
 	_rect2.top = file->readNumber();
 	_rect2.right = file->readNumber();
 	_rect2.bottom = file->readNumber();
-	_field19C = file->readNumber();
+	_sendLost = file->readNumber();
 	_soundHandle = file->readNumber();
 	_isChicken = file->readNumber();
 	_isFeathers = file->readNumber();
@@ -397,14 +397,12 @@ bool CSuccUBus::PETDeliverMsg(CPETDeliverMsg *msg) {
 
 		petDisplayMessage(2, NOTHING_IN_SUCCUBUS_TRAY);
 	} else {
-		_field19C = 0;
+		_sendLost = false;
 
 		CRoomFlags roomFlags = _roomFlags;
-		if (!pet->testRooms5(roomFlags) || getPassengerClass() > 0) {
+		if (!pet->isSuccUBusDest(roomFlags) || pet->getMailDestClass(roomFlags) < getPassengerClass()) {
 			roomFlags = pet->getSpecialRoomFlags("BilgeRoom");
-			_field19C = 1;
-		} else {
-			pet->getMailDest(roomFlags);
+			_sendLost = true;
 		}
 
 		_isFeathers = mailObject->getName() == "Feathers";
@@ -415,7 +413,7 @@ bool CSuccUBus::PETDeliverMsg(CPETDeliverMsg *msg) {
 		incTransitions();
 
 		if (_isFeathers) {
-			_field19C = 0;
+			_sendLost = false;
 			removeMail(destRoomFlags, roomFlags);
 			pet->phonographAction("");
 
@@ -593,9 +591,9 @@ bool CSuccUBus::MovieEndMsg(CMovieEndMsg *msg) {
 			startTalking(this, 230022, findView());
 		} else if (_field158 == 2) {
 			startTalking(this, 230017, findView());
-		} else if (_field19C) {
+		} else if (_sendLost) {
 			startTalking(this, 230019, findView());
-			_field19C = 0;
+			_sendLost = false;
 		} else if (_isChicken) {
 			startTalking(this, 230018, findView());
 			_isChicken = false;
diff --git a/engines/titanic/npcs/succubus.h b/engines/titanic/npcs/succubus.h
index 07a3cd9..d81ae84 100644
--- a/engines/titanic/npcs/succubus.h
+++ b/engines/titanic/npcs/succubus.h
@@ -84,7 +84,7 @@ protected:
 	int _field190;
 	int _field194;
 	int _field198;
-	int _field19C;
+	bool _sendLost;
 	int _soundHandle;
 	bool _isChicken;
 	bool _isFeathers;
diff --git a/engines/titanic/pet_control/pet_control.cpp b/engines/titanic/pet_control/pet_control.cpp
index b7fece7..55b2ecc 100644
--- a/engines/titanic/pet_control/pet_control.cpp
+++ b/engines/titanic/pet_control/pet_control.cpp
@@ -699,11 +699,11 @@ void CPetControl::resetDials0() {
 	_conversations.resetDials0();
 }
 
-int CPetControl::getMailDest(const CRoomFlags &roomFlags) const {
+PassengerClass CPetControl::getMailDestClass(const CRoomFlags &roomFlags) const {
 	if (!roomFlags.isSuccUBusRoomFlags())
-		return (int)roomFlags.getPassengerClassNum();
+		return roomFlags.getPassengerClassNum();
 
-	return roomFlags.getSuccUBusNum(roomFlags.getSuccUBusRoomName());
+	return roomFlags.getSuccUBusClass(roomFlags.getSuccUBusRoomName());
 }
 
 void CPetControl::starsSetButtons(int val1, int val2) {
diff --git a/engines/titanic/pet_control/pet_control.h b/engines/titanic/pet_control/pet_control.h
index 0a8b629..a63c29d 100644
--- a/engines/titanic/pet_control/pet_control.h
+++ b/engines/titanic/pet_control/pet_control.h
@@ -522,11 +522,14 @@ public:
 	}
 
 	/**
-	 * Get mail destination given the specified flags
+	 * Get the passenger class of the specified room flags
 	 */
-	int getMailDest(const CRoomFlags &roomFlags) const;
+	PassengerClass getMailDestClass(const CRoomFlags &roomFlags) const;
 
-	bool testRooms5(uint roomFlags) {
+	/**
+	 * Returns whether the given room flags specify a location with a SuccUBus
+	 */
+	bool isSuccUBusDest(uint roomFlags) {
 		return CRoomFlags(roomFlags).not5();
 	}
 
diff --git a/engines/titanic/room_flags.cpp b/engines/titanic/room_flags.cpp
index 25c604b..4bd1862 100644
--- a/engines/titanic/room_flags.cpp
+++ b/engines/titanic/room_flags.cpp
@@ -41,7 +41,7 @@ struct TransportFlagsEntry {
 struct SuccUBusFlagsEntry {
 	const char *const _roomName;
 	uint _roomFlags;
-	uint _succubusNum;
+	PassengerClass _classNum;
 };
 
 #define TRANSPORT_ROOMS_SIZE 6
@@ -56,23 +56,23 @@ const TransportFlagsEntry TRANSPORT_ROOMS[TRANSPORT_ROOMS_SIZE] = {
 
 #define SUCCUBUS_ROOMS_SIZE 17
 const SuccUBusFlagsEntry SUCCUBUS_ROOMS[SUCCUBUS_ROOMS_SIZE] = {
-	{ "ParrotLobby", 0x1D0D9, 3 },
-	{ "SculptureChamber", 0x465FB, 2 },
-	{ "Bar", 0x0B3D97, 2 },
-	{ "EmbLobby", 0x0CC971, 3 },
-	{ "MoonEmbLobby", 0x0CC971, 3 },
-	{ "MusicRoom", 0x0F34DB, 2 },
-	{ "MusicRoomLobby", 0x0F34DB, 2 },
-	{ "Titania", 0x8A397, 3 },
-	{ "BottomOfWell", 0x59FAD, 3 },
-	{ "Arboretum", 0x4D6AF, 1 },
-	{ "PromenadeDeck", 0x79C45, 2 },
-	{ "1stClassRestaurant", 0x896B9, 1 },
-	{ "CreatorsChamber", 0x2F86D, 2 },
-	{ "CreatorsChamberOn", 0x2F86D, 2 },
-	{ "BilgeRoom", 0x3D94B, 3 },
-	{ "BilgeRoomWith", 0x3D94B, 3 },
-	{ "Bridge", 0x39FCB, 3 }
+	{ "ParrotLobby", 0x1D0D9, THIRD_CLASS },
+	{ "SculptureChamber", 0x465FB, SECOND_CLASS },
+	{ "Bar", 0x0B3D97, SECOND_CLASS },
+	{ "EmbLobby", 0x0CC971, THIRD_CLASS },
+	{ "MoonEmbLobby", 0x0CC971, THIRD_CLASS },
+	{ "MusicRoom", 0x0F34DB, SECOND_CLASS },
+	{ "MusicRoomLobby", 0x0F34DB, SECOND_CLASS },
+	{ "Titania", 0x8A397, THIRD_CLASS },
+	{ "BottomOfWell", 0x59FAD, THIRD_CLASS },
+	{ "Arboretum", 0x4D6AF, FIRST_CLASS },
+	{ "PromenadeDeck", 0x79C45, SECOND_CLASS },
+	{ "1stClassRestaurant", 0x896B9, FIRST_CLASS },
+	{ "CreatorsChamber", 0x2F86D, SECOND_CLASS },
+	{ "CreatorsChamberOn", 0x2F86D, SECOND_CLASS },
+	{ "BilgeRoom", 0x3D94B, THIRD_CLASS },
+	{ "BilgeRoomWith", 0x3D94B, THIRD_CLASS },
+	{ "Bridge", 0x39FCB, THIRD_CLASS }
 };
 
 int CRoomFlags::getConditionally() const {
@@ -355,13 +355,13 @@ uint CRoomFlags::getSpecialRoomFlags(const CString &roomName) {
 	return 0;
 }
 
-uint CRoomFlags::getSuccUBusNum(const CString &roomName) const {
+PassengerClass CRoomFlags::getSuccUBusClass(const CString &roomName) const {
 	for (int idx = 0; idx < SUCCUBUS_ROOMS_SIZE; ++idx) {
 		if (roomName == SUCCUBUS_ROOMS[idx]._roomName)
-			return SUCCUBUS_ROOMS[idx]._succubusNum;
+			return SUCCUBUS_ROOMS[idx]._classNum;
 	}
 
-	return 0;
+	return NO_CLASS;
 }
 
 CString CRoomFlags::getSuccUBusRoomName() const {
diff --git a/engines/titanic/room_flags.h b/engines/titanic/room_flags.h
index 8e86bf7..e2fb910 100644
--- a/engines/titanic/room_flags.h
+++ b/engines/titanic/room_flags.h
@@ -209,9 +209,9 @@ public:
 	void setRandomLocation(PassengerClass classNum, bool flag);
 
 	/**
-	 * Gets the succubus number associated with a given room
+	 * Gets the passenger class for a succubus associated with a given room
 	 */
-	uint getSuccUBusNum(const CString &roomName) const;
+	PassengerClass getSuccUBusClass(const CString &roomName) const;
 
 	/**
 	 * Gets the succubus room name associated with the current room flags





More information about the Scummvm-git-logs mailing list