View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000229||GZDoom (All)||[All Projects] Bug||public||2017-02-10 05:01||2017-02-16 04:53|
|Summary||0000229: dissapearing weapons in BD 20 when killed changing weapon and then resurrect|
|Description||GZDoom 2.3.2 + brutalv20b.pk3 + brutalv20c_UP.pk3. I don't think this happened before: if you get killed while deselecting a weapon when you resurrect the new weapon appears briefly but then dissapears and you can't shoot nor change weapons. Reproducible with the kill command but not deselecting the chaingun, i guess becouse deselecting it is fast. This doesn't happen in vanilla.|
|Tags||No tags attached.|
Works for me using 2.3.2 and the current devbuild.
I tried to issue kill CCMD during switching weapons several times and everything was functional after respawning.
|Just retested, it happens on 2.3.2 but you need to load both pk3s i mentioned earlier. Probably you're being too slow killing yourself. Go to doom2 map01, type idfa. Then change from rifle to shotgun and again to rifle but you must be quick enough to enter the console before the weapon is completely lowered, type kill and then resurrect. It's there.|
Steps to reproduce are time critical indeed.
GZDoom 2.2.0 has this issue too, 1.9.1 is free from it.
|Yes but has happened to me several times during normal play. Thanks for looking into it.|
|The issue began to happen right from the first PSprites commit.|
|Oh joy, that's gonna be fun... :(|
Sorry, not fixable. Most of the weapons' deselect states are badly defined and depend on side effects of how the weapon code works. Most importantly they nearly all end in a one-tic 'wait' loop without any call to A_Lower, and that's where it gets stuck in. When the player dies while the weapon lowers it just happens to run past the last A_Lower, because with a dead player A_Lower won't deselect the weapon. Unfortunately, unlike with a proper deselect state, it won't get stuck on a state with A_Lower on it but on one without any function call, so after resurrection there is no way for the code to recover - it needs that A_Lower call in there somewhere to properly deselect the weapon.
And this is far too inconsequential to risk more serious issues by trying to work around it.
|Well it's a cheat after all, i guess we'll need to save often from now on. Anyway do you mean it can be avoided adding more A_Lower calls in decorate?|
|2017-02-10 05:01||drfrag||New Issue|
|2017-02-10 06:32||_mental_||Status||new => feedback|
|2017-02-10 06:32||_mental_||Note Added: 0000488|
|2017-02-11 12:13||drfrag||Note Added: 0000516|
|2017-02-11 12:13||drfrag||Status||feedback => new|
|2017-02-12 08:32||_mental_||Note Added: 0000529|
|2017-02-12 11:50||drfrag||Note Added: 0000530|
|2017-02-15 02:29||_mental_||Note Added: 0000592|
|2017-02-15 03:39||Graf Zahl||Note Added: 0000594|
|2017-02-15 05:43||Graf Zahl||Status||new => resolved|
|2017-02-15 05:43||Graf Zahl||Resolution||open => not fixable|
|2017-02-15 05:43||Graf Zahl||Note Added: 0000597|
|2017-02-16 04:53||drfrag||Note Added: 0000616|