truebrain@9851: #include "ai_log.hpp" truebrain@9851: truebrain@9851: namespace SQConvert { truebrain@9851: /* Allow enums to be used as Squirrel parameters */ truebrain@9851: template <> AILog::AILogType GetParam(ForceType, HSQUIRRELVM vm, int index) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AILog::AILogType)tmp; } truebrain@9851: template <> int Return(HSQUIRRELVM vm, AILog::AILogType res) { sq_pushinteger(vm, (int32)res); return 1; } truebrain@9851: truebrain@9851: /* Allow AILog to be used as Squirrel parameter */ truebrain@9851: template <> AILog *GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AILog *)instance; } truebrain@9851: template <> AILog &GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AILog *)instance; } truebrain@9851: template <> const AILog *GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AILog *)instance; } truebrain@9851: template <> const AILog &GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AILog *)instance; } truebrain@9851: template <> int Return(HSQUIRRELVM vm, AILog *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AILog", res, NULL, DefSQDestructorCallback); return 1; } truebrain@9851: }; // namespace SQConvert truebrain@9851: truebrain@9851: void SQAILog_Register(Squirrel *engine) { truebrain@9851: DefSQClass SQAILog("AILog"); truebrain@9851: SQAILog.PreRegister(engine); truebrain@9851: SQAILog.AddConstructor(engine, "x"); truebrain@9851: truebrain@9851: SQAILog.DefSQConst(engine, AILog::LOG_SQ_ERROR, "LOG_SQ_ERROR"); truebrain@9851: SQAILog.DefSQConst(engine, AILog::LOG_ERROR, "LOG_ERROR"); truebrain@9851: SQAILog.DefSQConst(engine, AILog::LOG_SQ_INFO, "LOG_SQ_INFO"); truebrain@9851: SQAILog.DefSQConst(engine, AILog::LOG_WARNING, "LOG_WARNING"); truebrain@9851: SQAILog.DefSQConst(engine, AILog::LOG_INFO, "LOG_INFO"); truebrain@9851: truebrain@9851: SQAILog.DefSQStaticMethod(engine, &AILog::GetClassName, "GetClassName", 1, "x"); truebrain@9851: SQAILog.DefSQStaticMethod(engine, &AILog::Info, "Info", 2, "xs"); truebrain@9851: SQAILog.DefSQStaticMethod(engine, &AILog::Warning, "Warning", 2, "xs"); truebrain@9851: SQAILog.DefSQStaticMethod(engine, &AILog::Error, "Error", 2, "xs"); truebrain@9851: SQAILog.DefSQStaticMethod(engine, &AILog::FreeLogPointer, "FreeLogPointer", 1, "x"); truebrain@9851: truebrain@9851: SQAILog.PostRegister(engine); truebrain@9851: }