From a97f98520041923a666c5861850931c6d419727f Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Fri, 10 Jan 2014 16:45:59 -0700 Subject: [PATCH] Adds developer-level access to ZAS settings. Fixes bug which would always let heat move through doors. Conflicts: code/modules/admin/admin_verbs.dm --- code/ZAS/Debug.dm | 10 +++++++-- code/ZAS/Variable Settings.dm | 6 +++--- code/ZAS/ZAS_Zones.dm | 35 ++++++++++++++++--------------- code/modules/admin/admin_verbs.dm | 6 +++++- 4 files changed, 34 insertions(+), 23 deletions(-) diff --git a/code/ZAS/Debug.dm b/code/ZAS/Debug.dm index 5ac704cf9fa..39f5a7caabd 100644 --- a/code/ZAS/Debug.dm +++ b/code/ZAS/Debug.dm @@ -134,6 +134,7 @@ zone/proc/DebugDisplay(client/client) client/proc/TestZASRebuild() + set category = "Debug" // var/turf/turf = get_turf(mob) var/zone/current_zone = mob.loc:zone if(!current_zone) @@ -155,7 +156,7 @@ client/proc/TestZASRebuild() for(var/direction in cardinal) var/turf/simulated/adjacent = get_step(current, direction) - if(!current.ZAirPass(adjacent)) + if(!current.ZCanPass(adjacent)) continue if(turfs.Find(adjacent)) current_adjacents += adjacent @@ -210,4 +211,9 @@ client/proc/TestZASRebuild() for(var/turf/current in turfs) current.overlays -= overlays - return final_arrangement \ No newline at end of file + return final_arrangement + +/client/proc/ZASSettings() + set category = "Debug" + + vsc.SetDefault(mob) \ No newline at end of file diff --git a/code/ZAS/Variable Settings.dm b/code/ZAS/Variable Settings.dm index 29463a86900..92841a02dcd 100644 --- a/code/ZAS/Variable Settings.dm +++ b/code/ZAS/Variable Settings.dm @@ -65,9 +65,9 @@ var/global/vs_control/vsc = new var/airflow_mob_slowdown_NAME = "Airflow Slowdown" var/airflow_mob_slowdown_DESC = "Time in tenths of a second to add as a delay to each movement by a mob if they are fighting the pull of the airflow." - var/connection_insulation = 0 + var/connection_insulation = 1 var/connection_insulation_NAME = "Connections - Insulation" - var/connection_insulation_DESC = "Boolean, should zones conduct heat through doors?" + var/connection_insulation_DESC = "Boolean, should doors forbid heat transfer?" var/connection_temperature_delta = 10 var/connection_temperature_delta_NAME = "Connections - Temperature Difference" @@ -288,7 +288,7 @@ var/global/vs_control/vsc = new airflow_speed_decay = 1 airflow_delay = 20 airflow_mob_slowdown = 3 - connection_insulation = 1 + connection_insulation = 0 world << "\blue [key_name(user)] changed the global plasma/ZAS settings to \"[def]\"" diff --git a/code/ZAS/ZAS_Zones.dm b/code/ZAS/ZAS_Zones.dm index 4fec3a36d58..7a47435fc8a 100644 --- a/code/ZAS/ZAS_Zones.dm +++ b/code/ZAS/ZAS_Zones.dm @@ -363,25 +363,26 @@ var/list/CounterDoorDirections = list(SOUTH,EAST) //Which directions doors turfs Z.interactions_with_neighbors++ interactions_with_neighbors++ - for(var/zone/Z in closed_connection_zones) - //If that zone has already processed, skip it. - if(Z.last_update > last_update || !Z.air) - continue - - var/handle_temperature = abs(air.temperature - Z.air.temperature) > vsc.connection_temperature_delta - - if(Z.status == ZONE_SLEEPING) - if (handle_temperature) - Z.SetStatus(ZONE_ACTIVE) - else + if(!vsc.connection_insulation) + for(var/zone/Z in closed_connection_zones) + //If that zone has already processed, skip it. + if(Z.last_update > last_update || !Z.air) continue - if(air && Z.air) - if( handle_temperature ) - ShareHeat(air, Z.air, closed_connection_zones[Z]) + var/handle_temperature = abs(air.temperature - Z.air.temperature) > vsc.connection_temperature_delta - Z.interactions_with_neighbors++ - interactions_with_neighbors++ + if(Z.status == ZONE_SLEEPING) + if (handle_temperature) + Z.SetStatus(ZONE_ACTIVE) + else + continue + + if(air && Z.air) + if( handle_temperature ) + ShareHeat(air, Z.air, closed_connection_zones[Z]) + + Z.interactions_with_neighbors++ + interactions_with_neighbors++ if(!interactions_with_neighbors && !interactions_with_unsim) SetStatus(ZONE_SLEEPING) @@ -657,7 +658,7 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles, dbg_output) proc/ShareHeat(datum/gas_mixture/A, datum/gas_mixture/B, connecting_tiles) //This implements a simplistic version of the Stefan-Boltzmann law. - var/energy_delta = ((A.temperature - B.temperature) ** 4) * 5.6704e-8 * connecting_tiles + var/energy_delta = ((A.temperature - B.temperature) ** 4) * 5.6704e-8 * connecting_tiles * 2.5 var/maximum_energy_delta = max(0, min(A.temperature * A.heat_capacity() * A.group_multiplier, B.temperature * B.heat_capacity() * B.group_multiplier)) if(maximum_energy_delta > abs(energy_delta)) if(energy_delta < 0) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 842239fc523..27a4c2b7738 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -66,7 +66,10 @@ var/list/admin_verbs_admin = list( /client/proc/man_up, /client/proc/global_man_up, /client/proc/response_team, // Response Teams admin verb - /client/proc/delbook + /client/proc/delbook, + /client/proc/toggle_antagHUD_use, + /client/proc/toggle_antagHUD_restrictions, + /client/proc/allow_character_respawn /* Allows a ghost to respawn */ ) var/list/admin_verbs_ban = list( /client/proc/unban_panel, @@ -127,6 +130,7 @@ var/list/admin_verbs_debug = list( /client/proc/cmd_admin_list_open_jobs, /client/proc/Debug2, /client/proc/kill_air, + /client/proc/ZASSettings, /client/proc/cmd_debug_make_powernets, /client/proc/kill_airgroup, /client/proc/debug_controller,