aboutsummaryrefslogtreecommitdiff
path: root/engines/xeen/combat.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/xeen/combat.h')
-rw-r--r--engines/xeen/combat.h29
1 files changed, 26 insertions, 3 deletions
diff --git a/engines/xeen/combat.h b/engines/xeen/combat.h
index 5d27dc5c4e..e1a02c0759 100644
--- a/engines/xeen/combat.h
+++ b/engines/xeen/combat.h
@@ -58,7 +58,7 @@ enum ShootType {
};
enum CombatMode {
- COMBATMODE_STARTUP = 0, COMBATMODE_1 = 1, COMBATMODE_2 = 2
+ COMBATMODE_STARTUP = 0, COMBATMODE_INTERACTIVE = 1, COMBATMODE_2 = 2
};
enum PowType {
@@ -77,6 +77,7 @@ enum RangeType {
class XeenEngine;
class Character;
class XeenItem;
+class MonsterStruct;
struct PowSlot {
bool _active;
@@ -205,6 +206,11 @@ public:
void clearShooting();
/**
+ * Resets all combat related data
+ */
+ void reset();
+
+ /**
* Gives damage to character or characters in the party
*/
void giveCharDamage(int damage, DamageType attackType, int charIndex);
@@ -273,18 +279,30 @@ public:
/**
* Determines whether a given monster can move
+ * @param pt Monster position
+ * @param wallShift Shift mask for determining direction being moved
+ * @param xDiff X Delta for move
+ * @param yDiff Y Delta for move
+ * @param monsterId Monster number being tested
*/
- bool monsterCanMove(const Common::Point &pt, int wallShift,
- int v1, int v2, int monsterId);
+ bool canMonsterMove(const Common::Point &pt, int wallShift, int xDiff, int yDiff, int monsterId);
/**
* Moves a monster by a given delta amount if it's a valid move
*/
void moveMonster(int monsterId, const Common::Point &moveDelta);
+ /**
+ * Handle a monster's turn at attacking combat party members
+ */
void doMonsterTurn(int monsterId);
/**
+ * Handles a monster's turn at attacking a specific member of the combat party
+ */
+ void doMonsterTurn(int monsterId, int charNum);
+
+ /**
* Called when combat has ended
*/
void endAttack();
@@ -305,6 +323,11 @@ public:
* Fires off a ranged attack at all oncoming monsters
*/
void shootRangedWeapon();
+
+ /**
+ * Returns true if there are any monsters in the vacinity
+ */
+ bool areMonstersPresent() const;
};
} // End of namespace Xeen