Changeset - r8628:e4c2822288b0
[Not reviewed]
master
0 3 0
bjarni - 16 years ago 2008-02-23 22:01:55
bjarni@openttd.org
(svn r12230) -Codechange: [autoreplace] made a function to detect if a vehicle needs autorenewing
This will remove duplicated code and ensure that the check is consistent
3 files changed with 14 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/aircraft_cmd.cpp
Show inline comments
 
@@ -1574,7 +1574,7 @@ static inline bool CheckSendAircraftToHa
 
		/* There is no autoreplace assigned to this EngineID so we will set it to renew to the same type if needed */
 
		new_engine = v->engine_type;
 

	
 
		if(!p->engine_renew || (v->age - v->max_age) < p->engine_renew_months * 30) {
 
		if (!v->NeedsAutorenewing(p)) {
 
			/* No need to replace the aircraft */
 
			return false;
 
		}
src/autoreplace_cmd.cpp
Show inline comments
 
@@ -25,6 +25,16 @@
 

	
 
#include "table/strings.h"
 

	
 
bool Vehicle::NeedsAutorenewing(const Player *p) const
 
{
 
	assert(p == GetPlayer(this->owner));
 

	
 
	if (!p->engine_renew) return false;
 
	if (this->age - this->max_age < (p->engine_renew_months * 30)) return false;
 

	
 
	return true;
 
}
 

	
 
/*
 
 * move the cargo from one engine to another if possible
 
 */
 
@@ -342,8 +352,7 @@ CommandCost MaybeReplaceVehicle(Vehicle 
 
			}
 

	
 
			// check if the vehicle should be replaced
 
			if (!p->engine_renew ||
 
					w->age - w->max_age < (p->engine_renew_months * 30) || // replace if engine is too old
 
			if (!w->NeedsAutorenewing(p) || // replace if engine is too old
 
					w->max_age == 0) { // rail cars got a max age of 0
 
				/* If the vehicle belongs to a group, check if the group is protected from the global autoreplace.
 
				   If not, chek if an global auto remplacement is defined */
src/vehicle_base.h
Show inline comments
 
@@ -481,6 +481,8 @@ public:
 
	 * @return true if there are other vehicles sharing the same order
 
	 */
 
	inline bool IsOrderListShared() const { return this->next_shared != NULL || this->prev_shared != NULL; };
 

	
 
	bool NeedsAutorenewing(const Player *p) const;
 
};
 

	
 
/**
0 comments (0 inline, 0 general)