// // Created by koncord on 29.08.16. // #ifndef OPENMW_CHARCLASSAPI_HPP #define OPENMW_CHARCLASSAPI_HPP #include "../Types.hpp" #define CHARCLASSAPI \ {"SetDefaultClass", CharClassFunctions::SetDefaultClass},\ {"SetClassName", CharClassFunctions::SetClassName},\ {"SetClassDesc", CharClassFunctions::SetClassDesc},\ {"SetClassMajorAttribute", CharClassFunctions::SetClassMajorAttribute},\ {"SetClassSpecialization", CharClassFunctions::SetClassSpecialization},\ {"SetClassMajorSkill", CharClassFunctions::SetClassMajorSkill},\ {"SetClassMinorSkill", CharClassFunctions::SetClassMinorSkill},\ {"GetDefaultClass", CharClassFunctions::GetDefaultClass},\ {"GetClassName", CharClassFunctions::GetClassName},\ {"GetClassDesc", CharClassFunctions::GetClassDesc},\ {"GetClassMajorAttribute", CharClassFunctions::GetClassMajorAttribute},\ {"GetClassSpecialization", CharClassFunctions::GetClassSpecialization},\ {"GetClassMajorSkill", CharClassFunctions::GetClassMajorSkill},\ {"GetClassMinorSkill", CharClassFunctions::GetClassMinorSkill},\ {"IsClassDefault", CharClassFunctions::IsClassDefault},\ {"SendClass", CharClassFunctions::SendClass} class CharClassFunctions { public: CharClassFunctions() {} static void SetDefaultClass(unsigned short pid, const char *id) noexcept; static void SetClassName(unsigned short pid, const char *name) noexcept; static void SetClassDesc(unsigned short pid, const char *desc) noexcept; /** * \param pid * \param slot 0 = first, 1 = second * \param attrId */ static void SetClassMajorAttribute(unsigned short pid, unsigned char slot, int attrId) noexcept; /** * \param pid * \param spec 0 = Combat, 1 = Magic, 2 = Stealth */ static void SetClassSpecialization(unsigned short pid, int spec) noexcept; /** * \param pid * \param slot 0 to 4 * \param skillId */ static void SetClassMajorSkill(unsigned short pid, unsigned char slot, int skillId) noexcept; static void SetClassMinorSkill(unsigned short pid, unsigned char slot, int skillId) noexcept; static const char *GetDefaultClass(unsigned short pid) noexcept; static const char *GetClassName(unsigned short pid) noexcept; static const char *GetClassDesc(unsigned short pid) noexcept; /** * \param pid * \param slot 0 = first, 1 = second * \return attrId */ static int GetClassMajorAttribute(unsigned short pid, unsigned char slot) noexcept; /** * \param pid * \return spec 0 = Combat, 1 = Magic, 2 = Stealth */ static int GetClassSpecialization(unsigned short pid) noexcept; /** * \param pid * \param slot 0 to 4 * \return skillId */ static int GetClassMajorSkill(unsigned short pid, unsigned char slot) noexcept; static int GetClassMinorSkill(unsigned short pid, unsigned char slot) noexcept; static int IsClassDefault(unsigned short pid) noexcept; static void SendClass(unsigned short pid) noexcept; }; #endif //OPENMW_CHARCLASSAPI_HPP