diff --git a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm index 2e7707a725f..5725a7a8e9b 100644 --- a/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary_devices/vent_pump.dm @@ -128,66 +128,56 @@ /obj/machinery/atmospherics/unary/vent_pump/process_atmos() ..() - if((stat & (NOPOWER|BROKEN))) - return 0 + if(stat & (NOPOWER|BROKEN)) + return FALSE if(!node) - on = 0 + on = FALSE //broadcast_status() // from now air alarm/control computer should request update purposely --rastaf0 if(!on) - return 0 + return FALSE if(welded) if(air_contents.return_pressure() >= weld_burst_pressure && prob(5)) //the weld is on but the cover is welded shut, can it withstand the internal pressure? visible_message("The welded cover of [src] bursts open!") - for(var/mob/living/M in range(1, src)) + for(var/mob/living/M in range(1)) unsafe_pressure_release(M, air_contents.return_pressure()) //let's send everyone flying welded = FALSE update_icon() - return 0 + return FALSE var/datum/gas_mixture/environment = loc.return_air() var/environment_pressure = environment.return_pressure() - if(pump_direction) //internal -> external var/pressure_delta = 10000 - - if(pressure_checks&1) + if(pressure_checks & 1) pressure_delta = min(pressure_delta, (external_pressure_bound - environment_pressure)) - if(pressure_checks&2) + if(pressure_checks & 2) pressure_delta = min(pressure_delta, (air_contents.return_pressure() - internal_pressure_bound)) - if(pressure_delta > 0.5) - if(air_contents.temperature > 0) - var/transfer_moles = pressure_delta*environment.volume/(air_contents.temperature * R_IDEAL_GAS_EQUATION) - - var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) - - loc.assume_air(removed) - air_update_turf() - - parent.update = 1 + if(pressure_delta > 0.5 && air_contents.temperature > 0) + var/transfer_moles = pressure_delta * environment.volume / (air_contents.temperature * R_IDEAL_GAS_EQUATION) + var/datum/gas_mixture/removed = air_contents.remove(transfer_moles) + loc.assume_air(removed) + air_update_turf() + parent.update = TRUE else //external -> internal var/pressure_delta = 10000 - if(pressure_checks&1) + if(pressure_checks & 1) pressure_delta = min(pressure_delta, (environment_pressure - external_pressure_bound)) - if(pressure_checks&2) + if(pressure_checks & 2) pressure_delta = min(pressure_delta, (internal_pressure_bound - air_contents.return_pressure())) - if(pressure_delta > 0.5) - if(environment.temperature > 0) - var/transfer_moles = pressure_delta*air_contents.volume/(environment.temperature * R_IDEAL_GAS_EQUATION) + if(pressure_delta > 0.5 && environment.temperature > 0) + var/transfer_moles = pressure_delta * air_contents.volume / (environment.temperature * R_IDEAL_GAS_EQUATION) + var/datum/gas_mixture/removed = loc.remove_air(transfer_moles) + if(isnull(removed)) //in space + return + air_contents.merge(removed) + air_update_turf() + parent.update = TRUE - var/datum/gas_mixture/removed = loc.remove_air(transfer_moles) - if(isnull(removed)) //in space - return - - air_contents.merge(removed) - air_update_turf() - - parent.update = 1 - - return 1 + return TRUE //Radio remote control