mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-31 19:56:38 +00:00 
			
		
		
		
	Merge branch 'weapon_type' into 'master'
Move weapon types definition to .cpp file See merge request OpenMW/openmw!2260
This commit is contained in:
		
						commit
						295965ee12
					
				
					 2 changed files with 314 additions and 261 deletions
				
			
		|  | @ -4,9 +4,303 @@ | |||
| #include "creaturestats.hpp" | ||||
| 
 | ||||
| #include "../mwworld/class.hpp" | ||||
| #include "../mwworld/inventorystore.hpp" | ||||
| 
 | ||||
| #include <components/esm3/loadweap.hpp> | ||||
| 
 | ||||
| namespace MWMechanics | ||||
| { | ||||
|     template <enum ESM::Weapon::Type> | ||||
|     struct Weapon {}; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::None> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "", | ||||
|             /* long group  */ "", | ||||
|             /*  sound ID   */ "", | ||||
|             /* attach bone */ "", | ||||
|             /* sheath bone */ "", | ||||
|             /* usage skill */ ESM::Skill::HandToHand, | ||||
|             /* weapon class*/ ESM::WeaponType::Melee, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ 0 | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::PickProbe> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "1h", | ||||
|             /* long group  */ "pickprobe", | ||||
|             /*  sound ID   */ "", | ||||
|             /* attach bone */ "", | ||||
|             /* sheath bone */ "", | ||||
|             /* usage skill */ ESM::Skill::Security, | ||||
|             /* weapon class*/ ESM::WeaponType::Melee, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ 0 | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::Spell> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "spell", | ||||
|             /* long group  */ "spellcast", | ||||
|             /*  sound ID   */ "", | ||||
|             /* attach bone */ "", | ||||
|             /* sheath bone */ "", | ||||
|             /* usage skill */ ESM::Skill::HandToHand, | ||||
|             /* weapon class*/ ESM::WeaponType::Melee, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ ESM::WeaponType::TwoHanded | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::HandToHand> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "hh", | ||||
|             /* long group  */ "handtohand", | ||||
|             /*  sound ID   */ "", | ||||
|             /* attach bone */ "", | ||||
|             /* sheath bone */ "", | ||||
|             /* usage skill */ ESM::Skill::HandToHand, | ||||
|             /* weapon class*/ ESM::WeaponType::Melee, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ ESM::WeaponType::TwoHanded | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::ShortBladeOneHand> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "1s", | ||||
|             /* long group  */ "shortbladeonehand", | ||||
|             /*  sound ID   */ "Item Weapon Shortblade", | ||||
|             /* attach bone */ "Weapon Bone", | ||||
|             /* sheath bone */ "Bip01 ShortBladeOneHand", | ||||
|             /* usage skill */ ESM::Skill::ShortBlade, | ||||
|             /* weapon class*/ ESM::WeaponType::Melee, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ ESM::WeaponType::HasHealth | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::LongBladeOneHand> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "1h", | ||||
|             /* long group  */ "weapononehand", | ||||
|             /*  sound ID   */ "Item Weapon Longblade", | ||||
|             /* attach bone */ "Weapon Bone", | ||||
|             /* sheath bone */ "Bip01 LongBladeOneHand", | ||||
|             /* usage skill */ ESM::Skill::LongBlade, | ||||
|             /* weapon class*/ ESM::WeaponType::Melee, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ ESM::WeaponType::HasHealth | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::BluntOneHand> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "1b", | ||||
|             /* long group  */ "bluntonehand", | ||||
|             /*  sound ID   */ "Item Weapon Blunt", | ||||
|             /* attach bone */ "Weapon Bone", | ||||
|             /* sheath bone */ "Bip01 BluntOneHand", | ||||
|             /* usage skill */ ESM::Skill::BluntWeapon, | ||||
|             /* weapon class*/ ESM::WeaponType::Melee, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ ESM::WeaponType::HasHealth | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::AxeOneHand> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "1b", | ||||
|             /* long group  */ "bluntonehand", | ||||
|             /*  sound ID   */ "Item Weapon Blunt", | ||||
|             /* attach bone */ "Weapon Bone", | ||||
|             /* sheath bone */ "Bip01 LongBladeOneHand", | ||||
|             /* usage skill */ ESM::Skill::Axe, | ||||
|             /* weapon class*/ ESM::WeaponType::Melee, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ ESM::WeaponType::HasHealth | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::LongBladeTwoHand> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "2c", | ||||
|             /* long group  */ "weapontwohand", | ||||
|             /*  sound ID   */ "Item Weapon Longblade", | ||||
|             /* attach bone */ "Weapon Bone", | ||||
|             /* sheath bone */ "Bip01 LongBladeTwoClose", | ||||
|             /* usage skill */ ESM::Skill::LongBlade, | ||||
|             /* weapon class*/ ESM::WeaponType::Melee, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::AxeTwoHand> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "2b", | ||||
|             /* long group  */ "blunttwohand", | ||||
|             /*  sound ID   */ "Item Weapon Blunt", | ||||
|             /* attach bone */ "Weapon Bone", | ||||
|             /* sheath bone */ "Bip01 AxeTwoClose", | ||||
|             /* usage skill */ ESM::Skill::Axe, | ||||
|             /* weapon class*/ ESM::WeaponType::Melee, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::BluntTwoClose> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "2b", | ||||
|             /* long group  */ "blunttwohand", | ||||
|             /*  sound ID   */ "Item Weapon Blunt", | ||||
|             /* attach bone */ "Weapon Bone", | ||||
|             /* sheath bone */ "Bip01 BluntTwoClose", | ||||
|             /* usage skill */ ESM::Skill::BluntWeapon, | ||||
|             /* weapon class*/ ESM::WeaponType::Melee, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::BluntTwoWide> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "2w", | ||||
|             /* long group  */ "weapontwowide", | ||||
|             /*  sound ID   */ "Item Weapon Blunt", | ||||
|             /* attach bone */ "Weapon Bone", | ||||
|             /* sheath bone */ "Bip01 BluntTwoWide", | ||||
|             /* usage skill */ ESM::Skill::BluntWeapon, | ||||
|             /* weapon class*/ ESM::WeaponType::Melee, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::SpearTwoWide> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "2w", | ||||
|             /* long group  */ "weapontwowide", | ||||
|             /*  sound ID   */ "Item Weapon Spear", | ||||
|             /* attach bone */ "Weapon Bone", | ||||
|             /* sheath bone */ "Bip01 SpearTwoWide", | ||||
|             /* usage skill */ ESM::Skill::Spear, | ||||
|             /* weapon class*/ ESM::WeaponType::Melee, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::MarksmanBow> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "bow", | ||||
|             /* long group  */ "bowandarrow", | ||||
|             /*  sound ID   */ "Item Weapon Bow", | ||||
|             /* attach bone */ "Weapon Bone Left", | ||||
|             /* sheath bone */ "Bip01 MarksmanBow", | ||||
|             /* usage skill */ ESM::Skill::Marksman, | ||||
|             /* weapon class*/ ESM::WeaponType::Ranged, | ||||
|             /*  ammo type  */ ESM::Weapon::Arrow, | ||||
|             /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::MarksmanCrossbow> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "crossbow", | ||||
|             /* long group  */ "crossbow", | ||||
|             /*  sound ID   */ "Item Weapon Crossbow", | ||||
|             /* attach bone */ "Weapon Bone", | ||||
|             /* sheath bone */ "Bip01 MarksmanCrossbow", | ||||
|             /* usage skill */ ESM::Skill::Marksman, | ||||
|             /* weapon class*/ ESM::WeaponType::Ranged, | ||||
|             /*  ammo type  */ ESM::Weapon::Bolt, | ||||
|             /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::MarksmanThrown> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "1t", | ||||
|             /* long group  */ "throwweapon", | ||||
|             /*  sound ID   */ "Item Weapon Blunt", | ||||
|             /* attach bone */ "Weapon Bone", | ||||
|             /* sheath bone */ "Bip01 MarksmanThrown", | ||||
|             /* usage skill */ ESM::Skill::Marksman, | ||||
|             /* weapon class*/ ESM::WeaponType::Thrown, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ 0 | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::Arrow> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "", | ||||
|             /* long group  */ "", | ||||
|             /*  sound ID   */ "Item Ammo", | ||||
|             /* attach bone */ "Bip01 Arrow", | ||||
|             /* sheath bone */ "", | ||||
|             /* usage skill */ ESM::Skill::Marksman, | ||||
|             /* weapon class*/ ESM::WeaponType::Ammo, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ 0 | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     template <> | ||||
|     struct Weapon<ESM::Weapon::Bolt> | ||||
|     { | ||||
|         inline static const ESM::WeaponType sValue { | ||||
|             /* short group */ "", | ||||
|             /* long group  */ "", | ||||
|             /*  sound ID   */ "Item Ammo", | ||||
|             /* attach bone */ "ArrowBone", | ||||
|             /* sheath bone */ "", | ||||
|             /* usage skill */ ESM::Skill::Marksman, | ||||
|             /* weapon class*/ ESM::WeaponType::Ammo, | ||||
|             /*  ammo type  */ ESM::Weapon::None, | ||||
|             /*    flags    */ 0 | ||||
|         }; | ||||
|     }; | ||||
| 
 | ||||
|     MWWorld::ContainerStoreIterator getActiveWeapon(const MWWorld::Ptr& actor, int *weaptype) | ||||
|     { | ||||
|         MWWorld::InventoryStore &inv = actor.getClass().getInventoryStore(actor); | ||||
|  | @ -42,13 +336,28 @@ namespace MWMechanics | |||
| 
 | ||||
|     const ESM::WeaponType* getWeaponType(const int weaponType) | ||||
|     { | ||||
|         std::map<int, ESM::WeaponType>::const_iterator found = sWeaponTypeList.find(weaponType); | ||||
|         if (found == sWeaponTypeList.end()) | ||||
|         switch (static_cast<ESM::Weapon::Type>(weaponType)) | ||||
|         { | ||||
|             // Use one-handed short blades as fallback
 | ||||
|             return &sWeaponTypeList[0]; | ||||
|             case ESM::Weapon::PickProbe: return &Weapon<ESM::Weapon::PickProbe>::sValue; | ||||
|             case ESM::Weapon::HandToHand: return &Weapon<ESM::Weapon::HandToHand>::sValue; | ||||
|             case ESM::Weapon::Spell: return &Weapon<ESM::Weapon::Spell>::sValue; | ||||
|             case ESM::Weapon::None: return &Weapon<ESM::Weapon::None>::sValue; | ||||
|             case ESM::Weapon::ShortBladeOneHand: return &Weapon<ESM::Weapon::ShortBladeOneHand>::sValue; | ||||
|             case ESM::Weapon::LongBladeOneHand: return &Weapon<ESM::Weapon::LongBladeOneHand>::sValue; | ||||
|             case ESM::Weapon::LongBladeTwoHand: return &Weapon<ESM::Weapon::LongBladeTwoHand>::sValue; | ||||
|             case ESM::Weapon::BluntOneHand: return &Weapon<ESM::Weapon::BluntOneHand>::sValue; | ||||
|             case ESM::Weapon::BluntTwoClose: return &Weapon<ESM::Weapon::BluntTwoClose>::sValue; | ||||
|             case ESM::Weapon::BluntTwoWide: return &Weapon<ESM::Weapon::BluntTwoWide>::sValue; | ||||
|             case ESM::Weapon::SpearTwoWide: return &Weapon<ESM::Weapon::SpearTwoWide>::sValue; | ||||
|             case ESM::Weapon::AxeOneHand: return &Weapon<ESM::Weapon::AxeOneHand>::sValue; | ||||
|             case ESM::Weapon::AxeTwoHand: return &Weapon<ESM::Weapon::AxeTwoHand>::sValue; | ||||
|             case ESM::Weapon::MarksmanBow: return &Weapon<ESM::Weapon::MarksmanBow>::sValue; | ||||
|             case ESM::Weapon::MarksmanCrossbow: return &Weapon<ESM::Weapon::MarksmanCrossbow>::sValue; | ||||
|             case ESM::Weapon::MarksmanThrown: return &Weapon<ESM::Weapon::MarksmanThrown>::sValue; | ||||
|             case ESM::Weapon::Arrow: return &Weapon<ESM::Weapon::Arrow>::sValue; | ||||
|             case ESM::Weapon::Bolt: return &Weapon<ESM::Weapon::Bolt>::sValue; | ||||
|         } | ||||
| 
 | ||||
|          return &found->second; | ||||
|         return &Weapon<ESM::Weapon::ShortBladeOneHand>::sValue; | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -5,262 +5,6 @@ | |||
| 
 | ||||
| namespace MWMechanics | ||||
| { | ||||
|     static std::map<int, ESM::WeaponType> sWeaponTypeList = | ||||
|     { | ||||
|         { | ||||
|             ESM::Weapon::None, | ||||
|             { | ||||
|                 /* short group */ "", | ||||
|                 /* long group  */ "", | ||||
|                 /*  sound ID   */ "", | ||||
|                 /* attach bone */ "", | ||||
|                 /* sheath bone */ "", | ||||
|                 /* usage skill */ ESM::Skill::HandToHand, | ||||
|                 /* weapon class*/ ESM::WeaponType::Melee, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ 0 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::PickProbe, | ||||
|             { | ||||
|                 /* short group */ "1h", | ||||
|                 /* long group  */ "pickprobe", | ||||
|                 /*  sound ID   */ "", | ||||
|                 /* attach bone */ "", | ||||
|                 /* sheath bone */ "", | ||||
|                 /* usage skill */ ESM::Skill::Security, | ||||
|                 /* weapon class*/ ESM::WeaponType::Melee, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ 0 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::Spell, | ||||
|             { | ||||
|                 /* short group */ "spell", | ||||
|                 /* long group  */ "spellcast", | ||||
|                 /*  sound ID   */ "", | ||||
|                 /* attach bone */ "", | ||||
|                 /* sheath bone */ "", | ||||
|                 /* usage skill */ ESM::Skill::HandToHand, | ||||
|                 /* weapon class*/ ESM::WeaponType::Melee, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ ESM::WeaponType::TwoHanded | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::HandToHand, | ||||
|             { | ||||
|                 /* short group */ "hh", | ||||
|                 /* long group  */ "handtohand", | ||||
|                 /*  sound ID   */ "", | ||||
|                 /* attach bone */ "", | ||||
|                 /* sheath bone */ "", | ||||
|                 /* usage skill */ ESM::Skill::HandToHand, | ||||
|                 /* weapon class*/ ESM::WeaponType::Melee, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ ESM::WeaponType::TwoHanded | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::ShortBladeOneHand, | ||||
|             { | ||||
|                 /* short group */ "1s", | ||||
|                 /* long group  */ "shortbladeonehand", | ||||
|                 /*  sound ID   */ "Item Weapon Shortblade", | ||||
|                 /* attach bone */ "Weapon Bone", | ||||
|                 /* sheath bone */ "Bip01 ShortBladeOneHand", | ||||
|                 /* usage skill */ ESM::Skill::ShortBlade, | ||||
|                 /* weapon class*/ ESM::WeaponType::Melee, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ ESM::WeaponType::HasHealth | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::LongBladeOneHand, | ||||
|             { | ||||
|                 /* short group */ "1h", | ||||
|                 /* long group  */ "weapononehand", | ||||
|                 /*  sound ID   */ "Item Weapon Longblade", | ||||
|                 /* attach bone */ "Weapon Bone", | ||||
|                 /* sheath bone */ "Bip01 LongBladeOneHand", | ||||
|                 /* usage skill */ ESM::Skill::LongBlade, | ||||
|                 /* weapon class*/ ESM::WeaponType::Melee, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ ESM::WeaponType::HasHealth | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::BluntOneHand, | ||||
|             { | ||||
|                 /* short group */ "1b", | ||||
|                 /* long group  */ "bluntonehand", | ||||
|                 /*  sound ID   */ "Item Weapon Blunt", | ||||
|                 /* attach bone */ "Weapon Bone", | ||||
|                 /* sheath bone */ "Bip01 BluntOneHand", | ||||
|                 /* usage skill */ ESM::Skill::BluntWeapon, | ||||
|                 /* weapon class*/ ESM::WeaponType::Melee, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ ESM::WeaponType::HasHealth | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::AxeOneHand, | ||||
|             { | ||||
|                 /* short group */ "1b", | ||||
|                 /* long group  */ "bluntonehand", | ||||
|                 /*  sound ID   */ "Item Weapon Blunt", | ||||
|                 /* attach bone */ "Weapon Bone", | ||||
|                 /* sheath bone */ "Bip01 LongBladeOneHand", | ||||
|                 /* usage skill */ ESM::Skill::Axe, | ||||
|                 /* weapon class*/ ESM::WeaponType::Melee, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ ESM::WeaponType::HasHealth | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::LongBladeTwoHand, | ||||
|             { | ||||
|                 /* short group */ "2c", | ||||
|                 /* long group  */ "weapontwohand", | ||||
|                 /*  sound ID   */ "Item Weapon Longblade", | ||||
|                 /* attach bone */ "Weapon Bone", | ||||
|                 /* sheath bone */ "Bip01 LongBladeTwoClose", | ||||
|                 /* usage skill */ ESM::Skill::LongBlade, | ||||
|                 /* weapon class*/ ESM::WeaponType::Melee, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::AxeTwoHand, | ||||
|             { | ||||
|                 /* short group */ "2b", | ||||
|                 /* long group  */ "blunttwohand", | ||||
|                 /*  sound ID   */ "Item Weapon Blunt", | ||||
|                 /* attach bone */ "Weapon Bone", | ||||
|                 /* sheath bone */ "Bip01 AxeTwoClose", | ||||
|                 /* usage skill */ ESM::Skill::Axe, | ||||
|                 /* weapon class*/ ESM::WeaponType::Melee, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::BluntTwoClose, | ||||
|             { | ||||
|                 /* short group */ "2b", | ||||
|                 /* long group  */ "blunttwohand", | ||||
|                 /*  sound ID   */ "Item Weapon Blunt", | ||||
|                 /* attach bone */ "Weapon Bone", | ||||
|                 /* sheath bone */ "Bip01 BluntTwoClose", | ||||
|                 /* usage skill */ ESM::Skill::BluntWeapon, | ||||
|                 /* weapon class*/ ESM::WeaponType::Melee, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::BluntTwoWide, | ||||
|             { | ||||
|                 /* short group */ "2w", | ||||
|                 /* long group  */ "weapontwowide", | ||||
|                 /*  sound ID   */ "Item Weapon Blunt", | ||||
|                 /* attach bone */ "Weapon Bone", | ||||
|                 /* sheath bone */ "Bip01 BluntTwoWide", | ||||
|                 /* usage skill */ ESM::Skill::BluntWeapon, | ||||
|                 /* weapon class*/ ESM::WeaponType::Melee, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::SpearTwoWide, | ||||
|             { | ||||
|                 /* short group */ "2w", | ||||
|                 /* long group  */ "weapontwowide", | ||||
|                 /*  sound ID   */ "Item Weapon Spear", | ||||
|                 /* attach bone */ "Weapon Bone", | ||||
|                 /* sheath bone */ "Bip01 SpearTwoWide", | ||||
|                 /* usage skill */ ESM::Skill::Spear, | ||||
|                 /* weapon class*/ ESM::WeaponType::Melee, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::MarksmanBow, | ||||
|             { | ||||
|                 /* short group */ "bow", | ||||
|                 /* long group  */ "bowandarrow", | ||||
|                 /*  sound ID   */ "Item Weapon Bow", | ||||
|                 /* attach bone */ "Weapon Bone Left", | ||||
|                 /* sheath bone */ "Bip01 MarksmanBow", | ||||
|                 /* usage skill */ ESM::Skill::Marksman, | ||||
|                 /* weapon class*/ ESM::WeaponType::Ranged, | ||||
|                 /*  ammo type  */ ESM::Weapon::Arrow, | ||||
|                 /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::MarksmanCrossbow, | ||||
|             { | ||||
|                 /* short group */ "crossbow", | ||||
|                 /* long group  */ "crossbow", | ||||
|                 /*  sound ID   */ "Item Weapon Crossbow", | ||||
|                 /* attach bone */ "Weapon Bone", | ||||
|                 /* sheath bone */ "Bip01 MarksmanCrossbow", | ||||
|                 /* usage skill */ ESM::Skill::Marksman, | ||||
|                 /* weapon class*/ ESM::WeaponType::Ranged, | ||||
|                 /*  ammo type  */ ESM::Weapon::Bolt, | ||||
|                 /*    flags    */ ESM::WeaponType::HasHealth|ESM::WeaponType::TwoHanded | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::MarksmanThrown, | ||||
|             { | ||||
|                 /* short group */ "1t", | ||||
|                 /* long group  */ "throwweapon", | ||||
|                 /*  sound ID   */ "Item Weapon Blunt", | ||||
|                 /* attach bone */ "Weapon Bone", | ||||
|                 /* sheath bone */ "Bip01 MarksmanThrown", | ||||
|                 /* usage skill */ ESM::Skill::Marksman, | ||||
|                 /* weapon class*/ ESM::WeaponType::Thrown, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ 0 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::Arrow, | ||||
|             { | ||||
|                 /* short group */ "", | ||||
|                 /* long group  */ "", | ||||
|                 /*  sound ID   */ "Item Ammo", | ||||
|                 /* attach bone */ "Bip01 Arrow", | ||||
|                 /* sheath bone */ "", | ||||
|                 /* usage skill */ ESM::Skill::Marksman, | ||||
|                 /* weapon class*/ ESM::WeaponType::Ammo, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ 0 | ||||
|             } | ||||
|         }, | ||||
|         { | ||||
|             ESM::Weapon::Bolt, | ||||
|             { | ||||
|                 /* short group */ "", | ||||
|                 /* long group  */ "", | ||||
|                 /*  sound ID   */ "Item Ammo", | ||||
|                 /* attach bone */ "ArrowBone", | ||||
|                 /* sheath bone */ "", | ||||
|                 /* usage skill */ ESM::Skill::Marksman, | ||||
|                 /* weapon class*/ ESM::WeaponType::Ammo, | ||||
|                 /*  ammo type  */ ESM::Weapon::None, | ||||
|                 /*    flags    */ 0 | ||||
|             } | ||||
|         } | ||||
|     }; | ||||
| 
 | ||||
|     MWWorld::ContainerStoreIterator getActiveWeapon(const MWWorld::Ptr& actor, int *weaptype); | ||||
| 
 | ||||
|     const ESM::WeaponType* getWeaponType(const int weaponType); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue