anchor.diff:  /datum/gas_mixture/proc/share(datum/gas_mixture/sharer)
   	//Performs air sharing calculations between two gas_mixtures assuming only 1 boundary length
   	//Return: amount of gas exchanged (+ if sharer received)
  -/datum/gas_mixture/proc/mimic(turf/model)
  +/datum/gas_mixture/proc/mimic(turf/model) //I want this proc to die a painful death
   	//Similar to share(...), except the model is not modified
   	//Return: amount of gas exchanged
   
  -/datum/gas_mixture/proc/check_turf(turf/model)
  +/datum/gas_mixture/proc/check_turf(turf/model) //I want this proc to die a painful death
   	//Returns: 0 if self-check failed or 1 if check passes
   
  -/datum/gas_mixture/proc/temperature_mimic(turf/model, conduction_coefficient)
  +/datum/gas_mixture/proc/temperature_mimic(turf/model, conduction_coefficient) //I want this proc to die a painful death
   
   /datum/gas_mixture/proc/temperature_share(datum/gas_mixture/sharer, conduction_coefficient)
   
  
positive.code: 	if(total_moles() > MINIMUM_AIR_TO_SUSPEND)
  		if((abs(temperature-sample.temperature) > MINIMUM_TEMPERATURE_DELTA_TO_SUSPEND) && \
  			((temperature < (1-MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND)*sample.temperature) || (temperature > (1+MINIMUM_TEMPERATURE_RATIO_TO_SUSPEND)*sample.temperature)))
  			//world << "temp fail [temperature] & [sample.temperature]"
  			return 0
  
  	if(sample.trace_gases.len)
  		for(var/datum/gas/trace_gas in sample.trace_gases)
  			if(trace_gas.moles_archived > MINIMUM_AIR_TO_SUSPEND)
  				var/datum/gas/corresponding = locate(trace_gas.type) in trace_gases
  				if(corresponding)
  					if((abs(trace_gas.moles - corresponding.moles) > MINIMUM_AIR_TO_SUSPEND) && \
  						((corresponding.moles < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*trace_gas.moles) || (corresponding.moles > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*trace_gas.moles)))
  						return 0
  				else
  					return 0
  
  	if(trace_gases.len)
  		for(var/datum/gas/trace_gas in trace_gases)
  			if(trace_gas.moles > MINIMUM_AIR_TO_SUSPEND)
  				var/datum/gas/corresponding = locate(trace_gas.type) in sample.trace_gases
  				if(corresponding)
  					if((abs(trace_gas.moles - corresponding.moles) > MINIMUM_AIR_TO_SUSPEND) && \
  						((trace_gas.moles < (1-MINIMUM_AIR_RATIO_TO_SUSPEND)*corresponding.moles) || (trace_gas.moles > (1+MINIMUM_AIR_RATIO_TO_SUSPEND)*corresponding.moles)))
  						return 0
  				else
  					return 0
  	return 1
  
  
  
  
  
negative.code: #define QUANTIZE(variable)		(round(variable,0.0001))
  
  /datum/gas
  	var/moles = 0
  	var/specific_heat = 0
  
  	var/moles_archived = 0
  
  /datum/gas/sleeping_agent
  		specific_heat = 40
  
  /datum/gas/oxygen_agent_b
  		specific_heat = 300
  
  /datum/gas/volatile_fuel
  		specific_heat = 30
  
  
  /datum/gas_mixture
  