unmovable_map.h
author tron
Sun, 26 Mar 2006 11:08:44 +0000
changeset 3333 41f8abe65d1e
parent 3310 7339b2b1e957
child 3369 00c2ca209a89
permissions -rw-r--r--
(svn r4111) Fix/Remove some stale comments
3310
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     1
/* $Id$ */
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     2
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     3
typedef enum UnmovableType {
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     4
	UNMOVABLE_TRANSMITTER = 0,
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     5
	UNMOVABLE_LIGHTHOUSE  = 1,
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     6
	UNMOVABLE_STATUE      = 2,
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     7
	UNMOVABLE_OWNED_LAND  = 3
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     8
} UnmovableType;
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
     9
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    10
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    11
static inline UnmovableType GetUnmovableType(TileIndex t)
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    12
{
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    13
	return _m[t].m5;
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    14
}
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    15
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    16
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    17
static inline bool IsTransmitterTile(TileIndex t)
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    18
{
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    19
	return
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    20
		IsTileType(t, MP_UNMOVABLE) &&
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    21
		GetUnmovableType(t) == UNMOVABLE_TRANSMITTER;
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    22
}
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    23
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    24
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    25
static inline bool IsOwnedLand(TileIndex t)
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    26
{
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    27
	return GetUnmovableType(t) == UNMOVABLE_OWNED_LAND;
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    28
}
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    29
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    30
static inline bool IsOwnedLandTile(TileIndex t)
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    31
{
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    32
	return IsTileType(t, MP_UNMOVABLE) && IsOwnedLand(t);
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    33
}
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    34
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    35
7339b2b1e957 (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)
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    37
{
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    38
	SetTileType(t, MP_UNMOVABLE);
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    39
	SetTileOwner(t, o);
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    40
	_m[t].m2 = 0;
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    41
	_m[t].m3 = 0;
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    42
	_m[t].m4 = 0;
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    43
	_m[t].m5 = u;
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    44
}
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    45
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    46
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    47
static inline void MakeTransmitter(TileIndex t)
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    48
{
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    49
	MakeUnmovable(t, UNMOVABLE_TRANSMITTER, OWNER_NONE);
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    50
}
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    51
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    52
static inline void MakeLighthouse(TileIndex t)
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    53
{
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    54
	MakeUnmovable(t, UNMOVABLE_LIGHTHOUSE, OWNER_NONE);
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    55
}
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    56
7339b2b1e957 (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)
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    58
{
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    59
	MakeUnmovable(t, UNMOVABLE_STATUE, o);
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    60
}
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    61
7339b2b1e957 (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)
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    63
{
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    64
	MakeUnmovable(t, UNMOVABLE_OWNED_LAND, o);
7339b2b1e957 (svn r4073) Add functions to make and test for (most) unmovable tiles
tron
parents:
diff changeset
    65
}