truelight@9654: #include "ai_airport.hpp" truelight@9654: truelight@9654: namespace SQConvert { truelight@9654: /* Allow enums to be used as Squirrel parameters */ truelight@9654: template <> AIAirport::AirportType GetParam(ForceType, HSQUIRRELVM vm, int index) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AIAirport::AirportType)tmp; } truelight@9654: template <> int Return(HSQUIRRELVM vm, AIAirport::AirportType res) { sq_pushinteger(vm, (int32)res); return 1; } truelight@9654: truelight@9654: /* Allow AIAirport to be used as Squirrel parameter */ truelight@9654: template <> AIAirport *GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIAirport *)instance; } truelight@9654: template <> AIAirport &GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIAirport *)instance; } truelight@9654: template <> const AIAirport *GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIAirport *)instance; } truelight@9654: template <> const AIAirport &GetParam(ForceType, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIAirport *)instance; } truelight@9680: template <> int Return(HSQUIRRELVM vm, AIAirport *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AIAirport", res, NULL, DefSQDestructorCallback); return 1; } truelight@9654: }; // namespace SQConvert truelight@9654: truebrain@9741: void SQAIAirport_Register(Squirrel *engine) { truelight@9654: DefSQClass SQAIAirport("AIAirport"); truelight@9654: SQAIAirport.PreRegister(engine); truelight@9654: SQAIAirport.AddConstructor(engine, "x"); truelight@9654: truelight@9654: SQAIAirport.DefSQConst(engine, AIAirport::AT_SMALL, "AT_SMALL"); truelight@9654: SQAIAirport.DefSQConst(engine, AIAirport::AT_LARGE, "AT_LARGE"); truelight@9654: SQAIAirport.DefSQConst(engine, AIAirport::AT_HELIPORT, "AT_HELIPORT"); truelight@9654: SQAIAirport.DefSQConst(engine, AIAirport::AT_METROPOLITAN, "AT_METROPOLITAN"); truelight@9654: SQAIAirport.DefSQConst(engine, AIAirport::AT_INTERNATIONAL, "AT_INTERNATIONAL"); truelight@9654: SQAIAirport.DefSQConst(engine, AIAirport::AT_COMMUTER, "AT_COMMUTER"); truelight@9654: SQAIAirport.DefSQConst(engine, AIAirport::AT_HELIDEPOT, "AT_HELIDEPOT"); truelight@9654: SQAIAirport.DefSQConst(engine, AIAirport::AT_INTERCON, "AT_INTERCON"); truelight@9654: SQAIAirport.DefSQConst(engine, AIAirport::AT_HELISTATION, "AT_HELISTATION"); truelight@9654: truelight@9670: SQAIAirport.DefSQStaticMethod(engine, &AIAirport::GetClassName, "GetClassName", 1, "x"); truelight@9670: SQAIAirport.DefSQStaticMethod(engine, &AIAirport::IsHangarTile, "IsHangarTile", 2, "xi"); truelight@9670: SQAIAirport.DefSQStaticMethod(engine, &AIAirport::IsAirportTile, "IsAirportTile", 2, "xi"); truebrain@9773: SQAIAirport.DefSQStaticMethod(engine, &AIAirport::AirportAvailable, "AirportAvailable", 2, "xi"); truelight@9670: SQAIAirport.DefSQStaticMethod(engine, &AIAirport::GetAirportWidth, "GetAirportWidth", 2, "xi"); truelight@9670: SQAIAirport.DefSQStaticMethod(engine, &AIAirport::GetAirportHeight, "GetAirportHeight", 2, "xi"); truelight@9670: SQAIAirport.DefSQStaticMethod(engine, &AIAirport::GetAirportCoverageRadius, "GetAirportCoverageRadius", 2, "xi"); truebrain@9737: SQAIAirport.DefSQStaticMethod(engine, &AIAirport::BuildAirport, "BuildAirport", 3, "xii"); truebrain@9737: SQAIAirport.DefSQStaticMethod(engine, &AIAirport::RemoveAirport, "RemoveAirport", 2, "xi"); truebrain@9737: SQAIAirport.DefSQStaticMethod(engine, &AIAirport::GetHangarOfAirport, "GetHangarOfAirport", 2, "xi"); truelight@9654: truelight@9654: SQAIAirport.PostRegister(engine); truelight@9654: }