diff options
author | Peter Kohaut | 2018-03-17 16:40:33 +0100 |
---|---|---|
committer | Peter Kohaut | 2018-03-17 16:42:25 +0100 |
commit | 19d9e4cec818980a75772a204c96774afbd2b17e (patch) | |
tree | aaf4ae3f0322c0a75418451b50c8e09b424c0a7f /engines/bladerunner/combat.h | |
parent | b2727018344535789c96b0e9c95c741d0dd054c5 (diff) | |
download | scummvm-rg350-19d9e4cec818980a75772a204c96774afbd2b17e.tar.gz scummvm-rg350-19d9e4cec818980a75772a204c96774afbd2b17e.tar.bz2 scummvm-rg350-19d9e4cec818980a75772a204c96774afbd2b17e.zip |
BLADERUNNER: Added combat
Math cleanup
Fixed obstacle detection
Diffstat (limited to 'engines/bladerunner/combat.h')
-rw-r--r-- | engines/bladerunner/combat.h | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/engines/bladerunner/combat.h b/engines/bladerunner/combat.h index 21989dac52..ab289cca5c 100644 --- a/engines/bladerunner/combat.h +++ b/engines/bladerunner/combat.h @@ -23,9 +23,11 @@ #ifndef BLADERUNNER_COMBAT_H #define BLADERUNNER_COMBAT_H -namespace BladeRunner { +#include "bladerunner/vector.h" + +#include "common/array.h" -class Vector3; +namespace BladeRunner { class BladeRunnerEngine; @@ -44,6 +46,24 @@ class Combat { public: int _ammoDamage[3]; + struct CoverWaypoint { + int type; + int setId; + int sceneId; + Vector3 position; + }; + + struct FleeWaypoint { + int type; + int setId; + int sceneId; + Vector3 position; + int field7; + }; + + Common::Array<CoverWaypoint> _coverWaypoints; + Common::Array<FleeWaypoint> _fleeWaypoints; + public: Combat(BladeRunnerEngine *vm); ~Combat(); @@ -60,10 +80,13 @@ public: void setHitSound(int ammoType, int column, int soundId); void setMissSound(int ammoType, int column, int soundId); - int getHitSound(); - int getMissSound(); + int getHitSound() const; + int getMissSound() const; void shoot(int actorId, Vector3 &to, int screenX); + + int findFleeWaypoint(int setId, int enemyId, const Vector3& position) const; + int findCoverWaypoint(int waypointType, int actorId, int enemyId) const; }; } // End of namespace BladeRunner |