changeset 9006:9bf1de259ada draft

(svn r12801) -Codechange: remove the dependency of function.h in town_map.h
author rubidium <rubidium@openttd.org>
date Sun, 20 Apr 2008 08:43:31 +0000
parents 5bb8efb6051a
children 92ce4f6f4660
files src/newgrf_house.cpp src/newgrf_station.cpp src/openttd.cpp src/rail_cmd.cpp src/road_cmd.cpp src/town_cmd.cpp src/town_map.h
diffstat 7 files changed, 29 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/newgrf_house.cpp
+++ b/src/newgrf_house.cpp
@@ -22,6 +22,7 @@
 #include "functions.h"
 #include "player_func.h"
 #include "animated_tile_func.h"
+#include "date_func.h"
 
 #include "table/strings.h"
 #include "table/sprites.h"
--- a/src/newgrf_station.cpp
+++ b/src/newgrf_station.cpp
@@ -23,6 +23,7 @@
 #include "date_func.h"
 #include "player_func.h"
 #include "animated_tile_func.h"
+#include "functions.h"
 
 #include "table/sprites.h"
 #include "table/strings.h"
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -59,6 +59,7 @@
 #include "vehicle_func.h"
 #include "cheat_func.h"
 #include "animated_tile_func.h"
+#include "functions.h"
 
 #include "newgrf.h"
 #include "newgrf_config.h"
--- a/src/rail_cmd.cpp
+++ b/src/rail_cmd.cpp
@@ -43,6 +43,7 @@
 #include "tunnelbridge.h"
 #include "station_map.h"
 #include "water_map.h"
+#include "functions.h"
 
 #include "table/sprites.h"
 #include "table/strings.h"
--- a/src/road_cmd.cpp
+++ b/src/road_cmd.cpp
@@ -36,6 +36,7 @@
 #include "road_func.h"
 #include "tunnelbridge.h"
 #include "cheat_func.h"
+#include "functions.h"
 
 #include "table/sprites.h"
 #include "table/strings.h"
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -45,6 +45,9 @@
 #include "economy_func.h"
 #include "station_func.h"
 #include "cheat_func.h"
+#include "functions.h"
+#include "animated_tile_func.h"
+#include "date_func.h"
 
 #include "table/strings.h"
 #include "table/sprites.h"
@@ -268,7 +271,10 @@
 	pos += (pos < dest) ? 1 : -1;
 	SetLiftPosition(tile, pos);
 
-	if (pos == dest) HaltLift(tile);
+	if (pos == dest) {
+		HaltLift(tile);
+		DeleteAnimatedTile(tile);
+	}
 
 	MarkTileDirtyByTile(tile);
 }
@@ -385,6 +391,7 @@
 		/* Now that construction is complete, we can add the population of the
 		 * building to the town. */
 		ChangePopulation(GetTownByTile(tile), GetHouseSpecs(GetHouseType(tile))->population);
+		SetHouseConstructionYear(tile, _cur_year);
 	}
 	MarkTileDirtyByTile(tile);
 }
@@ -1644,6 +1651,9 @@
 	assert(CmdSucceeded(cc));
 
 	MakeHouseTile(tile, tid, counter, stage, type, random_bits);
+	if (GetHouseSpecs(type)->building_flags & BUILDING_IS_ANIMATED) AddAnimatedTile(tile);
+
+	MarkTileDirtyByTile(tile);
 }
 
 
--- a/src/town_map.h
+++ b/src/town_map.h
@@ -6,10 +6,8 @@
 #define TOWN_MAP_H
 
 #include "town.h"
-#include "date_func.h"
+#include "date_type.h"
 #include "tile_map.h"
-#include "functions.h"
-#include "animated_tile_func.h"
 
 /**
  * Get the index of which town this house/street is attached to.
@@ -114,7 +112,6 @@
 static inline void HaltLift(TileIndex t)
 {
 	SB(_me[t].m7, 0, 4, 0);
-	DeleteAnimatedTile(t);
 }
 
 /**
@@ -207,9 +204,6 @@
 	_m[t].m5 = IsHouseCompleted(t) ? 0 : (stage << 3 | counter);
 	SetHouseAnimationFrame(t, 0);
 	_me[t].m7 = GetHouseSpecs(type)->processing_time;
-
-	if (GetHouseSpecs(type)->building_flags & BUILDING_IS_ANIMATED) AddAnimatedTile(t);
-	MarkTileDirtyByTile(t);
 }
 
 /**
@@ -267,11 +261,22 @@
 		/* House is now completed.
 		 * Store the year of construction as well, for newgrf house purpose */
 		SetHouseCompleted(t, true);
-		_m[t].m5 = Clamp(_cur_year - ORIGINAL_BASE_YEAR, 0, 0xFF);
 	}
 }
 
 /**
+ * Set the year that this house was constructed (between 1920 and 2175).
+ * @param t the tile of this house
+ * @param year the year to set
+ * @pre IsTileType(t, MP_HOUSE) && IsHouseCompleted(t)
+ */
+static inline void SetHouseConstructionYear(TileIndex t, Year year)
+{
+	assert(IsTileType(t, MP_HOUSE) && IsHouseCompleted(t));
+	_m[t].m5 = Clamp(year - ORIGINAL_BASE_YEAR, 0, 0xFF);
+}
+
+/**
  * Get the year that this house was constructed (between 1920 and 2175).
  * @param t the tile of this house
  * @pre IsTileType(t, MP_HOUSE)