Fix animation_state not being set for limited speed/power breakdowns,
such that the smoke lasted for a randomly long amount of time,
instead show a short burst of smoke.
Fix smoke for limited speed/power breakdowns only being shown 1/32 of
the time.
Make sure that a breakdown has non-zero delay before showing smoke.
SELGW = ScenarioEditorLandscapeGenerationWindow
Crash is triggered by the following:
1. SELGW has a OnPlaceObject active (e.g. raise/lower land).
2. SELGW button is clicked to open BuildObjectWindow
3. BuildObjectWindow constructor calls ResetObjectToPlace
4: SELGW::OnPlaceObjectAbort is called
5: DeleteWindowById(WC_BUILD_OBJECT, 0) is called
6: BuildObjectWindow is freed whilst its constructor is executing
7: Crash occurs either through access to this->vscroll
or during the dynamic_cast to get widget: WID_BO_SELECT_MATRIX.
The use-after-free was caught by AddressSanitizer.
This will try to demangle.
If bfd_find_nearest_line returns a file name but nothing else
(debugging info is turned off), scan the symbol table for the previous
symbol and use it if it looks OKish.
This is because AfterLoadVehicles may indirectly check airport
properties via the NewGRF code.
Defer missing GRF error message output until the end of AfterLoadGame
to avoid obscuring any earlier errors.
Check if the job is still running one date fract tick before it
is due to join and if so pause the game until its done.
This avoids the main thread being blocked on a thread join.
Show if pause is due to link graph job in status bar, update network
messages.
This does not apply for network clients.
The validator now checks that the type of conditional instructions
is known.
On a validation failure, the load code now outputs a corrupt savegame
message, with the validation error message and a program dump,
instead of using an assertion.
Only run in pathfinder case if deny or penalty are present.
Only run in is safe waiting tile case is reserve through is present.
Presence is determined at program validation time and cached in the
program structure.
Validator now checks for unknown non-conditional instructions.
This only changes the behaviour of PBS reservations which
would otherwise terminate at a PBS signal.
If the signal restriction sets the reserve through state,
the reservation continues through the signal, and the signal
is set to green.