EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Character.h
Go to the documentation of this file.
1 /*
2  ------------------------------------------------------------------------------------
3  LICENSE:
4  ------------------------------------------------------------------------------------
5  This file is part of EVEmu: EVE Online Server Emulator
6  Copyright 2006 - 2021 The EVEmu Team
7  For the latest information visit https://evemu.dev
8  ------------------------------------------------------------------------------------
9  This program is free software; you can redistribute it and/or modify it under
10  the terms of the GNU Lesser General Public License as published by the Free Software
11  Foundation; either version 2 of the License, or (at your option) any later
12  version.
13 
14  This program is distributed in the hope that it will be useful, but WITHOUT
15  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16  FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
17 
18  You should have received a copy of the GNU Lesser General Public License along with
19  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
20  Place - Suite 330, Boston, MA 02111-1307, USA, or go to
21  http://www.gnu.org/copyleft/lesser.txt.
22  ------------------------------------------------------------------------------------
23  Author: Zhur, Bloody.Rabbit
24  Updates: Allan
25 */
26 
27 #ifndef __CHARACTER__H__INCL__
28 #define __CHARACTER__H__INCL__
29 
30 #include "StaticDataMgr.h"
32 #include "character/CharacterDB.h"
33 #include "character/Skill.h"
34 #include "inventory/ItemType.h"
35 #include "inventory/InventoryDB.h"
37 #include "standing/StandingDB.h"
38 
43 public:
45  const char* _bloodlineName = "",
46  uint8 _race = 0,
47  const char* _desc = "",
48  const char* _maleDesc = "",
49  const char* _femaleDesc = "",
50  uint32 _corporationID = 0,
51  uint8 _perception = 0,
52  uint8 _willpower = 0,
53  uint8 _charisma = 0,
54  uint8 _memory = 0,
55  uint8 _intelligence = 0,
56  const char* _shortDesc = "",
57  const char* _shortMaleDesc = "",
58  const char* _shortFemaleDesc = ""
59  );
60 
61  // Content:
62  std::string bloodlineName;
64  std::string description;
65  std::string maleDescription;
66  std::string femaleDescription;
68 
74 
75  std::string shortDescription;
76  std::string shortMaleDescription;
78 };
79 
84 : public ItemType
85 {
86  friend class ItemType; // to let it construct us
87 public:
88  static CharacterType* Load(uint16 typeID);
89 
90  /*
91  * Access functions:
92  */
93  uint8 bloodlineID() const { return m_bloodlineID; }
94 
95  const std::string& bloodlineName() const { return m_bloodlineName; }
96  const std::string& description() const { return m_description; }
97  const std::string& maleDescription() const { return m_maleDescription; }
98  const std::string& femaleDescription() const { return m_femaleDescription; }
99  uint32 corporationID() const { return m_corporationID; }
100 
101  uint8 perception() const { return m_perception; }
102  uint8 willpower() const { return m_willpower; }
103  uint8 charisma() const { return m_charisma; }
104  uint8 memory() const { return m_memory; }
105  uint8 intelligence() const { return m_intelligence; }
106 
107  const std::string& shortDescription() const { return m_shortDescription; }
108  const std::string& shortMaleDescription() const { return m_shortMaleDescription; }
109  const std::string& shortFemaleDescription() const { return m_shortFemaleDescription; }
110 
111 protected:
113  uint16 _id,
114  uint8 _bloodlineID,
115  // ItemType stuff:
116  const Inv::TypeData& _data,
117  // CharacterType stuff:
118  const CharacterTypeData& _charData
119  );
120 
124  using ItemType::_Load;
125 
126  // Template loader:
127  template<class _Ty>
128  static _Ty* _LoadType(uint16 typeID, const Inv::TypeData& data)
129  {
130  // check we are really loading a character type
131  if (data.groupID != EVEDB::invGroups::Character) {
132  _log( ITEM__ERROR, "Trying to load %s as CharacterType.", sDataMgr.GetGroupName(data.groupID));
133  return nullptr;
134  }
135 
136  // query character type data
137  uint8 bloodlineID(0);
138  CharacterTypeData charData;
139  if (!sItemFactory.db()->GetCharacterType(typeID, bloodlineID, charData) )
140  return nullptr;
141 
142  return new CharacterType( typeID, bloodlineID, data, charData );
143  }
144 
145  /*
146  * Data members
147  */
149 
150  std::string m_bloodlineName;
151  std::string m_description;
152  std::string m_maleDescription;
153  std::string m_femaleDescription;
155 
161 
162  std::string m_shortDescription;
165 };
166 
171  // use default c'tor et. al.
172 public:
173  /* these arent used...
174  uint32 colorID;
175  uint32 colorNameA;
176  uint32 colorNameBC;
177  double weight;
178  double gloss;
179 
180  uint32 modifierLocationID;
181  uint32 paperdollResourceID;
182  uint32 paperdollResourceVariation;
183 
184  uint32 sculptID;
185  double weightUpDown;
186  double weightLeftRight;
187  double weightForwardBack;
188 */
189  void Build(uint32 ownerID, PyDict* data);
190 
191 private:
193 };
194 
199  // use default c'tor et. al.
200 public:
201 
202  void Build(uint32 charID, PyDict* data);
203 
204 private:
206 };
207 
212 : public InventoryItem
213 {
214  friend class InventoryItem; // to let it construct us
215 public:
216 
217  virtual void Delete();
218 
222  bool AlterBalance(float amount, uint8 type);
223  void SetLocation(uint32 stationID, SystemData& data);
224  void JoinCorporation(const CorpData& data);
225  void SetDescription(const char *newDescription);
226  void SetAccountKey(int32 accountKey);
227  void SetBaseID(uint32 baseID);
230 
231  void SetClient(Client* pClient) { m_pClient = pClient; }
232  Client* GetClient() { return m_pClient; }
233 
235 
236  // skills
237  bool HasSkill(uint16 skillTypeID) const;
238  bool HasSkillTrainedToLevel(uint16 skillTypeID, uint8 skillLevel) const;
239  SkillRef GetSkill(uint16 skillTypeID) const;
240  int8 GetSkillLevel(uint16 skillTypeID, bool zeroForNotInjected = true) const;
241  PyRep* GetRAMSkills();
242  Skill* GetSkillInTraining() const { return m_inTraining; }
243  void GetSkillsList(std::vector<InventoryItemRef>& skills) const;
244  void VerifySP();
246  uint8 GetSPPerMin(Skill* skill);
249  void AddToSkillQueue(uint16 typeID, uint8 level);
250  void ClearSkillQueue(bool update=false);
251  void PauseSkillQueue();
252  // if there is currently a skill in training, this will check completion, set and save attribs, and remove from queue
253  void CancelSkillInTraining(bool update=false);
255  void SkillQueueLoop(bool update=true);
256  void UpdateSkillQueue();
258  void RemoveFromQueue(SkillRef sRef);
259  void ClearSkillFlags();
260 
262  uint32 GetTotalSP();
263 
264  /* Certificates */
265  void GrantCertificate( uint32 certificateID );
266  void UpdateCertificate( uint32 certificateID, bool pub );
267  bool HasCertificate( uint32 certificateID ) const;
268  void GetCertificates( CertMap& crt );
269 
270  /* Primary public packet builders */
271  PyDict* GetCharInfo();
272  PyObject* GetDescription() const;
274 
275  /* Public fields */
276  const CharacterType& type() const { return static_cast<const CharacterType& >(InventoryItem::type()); }
277  uint32 bloodlineID() const { return type().bloodlineID(); }
278  uint8 race() const { return type().race(); }
279 
280  // Account:
281  uint32 accountID() const { return m_charData.accountID; }
282 
283  const std::string& title() const { return m_charData.title; }
284  const std::string& description() const { return m_charData.description; }
285  bool gender() const { return m_charData.gender; }
286 
287  float bounty() const { return m_charData.bounty; }
288  float balance(uint8 type);
289  float GetSecurityRating() const { return m_charData.securityRating; }
290  uint32 loginTime() const { return m_loginTime; }
292  uint16 OnlineTime();
293 
294  void secStatusChange( float amount ) { m_charData.securityRating += amount; }
295 
296  // Corporation:
297  void UpdateCorpData(CorpData& data);
299  std::string corpTicker() const { return m_corpData.ticker; }
301  uint32 corporationHQ() const { return m_corpData.corpHQ; }
302  int32 allianceID() const { return m_corpData.allianceID; }
305  float corpTaxRate() const { return m_corpData.taxRate; }
306  float corpSecRating() const { return m_corpData.secRating; }
308 
309  // Corporation role:
310  int64 corpRole() const { return m_corpData.corpRole; }
311  int64 rolesAtAll() const { return m_corpData.rolesAtAll; }
313  int64 rolesAtHQ() const { return m_corpData.rolesAtHQ; }
315 
316  // Fleet:
318  int32 fleetID() const { return m_fleetData.fleetID; }
319  int32 wingID() const { return m_fleetData.wingID; }
320  int32 squadID() const { return m_fleetData.squadID; }
321  int8 fleetRole() const { return m_fleetData.role; }
322  int8 fleetBooster() const { return m_fleetData.booster; }
323  int8 fleetJob() const { return m_fleetData.job; }
324 
325  // Current location:
326  uint32 stationID() const { return m_charData.stationID; }
329  uint32 regionID() const { return m_charData.regionID; }
330 
331  // Ancestry, career:
333  uint32 careerID() const { return m_charData.careerID; }
334  uint32 schoolID() const { return m_charData.schoolID; }
336 
337  // Some important dates:
340 
341  uint32 shipID() const { return m_charData.shipID; }
342  uint32 capsuleID() const { return m_charData.capsuleID; }
343 
345  void SetActivePod(uint32 podID);
346  void ResetClone();
347 
348  void PayBounty(CharacterRef cRef);
349  void LogKill(CharKillData data) { m_db.SaveKillOrLoss(data); }
350 
351  // saves
352  void LogOut();
353  void SaveBookMarks();
354  void SaveCharacter();
355  void SaveFullCharacter();
356  void SaveSkillQueue();
357  void SaveCertificates();
358  void SaveSkillHistory(uint16 eventID, double logDate, uint32 characterID, uint16 skillTypeID, uint8 skillLevel, uint32 absolutePoints);
359 
360  void SetLoaded(bool set=false) { m_loaded = set; }
361 
362  void SetLoginTime();
363  void SetLogonMinutes();
364 
365  // Standings functions
366  // fromID = char|agent|corp|faction|alliance toID = me|myCorp|myAlliance.
367  float GetStandingModified(uint32 fromID, uint32 toID=0); // this IS adjusted for skills
368  // fromID = char|agent|corp|faction|alliance toID = me|myCorp|myAlliance.
369  float GetNPCCorpStanding(uint32 fromID, uint32 toID=0);
370  void SetStanding(uint32 fromID, uint32 toID, float standing);
372  void FleetShareMissionStandings(float newStanding);
373 
374  // Dynamic Data
376 
377  // character skill, implant and booster effects. parsed and applied on undock and ship init in space (with all other ship-related effects)
378  // NOTE: implants and boosters not implemented yet
379  void ProcessEffects(ShipItem* pShip);
380  void ResetModifiers(); // this will reset ALL char and skill attribs and modifier maps to default
381 
382 protected:
383  Character(
384  uint32 _characterID,
385  // InventoryItem stuff:
386  const CharacterType& _charType,
387  const ItemData& _data,
388  // Character stuff:
389  const CharacterData& _charData,
390  const CorpData& _corpData
391  );
392  virtual ~Character();
393 
394  void LoadBookmarks();
395 
396  /*
397  * templated loading system
398  */
399 public:
400  static CharacterRef Load( uint32 characterID);
401  static CharacterRef Spawn( CharacterData& charData, CorpData& corpData);
402  virtual bool _Load();
403 
404 protected:
405  using InventoryItem::_Load;
406 
407  // Template loader:
408  template<class _Ty>
409  static RefPtr<_Ty> _LoadItem( uint32 charID, const ItemType& type, const ItemData& data) {
410  if( type.groupID() != EVEDB::invGroups::Character ) {
411  _log(ITEM__ERROR, "Trying to load %s as Character.", sDataMgr.GetCategoryName(type.categoryID()));
412  if (sConfig.debug.StackTrace)
413  EvE::traceStack();
414  return RefPtr<_Ty>();
415  }
416  CharacterData charData = CharacterData();
417  if( !sItemFactory.db()->GetCharacterData( charID, charData ) )
418  return RefPtr<_Ty>();
419 
420  CorpData corpData = CorpData();
421  if( !sItemFactory.db()->GetCorpData( charID, corpData ) )
422  return RefPtr<_Ty>();
423 
424  // cast the type
425  const CharacterType& charType = static_cast<const CharacterType& >( type );
426 
427  // construct the character item
428  return CharacterRef( new Character( charID, charType, data, charData, corpData ) );
429  }
430 
431 
432 private:
436 
438 
442 
443  // Skill queue:
444  Skill* m_inTraining; // holder for training skill, as inventory maps wont work right.
445  SkillQueue m_skillQueue; //std::vector<QueuedSkill>
447 
448  CertMap m_certificates; // std::map<uint16, CharCerts>
449 
450  bool m_loaded :1; /* to avoid multiple load calls (_Load is called ~4x) */
451 
453 
454  std::map<uint8, InventoryItemRef> m_implantMap; // slotID/itemRef
455 
456 };
457 
458 #endif /* !__CHARACTER__H__INCL__ */
459 
460 /*{'FullPath': u'UI/Messages', 'messageID': 259712, 'label': u'CharTerminationSecM02Body'}(u'They would occasionally scare the odd passer by.', None, None)
461  * {'FullPath': u'UI/Messages', 'messageID': 259713, 'label': u'CharTerminationSecM03Body'}(u'Regarded as almost being a dangerous character.', None, None)
462  * {'FullPath': u'UI/Messages', 'messageID': 259714, 'label': u'CharTerminationSecM04Body'}(u'Regarded as being a dangerous character.', None, None)
463  * {'FullPath': u'UI/Messages', 'messageID': 259715, 'label': u'CharTerminationSecM05Body'}(u'Regarded as being quite a dangerous character.', None, None)
464  * {'FullPath': u'UI/Messages', 'messageID': 259716, 'label': u'CharTerminationSecM06Body'}(u'An effective dispatcher of foes, and those that got in the way.', None, None)
465  * {'FullPath': u'UI/Messages', 'messageID': 259717, 'label': u'CharTerminationSecM07Body'}(u'An fairly effective dispatcher of foes, and those that got in the way.', None, None)
466  * {'FullPath': u'UI/Messages', 'messageID': 259718, 'label': u'CharTerminationSecM08Body'}(u'A highly effective dispatcher of foes, and those that got in the way.', None, None)
467  * {'FullPath': u'UI/Messages', 'messageID': 259719, 'label': u'CharTerminationSecM09Body'}(u'An accomplished expeditor of their adversaries, and those that got in the way.', None, None)
468  * {'FullPath': u'UI/Messages', 'messageID': 259720, 'label': u'CharTerminationSecP01Body'}(u'Liked by some, and trusted by close friends occasionally.', None, None)
469  */
std::string bloodlineName
Definition: Character.h:62
Base Python wire object.
Definition: PyRep.h:66
std::string m_description
Definition: Character.h:151
CharacterDB m_db
Definition: Character.h:434
#define sConfig
A macro for easier access to the singleton.
void SetAccountKey(int32 accountKey)
Definition: Character.cpp:435
int64 rolesAtAll() const
Definition: Character.h:311
unsigned __int8 uint8
Definition: eve-compat.h:46
uint32 corporationHQ() const
Definition: Character.h:301
int64 fleetJoinTime()
Definition: Character.h:317
SkillRef GetSkill(uint16 skillTypeID) const
Definition: Character.cpp:566
uint8 m_bloodlineID
Definition: Character.h:148
float GetSecurityRating() const
Definition: Character.h:289
uint32 careerSpecialityID() const
Definition: Character.h:335
uint32 bloodlineID() const
Definition: Character.h:277
void SetActiveShip(uint32 shipID)
Definition: Character.cpp:1240
#define _log(type, fmt,...)
Definition: logsys.h:124
int8 fleetRole() const
Definition: Character.h:321
uint8 intelligence
Definition: Character.h:73
uint32 corpHQ
void SetLocation(uint32 stationID, SystemData &data)
Definition: Character.cpp:412
uint16 groupID() const
Definition: ItemType.h:64
Python's dictionary.
Definition: PyRep.h:719
std::string shortDescription
Definition: Character.h:75
void SetActivePod(uint32 podID)
Definition: Character.cpp:1246
uint32 ancestryID() const
Definition: Character.h:332
uint8 GetSPPerMin(Skill *skill)
Definition: Character.cpp:559
void SetLogonMinutes()
Definition: Character.cpp:1306
int64 startDateTime
bool gender() const
Definition: Character.h:285
CorpData m_corpData
Definition: Character.h:439
uint32 loginTime() const
Definition: Character.h:290
void SaveSkillHistory(uint16 eventID, double logDate, uint32 characterID, uint16 skillTypeID, uint8 skillLevel, uint32 absolutePoints)
Definition: Character.cpp:689
void ClearSkillQueue(bool update=false)
Definition: Character.cpp:653
void ClearSkillFlags()
Definition: Character.cpp:551
void CancelSkillInTraining(bool update=false)
Definition: Character.cpp:816
int64 rolesAtHQ
void AddItem(InventoryItemRef item)
Definition: Character.cpp:1230
int64 rolesAtBase
SkillQueue m_skillQueue
Definition: Character.h:445
uint8 perception() const
Definition: Character.h:101
void LogKill(CharKillData data)
Definition: Character.h:349
void GetCertificates(CertMap &crt)
Definition: Character.cpp:1323
static CharacterRef Spawn(CharacterData &charData, CorpData &corpData)
Definition: Character.cpp:321
std::string femaleDescription
Definition: Character.h:66
uint32 skillPoints
PyTuple * SendSkillQueue()
Definition: Character.cpp:660
const CharacterType & type() const
Definition: Character.h:276
InventoryItem for skill.
Definition: Skill.h:48
virtual bool _Load()
void UpdateCertificate(uint32 certificateID, bool pub)
Definition: Character.cpp:1337
float corpSecRating() const
Definition: Character.h:306
uint8 m_memory
Definition: Character.h:159
static RefPtr< _Ty > _LoadItem(uint32 charID, const ItemType &type, const ItemData &data)
Definition: Character.h:409
static void SaveKillOrLoss(CharKillData &data)
Definition: ServiceDB.cpp:212
PyObject * GetDescription() const
Definition: Character.cpp:1222
float bounty() const
Definition: Character.h:287
uint32 shipID() const
Definition: Character.h:341
virtual void Delete()
Definition: Character.cpp:354
Character(uint32 _characterID, const CharacterType &_charType, const ItemData &_data, const CharacterData &_charData, const CorpData &_corpData)
Definition: Character.cpp:230
Python tuple.
Definition: PyRep.h:567
RefPtr< Character > CharacterRef
Definition: ItemRef.h:63
int64 rolesAtBase() const
Definition: Character.h:312
itemID[count] Create count or of the specified item(from Insider)" ) COMMAND( goto
uint32 GetTotalSP()
Definition: Character.cpp:677
int64 rolesAtOther
uint8 m_perception
Definition: Character.h:156
signed __int8 int8
Definition: eve-compat.h:45
uint32 solarSystemID() const
Definition: Character.h:327
const std::string & shortDescription() const
Definition: Character.h:107
std::map< uint16, CharCerts > CertMap
int64 createDateTime
uint8 charisma() const
Definition: Character.h:103
void UpdateSkillQueueEndTime()
Definition: Character.cpp:1166
uint32 schoolID() const
Definition: Character.h:334
uint8 categoryID() const
Definition: ItemType.h:66
int64 rolesAtHQ() const
Definition: Character.h:313
signed __int32 int32
Definition: eve-compat.h:49
uint32 constellationID() const
Definition: Character.h:328
std::string m_shortDescription
Definition: Character.h:162
virtual bool _Load()
Definition: ItemType.cpp:114
const ItemType & type() const
float taxRate
float balance(uint8 type)
Definition: Character.cpp:363
uint32 m_freePoints
Definition: Character.h:446
uint32 GetTotalSPTrained()
Definition: Character.h:245
std::string description
Definition: Character.h:64
uint32 regionID() const
Definition: Character.h:329
bool AlterBalance(float amount, uint8 type)
Definition: Character.cpp:375
int32 corpAccountKey() const
Definition: Character.h:304
CharacterData m_charData
Definition: Character.h:440
void PayBounty(CharacterRef cRef)
Definition: Character.cpp:1281
void VisitSystem(uint32 solarSystemID)
Definition: Character.cpp:1395
void SetFleetData(CharFleetData &fleet)
Definition: Character.cpp:462
void SaveFullCharacter()
Definition: Character.cpp:1266
void AddToSkillQueue(uint16 typeID, uint8 level)
Definition: Character.cpp:907
uint32 stationID() const
Definition: Character.h:326
Skill * GetSkillInTraining() const
Definition: Character.h:242
bool m_loaded
Definition: Character.h:450
Python object.
Definition: PyRep.h:826
void SetBaseID(uint32 baseID)
Definition: Character.cpp:443
int64 GetEndOfTraining()
Definition: Character.cpp:624
uint32 solarSystemID
uint32 careerID() const
Definition: Character.h:333
int64 corpRole() const
Definition: Character.h:310
void SetLoaded(bool set=false)
Definition: Character.h:360
std::string description
int32 wingID() const
Definition: Character.h:319
virtual bool _Load()
Definition: Character.cpp:269
float GetStandingModified(uint32 fromID, uint32 toID=0)
Definition: Character.cpp:1363
int64 rolesAtAll
uint32 locationID() const
uint8 race() const
Definition: Character.h:278
CertificateMgrDB m_cdb
Definition: Character.h:433
int64 createDateTime() const
Definition: Character.h:339
uint8 bloodlineID() const
Definition: Character.h:93
float securityRating
int8 fleetBooster() const
Definition: Character.h:322
const std::string & shortFemaleDescription() const
Definition: Character.h:109
std::string m_shortFemaleDescription
Definition: Character.h:164
int32 allianceID
float GetNPCCorpStanding(uint32 fromID, uint32 toID=0)
Definition: Character.cpp:1376
uint32 corporationID
Definition: Character.h:67
void SaveCharacter()
Definition: Character.cpp:1257
std::string maleDescription
Definition: Character.h:65
static CharacterType * Load(uint16 typeID)
Definition: Character.cpp:87
void SaveCertificates()
Definition: Character.cpp:1341
int32 squadID() const
Definition: Character.h:320
void LogOut()
Definition: Character.cpp:336
uint32 constellationID
const std::string & femaleDescription() const
Definition: Character.h:98
void SkillQueueLoop(bool update=true)
Definition: Character.cpp:998
uint32 accountID() const
Definition: Character.h:281
CertMap m_certificates
Definition: Character.h:448
int64 corpRole
CharacterDB m_db
Definition: Character.h:205
void ProcessEffects(ShipItem *pShip)
Definition: Character.cpp:498
int32 warFactionID() const
Definition: Character.h:303
CharFleetData m_fleetData
Definition: Character.h:441
Definition: Client.h:66
std::string corpTicker() const
Definition: Character.h:299
unsigned __int32 uint32
Definition: eve-compat.h:50
uint32 corporationID() const
Definition: Character.h:300
Client * m_pClient
Definition: Character.h:437
const std::string & maleDescription() const
Definition: Character.h:97
bool HasCertificate(uint32 certificateID) const
Definition: Character.cpp:1318
int64 rolesAtOther() const
Definition: Character.h:314
void FleetShareMissionStandings(float newStanding)
Definition: Character.cpp:476
std::string m_shortMaleDescription
Definition: Character.h:163
void ResetClone()
Definition: Character.cpp:1252
CharacterType(uint16 _id, uint8 _bloodlineID, const Inv::TypeData &_data, const CharacterTypeData &_charData)
Definition: Character.cpp:66
uint8 m_willpower
Definition: Character.h:157
std::string m_bloodlineName
Definition: Character.h:150
void Build(uint32 charID, PyDict *data)
Definition: Character.cpp:172
uint32 logonMinutes() const
Definition: Character.h:291
void VerifySP()
Definition: Character.cpp:311
uint32 logonMinutes
uint32 corporationID
bool HasSkillTrainedToLevel(uint16 skillTypeID, uint8 skillLevel) const
Definition: Character.cpp:584
void UpdateSkillQueue()
Definition: Character.cpp:991
Definition: Ship.h:46
uint8 m_charisma
Definition: Character.h:158
void GrantCertificate(uint32 certificateID)
Definition: Character.cpp:1327
uint32 m_corporationID
Definition: Character.h:154
virtual ~Character()
Definition: Character.cpp:257
const std::string & description() const
Definition: Character.h:96
uint32 corporationID() const
Definition: Character.h:99
Skill * m_inTraining
Definition: Character.h:444
float secRating
signed __int64 int64
Definition: eve-compat.h:51
PyRep * GetSkillHistory()
Definition: Character.cpp:542
int16 corpAccountKey
void Build(uint32 ownerID, PyDict *data)
Definition: Character.cpp:94
uint16 OnlineTime()
Definition: Character.cpp:1296
void UpdateCorpData(CorpData &data)
Definition: Character.cpp:451
std::vector< QueuedSkill > SkillQueue
Definition: CharacterDB.h:78
uint8 race() const
Definition: ItemType.h:72
PyRep * GetRAMSkills()
Definition: Character.cpp:595
void JoinCorporation(const CorpData &data)
Definition: Character.cpp:426
int32 warFactionID
std::map< uint8, InventoryItemRef > m_implantMap
Definition: Character.h:454
uint32 PickAlternateShip(uint32 locationID)
Definition: Character.cpp:457
static _Ty * _LoadType(uint16 typeID, const Inv::TypeData &data)
Definition: Character.h:128
void ResetModifiers()
Definition: Character.cpp:485
const std::string & title() const
Definition: Character.h:283
float corpTaxRate() const
Definition: Character.h:305
std::string m_femaleDescription
Definition: Character.h:153
int8 GetSkillLevel(uint16 skillTypeID, bool zeroForNotInjected=true) const
Definition: Character.cpp:575
CharacterTypeData(const char *_bloodlineName="", uint8 _race=0, const char *_desc="", const char *_maleDesc="", const char *_femaleDesc="", uint32 _corporationID=0, uint8 _perception=0, uint8 _willpower=0, uint8 _charisma=0, uint8 _memory=0, uint8 _intelligence=0, const char *_shortDesc="", const char *_shortMaleDesc="", const char *_shortFemaleDesc="")
Definition: Character.cpp:44
int8 fleetJob() const
Definition: Character.h:323
CharacterDB m_db
Definition: Character.h:192
void GetSkillsList(std::vector< InventoryItemRef > &skills) const
Definition: Character.cpp:534
void traceStack(void)
Definition: misc.cpp:169
uint8 InjectSkillIntoBrain(SkillRef skill)
Definition: Character.cpp:700
void secStatusChange(float amount)
Definition: Character.h:294
#define sItemFactory
Definition: ItemFactory.h:165
std::string m_maleDescription
Definition: Character.h:152
uint8 memory() const
Definition: Character.h:104
PyDict * GetCharInfo()
Definition: Character.cpp:1183
const std::string & description() const
Definition: Character.h:284
const std::string & shortMaleDescription() const
Definition: Character.h:108
int32 fleetID() const
Definition: Character.h:318
int32 allianceID() const
Definition: Character.h:302
const std::string & bloodlineName() const
Definition: Character.h:95
void SetDescription(const char *newDescription)
Definition: Character.cpp:421
void LoadPausedSkillQueue(uint16 typeID)
Definition: Character.cpp:758
uint32 capsuleID() const
Definition: Character.h:342
void LoadBookmarks()
Definition: Character.cpp:1348
CorpData GetCorpData()
Definition: Character.h:298
void SaveBookMarks()
Definition: Character.cpp:1353
std::string title
void RemoveFromQueue(SkillRef sRef)
Definition: Character.cpp:642
void SetStanding(uint32 fromID, uint32 toID, float standing)
Definition: Character.cpp:1388
unsigned __int16 uint16
Definition: eve-compat.h:48
std::string ticker
uint8 intelligence() const
Definition: Character.h:105
static CharacterRef Load(uint32 characterID)
Definition: Character.cpp:265
int64 startDateTime() const
Definition: Character.h:338
void SetLoginTime()
Definition: Character.cpp:1290
uint8 willpower() const
Definition: Character.h:102
void SetClient(Client *pClient)
Definition: Character.h:231
uint32 m_loginTime
Definition: Character.h:452
Client * GetClient()
Definition: Character.h:232
void FleetShareMissionRewards()
Definition: Character.cpp:471
uint16 typeID() const
void SetCorpHQ(uint32 stationID)
Definition: Character.h:307
void PauseSkillQueue()
Definition: Character.cpp:748
uint8 m_intelligence
Definition: Character.h:160
std::string shortFemaleDescription
Definition: Character.h:77
std::string shortMaleDescription
Definition: Character.h:76
uint32 careerSpecialityID
bool HasSkill(uint16 skillTypeID) const
Definition: Character.cpp:538
StandingDB s_db
Definition: Character.h:435
#define sDataMgr
void SaveSkillQueue()
Definition: Character.cpp:546