diff --git a/newgrf.c b/newgrf.c index 7a5dbfb440..b550e9157f 100644 --- a/newgrf.c +++ b/newgrf.c @@ -2703,37 +2703,81 @@ static void DefineGotoLabel(byte *buf, int len) static void InitializeGRFSpecial(void) { - /* FIXME: We should rather reflect reality in _ttdpatch_flags[]. */ + _ttdpatch_flags[0] = ((_patches.always_small_airport ? 1 : 0) << 0x0C) // keepsmallairport + | (1 << 0x0D) // newairports + | (1 << 0x0E) // largestations + | ((_patches.longbridges ? 1 : 0) << 0x0F) // longbridges + | (0 << 0x10) // loadtime + | (1 << 0x12) // presignals + | (1 << 0x13) // extpresignals + | ((_patches.never_expire_vehicles ? 1 : 0) << 0x16) // enginespersist + | (1 << 0x1B) // multihead + | (1 << 0x1D) // lowmemory + | (1 << 0x1E); // generalfixes - _ttdpatch_flags[0] = (_patches.always_small_airport ? (1 << 0x0C) : 0) /* keepsmallairport */ - | (1 << 0x0E) /* largestations */ - | (_patches.longbridges ? (1 << 0x0F) : 0) /* longbridges */ - | (1 << 0x12) /* presignals */ - | (1 << 0x13) /* extpresignals */ - | (_patches.never_expire_vehicles ? (1 << 0x16) : 0) /* enginespersist */ - | (1 << 0x1B); /* multihead */ - _ttdpatch_flags[1] = (_patches.mammoth_trains ? (1 << 0x08) : 0) /* mammothtrains */ - | (1 << 0x09) /* trainrefit */ - | (1 << 0x14) /* bridgespeedlimits */ - | (1 << 0x16) /* eternalgame */ - | (1 << 0x17) /* newtrains */ - | (1 << 0x18) /* newrvs */ - | (1 << 0x19) /* newships */ - | (1 << 0x1A) /* newplanes */ - | (_patches.signal_side ? (1 << 0x1B) : 0) /* signalsontrafficside */ - | (1 << 0x1C); /* electrifiedrailway */ + _ttdpatch_flags[1] = (0 << 0x07) // moreairports - based on units of noise + | ((_patches.mammoth_trains ? 1 : 0) << 0x08) // mammothtrains + | (1 << 0x09) // trainrefit + | (0 << 0x0B) // subsidiaries + | (0 << 0x1C) // gradualloading + | (1 << 0x12) // unifiedmaglevmode - set bit 0 mode. Not revelant to OTTD + | (1 << 0x13) // unifiedmaglevmode - set bit 1 mode + | (1 << 0x14) // bridgespeedlimits + | (1 << 0x16) // eternalgame + | (1 << 0x17) // newtrains + | (1 << 0x18) // newrvs + | (1 << 0x19) // newships + | (1 << 0x1A) // newplanes + | ((_patches.signal_side ? 1 : 0) << 0x1B) // signalsontrafficside + | (1 << 0x1C); // electrifiedrailway - _ttdpatch_flags[2] = (_patches.build_on_slopes ? (1 << 0x0D) : 0) /* buildonslopes */ - | (1 << 0x12) /* newstations */ - | (_patches.build_on_slopes ? (1 << 0x15) : 0) /* buildoncoasts */ - | (1 << 0x16) /* canals */ - | (1 << 0x17) /* newstartyear */ - | (1 << 0x1A) /* newbridges */ - | (_patches.wagon_speed_limits ? (1 << 0x1D) : 0); /* wagonspeedlimits */ - _ttdpatch_flags[3] = (1 << 0x03) /* pathbasedsignalling */ - | (1 << 0x0C) /* enhancemultiplayer */ - | (1 << 0x0E) /* irregularstations */ - | (1 << 0x10); /* autoreplace */ + _ttdpatch_flags[2] = (1 << 0x01) // loadallgraphics - obsolote + | (1 << 0x03) // semaphores + | (0 << 0x0B) // enhancedgui + | (0 << 0x0C) // newagerating + | ((_patches.build_on_slopes ? 1 : 0) << 0x0D) // buildonslopes + | (0 << 0x0F) // planespeed + | (0 << 0x10) // moreindustriesperclimate - obsolete + | (0 << 0x11) // moretoylandfeatures + | (1 << 0x12) // newstations + | (0 << 0x13) // tracktypecostdiff + | (0 << 0x14) // manualconvert + | ((_patches.build_on_slopes ? 1 : 0) << 0x15) // buildoncoasts + | (1 << 0x16) // canals + | (1 << 0x17) // newstartyear + | (0 << 0x18) // freighttrains + | (0 << 0x19) // newhouses + | (1 << 0x1A) // newbridges + | (0 << 0x1B) // newtownnames + | (0 << 0x1C) // moreanimations + | ((_patches.wagon_speed_limits ? 1 : 0) << 0x1D) // wagonspeedlimits + | (1 << 0x1E) // newshistory + | (0 << 0x1F); // custombridgeheads + + _ttdpatch_flags[3] = (0 << 0x00) // newcargodistribution + | (1 << 0x01) // windowsnap + | (0 << 0x02) // townbuildnoroad + | (0 << 0x03) // pathbasedsignalling. To enable if ever pbs is back + | (0 << 0x04) // aichoosechance + | (1 << 0x05) // resolutionwidth + | (1 << 0x06) // resolutionheight + | (0 << 0x07) // newindustries + | (0 << 0x08) // fifoloading + | (0 << 0x09) // townroadbranchprob + | (0 << 0x0A) // tempsnowline + | (0 << 0x0B) // newcargo + | (1 << 0x0C) // enhancemultiplayer + | (1 << 0x0D) // onewayroads + | ((_patches.nonuniform_stations ? 1 : 0) << 0x0E) // irregularstations + | (1 << 0x0F) // statistics + | (0 << 0x10) // newsounds + | (1 << 0x11) // autoreplace + | (1 << 0x12) // autoslope + | (0 << 0x13) // followvehicle + | (0 << 0x14) // trams + | (0 << 0x15) // enhancetunnels + | (0 << 0x16) // shortrvs + | (0 << 0x17); // articulatedrvs } static void ResetCustomStations(void)