anchor.diff:  				//Calculate the firelevel.
   			var/firelevel = calculate_firelevel(liquid)
   
  -				//Reaches a maximum practical temperature of around 2750.
  -
  -			temperature = 1000*log(0.016*firelevel + 1.45)
  +				//Reaches a maximum practical temperature of around 4500.
  +
  +			//Increase temperature.
  +			temperature = max( 1700*log(0.4*firelevel + 1.23) , temperature )
   
   			//Consume some gas.
  -			var/consumed_gas = min(oxygen,0.002*firelevel,total_fuel) / fuel_sources
  +			var/consumed_gas = min(oxygen,0.0005*firelevel,total_fuel) / fuel_sources
   
   			oxygen -= consumed_gas
   
   			toxins = max(0,toxins-consumed_gas)
  +
  +			carbon_dioxide += consumed_gas*2
   
   			if(fuel)
   				fuel.moles -= consumed_gas
  
positive.code: 
  							//Change icon depending on the fuel, and thus temperature.
  							icon_state = "1"
  							if(firelevel > 25)
  								icon_state = "2"
  							if(firelevel > 100)
  								icon_state = "3"
  
  							//Ensure flow temperature is higher than minimum fire temperatures.
  
negative.code: 									//If extinguisher mist passed over the turf it's trying to spread to, don't spread and
  									//reduce firelevel.
  									if(enemy_tile.fire_protection > world.time-30)
  										firelevel -= 1.5
  										continue
  
  									//Spread the fire.
  									if(!(locate(/obj/fire) in enemy_tile))
  										if( prob( firelevel*10 ) )
  											new/obj/fire(enemy_tile,firelevel)
  
  					var/datum/gas_mixture/flow = air_contents.remove_ratio(0.25)
  					//The reason we're taking a part of the air instead of all of it is so that it doesn't jump to
  					//the fire's max temperature instantaneously.
  
  					if(flow)
  
  