diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 2eb3d0b36ed..c88dd0671b1 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -616,7 +616,7 @@ so as to remain in compliance with the most up-to-date laws." if(stone) if(alert(usr, "Do you want to be captured by [stoner]'s soul stone? This will destroy your corpse and make it \ impossible for you to get back into the game as your regular character.",, "No", "Yes") == "Yes") - stone.opt_in = TRUE + stone?.opt_in = TRUE /obj/screen/alert/notify_soulstone/Destroy() stone = null diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index db507ba2d5a..2472491fab6 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -198,13 +198,7 @@ apply_mode() /obj/machinery/alarm/New(loc, direction, building = 0) - . = ..() - GLOB.air_alarms += src - GLOB.air_alarms = sortAtom(GLOB.air_alarms) - - wires = new(src) - - if(building) + if(building) // Do this first since the Init uses this later on. TODO refactor to just use an Init if(loc) src.loc = loc @@ -214,10 +208,15 @@ buildstage = 0 wiresexposed = 1 set_pixel_offsets_from_dir(-24, 24, -24, 24) - update_icon() - return - first_run() + . = ..() + GLOB.air_alarms += src + GLOB.air_alarms = sortAtom(GLOB.air_alarms) + + wires = new(src) + + if(!building) + first_run() /obj/machinery/alarm/Destroy() SStgui.close_uis(wires) diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 1002ff117c1..02e797900b9 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -78,6 +78,8 @@ for(var/atom/T in get_turf(D)) D.reagents.reaction(T) sleep(3) + if(QDELETED(D)) + return qdel(D)