diff options
Diffstat (limited to 'engines/tsage/blue_force/blueforce_logic.h')
-rw-r--r-- | engines/tsage/blue_force/blueforce_logic.h | 69 |
1 files changed, 65 insertions, 4 deletions
diff --git a/engines/tsage/blue_force/blueforce_logic.h b/engines/tsage/blue_force/blueforce_logic.h index dcaea52444..d0d0e0ee40 100644 --- a/engines/tsage/blue_force/blueforce_logic.h +++ b/engines/tsage/blue_force/blueforce_logic.h @@ -43,6 +43,9 @@ public: virtual Scene *createScene(int sceneNumber); virtual void rightClick(); virtual void processEvent(Event &event); + virtual bool canSaveGameStateCurrently(); + virtual bool canLoadGameStateCurrently(); + virtual void restart(); }; #define OBJ_ARRAY_SIZE 10 @@ -202,7 +205,7 @@ public: bool _savedCanWalk; int _field37A; - FocusObject *_focusObject; + EventHandler *_focusObject; Visage _cursorVisage; Rect _v51C34; @@ -211,13 +214,14 @@ public: virtual Common::String getClassName() { return "SceneExt"; } virtual void postInit(SceneObjectList *OwnerList = NULL); + virtual void remove(); virtual void process(Event &event); virtual void dispatch(); virtual void loadScene(int sceneNum); virtual void checkGun(); - void addTimer(Timer *timer) { _timerList.add(timer); } - void removeTimer(Timer *timer) { _timerList.remove(timer); } + void addTimer(EventHandler *timer) { _timerList.add(timer); } + void removeTimer(EventHandler *timer) { _timerList.remove(timer); } bool display(CursorType action); void fadeOut(); void gunDisplay(); @@ -236,7 +240,7 @@ public: virtual void remove(); PaletteFader *addFader(const byte *arrBufferRGB, int step, Action *action); void add2Faders(const byte *arrBufferRGB, int step, int paletteNum, Action *action); - void sub15E4F(const byte *arrBufferRGB, int arg8, int paletteNum, Action *action, int fromColor1, int fromColor2, int toColor1, int toColor2, bool flag); + void transition(const byte *arrBufferRGB, int arg8, int paletteNum, Action *action, int fromColor1, int fromColor2, int toColor1, int toColor2, bool flag); }; class SceneHandlerExt: public SceneHandler { @@ -249,6 +253,8 @@ public: }; class BlueForceInvObjectList : public InvObjectList { +private: + static bool SelectItem(int objectNumber); public: InvObject _none; InvObject _colt45; @@ -327,6 +333,61 @@ public: virtual Common::String getClassName() { return "BlueForceInvObjectList"; } }; +class NamedHotspot : public SceneHotspot { +public: + int _resNum, _lookLineNum, _useLineNum, _talkLineNum; + NamedHotspot(); + + + virtual bool startAction(CursorType action, Event &event); + virtual Common::String getClassName() { return "NamedHotspot"; } + virtual void synchronize(Serializer &s); + virtual void setDetails(int ys, int xs, int ye, int xe, const int resnum, const int lookLineNum, const int useLineNum); + virtual void setDetails(const Rect &bounds, int resNum, int lookLineNum, int talkLineNum, int useLineNum, int mode, SceneItem *item); + virtual void setDetails(int sceneRegionId, int resNum, int lookLineNum, int talkLineNum, int useLineNum, int mode); +}; + +class NamedHotspotExt : public NamedHotspot { +public: + int _flag; + NamedHotspotExt() { _flag = 0; } + + virtual Common::String getClassName() { return "NamedHotspot"; } + virtual void synchronize(Serializer &s) { + NamedHotspot::synchronize(s); + s.syncAsSint16LE(_flag); + } +}; + +class SceneMessage: public Action { +private: + Common::String _message; + + void draw(); + void clear(); +public: + void setup(const Common::String &msg) { _message = msg; } + + virtual Common::String getClassName() { return "SceneMessage"; } + virtual void remove(); + virtual void signal(); + virtual void process(Event &event); +}; + +class IntroSceneText: public SceneText { +public: + Action *_action; + uint32 _frameNumber; + int _diff; +public: + IntroSceneText(); + void setup(const Common::String &msg, Action *action); + + virtual Common::String getClassName() { return "BFIntroText"; } + virtual void synchronize(Serializer &s); + virtual void dispatch(); +}; + } // End of namespace BlueForce } // End of namespace TsAGE |