EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
ModuleItem.h
Go to the documentation of this file.
1 
10 #ifndef _EVE_SHIP_MODULES_MODULE_H_
11 #define _EVE_SHIP_MODULES_MODULE_H_
12 
13 
14 #include "EVEServerConfig.h"
15 #include "StaticDataMgr.h"
17 
18 
20 : public InventoryItem
21 {
22  friend class InventoryItem;
23 public:
24  virtual ~ModuleItem() { /* do nothing here */ }
25 
26  /* class type pointer querys. */
27  virtual ModuleItem* GetModuleItem() { return this; }
28  /* class type tests. */
29  virtual bool IsModuleItem() { return true; }
30 
31  static ModuleItemRef Load(uint32 modID);
32  static ModuleItemRef Spawn(ItemData &data);
33 
34  // this resets modifiers, sets attrOnline, then sends GodmaShipEffect
35  void SetOnline(bool online=false, bool isRig=false);
36 
37 protected:
38  ModuleItem(uint32 _modID, const ItemType &_type, const ItemData &_data );
39 
40  // template loading system
42  virtual bool _Load();
43 
44  // Template loader:
45  template<class _Ty>
46  static RefPtr<_Ty> _LoadItem( uint32 modID, const ItemType &type, const ItemData &data) {
49  return ModuleItemRef( new ModuleItem(modID, type, data ) );
50 
51  _log(ITEM__ERROR, "Trying to load %s as Module.", sDataMgr.GetCategoryName(type.categoryID()));
52  if (sConfig.debug.StackTrace)
54  return RefPtr<_Ty>();
55  }
56 
57 };
58 
59 #endif /* !_EVE_SHIP_MODULES_MODULE_H_ */
#define sConfig
A macro for easier access to the singleton.
ModuleItem(uint32 _modID, const ItemType &_type, const ItemData &_data)
Definition: ModuleItem.cpp:16
RefPtr< ModuleItem > ModuleItemRef
Definition: ItemRef.h:58
#define _log(type, fmt,...)
Definition: logsys.h:124
virtual bool _Load()
Definition: ModuleItem.cpp:43
void SetOnline(bool online=false, bool isRig=false)
Definition: ModuleItem.cpp:57
virtual bool _Load()
uint8 categoryID() const
Definition: ItemType.h:66
static ModuleItemRef Spawn(ItemData &data)
Definition: ModuleItem.cpp:27
const ItemType & type() const
virtual ~ModuleItem()
Definition: ModuleItem.h:24
unsigned __int32 uint32
Definition: eve-compat.h:50
virtual bool IsModuleItem()
Definition: ModuleItem.h:29
void traceStack(void)
Definition: misc.cpp:169
virtual ModuleItem * GetModuleItem()
Definition: ModuleItem.h:27
static RefPtr< _Ty > _LoadItem(uint32 modID, const ItemType &type, const ItemData &data)
Definition: ModuleItem.h:46
static ModuleItemRef Load(uint32 modID)
Definition: ModuleItem.cpp:22
Reference-counting-based smart pointer.
Definition: RefPtr.h:133
#define sDataMgr