Make GetBotID const.
Code:
uint32 GetBotID() const { return _botID; }
You can always call a const function, but you can't call a non-const function from a const function.
Actually, looking at the code all of these should be const. If you fix them in the header you'll have to fix the two non-inline functions in the cpp file as well.
Code:
// "GET" Class Methods
uint32 GetBotID() const { return _botID; }
uint32 GetBotOwnerCharacterID() const { return _botOwnerCharacterID; }
uint32 GetBotSpellID() const { return npc_spells_id; }
Mob* GetBotOwner() const { return this->_botOwner; }
uint32 GetBotArcheryRange() const;
ItemInst* GetBotItem(uint32 slotID) const;
virtual bool GetSpawnStatus() const { return _spawnStatus; }
int8 GetPetChooserID() const { return _petChooserID; }
bool IsPetChooser() const { return _petChooser; }
bool IsBotArcher() const { return _botArcher; }
bool IsBotCharmer() const { return _botCharmer; }
virtual bool IsBot() const { return true; }
bool GetRangerAutoWeaponSelect() const { return _rangerAutoWeaponSelect; }
BotRoleType GetBotRole() const { return _botRole; }
bool IsBotCaster() const { return (GetClass() == CLERIC || GetClass() == DRUID || GetClass() == SHAMAN || GetClass() == NECROMANCER || GetClass() == WIZARD || GetClass() == MAGICIAN || GetClass() == ENCHANTER); }
bool IsBotINTCaster() const { return (GetClass() == NECROMANCER || GetClass() == WIZARD || GetClass() == MAGICIAN || GetClass() == ENCHANTER); }
bool IsBotWISCaster() const { return (GetClass() == CLERIC || GetClass() == DRUID || GetClass() == SHAMAN); }
inline virtual sint16 GetAC() const { return AC; }