truelight@9711: #include "ai_engine.hpp" truelight@9711: truelight@9711: namespace SQConvert { truelight@9711: /* Allow AIEngine to be used as Squirrel parameter */ truelight@9711: template <> AIEngine *GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngine *)instance; } truelight@9711: template <> AIEngine &GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngine *)instance; } truelight@9711: template <> const AIEngine *GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngine *)instance; } truelight@9711: template <> const AIEngine &GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngine *)instance; } truelight@9711: template <> int Return(HSQUIRRELVM vm, AIEngine *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AIEngine", res, NULL, DefSQDestructorCallback); return 1; } truelight@9711: }; // namespace SQConvert truelight@9711: truelight@9711: void SQAIEngineRegister(Squirrel *engine) { truelight@9711: DefSQClass SQAIEngine("AIEngine"); truelight@9711: SQAIEngine.PreRegister(engine); truelight@9711: SQAIEngine.AddConstructor(engine, "x"); truelight@9711: truelight@9713: SQAIEngine.DefSQStaticMethod(engine, &AIEngine::GetClassName, "GetClassName", 1, "x"); truelight@9713: SQAIEngine.DefSQStaticMethod(engine, &AIEngine::IsValidEngine, "IsValidEngine", 2, "xi"); truelight@9713: SQAIEngine.DefSQStaticMethod(engine, &AIEngine::GetName, "GetName", 2, "xi"); truelight@9713: SQAIEngine.DefSQStaticMethod(engine, &AIEngine::GetCargoType, "GetCargoType", 2, "xi"); truelight@9713: SQAIEngine.DefSQStaticMethod(engine, &AIEngine::GetCapacity, "GetCapacity", 2, "xi"); truelight@9713: SQAIEngine.DefSQStaticMethod(engine, &AIEngine::GetReliability, "GetReliability", 2, "xi"); truelight@9713: SQAIEngine.DefSQStaticMethod(engine, &AIEngine::GetMaxSpeed, "GetMaxSpeed", 2, "xi"); truelight@9713: SQAIEngine.DefSQStaticMethod(engine, &AIEngine::GetPrice, "GetPrice", 2, "xi"); truebrain@9733: SQAIEngine.DefSQStaticMethod(engine, &AIEngine::GetMaxAge, "GetMaxAge", 2, "xi"); truebrain@9733: SQAIEngine.DefSQStaticMethod(engine, &AIEngine::GetRunningCost, "GetRunningCost", 2, "xi"); truelight@9713: SQAIEngine.DefSQStaticMethod(engine, &AIEngine::GetVehicleType, "GetVehicleType", 2, "xi"); truelight@9711: truelight@9711: SQAIEngine.PostRegister(engine); truelight@9711: }