(svn r11775) -Codechange: move all autoreplace/autorenew functions to a single location.
authorrubidium
Mon, 07 Jan 2008 09:19:53 +0000
changeset 8212 cf3fce5c7464
parent 8211 29a8510dfd62
child 8213 7bdd7593eb9b
(svn r11775) -Codechange: move all autoreplace/autorenew functions to a single location.
src/aircraft_cmd.cpp
src/autoreplace_base.h
src/autoreplace_cmd.cpp
src/autoreplace_func.h
src/autoreplace_gui.cpp
src/autoreplace_gui.h
src/autoreplace_type.h
src/engine.cpp
src/engine.h
src/group_cmd.cpp
src/group_gui.cpp
src/oldloader.cpp
src/player.h
src/players.cpp
src/roadveh_cmd.cpp
src/saveload.cpp
src/ship_cmd.cpp
src/train_cmd.cpp
src/vehicle.cpp
src/vehicle_func.h
src/vehicle_gui.cpp
src/vehicle_gui.h
--- a/src/aircraft_cmd.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/aircraft_cmd.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -34,6 +34,8 @@
 #include "sound_func.h"
 #include "functions.h"
 #include "variables.h"
+#include "autoreplace_func.h"
+#include "autoreplace_gui.h"
 
 void Aircraft::UpdateDeltaXY(Direction direction)
 {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/autoreplace_base.h	Mon Jan 07 09:19:53 2008 +0000
@@ -0,0 +1,38 @@
+/* $Id$ */
+
+/** @file autoreplace_base.h Base class for autoreplaces/autorenews. */
+
+#ifndef AUTOREPLACE_BASE_H
+#define AUTOREPLACE_BASE_H
+
+#include "oldpool.h"
+#include "autoreplace_type.h"
+
+/**
+ * Memory pool for engine renew elements. DO NOT USE outside of engine.c. Is
+ * placed here so the only exception to this rule, the saveload code, can use
+ * it.
+ */
+DECLARE_OLD_POOL(EngineRenew, EngineRenew, 3, 8000)
+
+/**
+ * Struct to store engine replacements. DO NOT USE outside of engine.c. Is
+ * placed here so the only exception to this rule, the saveload code, can use
+ * it.
+ */
+struct EngineRenew : PoolItem<EngineRenew, EngineRenewID, &_EngineRenew_pool> {
+	EngineID from;
+	EngineID to;
+	EngineRenew *next;
+	GroupID group_id;
+
+	EngineRenew(EngineID from = INVALID_ENGINE, EngineID to = INVALID_ENGINE) : from(from), to(to), next(NULL) {}
+	~EngineRenew() { this->from = INVALID_ENGINE; }
+
+	inline bool IsValid() const { return this->from != INVALID_ENGINE; }
+};
+
+#define FOR_ALL_ENGINE_RENEWS_FROM(er, start) for (er = GetEngineRenew(start); er != NULL; er = (er->index + 1U < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1U) : NULL) if (er->IsValid())
+#define FOR_ALL_ENGINE_RENEWS(er) FOR_ALL_ENGINE_RENEWS_FROM(er, 0)
+
+#endif /* AUTOREPLACE_BASE_H */
--- a/src/autoreplace_cmd.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/autoreplace_cmd.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -21,6 +21,7 @@
 #include "vehicle_func.h"
 #include "functions.h"
 #include "variables.h"
+#include "autoreplace_func.h"
 
 /*
  * move the cargo from one engine to another if possible
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/autoreplace_func.h	Mon Jan 07 09:19:53 2008 +0000
@@ -0,0 +1,103 @@
+/* $Id$ */
+
+/** @file autoreplace_func.h Functions related to autoreplacing. */
+
+#ifndef AUTOREPLACE_FUNC_H
+#define AUTOREPLACE_FUNC_H
+
+#include "autoreplace_type.h"
+#include "player.h"
+
+/**
+ * Remove all engine replacement settings for the player.
+ * @param  erl The renewlist for a given player.
+ * @return The new renewlist for the player.
+ */
+void RemoveAllEngineReplacement(EngineRenewList *erl);
+
+/**
+ * Retrieve the engine replacement in a given renewlist for an original engine type.
+ * @param  erl The renewlist to search in.
+ * @param  engine Engine type to be replaced.
+ * @return The engine type to replace with, or INVALID_ENGINE if no
+ * replacement is in the list.
+ */
+EngineID EngineReplacement(EngineRenewList erl, EngineID engine, GroupID group);
+
+/**
+ * Add an engine replacement to the given renewlist.
+ * @param erl The renewlist to add to.
+ * @param old_engine The original engine type.
+ * @param new_engine The replacement engine type.
+ * @param flags The calling command flags.
+ * @return 0 on success, CMD_ERROR on failure.
+ */
+CommandCost AddEngineReplacement(EngineRenewList *erl, EngineID old_engine, EngineID new_engine, GroupID group, uint32 flags);
+
+/**
+ * Remove an engine replacement from a given renewlist.
+ * @param erl The renewlist from which to remove the replacement
+ * @param engine The original engine type.
+ * @param flags The calling command flags.
+ * @return 0 on success, CMD_ERROR on failure.
+ */
+CommandCost RemoveEngineReplacement(EngineRenewList *erl, EngineID engine, GroupID group, uint32 flags);
+
+/**
+ * Remove all engine replacement settings for the given player.
+ * @param p Player.
+ */
+static inline void RemoveAllEngineReplacementForPlayer(Player *p)
+{
+	RemoveAllEngineReplacement(&p->engine_renew_list);
+}
+
+/**
+ * Retrieve the engine replacement for the given player and original engine type.
+ * @param p Player.
+ * @param engine Engine type.
+ * @return The engine type to replace with, or INVALID_ENGINE if no
+ * replacement is in the list.
+ */
+static inline EngineID EngineReplacementForPlayer(const Player *p, EngineID engine, GroupID group)
+{
+	return EngineReplacement(p->engine_renew_list, engine, group);
+}
+
+/**
+ * Check if a player has a replacement set up for the given engine.
+ * @param p Player.
+ * @param  engine Engine type to be replaced.
+ * @return true if a replacement was set up, false otherwise.
+ */
+static inline bool EngineHasReplacementForPlayer(const Player *p, EngineID engine, GroupID group)
+{
+	return EngineReplacementForPlayer(p, engine, group) != INVALID_ENGINE;
+}
+
+/**
+ * Add an engine replacement for the player.
+ * @param p Player.
+ * @param old_engine The original engine type.
+ * @param new_engine The replacement engine type.
+ * @param flags The calling command flags.
+ * @return 0 on success, CMD_ERROR on failure.
+ */
+static inline CommandCost AddEngineReplacementForPlayer(Player *p, EngineID old_engine, EngineID new_engine, GroupID group, uint32 flags)
+{
+	return AddEngineReplacement(&p->engine_renew_list, old_engine, new_engine, group, flags);
+}
+
+/**
+ * Remove an engine replacement for the player.
+ * @param p Player.
+ * @param engine The original engine type.
+ * @param flags The calling command flags.
+ * @return 0 on success, CMD_ERROR on failure.
+ */
+static inline CommandCost RemoveEngineReplacementForPlayer(Player *p, EngineID engine, GroupID group, uint32 flags)
+{
+	return RemoveEngineReplacement(&p->engine_renew_list, engine, group, flags);
+}
+
+#endif /* AUTOREPLACE_FUNC_H */
--- a/src/autoreplace_gui.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/autoreplace_gui.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -17,6 +17,7 @@
 #include "strings_func.h"
 #include "window_func.h"
 #include "vehicle_func.h"
+#include "autoreplace_func.h"
 
 static RailType _railtype_selected_in_replace_gui;
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/autoreplace_gui.h	Mon Jan 07 09:19:53 2008 +0000
@@ -0,0 +1,19 @@
+/* $Id$ */
+
+/** @file autoreplace_gui.h Functions related to the autoreplace GUIs*/
+
+#ifndef AUTOREPLACE_GUI_H
+#define AUTOREPLACE_GUI_H
+
+#include "vehicle_type.h"
+
+/**
+ * When an engine is made buildable or is removed from being buildable, add/remove it from the build/autoreplace lists
+ * @param type The type of engine
+ */
+void AddRemoveEngineFromAutoreplaceAndBuildWindows(VehicleType type);
+void InvalidateAutoreplaceWindow(EngineID e, GroupID id_g);
+void ShowReplaceVehicleWindow(VehicleType vehicletype);
+void ShowReplaceGroupVehicleWindow(GroupID group, VehicleType veh);
+
+#endif /* AUTOREPLACE_GUI_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/autoreplace_type.h	Mon Jan 07 09:19:53 2008 +0000
@@ -0,0 +1,15 @@
+/* $Id$ */
+
+/** @file autoreplace_type.h Types related to autoreplacing. */
+
+#ifndef AUTOREPLACE_TYPE_H
+#define AUTOREPLACE_TYPE_H
+
+struct EngineRenew;
+
+/**
+ * A list to group EngineRenew directives together (such as per-player).
+ */
+typedef EngineRenew* EngineRenewList;
+
+#endif /* AUTOREPLACE_TYPE_H */
--- a/src/engine.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/engine.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -24,6 +24,8 @@
 #include "functions.h"
 #include "window_func.h"
 #include "date_func.h"
+#include "autoreplace_base.h"
+#include "autoreplace_gui.h"
 
 EngineInfo _engine_info[TOTAL_NUM_ENGINES];
 RailVehicleInfo _rail_vehicle_info[NUM_TRAIN_ENGINES];
--- a/src/engine.h	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/engine.h	Mon Jan 07 09:19:53 2008 +0000
@@ -262,84 +262,6 @@
 	return &_road_vehicle_info[e - ROAD_ENGINES_INDEX];
 }
 
