1 #ifndef GAME_MWMECHANICS_WEAPONTYPE_H 2 #define GAME_MWMECHANICS_WEAPONTYPE_H 3 4 #include "../mwworld/inventorystore.hpp" 5 6 namespace MWMechanics 7 { 8 static std::map<int, ESM::WeaponType> sWeaponTypeList = 9 { 10 { 11 ESM::Weapon::None, 12 { 13 /* short group */ "", 14 /* long group */ "", 15 /* sound ID */ "", 16 /* attach bone */ "", 17 /* sheath bone */ "", 18 /* usage skill */ ESM::Skill::HandToHand, 19 /* weapon class*/ ESM::WeaponType::Melee, 20 /* ammo type */ ESM::Weapon::None, 21 /* flags */ 0 22 } 23 }, 24 { 25 ESM::Weapon::PickProbe, 26 { 27 /* short group */ "1h", 28 /* long group */ "pickprobe", 29 /* sound ID */ "", 30 /* attach bone */ "", 31 /* sheath bone */ "", 32 /* usage skill */ ESM::Skill::Security, 33 /* weapon class*/ ESM::WeaponType::Melee, 34 /* ammo type */ ESM::Weapon::None, 35 /* flags */ 0 36 } 37 }, 38 { 39 ESM::Weapon::Spell, 40 { 41 /* short group */ "spell", 42 /* long group */ "spellcast", 43 /* sound ID */ "", 44 /* attach bone */ "", 45 /* sheath bone */ "", 46 /* usage skill */ ESM::Skill::HandToHand, 47 /* weapon class*/ ESM::WeaponType::Melee, 48 /* ammo type */ ESM::Weapon::None, 49 /* flags */ ESM::WeaponType::TwoHanded 50 } 51 }, 52 { 53 ESM::Weapon::HandToHand, 54 { 55 /* short group */ "hh", 56 /* long group */ "handtohand", 57 /* sound ID */ "", 58 /* attach bone */ "", 59 /* sheath bone */ "", 60 /* usage skill */ ESM::Skill::HandToHand, 61 /* weapon class*/ ESM::WeaponType::Melee, 62 /* ammo type */ ESM::Weapon::None, 63 /* flags */ ESM::WeaponType::TwoHanded 64 } 65 }, 66 { 67 ESM::Weapon::ShortBladeOneHand, 68 { 69 /* short group */ "1s", 70 /* long group */ "shortbladeonehand", 71 /* sound ID */ "Item Weapon Shortblade", 72 /* attach bone */ "Weapon Bone", 73 /* sheath bone */ "Bip01 ShortBladeOneHand", 74 /* usage skill */ ESM::Skill::ShortBlade, 75 /* weapon class*/ ESM::WeaponType::Melee, 76 /* ammo type */ ESM::Weapon::None, 77 /* flags */ ESM::WeaponType::HasHealth 78 } 79 }, 80 { 81 ESM::Weapon::LongBladeOneHand, 82 { 83 /* short group */ "1h", 84 /* long group */ "weapononehand", 85 /* sound ID */ "Item Weapon Longblade", 86 /* attach bone */ "Weapon Bone", 87 /* sheath bone */ "Bip01 LongBladeOneHand", 88 /* usage skill */ ESM::Skill::LongBlade, 89 /* weapon class*/ ESM::WeaponType::Melee, 90 /* ammo type */ ESM::Weapon::None, 91 /* flags */ ESM::WeaponType::HasHealth 92 } 93 }, 94 { 95 ESM::Weapon::BluntOneHand, 96 { 97 /* short group */ "1b", 98 /* long group */ "bluntonehand", 99 /* sound ID */ "Item Weapon Blunt", 100 /* attach bone */ "Weapon Bone", 101 /* sheath bone */ "Bip01 BluntOneHand", 102 /* usage skill */ ESM::Skill::BluntWeapon, 103 /* weapon class*/ ESM::WeaponType::Melee, 104 /* ammo type */ ESM::Weapon::None, 105 /* flags */ ESM::WeaponType::HasHealth 106 } 107 }, 108 { 109 ESM::Weapon::AxeOneHand, 110 { 111 /* short group */ "1b", 112 /* long group */ "bluntonehand", 113 /* sound ID */ "Item Weapon Blunt", 114 /* attach bone */ "Weapon Bone", 115 /* sheath bone */ "Bip01 LongBladeOneHand", 116 /* usage skill */ ESM::Skill::Axe, 117 /* weapon class*/ ESM::WeaponType::Melee, 118 /* ammo type */ ESM::Weapon::None, 119 /* flags */ ESM::WeaponType::HasHealth 120 } 121 }, 122 { 123 ESM::Weapon::LongBladeTwoHand, 124 { 125 /* short group */ "2c", 126 /* long group */ "weapontwohand", 127 /* sound ID */ "Item Weapon Longblade", 128 /* attach bone */ "Weapon Bone", 129 /* sheath bone */ "Bip01 LongBladeTwoClose", 130 /* usage skill */ ESM::Skill::LongBlade, 131 /* weapon class*/ ESM::WeaponType::Melee, 132 /* ammo type */ ESM::Weapon::None, 133 /* flags */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded 134 } 135 }, 136 { 137 ESM::Weapon::AxeTwoHand, 138 { 139 /* short group */ "2b", 140 /* long group */ "blunttwohand", 141 /* sound ID */ "Item Weapon Blunt", 142 /* attach bone */ "Weapon Bone", 143 /* sheath bone */ "Bip01 AxeTwoClose", 144 /* usage skill */ ESM::Skill::Axe, 145 /* weapon class*/ ESM::WeaponType::Melee, 146 /* ammo type */ ESM::Weapon::None, 147 /* flags */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded 148 } 149 }, 150 { 151 ESM::Weapon::BluntTwoClose, 152 { 153 /* short group */ "2b", 154 /* long group */ "blunttwohand", 155 /* sound ID */ "Item Weapon Blunt", 156 /* attach bone */ "Weapon Bone", 157 /* sheath bone */ "Bip01 BluntTwoClose", 158 /* usage skill */ ESM::Skill::BluntWeapon, 159 /* weapon class*/ ESM::WeaponType::Melee, 160 /* ammo type */ ESM::Weapon::None, 161 /* flags */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded 162 } 163 }, 164 { 165 ESM::Weapon::BluntTwoWide, 166 { 167 /* short group */ "2w", 168 /* long group */ "weapontwowide", 169 /* sound ID */ "Item Weapon Blunt", 170 /* attach bone */ "Weapon Bone", 171 /* sheath bone */ "Bip01 BluntTwoWide", 172 /* usage skill */ ESM::Skill::BluntWeapon, 173 /* weapon class*/ ESM::WeaponType::Melee, 174 /* ammo type */ ESM::Weapon::None, 175 /* flags */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded 176 } 177 }, 178 { 179 ESM::Weapon::SpearTwoWide, 180 { 181 /* short group */ "2w", 182 /* long group */ "weapontwowide", 183 /* sound ID */ "Item Weapon Spear", 184 /* attach bone */ "Weapon Bone", 185 /* sheath bone */ "Bip01 SpearTwoWide", 186 /* usage skill */ ESM::Skill::Spear, 187 /* weapon class*/ ESM::WeaponType::Melee, 188 /* ammo type */ ESM::Weapon::None, 189 /* flags */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded 190 } 191 }, 192 { 193 ESM::Weapon::MarksmanBow, 194 { 195 /* short group */ "bow", 196 /* long group */ "bowandarrow", 197 /* sound ID */ "Item Weapon Bow", 198 /* attach bone */ "Weapon Bone Left", 199 /* sheath bone */ "Bip01 MarksmanBow", 200 /* usage skill */ ESM::Skill::Marksman, 201 /* weapon class*/ ESM::WeaponType::Ranged, 202 /* ammo type */ ESM::Weapon::Arrow, 203 /* flags */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded 204 } 205 }, 206 { 207 ESM::Weapon::MarksmanCrossbow, 208 { 209 /* short group */ "crossbow", 210 /* long group */ "crossbow", 211 /* sound ID */ "Item Weapon Crossbow", 212 /* attach bone */ "Weapon Bone", 213 /* sheath bone */ "Bip01 MarksmanCrossbow", 214 /* usage skill */ ESM::Skill::Marksman, 215 /* weapon class*/ ESM::WeaponType::Ranged, 216 /* ammo type */ ESM::Weapon::Bolt, 217 /* flags */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded 218 } 219 }, 220 { 221 ESM::Weapon::MarksmanThrown, 222 { 223 /* short group */ "1t", 224 /* long group */ "throwweapon", 225 /* sound ID */ "Item Weapon Blunt", 226 /* attach bone */ "Weapon Bone", 227 /* sheath bone */ "Bip01 MarksmanThrown", 228 /* usage skill */ ESM::Skill::Marksman, 229 /* weapon class*/ ESM::WeaponType::Thrown, 230 /* ammo type */ ESM::Weapon::None, 231 /* flags */ 0 232 } 233 }, 234 { 235 ESM::Weapon::Arrow, 236 { 237 /* short group */ "", 238 /* long group */ "", 239 /* sound ID */ "Item Ammo", 240 /* attach bone */ "Bip01 Arrow", 241 /* sheath bone */ "", 242 /* usage skill */ ESM::Skill::Marksman, 243 /* weapon class*/ ESM::WeaponType::Ammo, 244 /* ammo type */ ESM::Weapon::None, 245 /* flags */ 0 246 } 247 }, 248 { 249 ESM::Weapon::Bolt, 250 { 251 /* short group */ "", 252 /* long group */ "", 253 /* sound ID */ "Item Ammo", 254 /* attach bone */ "ArrowBone", 255 /* sheath bone */ "", 256 /* usage skill */ ESM::Skill::Marksman, 257 /* weapon class*/ ESM::WeaponType::Ammo, 258 /* ammo type */ ESM::Weapon::None, 259 /* flags */ 0 260 } 261 } 262 }; 263 264 MWWorld::ContainerStoreIterator getActiveWeapon(MWWorld::Ptr actor, int *weaptype); 265 266 const ESM::WeaponType* getWeaponType(const int weaponType); 267 } 268 269 #endif 270