diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp --- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -14,6 +14,7 @@ #include "newgrf_spritegroup.h" #include "newgrf_industries.h" #include "newgrf_commons.h" +#include "date.h" /* Since the industry IDs defined by the GRF file don't necessarily correlate * to those used by the game, the IDs used for overriding old industries must be @@ -151,15 +152,6 @@ uint32 IndustryGetVariable(const Resolve * let's just say it is a beginning ;) */ case 0x67: return GetIndustryTypeCount(industry->type) << 16 | 0; - /* Industry founder information. - * 0x10 if randomly created or from a map pre-newindustry. - * Else, the company who funded it */ - case 0xA7: return 0x10; - - case 0xB0: // Date when built since 1920 (in days) - case 0xB3: // Construction type - case 0xB4: break; // Date last cargo accepted since 1920 (in days) - /* Industry structure access*/ case 0x80: return industry->xy; case 0x81: return GB(industry->xy, 8, 8); @@ -167,7 +159,7 @@ uint32 IndustryGetVariable(const Resolve case 0x82: case 0x83: case 0x84: - case 0x85: break; // not supported + case 0x85: DEBUG(grf, 0, "NewGRFs shouldn't be doing pointer magic"); break; // not supported case 0x86: return industry->width; case 0x87: return industry->height;// xy dimensions /* */ @@ -208,12 +200,16 @@ uint32 IndustryGetVariable(const Resolve case 0xA5: return GB(industry->last_month_transported[0], 8, 8); case 0xA6: return industry->type; - + case 0xA7: return industry->founder; case 0xA8: return industry->random_color; - case 0xA9: return industry->last_prod_year; // capped? + case 0xA9: return clamp(0, industry->last_prod_year - 1920, 255); case 0xAA: return industry->counter; case 0xAB: return GB(industry->counter, 8, 8); case 0xAC: return industry->was_cargo_delivered; + + case 0xB0: return clamp(0, industry->construction_date - DAYS_TILL_ORIGINAL_BASE_YEAR, 65535); // Date when built since 1920 (in days) + case 0xB3: return industry->construction_type; // Construction type + case 0xB4: return clamp(0, industry->last_cargo_accepted_at - DAYS_TILL_ORIGINAL_BASE_YEAR, 65535); // Date last cargo accepted since 1920 (in days) } DEBUG(grf, 1, "Unhandled industry property 0x%X", variable);