View Issue Details

IDProjectCategoryView StatusLast Update
0000229Gameplay + OpenGL[All Projects] Bugpublic2017-02-16 04:53
Assigned To 
Status resolvedResolutionnot fixable 
Summary0000229: dissapearing weapons in BD 20 when killed changing weapon and then resurrect
DescriptionGZDoom 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.
TagsNo tags attached.





2017-02-10 06:32

developer   ~0000488

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.


2017-02-11 12:13

reporter   ~0000516

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.


2017-02-12 08:32

developer   ~0000529

Steps to reproduce are time critical indeed.
GZDoom 2.2.0 has this issue too, 1.9.1 is free from it.


2017-02-12 11:50

reporter   ~0000530

Yes but has happened to me several times during normal play. Thanks for looking into it.


2017-02-15 02:29

developer   ~0000592

The issue began to happen right from the first PSprites commit.
Graf Zahl

Graf Zahl

2017-02-15 03:39

administrator   ~0000594

Oh joy, that's gonna be fun... :(
Graf Zahl

Graf Zahl

2017-02-15 05:43

administrator   ~0000597

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.



2017-02-16 04:53

reporter   ~0000616

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?

Issue History

Date Modified Username Field Change
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