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.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/engines/xeen/combat.h b/engines/xeen/combat.h
index 1e1ca82808..75614ccdf7 100644
--- a/engines/xeen/combat.h
+++ b/engines/xeen/combat.h
@@ -25,6 +25,7 @@
#include "common/scummsys.h"
#include "common/rect.h"
+#include "xeen/files.h"
#include "xeen/sprites.h"
namespace Xeen {
@@ -50,8 +51,14 @@ enum SpecialAttack {
SA_ERADICATE = 19, SA_AGING = 20, SA_DEATH = 21, SA_STONE = 22
};
+enum ElementalCategory {
+ ELEM_FIRE = 0, ELEM_ELECTRICITY = 1, ELEM_COLD = 2,
+ ELEM_ACID_POISON = 3, ELEM_ENERGY = 4, ELEM_MAGIC = 5
+};
+
class XeenEngine;
class Character;
+class XeenItem;
class Combat {
private:
@@ -64,6 +71,12 @@ private:
bool getWeaponDamage(Character &c, int ranged);
int getMonsterDamage(Character &c);
+
+ int getDamageScale(int v);
+
+ int getMonsterResistence(int ranged);
+
+ void giveExperience(int experience);
public:
Common::Array<Character *> _combatParty;
Common::Array<bool> _charsBlocked;
@@ -74,7 +87,7 @@ public:
int _charsArray1[PARTY_AND_MONSTERS];
bool _monPow[PARTY_AND_MONSTERS];
int _monsterScale[PARTY_AND_MONSTERS];
- int _elemPow[PARTY_AND_MONSTERS];
+ ElementalCategory _elemPow[PARTY_AND_MONSTERS];
int _elemScale[PARTY_AND_MONSTERS];
int _missedShot[8];
Common::Array<int> _speedTable;
@@ -96,6 +109,8 @@ public:
int _shootType;
int _monsterDamage;
int _weaponDamage;
+ XeenItem *_attackWeapon;
+ File _missVoc, _pow1Voc;
public:
Combat(XeenEngine *vm);