diff --git a/code/controllers/subsystems/tgui.dm b/code/controllers/subsystems/tgui.dm index 6810a23a7f..e626b7201d 100644 --- a/code/controllers/subsystems/tgui.dm +++ b/code/controllers/subsystems/tgui.dm @@ -266,13 +266,13 @@ SUBSYSTEM_DEF(tgui) * * return int The number of UIs closed. */ -/datum/controller/subsystem/tgui/proc/close_user_uis(mob/user, datum/src_object) +/datum/controller/subsystem/tgui/proc/close_user_uis(mob/user, datum/src_object, logout = FALSE) var/count = 0 if(length(user?.tgui_open_uis) == 0) return count for(var/datum/tgui/ui in user.tgui_open_uis) if(isnull(src_object) || ui.src_object == src_object) - ui.close() + ui.close(logout = logout) count++ return count @@ -318,7 +318,7 @@ SUBSYSTEM_DEF(tgui) * return int The number of UIs closed. */ /datum/controller/subsystem/tgui/proc/on_logout(mob/user) - close_user_uis(user) + close_user_uis(user, logout = TRUE) /** * private diff --git a/code/modules/nifsoft/nif.dm b/code/modules/nifsoft/nif.dm index a33daf0f85..6e276d0179 100644 --- a/code/modules/nifsoft/nif.dm +++ b/code/modules/nifsoft/nif.dm @@ -461,7 +461,10 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable //Uninstall a piece of software /obj/item/device/nif/proc/uninstall(var/datum/nifsoft/old_soft) - var/datum/nifsoft/NS = nifsofts[old_soft.list_pos] + var/datum/nifsoft/NS + if(nifsofts) + NS = nifsofts[old_soft.list_pos] + if(!NS || NS != old_soft) return FALSE //what?? diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index f58376bbe8..2dbe340951 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -237,7 +237,7 @@ * optional force bool Send an update even if UI is not interactive. */ /datum/tgui/proc/send_update(custom_data, force) - if(!user.client || !initialized || closing) + if(!user?.client || !initialized || closing) return var/should_update_data = force || status >= STATUS_UPDATE window.send_message("update", get_payload( @@ -329,7 +329,8 @@ */ /datum/tgui/proc/process_status() var/prev_status = status - status = src_object.tgui_status(user, state) + if(src_object) + status = src_object.tgui_status(user, state) if(parent_ui) status = min(status, parent_ui.status) return prev_status != status