diff --git a/code/ATMOSPHERICS/components/unary/oxygen_generator.dm b/code/ATMOSPHERICS/components/unary/oxygen_generator.dm
index 721365e6be2..27819ddac3e 100644
--- a/code/ATMOSPHERICS/components/unary/oxygen_generator.dm
+++ b/code/ATMOSPHERICS/components/unary/oxygen_generator.dm
@@ -42,6 +42,7 @@ obj/machinery/atmospherics/unary/oxygen_generator
air_contents.temperature = (current_heat_capacity*air_contents.temperature + 20*added_oxygen*T0C)/(current_heat_capacity+20*added_oxygen)
air_contents.oxygen += added_oxygen
+ air_contents.update_values()
if(network)
network.update = 1
diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
index 5606d8113f8..f2ce4a8621a 100644
--- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
@@ -124,6 +124,7 @@
//Remix the resulting gases
filtered_out.update_values()
+ removed.update_values()
air_contents.merge(filtered_out)
loc.assume_air(removed)
diff --git a/code/ATMOSPHERICS/datum_pipeline.dm b/code/ATMOSPHERICS/datum_pipeline.dm
index 56cb9898013..1b63e605481 100644
--- a/code/ATMOSPHERICS/datum_pipeline.dm
+++ b/code/ATMOSPHERICS/datum_pipeline.dm
@@ -50,6 +50,7 @@ datum/pipeline
member.air_temporary.trace_gases += corresponding
corresponding.moles = trace_gas.moles*member.volume/air.volume
+ member.air_temporary.update_values()
proc/build_pipeline(obj/machinery/atmospherics/pipe/base)
air = new
diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm
index 577bf562dce..52aae83099d 100644
--- a/code/ATMOSPHERICS/pipes.dm
+++ b/code/ATMOSPHERICS/pipes.dm
@@ -341,6 +341,7 @@ obj/machinery/atmospherics/pipe
New()
initialize_directions = dir
+ air_temporary.update_values()
..()
process()
diff --git a/code/WorkInProgress/AI_Visibility.dm b/code/WorkInProgress/AI_Visibility.dm
index 79567037892..a51e04b0cd6 100644
--- a/code/WorkInProgress/AI_Visibility.dm
+++ b/code/WorkInProgress/AI_Visibility.dm
@@ -369,9 +369,10 @@ var/datum/cameranet/cameranet = new()
return 0
/mob/living/silicon/ai/switchCamera(var/obj/machinery/camera/C)
- eyeobj.loc = C.loc
- cameranet.visibility(eyeobj)
- return
+ if(C && isturf(C.loc))
+ eyeobj.loc = C.loc
+ cameranet.visibility(eyeobj)
+ return
/mob/living/silicon/ai/attack_ai(var/mob/user as mob)
if (user != src)
diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm
index d07228e056b..0c6792aeaec 100644
--- a/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Tajara/tajaran.dm
@@ -4,7 +4,7 @@
voice_name = "tajaran"
icon = 'tajaran.dmi'
icon_state = "m-none"
- var/list/tajspeak_letters
+ var/list/tajspeak_letters = list("~","*","-")
//
universal_speak = 1 //hacky fix until someone can figure out how to make them only understand humans
taj_talk_understand = 1
@@ -12,8 +12,6 @@
examine_text = "one of the cat-like Tajarans."
/mob/living/carbon/human/tajaran/New()
- tajspeak_letters = new/list("~","*","-")
-
var/g = "m"
if (gender == FEMALE)
g = "f"
diff --git a/code/defines/obj/supplypacks.dm b/code/defines/obj/supplypacks.dm
index d5398de3498..c4a7f02cd53 100755
--- a/code/defines/obj/supplypacks.dm
+++ b/code/defines/obj/supplypacks.dm
@@ -806,7 +806,9 @@
/datum/supply_packs/contraband/New()
var/list/tempContains = list()
- for(var/i = 0,i<5,i++)
+ for(1 to 5)
+ if(!contains || !contains.len)
+ break //Sanity checking.
tempContains += pick(contains)
- src.contains = tempContains
+ contains = tempContains
..()
\ No newline at end of file
diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm
index 75d80376b85..213ff565467 100644
--- a/code/game/machinery/computer/Operating.dm
+++ b/code/game/machinery/computer/Operating.dm
@@ -42,20 +42,34 @@
dat += "Close
" //| Update"
if(src.table && (src.table.check_victim()))
src.victim = src.table.victim
- dat += {"
-Patient Information:
-
-Name: [src.victim.real_name]
-Age: [src.victim.age]
-Blood Type: [src.victim.dna.b_type]
-
-Health: [src.victim.health]
-Brute Damage: [src.victim.getBruteLoss()]
-Toxins Damage: [src.victim.getToxLoss()]
-Fire Damage: [src.victim.getFireLoss()]
-Suffocation Damage: [src.victim.getOxyLoss()]
-Patient Status: [src.victim.stat ? "Non-Responsive" : "Stable"]
-"}
+ if(istype(victim))
+ dat += {"
+ Patient Information:
+
+ Name: [src.victim.real_name]
+ Age: [src.victim.age]
+ Blood Type: [(victim.dna? victim.dna.b_type : "ERROR")]
+
+ Health: [src.victim.health]
+ Brute Damage: [src.victim.getBruteLoss()]
+ Toxins Damage: [src.victim.getToxLoss()]
+ Fire Damage: [src.victim.getFireLoss()]
+ Suffocation Damage: [src.victim.getOxyLoss()]
+ Patient Status: [src.victim.stat ? "Non-Responsive" : "Stable"]
+ "}
+ else if(istype(victim, /mob/living))
+ dat += {"
+ Patient Information:
+
+ Name: [src.victim.real_name]
+ Age: [src.victim.age]
+ Health: [src.victim.health]
+ Brute Damage: [src.victim.getBruteLoss()]
+ Toxins Damage: [src.victim.getToxLoss()]
+ Fire Damage: [src.victim.getFireLoss()]
+ Suffocation Damage: [src.victim.getOxyLoss()]
+ Patient Status: [src.victim.stat ? "Non-Responsive" : "Stable"]
+ "}
else
src.victim = null
dat += {"
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index 3738a409210..9e223da1b16 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -173,6 +173,8 @@
fired()
var/turf/curloc = get_turf(src)
var/turf/targloc = get_turf(target)
+ if(!curloc || !targloc)
+ return 0
yo = targloc.y - curloc.y
xo = targloc.x - curloc.x
target = targloc
diff --git a/maps/RandomZLevels/assistantChamber.dmm b/maps/RandomZLevels/assistantChamber.dmm
index d71885ff0c9..4d42f382745 100644
--- a/maps/RandomZLevels/assistantChamber.dmm
+++ b/maps/RandomZLevels/assistantChamber.dmm
@@ -22,15 +22,14 @@
"v" = (/obj/item/brain,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"w" = (/obj/item/weapon/gun/energy/laser/captain,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
"x" = (/obj/item/weapon/gun/projectile/deagle/gold,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
-"y" = (/obj/item/weapon/sord,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
-"z" = (/obj/item/weapon/gun/energy/lasercannon,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
-"A" = (/obj/item/weapon/gun/energy/crossbow/largecrossbow,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
-"B" = (/obj/item/weapon/gun/energy/pulse_rifle/destroyer,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
-"C" = (/obj/item/toy/spinningtoy,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
-"D" = (/obj/item/weapon/card/id/centcom,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
-"E" = (/obj/item/weapon/gun/grenadelauncher,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
-"F" = (/obj/item/weapon/chemsprayer,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
-"G" = (/obj/machinery/turret{dir = 8; lasers = 1; name = "Angry Turret"},/obj/machinery/light,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
+"y" = (/obj/item/weapon/gun/energy/lasercannon,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
+"z" = (/obj/item/weapon/gun/energy/crossbow/largecrossbow,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
+"A" = (/obj/item/weapon/gun/energy/pulse_rifle/destroyer,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
+"B" = (/obj/item/toy/spinningtoy,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
+"C" = (/obj/item/weapon/card/id/centcom,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
+"D" = (/obj/item/weapon/gun/grenadelauncher,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
+"E" = (/obj/item/weapon/chemsprayer,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
+"F" = (/obj/machinery/turret{dir = 8; lasers = 1; name = "Angry Turret"},/obj/machinery/light,/turf/simulated/floor{icon_state = "whiteshiny"},/area/turret_protected/AssistantRoom)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -48,10 +47,10 @@ aaaaaaaaabccddddddccbaaaaaaaaa
aaaaaaaaabcefghijklcbaaaaaaaaa
aaaaaaaaabcemnopqrlcbaaaaaaaaa
aaaaaaaaabcestquvqlcbaaaaaaaaa
-aaaaaaaaabcewqqxqylcbaaaaaaaaa
-aaaaaaaaabceqzAqBqlcbaaaaaaaaa
-aaaaaaaaabceCqDqEFlcbaaaaaaaaa
-aaaaaaaaabccGGGGGGccbaaaaaaaaa
+aaaaaaaaabcewqqxqqlcbaaaaaaaaa
+aaaaaaaaabceqyzqAqlcbaaaaaaaaa
+aaaaaaaaabceBqCqDElcbaaaaaaaaa
+aaaaaaaaabccFFFFFFccbaaaaaaaaa
aaaaaaaaabccccccccccbaaaaaaaaa
aaaaaaaaabbbbbbbbbbbbaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa