Turns out, polyobject stuff has its own way of adding thinkers into the thinkerlist and hence thinker->cachable was never initialised since i didnt notice it before , and due to the ambigous check for thinker->cachable, non mobj thinkers were added into the mobjcache
This one has a more explicit check and also proper initialises stuff in PolyObj_AddThinker
basically https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2200
but without the crashing
Turns out, polyobject stuff has its own way of adding thinkers into the thinkerlist and hence thinker->cachable was never initialised since i didnt notice it before , and due to the ambigous check for thinker->cachable, non mobj thinkers were added into the mobjcache
This one has a more explicit check and also proper initialises stuff in PolyObj_AddThinker
technically, PolyObj_AddThinker doesent init thinker->references at all, which does lead to their thinkers being unable to removed most of the time (P_RemoveThinkerDelayed checks if the references are 0 before freeing thinkers) so imho it should also be init there. however knowing this game, that might cause issues in netgames or smth? so no clue, ill just leave it for now
technically, PolyObj_AddThinker doesent init thinker->references at all, which does lead to their thinkers being unable to removed most of the time (P_RemoveThinkerDelayed checks if the references are 0 before freeing thinkers) so imho it should also be init there. however knowing this game, that might cause issues in netgames or smth? so no clue, ill just leave it for now
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
basically https://git.do.srb2.org/STJr/SRB2/-/merge_requests/2200
but without the crashing
Turns out, polyobject stuff has its own way of adding thinkers into the thinkerlist and hence thinker->cachable was never initialised since i didnt notice it before , and due to the ambigous check for thinker->cachable, non mobj thinkers were added into the mobjcache
This one has a more explicit check and also proper initialises stuff in PolyObj_AddThinker
technically, PolyObj_AddThinker doesent init thinker->references at all, which does lead to their thinkers being unable to removed most of the time (P_RemoveThinkerDelayed checks if the references are 0 before freeing thinkers) so imho it should also be init there. however knowing this game, that might cause issues in netgames or smth? so no clue, ill just leave it for now