aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/actor.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/actor.h')
-rw-r--r--engines/bladerunner/actor.h20
1 files changed, 11 insertions, 9 deletions
diff --git a/engines/bladerunner/actor.h b/engines/bladerunner/actor.h
index 55ffc4f30e..7498d2bf51 100644
--- a/engines/bladerunner/actor.h
+++ b/engines/bladerunner/actor.h
@@ -23,6 +23,7 @@
#ifndef BLADERUNNER_ACTOR_H
#define BLADERUNNER_ACTOR_H
+#include "bladerunner/boundingbox.h"
#include "bladerunner/vector.h"
#include "common/array.h"
@@ -36,14 +37,15 @@ class ActorWalk;
class BladeRunnerEngine;
class BoundingBox;
class MovementTrack;
-class SaveFile;
+class SaveFileReadStream;
+class SaveFileWriteStream;
class View;
class Actor {
BladeRunnerEngine *_vm;
public:
- BoundingBox *_bbox;
+ BoundingBox _bbox;
Common::Rect _screenRectangle;
MovementTrack *_movementTrack;
ActorWalk *_walkInfo;
@@ -147,7 +149,7 @@ public:
bool walkTo(bool runFlag, const Vector3 &destination, bool a3);
bool loopWalkToActor(int otherActorId, int destinationOffset, int interruptible, bool runFlag, bool a5, bool *isRunningFlag);
bool loopWalkToItem(int itemId, int destinationOffset, int interruptible, bool runFlag, bool a5, bool *isRunningFlag);
- bool loopWalkToSceneObject(const char *objectName, int destinationOffset, bool interruptible, bool runFlag, bool a5, bool *isRunningFlag);
+ bool loopWalkToSceneObject(const Common::String &objectName, int destinationOffset, bool interruptible, bool runFlag, bool a5, bool *isRunningFlag);
bool loopWalkToWaypoint(int waypointId, int destinationOffset, int interruptible, bool runFlag, bool a5, bool *isRunningFlag);
bool loopWalkToXYZ(const Vector3 &destination, int destinationOffset, bool interruptible, bool runFlag, bool a5, bool *isRunningFlag);
bool asyncWalkToWaypoint(int waypointId, int destinationOffset, bool runFlag, bool a5);
@@ -160,8 +162,8 @@ public:
int getSetId() const;
void setSetId(int setId);
- BoundingBox *getBoundingBox() const { return _bbox; }
- Common::Rect *getScreenRectangle() { return &_screenRectangle; }
+ const BoundingBox &getBoundingBox() const { return _bbox; }
+ const Common::Rect &getScreenRectangle() { return _screenRectangle; }
int getWalkbox() const { return _walkboxId; }
bool isRetired() const { return _isRetired; }
@@ -179,7 +181,7 @@ public:
void stopWalking(bool value);
void faceActor(int otherActorId, bool animate);
- void faceObject(const char *objectName, bool animate);
+ void faceObject(const Common::String &objectName, bool animate);
void faceItem(int itemId, bool animate);
void faceWaypoint(int waypointId, bool animate);
void faceXYZ(float x, float y, float z, bool animate);
@@ -247,6 +249,9 @@ public:
bool isObstacleBetween(const Vector3 &target);
+ void save(SaveFileWriteStream &f);
+ void load(SaveFileReadStream &f);
+
static int findTargetUnderMouse(BladeRunnerEngine *vm, int mouseX, int mouseY);
private:
@@ -257,9 +262,6 @@ private:
bool walkFindU2(Vector3 *newDestination, float targetWidth, int destinationOffset, float targetSize, const Vector3 &startPosition, const Vector3 &targetPosition);
bool walkToNearestPoint(const Vector3 &destination, float distance);
//bool walkFindU3(int actorId, Vector3 from, int distance, Vector3 *out);
-
-public:
- void save(SaveFile &f);
};
} // End of namespace BladeRunner