diff --git a/code/game/objects/devices/PDA/cart.dm b/code/game/objects/devices/PDA/cart.dm
index ef012e92fdd..2461604742a 100644
--- a/code/game/objects/devices/PDA/cart.dm
+++ b/code/game/objects/devices/PDA/cart.dm
@@ -515,8 +515,9 @@ Code:
for (var/obj/item/weapon/mop/M in world)
var/turf/ml = get_turf(M)
- if (ml.z != cl.z)
- continue
+ if(ml)
+ if (ml.z != cl.z)
+ continue
ldat += "Mop - \[[ml.x],[ml.y]\] - [M.reagents.total_volume ? "Wet" : "Dry"]
"
diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm
index a7fc4875349..8f19124f02f 100644
--- a/code/game/objects/structures.dm
+++ b/code/game/objects/structures.dm
@@ -84,7 +84,9 @@ obj/structure
Tsrc.ReplaceWithWall()
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
- W:use(2)
+ for(var/turf/simulated/wall/X in Tsrc.loc)
+ if(X) X.add_hiddenprint(usr)
+ if (W) W:use(2)
del(src)
return
@@ -99,6 +101,8 @@ obj/structure
Tsrc.ReplaceWithRWall()
for(var/obj/machinery/atmospherics/pipe/P in Tsrc)
P.layer = 1
+ for(var/turf/simulated/wall/r_wall/X in Tsrc.loc)
+ if(X) X.add_hiddenprint(usr)
if (W)
W:use(1)
del(src)
diff --git a/code/modules/mob/living/carbon/metroid/life.dm b/code/modules/mob/living/carbon/metroid/life.dm
index 13ec9d07430..737872121ca 100644
--- a/code/modules/mob/living/carbon/metroid/life.dm
+++ b/code/modules/mob/living/carbon/metroid/life.dm
@@ -359,7 +359,10 @@
Tempstun = 1
if(bodytemperature <= (T0C - 50)) // hurt temperature
- adjustFireLoss(round(sqrt(bodytemperature)) * 2)
+ if(bodytemperature <= 50) // sqrting negative numbers is bad
+ adjustFireLoss(200)
+ else
+ adjustFireLoss(round(sqrt(bodytemperature)) * 2)
else
Tempstun = 0
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index b1888dadd89..aebdcb2a1d0 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -215,16 +215,17 @@
if(L.len == 2)
L -= mob
var/mob/M = L[1]
- if ((get_dist(mob, M) <= 1 || M.loc == mob.loc))
- var/turf/T = mob.loc
- . = ..()
- if (isturf(M.loc))
- var/diag = get_dir(mob, M)
- if ((diag - 1) & diag)
- else
- diag = null
- if ((get_dist(mob, M) > 1 || diag))
- step(M, get_dir(M.loc, T))
+ if(M)
+ if ((get_dist(mob, M) <= 1 || M.loc == mob.loc))
+ var/turf/T = mob.loc
+ . = ..()
+ if (isturf(M.loc))
+ var/diag = get_dir(mob, M)
+ if ((diag - 1) & diag)
+ else
+ diag = null
+ if ((get_dist(mob, M) > 1 || diag))
+ step(M, get_dir(M.loc, T))
else
for(var/mob/M in L)
M.other_mobs = 1