mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 18:32:03 +00:00
Fixes inventory bugs
Fixes #4605 Fixes #4628 I found out why these were being improperly pooled, thanks to skowron for producing a case to reproduce and view the variables of. On login or when reset_screen() was called for a mob that had an inventory open the inventory obj/screen's were being pooled and being reused elsewhere on other objects. Hilarity ensues!
This commit is contained in:
@@ -72,7 +72,7 @@
|
||||
if(spell_masters)
|
||||
for(var/obj/screen/movable/spell_master/spell_master in spell_masters)
|
||||
client.screen += spell_master
|
||||
spell_master.toggle_open(spell_master.showing + 1)
|
||||
spell_master.toggle_open(1)
|
||||
|
||||
if (isobj(loc))
|
||||
var/obj/location = loc
|
||||
|
||||
@@ -7,9 +7,12 @@
|
||||
unset_machine()
|
||||
qdel(hud_used)
|
||||
if(client)
|
||||
for(var/obj/screen/movable/spell_master/spell_master in spell_masters)
|
||||
returnToPool(spell_master)
|
||||
remove_screen_obj_references()
|
||||
for(var/atom/movable/AM in client.screen)
|
||||
if(istype(AM,/obj/screen))
|
||||
var/obj/screen/screenobj = AM
|
||||
if(istype(screenobj) && screenobj.pool_on_reset())
|
||||
returnToPool(AM)
|
||||
else
|
||||
qdel(AM)
|
||||
|
||||
Reference in New Issue
Block a user