summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--unmovable_cmd.c6
-rw-r--r--unmovable_map.h15
2 files changed, 16 insertions, 5 deletions
diff --git a/unmovable_cmd.c b/unmovable_cmd.c
index 9a9643a75..1b1de5876 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 5f4b2b329..6eb164956 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);
+}
+