mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 10:01:40 +00:00
Removes area.master. Moves area/New to Initialize (#24134)
* Removes master areas * Ports area/New to Initialize
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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()
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)])"
|
||||
|
||||
|
||||
|
||||
@@ -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 << "<font color = #666633>-% Cannot link machines across power zones. Buffer cleared %-</font color>"
|
||||
P.buffer = null
|
||||
return
|
||||
|
||||
@@ -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 << "<font color = #666633>-% Cannot link machines across power zones. Buffer cleared %-</font color>"
|
||||
P.buffer = null
|
||||
return
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user