author | truelight |
Fri, 19 Oct 2007 14:03:27 +0000 | |
branch | noai |
changeset 9714 | fdbdae7ea647 |
parent 9713 | 7cd214115969 |
child 9715 | 7fdb0cfac113 |
--- a/bin/ai/regression/regression.nut Fri Oct 19 13:14:22 2007 +0000 +++ b/bin/ai/regression/regression.nut Fri Oct 19 14:03:27 2007 +0000 @@ -194,6 +194,40 @@ } } +function Regression::EngineList() +{ + local list = AIEngineList(AIVehicle.VEHICLE_ROAD); + + print(""); + print("--EngineList--"); + print(" Count(): " + list.Count()); + list.Valuate(AIEngineListCargoType()); + print(" CargoType ListDump:"); + for (local i = list.Begin(); list.HasNext(); i = list.Next()) { + print(" " + i + " => " + list.GetValue(i)); + } + list.Valuate(AIEngineListCapacity()); + print(" Capacity ListDump:"); + for (local i = list.Begin(); list.HasNext(); i = list.Next()) { + print(" " + i + " => " + list.GetValue(i)); + } + list.Valuate(AIEngineListReliability()); + print(" Reliability ListDump:"); + for (local i = list.Begin(); list.HasNext(); i = list.Next()) { + print(" " + i + " => " + list.GetValue(i)); + } + list.Valuate(AIEngineListMaxSpeed()); + print(" MaxSpeed ListDump:"); + for (local i = list.Begin(); list.HasNext(); i = list.Next()) { + print(" " + i + " => " + list.GetValue(i)); + } + list.Valuate(AIEngineListPrice()); + print(" Price ListDump:"); + for (local i = list.Begin(); list.HasNext(); i = list.Next()) { + print(" " + i + " => " + list.GetValue(i)); + } +} + function Regression::Event() { print(""); @@ -954,6 +988,7 @@ this.Cargo(); this.Company(); this.Engine(); + this.EngineList(); this.Event(); this.Industry(); this.IndustryList();
--- a/bin/ai/regression/regression.txt Fri Oct 19 13:14:22 2007 +0000 +++ b/bin/ai/regression/regression.txt Fri Oct 19 14:03:27 2007 +0000 @@ -3061,6 +3061,454 @@ Reliability 50: 65535 Reliability 100: 65535 +--EngineList-- + Count(): 88 + CargoType ListDump: + 197 => 11 + 196 => 11 + 195 => 11 + 158 => 11 + 157 => 11 + 156 => 11 + 200 => 10 + 199 => 10 + 198 => 10 + 155 => 10 + 154 => 10 + 153 => 10 + 203 => 9 + 202 => 9 + 201 => 9 + 167 => 9 + 166 => 9 + 165 => 9 + 161 => 9 + 160 => 9 + 159 => 9 + 152 => 9 + 151 => 9 + 150 => 9 + 182 => 8 + 181 => 8 + 180 => 8 + 164 => 8 + 163 => 8 + 162 => 8 + 149 => 8 + 148 => 8 + 147 => 8 + 179 => 7 + 178 => 7 + 177 => 7 + 146 => 7 + 145 => 7 + 144 => 7 + 185 => 6 + 184 => 6 + 183 => 6 + 143 => 6 + 142 => 6 + 141 => 6 + 191 => 5 + 190 => 5 + 189 => 5 + 140 => 5 + 139 => 5 + 138 => 5 + 194 => 4 + 193 => 4 + 192 => 4 + 170 => 4 + 169 => 4 + 168 => 4 + 137 => 4 + 136 => 4 + 135 => 4 + 188 => 3 + 187 => 3 + 186 => 3 + 134 => 3 + 133 => 3 + 132 => 3 + 131 => 2 + 130 => 2 + 129 => 2 + 128 => 2 + 127 => 2 + 126 => 2 + 176 => 1 + 175 => 1 + 174 => 1 + 173 => 1 + 172 => 1 + 171 => 1 + 125 => 1 + 124 => 1 + 123 => 1 + 122 => 0 + 121 => 0 + 120 => 0 + 119 => 0 + 118 => 0 + 117 => 0 + 116 => 0 + Capacity ListDump: + 119 => 40 + 122 => 38 + 118 => 37 + 121 => 35 + 117 => 35 + 116 => 31 + 143 => 30 + 131 => 30 + 128 => 30 + 120 => 30 + 130 => 28 + 127 => 28 + 125 => 28 + 167 => 27 + 164 => 27 + 149 => 27 + 134 => 27 + 166 => 25 + 163 => 25 + 148 => 25 + 142 => 25 + 133 => 25 + 124 => 25 + 146 => 24 + 170 => 23 + 203 => 22 + 200 => 22 + 197 => 22 + 194 => 22 + 191 => 22 + 188 => 22 + 185 => 22 + 182 => 22 + 179 => 22 + 176 => 22 + 173 => 22 + 162 => 22 + 158 => 22 + 147 => 22 + 145 => 22 + 129 => 22 + 126 => 22 + 165 => 21 + 132 => 21 + 169 => 20 + 161 => 20 + 157 => 20 + 152 => 20 + 144 => 20 + 141 => 20 + 123 => 20 + 202 => 19 + 199 => 19 + 196 => 19 + 193 => 19 + 190 => 19 + 187 => 19 + 184 => 19 + 181 => 19 + 178 => 19 + 175 => 19 + 172 => 19 + 168 => 18 + 160 => 18 + 151 => 18 + 140 => 18 + 137 => 18 + 201 => 17 + 198 => 17 + 195 => 17 + 192 => 17 + 189 => 17 + 186 => 17 + 183 => 17 + 180 => 17 + 177 => 17 + 174 => 17 + 171 => 17 + 156 => 17 + 155 => 16 + 139 => 16 + 136 => 16 + 159 => 15 + 154 => 15 + 150 => 15 + 138 => 14 + 135 => 14 + 153 => 12 + Reliability ListDump: + 165 => 99 + 144 => 97 + 132 => 97 + 168 => 96 + 147 => 96 + 141 => 96 + 135 => 96 + 129 => 94 + 186 => 92 + 156 => 91 + 126 => 91 + 171 => 90 + 159 => 90 + 195 => 88 + 177 => 86 + 138 => 86 + 201 => 84 + 192 => 84 + 120 => 84 + 183 => 83 + 162 => 82 + 150 => 81 + 189 => 80 + 180 => 79 + 198 => 78 + 116 => 78 + 174 => 77 + 167 => 77 + 178 => 76 + 175 => 76 + 123 => 76 + 153 => 75 + 191 => 74 + 170 => 74 + 121 => 74 + 202 => 73 + 158 => 71 + 152 => 71 + 137 => 71 + 203 => 70 + 200 => 70 + 176 => 70 + 199 => 68 + 197 => 68 + 196 => 68 + 194 => 68 + 142 => 67 + 187 => 66 + 124 => 66 + 160 => 65 + 139 => 65 + 169 => 64 + 154 => 64 + 140 => 63 + 136 => 63 + 127 => 63 + 117 => 63 + 185 => 62 + 145 => 62 + 133 => 62 + 190 => 61 + 184 => 61 + 155 => 61 + 151 => 61 + 122 => 61 + 181 => 60 + 164 => 60 + 193 => 59 + 188 => 59 + 179 => 59 + 146 => 59 + 182 => 58 + 166 => 58 + 161 => 58 + 131 => 58 + 157 => 57 + 130 => 57 + 125 => 57 + 119 => 57 + 163 => 56 + 118 => 56 + 172 => 55 + 173 => 53 + 149 => 52 + 143 => 52 + 134 => 52 + 148 => 50 + 128 => 48 + MaxSpeed ListDump: + 119 => 255 + 122 => 240 + 203 => 224 + 200 => 224 + 197 => 224 + 194 => 224 + 191 => 224 + 188 => 224 + 185 => 224 + 182 => 224 + 179 => 224 + 176 => 224 + 173 => 224 + 170 => 224 + 167 => 224 + 164 => 224 + 161 => 224 + 158 => 224 + 155 => 224 + 152 => 224 + 149 => 224 + 146 => 224 + 143 => 224 + 140 => 224 + 137 => 224 + 134 => 224 + 131 => 224 + 128 => 224 + 125 => 224 + 118 => 224 + 121 => 192 + 202 => 176 + 199 => 176 + 196 => 176 + 193 => 176 + 190 => 176 + 187 => 176 + 184 => 176 + 181 => 176 + 178 => 176 + 175 => 176 + 172 => 176 + 169 => 176 + 166 => 176 + 163 => 176 + 160 => 176 + 157 => 176 + 154 => 176 + 151 => 176 + 148 => 176 + 145 => 176 + 142 => 176 + 139 => 176 + 136 => 176 + 133 => 176 + 130 => 176 + 127 => 176 + 124 => 176 + 117 => 176 + 120 => 112 + 116 => 112 + 201 => 96 + 198 => 96 + 195 => 96 + 192 => 96 + 189 => 96 + 186 => 96 + 183 => 96 + 180 => 96 + 177 => 96 + 174 => 96 + 171 => 96 + 168 => 96 + 165 => 96 + 162 => 96 + 159 => 96 + 156 => 96 + 153 => 96 + 150 => 96 + 147 => 96 + 144 => 96 + 141 => 96 + 138 => 96 + 135 => 96 + 132 => 96 + 129 => 96 + 126 => 96 + 123 => 96 + Price ListDump: + 155 => 7430 + 154 => 7017 + 122 => 6605 + 119 => 6605 + 170 => 6522 + 203 => 6481 + 200 => 6481 + 197 => 6481 + 194 => 6481 + 191 => 6481 + 188 => 6481 + 185 => 6481 + 182 => 6481 + 179 => 6481 + 176 => 6481 + 173 => 6481 + 167 => 6233 + 164 => 6192 + 149 => 6192 + 134 => 6192 + 118 => 6192 + 169 => 6109 + 202 => 6068 + 199 => 6068 + 196 => 6068 + 193 => 6068 + 190 => 6068 + 187 => 6068 + 184 => 6068 + 181 => 6068 + 178 => 6068 + 175 => 6068 + 172 => 6068 + 146 => 6068 + 161 => 5985 + 153 => 5985 + 152 => 5985 + 131 => 5985 + 128 => 5985 + 158 => 5944 + 143 => 5903 + 166 => 5820 + 163 => 5779 + 148 => 5779 + 140 => 5779 + 137 => 5779 + 133 => 5779 + 121 => 5779 + 117 => 5779 + 125 => 5696 + 145 => 5655 + 160 => 5572 + 151 => 5572 + 130 => 5572 + 127 => 5572 + 157 => 5531 + 142 => 5490 + 139 => 5366 + 136 => 5366 + 124 => 5284 + 162 => 4995 + 147 => 4995 + 120 => 4953 + 116 => 4953 + 168 => 4871 + 144 => 4871 + 201 => 4829 + 198 => 4829 + 195 => 4829 + 192 => 4829 + 189 => 4829 + 186 => 4829 + 183 => 4829 + 180 => 4829 + 177 => 4829 + 174 => 4829 + 171 => 4829 + 129 => 4747 + 126 => 4747 + 141 => 4706 + 159 => 4623 + 156 => 4623 + 150 => 4623 + 165 => 4582 + 132 => 4540 + 123 => 4458 + 138 => 4417 + 135 => 4334 + --Event-- GetNextEvent: instance GetEventType: 1
--- a/source.list Fri Oct 19 13:14:22 2007 +0000 +++ b/source.list Fri Oct 19 14:03:27 2007 +0000 @@ -343,6 +343,8 @@ ai/api/ai_company.hpp ai/api/ai_controller.hpp ai/api/ai_engine.hpp +ai/api/ai_enginelist.hpp +ai/api/ai_enginelist_valuator.hpp ai/api/ai_event.hpp ai/api/ai_event_types.hpp ai/api/ai_execmode.hpp @@ -384,6 +386,8 @@ ai/api/ai_company.cpp ai/api/ai_controller.cpp ai/api/ai_engine.cpp +ai/api/ai_enginelist.cpp +ai/api/ai_enginelist_valuator.cpp ai/api/ai_event.cpp ai/api/ai_event_types.cpp ai/api/ai_execmode.cpp
--- a/src/ai/ai_squirrel.cpp Fri Oct 19 13:14:22 2007 +0000 +++ b/src/ai/ai_squirrel.cpp Fri Oct 19 14:03:27 2007 +0000 @@ -29,6 +29,8 @@ #include "api/ai_company.hpp.sq" #include "api/ai_controller.hpp.sq" #include "api/ai_engine.hpp.sq" +#include "api/ai_enginelist.hpp.sq" +#include "api/ai_enginelist_valuator.hpp.sq" #include "api/ai_event.hpp.sq" #include "api/ai_event_types.hpp.sq" #include "api/ai_execmode.hpp.sq" @@ -218,6 +220,12 @@ SQAICargoRegister(this->engine); SQAICompanyRegister(this->engine); SQAIControllerRegister(this->engine); + SQAIEngineListCapacityRegister(this->engine); + SQAIEngineListCargoTypeRegister(this->engine); + SQAIEngineListMaxSpeedRegister(this->engine); + SQAIEngineListPriceRegister(this->engine); + SQAIEngineListRegister(this->engine); + SQAIEngineListReliabilityRegister(this->engine); SQAIEngineRegister(this->engine); SQAIEventControllerRegister(this->engine); SQAIEventRegister(this->engine);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ai/api/ai_enginelist.cpp Fri Oct 19 14:03:27 2007 +0000 @@ -0,0 +1,10 @@ +#include "ai_enginelist.hpp" +#include "../../engine.h" + +AIEngineList::AIEngineList(AIVehicle::VehicleType type) +{ + EngineID e; + FOR_ALL_ENGINEIDS_OF_TYPE(e, type) { + this->AddItem(e); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ai/api/ai_enginelist.hpp Fri Oct 19 14:03:27 2007 +0000 @@ -0,0 +1,27 @@ +/* $Id$ */ + +/** @file ai_enginelist.hpp list all the engines */ + +#ifndef AI_ENGINELIST_HPP +#define AI_ENGINELIST_HPP + +#include "ai_abstractlist.hpp" +#include "ai_vehicle.hpp" + +/** + * Class that creates a list of current industries. + */ +class AIEngineList : public AIAbstractList { +public: + /** + * The name of the class, needed by several sub-processes. + */ + static const char *GetClassName() { return "AIEngineList"; } + + /** + * The constructor to make a list of engines. + */ + AIEngineList(AIVehicle::VehicleType type); +}; + +#endif /* AI_ENGINELIST_HPP */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ai/api/ai_enginelist.hpp.sq Fri Oct 19 14:03:27 2007 +0000 @@ -0,0 +1,20 @@ +#include "ai_enginelist.hpp" + +namespace SQConvert { + /* Allow AIEngineList to be used as Squirrel parameter */ + template <> AIEngineList *GetParam(ForceType<AIEngineList *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngineList *)instance; } + template <> AIEngineList &GetParam(ForceType<AIEngineList &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngineList *)instance; } + template <> const AIEngineList *GetParam(ForceType<const AIEngineList *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngineList *)instance; } + template <> const AIEngineList &GetParam(ForceType<const AIEngineList &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngineList *)instance; } + template <> int Return<AIEngineList *>(HSQUIRRELVM vm, AIEngineList *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AIEngineList", res, NULL, DefSQDestructorCallback<AIEngineList>); return 1; } +}; // namespace SQConvert + +void SQAIEngineListRegister(Squirrel *engine) { + DefSQClass <AIEngineList> SQAIEngineList("AIEngineList"); + SQAIEngineList.PreRegister(engine, "AIAbstractList"); + SQAIEngineList.AddConstructor<void (AIEngineList::*)(AIVehicle::VehicleType type), 2>(engine, "xi"); + + SQAIEngineList.DefSQStaticMethod(engine, &AIEngineList::GetClassName, "GetClassName", 1, "x"); + + SQAIEngineList.PostRegister(engine); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ai/api/ai_enginelist_valuator.cpp Fri Oct 19 14:03:27 2007 +0000 @@ -0,0 +1,27 @@ +#include "ai_enginelist_valuator.hpp" +#include "ai_engine.hpp" + +int32 AIEngineListCargoType::Valuate(int32 engine) const +{ + return AIEngine::GetCargoType(engine); +} + +int32 AIEngineListCapacity::Valuate(int32 engine) const +{ + return AIEngine::GetCapacity(engine); +} + +int32 AIEngineListReliability::Valuate(int32 engine) const +{ + return AIEngine::GetReliability(engine); +} + +int32 AIEngineListMaxSpeed::Valuate(int32 engine) const +{ + return AIEngine::GetMaxSpeed(engine); +} + +int32 AIEngineListPrice::Valuate(int32 engine) const +{ + return AIEngine::GetPrice(engine); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ai/api/ai_enginelist_valuator.hpp Fri Oct 19 14:03:27 2007 +0000 @@ -0,0 +1,90 @@ +/* $Id$ */ + +/** @file ai_enginelist_valuator.hpp all the valuators for enginelist */ + +#ifndef AI_ENGINELIST_VALUATOR_HPP +#define AI_ENGINELIST_VALUATOR_HPP + +#include "ai_abstractlist.hpp" + +/** + * Get the cargo-type for entries in an AIEngineList instance. + * @note resulting items are of the type CargoID + * @note the input items are of the type EngineID + */ +class AIEngineListCargoType : public AIAbstractList::Valuator { +public: + /** + * The name of the class, needed by several sub-processes. + */ + static const char *GetClassName() { return "AIEngineListCargoType"; } + +private: + int32 Valuate(int32 engine) const; +}; + +/** + * Get the capacity for entries in an AIEngineList instance. + * @note resulting items are of the type int32 + * @note the input items are of the type EngineID + */ +class AIEngineListCapacity : public AIAbstractList::Valuator { +public: + /** + * The name of the class, needed by several sub-processes. + */ + static const char *GetClassName() { return "AIEngineListCapacity"; } + +private: + int32 Valuate(int32 engine) const; +}; + +/** + * Get the reliability for entries in an AIEngineList instance. + * @note resulting items are of the type int32 + * @note the input items are of the type EngineID + */ +class AIEngineListReliability : public AIAbstractList::Valuator { +public: + /** + * The name of the class, needed by several sub-processes. + */ + static const char *GetClassName() { return "AIEngineListReliability"; } + +private: + int32 Valuate(int32 engine) const; +}; + +/** + * Get the max speed for entries in an AIEngineList instance. + * @note resulting items are of the type int32 + * @note the input items are of the type EngineID + */ +class AIEngineListMaxSpeed : public AIAbstractList::Valuator { +public: + /** + * The name of the class, needed by several sub-processes. + */ + static const char *GetClassName() { return "AIEngineListMaxSpeed"; } + +private: + int32 Valuate(int32 engine) const; +}; + +/** + * Get the price for entries in an AIEngineList instance. + * @note resulting items are of the type int32 + * @note the input items are of the type EngineID + */ +class AIEngineListPrice : public AIAbstractList::Valuator { +public: + /** + * The name of the class, needed by several sub-processes. + */ + static const char *GetClassName() { return "AIEngineListPrice"; } + +private: + int32 Valuate(int32 engine) const; +}; + +#endif /* AI_ENGINELIST_VALUATOR_HPP */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ai/api/ai_enginelist_valuator.hpp.sq Fri Oct 19 14:03:27 2007 +0000 @@ -0,0 +1,96 @@ +#include "ai_enginelist_valuator.hpp" + +namespace SQConvert { + /* Allow AIEngineListCargoType to be used as Squirrel parameter */ + template <> AIEngineListCargoType *GetParam(ForceType<AIEngineListCargoType *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngineListCargoType *)instance; } + template <> AIEngineListCargoType &GetParam(ForceType<AIEngineListCargoType &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngineListCargoType *)instance; } + template <> const AIEngineListCargoType *GetParam(ForceType<const AIEngineListCargoType *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngineListCargoType *)instance; } + template <> const AIEngineListCargoType &GetParam(ForceType<const AIEngineListCargoType &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngineListCargoType *)instance; } + template <> int Return<AIEngineListCargoType *>(HSQUIRRELVM vm, AIEngineListCargoType *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AIEngineListCargoType", res, NULL, DefSQDestructorCallback<AIEngineListCargoType>); return 1; } +}; // namespace SQConvert + +void SQAIEngineListCargoTypeRegister(Squirrel *engine) { + DefSQClass <AIEngineListCargoType> SQAIEngineListCargoType("AIEngineListCargoType"); + SQAIEngineListCargoType.PreRegister(engine); + SQAIEngineListCargoType.AddConstructor<void (AIEngineListCargoType::*)(), 1>(engine, "x"); + + SQAIEngineListCargoType.DefSQStaticMethod(engine, &AIEngineListCargoType::GetClassName, "GetClassName", 1, "x"); + + SQAIEngineListCargoType.PostRegister(engine); +} + +namespace SQConvert { + /* Allow AIEngineListCapacity to be used as Squirrel parameter */ + template <> AIEngineListCapacity *GetParam(ForceType<AIEngineListCapacity *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngineListCapacity *)instance; } + template <> AIEngineListCapacity &GetParam(ForceType<AIEngineListCapacity &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngineListCapacity *)instance; } + template <> const AIEngineListCapacity *GetParam(ForceType<const AIEngineListCapacity *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngineListCapacity *)instance; } + template <> const AIEngineListCapacity &GetParam(ForceType<const AIEngineListCapacity &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngineListCapacity *)instance; } + template <> int Return<AIEngineListCapacity *>(HSQUIRRELVM vm, AIEngineListCapacity *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AIEngineListCapacity", res, NULL, DefSQDestructorCallback<AIEngineListCapacity>); return 1; } +}; // namespace SQConvert + +void SQAIEngineListCapacityRegister(Squirrel *engine) { + DefSQClass <AIEngineListCapacity> SQAIEngineListCapacity("AIEngineListCapacity"); + SQAIEngineListCapacity.PreRegister(engine); + SQAIEngineListCapacity.AddConstructor<void (AIEngineListCapacity::*)(), 1>(engine, "x"); + + SQAIEngineListCapacity.DefSQStaticMethod(engine, &AIEngineListCapacity::GetClassName, "GetClassName", 1, "x"); + + SQAIEngineListCapacity.PostRegister(engine); +} + +namespace SQConvert { + /* Allow AIEngineListReliability to be used as Squirrel parameter */ + template <> AIEngineListReliability *GetParam(ForceType<AIEngineListReliability *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngineListReliability *)instance; } + template <> AIEngineListReliability &GetParam(ForceType<AIEngineListReliability &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngineListReliability *)instance; } + template <> const AIEngineListReliability *GetParam(ForceType<const AIEngineListReliability *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngineListReliability *)instance; } + template <> const AIEngineListReliability &GetParam(ForceType<const AIEngineListReliability &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngineListReliability *)instance; } + template <> int Return<AIEngineListReliability *>(HSQUIRRELVM vm, AIEngineListReliability *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AIEngineListReliability", res, NULL, DefSQDestructorCallback<AIEngineListReliability>); return 1; } +}; // namespace SQConvert + +void SQAIEngineListReliabilityRegister(Squirrel *engine) { + DefSQClass <AIEngineListReliability> SQAIEngineListReliability("AIEngineListReliability"); + SQAIEngineListReliability.PreRegister(engine); + SQAIEngineListReliability.AddConstructor<void (AIEngineListReliability::*)(), 1>(engine, "x"); + + SQAIEngineListReliability.DefSQStaticMethod(engine, &AIEngineListReliability::GetClassName, "GetClassName", 1, "x"); + + SQAIEngineListReliability.PostRegister(engine); +} + +namespace SQConvert { + /* Allow AIEngineListMaxSpeed to be used as Squirrel parameter */ + template <> AIEngineListMaxSpeed *GetParam(ForceType<AIEngineListMaxSpeed *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngineListMaxSpeed *)instance; } + template <> AIEngineListMaxSpeed &GetParam(ForceType<AIEngineListMaxSpeed &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngineListMaxSpeed *)instance; } + template <> const AIEngineListMaxSpeed *GetParam(ForceType<const AIEngineListMaxSpeed *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngineListMaxSpeed *)instance; } + template <> const AIEngineListMaxSpeed &GetParam(ForceType<const AIEngineListMaxSpeed &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngineListMaxSpeed *)instance; } + template <> int Return<AIEngineListMaxSpeed *>(HSQUIRRELVM vm, AIEngineListMaxSpeed *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AIEngineListMaxSpeed", res, NULL, DefSQDestructorCallback<AIEngineListMaxSpeed>); return 1; } +}; // namespace SQConvert + +void SQAIEngineListMaxSpeedRegister(Squirrel *engine) { + DefSQClass <AIEngineListMaxSpeed> SQAIEngineListMaxSpeed("AIEngineListMaxSpeed"); + SQAIEngineListMaxSpeed.PreRegister(engine); + SQAIEngineListMaxSpeed.AddConstructor<void (AIEngineListMaxSpeed::*)(), 1>(engine, "x"); + + SQAIEngineListMaxSpeed.DefSQStaticMethod(engine, &AIEngineListMaxSpeed::GetClassName, "GetClassName", 1, "x"); + + SQAIEngineListMaxSpeed.PostRegister(engine); +} + +namespace SQConvert { + /* Allow AIEngineListPrice to be used as Squirrel parameter */ + template <> AIEngineListPrice *GetParam(ForceType<AIEngineListPrice *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngineListPrice *)instance; } + template <> AIEngineListPrice &GetParam(ForceType<AIEngineListPrice &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngineListPrice *)instance; } + template <> const AIEngineListPrice *GetParam(ForceType<const AIEngineListPrice *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AIEngineListPrice *)instance; } + template <> const AIEngineListPrice &GetParam(ForceType<const AIEngineListPrice &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AIEngineListPrice *)instance; } + template <> int Return<AIEngineListPrice *>(HSQUIRRELVM vm, AIEngineListPrice *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AIEngineListPrice", res, NULL, DefSQDestructorCallback<AIEngineListPrice>); return 1; } +}; // namespace SQConvert + +void SQAIEngineListPriceRegister(Squirrel *engine) { + DefSQClass <AIEngineListPrice> SQAIEngineListPrice("AIEngineListPrice"); + SQAIEngineListPrice.PreRegister(engine); + SQAIEngineListPrice.AddConstructor<void (AIEngineListPrice::*)(), 1>(engine, "x"); + + SQAIEngineListPrice.DefSQStaticMethod(engine, &AIEngineListPrice::GetClassName, "GetClassName", 1, "x"); + + SQAIEngineListPrice.PostRegister(engine); +}