diff options
Diffstat (limited to 'engines/titanic/moves/exit_lift.cpp')
-rw-r--r-- | engines/titanic/moves/exit_lift.cpp | 86 |
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 |