aboutsummaryrefslogtreecommitdiff
path: root/engines/illusions/actor.h
diff options
context:
space:
mode:
authorjohndoe1232014-03-31 19:54:55 +0200
committerEugene Sandulenko2018-07-20 06:43:33 +0000
commitf2c48e3ae0e5775da6f3dcac841414cf8b5379ef (patch)
tree61eb9c915e846d26922d7c584b7b929102927034 /engines/illusions/actor.h
parente0e4d2ffa92fccdef1ea3eae0228ec812c7dbac5 (diff)
downloadscummvm-rg350-f2c48e3ae0e5775da6f3dcac841414cf8b5379ef.tar.gz
scummvm-rg350-f2c48e3ae0e5775da6f3dcac841414cf8b5379ef.tar.bz2
scummvm-rg350-f2c48e3ae0e5775da6f3dcac841414cf8b5379ef.zip
ILLUSIONS: Implement pathwalking (actual pathfinding todo)
Diffstat (limited to 'engines/illusions/actor.h')
-rw-r--r--engines/illusions/actor.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/engines/illusions/actor.h b/engines/illusions/actor.h
index 50d3f7c1c8..4dd8ba50f4 100644
--- a/engines/illusions/actor.h
+++ b/engines/illusions/actor.h
@@ -66,6 +66,7 @@ protected:
};
typedef Common::Functor2<Control*, uint32, void> ActorControlRoutine;
+typedef Common::Array<Common::Point> PointArray;
class Actor {
public:
@@ -134,8 +135,17 @@ public:
int _seqCodeValue2;
int _seqCodeValue3;
- int _pathCtrY;
- int _path40;
+ int _pathCtrX, _pathCtrY;
+ int _pathAngle;
+ int32 _posXShl, _posYShl;
+ uint _pathPointIndex;
+ uint _pathPointsCount;
+ Common::Point _pathInitialPos;
+ bool _pathInitialPosFlag;
+ bool _pathFlag50;
+ PointArray *_pathNode;
+ uint _pathPoints;
+ uint32 _walkCallerThreadId1;
};
@@ -176,6 +186,10 @@ public:
void setActorIndexTo2();
void startSubSequence(int linkIndex, uint32 sequenceId);
void stopSubSequence(int linkIndex);
+ void startMoveActor(uint32 sequenceId, Common::Point destPt, uint32 callerThreadId1, uint32 callerThreadId2);
+ PointArray *createPath(Common::Point destPt);
+ void updateActorMovement(uint32 deltaTime);
+ void refreshSequenceCode();
public:
IllusionsEngine *_vm;
uint _flags;
@@ -211,7 +225,7 @@ public:
void unpauseControlsByTag(uint32 tag);
bool getOverlappedObject(Control *control, Common::Point pt, Control **outOverlappedControl, int minPriority);
bool findNamedPoint(uint32 namedPointId, Common::Point &pt);
- void actorControlRoutine(Control *control, uint32 deltaTime);
+ void actorControlRoutine(Control *control, uint32 deltaTime);
public:
typedef Common::List<Control*> Items;
typedef Items::iterator ItemsIterator;