changeset 15656:b28d01b467f4 draft

(svn r20321) -Codechange: rename GetUnmovableSpec to UnmovableSpec::Get and add+use a ::GetByTile
author rubidium <rubidium@openttd.org>
date Mon, 02 Aug 2010 20:57:32 +0000
parents 0be6e9a4ca0b
children ddfeab1a0a88
files src/unmovable.h src/unmovable_cmd.cpp
diffstat 2 files changed, 25 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/unmovable.h
+++ b/src/unmovable.h
@@ -34,6 +34,20 @@
 	 * @return The cost for clearing.
 	 */
 	Money GetClearCost() const { return (_price[PR_CLEAR_UNMOVABLE] * this->clear_cost_multiplier); }
+
+	/**
+	 * Get the specification associated with a specific UnmovableType.
+	 * @param index The unmovable type to fetch.
+	 * @return The specification.
+	 */
+	static const UnmovableSpec *Get(int index);
+
+	/**
+	 * Get the specification associated with a tile.
+	 * @param tile The tile to fetch the data for.
+	 * @return The specification.
+	 */
+	static const UnmovableSpec *GetByTile(TileIndex tile);
 };
 
 
--- a/src/unmovable_cmd.cpp
+++ b/src/unmovable_cmd.cpp
@@ -35,18 +35,15 @@
 #include "table/sprites.h"
 #include "table/unmovable_land.h"
 
-/**
- * Accessor for array _original_unmovable.
- * This will ensure at once : proper access and
- * not allowing modifications of it.
- * @param type of unmovable (which is the index in _original_unmovable)
- * @pre type < UNMOVABLE_MAX
- * @return a pointer to the corresponding unmovable spec
- */
-static inline const UnmovableSpec *GetUnmovableSpec(UnmovableType type)
+/* static */ const UnmovableSpec *UnmovableSpec::Get(int index)
 {
-	assert(type < UNMOVABLE_MAX);
-	return &_original_unmovable[type];
+	assert(index < UNMOVABLE_MAX);
+	return &_original_unmovable[index];
+}
+
+/* static */ const UnmovableSpec *UnmovableSpec::GetByTile(TileIndex tile)
+{
+	return UnmovableSpec::Get(GetUnmovableType(tile));
 }
 
 /**
@@ -162,7 +159,7 @@
 		MarkTileDirtyByTile(tile);
 	}
 
-	cost.AddCost(GetUnmovableSpec(UNMOVABLE_OWNED_LAND)->GetBuildCost());
+	cost.AddCost(UnmovableSpec::Get(UNMOVABLE_OWNED_LAND)->GetBuildCost());
 	return cost;
 }
 
@@ -189,7 +186,7 @@
 
 	if (flags & DC_EXEC) DoClearSquare(tile);
 
-	return CommandCost(EXPENSES_CONSTRUCTION, -GetUnmovableSpec(UNMOVABLE_OWNED_LAND)->GetClearCost());
+	return CommandCost(EXPENSES_CONSTRUCTION, -UnmovableSpec::Get(UNMOVABLE_OWNED_LAND)->GetClearCost());
 }
 
 static Foundation GetFoundation_Unmovable(TileIndex tile, Slope tileh);
@@ -337,7 +334,7 @@
 
 static void GetTileDesc_Unmovable(TileIndex tile, TileDesc *td)
 {
-	td->str = GetUnmovableSpec(GetUnmovableType(tile))->name;
+	td->str = UnmovableSpec::GetByTile(tile)->name;
 	td->owner[0] = GetTileOwner(tile);
 }