1
0
Fork 0

Codechange: Use SQInteger for generic numbers in script_map

pull/10532/head
glx22 2023-03-04 15:51:14 +01:00 committed by Loïc Guilloux
parent a225fda9fe
commit ca67075397
3 changed files with 26 additions and 25 deletions

View File

@ -18,57 +18,57 @@
return ::IsValidTile(t);
}
/* static */ TileIndex ScriptMap::GetMapSize()
/* static */ SQInteger ScriptMap::GetMapSize()
{
return ::Map::Size();
}
/* static */ uint32 ScriptMap::GetMapSizeX()
/* static */ SQInteger ScriptMap::GetMapSizeX()
{
return ::Map::SizeX();
}
/* static */ uint32 ScriptMap::GetMapSizeY()
/* static */ SQInteger ScriptMap::GetMapSizeY()
{
return ::Map::SizeY();
}
/* static */ int32 ScriptMap::GetTileX(TileIndex t)
/* static */ SQInteger ScriptMap::GetTileX(TileIndex t)
{
if (!::IsValidTile(t)) return -1;
return ::TileX(t);
}
/* static */ int32 ScriptMap::GetTileY(TileIndex t)
/* static */ SQInteger ScriptMap::GetTileY(TileIndex t)
{
if (!::IsValidTile(t)) return -1;
return ::TileY(t);
}
/* static */ TileIndex ScriptMap::GetTileIndex(uint32 x, uint32 y)
/* static */ TileIndex ScriptMap::GetTileIndex(SQInteger x, SQInteger y)
{
return ::TileXY(x, y);
}
/* static */ int32 ScriptMap::DistanceManhattan(TileIndex t1, TileIndex t2)
/* static */ SQInteger ScriptMap::DistanceManhattan(TileIndex t1, TileIndex t2)
{
if (!::IsValidTile(t1) || !::IsValidTile(t2)) return -1;
return ::DistanceManhattan(t1, t2);
}
/* static */ int32 ScriptMap::DistanceMax(TileIndex t1, TileIndex t2)
/* static */ SQInteger ScriptMap::DistanceMax(TileIndex t1, TileIndex t2)
{
if (!::IsValidTile(t1) || !::IsValidTile(t2)) return -1;
return ::DistanceMax(t1, t2);
}
/* static */ int32 ScriptMap::DistanceSquare(TileIndex t1, TileIndex t2)
/* static */ SQInteger ScriptMap::DistanceSquare(TileIndex t1, TileIndex t2)
{
if (!::IsValidTile(t1) || !::IsValidTile(t2)) return -1;
return ::DistanceSquare(t1, t2);
}
/* static */ int32 ScriptMap::DistanceFromEdge(TileIndex t)
/* static */ SQInteger ScriptMap::DistanceFromEdge(TileIndex t)
{
if (!::IsValidTile(t)) return -1;
return ::DistanceFromEdge(t);

View File

@ -33,21 +33,21 @@ public:
* @return The size of the map in tiles.
* @post Return value is always positive.
*/
static TileIndex GetMapSize();
static SQInteger GetMapSize();
/**
* Gets the amount of tiles along the SW and NE border.
* @return The length along the SW and NE borders.
* @post Return value is always positive.
*/
static uint32 GetMapSizeX();
static SQInteger GetMapSizeX();
/**
* Gets the amount of tiles along the SE and NW border.
* @return The length along the SE and NW borders.
* @post Return value is always positive.
*/
static uint32 GetMapSizeY();
static SQInteger GetMapSizeY();
/**
* Gets the place along the SW/NE border (X-value).
@ -56,7 +56,7 @@ public:
* @return The X-value.
* @post Return value is always lower than GetMapSizeX().
*/
static int32 GetTileX(TileIndex tile);
static SQInteger GetTileX(TileIndex tile);
/**
* Gets the place along the SE/NW border (Y-value).
@ -65,17 +65,18 @@ public:
* @return The Y-value.
* @post Return value is always lower than GetMapSizeY().
*/
static int32 GetTileY(TileIndex tile);
static SQInteger GetTileY(TileIndex tile);
/**
* Gets the TileIndex given a x,y-coordinate.
* @param x The X coordinate.
* @param y The Y coordinate.
* @pre x < GetMapSizeX().
* @pre y < GetMapSizeY().
* @return The TileIndex for the given (x,y) coordinate.
* @post When 0 <= x && x < GetMapSizeX() && 0 <= y && y < GetMapSizeY(), then a valid tile index is returned.
* Otherwise it may be invalid, but could be used to calculated neighbouring tiles, e.g. tile + AIMap.GetTileIndex(-1, -1) gets
* the tile index of the tile to the north. But be aware that even when tile is a valid tile, the result might not be a valid tile.
*/
static TileIndex GetTileIndex(uint32 x, uint32 y);
static TileIndex GetTileIndex(SQInteger x, SQInteger y);
/**
* Calculates the Manhattan distance; the difference of
@ -86,7 +87,7 @@ public:
* @pre IsValidTile(tile_to).
* @return The Manhattan distance between the tiles.
*/
static int32 DistanceManhattan(TileIndex tile_from, TileIndex tile_to);
static SQInteger DistanceManhattan(TileIndex tile_from, TileIndex tile_to);
/**
* Calculates the distance between two tiles via 1D calculation.
@ -98,7 +99,7 @@ public:
* @pre IsValidTile(tile_to).
* @return The maximum distance between the tiles.
*/
static int32 DistanceMax(TileIndex tile_from, TileIndex tile_to);
static SQInteger DistanceMax(TileIndex tile_from, TileIndex tile_to);
/**
* The squared distance between the two tiles.
@ -110,7 +111,7 @@ public:
* @pre IsValidTile(tile_to).
* @return The squared distance between the tiles.
*/
static int32 DistanceSquare(TileIndex tile_from, TileIndex tile_to);
static SQInteger DistanceSquare(TileIndex tile_from, TileIndex tile_to);
/**
* Calculates the shortest distance to the edge.
@ -118,7 +119,7 @@ public:
* @pre IsValidTile(tile).
* @return The distances to the closest edge.
*/
static int32 DistanceFromEdge(TileIndex tile);
static SQInteger DistanceFromEdge(TileIndex tile);
};
#endif /* SCRIPT_MAP_HPP */

View File

@ -276,11 +276,11 @@
if (tile - from == 1) {
if (to - tile == 1) return (GetRailTracks(tile) & RAILTRACK_NE_SW) != 0;
if (to - tile == ScriptMap::GetMapSizeX()) return (GetRailTracks(tile) & RAILTRACK_NE_SE) != 0;
} else if (tile - from == ScriptMap::GetMapSizeX()) {
if (to - tile == (int)ScriptMap::GetMapSizeX()) return (GetRailTracks(tile) & RAILTRACK_NE_SE) != 0;
} else if (tile - from == (int)ScriptMap::GetMapSizeX()) {
if (tile - to == 1) return (GetRailTracks(tile) & RAILTRACK_NW_NE) != 0;
if (to - tile == 1) return (GetRailTracks(tile) & RAILTRACK_NW_SW) != 0;
if (to - tile == ScriptMap::GetMapSizeX()) return (GetRailTracks(tile) & RAILTRACK_NW_SE) != 0;
if (to - tile == (int)ScriptMap::GetMapSizeX()) return (GetRailTracks(tile) & RAILTRACK_NW_SE) != 0;
} else {
return (GetRailTracks(tile) & RAILTRACK_SW_SE) != 0;
}