diff --git a/unmovable_cmd.c b/unmovable_cmd.c index 9a9643a75b..1b1de5876c 100644 --- a/unmovable_cmd.c +++ b/unmovable_cmd.c @@ -89,10 +89,8 @@ int32 CmdBuildCompanyHQ(int x, int y, uint32 flags, uint32 p1, uint32 p2) p->location_of_house = tile; - ModifyTile(tile + TileDiffXY(0, 0), MP_SETTYPE(MP_UNMOVABLE) | MP_MAPOWNER_CURRENT | MP_MAP5, 0x80); - ModifyTile(tile + TileDiffXY(0, 1), MP_SETTYPE(MP_UNMOVABLE) | MP_MAPOWNER_CURRENT | MP_MAP5, 0x81); - ModifyTile(tile + TileDiffXY(1, 0), MP_SETTYPE(MP_UNMOVABLE) | MP_MAPOWNER_CURRENT | MP_MAP5, 0x82); - ModifyTile(tile + TileDiffXY(1, 1), MP_SETTYPE(MP_UNMOVABLE) | MP_MAPOWNER_CURRENT | MP_MAP5, 0x83); + MakeCompanyHQ(tile, _current_player); + UpdatePlayerHouse(p, score); InvalidateWindow(WC_COMPANY, p->index); } diff --git a/unmovable_map.h b/unmovable_map.h index 5f4b2b3292..6eb1649569 100644 --- a/unmovable_map.h +++ b/unmovable_map.h @@ -4,7 +4,11 @@ typedef enum UnmovableType { UNMOVABLE_TRANSMITTER = 0, UNMOVABLE_LIGHTHOUSE = 1, UNMOVABLE_STATUE = 2, - UNMOVABLE_OWNED_LAND = 3 + UNMOVABLE_OWNED_LAND = 3, + UNMOVABLE_HQ_NORTH = 0x80, + UNMOVABLE_HQ_WEST = 0x81, + UNMOVABLE_HQ_EAST = 0x82, + UNMOVABLE_HQ_SOUTH = 0x83, } UnmovableType; @@ -65,3 +69,12 @@ static inline void MakeOwnedLand(TileIndex t, Owner o) { MakeUnmovable(t, UNMOVABLE_OWNED_LAND, o); } + +static inline void MakeCompanyHQ(TileIndex t, Owner o) +{ + MakeUnmovable(t + TileDiffXY(0, 0), UNMOVABLE_HQ_NORTH, o); + MakeUnmovable(t + TileDiffXY(0, 1), UNMOVABLE_HQ_WEST, o); + MakeUnmovable(t + TileDiffXY(1, 0), UNMOVABLE_HQ_EAST, o); + MakeUnmovable(t + TileDiffXY(1, 1), UNMOVABLE_HQ_SOUTH, o); +} +