12 #include "../../clib/cfgelem.h" 13 #include "../../clib/cfgfile.h" 14 #include "../../clib/clib_endian.h" 15 #include "../../clib/fileutil.h" 16 #include "../../clib/passert.h" 17 #include "../../clib/random.h" 18 #include "../../clib/streamsaver.h" 19 #include "../../plib/pkg.h" 20 #include "../../plib/systemstate.h" 21 #include "../equipdsc.h" 22 #include "../globals/object_storage.h" 23 #include "../globals/state.h" 24 #include "../globals/uvars.h" 25 #include "../layers.h" 26 #include "../mobile/charactr.h" 27 #include "../tooltips.h" 40 :
Item( itemdesc, uobj_class ), tmpl( permanent_descriptor ), _quality( itemdesc.quality )
139 equip->
inuse(
true );
157 "Trying to use register equipment without a layer as intrinsic. Please report " 158 "this bug on the forums." );
161 "Trying to register non-intrinsic equipment. Please report this bug on the forums." );
187 while ( cf.
read( elem ) )
201 while ( cf.read( elem ) )
203 std::string newrest =
":" + pkg->name() +
":" + std::string( elem.rest() );
virtual Item * clone() const POL_OVERRIDE
IntrinsicEquipments intrinsic_equipments
void register_intrinsic_equipment(const std::string &name, Equipment *equip)
Must be called when a new intrinsic equipment is created.
bool is_intrinsic() const
Tells eather an equipment is intrinsic or not Intrinsic equipment is, by example, NPCs "natural" weap...
virtual std::string name() const POL_OVERRIDE
virtual void printProperties(Clib::StreamWriter &sw) const POL_OVERRIDE
void reduce_hp_from_hit()
const Core::EquipDesc * tmpl
void load_npc_intrinsic_equip()
Recreates intrinsic equipment for defined NPCs must be called at startup.
void insert_intrinsic_equipment(const std::string &name, Equipment *equip)
Adds a new intrisinc equipment to the map of known ones.
virtual void printProperties(Clib::StreamWriter &sw) const POL_OVERRIDE
virtual size_t estimatedSize() const POL_OVERRIDE
virtual Item * clone() const
void allocate_intrinsic_equipment_serials()
Deferred allocator for serials during startup, see comments in register_intrinsic_equipment() ...
virtual void readProperties(Clib::ConfigElem &elem) POL_OVERRIDE
u32 GetNewItemSerialNumber(void)
UArmor * create_intrinsic_shield_from_npctemplate(Clib::ConfigElem &elem, const Plib::Package *pkg)
Creates a new intrinic shield for an NPC template and returns it.
virtual double getQuality() const POL_OVERRIDE
#define passert_always_r(exp, reason)
virtual void readProperties(Clib::ConfigElem &elem) POL_OVERRIDE
StateManager stateManager
virtual size_t estimatedSize() const POL_OVERRIDE
bool Insert(UObject *obj)
std::pair< std::string, u8 > NameAndLayer
ObjectStorageManager objStorageManager
bool isa(UOBJ_CLASS uobj_class) const
std::string GetPackageCfgPath(const Package *pkg, const std::string &filename)
UWeapon * create_intrinsic_weapon_from_npctemplate(Clib::ConfigElem &elem, const Plib::Package *pkg)
Creates a new intrinic weapon for an NPC template and returns it.
virtual void refresh_ar()
bool FileExists(const char *filename)
virtual void setQuality(double value) POL_OVERRIDE
bool read(ConfigElem &elem)
Equipment(const ItemDesc &itemdesc, Core::UOBJ_CLASS uobj_class, const Core::EquipDesc *permanent_descriptor)
void send_object_cache_to_inrange(const UObject *obj)
virtual size_t estimatedSize() const POL_OVERRIDE
void set_rest(const char *newrest)
Mobile::Character * GetCharacterOwner()
Equipment * find_intrinsic_equipment(const std::string &name, u8 layer)
Looks up for an existing intrinsic equipment and return it or nullptr if not found.