Changeset - r3319:82a855f31227
[Not reviewed]
master
0 3 1
tron - 18 years ago 2006-03-24 12:00:24
tron@openttd.org
(svn r4085) Add GetTown{Index,ByTile}() to get the town index resp. the town from a tile
4 files changed with 27 insertions and 10 deletions:
0 comments (0 inline, 0 general)
rail_cmd.c
Show inline comments
 
@@ -11,6 +11,7 @@
 
#include "table/strings.h"
 
#include "map.h"
 
#include "tile.h"
 
#include "town_map.h"
 
#include "tunnel_map.h"
 
#include "vehicle.h"
 
#include "viewport.h"
 
@@ -321,7 +322,7 @@ int32 CmdBuildSingleRail(int x, int y, u
 
						(track == TRACK_Y && GetRoadBits(tile) == ROAD_X)
 
					)) {
 
				if (flags & DC_EXEC) {
 
					MakeRoadCrossing(tile, GetTileOwner(tile), _current_player, (track == TRACK_X ? AXIS_Y : AXIS_X), p1, _m[tile].m2);
 
					MakeRoadCrossing(tile, GetTileOwner(tile), _current_player, (track == TRACK_X ? AXIS_Y : AXIS_X), p1, GetTownIndex(tile));
 
				}
 
				break;
 
			}
 
@@ -396,7 +397,7 @@ int32 CmdRemoveSingleRail(int x, int y, 
 
			}
 

	
 
			if (flags & DC_EXEC) {
 
				MakeRoadNormal(tile, GetCrossingRoadOwner(tile), GetCrossingRoadBits(tile), _m[tile].m2);
 
				MakeRoadNormal(tile, GetCrossingRoadOwner(tile), GetCrossingRoadBits(tile), GetTownIndex(tile));
 
			}
 
			break;
 
		}
road_cmd.c
Show inline comments
 
@@ -10,6 +10,7 @@
 
#include "functions.h"
 
#include "map.h"
 
#include "tile.h"
 
#include "town_map.h"
 
#include "vehicle.h"
 
#include "viewport.h"
 
#include "command.h"
 
@@ -109,7 +110,7 @@ int32 CmdRemoveRoad(int x, int y, uint32
 
		if (IsTileType(tile, MP_TUNNELBRIDGE)) { // index of town is not saved for bridge (no space)
 
			t = ClosestTownFromTile(tile, _patches.dist_local_authority);
 
		} else {
 
			t = GetTown(_m[tile].m2);
 
			t = GetTownByTile(tile);
 
		}
 
	} else {
 
		t = NULL;
 
@@ -1106,7 +1107,7 @@ static void ChangeTileOwner_Road(TileInd
 
				break;
 

	
 
			case ROAD_CROSSING:
 
				MakeRoadNormal(tile, GetCrossingRoadOwner(tile), GetCrossingRoadBits(tile), _m[tile].m2);
 
				MakeRoadNormal(tile, GetCrossingRoadOwner(tile), GetCrossingRoadBits(tile), GetTownIndex(tile));
 
				break;
 

	
 
			default:
town_cmd.c
Show inline comments
 
@@ -9,6 +9,7 @@
 
#include "table/sprites.h"
 
#include "map.h"
 
#include "tile.h"
 
#include "town_map.h"
 
#include "tunnel_map.h"
 
#include "viewport.h"
 
#include "town.h"
 
@@ -265,7 +266,7 @@ static void MakeSingleHouseBigger(TileIn
 
	_m[tile].m3 = _m[tile].m3 + 0x40;
 

	
 
	if ((_m[tile].m3 & 0xC0) == 0xC0) {
 
		ChangePopulation(GetTown(_m[tile].m2), _housetype_population[_m[tile].m4]);
 
		ChangePopulation(GetTownByTile(tile), _housetype_population[_m[tile].m4]);
 
	}
 
	MarkTileDirtyByTile(tile);
 
}
 
@@ -298,7 +299,7 @@ static void TileLoop_Town(TileIndex tile
 
		_m[tile].m5 = (_m[tile].m5 & 0x40) | 0x80;
 
	}
 

	
 
	t = GetTown(_m[tile].m2);
 
	t = GetTownByTile(tile);
 

	
 
	r = Random();
 

	
 
@@ -356,7 +357,7 @@ static int32 ClearTile_Town(TileIndex ti
 

	
 
	rating = _housetype_remove_ratingmod[house];
 
	_cleared_town_rating += rating;
 
	_cleared_town = t = GetTown(_m[tile].m2);
 
	_cleared_town = t = GetTownByTile(tile);
 

	
 
	if (_current_player < MAX_PLAYERS) {
 
		if (rating > t->ratings[_current_player] && !(flags & DC_NO_TOWN_RATING) && !_cheats.magic_bulldozer.value) {
 
@@ -743,7 +744,7 @@ static int GrowTownAtRoad(Town *t, TileI
 

	
 
		if (IsTileType(tile, MP_STREET)) {
 
			/* Don't allow building over roads of other cities */
 
			if (IsTileOwner(tile, OWNER_TOWN) && GetTown(_m[tile].m2) != t)
 
			if (IsTileOwner(tile, OWNER_TOWN) && GetTownByTile(tile) != t)
 
				_grow_town_result = -1;
 
			else if (_game_mode == GM_EDITOR) {
 
				/* If we are in the SE, and this road-piece has no town owner yet, it just found an
 
@@ -1483,7 +1484,7 @@ void DeleteTown(Town *t)
 
	for (tile = 0; tile < MapSize(); ++tile) {
 
		switch (GetTileType(tile)) {
 
			case MP_HOUSE:
 
				if (GetTown(_m[tile].m2) == t)
 
				if (GetTownByTile(tile) == t)
 
					DoCommandByTile(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR);
 
				break;
 

	
 
@@ -1830,7 +1831,7 @@ Town *ClosestTownFromTile(TileIndex tile
 
				IsTileType(tile, MP_STREET) &&
 
				(IsLevelCrossing(tile) ? GetCrossingRoadOwner(tile) : GetTileOwner(tile)) == OWNER_TOWN
 
			))
 
		return GetTown(_m[tile].m2);
 
		return GetTownByTile(tile);
 

	
 
	FOR_ALL_TOWNS(t) {
 
		if (t->xy != 0) {
town_map.h
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
#include "town.h"
 

	
 

	
 
static inline uint GetTownIndex(TileIndex t)
 
{
 
	return _m[t].m2;
 
}
 

	
 
static inline Town* GetTownByTile(TileIndex t)
 
{
 
	return GetTown(GetTownIndex(t));
 
}
0 comments (0 inline, 0 general)