diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index 7a8103f8120..5b799d0b5b7 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -17,12 +17,6 @@
var/area/Y = get_area(X)
return Y.name
-/proc/get_area_master(O)
- var/area/A = get_area(O)
- if(A && A.master)
- A = A.master
- return A
-
/proc/get_area_by_name(N) //get area by its name
for(var/area/A in world)
if(A.name == N)
@@ -81,13 +75,13 @@
return heard
/proc/alone_in_area(area/the_area, mob/must_be_alone, check_type = /mob/living/carbon)
- var/area/our_area = get_area_master(the_area)
+ var/area/our_area = get_area(the_area)
for(var/C in living_mob_list)
if(!istype(C, check_type))
continue
if(C == must_be_alone)
continue
- if(our_area == get_area_master(C))
+ if(our_area == get_area(C))
return 0
return 1
diff --git a/code/datums/wires/airalarm.dm b/code/datums/wires/airalarm.dm
index fa6df74fa03..9030adfa6d6 100644
--- a/code/datums/wires/airalarm.dm
+++ b/code/datums/wires/airalarm.dm
@@ -46,7 +46,7 @@
A.mode = 1 // AALARM_MODE_SCRUB
A.apply_mode()
if(WIRE_ALARM) // Clear alarms.
- var/area/AA = get_area_master(A)
+ var/area/AA = get_area(A)
if(AA.atmosalert(0, holder))
A.post_alert(0)
A.update_icon()
@@ -68,7 +68,7 @@
A.mode = 3 // AALARM_MODE_PANIC
A.apply_mode()
if(WIRE_ALARM) // Post alarm.
- var/area/AA = get_area_master(A)
+ var/area/AA = get_area(A)
if(AA.atmosalert(2, holder))
A.post_alert(2)
A.update_icon()
\ No newline at end of file
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 244e0886e52..5713e348ee1 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -45,7 +45,6 @@
var/safe = 0 //Is the area teleport-safe: no space / radiation / aggresive mobs / other dangers
var/no_air = null
- var/area/master // master area used for power calcluations
var/list/related // the other areas of the same type as this
var/parallax_movedir = 0
@@ -98,10 +97,9 @@ var/list/teleportlocs = list()
-/area/New()
+/area/Initialize()
icon_state = ""
layer = AREA_LAYER
- master = src
uid = ++global_uid
related = list(src)
map_name = name // Save the initial (the name set in the map) name of the area.
@@ -343,17 +341,17 @@ var/list/teleportlocs = list()
/area/proc/powered(chan) // return true if the area has power to given channel
- if(!master.requires_power)
+ if(!requires_power)
return 1
- if(master.always_unpowered)
+ if(always_unpowered)
return 0
switch(chan)
if(EQUIP)
- return master.power_equip
+ return power_equip
if(LIGHT)
- return master.power_light
+ return power_light
if(ENVIRON)
- return master.power_environ
+ return power_environ
return 0
@@ -372,19 +370,19 @@ var/list/teleportlocs = list()
var/used = 0
switch(chan)
if(LIGHT)
- used += master.used_light
+ used += used_light
if(EQUIP)
- used += master.used_equip
+ used += used_equip
if(ENVIRON)
- used += master.used_environ
+ used += used_environ
if(TOTAL)
- used += master.used_light + master.used_equip + master.used_environ
+ used += used_light + used_equip + used_environ
if(STATIC_EQUIP)
- used += master.static_equip
+ used += static_equip
if(STATIC_LIGHT)
- used += master.static_light
+ used += static_light
if(STATIC_ENVIRON)
- used += master.static_environ
+ used += static_environ
return used
/area/proc/addStaticPower(value, powerchannel)
@@ -397,20 +395,19 @@ var/list/teleportlocs = list()
static_environ += value
/area/proc/clear_usage()
-
- master.used_equip = 0
- master.used_light = 0
- master.used_environ = 0
+ used_equip = 0
+ used_light = 0
+ used_environ = 0
/area/proc/use_power(amount, chan)
switch(chan)
if(EQUIP)
- master.used_equip += amount
+ used_equip += amount
if(LIGHT)
- master.used_light += amount
+ used_light += amount
if(ENVIRON)
- master.used_environ += amount
+ used_environ += amount
/area/Entered(A)
diff --git a/code/game/area/areas/holodeck.dm b/code/game/area/areas/holodeck.dm
index fa8b23ae5b9..9fec25892e6 100644
--- a/code/game/area/areas/holodeck.dm
+++ b/code/game/area/areas/holodeck.dm
@@ -14,9 +14,9 @@
*/
/area/holodeck/powered(var/chan)
- if(!master.requires_power)
+ if(!requires_power)
return 1
- if(master.always_unpowered)
+ if(always_unpowered)
return 0
if(!linked)
return 0
diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm
index 21759b80ff8..5164e1eb9bd 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -98,7 +98,7 @@
C.setDir(src.dir)
C.network = tempnetwork
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
C.c_tag = "[A.name] ([rand(1, 999)])"
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 78d389dec00..5441fc9c481 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -265,7 +265,7 @@
var/obj/item/device/multitool/P = W
if(istype(P.buffer, /obj/machinery/computer/cloning))
- if(get_area_master(P.buffer) != get_area_master(src))
+ if(get_area(P.buffer) != get_area(src))
user << "-% Cannot link machines across power zones. Buffer cleared %-"
P.buffer = null
return
diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm
index f2ed800bac2..56e34308850 100644
--- a/code/game/machinery/computer/cloning.dm
+++ b/code/game/machinery/computer/cloning.dm
@@ -127,7 +127,7 @@
var/obj/item/device/multitool/P = W
if(istype(P.buffer, /obj/machinery/clonepod))
- if(get_area_master(P.buffer) != get_area_master(src))
+ if(get_area(P.buffer) != get_area(src))
user << "-% Cannot link machines across power zones. Buffer cleared %-"
P.buffer = null
return
diff --git a/code/game/machinery/doors/alarmlock.dm b/code/game/machinery/doors/alarmlock.dm
index 6169398b739..65a25732c77 100644
--- a/code/game/machinery/doors/alarmlock.dm
+++ b/code/game/machinery/doors/alarmlock.dm
@@ -36,9 +36,6 @@
var/alert = signal.data["alert"]
var/area/our_area = get_area(src)
- if (our_area.master)
- our_area = our_area.master
-
if(alarm_area == our_area.name)
switch(alert)
if("severe")
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index 00b2cb81810..ddf5be80c9e 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -171,7 +171,7 @@ var/list/holopads = list()
var/area/holo_area = get_area(src)
var/area/eye_area = get_area(master.eyeobj)
- if(eye_area in holo_area.master.related)
+ if(eye_area in holo_area.related)
return TRUE
clear_holo(master)//If not, we want to get rid of the hologram.
diff --git a/code/game/machinery/lightswitch.dm b/code/game/machinery/lightswitch.dm
index 4fdd4377a99..aba49f48f58 100644
--- a/code/game/machinery/lightswitch.dm
+++ b/code/game/machinery/lightswitch.dm
@@ -48,7 +48,7 @@
on = !on
- for(var/area/A in area.master.related)
+ for(var/area/A in area.related)
A.lightswitch = on
A.updateicon()
@@ -56,7 +56,7 @@
L.on = on
L.updateicon()
- area.master.power_change()
+ area.power_change()
/obj/machinery/light_switch/power_change()
diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm
index 741a3d16d0e..6c9033b656a 100644
--- a/code/game/machinery/porta_turret/portable_turret.dm
+++ b/code/game/machinery/porta_turret/portable_turret.dm
@@ -636,11 +636,7 @@
break
if(!control_area)
- var/area/CA = get_area(src)
- if(CA.master && CA.master != CA)
- control_area = CA.master
- else
- control_area = CA
+ control_area = get_area(src)
for(var/obj/machinery/porta_turret/T in control_area)
turrets |= T
diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm
index e4b2e330889..b0bc320624f 100644
--- a/code/game/mecha/equipment/tools/other_tools.dm
+++ b/code/game/mecha/equipment/tools/other_tools.dm
@@ -301,7 +301,7 @@
var/pow_chan
if(A)
for(var/c in use_channels)
- if(A.master && A.master.powered(c))
+ if(A.powered(c))
pow_chan = c
break
return pow_chan
@@ -339,13 +339,13 @@
if(A)
var/pow_chan
for(var/c in list(EQUIP,ENVIRON,LIGHT))
- if(A.master.powered(c))
+ if(A.powered(c))
pow_chan = c
break
if(pow_chan)
var/delta = min(20, chassis.cell.maxcharge-cur_charge)
chassis.give_power(delta)
- A.master.use_power(delta*coeff, pow_chan)
+ A.use_power(delta*coeff, pow_chan)
diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm
index a1d848a1e77..f361f86431d 100644
--- a/code/game/objects/items/blueprints.dm
+++ b/code/game/objects/items/blueprints.dm
@@ -146,10 +146,8 @@
/obj/item/areaeditor/proc/get_area()
var/turf/T = get_turf(usr)
var/area/A = T.loc
- A = A.master
return A
-
/obj/item/areaeditor/proc/get_area_type(area/A = get_area())
if(A.outdoors)
return AREA_SPACE
diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm
index da770c0e074..8d53145e3db 100644
--- a/code/game/objects/items/devices/radio/intercom.dm
+++ b/code/game/objects/items/devices/radio/intercom.dm
@@ -56,7 +56,7 @@
if(((world.timeofday - last_tick) > 30) || ((world.timeofday - last_tick) < 0))
last_tick = world.timeofday
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
if(!A || emped)
on = 0
else
diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm
index b1ce7612734..36b8f38a2b7 100644
--- a/code/modules/atmospherics/machinery/airalarm.dm
+++ b/code/modules/atmospherics/machinery/airalarm.dm
@@ -133,7 +133,7 @@
pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24)
pixel_y = (dir & 3)? (dir == 1 ? -24 : 24) : 0
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
if(name == initial(name))
name = "[A.name] Air Alarm"
@@ -311,7 +311,7 @@
send_signal(device_id, list("checks" = text2num(params["val"])^2))
. = TRUE
if("set_external_pressure")
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
var/target = input("New target pressure:", name, A.air_vent_info[device_id]["external"]) as num|null
if(!isnull(target) && !..())
send_signal(device_id, list("set_external_pressure" = target))
@@ -337,12 +337,12 @@
apply_mode()
. = TRUE
if("alarm")
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
if(A.atmosalert(2, src))
post_alert(2)
. = TRUE
if("reset")
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
if(A.atmosalert(0, src))
post_alert(0)
. = TRUE
@@ -374,7 +374,7 @@
return 0
/obj/machinery/airalarm/proc/refresh_all()
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
for(var/id_tag in A.air_vent_names)
var/list/I = A.air_vent_info[id_tag]
if(I && I["timestamp"] + AALARM_REPORT_TIMEOUT / 2 > world.time)
@@ -409,7 +409,7 @@
return 1
/obj/machinery/airalarm/proc/apply_mode()
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
switch(mode)
if(AALARM_MODE_SCRUBBING)
for(var/device_id in A.air_scrub_names)
@@ -541,7 +541,7 @@
icon_state = "alarmp"
return
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
switch(max(danger_level, A.atmosalm))
if(0)
icon_state = "alarm0"
@@ -596,7 +596,7 @@
if(!frequency)
return
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
var/datum/signal/alert_signal = new
alert_signal.source = src
@@ -614,7 +614,7 @@
frequency.post_signal(src, alert_signal,null,-1)
/obj/machinery/airalarm/proc/apply_danger_level()
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
var/new_area_danger_level = 0
for(var/area/R in A.related)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
index f9897593750..22e701f8e6c 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
@@ -48,7 +48,7 @@
id_tag = num2text(uid)
/obj/machinery/atmospherics/components/unary/vent_pump/Destroy()
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
A.air_vent_names -= id_tag
A.air_vent_info -= id_tag
@@ -165,7 +165,7 @@
"sigtype" = "status"
)
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
if(!A.air_vent_names[id_tag])
name = "\improper [A.name] vent pump #[A.air_vent_names.len + 1]"
A.air_vent_names[id_tag] = name
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
index 2b535e472a7..455d75d6969 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
@@ -40,7 +40,7 @@
id_tag = num2text(uid)
/obj/machinery/atmospherics/components/unary/vent_scrubber/Destroy()
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
A.air_scrub_names -= id_tag
A.air_scrub_info -= id_tag
@@ -131,7 +131,7 @@
"sigtype" = "status"
)
- var/area/A = get_area_master(src)
+ var/area/A = get_area(src)
if(!A.air_scrub_names[id_tag])
name = "\improper [A.name] air scrubber #[A.air_scrub_names.len + 1]"
A.air_scrub_names[id_tag] = name
diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm
index e3631a56d80..d37d35f9684 100644
--- a/code/modules/mob/living/silicon/ai/life.dm
+++ b/code/modules/mob/living/silicon/ai/life.dm
@@ -53,11 +53,11 @@
if(POWER_REQ_NONE)
return FALSE
if(POWER_REQ_ALL)
- return !T || !A || ((!A.master.power_equip || isspaceturf(T)) && !is_type_in_list(loc, list(/obj/item, /obj/mecha)))
+ return !T || !A || ((!A.power_equip || isspaceturf(T)) && !is_type_in_list(loc, list(/obj/item, /obj/mecha)))
if(POWER_REQ_CLOCKCULT)
for(var/obj/effect/clockwork/sigil/transmission/ST in range(src, SIGIL_ACCESS_RANGE))
return FALSE
- return !T || !A || (!istype(T, /turf/open/floor/clockwork) && (!A.master.power_equip || isspaceturf(T)) && !is_type_in_list(loc, list(/obj/item, /obj/mecha)))
+ return !T || !A || (!istype(T, /turf/open/floor/clockwork) && (!A.power_equip || isspaceturf(T)) && !is_type_in_list(loc, list(/obj/item, /obj/mecha)))
/mob/living/silicon/ai/updatehealth()
if(status_flags & GODMODE)
@@ -97,7 +97,7 @@
sleep(50)
var/turf/T = get_turf(src)
var/area/AIarea = get_area(src)
- if(AIarea && AIarea.master.power_equip)
+ if(AIarea && AIarea.power_equip)
if(!isspaceturf(T))
ai_restore_power()
return
@@ -119,7 +119,7 @@
T = get_turf(src)
AIarea = get_area(src)
if(AIarea)
- for(var/area/A in AIarea.master.related)
+ for(var/area/A in AIarea.related)
for (var/obj/machinery/power/apc/APC in A)
if (!(APC.stat & BROKEN))
theAPC = APC
@@ -132,7 +132,7 @@
src << "Lost connection with the APC!"
aiRestorePowerRoutine = POWER_RESTORATION_SEARCH_APC
return
- if(AIarea.master.power_equip)
+ if(AIarea.power_equip)
if(!isspaceturf(T))
ai_restore_power()
return
diff --git a/code/modules/modular_computers/hardware/recharger.dm b/code/modules/modular_computers/hardware/recharger.dm
index 4a6001814ff..2a07e316c67 100644
--- a/code/modules/modular_computers/hardware/recharger.dm
+++ b/code/modules/modular_computers/hardware/recharger.dm
@@ -39,11 +39,11 @@
else
var/area/A = get_area(src)
- if(!A || !isarea(A) || !A.master)
+ if(!istype(A))
return 0
- if(A.master.powered(EQUIP))
- A.master.use_power(amount, EQUIP)
+ if(A.powered(EQUIP))
+ A.use_power(amount, EQUIP)
return 1
return 0
diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm
index bd7b268fb65..526953873b7 100644
--- a/code/modules/power/lighting.dm
+++ b/code/modules/power/lighting.dm
@@ -408,8 +408,8 @@
// returns whether this light has power
// true if area has power and lightswitch is on
/obj/machinery/light/proc/has_power()
- var/area/A = src.loc.loc
- return A.master.lightswitch && A.master.power_light
+ var/area/A = get_area(src)
+ return A.lightswitch && A.power_light
/obj/machinery/light/proc/flicker(var/amount = rand(10, 20))
set waitfor = 0
@@ -534,7 +534,6 @@
// called when area power state changes
/obj/machinery/light/power_change()
var/area/A = get_area(src)
- A = A.master
seton(A.lightswitch && A.power_light)
// called when on fire
diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm
index 350233ecd34..6767788c034 100644
--- a/code/modules/power/power.dm
+++ b/code/modules/power/power.dm
@@ -56,27 +56,27 @@
if(!use_power)
return 1
- var/area/A = src.loc.loc // make sure it's in an area
- if(!A || !isarea(A) || !A.master)
+ var/area/A = get_area(src) // make sure it's in an area
+ if(!A)
return 0 // if not, then not powered
if(chan == -1)
chan = power_channel
- return A.master.powered(chan) // return power status of the area
+ return A.powered(chan) // return power status of the area
// increment the power usage stats for an area
/obj/machinery/proc/use_power(amount, chan = -1) // defaults to power_channel
var/area/A = get_area(src) // make sure it's in an area
- if(!A || !isarea(A) || !A.master)
+ if(!A)
return
if(chan == -1)
chan = power_channel
- A.master.use_power(amount, chan)
+ A.use_power(amount, chan)
/obj/machinery/proc/addStaticPower(value, powerchannel)
var/area/A = get_area(src)
- if(!A || !A.master)
+ if(!A)
return
- A.master.addStaticPower(value, powerchannel)
+ A.addStaticPower(value, powerchannel)
/obj/machinery/proc/removeStaticPower(value, powerchannel)
addStaticPower(-value, powerchannel)