src/ai/api/ai_map.cpp
author rubidium
Sat, 14 Apr 2007 20:38:10 +0000
branchnoai
changeset 9594 5009a30f320a
parent 9502 5eb285182114
child 9655 e8e43f333832
permissions -rw-r--r--
(svn r9627) [NoAI] -Fix: let the squirrel export script export all needed (and a few more) types of references to structs and classes.
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
9430
9e0a193b2bec (svn r9234) [NoAI] -Codechange: move away from the 'much' subdirectory approach for the API implementation.
rubidium
parents: 9427
diff changeset
     3
/** @file ai_map.cpp handles the query-related of the AIMap class */
9379
6e89b780c2c9 (svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff changeset
     4
9430
9e0a193b2bec (svn r9234) [NoAI] -Codechange: move away from the 'much' subdirectory approach for the API implementation.
rubidium
parents: 9427
diff changeset
     5
#include "ai_map.hpp"
9489
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
     6
#include "../../command.h"
9379
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
bool AIMap::IsValidTile(TileIndex t)
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
	return t < this->GetMapSize();
6e89b780c2c9 (svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff changeset
    11
}
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
TileIndex AIMap::GetMapSize()
6e89b780c2c9 (svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff changeset
    14
{
6e89b780c2c9 (svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff changeset
    15
	return ::MapSize();
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
6e89b780c2c9 (svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff changeset
    18
uint32 AIMap::GetMapSizeX()
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
	return ::MapSizeX();
6e89b780c2c9 (svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff changeset
    21
}
6e89b780c2c9 (svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff changeset
    22
6e89b780c2c9 (svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff changeset
    23
uint32 AIMap::GetMapSizeY()
6e89b780c2c9 (svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff changeset
    24
{
6e89b780c2c9 (svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff changeset
    25
	return ::MapSizeY();
6e89b780c2c9 (svn r9168) [NoAI] -Add: AI wrapper functions for some map related queries.
rubidium
parents:
diff changeset
    26
}
9430
9e0a193b2bec (svn r9234) [NoAI] -Codechange: move away from the 'much' subdirectory approach for the API implementation.
rubidium
parents: 9427
diff changeset
    27
9e0a193b2bec (svn r9234) [NoAI] -Codechange: move away from the 'much' subdirectory approach for the API implementation.
rubidium
parents: 9427
diff changeset
    28
uint32 AIMap::GetTileX(TileIndex t)
9e0a193b2bec (svn r9234) [NoAI] -Codechange: move away from the 'much' subdirectory approach for the API implementation.
rubidium
parents: 9427
diff changeset
    29
{
9e0a193b2bec (svn r9234) [NoAI] -Codechange: move away from the 'much' subdirectory approach for the API implementation.
rubidium
parents: 9427
diff changeset
    30
	return ::TileX(t);
9e0a193b2bec (svn r9234) [NoAI] -Codechange: move away from the 'much' subdirectory approach for the API implementation.
rubidium
parents: 9427
diff changeset
    31
}
9e0a193b2bec (svn r9234) [NoAI] -Codechange: move away from the 'much' subdirectory approach for the API implementation.
rubidium
parents: 9427
diff changeset
    32
9e0a193b2bec (svn r9234) [NoAI] -Codechange: move away from the 'much' subdirectory approach for the API implementation.
rubidium
parents: 9427
diff changeset
    33
uint32 AIMap::GetTileY(TileIndex t)
9e0a193b2bec (svn r9234) [NoAI] -Codechange: move away from the 'much' subdirectory approach for the API implementation.
rubidium
parents: 9427
diff changeset
    34
{
9e0a193b2bec (svn r9234) [NoAI] -Codechange: move away from the 'much' subdirectory approach for the API implementation.
rubidium
parents: 9427
diff changeset
    35
	return ::TileY(t);
9e0a193b2bec (svn r9234) [NoAI] -Codechange: move away from the 'much' subdirectory approach for the API implementation.
rubidium
parents: 9427
diff changeset
    36
}
9489
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    37
9502
5eb285182114 (svn r9379) [NoAI] -Add: function to get the TileIndex from an (X, Y) coordinate.
rubidium
parents: 9489
diff changeset
    38
TileIndex AIMap::GetTileIndex(uint32 x, uint32 y)
5eb285182114 (svn r9379) [NoAI] -Add: function to get the TileIndex from an (X, Y) coordinate.
rubidium
parents: 9489
diff changeset
    39
{
5eb285182114 (svn r9379) [NoAI] -Add: function to get the TileIndex from an (X, Y) coordinate.
rubidium
parents: 9489
diff changeset
    40
	return ::TileXY(x, y);
5eb285182114 (svn r9379) [NoAI] -Add: function to get the TileIndex from an (X, Y) coordinate.
rubidium
parents: 9489
diff changeset
    41
}
5eb285182114 (svn r9379) [NoAI] -Add: function to get the TileIndex from an (X, Y) coordinate.
rubidium
parents: 9489
diff changeset
    42
9489
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    43
uint32 AIMap::DistanceManhattan(TileIndex t1, TileIndex t2)
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    44
{
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    45
	return ::DistanceManhattan(t1, t2);
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    46
}
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    47
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    48
uint32 AIMap::DistanceMax(TileIndex t1, TileIndex t2)
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    49
{
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    50
	return ::DistanceMax(t1, t2);
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    51
}
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    52
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    53
uint32 AIMap::DistanceSquare(TileIndex t1, TileIndex t2)
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    54
{
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    55
	return ::DistanceSquare(t1, t2);
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    56
}
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    57
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    58
uint32 AIMap::DistanceFromEdge(TileIndex t)
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    59
{
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    60
	return ::DistanceFromEdge(t);
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    61
}
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    62
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    63
bool AIMap::DemolishTile(TileIndex t)
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    64
{
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    65
	return this->DoCommand(t, 0, 0, CMD_LANDSCAPE_CLEAR);
d7ee0a65ead9 (svn r9359) [NoAI] -Add: function to determine distance and clear tiles.
rubidium
parents: 9430
diff changeset
    66
}