rubidium@9596: #include "ai_company.hpp" rubidium@9596: rubidium@9596: namespace SQConvert { rubidium@9596: /* Allow AICompany to be used as Squirrel parameter */ rubidium@9596: template <> AICompany *GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AICompany *)instance; } rubidium@9596: template <> AICompany &GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AICompany *)instance; } rubidium@9596: template <> const AICompany *GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AICompany *)instance; } rubidium@9596: template <> const AICompany &GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AICompany *)instance; } rubidium@9596: }; // namespace SQConvert rubidium@9596: rubidium@9596: void SQAICompanyRegister(Squirrel *engine) { rubidium@9596: DefSQClass SQAICompany("AICompany"); rubidium@9596: SQAICompany.PreRegister(engine); truelight@9635: SQAICompany.AddConstructor(engine, "x"); rubidium@9596: rubidium@9596: SQAICompany.DefSQStaticMethod(engine, &AICompany::GetClassName, "GetClassName", 1, "x"); rubidium@9596: rubidium@9596: SQAICompany.DefSQMethod(engine, &AICompany::SetCompanyName, "SetCompanyName", 2, "xs"); rubidium@9596: SQAICompany.DefSQMethod(engine, &AICompany::GetCompanyName, "GetCompanyName", 1, "x"); rubidium@9596: SQAICompany.DefSQMethod(engine, &AICompany::SetPresidentName, "SetPresidentName", 2, "xs"); rubidium@9596: SQAICompany.DefSQMethod(engine, &AICompany::GetPresidentName, "GetPresidentName", 1, "x"); rubidium@9596: SQAICompany.DefSQMethod(engine, &AICompany::GetCompanyValue, "GetCompanyValue", 1, "x"); rubidium@9596: SQAICompany.DefSQMethod(engine, &AICompany::GetBankBalance, "GetBankBalance", 1, "x"); rubidium@9596: SQAICompany.DefSQMethod(engine, &AICompany::GetLoanAmount, "GetLoanAmount", 1, "x"); rubidium@9596: SQAICompany.DefSQMethod(engine, &AICompany::GetMaxLoanAmount, "GetMaxLoanAmount", 1, "x"); rubidium@9596: SQAICompany.DefSQMethod(engine, &AICompany::GetLoanInterval, "GetLoanInterval", 1, "x"); rubidium@9596: SQAICompany.DefSQMethod(engine, &AICompany::SetLoanAmount, "SetLoanAmount", 2, "xi"); rubidium@9596: rubidium@9596: SQAICompany.PostRegister(engine); rubidium@9596: }