aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/moves/exit_lift.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/moves/exit_lift.cpp')
-rw-r--r--engines/titanic/moves/exit_lift.cpp86
1 files changed, 84 insertions, 2 deletions
diff --git a/engines/titanic/moves/exit_lift.cpp b/engines/titanic/moves/exit_lift.cpp
index a264be883d..de9a3117af 100644
--- a/engines/titanic/moves/exit_lift.cpp
+++ b/engines/titanic/moves/exit_lift.cpp
@@ -21,19 +21,101 @@
*/
#include "titanic/moves/exit_lift.h"
+#include "titanic/pet_control/pet_control.h"
namespace Titanic {
+BEGIN_MESSAGE_MAP(CExitLift, CGameObject)
+ ON_MESSAGE(MouseButtonDownMsg)
+END_MESSAGE_MAP()
+
+CExitLift::CExitLift() : CGameObject(), _viewName("NULL") {
+}
+
void CExitLift::save(SimpleFile *file, int indent) {
file->writeNumberLine(1, indent);
- file->writeQuotedLine(_value, indent);
+ file->writeQuotedLine(_viewName, indent);
CGameObject::save(file, indent);
}
void CExitLift::load(SimpleFile *file) {
file->readNumber();
- _value = file->readString();
+ _viewName = file->readString();
CGameObject::load(file);
}
+bool CExitLift::MouseButtonDownMsg(CMouseButtonDownMsg *msg) {
+ CPetControl *pet = getPetControl();
+ int floorNum = pet->getRoomsFloorNum();//ebx
+ int elevNum = pet->getRoomsElevatorNum(); //eax
+
+ if (floorNum == 39) {
+ switch (elevNum) {
+ case 1:
+ _viewName = "BottomOfWell.Node 5.SE";
+ break;
+ case 3:
+ _viewName = "BottomOfWell.Node 1.NW";
+ break;
+ default:
+ break;
+ }
+ } else if (floorNum > 27) {
+ switch (elevNum) {
+ case 1:
+ case 2:
+ _viewName = "SgtLobby.Node 1.N";
+ break;
+ default:
+ break;
+ }
+ } else if (floorNum > 19) {
+ switch (elevNum) {
+ case 0:
+ case 2:
+ _viewName = "2ndClassLobby.Node 8.N";
+ break;
+ case 1:
+ case 3:
+ _viewName = "2ndClassLobby.Node 1.N";
+ break;
+ default:
+ break;
+ }
+ } else if (floorNum > 1) {
+ switch (elevNum) {
+ case 0:
+ case 2:
+ _viewName = "1stClassLobby.Node 1.W";
+ break;
+ case 1:
+ case 3:
+ _viewName = "1stClassLobby.Node 1.E";
+ break;
+ default:
+ break;
+ }
+ } else {
+ switch (elevNum) {
+ case 0:
+ _viewName = "TopOfWell.Node 6.E";
+ break;
+ case 1:
+ _viewName = "TopOfWell.Node 6.W";
+ break;
+ case 2:
+ _viewName = "TopOfWell.Node 10.W";
+ break;
+ case 3:
+ _viewName = "TopOfWell.Node 10.E";
+ break;
+ default:
+ break;
+ }
+ }
+
+ changeView(_viewName);
+ return true;
+}
+
} // End of namespace Titanic