changeset 8509:721797d63deb draft

(svn r12084) -Fix: 'Early retirement'-properties are signed.
author frosch <frosch@openttd.org>
date Fri, 08 Feb 2008 15:34:54 +0000
parents 4d6ecd9c5529
children a4d67e09d191
files src/engine.cpp src/engine.h
diffstat 2 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/engine.cpp
+++ b/src/engine.cpp
@@ -91,8 +91,9 @@
 
 	/* Check for early retirement */
 	if (e->player_avail != 0 && !_patches.never_expire_vehicles) {
-		uint retire_early = EngInfo(e - _engines)->retire_early;
-		if (retire_early > 0 && age >= e->duration_phase_1 + e->duration_phase_2 - retire_early * 12) {
+		int retire_early = EngInfo(e - _engines)->retire_early;
+		uint retire_early_max_age = max(0, e->duration_phase_1 + e->duration_phase_2 - retire_early * 12);
+		if (retire_early != 0 && age >= retire_early_max_age) {
 			/* Early retirement is enabled and we're past the date... */
 			e->player_avail = 0;
 			AddRemoveEngineFromAutoreplaceAndBuildWindows(e->type);
--- a/src/engine.h
+++ b/src/engine.h
@@ -110,7 +110,7 @@
 	byte refit_cost;
 	byte misc_flags;
 	byte callbackmask;
-	byte retire_early; ///< Number of years early to retire vehicle
+	int8 retire_early;  ///< Number of years early to retire vehicle
 	StringID string_id; ///< Default name of engine
 };