# HG changeset patch # User rubidium # Date 1280782652 0 # Node ID b28d01b467f4c80cd4cceb872b938ba8f583c9b1 # Parent 0be6e9a4ca0b44f755ed81423b9a9e389a6bb773 (svn r20321) -Codechange: rename GetUnmovableSpec to UnmovableSpec::Get and add+use a ::GetByTile diff --git a/src/unmovable.h b/src/unmovable.h --- 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); }; diff --git a/src/unmovable_cmd.cpp b/src/unmovable_cmd.cpp --- 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); }