-/************************************************************************
- * Engine Replacement stuff
- ************************************************************************/
-
-struct EngineRenew;
-/**
- * Memory pool for engine renew elements. DO NOT USE outside of engine.c. Is
- * placed here so the only exception to this rule, the saveload code, can use
- * it.
- */
-DECLARE_OLD_POOL(EngineRenew, EngineRenew, 3, 8000)
-
-/**
- * Struct to store engine replacements. DO NOT USE outside of engine.c. Is
- * placed here so the only exception to this rule, the saveload code, can use
- * it.
- */
-struct EngineRenew : PoolItem<EngineRenew, EngineRenewID, &_EngineRenew_pool> {
-	EngineID from;
-	EngineID to;
-	EngineRenew *next;
-	GroupID group_id;
-
-	EngineRenew(EngineID from = INVALID_ENGINE, EngineID to = INVALID_ENGINE) : from(from), to(to), next(NULL) {}
-	~EngineRenew() { this->from = INVALID_ENGINE; }
-
-	inline bool IsValid() const { return this->from != INVALID_ENGINE; }
-};
-
-#define FOR_ALL_ENGINE_RENEWS_FROM(er, start) for (er = GetEngineRenew(start); er != NULL; er = (er->index + 1U < GetEngineRenewPoolSize()) ? GetEngineRenew(er->index + 1U) : NULL) if (er->IsValid())
-#define FOR_ALL_ENGINE_RENEWS(er) FOR_ALL_ENGINE_RENEWS_FROM(er, 0)
-
-
-/**
- * A list to group EngineRenew directives together (such as per-player).
- */
-typedef EngineRenew* EngineRenewList;
-
-/**
- * Remove all engine replacement settings for the player.
- * @param  erl The renewlist for a given player.
- * @return The new renewlist for the player.
- */
-void RemoveAllEngineReplacement(EngineRenewList *erl);
-
-/**
- * Retrieve the engine replacement in a given renewlist for an original engine type.
- * @param  erl The renewlist to search in.
- * @param  engine Engine type to be replaced.
- * @return The engine type to replace with, or INVALID_ENGINE if no
- * replacement is in the list.
- */
-EngineID EngineReplacement(EngineRenewList erl, EngineID engine, GroupID group);
-
-/**
- * Add an engine replacement to the given renewlist.
- * @param erl The renewlist to add to.
- * @param old_engine The original engine type.
- * @param new_engine The replacement engine type.
- * @param flags The calling command flags.
- * @return 0 on success, CMD_ERROR on failure.
- */
-CommandCost AddEngineReplacement(EngineRenewList *erl, EngineID old_engine, EngineID new_engine, GroupID group, uint32 flags);
-
-/**
- * Remove an engine replacement from a given renewlist.
- * @param erl The renewlist from which to remove the replacement
- * @param engine The original engine type.
- * @param flags The calling command flags.
- * @return 0 on success, CMD_ERROR on failure.
- */
-CommandCost RemoveEngineReplacement(EngineRenewList *erl, EngineID engine, GroupID group, uint32 flags);
-
-/** When an engine is made buildable or is removed from being buildable, add/remove it from the build/autoreplace lists
- * @param type The type of engine
- */
-void AddRemoveEngineFromAutoreplaceAndBuildWindows(VehicleType type);
-
 /* Engine list manipulators - current implementation is only C wrapper of CBlobT<EngineID> class (helpers.cpp) */
 void EngList_Create(EngineList *el);            ///< Creates engine list
 void EngList_Destroy(EngineList *el);           ///< Deallocate and destroy engine list
