unmovable_map.h
changeset 3310 7339b2b1e957
child 3369 00c2ca209a89
equal deleted inserted replaced
3309:dc08a15ad54e 3310:7339b2b1e957
       
     1 /* $Id$ */
       
     2 
       
     3 typedef enum UnmovableType {
       
     4 	UNMOVABLE_TRANSMITTER = 0,
       
     5 	UNMOVABLE_LIGHTHOUSE  = 1,
       
     6 	UNMOVABLE_STATUE      = 2,
       
     7 	UNMOVABLE_OWNED_LAND  = 3
       
     8 } UnmovableType;
       
     9 
       
    10 
       
    11 static inline UnmovableType GetUnmovableType(TileIndex t)
       
    12 {
       
    13 	return _m[t].m5;
       
    14 }
       
    15 
       
    16 
       
    17 static inline bool IsTransmitterTile(TileIndex t)
       
    18 {
       
    19 	return
       
    20 		IsTileType(t, MP_UNMOVABLE) &&
       
    21 		GetUnmovableType(t) == UNMOVABLE_TRANSMITTER;
       
    22 }
       
    23 
       
    24 
       
    25 static inline bool IsOwnedLand(TileIndex t)
       
    26 {
       
    27 	return GetUnmovableType(t) == UNMOVABLE_OWNED_LAND;
       
    28 }
       
    29 
       
    30 static inline bool IsOwnedLandTile(TileIndex t)
       
    31 {
       
    32 	return IsTileType(t, MP_UNMOVABLE) && IsOwnedLand(t);
       
    33 }
       
    34 
       
    35 
       
    36 static inline void MakeUnmovable(TileIndex t, UnmovableType u, Owner o)
       
    37 {
       
    38 	SetTileType(t, MP_UNMOVABLE);
       
    39 	SetTileOwner(t, o);
       
    40 	_m[t].m2 = 0;
       
    41 	_m[t].m3 = 0;
       
    42 	_m[t].m4 = 0;
       
    43 	_m[t].m5 = u;
       
    44 }
       
    45 
       
    46 
       
    47 static inline void MakeTransmitter(TileIndex t)
       
    48 {
       
    49 	MakeUnmovable(t, UNMOVABLE_TRANSMITTER, OWNER_NONE);
       
    50 }
       
    51 
       
    52 static inline void MakeLighthouse(TileIndex t)
       
    53 {
       
    54 	MakeUnmovable(t, UNMOVABLE_LIGHTHOUSE, OWNER_NONE);
       
    55 }
       
    56 
       
    57 static inline void MakeStatue(TileIndex t, Owner o)
       
    58 {
       
    59 	MakeUnmovable(t, UNMOVABLE_STATUE, o);
       
    60 }
       
    61 
       
    62 static inline void MakeOwnedLand(TileIndex t, Owner o)
       
    63 {
       
    64 	MakeUnmovable(t, UNMOVABLE_OWNED_LAND, o);
       
    65 }