aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorBendegúz Nagy2016-06-18 12:58:34 +0200
committerBendegúz Nagy2016-08-26 23:02:22 +0200
commit5874a7fb56d3e3a0ee1d0cb3e9d243f3080530c3 (patch)
tree506c56aa8484c8864f388ed471423da83b8990e0 /engines
parent21be32bb17530ef833a6d60b9a685007a209fac0 (diff)
downloadscummvm-rg350-5874a7fb56d3e3a0ee1d0cb3e9d243f3080530c3.tar.gz
scummvm-rg350-5874a7fb56d3e3a0ee1d0cb3e9d243f3080530c3.tar.bz2
scummvm-rg350-5874a7fb56d3e3a0ee1d0cb3e9d243f3080530c3.zip
DM: Add G0239_as_Graphic559_ArmourInfo
Diffstat (limited to 'engines')
-rw-r--r--engines/dm/dungeonman.cpp61
-rw-r--r--engines/dm/dungeonman.h8
2 files changed, 67 insertions, 2 deletions
diff --git a/engines/dm/dungeonman.cpp b/engines/dm/dungeonman.cpp
index 3fd2e06a37..723b6a11fc 100644
--- a/engines/dm/dungeonman.cpp
+++ b/engines/dm/dungeonman.cpp
@@ -6,6 +6,67 @@
using namespace DM;
+ArmourInfo gArmourInfo[58] = { // G0239_as_Graphic559_ArmourInfo
+/* { Weight, Defense, Attributes, Unreferenced } */
+ ArmourInfo(3, 5, 0x01), /* CAPE */
+ ArmourInfo(4, 10, 0x01), /* CLOAK OF NIGHT */
+ ArmourInfo(3, 4, 0x01), /* BARBARIAN HIDE */
+ ArmourInfo(6, 5, 0x02), /* SANDALS */
+ ArmourInfo(16, 25, 0x04), /* LEATHER BOOTS */
+ ArmourInfo(4, 5, 0x00), /* ROBE */
+ ArmourInfo(4, 5, 0x00), /* ROBE */
+ ArmourInfo(3, 7, 0x01), /* FINE ROBE */
+ ArmourInfo(3, 7, 0x01), /* FINE ROBE */
+ ArmourInfo(4, 6, 0x01), /* KIRTLE */
+ ArmourInfo(2, 4, 0x00), /* SILK SHIRT */
+ ArmourInfo(4, 5, 0x01), /* TABARD */
+ ArmourInfo(5, 7, 0x01), /* GUNNA */
+ ArmourInfo(3, 11, 0x02), /* ELVEN DOUBLET */
+ ArmourInfo(3, 13, 0x02), /* ELVEN HUKE */
+ ArmourInfo(4, 13, 0x02), /* ELVEN BOOTS */
+ ArmourInfo(6, 17, 0x03), /* LEATHER JERKIN */
+ ArmourInfo(8, 20, 0x03), /* LEATHER PANTS */
+ ArmourInfo(14, 20, 0x03), /* SUEDE BOOTS */
+ ArmourInfo(6, 12, 0x02), /* BLUE PANTS */
+ ArmourInfo(5, 9, 0x01), /* TUNIC */
+ ArmourInfo(5, 8, 0x01), /* GHI */
+ ArmourInfo(5, 9, 0x01), /* GHI TROUSERS */
+ ArmourInfo(4, 1, 0x04), /* CALISTA */
+ ArmourInfo(6, 5, 0x04), /* CROWN OF NERRA */
+ ArmourInfo(11, 12, 0x05), /* BEZERKER HELM */
+ ArmourInfo(14, 17, 0x05), /* HELMET */
+ ArmourInfo(15, 20, 0x05), /* BASINET */
+ ArmourInfo(11, 22, 0x85), /* BUCKLER */
+ ArmourInfo(10, 16, 0x82), /* HIDE SHIELD */
+ ArmourInfo(14, 20, 0x83), /* WOODEN SHIELD */
+ ArmourInfo(21, 35, 0x84), /* SMALL SHIELD */
+ ArmourInfo(65, 35, 0x05), /* MAIL AKETON */
+ ArmourInfo(53, 35, 0x05), /* LEG MAIL */
+ ArmourInfo(52, 70, 0x07), /* MITHRAL AKETON */
+ ArmourInfo(41, 55, 0x07), /* MITHRAL MAIL */
+ ArmourInfo(16, 25, 0x06), /* CASQUE 'N COIF */
+ ArmourInfo(16, 30, 0x06), /* HOSEN */
+ ArmourInfo(19, 40, 0x07), /* ARMET */
+ ArmourInfo(120, 65, 0x04), /* TORSO PLATE */
+ ArmourInfo(80, 56, 0x04), /* LEG PLATE */
+ ArmourInfo(28, 37, 0x05), /* FOOT PLATE */
+ ArmourInfo(34, 56, 0x84), /* LARGE SHIELD */
+ ArmourInfo(17, 62, 0x05), /* HELM OF LYTE */
+ ArmourInfo(108, 125, 0x04), /* PLATE OF LYTE */
+ ArmourInfo(72, 90, 0x04), /* POLEYN OF LYTE */
+ ArmourInfo(24, 50, 0x05), /* GREAVE OF LYTE */
+ ArmourInfo(30, 85, 0x84), /* SHIELD OF LYTE */
+ ArmourInfo(35, 76, 0x04), /* HELM OF DARC */
+ ArmourInfo(141, 160, 0x04), /* PLATE OF DARC */
+ ArmourInfo(90, 101, 0x04), /* POLEYN OF DARC */
+ ArmourInfo(31, 60, 0x05), /* GREAVE OF DARC */
+ ArmourInfo(40, 100, 0x84), /* SHIELD OF DARC */
+ ArmourInfo(14, 54, 0x06), /* DEXHELM */
+ ArmourInfo(57, 60, 0x07), /* FLAMEBAIN */
+ ArmourInfo(81, 88, 0x04), /* POWERTOWERS */
+ ArmourInfo(3, 16, 0x02), /* BOOTS OF SPEED */
+ ArmourInfo(2, 3, 0x03)}; /* HALTER */
+
WeaponInfo gWeaponInfo[46] = { // @ G0238_as_Graphic559_WeaponInfo
/* { Weight, Class, Strength, KineticEnergy, Attributes } */
WeaponInfo(1, (WeaponClass)130, 2, 0, 0x2000), /* EYE OF TIME */
diff --git a/engines/dm/dungeonman.h b/engines/dm/dungeonman.h
index f5943cd6be..645dd2f24a 100644
--- a/engines/dm/dungeonman.h
+++ b/engines/dm/dungeonman.h
@@ -21,13 +21,15 @@ public:
private:
uint16 _attributes;
public:
- ArmourInfo(uint16 weight, uint16 defense)
- :_weight(weight), _defense(defense) {}
+ ArmourInfo(uint16 weight, uint16 defense, uint16 attributes)
+ :_weight(weight), _defense(defense), _attributes(attributes) {}
uint16 getAttribute(ArmourAttribute attribute) { return _attributes & attribute; }
void setAttribute(ArmourAttribute attribute) { _attributes |= attribute; }
}; // @ ARMOUR_INFO
+extern ArmourInfo gArmourInfo[58];
+
enum WeaponClass {
/* Class 0: SWING weapons */
kWeaponClassSwingWeapon = 0, // @ C000_CLASS_SWING_WEAPON
@@ -62,6 +64,8 @@ public:
uint16 getProjectileAspectOrdinal() {return (_attributes >> 8) & 0x1F;} // @ M66_PROJECTILE_ASPECT_ORDINAL
}; // @ WEAPON_INFO
+extern WeaponInfo gWeaponInfo[46];
+
int16 ordinalToIndex(int16 val); // @ M01_ORDINAL_TO_INDEX
int16 indexToOrdinal(int16 val); // @ M00_INDEX_TO_ORDINAL