diff --git a/code/FEA/FEA_gas_mixture.dm b/code/FEA/FEA_gas_mixture.dm
index da7f9b79342..4c9a2091d64 100644
--- a/code/FEA/FEA_gas_mixture.dm
+++ b/code/FEA/FEA_gas_mixture.dm
@@ -475,6 +475,7 @@ datum
return share(sharer)*/
check_gas_mixture(datum/gas_mixture/sharer)
+ if(!sharer) return 0
var/delta_oxygen = (oxygen_archived - sharer.oxygen_archived)/5
var/delta_carbon_dioxide = (carbon_dioxide_archived - sharer.carbon_dioxide_archived)/5
var/delta_nitrogen = (nitrogen_archived - sharer.nitrogen_archived)/5
diff --git a/code/defines/procs/helpers.dm b/code/defines/procs/helpers.dm
index 6dc81d9191b..70284972d79 100644
--- a/code/defines/procs/helpers.dm
+++ b/code/defines/procs/helpers.dm
@@ -1269,6 +1269,7 @@ proc/listclearnulls(list/list)
var/target_loc = target.loc
var/holding = user.equipped()
sleep(time)
+ if(!user || !target) return 0
if ( user.loc == user_loc && target.loc == target_loc && user.equipped() == holding && !( user.stat ) && ( !user.stunned && !user.weakened && !user.paralysis && !user.lying ) )
return 1
else
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index 8214e3182b6..a3d2f3ef7d6 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -66,11 +66,12 @@
dat += text("[]\t-Toxin Content %: []
", (occupant.getToxLoss() < 60 ? "" : ""), occupant.getToxLoss())
dat += text("[]\t-Burn Severity %: []
", (occupant.getFireLoss() < 60 ? "" : ""), occupant.getFireLoss())
dat += text("
Paralysis Summary %: [] ([] seconds left!)
", occupant.paralysis, round(occupant.paralysis / 4))
- dat += text("Inaprovaline units: [] units
", occupant.reagents.get_reagent_amount("inaprovaline"))
- dat += text("Soporific: [] units
", occupant.reagents.get_reagent_amount("stoxin"))
- dat += text("Dermaline: [] units
", occupant.reagents.get_reagent_amount("dermaline"))
- dat += text("Bicaridine: [] units
", occupant.reagents.get_reagent_amount("bicaridine"))
- dat += text("Dexalin: [] units
", occupant.reagents.get_reagent_amount("dexalin"))
+ if(occupant.reagents)
+ dat += text("Inaprovaline units: [] units
", occupant.reagents.get_reagent_amount("inaprovaline"))
+ dat += text("Soporific: [] units
", occupant.reagents.get_reagent_amount("stoxin"))
+ dat += text("Dermaline: [] units
", occupant.reagents.get_reagent_amount("dermaline"))
+ dat += text("Bicaridine: [] units
", occupant.reagents.get_reagent_amount("bicaridine"))
+ dat += text("Dexalin: [] units
", occupant.reagents.get_reagent_amount("dexalin"))
dat += text("
Refresh meter readings each second
Inject Inaprovaline
Inject Soporific
Inject Dermaline
Inject Bicaridine
Inject Dexalin", src, src, src, src, src, src)
else
dat += "The sleeper is empty."
diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm
index 33098ad8fe7..0db85a21b42 100644
--- a/code/game/machinery/bots/mulebot.dm
+++ b/code/game/machinery/bots/mulebot.dm
@@ -919,7 +919,7 @@
var/list/kv = list(
"type" = "mulebot",
"name" = suffix,
- "loca" = loc.loc, // area
+ "loca" = (loc ? loc.loc : "Unknown"), // somehow loc can be null and cause a runtime - Quarxink
"mode" = mode,
"powr" = (cell ? cell.percent() : 0),
"dest" = destination,
diff --git a/code/game/throwing.dm b/code/game/throwing.dm
index d79e40a0aec..588557eebbf 100644
--- a/code/game/throwing.dm
+++ b/code/game/throwing.dm
@@ -130,7 +130,7 @@
..()
/atom/movable/proc/throw_at(atom/target, range, speed)
- if(!target) return 0
+ if(!target || !src) return 0
//use a modified version of Bresenham's algorithm to get from the atom's current position to that of the target
src.throwing = 1
@@ -182,7 +182,6 @@
if(dist_since_sleep >= speed)
dist_since_sleep = 0
sleep(1)
-
a = get_area(src.loc)
else
var/error = dist_y/2 - dist_x
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 93bcef759c2..f5839032309 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -599,10 +599,11 @@
for (var/mob/living/silicon/decoy/D in world)
if (eye)
eye = D
- if (eye)
- client.eye = eye
- else
- client.eye = client.mob
+ if (client)
+ if (eye)
+ client.eye = eye
+ else
+ client.eye = client.mob
/mob/verb/cancel_camera()
set name = "Cancel Camera View"
@@ -959,22 +960,24 @@ note dizziness decrements automatically in the mob's Life() proc.
boom.icon_state = "start"
sleep(40)
- mob << sound('explosionfar.ogg')
- boom.icon_state = "end"
- if(!station_missed) flick("explode", boom)
- else flick("explode2", boom)
+ if(boom && mob)
+ mob << sound('explosionfar.ogg')
+ boom.icon_state = "end"
+ if(!station_missed) flick("explode", boom)
+ else flick("explode2", boom)
sleep(40)
- switch(ticker.mode.name)
- if("nuclear emergency")
- if(!station_missed) boom.icon_state = "loss_nuke"
- else boom.icon_state = "loss_nuke2"
- if("malfunction")
- boom.icon_state = "loss_malf"
- if("blob")
- return//Nothin here yet and the general one does not fit.
- else
- boom.icon_state = "loss_general"
+ if(boom)
+ switch(ticker.mode.name)
+ if("nuclear emergency")
+ if(!station_missed) boom.icon_state = "loss_nuke"
+ else boom.icon_state = "loss_nuke2"
+ if("malfunction")
+ boom.icon_state = "loss_malf"
+ if("blob")
+ return//Nothin here yet and the general one does not fit.
+ else
+ boom.icon_state = "loss_general"
return