(svn r4196) -Codechange: Add and make use of an accessor that modifies the size of the Company HQ
authorcelestar
Fri, 31 Mar 2006 09:09:26 +0000
changeset 3388 c802170b5dd4
parent 3387 5d14492dce35
child 3389 f26c7fc263a5
(svn r4196) -Codechange: Add and make use of an accessor that modifies the size of the Company HQ
unmovable_cmd.c
unmovable_map.h
--- a/unmovable_cmd.c	Fri Mar 31 09:08:02 2006 +0000
+++ b/unmovable_cmd.c	Fri Mar 31 09:09:26 2006 +0000
@@ -67,20 +67,13 @@
 	if (tile == 0)
 		return;
 
-	(val = 128, score < 170) ||
-	(val+= 4, score < 350) ||
-	(val+= 4, score < 520) ||
-	(val+= 4, score < 720) ||
-	(val+= 4, true);
+	(val = 0, score < 170) ||
+	(val++, score < 350) ||
+	(val++, score < 520) ||
+	(val++, score < 720) ||
+	(val++, true);
 
-/* house is already big enough */
-	if (val <= _m[tile].m5)
-		return;
-
-	_m[tile + TileDiffXY(0, 0)].m5 =   val;
-	_m[tile + TileDiffXY(0, 1)].m5 = ++val;
-	_m[tile + TileDiffXY(1, 0)].m5 = ++val;
-	_m[tile + TileDiffXY(1, 1)].m5 = ++val;
+	EnlargeCompanyHQ(tile, val);
 
 	MarkTileDirtyByTile(tile + TileDiffXY(0, 0));
 	MarkTileDirtyByTile(tile + TileDiffXY(0, 1));
--- a/unmovable_map.h	Fri Mar 31 09:08:02 2006 +0000
+++ b/unmovable_map.h	Fri Mar 31 09:09:26 2006 +0000
@@ -39,6 +39,17 @@
 }
 
 
+static inline void EnlargeCompanyHQ(TileIndex t, byte size)
+{
+	if (size <= _m[t].m5 - UNMOVABLE_HQ_NORTH) return;
+
+	_m[t + TileDiffXY(0, 0)].m5 = UNMOVABLE_HQ_NORTH + size * 4;
+	_m[t + TileDiffXY(0, 1)].m5 = UNMOVABLE_HQ_WEST  + size * 4;
+	_m[t + TileDiffXY(1, 0)].m5 = UNMOVABLE_HQ_EAST  + size * 4;
+	_m[t + TileDiffXY(1, 1)].m5 = UNMOVABLE_HQ_SOUTH + size * 4;
+}
+
+
 static inline void MakeUnmovable(TileIndex t, UnmovableType u, Owner o)
 {
 	SetTileType(t, MP_UNMOVABLE);