summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--newgrf.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/newgrf.c b/newgrf.c
index 069a35a71..58483c167 100644
--- a/newgrf.c
+++ b/newgrf.c
@@ -1692,7 +1692,8 @@ static void SkipIf(byte *buf, int len)
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 @@ static void SkipIf(byte *buf, int len)
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;