anchor.diff:  /datum/gas_mixture/proc/heat_capacity()
   	var/heat_capacity = HEAT_CAPACITY_CALCULATION(oxygen,carbon_dioxide,nitrogen,toxins)
   
  -	if(trace_gases.len)
  -		for(var/datum/gas/trace_gas in trace_gases)
  -			heat_capacity += trace_gas.moles*trace_gas.specific_heat
  +	for(var/gas in trace_gases)
  +		var/datum/gas/trace_gas = gas
  +		heat_capacity += trace_gas.moles*trace_gas.specific_heat
   	return heat_capacity
   
   
   /datum/gas_mixture/proc/heat_capacity_archived()
   	var/heat_capacity_archived = HEAT_CAPACITY_CALCULATION(oxygen_archived,carbon_dioxide_archived,nitrogen_archived,toxins_archived)
   
  -	if(trace_gases.len)
  -		for(var/datum/gas/trace_gas in trace_gases)
  -			heat_capacity_archived += trace_gas.moles_archived*trace_gas.specific_heat
  +	for(var/gas in trace_gases)
  +		var/datum/gas/trace_gas = gas
  +		heat_capacity_archived += trace_gas.moles_archived*trace_gas.specific_heat
   	return heat_capacity_archived
   
   
   /datum/gas_mixture/proc/total_moles()
   	var/moles = oxygen + carbon_dioxide + nitrogen + toxins
   
  -	if(trace_gases.len)
  -		for(var/datum/gas/trace_gas in trace_gases)
  -			moles += trace_gas.moles
  +	for(var/gas in trace_gases)
  +		var/datum/gas/trace_gas = gas
  +		moles += trace_gas.moles
   	return moles
   
   
  
positive.code: 
  	var/list/trace_types_considered = list()
  
  	if(trace_gases.len)
  		for(var/datum/gas/trace_gas in trace_gases)
  
  			var/datum/gas/corresponding = locate(trace_gas.type) in sharer.trace_gases
  			var/delta = 0
  
  			if(corresponding)
  				delta = QUANTIZE(trace_gas.moles_archived - corresponding.moles_archived)/(atmos_adjacent_turfs+1)
  			else
  				corresponding = new trace_gas.type()
  				sharer.trace_gases += corresponding
  
  				delta = trace_gas.moles_archived/(atmos_adjacent_turfs+1)
  
  			trace_gas.moles -= delta
  			corresponding.moles += delta
  
  			if(delta)
  				var/individual_heat_capacity = trace_gas.specific_heat*delta
  				if(delta > 0)
  					heat_capacity_self_to_sharer += individual_heat_capacity
  				else
  					heat_capacity_sharer_to_self -= individual_heat_capacity
  
  			moved_moles += delta
  			last_share += abs(delta)
  
  			trace_types_considered += trace_gas.type
  
  
  	if(sharer.trace_gases.len)
  		for(var/datum/gas/trace_gas in sharer.trace_gases)
  			if(trace_gas.type in trace_types_considered) continue
  			else
  				var/datum/gas/corresponding
  				var/delta = 0
  
  				corresponding = new trace_gas.type()
  				trace_gases += corresponding
  
  				delta = trace_gas.moles_archived/5
  
  				trace_gas.moles -= delta
  				corresponding.moles += delta
  
  				//Guaranteed transfer from sharer to self
  				var/individual_heat_capacity = trace_gas.specific_heat*delta
  				heat_capacity_sharer_to_self += individual_heat_capacity
  
  				moved_moles += -delta
  				last_share += abs(delta)
  
  	if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER)
  		var/new_self_heat_capacity = old_self_heat_capacity + heat_capacity_sharer_to_self - heat_capacity_self_to_sharer
  
negative.code: 	if(abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND)
  		return 0
  
  	for(var/gas in trace_gases)
  		var/datum/gas/trace_gas = gas
  		if(trace_gas.moles_archived > MINIMUM_AIR_TO_SUSPEND*4)
  			return 0
  
  	return 1
  
  /datum/gas_mixture/proc/check_turf_total(turf/model) //I want this proc to die a painful death
  	var/delta_oxygen = (oxygen - model.oxygen)
  	var/delta_carbon_dioxide = (carbon_dioxide - model.carbon_dioxide)
  	var/delta_nitrogen = (nitrogen - model.nitrogen)
  