summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsmatz <smatz@openttd.org>2009-06-25 19:23:09 +0000
committersmatz <smatz@openttd.org>2009-06-25 19:23:09 +0000
commitc30a87758fca7b0203b36b886aaa360f383f9278 (patch)
tree335422881e40cf333948e202c7f474eda030ad43
parent103bff508bf4ddfc2018a1ee487742b5f6401568 (diff)
downloadopenttd-c30a87758fca7b0203b36b886aaa360f383f9278.tar.xz
(svn r16659) -Codechange: rename GetAcceptedCargo() to AddAcceptedCargo() and change its behaviour accordingly
-Codechange: remove dummy GetAcceptedCargo_*() handlers
-rw-r--r--src/clear_cmd.cpp7
-rw-r--r--src/dummy_land.cpp7
-rw-r--r--src/industry_cmd.cpp7
-rw-r--r--src/landscape.cpp6
-rw-r--r--src/misc_gui.cpp5
-rw-r--r--src/rail_cmd.cpp7
-rw-r--r--src/road_cmd.cpp7
-rw-r--r--src/station_cmd.cpp15
-rw-r--r--src/tile_cmd.h13
-rw-r--r--src/town_cmd.cpp14
-rw-r--r--src/tree_cmd.cpp7
-rw-r--r--src/tunnelbridge_cmd.cpp8
-rw-r--r--src/unmovable_cmd.cpp8
-rw-r--r--src/water_cmd.cpp7
14 files changed, 36 insertions, 82 deletions
diff --git a/src/clear_cmd.cpp b/src/clear_cmd.cpp
index af7440162..2a28dc95f 100644
--- a/src/clear_cmd.cpp
+++ b/src/clear_cmd.cpp
@@ -118,11 +118,6 @@ static Foundation GetFoundation_Clear(TileIndex tile, Slope tileh)
return FOUNDATION_NONE;
}
-static void GetAcceptedCargo_Clear(TileIndex tile, AcceptedCargo ac)
-{
- /* unused */
-}
-
static void AnimateTile_Clear(TileIndex tile)
{
/* unused */
@@ -363,7 +358,7 @@ extern const TileTypeProcs _tile_type_clear_procs = {
DrawTile_Clear, ///< draw_tile_proc
GetSlopeZ_Clear, ///< get_slope_z_proc
ClearTile_Clear, ///< clear_tile_proc
- GetAcceptedCargo_Clear, ///< get_accepted_cargo_proc
+ NULL, ///< get_accepted_cargo_proc
GetTileDesc_Clear, ///< get_tile_desc_proc
GetTileTrackStatus_Clear, ///< get_tile_track_status_proc
ClickTile_Clear, ///< click_tile_proc
diff --git a/src/dummy_land.cpp b/src/dummy_land.cpp
index 355b41dfc..837762da4 100644
--- a/src/dummy_land.cpp
+++ b/src/dummy_land.cpp
@@ -33,11 +33,6 @@ static CommandCost ClearTile_Dummy(TileIndex tile, DoCommandFlag flags)
}
-static void GetAcceptedCargo_Dummy(TileIndex tile, AcceptedCargo ac)
-{
- /* not used */
-}
-
static void GetTileDesc_Dummy(TileIndex tile, TileDesc *td)
{
td->str = STR_EMPTY;
@@ -79,7 +74,7 @@ extern const TileTypeProcs _tile_type_dummy_procs = {
DrawTile_Dummy, // draw_tile_proc
GetSlopeZ_Dummy, // get_slope_z_proc
ClearTile_Dummy, // clear_tile_proc
- GetAcceptedCargo_Dummy, // get_accepted_cargo_proc
+ NULL, // get_accepted_cargo_proc
GetTileDesc_Dummy, // get_tile_desc_proc
GetTileTrackStatus_Dummy, // get_tile_track_status_proc
ClickTile_Dummy, // click_tile_proc
diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp
index 0d93e8c23..c97215259 100644
--- a/src/industry_cmd.cpp
+++ b/src/industry_cmd.cpp
@@ -354,7 +354,7 @@ static Foundation GetFoundation_Industry(TileIndex tile, Slope tileh)
return FlatteningFoundation(tileh);
}
-static void GetAcceptedCargo_Industry(TileIndex tile, AcceptedCargo ac)
+static void AddAcceptedCargo_Industry(TileIndex tile, AcceptedCargo ac)
{
IndustryGfx gfx = GetIndustryGfx(tile);
const IndustryTileSpec *itspec = GetIndustryTileSpec(gfx);
@@ -385,8 +385,7 @@ static void GetAcceptedCargo_Industry(TileIndex tile, AcceptedCargo ac)
for (byte i = 0; i < lengthof(itspec->accepts_cargo); i++) {
CargoID a = accepts_cargo[i];
- /* Only set the value once. */
- if (a != CT_INVALID && ac[a] == 0) ac[a] = acceptance[i];
+ if (a != CT_INVALID) ac[a] += acceptance[i];
}
}
@@ -2385,7 +2384,7 @@ extern const TileTypeProcs _tile_type_industry_procs = {
DrawTile_Industry, // draw_tile_proc
GetSlopeZ_Industry, // get_slope_z_proc
ClearTile_Industry, // clear_tile_proc
- GetAcceptedCargo_Industry, // get_accepted_cargo_proc
+ AddAcceptedCargo_Industry, // add_accepted_cargo_proc
GetTileDesc_Industry, // get_tile_desc_proc
GetTileTrackStatus_Industry, // get_tile_track_status_proc
ClickTile_Industry, // click_tile_proc
diff --git a/src/landscape.cpp b/src/landscape.cpp
index 91372f456..854b0ba61 100644
--- a/src/landscape.cpp
+++ b/src/landscape.cpp
@@ -500,12 +500,6 @@ void ChangeTileOwner(TileIndex tile, Owner old_owner, Owner new_owner)
_tile_type_procs[GetTileType(tile)]->change_tile_owner_proc(tile, old_owner, new_owner);
}
-void GetAcceptedCargo(TileIndex tile, AcceptedCargo ac)
-{
- memset(ac, 0, sizeof(AcceptedCargo));
- _tile_type_procs[GetTileType(tile)]->get_accepted_cargo_proc(tile, ac);
-}
-
void AnimateTile(TileIndex tile)
{
_tile_type_procs[GetTileType(tile)]->animate_tile_proc(tile);
diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp
index 076e74231..86bc8409f 100644
--- a/src/misc_gui.cpp
+++ b/src/misc_gui.cpp
@@ -108,7 +108,6 @@ public:
/* Because build_date is not set yet in every TileDesc, we make sure it is empty */
TileDesc td;
- AcceptedCargo ac;
td.build_date = INVALID_DATE;
@@ -130,7 +129,9 @@ public:
td.grf = NULL;
- GetAcceptedCargo(tile, ac);
+ AcceptedCargo ac;
+ memset(ac, 0, sizeof(AcceptedCargo));
+ AddAcceptedCargo(tile, ac);
GetTileDesc(tile, &td);
uint line_nr = 0;
diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp
index b52a1c9a7..eef5bf46d 100644
--- a/src/rail_cmd.cpp
+++ b/src/rail_cmd.cpp
@@ -2074,11 +2074,6 @@ static Foundation GetFoundation_Track(TileIndex tile, Slope tileh)
return IsPlainRail(tile) ? GetRailFoundation(tileh, GetTrackBits(tile)) : FlatteningFoundation(tileh);
}
-static void GetAcceptedCargo_Track(TileIndex tile, AcceptedCargo ac)
-{
- /* not used */
-}
-
static void AnimateTile_Track(TileIndex tile)
{
/* not used */
@@ -2620,7 +2615,7 @@ extern const TileTypeProcs _tile_type_rail_procs = {
DrawTile_Track, // draw_tile_proc
GetSlopeZ_Track, // get_slope_z_proc
ClearTile_Track, // clear_tile_proc
- GetAcceptedCargo_Track, // get_accepted_cargo_proc
+ NULL, // get_accepted_cargo_proc
GetTileDesc_Track, // get_tile_desc_proc
GetTileTrackStatus_Track, // get_tile_track_status_proc
ClickTile_Track, // click_tile_proc
diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp
index 4a6d22b7e..e38404c87 100644
--- a/src/road_cmd.cpp
+++ b/src/road_cmd.cpp
@@ -1287,11 +1287,6 @@ static Foundation GetFoundation_Road(TileIndex tile, Slope tileh)
}
}
-static void GetAcceptedCargo_Road(TileIndex tile, AcceptedCargo ac)
-{
- /* not used */
-}
-
static void AnimateTile_Road(TileIndex tile)
{
if (IsLevelCrossing(tile)) MarkTileDirtyByTile(tile);
@@ -1637,7 +1632,7 @@ extern const TileTypeProcs _tile_type_road_procs = {
DrawTile_Road, // draw_tile_proc
GetSlopeZ_Road, // get_slope_z_proc
ClearTile_Road, // clear_tile_proc
- GetAcceptedCargo_Road, // get_accepted_cargo_proc
+ NULL, // get_accepted_cargo_proc
GetTileDesc_Road, // get_tile_desc_proc
GetTileTrackStatus_Road, // get_tile_track_status_proc
ClickTile_Road, // click_tile_proc
diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp
index efe0889fb..761a7543e 100644
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -524,13 +524,7 @@ void GetAcceptanceAroundTiles(AcceptedCargo accepts, TileIndex tile,
for (int yc = y1; yc != y2; yc++) {
for (int xc = x1; xc != x2; xc++) {
TileIndex tile = TileXY(xc, yc);
-
- if (!IsTileType(tile, MP_STATION)) {
- AcceptedCargo ac;
-
- GetAcceptedCargo(tile, ac);
- for (uint i = 0; i < lengthof(ac); ++i) accepts[i] += ac[i];
- }
+ AddAcceptedCargo(tile, accepts);
}
}
}
@@ -2348,11 +2342,6 @@ static Foundation GetFoundation_Station(TileIndex tile, Slope tileh)
return FlatteningFoundation(tileh);
}
-static void GetAcceptedCargo_Station(TileIndex tile, AcceptedCargo ac)
-{
- /* not used */
-}
-
static void GetTileDesc_Station(TileIndex tile, TileDesc *td)
{
td->owner[0] = GetTileOwner(tile);
@@ -3163,7 +3152,7 @@ extern const TileTypeProcs _tile_type_station_procs = {
DrawTile_Station, // draw_tile_proc
GetSlopeZ_Station, // get_slope_z_proc
ClearTile_Station, // clear_tile_proc
- GetAcceptedCargo_Station, // get_accepted_cargo_proc
+ NULL, // get_accepted_cargo_proc
GetTileDesc_Station, // get_tile_desc_proc
GetTileTrackStatus_Station, // get_tile_track_status_proc
ClickTile_Station, // click_tile_proc
diff --git a/src/tile_cmd.h b/src/tile_cmd.h
index e60105900..3f3673698 100644
--- a/src/tile_cmd.h
+++ b/src/tile_cmd.h
@@ -16,6 +16,7 @@
#include "direction_type.h"
#include "track_type.h"
#include "transport_type.h"
+#include "tile_map.h"
/** The returned bits of VehicleEnterTile. */
enum VehicleEnterTileStatus {
@@ -73,7 +74,7 @@ typedef CommandCost ClearTileProc(TileIndex tile, DoCommandFlag flags);
* @param tile Tile queried for its accepted cargo
* @param res Storage destination of the cargo accepted
*/
-typedef void GetAcceptedCargoProc(TileIndex tile, AcceptedCargo res);
+typedef void AddAcceptedCargoProc(TileIndex tile, AcceptedCargo res);
/**
* Tile callback function signature for obtaining a tile description
@@ -136,7 +137,7 @@ struct TileTypeProcs {
DrawTileProc *draw_tile_proc; ///< Called to render the tile and its contents to the screen
GetSlopeZProc *get_slope_z_proc;
ClearTileProc *clear_tile_proc;
- GetAcceptedCargoProc *get_accepted_cargo_proc; ///< Return accepted cargo of the tile
+ AddAcceptedCargoProc *add_accepted_cargo_proc; ///< Adds accepted cargo of the tile to cargo array supplied as parameter
GetTileDescProc *get_tile_desc_proc; ///< Get a description of a tile (for the 'land area information' tool)
GetTileTrackStatusProc *get_tile_track_status_proc; ///< Get available tracks and status of a tile
ClickTileProc *click_tile_proc; ///< Called when tile is clicked
@@ -153,10 +154,16 @@ extern const TileTypeProcs * const _tile_type_procs[16];
TrackStatus GetTileTrackStatus(TileIndex tile, TransportType mode, uint sub_mode, DiagDirection side = INVALID_DIAGDIR);
VehicleEnterTileStatus VehicleEnterTile(Vehicle *v, TileIndex tile, int x, int y);
-void GetAcceptedCargo(TileIndex tile, AcceptedCargo ac);
void ChangeTileOwner(TileIndex tile, Owner old_owner, Owner new_owner);
void AnimateTile(TileIndex tile);
bool ClickTile(TileIndex tile);
void GetTileDesc(TileIndex tile, TileDesc *td);
+static inline void AddAcceptedCargo(TileIndex tile, AcceptedCargo ac)
+{
+ AddAcceptedCargoProc *proc = _tile_type_procs[GetTileType(tile)]->add_accepted_cargo_proc;
+ if (proc == NULL) return;
+ proc(tile, ac);
+}
+
#endif /* TILE_CMD_H */
diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp
index 74bfd5e82..f65a7afab 100644
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -569,7 +569,7 @@ static void GetProducedCargo_Town(TileIndex tile, CargoID *b)
}
}
-static void GetAcceptedCargo_Town(TileIndex tile, AcceptedCargo ac)
+static void AddAcceptedCargo_Town(TileIndex tile, AcceptedCargo ac)
{
const HouseSpec *hs = GetHouseSpecs(GetHouseType(tile));
CargoID accepts[3];
@@ -594,13 +594,13 @@ static void GetAcceptedCargo_Town(TileIndex tile, AcceptedCargo ac)
if (HasBit(hs->callback_mask, CBM_HOUSE_CARGO_ACCEPTANCE)) {
uint16 callback = GetHouseCallback(CBID_HOUSE_CARGO_ACCEPTANCE, 0, 0, GetHouseType(tile), GetTownByTile(tile), tile);
if (callback != CALLBACK_FAILED) {
- if (accepts[0] != CT_INVALID) ac[accepts[0]] = GB(callback, 0, 4);
- if (accepts[1] != CT_INVALID) ac[accepts[1]] = GB(callback, 4, 4);
+ if (accepts[0] != CT_INVALID) ac[accepts[0]] += GB(callback, 0, 4);
+ if (accepts[1] != CT_INVALID) ac[accepts[1]] += GB(callback, 4, 4);
if (_settings_game.game_creation.landscape != LT_TEMPERATE && HasBit(callback, 12)) {
/* The 'S' bit indicates food instead of goods */
- ac[CT_FOOD] = GB(callback, 8, 4);
+ ac[CT_FOOD] += GB(callback, 8, 4);
} else {
- if (accepts[2] != CT_INVALID) ac[accepts[2]] = GB(callback, 8, 4);
+ if (accepts[2] != CT_INVALID) ac[accepts[2]] += GB(callback, 8, 4);
}
return;
}
@@ -608,7 +608,7 @@ static void GetAcceptedCargo_Town(TileIndex tile, AcceptedCargo ac)
/* No custom acceptance, so fill in with the default values */
for (uint8 i = 0; i < lengthof(accepts); i++) {
- if (accepts[i] != CT_INVALID) ac[accepts[i]] = hs->cargo_acceptance[i];
+ if (accepts[i] != CT_INVALID) ac[accepts[i]] += hs->cargo_acceptance[i];
}
}
@@ -2883,7 +2883,7 @@ extern const TileTypeProcs _tile_type_town_procs = {
DrawTile_Town, // draw_tile_proc
GetSlopeZ_Town, // get_slope_z_proc
ClearTile_Town, // clear_tile_proc
- GetAcceptedCargo_Town, // get_accepted_cargo_proc
+ AddAcceptedCargo_Town, // add_accepted_cargo_proc
GetTileDesc_Town, // get_tile_desc_proc
GetTileTrackStatus_Town, // get_tile_track_status_proc
ClickTile_Town, // click_tile_proc
diff --git a/src/tree_cmd.cpp b/src/tree_cmd.cpp
index 4172b54b3..7bc521ad2 100644
--- a/src/tree_cmd.cpp
+++ b/src/tree_cmd.cpp
@@ -544,11 +544,6 @@ static CommandCost ClearTile_Trees(TileIndex tile, DoCommandFlag flags)
return CommandCost(EXPENSES_CONSTRUCTION, num * _price.remove_trees);
}
-static void GetAcceptedCargo_Trees(TileIndex tile, AcceptedCargo ac)
-{
- /* not used */
-}
-
static void GetTileDesc_Trees(TileIndex tile, TileDesc *td)
{
TreeType tt = GetTreeType(tile);
@@ -773,7 +768,7 @@ extern const TileTypeProcs _tile_type_trees_procs = {
DrawTile_Trees, // draw_tile_proc
GetSlopeZ_Trees, // get_slope_z_proc
ClearTile_Trees, // clear_tile_proc
- GetAcceptedCargo_Trees, // get_accepted_cargo_proc
+ NULL, // get_accepted_cargo_proc
GetTileDesc_Trees, // get_tile_desc_proc
GetTileTrackStatus_Trees, // get_tile_track_status_proc
ClickTile_Trees, // click_tile_proc
diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp
index 1f4272c6c..66eb4ffb8 100644
--- a/src/tunnelbridge_cmd.cpp
+++ b/src/tunnelbridge_cmd.cpp
@@ -1247,12 +1247,6 @@ static Foundation GetFoundation_TunnelBridge(TileIndex tile, Slope tileh)
return IsTunnel(tile) ? FOUNDATION_NONE : GetBridgeFoundation(tileh, DiagDirToAxis(GetTunnelBridgeDirection(tile)));
}
-
-static void GetAcceptedCargo_TunnelBridge(TileIndex tile, AcceptedCargo ac)
-{
- /* not used */
-}
-
static void GetTileDesc_TunnelBridge(TileIndex tile, TileDesc *td)
{
TransportType tt = GetTunnelBridgeTransportType(tile);
@@ -1546,7 +1540,7 @@ extern const TileTypeProcs _tile_type_tunnelbridge_procs = {
DrawTile_TunnelBridge, // draw_tile_proc
GetSlopeZ_TunnelBridge, // get_slope_z_proc
ClearTile_TunnelBridge, // clear_tile_proc
- GetAcceptedCargo_TunnelBridge, // get_accepted_cargo_proc
+ NULL, // get_accepted_cargo_proc
GetTileDesc_TunnelBridge, // get_tile_desc_proc
GetTileTrackStatus_TunnelBridge, // get_tile_track_status_proc
ClickTile_TunnelBridge, // click_tile_proc
diff --git a/src/unmovable_cmd.cpp b/src/unmovable_cmd.cpp
index 4436aab06..534778437 100644
--- a/src/unmovable_cmd.cpp
+++ b/src/unmovable_cmd.cpp
@@ -291,7 +291,7 @@ static CommandCost ClearTile_Unmovable(TileIndex tile, DoCommandFlag flags)
return CommandCost();
}
-static void GetAcceptedCargo_Unmovable(TileIndex tile, AcceptedCargo ac)
+static void AddAcceptedCargo_Unmovable(TileIndex tile, AcceptedCargo ac)
{
if (!IsCompanyHQ(tile)) return;
@@ -303,13 +303,13 @@ static void GetAcceptedCargo_Unmovable(TileIndex tile, AcceptedCargo ac)
/* Top town building generates 10, so to make HQ interesting, the top
* type makes 20. */
- ac[CT_PASSENGERS] = max(1U, level);
+ ac[CT_PASSENGERS] += max(1U, level);
/* Top town building generates 4, HQ can make up to 8. The
* proportion passengers:mail is different because such a huge
* commercial building generates unusually high amount of mail
* correspondence per physical visitor. */
- ac[CT_MAIL] = max(1U, level / 2);
+ ac[CT_MAIL] += max(1U, level / 2);
}
@@ -501,7 +501,7 @@ extern const TileTypeProcs _tile_type_unmovable_procs = {
DrawTile_Unmovable, // draw_tile_proc
GetSlopeZ_Unmovable, // get_slope_z_proc
ClearTile_Unmovable, // clear_tile_proc
- GetAcceptedCargo_Unmovable, // get_accepted_cargo_proc
+ AddAcceptedCargo_Unmovable, // add_accepted_cargo_proc
GetTileDesc_Unmovable, // get_tile_desc_proc
GetTileTrackStatus_Unmovable, // get_tile_track_status_proc
ClickTile_Unmovable, // click_tile_proc
diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp
index 9e8c19f97..a154f62a1 100644
--- a/src/water_cmd.cpp
+++ b/src/water_cmd.cpp
@@ -682,11 +682,6 @@ static Foundation GetFoundation_Water(TileIndex tile, Slope tileh)
return FOUNDATION_NONE;
}
-static void GetAcceptedCargo_Water(TileIndex tile, AcceptedCargo ac)
-{
- /* not used */
-}
-
static void GetTileDesc_Water(TileIndex tile, TileDesc *td)
{
switch (GetWaterTileType(tile)) {
@@ -1160,7 +1155,7 @@ extern const TileTypeProcs _tile_type_water_procs = {
DrawTile_Water, // draw_tile_proc
GetSlopeZ_Water, // get_slope_z_proc
ClearTile_Water, // clear_tile_proc
- GetAcceptedCargo_Water, // get_accepted_cargo_proc
+ NULL, // get_accepted_cargo_proc
GetTileDesc_Water, // get_tile_desc_proc
GetTileTrackStatus_Water, // get_tile_track_status_proc
ClickTile_Water, // click_tile_proc