aboutsummaryrefslogtreecommitdiff
path: root/engines/illusions/camera.h
diff options
context:
space:
mode:
authorjohndoe1232014-03-11 17:59:59 +0100
committerEugene Sandulenko2018-07-20 06:43:33 +0000
commit12645cbb8cb90adb5917b554e14142bf33d0f70a (patch)
treeaebaf66b54c0746ee2c991f2bdd68e5123c4c1c8 /engines/illusions/camera.h
parente0a3db43c3eed0c5bb7f94f408e5534aff1ea17a (diff)
downloadscummvm-rg350-12645cbb8cb90adb5917b554e14142bf33d0f70a.tar.gz
scummvm-rg350-12645cbb8cb90adb5917b554e14142bf33d0f70a.tar.bz2
scummvm-rg350-12645cbb8cb90adb5917b554e14142bf33d0f70a.zip
ILLUSIONS: Some work on the Camera class; start with time functions
Diffstat (limited to 'engines/illusions/camera.h')
-rw-r--r--engines/illusions/camera.h32
1 files changed, 31 insertions, 1 deletions
diff --git a/engines/illusions/camera.h b/engines/illusions/camera.h
index d55ab8e33b..fae3c328ac 100644
--- a/engines/illusions/camera.h
+++ b/engines/illusions/camera.h
@@ -23,15 +23,45 @@
#ifndef ILLUSIONS_CAMERA_H
#define ILLUSIONS_CAMERA_H
+#include "illusions/graphics.h"
#include "common/rect.h"
+#include "common/stack.h"
namespace Illusions {
+struct CameraState {
+ int _cameraMode;
+ //field_2 dw
+ int16 _paused;
+ int16 _panSpeed;
+ int _someX, _someY;
+ Common::Point _currPan;
+ int _panXShl, _panYShl;
+ WRect _bounds;
+ uint32 _panNotifyId;
+ uint32 _time28;
+ uint32 _panStartTime;
+ uint32 _pauseStartTime;
+ uint32 _time2E;
+ Common::Point _currPan2;
+ Common::Point _panTargetPoint;
+ Common::Point _trackingLimits;
+ Common::Point _pt;
+ uint32 _panObjectId;
+ Common::Point *_panToPositionPtr;
+ uint _pointFlags;
+ //field_4A dw
+};
+
class Camera {
public:
+ Camera();
+ void clearStack();
+ void set(Common::Point &panPoint, WidthHeight &dimensions);
Common::Point getCurrentPan();
protected:
- Common::Point _currPan;
+ CameraState _activeState;
+ Common::FixedStack<CameraState, 8> _stack;
};
} // End of namespace Illusions