author | rubidium |
Sun, 03 Feb 2008 20:17:54 +0000 | |
branch | noai |
changeset 9724 | b39bc69bb2f2 |
parent 9708 | a63a756fd080 |
child 9729 | c264c78a3567 |
permissions | -rw-r--r-- |
9617
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
1 |
#include "ai_tile.hpp" |
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
2 |
|
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
3 |
namespace SQConvert { |
9708
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
4 |
/* Allow enums to be used as Squirrel parameters */ |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
5 |
template <> AITile::Slope GetParam(ForceType<AITile::Slope>, HSQUIRRELVM vm, int index) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (AITile::Slope)tmp; } |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
6 |
template <> int Return<AITile::Slope>(HSQUIRRELVM vm, AITile::Slope res) { sq_pushinteger(vm, (int32)res); return 1; } |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
7 |
|
9617
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
8 |
/* Allow AITile to be used as Squirrel parameter */ |
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
9 |
template <> AITile *GetParam(ForceType<AITile *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITile *)instance; } |
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
10 |
template <> AITile &GetParam(ForceType<AITile &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITile *)instance; } |
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
11 |
template <> const AITile *GetParam(ForceType<const AITile *>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (AITile *)instance; } |
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
12 |
template <> const AITile &GetParam(ForceType<const AITile &>, HSQUIRRELVM vm, int index) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(AITile *)instance; } |
9680
5ed7bbfd51c7
(svn r10629) [NoAI] -Fix: on returning a class instance which is NULL, do not make a wrapper SQ, but return a NULL pointer too
truelight
parents:
9679
diff
changeset
|
13 |
template <> int Return<AITile *>(HSQUIRRELVM vm, AITile *res) { if (res == NULL) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "AITile", res, NULL, DefSQDestructorCallback<AITile>); return 1; } |
9617
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
14 |
}; // namespace SQConvert |
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
15 |
|
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
16 |
void SQAITileRegister(Squirrel *engine) { |
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
17 |
DefSQClass <AITile> SQAITile("AITile"); |
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
18 |
SQAITile.PreRegister(engine); |
9635
9ee82e091af7
(svn r10526) [NoAI] -Fix: a class with params for the constructor lost his instance when called from SQ (templates can be really useful ;))
truelight
parents:
9617
diff
changeset
|
19 |
SQAITile.AddConstructor<void (AITile::*)(), 1>(engine, "x"); |
9617
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
20 |
|
9708
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
21 |
SQAITile.DefSQConst(engine, AITile::SLOPE_FLAT, "SLOPE_FLAT"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
22 |
SQAITile.DefSQConst(engine, AITile::SLOPE_W, "SLOPE_W"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
23 |
SQAITile.DefSQConst(engine, AITile::SLOPE_S, "SLOPE_S"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
24 |
SQAITile.DefSQConst(engine, AITile::SLOPE_E, "SLOPE_E"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
25 |
SQAITile.DefSQConst(engine, AITile::SLOPE_N, "SLOPE_N"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
26 |
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP, "SLOPE_STEEP"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
27 |
SQAITile.DefSQConst(engine, AITile::SLOPE_NW, "SLOPE_NW"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
28 |
SQAITile.DefSQConst(engine, AITile::SLOPE_SW, "SLOPE_SW"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
29 |
SQAITile.DefSQConst(engine, AITile::SLOPE_SE, "SLOPE_SE"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
30 |
SQAITile.DefSQConst(engine, AITile::SLOPE_NE, "SLOPE_NE"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
31 |
SQAITile.DefSQConst(engine, AITile::SLOPE_EW, "SLOPE_EW"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
32 |
SQAITile.DefSQConst(engine, AITile::SLOPE_NS, "SLOPE_NS"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
33 |
SQAITile.DefSQConst(engine, AITile::SLOPE_ELEVATED, "SLOPE_ELEVATED"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
34 |
SQAITile.DefSQConst(engine, AITile::SLOPE_NWS, "SLOPE_NWS"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
35 |
SQAITile.DefSQConst(engine, AITile::SLOPE_WSE, "SLOPE_WSE"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
36 |
SQAITile.DefSQConst(engine, AITile::SLOPE_SEN, "SLOPE_SEN"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
37 |
SQAITile.DefSQConst(engine, AITile::SLOPE_ENW, "SLOPE_ENW"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
38 |
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP_W, "SLOPE_STEEP_W"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
39 |
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP_S, "SLOPE_STEEP_S"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
40 |
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP_E, "SLOPE_STEEP_E"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
41 |
SQAITile.DefSQConst(engine, AITile::SLOPE_STEEP_N, "SLOPE_STEEP_N"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
42 |
|
9617
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
43 |
SQAITile.DefSQStaticMethod(engine, &AITile::GetClassName, "GetClassName", 1, "x"); |
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
44 |
SQAITile.DefSQStaticMethod(engine, &AITile::IsBuildable, "IsBuildable", 2, "xi"); |
9698
1d50fe99b7e9
(svn r10939) [NoAI] -Add: added AITileList valuator Water
truelight
parents:
9680
diff
changeset
|
45 |
SQAITile.DefSQStaticMethod(engine, &AITile::IsWater, "IsWater", 2, "xi"); |
9617
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
46 |
SQAITile.DefSQStaticMethod(engine, &AITile::GetSlope, "GetSlope", 2, "xi"); |
9700
e442ce398e83
(svn r10941) [NoAI] -Add: added AITile::GetHeight and AITileList valuator Height
truelight
parents:
9698
diff
changeset
|
47 |
SQAITile.DefSQStaticMethod(engine, &AITile::GetHeight, "GetHeight", 2, "xi"); |
9658
e7675771bca4
(svn r10565) [NoAI] -Add: allow giving width, height and radius to check for cargo acceptance
truelight
parents:
9635
diff
changeset
|
48 |
SQAITile.DefSQStaticMethod(engine, &AITile::GetCargoAcceptance, "GetCargoAcceptance", 6, "xiiiii"); |
9617
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
49 |
|
9708
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
50 |
SQAITile.DefSQMethod(engine, &AITile::RaiseTile, "RaiseTile", 3, "xii"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
51 |
SQAITile.DefSQMethod(engine, &AITile::LowerTile, "LowerTile", 3, "xii"); |
a63a756fd080
(svn r11274) [NoAI] -Add: added LowerTile and RaiseTile to 'terraform' the map a bit (dynaxo)
truelight
parents:
9700
diff
changeset
|
52 |
|
9617
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
53 |
SQAITile.PostRegister(engine); |
df9cedf12aab
(svn r9786) [NoAI] -Fix: NeighbourRoad -> NeighbourRoadCount
truelight
parents:
diff
changeset
|
54 |
} |