(svn r12230) -Codechange: [autoreplace] made a function to detect if a vehicle needs autorenewing
authorbjarni
Sat, 23 Feb 2008 22:01:55 +0000
changeset 8628 2e7e4cdfe96f
parent 8627 79cb9a4fb8d1
child 8629 f61bb746249f
(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
src/aircraft_cmd.cpp
src/autoreplace_cmd.cpp
src/vehicle_base.h
--- a/src/aircraft_cmd.cpp	Sat Feb 23 11:42:41 2008 +0000
+++ b/src/aircraft_cmd.cpp	Sat Feb 23 22:01:55 2008 +0000
@@ -1574,7 +1574,7 @@
 		/* 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;
 		}
--- a/src/autoreplace_cmd.cpp	Sat Feb 23 11:42:41 2008 +0000
+++ b/src/autoreplace_cmd.cpp	Sat Feb 23 22:01:55 2008 +0000
@@ -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 @@
 			}
 
 			// 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 */
--- a/src/vehicle_base.h	Sat Feb 23 11:42:41 2008 +0000
+++ b/src/vehicle_base.h	Sat Feb 23 22:01:55 2008 +0000
@@ -481,6 +481,8 @@
 	 * @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;
 };
 
 /**