Fixes a bug in signal unregistration code that was causing unrelated objects to lose their registration in a (#59116)

This was causing unrelated objects to lose their registration in a hyper rare case.

The process went something like:
when object foo is registered to something and object bar is registered to the same object with a different
signal it will remove foo's signal only when foo is the only one registered to the object with that signal
Why it's good for the game

This was breaking #58918 when blood wasn't qdel'd post test. I'm so happy I found this.
It's a rare case, so I doubt it'll effect a lot of things, but I can trust UnregisterSignal again, which is very nice.
This commit is contained in:
LemonInTheDark
2021-05-20 22:55:47 +12:00
committed by GitHub
parent fab4f86ae9
commit 60d58d2d35
+2
View File
@@ -235,6 +235,8 @@
target.comp_lookup = null
break
if(0)
if(lookup[sig] != src)
continue
lookup -= sig
if(!length(lookup))
target.comp_lookup = null