aboutsummaryrefslogtreecommitdiff
path: root/engines/illusions/camera.h
diff options
context:
space:
mode:
authorjohndoe1232014-04-12 18:46:53 +0200
committerEugene Sandulenko2018-07-20 06:43:33 +0000
commit998744608f27802526b085ebe94215719ef9f28d (patch)
tree164599985e3c1f0893d002624eabd6c4fe1f47e5 /engines/illusions/camera.h
parent36c7ec4d344e13223ba630bd66baaf492870ce68 (diff)
downloadscummvm-rg350-998744608f27802526b085ebe94215719ef9f28d.tar.gz
scummvm-rg350-998744608f27802526b085ebe94215719ef9f28d.tar.bz2
scummvm-rg350-998744608f27802526b085ebe94215719ef9f28d.zip
ILLUSIONS: More work on Duckman
- Implement dialogs - Change Camera class for Duckman
Diffstat (limited to 'engines/illusions/camera.h')
-rw-r--r--engines/illusions/camera.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/engines/illusions/camera.h b/engines/illusions/camera.h
index 9fa12c4ebc..85d308df5f 100644
--- a/engines/illusions/camera.h
+++ b/engines/illusions/camera.h
@@ -29,6 +29,8 @@
namespace Illusions {
+class BackgroundItem;
+
struct CameraState {
int _cameraMode;
//field_2 dw
@@ -85,10 +87,18 @@ public:
bool isAtPanLimit(int limitNum);
void setActiveState(CameraState &state);
void getActiveState(CameraState &state);
+ void refreshPan(BackgroundItem *backgroundItem, WidthHeight &dimensions);
protected:
IllusionsEngine *_vm;
CameraState _activeState;
Common::FixedStack<CameraModeStackItem, 8> _stack;
+
+ int16 _screenWidth, _screenHeight;
+ int16 _screenMidX, _screenMidY;
+ Common::Point _centerObjectTrackingLimits;
+ Common::Point _trackObjectTrackingLimits;
+ int16 _trackObjectTrackingLimitsPanSpeed;
+
void updateMode1(uint32 currTime);
void updateMode2(uint32 currTime);
void updateMode3(uint32 currTime);
@@ -98,6 +108,9 @@ protected:
void recalcPan(uint32 currTime);
bool calcPointFlags(Common::Point &pt, WRect &rect, uint &outFlags);
void clipPanTargetPoint();
+ void init();
+ void initDuckman();
+ void initBBDOU();
};
} // End of namespace Illusions