(svn r2862) Return a proper version number, when testing the TTDPatch version in the SkipIf action. Pretend to be version 2.0.1 alpha 49 for now.
authortron
Sat, 13 Aug 2005 16:23:07 +0000
changeset 2336 48ace1344af0
parent 2335 1222aa57deb7
child 2337 a4587769d43a
(svn r2862) Return a proper version number, when testing the TTDPatch version in the SkipIf action. Pretend to be version 2.0.1 alpha 49 for now.
Also change the type of the variables, which get compared, to uint32, because the values are at most 32bits wide and always seem to be unsigned.
newgrf.c
--- a/newgrf.c	Fri Aug 12 12:47:35 2005 +0000
+++ b/newgrf.c	Sat Aug 13 16:23:07 2005 +0000
@@ -1692,7 +1692,8 @@
 	uint8 paramsize;
 	uint8 condtype;
 	uint8 numsprites;
-	int param_val = 0, cond_val = 0;
+	uint32 param_val = 0;
+	uint32 cond_val = 0;
 	bool result;
 
 	check_length(len, 6, "SkipIf");
@@ -1730,9 +1731,16 @@
 		case 0x88: {  /* see if specified GRFID is active */
 			param_val = (GetFileByGRFID(cond_val) != NULL);
 		}	break;
-		case 0x8B:    /* TTDPatch version */
-			param_val = 0xFFFF;
+
+		case 0x8B: { /* TTDPatch version */
+			uint major    = 2;
+			uint minor    = 0;
+			uint revision = 10; // special case: 2.0.1 is 2.0.10
+			uint build    = 49;
+			param_val = (major << 24) | (minor << 20) | (revision << 16) | (build * 10);
 			break;
+		}
+
 		case 0x8D:    /* TTD Version, 00=DOS, 01=Windows */
 			param_val = 1;
 			break;