author | truelight |
Thu, 15 Mar 2007 13:36:45 +0000 | |
branch | noai |
changeset 9404 | ef9e171617a3 |
parent 9397 | d8f8db9c1a2e |
child 9422 | 33efcc5f1b09 |
permissions | -rw-r--r-- |
9379
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
1 |
/* $Id$ */ |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
2 |
|
9388
032008c3f6e3
(svn r9180) [NoAI] -Fix: copy/pasting can be nasty: wrong @file headers
truelight
parents:
9387
diff
changeset
|
3 |
/** @file ai_map.hpp Everything to query map metadata */ |
9379
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
4 |
|
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
5 |
#ifndef AI_MAP_HPP |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
6 |
#define AI_MAP_HPP |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
7 |
|
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
8 |
#include "ai_object.hpp" |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
9 |
|
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
10 |
class AIMap : public AIObject { |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
11 |
public: |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
12 |
/** |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
13 |
* Checks whether the given tile is valid |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
14 |
* @param t the tile to check |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
15 |
* @return true is the tile it within the boundaries of the map |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
16 |
*/ |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
17 |
bool IsValidTile(TileIndex t); |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
18 |
|
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
19 |
/** |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
20 |
* Gets the number of tiles in the map |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
21 |
* @return the size of the map in tiles |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
22 |
* @post return > 0 |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
23 |
*/ |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
24 |
TileIndex GetMapSize(); |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
25 |
|
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
26 |
/** |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
27 |
* Gets the amount of tiles along the SW and NE border |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
28 |
* @return the length along the SW and NE borders |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
29 |
* @post return > 0 |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
30 |
*/ |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
31 |
uint32 GetMapSizeX(); |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
32 |
|
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
33 |
/** |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
34 |
* Gets the amount of tiles along the SE and NW border |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
35 |
* @return the length along the SE and NW borders |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
36 |
* @post return > 0 |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
37 |
*/ |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
38 |
uint32 GetMapSizeY(); |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
39 |
|
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
40 |
/** |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
41 |
* Gets the X (place along the SW/NE border) |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
42 |
* @param t the tile to get the X of |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
43 |
* @pre this->IsValidTile(t) |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
44 |
* @return the x-position |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
45 |
* @post return <= this->GetMapSizeX() |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
46 |
*/ |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
47 |
uint32 GetTileX(TileIndex t); |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
48 |
|
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
49 |
/** |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
50 |
* Gets the Y (place along the SE/NW border) |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
51 |
* @param t the tile to get the Y of |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
52 |
* @pre this->IsValidTile(t) |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
53 |
* @return the y-position |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
54 |
* @post return <= this->GetMapSizeY() |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
55 |
*/ |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
56 |
uint32 GetTileY(TileIndex t); |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
57 |
}; |
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
58 |
|
9387
4255a0a2d272
(svn r9179) [NoAI] -Add: added templates that makes adding classes to squirrel very easy
truelight
parents:
9379
diff
changeset
|
59 |
#ifdef SQUIRREL_CLASS |
9397
d8f8db9c1a2e
(svn r9189) [NoAI] -Cleanup: cleaned up DefSQClass a bit by using the SquirrelEngine
truelight
parents:
9388
diff
changeset
|
60 |
void SQAIMapRegister(SquirrelEngine *engine) { |
9387
4255a0a2d272
(svn r9179) [NoAI] -Add: added templates that makes adding classes to squirrel very easy
truelight
parents:
9379
diff
changeset
|
61 |
DefSQClass <AIMap> SQAIMap("AIMap"); |
9397
d8f8db9c1a2e
(svn r9189) [NoAI] -Cleanup: cleaned up DefSQClass a bit by using the SquirrelEngine
truelight
parents:
9388
diff
changeset
|
62 |
SQAIMap.PreRegister(engine); |
9404
ef9e171617a3
(svn r9201) [NoAI] -Change: make adding a default-constructor for DefSQClass optional
truelight
parents:
9397
diff
changeset
|
63 |
SQAIMap.AddConstructor(engine); |
9397
d8f8db9c1a2e
(svn r9189) [NoAI] -Cleanup: cleaned up DefSQClass a bit by using the SquirrelEngine
truelight
parents:
9388
diff
changeset
|
64 |
SQAIMap.DefSQFunction(engine, &AIMap::IsValidTile, "IsValidTile"); |
d8f8db9c1a2e
(svn r9189) [NoAI] -Cleanup: cleaned up DefSQClass a bit by using the SquirrelEngine
truelight
parents:
9388
diff
changeset
|
65 |
SQAIMap.DefSQFunction(engine, &AIMap::GetMapSize, "GetMapSize"); |
d8f8db9c1a2e
(svn r9189) [NoAI] -Cleanup: cleaned up DefSQClass a bit by using the SquirrelEngine
truelight
parents:
9388
diff
changeset
|
66 |
SQAIMap.DefSQFunction(engine, &AIMap::GetMapSizeX, "GetMapSizeX"); |
d8f8db9c1a2e
(svn r9189) [NoAI] -Cleanup: cleaned up DefSQClass a bit by using the SquirrelEngine
truelight
parents:
9388
diff
changeset
|
67 |
SQAIMap.DefSQFunction(engine, &AIMap::GetMapSizeY, "GetMapSizeY"); |
d8f8db9c1a2e
(svn r9189) [NoAI] -Cleanup: cleaned up DefSQClass a bit by using the SquirrelEngine
truelight
parents:
9388
diff
changeset
|
68 |
SQAIMap.DefSQFunction(engine, &AIMap::GetTileX, "GetTileX"); |
d8f8db9c1a2e
(svn r9189) [NoAI] -Cleanup: cleaned up DefSQClass a bit by using the SquirrelEngine
truelight
parents:
9388
diff
changeset
|
69 |
SQAIMap.DefSQFunction(engine, &AIMap::GetTileY, "GetTileY"); |
d8f8db9c1a2e
(svn r9189) [NoAI] -Cleanup: cleaned up DefSQClass a bit by using the SquirrelEngine
truelight
parents:
9388
diff
changeset
|
70 |
SQAIMap.PostRegister(engine); |
9387
4255a0a2d272
(svn r9179) [NoAI] -Add: added templates that makes adding classes to squirrel very easy
truelight
parents:
9379
diff
changeset
|
71 |
} |
4255a0a2d272
(svn r9179) [NoAI] -Add: added templates that makes adding classes to squirrel very easy
truelight
parents:
9379
diff
changeset
|
72 |
#endif /* SQUIRREL_CLASS */ |
4255a0a2d272
(svn r9179) [NoAI] -Add: added templates that makes adding classes to squirrel very easy
truelight
parents:
9379
diff
changeset
|
73 |
|
9379
6e89b780c2c9
(svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff
changeset
|
74 |
#endif /* AI_MAP_HPP */ |