unmovable_map.h
author tron
Fri, 24 Mar 2006 08:00:45 +0000
changeset 3314 6aaeba4b92e8
parent 3310 a19f247b75b6
child 3369 cab209754317
permissions -rw-r--r--
(svn r4077) Add GetIndustry{Index,ByTile}() to get the industry index resp. the industry from a tile
3310
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     1
/* $Id$ */
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     2
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     3
typedef enum UnmovableType {
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     4
	UNMOVABLE_TRANSMITTER = 0,
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     5
	UNMOVABLE_LIGHTHOUSE  = 1,
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     6
	UNMOVABLE_STATUE      = 2,
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     7
	UNMOVABLE_OWNED_LAND  = 3
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     8
} UnmovableType;
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     9
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    10
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    11
static inline UnmovableType GetUnmovableType(TileIndex t)
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    12
{
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    13
	return _m[t].m5;
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    14
}
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    15
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    16
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    17
static inline bool IsTransmitterTile(TileIndex t)
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    18
{
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    19
	return
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    20
		IsTileType(t, MP_UNMOVABLE) &&
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    21
		GetUnmovableType(t) == UNMOVABLE_TRANSMITTER;
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    22
}
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    23
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    24
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    25
static inline bool IsOwnedLand(TileIndex t)
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    26
{
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    27
	return GetUnmovableType(t) == UNMOVABLE_OWNED_LAND;
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    28
}
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    29
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    30
static inline bool IsOwnedLandTile(TileIndex t)
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    31
{
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    32
	return IsTileType(t, MP_UNMOVABLE) && IsOwnedLand(t);
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    33
}
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    34
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    35
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    36
static inline void MakeUnmovable(TileIndex t, UnmovableType u, Owner o)
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    37
{
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    38
	SetTileType(t, MP_UNMOVABLE);
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    39
	SetTileOwner(t, o);
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    40
	_m[t].m2 = 0;
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    41
	_m[t].m3 = 0;
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    42
	_m[t].m4 = 0;
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    43
	_m[t].m5 = u;
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    44
}
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    45
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    46
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    47
static inline void MakeTransmitter(TileIndex t)
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    48
{
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    49
	MakeUnmovable(t, UNMOVABLE_TRANSMITTER, OWNER_NONE);
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    50
}
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    51
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    52
static inline void MakeLighthouse(TileIndex t)
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    53
{
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    54
	MakeUnmovable(t, UNMOVABLE_LIGHTHOUSE, OWNER_NONE);
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    55
}
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    56
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    57
static inline void MakeStatue(TileIndex t, Owner o)
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    58
{
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    59
	MakeUnmovable(t, UNMOVABLE_STATUE, o);
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    60
}
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    61
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    62
static inline void MakeOwnedLand(TileIndex t, Owner o)
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    63
{
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    64
	MakeUnmovable(t, UNMOVABLE_OWNED_LAND, o);
a19f247b75b6 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    65
}