(svn r10629) [NoAI] -Fix: on returning a class instance which is NULL, do not make a wrapper SQ, but return a NULL pointer too
#include "ai_townlist_valuator.hpp"
namespace SQConvert {
/* Allow AITownListRandomize to be used as Squirrel parameter */
template <> AITownListRandomize *GetParam(ForceType<AITownListRandomize *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITownListRandomize *)instance; }
template <> AITownListRandomize &GetParam(ForceType<AITownListRandomize &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITownListRandomize *)instance; }
template <> const AITownListRandomize *GetParam(ForceType<const AITownListRandomize *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITownListRandomize *)instance; }
template <> const AITownListRandomize &GetParam(ForceType<const AITownListRandomize &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITownListRandomize *)instance; }
template <> int Return<AITownListRandomize *>(HSQUIRRELVM vm, AITownListRandomize *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AITownListRandomize", res, NULL, DefSQDestructorCallback<AITownListRandomize>); return 1; }
}; // namespace SQConvert
void SQAITownListRandomizeRegister(Squirrel *engine) {
DefSQClass <AITownListRandomize> SQAITownListRandomize("AITownListRandomize");
SQAITownListRandomize.PreRegister(engine);
SQAITownListRandomize.AddConstructor<void (AITownListRandomize::*)(), 1>(engine, "x");
SQAITownListRandomize.DefSQStaticMethod(engine, &AITownListRandomize::GetClassName, "GetClassName", 1, "x");
SQAITownListRandomize.PostRegister(engine);
}
namespace SQConvert {
/* Allow AITownListPopulation to be used as Squirrel parameter */
template <> AITownListPopulation *GetParam(ForceType<AITownListPopulation *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITownListPopulation *)instance; }
template <> AITownListPopulation &GetParam(ForceType<AITownListPopulation &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITownListPopulation *)instance; }
template <> const AITownListPopulation *GetParam(ForceType<const AITownListPopulation *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITownListPopulation *)instance; }
template <> const AITownListPopulation &GetParam(ForceType<const AITownListPopulation &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITownListPopulation *)instance; }
template <> int Return<AITownListPopulation *>(HSQUIRRELVM vm, AITownListPopulation *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AITownListPopulation", res, NULL, DefSQDestructorCallback<AITownListPopulation>); return 1; }
}; // namespace SQConvert
void SQAITownListPopulationRegister(Squirrel *engine) {
DefSQClass <AITownListPopulation> SQAITownListPopulation("AITownListPopulation");
SQAITownListPopulation.PreRegister(engine);
SQAITownListPopulation.AddConstructor<void (AITownListPopulation::*)(), 1>(engine, "x");
SQAITownListPopulation.DefSQStaticMethod(engine, &AITownListPopulation::GetClassName, "GetClassName", 1, "x");
SQAITownListPopulation.PostRegister(engine);
}
namespace SQConvert {
/* Allow AITownListLocation to be used as Squirrel parameter */
template <> AITownListLocation *GetParam(ForceType<AITownListLocation *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITownListLocation *)instance; }
template <> AITownListLocation &GetParam(ForceType<AITownListLocation &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITownListLocation *)instance; }
template <> const AITownListLocation *GetParam(ForceType<const AITownListLocation *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITownListLocation *)instance; }
template <> const AITownListLocation &GetParam(ForceType<const AITownListLocation &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITownListLocation *)instance; }
template <> int Return<AITownListLocation *>(HSQUIRRELVM vm, AITownListLocation *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AITownListLocation", res, NULL, DefSQDestructorCallback<AITownListLocation>); return 1; }
}; // namespace SQConvert
void SQAITownListLocationRegister(Squirrel *engine) {
DefSQClass <AITownListLocation> SQAITownListLocation("AITownListLocation");
SQAITownListLocation.PreRegister(engine);
SQAITownListLocation.AddConstructor<void (AITownListLocation::*)(), 1>(engine, "x");
SQAITownListLocation.DefSQStaticMethod(engine, &AITownListLocation::GetClassName, "GetClassName", 1, "x");
SQAITownListLocation.PostRegister(engine);
}
namespace SQConvert {
/* Allow AITownListDistanceManhattanToTile to be used as Squirrel parameter */
template <> AITownListDistanceManhattanToTile *GetParam(ForceType<AITownListDistanceManhattanToTile *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITownListDistanceManhattanToTile *)instance; }
template <> AITownListDistanceManhattanToTile &GetParam(ForceType<AITownListDistanceManhattanToTile &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITownListDistanceManhattanToTile *)instance; }
template <> const AITownListDistanceManhattanToTile *GetParam(ForceType<const AITownListDistanceManhattanToTile *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITownListDistanceManhattanToTile *)instance; }
template <> const AITownListDistanceManhattanToTile &GetParam(ForceType<const AITownListDistanceManhattanToTile &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITownListDistanceManhattanToTile *)instance; }
template <> int Return<AITownListDistanceManhattanToTile *>(HSQUIRRELVM vm, AITownListDistanceManhattanToTile *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AITownListDistanceManhattanToTile", res, NULL, DefSQDestructorCallback<AITownListDistanceManhattanToTile>); return 1; }
}; // namespace SQConvert
void SQAITownListDistanceManhattanToTileRegister(Squirrel *engine) {
DefSQClass <AITownListDistanceManhattanToTile> SQAITownListDistanceManhattanToTile("AITownListDistanceManhattanToTile");
SQAITownListDistanceManhattanToTile.PreRegister(engine);
SQAITownListDistanceManhattanToTile.AddConstructor<void (AITownListDistanceManhattanToTile::*)(TileIndex tile), 2>(engine, "xi");
SQAITownListDistanceManhattanToTile.DefSQStaticMethod(engine, &AITownListDistanceManhattanToTile::GetClassName, "GetClassName", 1, "x");
SQAITownListDistanceManhattanToTile.PostRegister(engine);
}
namespace SQConvert {
/* Allow AITownListDistanceSquareToTile to be used as Squirrel parameter */
template <> AITownListDistanceSquareToTile *GetParam(ForceType<AITownListDistanceSquareToTile *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITownListDistanceSquareToTile *)instance; }
template <> AITownListDistanceSquareToTile &GetParam(ForceType<AITownListDistanceSquareToTile &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITownListDistanceSquareToTile *)instance; }
template <> const AITownListDistanceSquareToTile *GetParam(ForceType<const AITownListDistanceSquareToTile *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITownListDistanceSquareToTile *)instance; }
template <> const AITownListDistanceSquareToTile &GetParam(ForceType<const AITownListDistanceSquareToTile &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITownListDistanceSquareToTile *)instance; }
template <> int Return<AITownListDistanceSquareToTile *>(HSQUIRRELVM vm, AITownListDistanceSquareToTile *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AITownListDistanceSquareToTile", res, NULL, DefSQDestructorCallback<AITownListDistanceSquareToTile>); return 1; }
}; // namespace SQConvert
void SQAITownListDistanceSquareToTileRegister(Squirrel *engine) {
DefSQClass <AITownListDistanceSquareToTile> SQAITownListDistanceSquareToTile("AITownListDistanceSquareToTile");
SQAITownListDistanceSquareToTile.PreRegister(engine);
SQAITownListDistanceSquareToTile.AddConstructor<void (AITownListDistanceSquareToTile::*)(TileIndex tile), 2>(engine, "xi");
SQAITownListDistanceSquareToTile.DefSQStaticMethod(engine, &AITownListDistanceSquareToTile::GetClassName, "GetClassName", 1, "x");
SQAITownListDistanceSquareToTile.PostRegister(engine);
}