unmovable_map.h
changeset 3427 3a512f7b7f6a
parent 3388 e94795a55f13
child 3705 3232570a91b7
equal deleted inserted replaced
3426:451a6367552d 3427:3a512f7b7f6a
     1 /* $Id$ */
     1 /* $Id$ */
       
     2 
       
     3 enum {
       
     4 	HQ_NUM_TILE = 4,
       
     5 	HQ_NUM_SIZE = 5
       
     6 };
     2 
     7 
     3 typedef enum UnmovableType {
     8 typedef enum UnmovableType {
     4 	UNMOVABLE_TRANSMITTER = 0,
     9 	UNMOVABLE_TRANSMITTER = 0,
     5 	UNMOVABLE_LIGHTHOUSE  = 1,
    10 	UNMOVABLE_LIGHTHOUSE  = 1,
     6 	UNMOVABLE_STATUE      = 2,
    11 	UNMOVABLE_STATUE      = 2,
     7 	UNMOVABLE_OWNED_LAND  = 3,
    12 	UNMOVABLE_OWNED_LAND  = 3,
     8 	UNMOVABLE_HQ_NORTH    = 0x80,
    13 	UNMOVABLE_HQ_NORTH    = 0x80,
     9 	UNMOVABLE_HQ_WEST     = 0x81,
    14 	UNMOVABLE_HQ_WEST     = 0x81,
    10 	UNMOVABLE_HQ_EAST     = 0x82,
    15 	UNMOVABLE_HQ_EAST     = 0x82,
    11 	UNMOVABLE_HQ_SOUTH    = 0x83,
    16 	UNMOVABLE_HQ_SOUTH    = 0x83,
       
    17 
       
    18 	UNMOVABLE_HQ_END      = UNMOVABLE_HQ_NORTH + HQ_NUM_SIZE * HQ_NUM_TILE
    12 } UnmovableType;
    19 } UnmovableType;
       
    20 
    13 
    21 
    14 
    22 
    15 static inline UnmovableType GetUnmovableType(TileIndex t)
    23 static inline UnmovableType GetUnmovableType(TileIndex t)
    16 {
    24 {
    17 	assert(IsTileType(t, MP_UNMOVABLE));
    25 	assert(IsTileType(t, MP_UNMOVABLE));
    34 }
    42 }
    35 
    43 
    36 static inline bool IsOwnedLandTile(TileIndex t)
    44 static inline bool IsOwnedLandTile(TileIndex t)
    37 {
    45 {
    38 	return IsTileType(t, MP_UNMOVABLE) && IsOwnedLand(t);
    46 	return IsTileType(t, MP_UNMOVABLE) && IsOwnedLand(t);
       
    47 }
       
    48 
       
    49 static inline bool IsCompanyHQ(TileIndex t)
       
    50 {
       
    51 	return IS_INT_INSIDE(GetUnmovableType(t), UNMOVABLE_HQ_NORTH, UNMOVABLE_HQ_END);
       
    52 }
       
    53 
       
    54 static inline byte GetCompanyHQSize(TileIndex t)
       
    55 {
       
    56 	assert(IsTileType(t, MP_UNMOVABLE) && IsCompanyHQ(t));
       
    57 	return GB(_m[t].m5, 2, 3);
       
    58 }
       
    59 
       
    60 static inline byte GetCompanyHQSection(TileIndex t)
       
    61 {
       
    62 	assert(IsTileType(t, MP_UNMOVABLE) && IsCompanyHQ(t));
       
    63 	return GB(_m[t].m5, 0, 5);
    39 }
    64 }
    40 
    65 
    41 
    66 
    42 static inline void EnlargeCompanyHQ(TileIndex t, byte size)
    67 static inline void EnlargeCompanyHQ(TileIndex t, byte size)
    43 {
    68 {