--- a/src/group_cmd.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/group_cmd.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -20,6 +20,8 @@
 #include "functions.h"
 #include "window_func.h"
 #include "vehicle_func.h"
+#include "autoreplace_base.h"
+#include "autoreplace_func.h"
 
 /**
  * Update the num engines of a groupID. Decrease the old one and increase the new one
--- a/src/group_gui.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/group_gui.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -21,6 +21,7 @@
 #include "core/alloc_func.hpp"
 #include "window_func.h"
 #include "vehicle_func.h"
+#include "autoreplace_gui.h"
 
 
 struct Sorting {
--- a/src/oldloader.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/oldloader.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -25,6 +25,7 @@
 #include "date_func.h"
 #include "vehicle_func.h"
 #include "variables.h"
+#include "autoreplace_gui.h"
 
 enum {
 	HEADER_SIZE = 49,
--- a/src/player.h	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/player.h	Mon Jan 07 09:19:53 2008 +0000
@@ -15,6 +15,7 @@
 #include "engine.h"
 #include "livery.h"
 #include "genworld.h"
+#include "autoreplace_type.h"
 
 struct PlayerEconomyEntry {
 	Money income;
@@ -330,50 +331,6 @@
 int8 SaveHighScoreValue(const Player *p);
 int8 SaveHighScoreValueNetwork();
 
-/* Engine Replacement Functions */
-
-/**
- * Remove all engine replacement settings for the given player.
- * @param p Player.
- */
-static inline void RemoveAllEngineReplacementForPlayer(Player *p) { RemoveAllEngineReplacement(&p->engine_renew_list); }
-
-/**
- * Retrieve the engine replacement for the given player and original engine type.
- * @param p Player.
- * @param engine Engine type.
- * @return The engine type to replace with, or INVALID_ENGINE if no
- * replacement is in the list.
- */
-static inline EngineID EngineReplacementForPlayer(const Player *p, EngineID engine, GroupID group) { return EngineReplacement(p->engine_renew_list, engine, group); }
-
-/**
- * Check if a player has a replacement set up for the given engine.
- * @param p Player.
- * @param  engine Engine type to be replaced.
- * @return true if a replacement was set up, false otherwise.
- */
-static inline bool EngineHasReplacementForPlayer(const Player *p, EngineID engine, GroupID group) { return EngineReplacementForPlayer(p, engine, group) != INVALID_ENGINE; }
-
-/**
- * Add an engine replacement for the player.
- * @param p Player.
- * @param old_engine The original engine type.
- * @param new_engine The replacement engine type.
- * @param flags The calling command flags.
- * @return 0 on success, CMD_ERROR on failure.
- */
-static inline CommandCost AddEngineReplacementForPlayer(Player *p, EngineID old_engine, EngineID new_engine, GroupID group, uint32 flags) { return AddEngineReplacement(&p->engine_renew_list, old_engine, new_engine, group, flags); }
-
-/**
- * Remove an engine replacement for the player.
- * @param p Player.
- * @param engine The original engine type.
- * @param flags The calling command flags.
- * @return 0 on success, CMD_ERROR on failure.
- */
-static inline CommandCost RemoveEngineReplacementForPlayer(Player *p, EngineID engine, GroupID group, uint32 flags) {return RemoveEngineReplacement(&p->engine_renew_list, engine, group, flags); }
-
 /**
  * Reset the livery schemes to the player's primary colour.
  * This is used on loading games without livery information and on new player start up.
--- a/src/players.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/players.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -28,6 +28,8 @@
 #include "date_func.h"
 #include "vehicle_func.h"
 #include "sound_func.h"
+#include "autoreplace_func.h"
+#include "autoreplace_gui.h"
 
 /**
  * Sets the local player and updates the patch settings that are set on a
--- a/src/roadveh_cmd.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/roadveh_cmd.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -39,6 +39,7 @@
 #include "vehicle_func.h"
 #include "sound_func.h"
 #include "variables.h"
+#include "autoreplace_gui.h"
 
 
 static const uint16 _roadveh_images[63] = {
--- a/src/saveload.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/saveload.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -31,6 +31,7 @@
 #include "functions.h"
 #include "core/endian_func.hpp"
 #include "vehicle_base.h"
+#include "autoreplace_base.h"
 #include <list>
 
 extern const uint16 SAVEGAME_VERSION = 83;
--- a/src/ship_cmd.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/ship_cmd.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -35,6 +35,7 @@
 #include "vehicle_func.h"
 #include "sound_func.h"
 #include "variables.h"
+#include "autoreplace_gui.h"
 
 
 static const uint16 _ship_sprites[] = {0x0E5D, 0x0E55, 0x0E65, 0x0E6D};
--- a/src/train_cmd.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/train_cmd.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -44,6 +44,7 @@
 #include "vehicle_func.h"
 #include "sound_func.h"
 #include "variables.h"
+#include "autoreplace_gui.h"
 
 
 static bool TrainCheckIfLineEnds(Vehicle *v);
--- a/src/vehicle.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/vehicle.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -44,6 +44,8 @@
 #include "vehicle_func.h"
 #include "sound_func.h"
 #include "variables.h"
+#include "autoreplace_func.h"
+#include "autoreplace_gui.h"
 
 #define INVALID_COORD (0x7fffffff)
 #define GEN_HASH(x, y) ((GB((y), 6, 6) << 6) + GB((x), 7, 6))
--- a/src/vehicle_func.h	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/vehicle_func.h	Mon Jan 07 09:19:53 2008 +0000
@@ -76,8 +76,6 @@
 CommandCost SendAllVehiclesToDepot(VehicleType type, uint32 flags, bool service, PlayerID owner, uint16 vlw_flag, uint32 id);
 void VehicleEnterDepot(Vehicle *v);
 
-void InvalidateAutoreplaceWindow(EngineID e, GroupID id_g);
-
 CommandCost MaybeReplaceVehicle(Vehicle *v, bool check, bool display_costs);
 bool CanBuildVehicleInfrastructure(VehicleType type);
 
--- a/src/vehicle_gui.cpp	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/vehicle_gui.cpp	Mon Jan 07 09:19:53 2008 +0000
@@ -32,6 +32,7 @@
 #include "functions.h"
 #include "window_func.h"
 #include "vehicle_func.h"
+#include "autoreplace_gui.h"
 
 struct Sorting {
 	Listing aircraft;
--- a/src/vehicle_gui.h	Mon Jan 07 00:57:19 2008 +0000
+++ b/src/vehicle_gui.h	Mon Jan 07 09:19:53 2008 +0000
@@ -67,9 +67,7 @@
 void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type, StationID station);
 void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type, TileIndex depot_tile);
 
-void ShowReplaceVehicleWindow(VehicleType vehicletype);
 void DrawSmallOrderList(const Vehicle *v, int x, int y);
-void ShowReplaceGroupVehicleWindow(GroupID group, VehicleType veh);
 
 void DrawVehicleImage(const Vehicle *v, int x, int y, VehicleID selection, int count, int skip);