diff options
Diffstat (limited to 'engines/bladerunner/actor.h')
-rw-r--r-- | engines/bladerunner/actor.h | 59 |
1 files changed, 39 insertions, 20 deletions
diff --git a/engines/bladerunner/actor.h b/engines/bladerunner/actor.h index af0c14e367..ace90554b7 100644 --- a/engines/bladerunner/actor.h +++ b/engines/bladerunner/actor.h @@ -39,18 +39,17 @@ class MovementTrack; class View; class Actor { - friend class ScriptBase; - friend class KIA; - BladeRunnerEngine *_vm; -private: +public: BoundingBox *_bbox; Common::Rect _screenRectangle; MovementTrack *_movementTrack; ActorWalk *_walkInfo; ActorCombat *_combatInfo; + ActorClues *_clues; +private: int _honesty; int _intelligence; int _stability; @@ -61,8 +60,6 @@ private: int _currentHP; int _maxHP; - ActorClues *_clues; - int _id; int _setId; Vector3 _position; @@ -124,7 +121,7 @@ public: float getX() const; float getY() const; float getZ() const; - void getXYZ(float *x, float *y, float *z) const; + Vector3 getXYZ() const; int getFacing() const; int getAnimationMode() const; @@ -157,6 +154,7 @@ public: void run(); bool tick(bool forceUpdate, Common::Rect *screenRect); + void tickCombat(); bool draw(Common::Rect *screenRect); int getSetId() const; @@ -164,13 +162,16 @@ public: BoundingBox *getBoundingBox() const { return _bbox; } Common::Rect *getScreenRectangle() { return &_screenRectangle; } int getWalkbox() const { return _walkboxId; } + bool isRetired() const { return _isRetired; } - bool isTarget() const { return _isTarget; } + bool isTarget() const { return true;/*return _isTarget; */} void setTarget(bool targetable); bool isImmuneToObstacles() const { return _isImmuneToObstacles; } bool inCombat() const { return _inCombat; } + bool isMoving() const { return _isMoving; } void setMoving(bool value) { _isMoving = value; } + bool inWalkLoop() const { return _inWalkLoop; } bool isWalking() const; bool isRunning() const; @@ -184,33 +185,51 @@ public: void faceXYZ(const Vector3 &pos, bool animate); void faceCurrentCamera(bool animate); void faceHeading(int heading, bool animate); - void modifyFriendlinessToOther(int otherActorId, signed int change); + void setFacing(int facing, bool halfOrSet = true); + + int getCurrentHP() const { return _currentHP; } + int getMaxHP() const { return _maxHP; } + void setCurrentHP(int hp); + void setHealth(int hp, int maxHp); + void modifyCurrentHP(signed int change); + void modifyMaxHP(signed int change); + + int getFriendlinessToOther(int otherActorId) const { return _friendlinessToOther[otherActorId]; } void setFriendlinessToOther(int otherActorId, int friendliness); + void modifyFriendlinessToOther(int otherActorId, signed int change); + + int getHonesty() const { return _honesty; } void setHonesty(int honesty); + void modifyHonesty(signed int change); + + int getIntelligence() const { return _intelligence; } void setIntelligence(int intelligence); + void modifyIntelligence(signed int change); + + int getStability() const { return _stability; } void setStability(int stability); + void modifyStability(signed int change); + + int getCombatAggressiveness() const { return _combatAggressiveness; } void setCombatAggressiveness(int combatAggressiveness); + void modifyCombatAggressiveness(signed int change); + void setInvisible(bool isInvisible); void setImmunityToObstacles(bool isImmune); - void modifyCurrentHP(signed int change); - void modifyMaxHP(signed int change); - void modifyCombatAggressiveness(signed int change); - void modifyHonesty(signed int change); - void modifyIntelligence(signed int change); - void modifyStability(signed int change); + void setFlagDamageAnimIfMoving(bool value); - bool getFlagDamageAnimIfMoving() const; - void setHealth(int hp, int maxHp); + bool getFlagDamageAnimIfMoving() const; void retire(bool isRetired, int width, int height, int retiredByActorId); - void combatModeOn(int a2, int a3, int a4, int a5, int combatAnimationMode, int a7, int a8, int a9, int a10, int a11, int a12, int a13, int a14); + void combatModeOn(int initialState, bool rangedAttack, int enemyId, int waypointType, int animationModeCombatIdle, int animationModeCombatWalk, int animationModeCombatRun, int fleeRatio, int coverRatio, int actionRatio, int damage, int range, bool a14); void combatModeOff(); void setGoal(int goalNumber); int getGoal() const; float distanceFromActor(int otherActorId); + int angleTo(const Vector3 &target) const; void speechPlay(int sentenceId, bool voiceOver); void speechStop(); @@ -225,11 +244,11 @@ public: int soundVolume() const; int soundBalance() const; - bool isObstacleBetween(float targetX, float targetZ); + bool isObstacleBetween(const Vector3 &target); static int findTargetUnderMouse(BladeRunnerEngine *vm, int mouseX, int mouseY); + private: - void setFacing(int facing, bool halfOrSet = true); void setBoundingBox(const Vector3 &position, bool retired); float distanceFromView(View *view) const; |