aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/combat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/combat.cpp')
-rw-r--r--engines/bladerunner/combat.cpp28
1 files changed, 23 insertions, 5 deletions
diff --git a/engines/bladerunner/combat.cpp b/engines/bladerunner/combat.cpp
index 26b8b5d785..c371f7bedd 100644
--- a/engines/bladerunner/combat.cpp
+++ b/engines/bladerunner/combat.cpp
@@ -33,6 +33,13 @@ namespace BladeRunner {
Combat::Combat(BladeRunnerEngine *vm) {
_vm = vm;
+ reset();
+}
+
+Combat::~Combat() {
+}
+
+void Combat::reset() {
_active = false;
_enabled = true;
@@ -40,15 +47,12 @@ Combat::Combat(BladeRunnerEngine *vm) {
_ammoDamage[1] = 20;
_ammoDamage[2] = 30;
- for (int i = 0; i < 9; i++) {
+ for (int i = 0; i < kSoundCount; i++) {
_hitSoundId[i] = -1;
_missSoundId[i] = -1;
}
}
-Combat::~Combat() {
-}
-
void Combat::activate() {
if(_enabled) {
_vm->_playerActor->combatModeOn(-1, -1, -1, -1, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, -1, -1, -1, _vm->_combat->_ammoDamage[_vm->_settings->getAmmoType()], 0, 0);
@@ -63,7 +67,17 @@ void Combat::deactivate() {
}
}
-bool Combat::isActive() {
+void Combat::change() {
+ if (!_vm->_playerActor->inWalkLoop() && _enabled) {
+ if (_active) {
+ deactivate();
+ } else {
+ activate();
+ }
+ }
+}
+
+bool Combat::isActive() const{
return _active;
}
@@ -91,4 +105,8 @@ int Combat::getMissSound() {
return _hitSoundId[3 * _vm->_settings->getAmmoType() + _vm->_rnd.getRandomNumber(2)];
}
+void Combat::shoot(int actorId, Vector3 &to, int screenX) {
+
+}
+
} // End of namespace BladeRunner