(svn r10470) -Fix: clamp station build date to 16 bit value for newgrf, preventing overflow and incorrect graphics shown past a certain date.
authorpeter1138
Sat, 07 Jul 2007 20:17:01 +0000
changeset 7192 c3c5d32da974
parent 7191 a877e27650aa
child 7193 d46cbf314baf
(svn r10470) -Fix: clamp station build date to 16 bit value for newgrf, preventing overflow and incorrect graphics shown past a certain date.
src/newgrf_station.cpp
--- a/src/newgrf_station.cpp	Sat Jul 07 17:36:01 2007 +0000
+++ b/src/newgrf_station.cpp	Sat Jul 07 20:17:01 2007 +0000
@@ -378,7 +378,7 @@
 			case 0x42: return 0;               // Rail type (XXX Get current type from GUI?)
 			case 0x43: return _current_player; // Station owner
 			case 0x44: return 2;               // PBS status
-			case 0xFA: return max(_date - DAYS_TILL_ORIGINAL_BASE_YEAR, 0); // Build date
+			case 0xFA: return clamp(_date - DAYS_TILL_ORIGINAL_BASE_YEAR, 0, 65535); // Build date, clamped to a 16 bit value
 		}
 
 		*available = false;
@@ -420,7 +420,7 @@
 		case 0xF3: return st->bus_stops->status;
 		case 0xF6: return st->airport_flags;
 		case 0xF7: return GB(st->airport_flags, 8, 8);
-		case 0xFA: return max(st->build_date - DAYS_TILL_ORIGINAL_BASE_YEAR, 0);
+		case 0xFA: return clamp(st->build_date - DAYS_TILL_ORIGINAL_BASE_YEAR, 0, 65535);
 	}
 
 	/* Handle cargo variables with parameter, 0x60 to 0x65 */