Fix: placing random trees in SE crashes the game (#8892)

This used to work by accident: originally the code checked if
GenerateWorld was threaded. If not, it would abort the function.
This worked for placing trees, because it was also returning false
when it was not active.

With the recent changes, that check got removed, and this crash
started to happen. So now check if we have a modal window, which
is a very solid indication we are generating the world.
pull/238/head
Patric Stout 3 years ago committed by GitHub
parent 0c4443667d
commit 751434ea63
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1313,6 +1313,12 @@ static void _SetGeneratingWorldProgress(GenWorldProgress cls, uint progress, uin
static_assert(lengthof(percent_table) == GWP_CLASS_COUNT + 1);
assert(cls < GWP_CLASS_COUNT);
/* Check if we really are generating the world.
* For example, placing trees via the SE also calls this function, but
* shouldn't try to update the progress.
*/
if (!HasModalProgress()) return;
if (IsGeneratingWorldAborted()) {
HandleGeneratingWorldAbortion();
return;

Loading…
Cancel
Save