aboutsummaryrefslogtreecommitdiff
path: root/engines/wage/combat.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2016-01-25 19:49:41 +0100
committerEugene Sandulenko2016-02-14 17:12:53 +0100
commitb5d55fdf2b171ef6ff8f56d49b9f350283fde242 (patch)
tree3c565ff1ab851668a396821a97f9c5498c13e5d4 /engines/wage/combat.cpp
parentadc5b87cb6e52f7fa22d8395020121249718e5e4 (diff)
downloadscummvm-rg350-b5d55fdf2b171ef6ff8f56d49b9f350283fde242.tar.gz
scummvm-rg350-b5d55fdf2b171ef6ff8f56d49b9f350283fde242.tar.bz2
scummvm-rg350-b5d55fdf2b171ef6ff8f56d49b9f350283fde242.zip
WAGE: Implement decrementUses()
Diffstat (limited to 'engines/wage/combat.cpp')
-rw-r--r--engines/wage/combat.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/engines/wage/combat.cpp b/engines/wage/combat.cpp
index 2f87119fe3..4a043311b8 100644
--- a/engines/wage/combat.cpp
+++ b/engines/wage/combat.cpp
@@ -232,7 +232,23 @@ void WageEngine::performAttack(Chr *attacker, Chr *victim, Obj *weapon) {
}
void WageEngine::decrementUses(Obj *obj) {
- warning("STUB: decrementUses()");
+ int numberOfUses = obj->_numberOfUses;
+ if (numberOfUses != -1) {
+ numberOfUses--;
+ if (numberOfUses > 0) {
+ obj->_numberOfUses = numberOfUses;
+ } else {
+ if (!obj->_failureMessage.empty()) {
+ appendText(obj->_failureMessage.c_str());
+ }
+ if (obj->_returnToRandomScene) {
+ _world->move(obj, _world->getRandomScene());
+ } else {
+ _world->move(obj, _world->_storageScene);
+ }
+ obj->resetState(obj->_currentOwner, obj->_currentScene);
+ }
+ }
}
bool WageEngine::attackHit(Chr *attacker, Chr *victim, Obj *weapon, int targetIndex) {