diff --git a/src/engine.h b/src/engine.h --- a/src/engine.h +++ b/src/engine.h @@ -262,84 +262,6 @@ static inline const RoadVehicleInfo* Roa 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 { - 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 class (helpers.cpp) */ void EngList_Create(EngineList *el); ///< Creates engine list void EngList_Destroy(EngineList *el); ///< Deallocate and destroy engine list