The most significant change is the introduction of an adjustable DAY_TICKS value (along with some related tweaks), and the possibility to scale down the passenger/mail amounts generated by towns.
The combined builds here additionally contain the timetable-based vehicle autoseparation patche(s).
There are combined win32 builds/binaries (with cargodist and autosep) to be found in this thread. The most recent version is found at the end of the topic:
--> openttd-cargodist-sprinkles-r19964-win32 <--
Please report any and all crashes from this build in this thread. See the per-build post for more specific notes.
- variable-daylength-01 - Adjust base daylength factor
- variable-daylength-02-towngrowthfreq - Adjust town growth rate to approximately follow the daylength factor
- variable-daylength-03-autofill-roundoff - Fix timetable autofill roundoff to ORIG_DAY_TICKS
After that, things get more complicated. Changing the daylength causes different things to behave differently.
Town growth, Industry production, Town passenger/mail generation, Cargo payment (by duration transported), your profit - stay the same in real-time.
Running costs, Servicing intervals - stay the same in game-time.
Others - unknown.
The towngrowthfreq patch ties the town growth rate to the daylength. The goal here is that the towns will grow the same amount per given game-time (and hence more slowly in real-time). The towns growing too fast (i.e. at the same real-time rate) was my only major issue so far - you're in 1925, only have the BR38 and tiny pre-war coaches - and your towns have 8k pop and more passengers than you can handle. The adjustment is kind of crude, so the towns may actually grow slightly more slowly overall. This requires some more work.
The autofill-roundoff patch separates the timetable autofill roundoff interval from the daylength setting, having it use the same roundoff interval as trunk (74 ticks). This means that you'll no longer get ~10s wait times at each station when using timetable autofill at 4x daylength. Instead, you're more likely to get wait times that display as "0 days" in the GUI - I suggest you change Interface >> Show timetable in ticks rather than days to compensate. Fixing the timetable GUI to display fractional days is beyond the scope of this patch.
These trivial patches (~10 LOC) provide a usable and enjoyable increased-daylength gameplay experience for me. At the default settings, they do not influence the gameplay at all.
Adjust town passenger/cargo rates:
- town-cargo-factor-01 - Adjust pax/mail generated by towns
When playing with cargodist (or cargodest), you end up with a far higher load on your vehicles (due to passengers not getting off at stations along the way), and usually with large cities, one finds it impossible to sanely transport enough passengers to keep the stations from continuously overflowing.
This patch aims to resolve that by applying an exponential function to reduce the number of passengers and mail generated by town houses. The function is approximately amount = amount × 2^cf, where cf is an adjustable parameter. For negative cf values, this is equal to amount = amount / 2^–cf, and hence reduces the amount of cargo. I suggest a value of -1x to provide some relief, or a value of -2x if your aim is to keep your stations from filling up, and your trains less than 100% full.
The actual calculation is slightly different to adjust for integer math. Since this is calculated per-house, and the production will never drop to zero, the actual aggregate town production is slightly higher. There is a minimum limit on a town's pax/mail generation rate that is approximately equal to the number of house-tiles in the town. Referr to this table of values to see how the function behaves.
- daily-autosave-00 - Implement daily/weekly autosave cycle
This patch implements a daily autosave loop in addition to the normal monthly autosave loop, and provides "daily" and "weekly" autosave options in addition to the previous monthly ones. This was adapted from a similar feature in an earlier daylength patch, and is intended as a quick fix for the daylength/autosave issue, although better solutions may exist...
Vehicle name length:
- vehicle-name-length - increase the length limit on vehicle names
Aggregate Patches (outdated; r18913):
- Against trunk: variable-daylength_town-cargo_misc (svn-format)
- Against cargodist: variable-daylength_town-cargo_misc (svn-format)