diff options
-rw-r--r-- | engines/tsage/blue_force/blueforce_scenes0.cpp | 47 | ||||
-rw-r--r-- | engines/tsage/blue_force/blueforce_scenes0.h | 25 |
2 files changed, 72 insertions, 0 deletions
diff --git a/engines/tsage/blue_force/blueforce_scenes0.cpp b/engines/tsage/blue_force/blueforce_scenes0.cpp index 9a13480d5b..b5392635a3 100644 --- a/engines/tsage/blue_force/blueforce_scenes0.cpp +++ b/engines/tsage/blue_force/blueforce_scenes0.cpp @@ -191,4 +191,51 @@ void Scene20::postInit(SceneObjectList *OwnerList) { setAction(&_action1); } +/*-------------------------------------------------------------------------- + * Scene 50 - Map Screen + * + *--------------------------------------------------------------------------*/ + +Scene50::Tooltip::Tooltip(): SavedObject() { + strcpy(_msg, ""); + _field60 = _field62 = 0; +} + +void Scene50::Tooltip::synchronize(Serializer &s) { + SavedObject::synchronize(s); + _bounds.synchronize(s); + s.syncBytes((byte *)&_msg[0], 84); +} + +void Scene50::Tooltip2::signal() { + switch (_actionIndex++) { + case 0: + setDelay(60); + break; + case 1: { + Common::Point pt(410, 181); + NpcMover *mover = new NpcMover(); + ((SceneObject *)_owner)->addMover(mover, &pt, this); + break; + } + case 2: + _owner->remove(); + break; + default: + break; + } +} + +void Scene50::Tooltip2::dispatch() { + Action::dispatch(); + SceneObject *owner = (SceneObject *)_owner; + + if ((_actionIndex == 2) && (owner->_percent < 100)) { + owner->changeZoom(owner->_percent + 1); + } +} + +/*--------------------------------------------------------------------------*/ + + } // End of namespace tSage_BlueForce diff --git a/engines/tsage/blue_force/blueforce_scenes0.h b/engines/tsage/blue_force/blueforce_scenes0.h index f5535e037a..766b9f0295 100644 --- a/engines/tsage/blue_force/blueforce_scenes0.h +++ b/engines/tsage/blue_force/blueforce_scenes0.h @@ -53,6 +53,31 @@ public: virtual void postInit(SceneObjectList *OwnerList = NULL); }; +class Scene50: public SceneExt { + class Tooltip: public SavedObject { + public: + Rect _bounds; + char _msg[80]; + int _field60; + int _field62; + public: + Tooltip(); + + virtual Common::String getClassName() { return "Scene50_Tooltip"; } + virtual void synchronize(Serializer &s); + }; + class Tooltip2: public Action { + public: + Tooltip2(): Action() {} + + virtual Common::String getClassName() { return "Scene50_Tooltip2"; } + virtual void signal(); + virtual void dispatch(); + }; +public: + +}; + } // End of namespace tSage_BlueForce #endif |