ULTIMA8: Adjust proc loop detection workaround again

The previous workaround value chosen to fix U8 bug #12913 really locked up
Crusader too long (>10 s), so there's no clean solution here that works for
both games it seems.  Revert the threshold back for Crusader games only, and
keep the high threshold for U8.  I hope the next time I touch this line is to
remove it because I work out the root cause of the problem :|
This commit is contained in:
Matthew Duggan 2021-09-23 15:56:14 +09:00
parent 4d37530ed2
commit 2e135b284e

View file

@ -178,7 +178,8 @@ void Kernel::runProcesses() {
// for a really long time at this point. Set it high enough that // for a really long time at this point. Set it high enough that
// a process going through all map items should still terminate. // a process going through all map items should still terminate.
// //
if (num_run > 65536 && !p->is_terminated()) { if (((num_run > 8192 && GAME_IS_CRUSADER) || num_run > 65534)
&& !p->is_terminated()) {
warning("Seem to be stuck in process loop - killing current process"); warning("Seem to be stuck in process loop - killing current process");
p->fail(); p->fail();
} }