aboutsummaryrefslogtreecommitdiff
path: root/engines/tsage/ringworld2/ringworld2_logic.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tsage/ringworld2/ringworld2_logic.h')
-rw-r--r--engines/tsage/ringworld2/ringworld2_logic.h176
1 files changed, 163 insertions, 13 deletions
diff --git a/engines/tsage/ringworld2/ringworld2_logic.h b/engines/tsage/ringworld2/ringworld2_logic.h
index 9eaa1b0cd1..0b573bf7f0 100644
--- a/engines/tsage/ringworld2/ringworld2_logic.h
+++ b/engines/tsage/ringworld2/ringworld2_logic.h
@@ -79,6 +79,7 @@ private:
static void startStrip();
static void endStrip();
public:
+ byte _field312[256];
int _field372;
bool _savedPlayerEnabled;
bool _savedUiEnabled;
@@ -101,16 +102,20 @@ public:
virtual void loadScene(int sceneNum);
virtual void refreshBackground(int xAmount, int yAmount);
virtual void saveCharacter(int characterIndex);
+ virtual void restore() {}
- bool display(CursorType action);
+ bool display(CursorType action, Event &event);
void fadeOut();
void clearScreen();
+ void scalePalette(int RFactor, int GFactor, int BFactor);
};
class SceneHandlerExt: public SceneHandler {
public:
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual void process(Event &event);
+
+ void setupPaletteMaps();
};
@@ -233,15 +238,10 @@ public:
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 = 0);
};
class NamedHotspotExt : public NamedHotspot {
@@ -258,16 +258,9 @@ public:
class SceneActor: public SceneObject {
public:
- int _resNum;
- int _lookLineNum, _talkLineNum, _useLineNum;
-
virtual Common::String getClassName() { return "SceneActor"; }
- virtual void synchronize(Serializer &s);
virtual void postInit(SceneObjectList *OwnerList = NULL);
virtual bool startAction(CursorType action, Event &event);
-
- void setDetails(int resNum, int lookLineNum, int talkLineNum, int useLineNum, int mode, SceneItem *item);
- void setDetails(int resNum, int lookLineNum, int talkLineNum, int useLineNum);
};
class SceneActorExt: public SceneActor {
@@ -275,6 +268,7 @@ public:
int _state;
SceneActorExt() { _state = 0; }
+
virtual Common::String getClassName() { return "SceneActorExt"; }
virtual void synchronize(Serializer &s) {
SceneActor::synchronize(s);
@@ -282,6 +276,162 @@ public:
}
};
+class SceneAreaObject: public SceneArea {
+ class Object1: public SceneActor {
+ public:
+ };
+public:
+ Object1 _object1;
+ int _insetCount;
+
+ virtual void remove();
+ virtual void process(Event &event);
+ void setDetails(int visage, int strip, int frameNumber, const Common::Point &pt);
+ void setDetails(int resNum, int lookLineNum, int talkLineNum, int useLineNum);
+};
+
+class UnkObject1200 : public SavedObject {
+public:
+ Rect _rect1;
+ Rect _rect2;
+
+ int *_field16;
+ int *_field3A;
+
+ int _field12;
+ int _field14;
+ int _field26;
+ int _field28;
+ int _field2A;
+ int _field2C;
+ int _field2E;
+ int _field30;
+ int _field32;
+ int _field34;
+ int _field36;
+ int _field38;
+ int _field3E;
+ int _field40;
+
+ UnkObject1200();
+ void synchronize(Serializer &s);
+
+ void sub51AE9(int arg1);
+ int sub51AF8(Common::Point pt);
+ bool sub51AFD(Common::Point pt);
+ void sub51B02();
+ void sub9EDE8(Rect rect);
+ int sub9EE22(int &arg1, int &arg2);
+ virtual Common::String getClassName() { return "UnkObject1200"; }
+};
+
+/*--------------------------------------------------------------------------*/
+
+class AnimationSlice {
+public:
+ int _sliceOffset;
+ int _drawMode;
+ int _secondaryIndex;
+public:
+ void load(Common::File &f);
+};
+
+class AnimationSlices {
+public:
+ int _dataSize;
+ int _dataSize2;
+ AnimationSlice _slices[4];
+ byte *_pixelData;
+public:
+ AnimationSlices();
+ ~AnimationSlices();
+
+ void load(Common::File &f);
+ int loadPixels(Common::File &f, int slicesSize);
+};
+
+class AnimationPlayerSubData {
+public:
+ int _duration;
+ int _frameRate;
+ int _framesPerSlices;
+ int _drawType;
+ int _sliceSize;
+ int _ySlices;
+ int _field16;
+ int _palStart;
+ int _palSize;
+ byte _palData[256 * 3];
+ int32 _totalSize;
+ AnimationSlices _slices;
+public:
+ void load(Common::File &f);
+};
+
+class AnimationData {
+public:
+ AnimationSlices _slices;
+ int _dataSize;
+ int _animSlicesSize;
+};
+
+enum AnimationPaletteMode { ANIMPALMODE_REPLACE_PALETTE = 0, ANIMPALMODE_CURR_PALETTE = 1,
+ ANIMPALMODE_NONE = 2 };
+
+class AnimationPlayer: public EventHandler {
+private:
+ void rleDecode(const byte *pSrc, byte *pDest, int size);
+
+ void drawFrame(int sliceIndex);
+ void nextSlices();
+ void getSlices();
+public:
+ AnimationData *_animData1, *_animData2;
+ AnimationData *_sliceCurrent;
+ AnimationData *_sliceNext;
+ Common::File _resourceFile;
+ Rect _rect1, _screenBounds;
+ int _field38;
+ int _field3A, _paletteMode;
+ int _objectMode;
+ int _field58, _sliceHeight;
+ byte _palIndexes[256];
+ ScenePalette _palette;
+ AnimationPlayerSubData _subData;
+ Action *_endAction;
+ int _dataNeeded;
+ int _playbackTick;
+ int _playbackTickPrior;
+ int _position;
+ int _nextSlicesPosition;
+ uint _frameDelay;
+ uint32 _gameFrame;
+public:
+ AnimationPlayer();
+ ~AnimationPlayer();
+
+ virtual void synchronize(Serializer &s);
+ virtual void remove();
+ virtual void process(Event &event);
+ virtual void dispatch();
+ virtual void flipPane() {}
+ virtual void changePane() {}
+ virtual void closing() {}
+
+ bool load(int animId, Action *endAction = NULL);
+ bool isCompleted();
+ void close();
+};
+
+class AnimationPlayerExt: public AnimationPlayer {
+public:
+ int _v;
+public:
+ AnimationPlayerExt();
+
+ virtual void synchronize(Serializer &s);
+};
+
} // End of namespace Ringworld2
} // End of namespace TsAGE