diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm
index 39e9e44da2..d66ebc100c 100644
--- a/code/ATMOSPHERICS/atmospherics.dm
+++ b/code/ATMOSPHERICS/atmospherics.dm
@@ -34,8 +34,8 @@ Pipelines + Other Objects -> Pipe network
var/obj/machinery/atmospherics/node1
var/obj/machinery/atmospherics/node2
-/obj/machinery/atmospherics/New(loc, newdir)
- ..()
+/obj/machinery/atmospherics/Initialize(var/ml, newdir)
+ . = ..()
if(!icon_manager)
icon_manager = new()
if(!isnull(newdir))
diff --git a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm
index cc280d97cc..6b49555a3a 100644
--- a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm
@@ -9,8 +9,8 @@
var/datum/pipe_network/network1
var/datum/pipe_network/network2
-/obj/machinery/atmospherics/binary/New()
- ..()
+/obj/machinery/atmospherics/binary/Initialize()
+ . = ..()
air1 = new
air2 = new
diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
index c09c482cc1..071593f7d6 100644
--- a/code/ATMOSPHERICS/components/binary_devices/circulator.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/circulator.dm
@@ -23,8 +23,8 @@
density = 1
-/obj/machinery/atmospherics/binary/circulator/New()
- ..()
+/obj/machinery/atmospherics/binary/circulator/Initialize()
+ . = ..()
desc = initial(desc) + " Its outlet port is to the [dir2text(dir)]."
air1.volume = 400
diff --git a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm
index 86a87223eb..bf675c1e12 100644
--- a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm
@@ -42,8 +42,10 @@
//2: Do not pass input_pressure_min
//4: Do not pass output_pressure_max
-/obj/machinery/atmospherics/binary/dp_vent_pump/New()
- ..()
+/obj/machinery/atmospherics/binary/dp_vent_pump/Initialize()
+ . = ..()
+ if(frequency)
+ set_frequency(frequency)
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP
icon = null
@@ -55,8 +57,8 @@
/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume
name = "Large Dual Port Air Vent"
-/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume/New()
- ..()
+/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume/Initialize()
+ . = ..()
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
@@ -194,11 +196,6 @@
return 1
-/obj/machinery/atmospherics/binary/dp_vent_pump/Initialize()
- . = ..()
- if(frequency)
- set_frequency(frequency)
-
/obj/machinery/atmospherics/binary/dp_vent_pump/examine(mob/user)
. = ..()
if(Adjacent(user))
diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
index 8d30c946ca..46b82e3b6f 100644
--- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm
@@ -27,10 +27,12 @@
var/id = null
var/datum/radio_frequency/radio_connection
-/obj/machinery/atmospherics/binary/passive_gate/New()
- ..()
+/obj/machinery/atmospherics/binary/passive_gate/Initialize()
+ . = ..()
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP * 2.5
+ if(frequency)
+ set_frequency(frequency)
/obj/machinery/atmospherics/binary/passive_gate/Destroy()
unregister_radio(src, frequency)
@@ -166,14 +168,8 @@
)
radio_connection.post_signal(src, signal, radio_filter = RADIO_ATMOSIA)
-
return 1
-/obj/machinery/atmospherics/binary/passive_gate/Initialize()
- . = ..()
- if(frequency)
- set_frequency(frequency)
-
/obj/machinery/atmospherics/binary/passive_gate/receive_signal(datum/signal/signal)
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
return 0
diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm
index 05922103ff..c767679f3e 100644
--- a/code/ATMOSPHERICS/components/binary_devices/pump.dm
+++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm
@@ -37,10 +37,12 @@ Thus, the two variables affect pump operation are set in New():
var/id = null
var/datum/radio_frequency/radio_connection
-/obj/machinery/atmospherics/binary/pump/New()
- ..()
+/obj/machinery/atmospherics/binary/pump/Initialize()
+ . = ..()
air1.volume = ATMOS_DEFAULT_VOLUME_PUMP
air2.volume = ATMOS_DEFAULT_VOLUME_PUMP
+ if(frequency)
+ set_frequency(frequency)
/obj/machinery/atmospherics/binary/pump/Destroy()
unregister_radio(src, frequency)
@@ -166,11 +168,6 @@ Thus, the two variables affect pump operation are set in New():
return data
-/obj/machinery/atmospherics/binary/pump/Initialize()
- . = ..()
- if(frequency)
- set_frequency(frequency)
-
/obj/machinery/atmospherics/binary/pump/receive_signal(datum/signal/signal)
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
return 0
diff --git a/code/ATMOSPHERICS/components/omni_devices/filter.dm b/code/ATMOSPHERICS/components/omni_devices/filter.dm
index 6ef7879f2b..3e93b457af 100644
--- a/code/ATMOSPHERICS/components/omni_devices/filter.dm
+++ b/code/ATMOSPHERICS/components/omni_devices/filter.dm
@@ -20,8 +20,8 @@
var/list/filtering_outputs = list() //maps gasids to gas_mixtures
-/obj/machinery/atmospherics/omni/atmos_filter/New()
- ..()
+/obj/machinery/atmospherics/omni/atmos_filter/Initialize()
+ . = ..()
rebuild_filtering_list()
for(var/datum/omni_port/P in ports)
P.air.volume = ATMOS_DEFAULT_VOLUME_FILTER
diff --git a/code/ATMOSPHERICS/components/omni_devices/mixer.dm b/code/ATMOSPHERICS/components/omni_devices/mixer.dm
index 077be63b30..7f422df44a 100644
--- a/code/ATMOSPHERICS/components/omni_devices/mixer.dm
+++ b/code/ATMOSPHERICS/components/omni_devices/mixer.dm
@@ -24,8 +24,8 @@
var/list/mixing_inputs = list()
-/obj/machinery/atmospherics/omni/mixer/New()
- ..()
+/obj/machinery/atmospherics/omni/mixer/Initialize()
+ . = ..()
if(mapper_set())
var/con = 0
for(var/datum/omni_port/P in ports)
diff --git a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm
index cca6155eb4..bc772ba8c6 100644
--- a/code/ATMOSPHERICS/components/omni_devices/omni_base.dm
+++ b/code/ATMOSPHERICS/components/omni_devices/omni_base.dm
@@ -25,8 +25,8 @@
var/list/ports = new()
-/obj/machinery/atmospherics/omni/New()
- ..()
+/obj/machinery/atmospherics/omni/Initialize()
+ . = ..()
icon_state = "base"
ports = new()
diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
index a787aa1873..7892c02b9a 100755
--- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm
@@ -39,8 +39,8 @@
if(frequency)
radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
-/obj/machinery/atmospherics/trinary/atmos_filter/New()
- ..()
+/obj/machinery/atmospherics/trinary/atmos_filter/Initialize()
+ . = ..()
switch(filter_type)
if(0) //removing hydrocarbons
filtered_out = list("phoron")
@@ -56,6 +56,8 @@
air1.volume = ATMOS_DEFAULT_VOLUME_FILTER
air2.volume = ATMOS_DEFAULT_VOLUME_FILTER
air3.volume = ATMOS_DEFAULT_VOLUME_FILTER
+ if(frequency)
+ set_frequency(frequency)
/obj/machinery/atmospherics/trinary/atmos_filter/Destroy()
unregister_radio(src, frequency)
@@ -106,11 +108,6 @@
return 1
-/obj/machinery/atmospherics/trinary/atmos_filter/Initialize()
- . = ..()
- if(frequency)
- set_frequency(frequency)
-
/obj/machinery/atmospherics/trinary/atmos_filter/attack_hand(user) // -- TLE
if(..())
return
diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
index 7344a3e732..b90983cdbf 100644
--- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm
@@ -37,8 +37,8 @@
icon_state += "off"
update_use_power(USE_POWER_OFF)
-/obj/machinery/atmospherics/trinary/mixer/New()
- ..()
+/obj/machinery/atmospherics/trinary/mixer/Initialize()
+ . = ..()
air1.volume = ATMOS_DEFAULT_VOLUME_MIXER
air2.volume = ATMOS_DEFAULT_VOLUME_MIXER
air3.volume = ATMOS_DEFAULT_VOLUME_MIXER * 1.5
diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm
index 10d7403541..4570b95dda 100644
--- a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm
+++ b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm
@@ -17,8 +17,8 @@
var/datum/pipe_network/network2
var/datum/pipe_network/network3
-/obj/machinery/atmospherics/trinary/New()
- ..()
+/obj/machinery/atmospherics/trinary/Initialize()
+ . = ..()
air1 = new
air2 = new
diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm
index 5eeab2c8e4..fa77c7b7ab 100644
--- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm
+++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm
@@ -24,9 +24,11 @@
level = 1
-/obj/machinery/atmospherics/unary/outlet_injector/New()
- ..()
+/obj/machinery/atmospherics/unary/outlet_injector/Initialize()
+ . = ..()
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //Give it a small reservoir for injecting. Also allows it to have a higher flow rate limit than vent pumps, to differentiate injectors a bit more.
+ if(frequency)
+ set_frequency(frequency)
/obj/machinery/atmospherics/unary/outlet_injector/Destroy()
unregister_radio(src, frequency)
@@ -122,11 +124,6 @@
return 1
-/obj/machinery/atmospherics/unary/outlet_injector/Initialize()
- . = ..()
- if(frequency)
- set_frequency(frequency)
-
/obj/machinery/atmospherics/unary/outlet_injector/receive_signal(datum/signal/signal)
if(!signal.data["tag"] || (signal.data["tag"] != id) || (signal.data["sigtype"]!="command"))
return 0
diff --git a/code/ATMOSPHERICS/components/unary/unary_base.dm b/code/ATMOSPHERICS/components/unary/unary_base.dm
index 12d6822ad4..a20a860b02 100644
--- a/code/ATMOSPHERICS/components/unary/unary_base.dm
+++ b/code/ATMOSPHERICS/components/unary/unary_base.dm
@@ -13,8 +13,8 @@
var/welded = 0 //defining this here for ventcrawl stuff
-/obj/machinery/atmospherics/unary/New()
- ..()
+/obj/machinery/atmospherics/unary/Initialize()
+ . = ..()
air_contents = new
air_contents.volume = 200
diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm
index dacb3700bd..926521ad00 100644
--- a/code/ATMOSPHERICS/components/unary/vent_pump.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm
@@ -78,9 +78,6 @@
/obj/machinery/atmospherics/unary/vent_pump/Initialize()
. = ..()
soundloop = new(list(src), FALSE)
-
-/obj/machinery/atmospherics/unary/vent_pump/New()
- ..()
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP
icon = null
@@ -108,8 +105,8 @@
icon_connect_type = "-aux"
connect_types = CONNECT_TYPE_AUX //connects to aux pipes
-/obj/machinery/atmospherics/unary/vent_pump/high_volume/New()
- ..()
+/obj/machinery/atmospherics/unary/vent_pump/high_volume/Initialize()
+ . = ..()
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 800
/obj/machinery/atmospherics/unary/vent_pump/engine
@@ -117,8 +114,8 @@
power_channel = ENVIRON
power_rating = 30000 //15 kW ~ 20 HP
-/obj/machinery/atmospherics/unary/vent_pump/engine/New()
- ..()
+/obj/machinery/atmospherics/unary/vent_pump/engine/Initialize()
+ . = ..()
air_contents.volume = ATMOS_DEFAULT_VOLUME_PUMP + 500 //meant to match air injector
/obj/machinery/atmospherics/unary/vent_pump/update_icon(var/safety = 0)
diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
index 1443b296d0..495d7d0428 100644
--- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm
@@ -32,8 +32,8 @@
use_power = USE_POWER_IDLE
icon_state = "map_scrubber_on"
-/obj/machinery/atmospherics/unary/vent_scrubber/New()
- ..()
+/obj/machinery/atmospherics/unary/vent_scrubber/Initialize()
+ . = ..()
air_contents.volume = ATMOS_DEFAULT_VOLUME_FILTER
icon = null
diff --git a/code/ATMOSPHERICS/pipes/he_pipes.dm b/code/ATMOSPHERICS/pipes/he_pipes.dm
index 8b1b800830..445b44a146 100644
--- a/code/ATMOSPHERICS/pipes/he_pipes.dm
+++ b/code/ATMOSPHERICS/pipes/he_pipes.dm
@@ -23,8 +23,8 @@
buckle_lying = 1
// BubbleWrap
-/obj/machinery/atmospherics/pipe/simple/heat_exchanging/New()
- ..()
+/obj/machinery/atmospherics/pipe/simple/heat_exchanging/Initialize()
+ . = ..()
// BubbleWrap END
color = "#404040" //we don't make use of the fancy overlay system for colours, use this to set the default.
diff --git a/code/ATMOSPHERICS/pipes/manifold.dm b/code/ATMOSPHERICS/pipes/manifold.dm
index a17f78e50d..ad270148da 100644
--- a/code/ATMOSPHERICS/pipes/manifold.dm
+++ b/code/ATMOSPHERICS/pipes/manifold.dm
@@ -19,8 +19,8 @@
level = 1
-/obj/machinery/atmospherics/pipe/manifold/New()
- ..()
+/obj/machinery/atmospherics/pipe/manifold/Initialize()
+ . = ..()
alpha = 255
icon = null
diff --git a/code/ATMOSPHERICS/pipes/manifold4w.dm b/code/ATMOSPHERICS/pipes/manifold4w.dm
index 7273ac5288..8a67a6ad1c 100644
--- a/code/ATMOSPHERICS/pipes/manifold4w.dm
+++ b/code/ATMOSPHERICS/pipes/manifold4w.dm
@@ -20,8 +20,8 @@
level = 1
-/obj/machinery/atmospherics/pipe/manifold4w/New()
- ..()
+/obj/machinery/atmospherics/pipe/manifold4w/Initialize()
+ . = ..()
alpha = 255
icon = null
diff --git a/code/ATMOSPHERICS/pipes/pipe_base.dm b/code/ATMOSPHERICS/pipes/pipe_base.dm
index f95948868d..22ceb272f6 100644
--- a/code/ATMOSPHERICS/pipes/pipe_base.dm
+++ b/code/ATMOSPHERICS/pipes/pipe_base.dm
@@ -24,10 +24,10 @@
/obj/machinery/atmospherics/pipe/drain_power()
return -1
-/obj/machinery/atmospherics/pipe/New()
+/obj/machinery/atmospherics/pipe/Initialize()
if(istype(get_turf(src), /turf/simulated/wall) || istype(get_turf(src), /turf/simulated/shuttle/wall) || istype(get_turf(src), /turf/unsimulated/wall))
level = 1
- ..()
+ . = ..()
/obj/machinery/atmospherics/pipe/hides_under_flooring()
return level != 2
diff --git a/code/ATMOSPHERICS/pipes/simple.dm b/code/ATMOSPHERICS/pipes/simple.dm
index e0f6f7d951..f70c7ea63e 100644
--- a/code/ATMOSPHERICS/pipes/simple.dm
+++ b/code/ATMOSPHERICS/pipes/simple.dm
@@ -26,8 +26,8 @@
level = 1
-/obj/machinery/atmospherics/pipe/simple/New()
- ..()
+/obj/machinery/atmospherics/pipe/simple/Initialize()
+ . = ..()
// Pipe colors and icon states are handled by an image cache - so color and icon should
// be null. For mapping purposes color is defined in the object definitions.
diff --git a/code/ATMOSPHERICS/pipes/tank.dm b/code/ATMOSPHERICS/pipes/tank.dm
index 838279a35c..b975cf2016 100644
--- a/code/ATMOSPHERICS/pipes/tank.dm
+++ b/code/ATMOSPHERICS/pipes/tank.dm
@@ -18,9 +18,9 @@
pipe_flags = PIPING_DEFAULT_LAYER_ONLY
density = 1
-/obj/machinery/atmospherics/pipe/tank/New()
+/obj/machinery/atmospherics/pipe/tank/Initialize()
icon_state = "air"
- ..()
+ . = ..()
/obj/machinery/atmospherics/pipe/tank/init_dir()
initialize_directions = dir
@@ -74,58 +74,49 @@
name = "Pressure Tank (Air)"
icon_state = "air_map"
-/obj/machinery/atmospherics/pipe/tank/air/New()
+/obj/machinery/atmospherics/pipe/tank/air/Initialize()
air_temporary = new
air_temporary.volume = volume
air_temporary.temperature = T20C
-
air_temporary.adjust_multi("oxygen", (start_pressure*O2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature), \
"nitrogen",(start_pressure*N2STANDARD)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
-
-
- ..()
+ . = ..()
icon_state = "air"
/obj/machinery/atmospherics/pipe/tank/oxygen
name = "Pressure Tank (Oxygen)"
icon_state = "o2_map"
-/obj/machinery/atmospherics/pipe/tank/oxygen/New()
+/obj/machinery/atmospherics/pipe/tank/oxygen/Initialize()
air_temporary = new
air_temporary.volume = volume
air_temporary.temperature = T20C
-
air_temporary.adjust_gas("oxygen", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
-
- ..()
+ . = ..()
icon_state = "o2"
/obj/machinery/atmospherics/pipe/tank/nitrogen
name = "Pressure Tank (Nitrogen)"
icon_state = "n2_map"
-/obj/machinery/atmospherics/pipe/tank/nitrogen/New()
+/obj/machinery/atmospherics/pipe/tank/nitrogen/Initialize()
air_temporary = new
air_temporary.volume = volume
air_temporary.temperature = T20C
-
air_temporary.adjust_gas("nitrogen", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
-
- ..()
+ . = ..()
icon_state = "n2"
/obj/machinery/atmospherics/pipe/tank/carbon_dioxide
name = "Pressure Tank (Carbon Dioxide)"
icon_state = "co2_map"
-/obj/machinery/atmospherics/pipe/tank/carbon_dioxide/New()
+/obj/machinery/atmospherics/pipe/tank/carbon_dioxide/Initialize()
air_temporary = new
air_temporary.volume = volume
air_temporary.temperature = T20C
-
air_temporary.adjust_gas("carbon_dioxide", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
-
- ..()
+ . = ..()
icon_state = "co2"
/obj/machinery/atmospherics/pipe/tank/phoron
@@ -133,26 +124,22 @@
icon_state = "phoron_map"
connect_types = CONNECT_TYPE_REGULAR|CONNECT_TYPE_FUEL
-/obj/machinery/atmospherics/pipe/tank/phoron/New()
+/obj/machinery/atmospherics/pipe/tank/phoron/Initialize()
air_temporary = new
air_temporary.volume = volume
air_temporary.temperature = T20C
-
air_temporary.adjust_gas("phoron", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
-
- ..()
+ . = ..()
icon_state = "phoron"
/obj/machinery/atmospherics/pipe/tank/nitrous_oxide
name = "Pressure Tank (Nitrous Oxide)"
icon_state = "n2o_map"
-/obj/machinery/atmospherics/pipe/tank/nitrous_oxide/New()
+/obj/machinery/atmospherics/pipe/tank/nitrous_oxide/Initialize()
air_temporary = new
air_temporary.volume = volume
air_temporary.temperature = T0C
-
air_temporary.adjust_gas("nitrous_oxide", (start_pressure)*(air_temporary.volume)/(R_IDEAL_GAS_EQUATION*air_temporary.temperature))
-
- ..()
+ . = ..()
icon_state = "n2o"
diff --git a/code/ZAS/Fire.dm b/code/ZAS/Fire.dm
index 9c8ec74d4d..8728f0c4c3 100644
--- a/code/ZAS/Fire.dm
+++ b/code/ZAS/Fire.dm
@@ -180,8 +180,8 @@ If it gains pressure too slowly, it may leak or just rupture instead of explodin
animate(src, color = fire_color(air_contents.temperature), 5)
set_light(l_color = color)
-/obj/fire/New(newLoc,fl)
- ..()
+/obj/fire/Initialize(var/ml, fl)
+ . = ..()
if(!istype(loc, /turf))
qdel(src)
diff --git a/code/__defines/subsystems.dm b/code/__defines/subsystems.dm
index f7b4a574f7..5f63680b20 100644
--- a/code/__defines/subsystems.dm
+++ b/code/__defines/subsystems.dm
@@ -19,9 +19,10 @@
#define TIMER_ID_NULL -1
-#define INITIALIZATION_INSSATOMS 0 //New should not call Initialize
-#define INITIALIZATION_INNEW_MAPLOAD 1 //New should call Initialize(TRUE)
-#define INITIALIZATION_INNEW_REGULAR 2 //New should call Initialize(FALSE)
+#define INITIALIZATION_INSSATOMS 0 //New should not call Initialize
+#define INITIALIZATION_INSSATOMS_LATE 1 //New should not call Initialize; after the first pass is complete (handled differently)
+#define INITIALIZATION_INNEW_MAPLOAD 2 //New should call Initialize(TRUE)
+#define INITIALIZATION_INNEW_REGULAR 3 //New should call Initialize(FALSE)
#define INITIALIZE_HINT_NORMAL 0 //Nothing happens
#define INITIALIZE_HINT_LATELOAD 1 //Call LateInitialize
diff --git a/code/_helpers/turfs.dm b/code/_helpers/turfs.dm
index 5a0a519743..109f29a4f9 100644
--- a/code/_helpers/turfs.dm
+++ b/code/_helpers/turfs.dm
@@ -108,7 +108,7 @@
if(istype(T,/turf/simulated/shuttle))
shuttlework = 1
var/turf/simulated/shuttle/SS = T
- if(!SS.landed_holder) SS.landed_holder = new(turf = SS)
+ if(!SS.landed_holder) SS.landed_holder = new(SS)
X = SS.landed_holder.land_on(B)
//Generic non-shuttle turf move.
diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm
index 0541b7bed7..52b3e7762b 100644
--- a/code/_helpers/unsorted.dm
+++ b/code/_helpers/unsorted.dm
@@ -803,7 +803,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
if(istype(T,/turf/simulated/shuttle))
shuttlework = 1
var/turf/simulated/shuttle/SS = T
- if(!SS.landed_holder) SS.landed_holder = new(turf = SS)
+ if(!SS.landed_holder) SS.landed_holder = new(SS)
X = SS.landed_holder.land_on(B)
//Generic non-shuttle turf move.
@@ -1310,8 +1310,9 @@ var/mob/dview/dview_mob = new
color = origin.color
set_light(origin.light_range, origin.light_power, origin.light_color)
-/mob/dview/New()
- ..()
+INITIALIZE_IMMEDIATE(/mob/dview)
+/mob/dview/Initialize()
+ . = ..()
// We don't want to be in any mob lists; we're a dummy not a mob.
mob_list -= src
if(stat == DEAD)
diff --git a/code/_onclick/hud/ability_screen_objects.dm b/code/_onclick/hud/ability_screen_objects.dm
index d7b6dafa44..49c25650b3 100644
--- a/code/_onclick/hud/ability_screen_objects.dm
+++ b/code/_onclick/hud/ability_screen_objects.dm
@@ -12,12 +12,13 @@
var/mob/my_mob = null // The mob that possesses this hud object.
-/obj/screen/movable/ability_master/New(owner)
+/obj/screen/movable/ability_master/Initialize(ml, owner)
+ . = ..()
if(owner)
my_mob = owner
update_abilities(0, owner)
else
- message_admins("ERROR: ability_master's New() was not given an owner argument. This is a bug.")
+ message_admins("ERROR: ability_master's Initialize() was not given an owner argument. This is a bug.")
/obj/screen/movable/ability_master/Destroy()
. = ..()
@@ -178,9 +179,9 @@
ability_master.toggle_open(1)
client.screen -= ability_master
-/mob/New()
- ..()
- ability_master = new /obj/screen/movable/ability_master(src)
+/mob/Initialize()
+ . = ..()
+ ability_master = new /obj/screen/movable/ability_master(null, src)
///////////ACTUAL ABILITIES////////////
//This is what you click to do things//
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 9d6da07f0b..51a06da47d 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -622,8 +622,9 @@
plane = PLANE_PLAYER_HUD_ABOVE
var/client/holder
-/obj/screen/splash/New(client/C, visible)
- . = ..()
+INITIALIZE_IMMEDIATE(/obj/screen/splash)
+/obj/screen/splash/Initialize(var/ml, client/C, visible)
+ . = ..(ml)
holder = C
@@ -691,6 +692,9 @@
var/obj/screen/mapper/extras_holder/extras_holder
/obj/screen/movable/mapper_holder/Initialize(mapload, newowner)
+
+ . = ..()
+
owner = newowner
mask_full = new(src) // Full white square mask
@@ -778,8 +782,8 @@
mouse_opacity = 0
var/obj/screen/movable/mapper_holder/parent
-/obj/screen/mapper/New()
- ..()
+/obj/screen/mapper/Initialize()
+ . = ..()
parent = loc
/obj/screen/mapper/Destroy()
diff --git a/code/controllers/emergency_shuttle_controller.dm b/code/controllers/emergency_shuttle_controller.dm
index d6e272f9c9..fde8227376 100644
--- a/code/controllers/emergency_shuttle_controller.dm
+++ b/code/controllers/emergency_shuttle_controller.dm
@@ -251,8 +251,8 @@ var/global/datum/emergency_shuttle_controller/emergency_shuttle = new
layer = TURF_LAYER
plane = TURF_PLANE
-/obj/effect/bgstar/New()
- ..()
+/obj/effect/bgstar/Initialize()
+ . = ..()
pixel_x += rand(-2,30)
pixel_y += rand(-2,30)
var/starnum = pick("1", "1", "1", "2", "3", "4")
diff --git a/code/controllers/subsystems/atoms.dm b/code/controllers/subsystems/atoms.dm
index 25052d7c7f..5ddc4b3c2a 100644
--- a/code/controllers/subsystems/atoms.dm
+++ b/code/controllers/subsystems/atoms.dm
@@ -8,70 +8,66 @@ SUBSYSTEM_DEF(atoms)
init_order = INIT_ORDER_ATOMS
flags = SS_NO_FIRE
- var/static/initialized = INITIALIZATION_INSSATOMS
- // var/list/created_atoms // This is never used, so don't bother. ~Leshana
- var/static/old_initialized
+ // override and GetArguments() exists for mod-override/downstream hook functionality.
+ // Useful for total-overhaul type modifications.
+ var/adjust_init_arguments = FALSE
+
+ var/atom_init_stage = INITIALIZATION_INSSATOMS
+ var/old_init_stage
var/list/late_loaders
- var/list/created_atoms
-
var/list/BadInitializeCalls = list()
/datum/controller/subsystem/atoms/Initialize(timeofday)
if(!plant_controller) // Initialize seed repo for /obj/item/seed and /obj/item/weapon/grown
plant_controller = new
setupgenetics() //to set the mutations' place in structural enzymes, so initializers know where to put mutations.
- initialized = INITIALIZATION_INNEW_MAPLOAD
- to_world_log("Initializing objects")
- admin_notice("Initializing objects", R_DEBUG)
+ atom_init_stage = INITIALIZATION_INNEW_MAPLOAD
InitializeAtoms()
return ..()
-/datum/controller/subsystem/atoms/proc/InitializeAtoms(list/atoms)
- if(initialized == INITIALIZATION_INSSATOMS)
+/datum/controller/subsystem/atoms/proc/InitializeAtoms(var/list/supplied_atoms)
+
+ if(atom_init_stage <= INITIALIZATION_INSSATOMS_LATE)
return
- initialized = INITIALIZATION_INNEW_MAPLOAD
+ atom_init_stage = INITIALIZATION_INNEW_MAPLOAD
LAZYINITLIST(late_loaders)
- var/count
var/list/mapload_arg = list(TRUE)
- if(atoms)
- created_atoms = list()
- count = atoms.len
- for(var/I in atoms)
- var/atom/A = I
+ var/count = LAZYLEN(supplied_atoms)
+ if(count)
+ while(supplied_atoms.len)
+ var/atom/A = supplied_atoms[supplied_atoms.len]
+ supplied_atoms.len--
if(!A.initialized)
- if(InitAtom(I, mapload_arg))
- atoms -= I
+ InitAtom(A, GetArguments(A, mapload_arg))
CHECK_TICK
- else
- count = 0
- for(var/atom/A in world) // This must be world, since this operation adds all the atoms to their specific lists.
+ else if(!subsystem_initialized)
+ // If wondering why not just store all atoms in a list and use the block above: that turns out unbearably expensive.
+ // Instead, atoms without extra arguments in New created on server start are fished out of world directly.
+ // We do this exactly once.
+
+ for(var/atom/A in world)
if(!A.initialized)
- InitAtom(A, mapload_arg)
+ InitAtom(A, GetArguments(A, mapload_arg, FALSE))
++count
CHECK_TICK
- log_world("Initialized [count] atoms")
+ report_progress("Initialized [count] atom\s")
- initialized = INITIALIZATION_INNEW_REGULAR
+ atom_init_stage = INITIALIZATION_INNEW_REGULAR
if(late_loaders.len)
for(var/I in late_loaders)
var/atom/A = I
- A.LateInitialize()
- CHECK_TICK
- testing("Late initialized [late_loaders.len] atoms")
+ A.LateInitialize(arglist(late_loaders[A]))
+ report_progress("Late initialized [late_loaders.len] atom\s")
late_loaders.Cut()
- // Nothing ever checks return value of this proc, so don't bother. If this ever changes fix code in /atom/New() ~Leshana
- // if(atoms)
- // . = created_atoms + atoms
- // created_atoms = null
-
/datum/controller/subsystem/atoms/proc/InitAtom(atom/A, list/arguments)
+ LAZYREMOVE(global.pre_init_created_atoms, A)
var/the_type = A.type
if(QDELING(A))
BadInitializeCalls[the_type] |= BAD_INIT_QDEL_BEFORE
@@ -90,9 +86,9 @@ SUBSYSTEM_DEF(atoms)
switch(result)
if(INITIALIZE_HINT_LATELOAD)
if(arguments[1]) //mapload
- late_loaders += A
+ late_loaders[A] = arguments
else
- A.LateInitialize()
+ A.LateInitialize(arglist(arguments))
if(INITIALIZE_HINT_QDEL)
qdel(A)
qdeleted = TRUE
@@ -106,18 +102,37 @@ SUBSYSTEM_DEF(atoms)
return qdeleted || QDELING(A)
+// override and GetArguments() exists for mod-override/downstream hook functionality.
+// Useful for total-overhaul type modifications.
+/atom/proc/AdjustInitializeArguments(list/arguments)
+ // Lists are passed by reference so can simply modify the arguments list without returning it
+
+/datum/controller/subsystem/atoms/proc/GetArguments(atom/A, list/mapload_arg, created=TRUE)
+ if(!created && !adjust_init_arguments)
+ return mapload_arg // Performance optimization. Nothing to do.
+ var/list/arguments = mapload_arg.Copy()
+ var/extra_args = LAZYACCESS(global.pre_init_created_atoms, A)
+ if(created && extra_args)
+ arguments += extra_args
+ if(adjust_init_arguments)
+ A.AdjustInitializeArguments(arguments)
+ return arguments
+
+/datum/controller/subsystem/atoms/stat_entry(msg)
+ ..("Bad Initialize Calls:[BadInitializeCalls.len]")
+
/datum/controller/subsystem/atoms/proc/map_loader_begin()
- old_initialized = initialized
- initialized = INITIALIZATION_INSSATOMS
+ old_init_stage = atom_init_stage
+ atom_init_stage = INITIALIZATION_INSSATOMS_LATE
/datum/controller/subsystem/atoms/proc/map_loader_stop()
- initialized = old_initialized
+ atom_init_stage = old_init_stage
/datum/controller/subsystem/atoms/Recover()
- initialized = SSatoms.initialized
- if(initialized == INITIALIZATION_INNEW_MAPLOAD)
+ atom_init_stage = SSatoms.atom_init_stage
+ if(atom_init_stage == INITIALIZATION_INNEW_MAPLOAD)
InitializeAtoms()
- old_initialized = SSatoms.old_initialized
+ old_init_stage = SSatoms.old_init_stage
BadInitializeCalls = SSatoms.BadInitializeCalls
/datum/controller/subsystem/atoms/proc/InitLog()
diff --git a/code/controllers/subsystems/open_space.dm b/code/controllers/subsystems/open_space.dm
index 4e96dbfda4..735a221f56 100644
--- a/code/controllers/subsystems/open_space.dm
+++ b/code/controllers/subsystems/open_space.dm
@@ -87,17 +87,6 @@ SUBSYSTEM_DEF(open_space)
// log_debug("[T] ([T.x],[T.y],[T.z]) queued for update for [src].update_icon()")
SSopen_space.add_turf(T, 1)
-// Ouch... this is painful. But is there any other way?
-/* - No for now
-/obj/New()
- . = ..()
- if(open_space_initialised && !invisibility)
- var/turf/T = GetAbove(src)
- if(isopenspace(T))
- // log_debug("[T] ([T.x],[T.y],[T.z]) queued for update for [src]New()")
- OS_controller.add_turf(T, 1)
-*/
-
// We probably should hook Destroy() If we can think of something more efficient, lets hear it.
/obj/Destroy()
if(GLOB.open_space_initialised && !invisibility && isturf(loc))
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index 12609a2eee..a11ab41f23 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -425,7 +425,7 @@ var/global/datum/controller/subsystem/ticker/ticker
if(new_char)
qdel(player)
if(new_char.client)
- var/obj/screen/splash/S = new(new_char.client, TRUE)
+ var/obj/screen/splash/S = new(null, new_char.client, TRUE)
S.Fade(TRUE)
// If they're a carbon, they can get manifested
diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm
index df1aa91ea3..ddde7224c8 100644
--- a/code/controllers/verbs.dm
+++ b/code/controllers/verbs.dm
@@ -6,8 +6,9 @@
name = "Initializing..."
var/target
-/obj/effect/statclick/New(loc, text, target) //Don't port this to Initialize it's too critical
- ..()
+INITIALIZE_IMMEDIATE(/obj/effect/statclick)
+/obj/effect/statclick/Initialize(ml, text, target)
+ . = ..(ml)
name = text
src.target = target
diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm
index 6ad710e976..26531d1eb2 100644
--- a/code/defines/obj/weapon.dm
+++ b/code/defines/obj/weapon.dm
@@ -47,9 +47,9 @@
/obj/item/weapon/soap/deluxe
icon_state = "soapdeluxe"
-/obj/item/weapon/soap/deluxe/New()
+/obj/item/weapon/soap/deluxe/Initialize()
desc = "A deluxe Waffle Co. brand bar of soap. Smells of [pick("lavender", "vanilla", "strawberry", "chocolate" ,"space")]."
- ..()
+ . = ..()
/obj/item/weapon/soap/syndie
desc = "An untrustworthy bar of soap. Smells of fear."
@@ -363,10 +363,10 @@
drop_sound = 'sound/items/drop/component.ogg'
pickup_sound = 'sound/items/pickup/component.ogg'
-/obj/item/weapon/stock_parts/New()
+/obj/item/weapon/stock_parts/Initialize()
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
- ..()
+ . = ..()
/obj/item/weapon/stock_parts/get_rating()
return rating
@@ -390,7 +390,7 @@
var/charge = 0
var/max_charge = 1000
-/obj/item/weapon/stock_parts/capacitor/New()
+/obj/item/weapon/stock_parts/capacitor/Initialize()
. = ..()
max_charge *= rating
diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm
index 154f496be1..7d27dda017 100644
--- a/code/game/area/Space Station 13 areas.dm
+++ b/code/game/area/Space Station 13 areas.dm
@@ -1831,24 +1831,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "Tactical"
ambience = AMBIENCE_HIGHSEC
-
-/*
- New()
- ..()
-
- spawn(10) //let objects set up first
- for(var/turf/turfToGrayscale in src)
- if(turfToGrayscale.icon)
- var/icon/newIcon = icon(turfToGrayscale.icon)
- newIcon.GrayScale()
- turfToGrayscale.icon = newIcon
- for(var/obj/objectToGrayscale in turfToGrayscale) //1 level deep, means tables, apcs, locker, etc, but not locker contents
- if(objectToGrayscale.icon)
- var/icon/newIcon = icon(objectToGrayscale.icon)
- newIcon.GrayScale()
- objectToGrayscale.icon = newIcon
-*/
-
/area/security/nuke_storage
name = "\improper Vault"
icon_state = "nuke_storage"
diff --git a/code/game/area/ai_monitored.dm b/code/game/area/ai_monitored.dm
index 84f2c8eb4e..fc218150d5 100644
--- a/code/game/area/ai_monitored.dm
+++ b/code/game/area/ai_monitored.dm
@@ -2,17 +2,12 @@
name = "AI Monitored Area"
var/obj/machinery/camera/motioncamera = null
-
-/area/ai_monitored/New()
- ..()
- // locate and store the motioncamera
- spawn (20) // spawn on a delay to let turfs/objs load
- for (var/obj/machinery/camera/M in src)
- if(M.isMotion())
- motioncamera = M
- M.area_motion = src
- return
- return
+/area/ai_monitored/LateInitialize()
+ . = ..()
+ for(var/obj/machinery/camera/M in src)
+ if(M.isMotion())
+ motioncamera = M
+ M.area_motion = src
/area/ai_monitored/Entered(atom/movable/O)
..()
@@ -22,5 +17,3 @@
/area/ai_monitored/Exited(atom/movable/O)
if (ismob(O) && motioncamera)
motioncamera.lostTarget(O)
-
-
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index a54cf6c1f4..b14e4d5719 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -19,7 +19,7 @@
var/debug = 0
var/requires_power = 1
- var/always_unpowered = 0 //this gets overriden to 1 for space in area/New()
+ var/always_unpowered = 0 //this gets overriden to 1 for space in area/Initialize()
// Power channel status - Is it currently energized?
var/power_equip = TRUE
@@ -52,10 +52,13 @@
var/no_spoilers = FALSE // If true, makes it much more difficult to see what is inside an area with things like mesons.
var/soundproofed = FALSE // If true, blocks sounds from other areas and prevents hearers on other areas from hearing the sounds within.
+/area/New()
+ icon_state = ""
+ luminosity = !dynamic_lighting
+ ..()
+
/area/Initialize()
. = ..()
- luminosity = !(dynamic_lighting)
- icon_state = ""
return INITIALIZE_HINT_LATELOAD // Areas tradiationally are initialized AFTER other atoms.
/area/LateInitialize()
@@ -67,6 +70,10 @@
if(no_spoilers)
set_spoiler_obfuscation(TRUE)
+ icon = 'icons/turf/areas.dmi'
+ icon_state = "white"
+ blend_mode = BLEND_MULTIPLY
+
// Changes the area of T to A. Do not do this manually.
// Area is expected to be a non-null instance.
/proc/ChangeArea(var/turf/T, var/area/A)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index 7d950d40a8..29632a7bfb 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -43,27 +43,22 @@
/// The chat color var, without alpha.
var/chat_color_hover
+var/global/list/pre_init_created_atoms // atom creation ordering means some stuff is trying to init before SSatoms exists, temp workaround
/atom/New(loc, ...)
- // Don't call ..() unless /datum/New() ever exists
-
- // During dynamic mapload (reader.dm) this assigns the var overrides from the .dmm file
- // Native BYOND maploading sets those vars before invoking New(), by doing this FIRST we come as close to that behavior as we can.
- if(use_preloader && (src.type == _preloader.target_path))//in case the instanciated atom is creating other atoms in New()
- _preloader.load(src)
-
- // Pass our arguments to InitAtom so they can be passed to initialize(), but replace 1st with if-we're-during-mapload.
- var/do_initialize = SSatoms.initialized
- if(do_initialize > INITIALIZATION_INSSATOMS)
- args[1] = (do_initialize == INITIALIZATION_INNEW_MAPLOAD)
- if(SSatoms.InitAtom(src, args))
- // We were deleted. No sense continuing
- return
-
- // Uncomment if anything ever uses the return value of SSatoms.InitializeAtoms ~Leshana
- // If a map is being loaded, it might want to know about newly created objects so they can be handled.
- // var/list/created = SSatoms.created_atoms
- // if(created)
- // created += src
+ //atom creation method that preloads variables at creation
+ if(global.use_preloader && (src.type == global._preloader.target_path))//in case the instanciated atom is creating other atoms in New()
+ global._preloader.load(src)
+
+ var/do_initialize = SSatoms?.atom_init_stage
+ if(do_initialize > INITIALIZATION_INSSATOMS_LATE)
+ args[1] = do_initialize == INITIALIZATION_INNEW_MAPLOAD
+ SSatoms.InitAtom(src, args)
+ else
+ var/list/argument_list
+ if(length(args) > 1)
+ argument_list = args.Copy(2)
+ if(length(argument_list))
+ LAZYSET(global.pre_init_created_atoms, src, argument_list)
// Note: I removed "auto_init" feature (letting types disable auto-init) since it shouldn't be needed anymore.
// You can replicate the same by checking the value of the first parameter to initialize() ~Leshana
@@ -75,6 +70,8 @@
// Other parameters are passed from New (excluding loc), this does not happen if mapload is TRUE
// Must return an Initialize hint. Defined in code/__defines/subsystems.dm
/atom/proc/Initialize(mapload, ...)
+ SHOULD_CALL_PARENT(TRUE)
+ SHOULD_NOT_SLEEP(TRUE)
if(QDELETED(src))
crash_with("GC: -- [type] had initialize() called after qdel() --")
if(initialized)
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 2a850b722e..0f86402b84 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -413,6 +413,7 @@
src.throw_impact(A,speed)
/atom/movable/proc/throw_at(atom/target, range, speed, thrower)
+ set waitfor = FALSE
if(!target || !src)
return 0
if(target.z != src.z)
@@ -504,10 +505,10 @@
var/atom/master = null
anchored = 1
-/atom/movable/overlay/New()
+/atom/movable/overlay/Initialize()
for(var/x in src.verbs)
src.verbs -= x
- ..()
+ . = ..()
/atom/movable/overlay/attackby(a, b)
if (src.master)
diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm
index 44e3fb1843..64b469706f 100644
--- a/code/game/gamemodes/changeling/changeling_powers.dm
+++ b/code/game/gamemodes/changeling/changeling_powers.dm
@@ -88,7 +88,7 @@ var/global/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","E
verbs.Add(P.verbpath)
if(P.make_hud_button)
if(!src.ability_master)
- src.ability_master = new /obj/screen/movable/ability_master(src)
+ src.ability_master = new /obj/screen/movable/ability_master(null, src)
src.ability_master.add_ling_ability(
object_given = src,
verb_given = P.verbpath,
diff --git a/code/game/gamemodes/changeling/modularchangling.dm b/code/game/gamemodes/changeling/modularchangling.dm
index c6af89ad75..a010028270 100644
--- a/code/game/gamemodes/changeling/modularchangling.dm
+++ b/code/game/gamemodes/changeling/modularchangling.dm
@@ -344,7 +344,7 @@ var/list/datum/power/changeling/powerinstances = list()
if(Thepower.make_hud_button && Thepower.isVerb)
if(!M.current.ability_master)
- M.current.ability_master = new /obj/screen/movable/ability_master(M.current)
+ M.current.ability_master = new /obj/screen/movable/ability_master(null, M.current)
M.current.ability_master.add_ling_ability(
object_given = M.current,
verb_given = Thepower.verbpath,
diff --git a/code/game/gamemodes/changeling/powers/armblade.dm b/code/game/gamemodes/changeling/powers/armblade.dm
index 7cf5464e61..0652280ce7 100644
--- a/code/game/gamemodes/changeling/powers/armblade.dm
+++ b/code/game/gamemodes/changeling/powers/armblade.dm
@@ -65,8 +65,8 @@
defend_chance = 40 // The base chance for the weapon to parry.
projectile_parry_chance = 15 // The base chance for a projectile to be deflected.
-/obj/item/weapon/melee/changeling/New(location)
- ..()
+/obj/item/weapon/melee/changeling/Initialize()
+ . = ..()
START_PROCESSING(SSobj, src)
if(ismob(loc))
visible_message("A grotesque weapon forms around [loc.name]\'s arm!",
diff --git a/code/game/gamemodes/changeling/powers/armor.dm b/code/game/gamemodes/changeling/powers/armor.dm
index aa6e2bf0b0..a6928dff2a 100644
--- a/code/game/gamemodes/changeling/powers/armor.dm
+++ b/code/game/gamemodes/changeling/powers/armor.dm
@@ -41,8 +41,8 @@
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) //No armor at all.
canremove = 0
-/obj/item/clothing/suit/space/changeling/New()
- ..()
+/obj/item/clothing/suit/space/changeling/Initialize()
+ . = ..()
if(ismob(loc))
loc.visible_message("[loc.name]\'s flesh rapidly inflates, forming a bloated mass around their body!",
"We inflate our flesh, creating a spaceproof suit!",
@@ -105,8 +105,8 @@
max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE
slowdown = 1.5
-/obj/item/clothing/suit/space/changeling/armored/New()
- ..()
+/obj/item/clothing/suit/space/changeling/armored/Initialize()
+ . = ..()
if(ismob(loc))
loc.visible_message("[loc.name]\'s flesh turns black, quickly transforming into a hard, chitinous mass!",
"We harden our flesh, creating a suit of armor!",
diff --git a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm
index ca92d67ff7..d35a2f2161 100644
--- a/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm
+++ b/code/game/gamemodes/changeling/powers/bioelectrogenesis.dm
@@ -113,7 +113,8 @@
agony_amount = 80
electrocute_amount = 20
-/obj/item/weapon/electric_hand/New()
+/obj/item/weapon/electric_hand/Initialize()
+ . = ..()
if(ismob(loc))
visible_message("Electrical arcs form around [loc.name]\'s hand!",
"We store a charge of electricity in our hand.",
diff --git a/code/game/gamemodes/changeling/powers/electric_lockpick.dm b/code/game/gamemodes/changeling/powers/electric_lockpick.dm
index 262d90429f..40ba101f4e 100644
--- a/code/game/gamemodes/changeling/powers/electric_lockpick.dm
+++ b/code/game/gamemodes/changeling/powers/electric_lockpick.dm
@@ -32,7 +32,8 @@
icon_state = "electric_hand"
show_examine = FALSE
-/obj/item/weapon/finger_lockpick/New()
+/obj/item/weapon/finger_lockpick/Initialize()
+ . = ..()
if(ismob(loc))
to_chat(loc, "We shape our finger to fit inside electronics, and are ready to force them open.")
diff --git a/code/game/gamemodes/changeling/powers/fabricate_clothing.dm b/code/game/gamemodes/changeling/powers/fabricate_clothing.dm
index b90b402e78..04a09d65d1 100644
--- a/code/game/gamemodes/changeling/powers/fabricate_clothing.dm
+++ b/code/game/gamemodes/changeling/powers/fabricate_clothing.dm
@@ -264,12 +264,10 @@ var/global/list/changeling_fabricated_clothing = list(
access = null
canremove = 0
-/obj/item/weapon/card/id/syndicate/changeling/New(mob/user as mob)
- ..()
- registered_user = user
-
/obj/item/weapon/card/id/syndicate/changeling/Initialize()
. = ..()
+ if(ismob(loc))
+ registered_user = loc
access = null
/obj/item/weapon/card/id/syndicate/changeling/verb/shred()
diff --git a/code/game/gamemodes/cult/construct_spells.dm b/code/game/gamemodes/cult/construct_spells.dm
index 29361f9741..408b11d09b 100644
--- a/code/game/gamemodes/cult/construct_spells.dm
+++ b/code/game/gamemodes/cult/construct_spells.dm
@@ -439,16 +439,9 @@
toggled = 0 // Mainly used for overlays.
cooldown = 0 // If set, will add a cooldown overlay and adjust click delay. Must be a multiple of 5 for overlays.
cast_sound = null // Sound file played when this is used.
+ needs_core = FALSE // Does not need a core.
var/last_castcheck = null // The last time this spell was cast.
-/obj/item/weapon/spell/construct/New()
- //..() //This kills the spell, because super on this calls the default spell's New, which checks for a core. Can't have that.
- if(isliving(loc))
- owner = loc
- if(!owner)
- qdel(src)
- update_icon()
-
/obj/item/weapon/spell/construct/adjust_instability(var/amount) //The only drawback to the boons of the geometer is the use of a mortal's blood as fuel. Constructs have already paid that price long ago.
return
diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm
index 241d613275..601a891707 100644
--- a/code/game/gamemodes/cult/cult_structures.dm
+++ b/code/game/gamemodes/cult/cult_structures.dm
@@ -154,6 +154,7 @@
return
/obj/effect/gateway/active/Initialize()
+ . = ..()
addtimer(CALLBACK(src, .proc/spawn_and_qdel), rand(30, 60) SECONDS)
/obj/effect/gateway/active/proc/spawn_and_qdel()
diff --git a/code/game/gamemodes/cult/narsie.dm b/code/game/gamemodes/cult/narsie.dm
index 58684bb2a2..8e95c4c43a 100644
--- a/code/game/gamemodes/cult/narsie.dm
+++ b/code/game/gamemodes/cult/narsie.dm
@@ -16,8 +16,8 @@ var/global/list/narsie_list = list()
consume_range = 3 //How many tiles out do we eat
-/obj/singularity/narsie/New()
- ..()
+/obj/singularity/narsie/Initialize()
+ . = ..()
narsie_list.Add(src)
/obj/singularity/narsie/Destroy()
@@ -40,8 +40,8 @@ var/global/list/narsie_list = list()
var/announce=1
var/cause_hell = 1
-/obj/singularity/narsie/large/New()
- ..()
+/obj/singularity/narsie/large/Initialize()
+ . = ..()
if(announce)
to_world("[uppertext(name)] HAS RISEN")
world << sound('sound/effects/weather/wind/wind_5_1.ogg')
@@ -358,6 +358,7 @@ var/global/list/narsie_list = list()
consume(T)
/obj/singularity/narsie/proc/narsie_spawn_animation()
+ set waitfor = FALSE
icon = 'icons/obj/narsie_spawn_anim.dmi'
dir = SOUTH
move_self = 0
diff --git a/code/game/gamemodes/endgame/supermatter_cascade/portal.dm b/code/game/gamemodes/endgame/supermatter_cascade/portal.dm
index 996fc225b4..44b64b2691 100644
--- a/code/game/gamemodes/endgame/supermatter_cascade/portal.dm
+++ b/code/game/gamemodes/endgame/supermatter_cascade/portal.dm
@@ -14,9 +14,9 @@
consume_range = 6
-/obj/singularity/narsie/large/exit/New()
- ..()
- START_PROCESSING(SSobj, src)
+/obj/singularity/narsie/large/exit/Initialize()
+ . = ..()
+ START_PROCESSING(SSobj, src)
/obj/singularity/narsie/large/exit/update_icon()
overlays = 0
diff --git a/code/game/gamemodes/events/black_hole.dm b/code/game/gamemodes/events/black_hole.dm
index a8b0071f65..0b2e8e660d 100644
--- a/code/game/gamemodes/events/black_hole.dm
+++ b/code/game/gamemodes/events/black_hole.dm
@@ -8,9 +8,9 @@
density = 0
anchored = 1
-/obj/effect/bhole/New()
- spawn(4)
- controller()
+/obj/effect/bhole/Initialize()
+ . = ..()
+ addtimer(CALLBACK(src, .proc/controller), 4)
/obj/effect/bhole/proc/controller()
while(src)
diff --git a/code/game/gamemodes/events/holidays/Christmas.dm b/code/game/gamemodes/events/holidays/Christmas.dm
index c34f370a33..8ab73bafc8 100644
--- a/code/game/gamemodes/events/holidays/Christmas.dm
+++ b/code/game/gamemodes/events/holidays/Christmas.dm
@@ -23,9 +23,6 @@
desc = "Directions for use: Requires two people, one to pull each end."
var/cracked = 0
-/obj/item/weapon/toy/xmas_cracker/New()
- ..()
-
/obj/item/weapon/toy/xmas_cracker/attack(mob/target, mob/user)
if( !cracked && (istype(target,/mob/living/silicon) || (istype(target,/mob/living/carbon/human) && !target.get_active_hand())) && target.stat == CONSCIOUS)
target.visible_message("[user] and [target] pop \an [src]! *pop*", "You pull \an [src] with [target]! *pop*", "You hear a *pop*.")
diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm
index 18d90bc545..376388efeb 100644
--- a/code/game/gamemodes/meteor/meteors.dm
+++ b/code/game/gamemodes/meteor/meteors.dm
@@ -130,6 +130,7 @@
. = ..()
z_original = z
GLOB.meteor_list += src
+ SpinAnimation()
/obj/effect/meteor/Move()
if(z != z_original || loc == dest)
@@ -151,10 +152,6 @@
GLOB.meteor_list -= src
return ..()
-/obj/effect/meteor/New()
- ..()
- SpinAnimation()
-
/obj/effect/meteor/Bump(atom/A)
if(A)
if(A.handle_meteor_impact(src)) // Used for special behaviour when getting hit specifically by a meteor, like a shield.
diff --git a/code/game/gamemodes/technomancer/catalog.dm b/code/game/gamemodes/technomancer/catalog.dm
index f86f89779b..beed8b6e21 100644
--- a/code/game/gamemodes/technomancer/catalog.dm
+++ b/code/game/gamemodes/technomancer/catalog.dm
@@ -62,8 +62,8 @@ var/list/all_technomancer_assistance = typesof(/datum/technomancer/assistance) -
// Proc: New()
// Parameters: 0
// Description: Sets up the catalog, as shown below.
-/obj/item/weapon/technomancer_catalog/New()
- ..()
+/obj/item/weapon/technomancer_catalog/Initialize()
+ . = ..()
set_up()
// Proc: set_up()
diff --git a/code/game/gamemodes/technomancer/core_obj.dm b/code/game/gamemodes/technomancer/core_obj.dm
index a0d1d0d360..c181c4e438 100644
--- a/code/game/gamemodes/technomancer/core_obj.dm
+++ b/code/game/gamemodes/technomancer/core_obj.dm
@@ -36,8 +36,8 @@
var/list/wards_in_use = list() // Wards don't count against the cap for other summons.
var/max_summons = 10 // Maximum allowed summoned entities. Some cores will have different caps.
-/obj/item/weapon/technomancer_core/New()
- ..()
+/obj/item/weapon/technomancer_core/Initialize()
+ . = ..()
START_PROCESSING(SSobj, src)
/obj/item/weapon/technomancer_core/Destroy()
@@ -141,9 +141,10 @@
var/obj/item/weapon/technomancer_core/core = null
var/ability_icon_state = null
-/obj/spellbutton/New(loc, var/path, var/new_name, var/new_icon_state)
+/obj/spellbutton/Initialize(var/ml, var/path, var/new_name, var/new_icon_state)
+ . = ..()
if(!path || !ispath(path))
- message_admins("ERROR: /obj/spellbutton/New() was not given a proper path!")
+ message_admins("ERROR: /obj/spellbutton/Initialize() was not given a proper path!")
qdel(src)
src.name = new_name
src.spellpath = path
diff --git a/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm b/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm
index 9d78afe0b2..26dda90524 100644
--- a/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm
+++ b/code/game/gamemodes/technomancer/devices/gloves_of_regen.dm
@@ -36,9 +36,9 @@
wearer.custom_pain("Your hands hurt like hell!",1)
wearer = null
-/obj/item/clothing/gloves/regen/New()
+/obj/item/clothing/gloves/regen/Initialize()
START_PROCESSING(SSobj, src)
- ..()
+ . = ..()
/obj/item/clothing/gloves/regen/Destroy()
wearer = null
diff --git a/code/game/gamemodes/technomancer/devices/shield_armor.dm b/code/game/gamemodes/technomancer/devices/shield_armor.dm
index 7618708aad..6d667be001 100644
--- a/code/game/gamemodes/technomancer/devices/shield_armor.dm
+++ b/code/game/gamemodes/technomancer/devices/shield_armor.dm
@@ -24,8 +24,8 @@
var/datum/effect/effect/system/spark_spread/spark_system = null
var/block_percentage = 75
-/obj/item/clothing/suit/armor/shield/New()
- ..()
+/obj/item/clothing/suit/armor/shield/Initialize()
+ . = ..()
spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, src)
diff --git a/code/game/gamemodes/technomancer/equipment.dm b/code/game/gamemodes/technomancer/equipment.dm
index b96895a644..b2a657e383 100644
--- a/code/game/gamemodes/technomancer/equipment.dm
+++ b/code/game/gamemodes/technomancer/equipment.dm
@@ -108,7 +108,7 @@
name = "hypo belt"
desc = "A medical belt designed to carry autoinjectors and other medical equipment."
-/obj/item/weapon/storage/belt/medical/technomancer/New()
+/obj/item/weapon/storage/belt/medical/technomancer/Initialize()
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute(src)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn(src)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/toxin(src)
@@ -117,7 +117,7 @@
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/pain(src)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ(src)
new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat(src)
- ..()
+ . = ..()
/datum/technomancer/equipment/belt_of_holding
name = "Belt of Holding"
diff --git a/code/game/gamemodes/technomancer/spell_objs.dm b/code/game/gamemodes/technomancer/spell_objs.dm
index 1c2ed98e36..d9017227ec 100644
--- a/code/game/gamemodes/technomancer/spell_objs.dm
+++ b/code/game/gamemodes/technomancer/spell_objs.dm
@@ -18,6 +18,7 @@
var/toggled = 0 // Mainly used for overlays.
var/cooldown = 0 // If set, will add a cooldown overlay and adjust click delay. Must be a multiple of 5 for overlays.
var/cast_sound = null // Sound file played when this is used.
+ var/needs_core = TRUE // Does this spell need a core to be usable?
// Proc: on_use_cast()
// Parameters: 1 (user - the technomancer casting the spell)
@@ -110,18 +111,18 @@
// Proc: New()
// Parameters: 0
// Description: Sets owner to equal its loc, links to the owner's core, then applies overlays if needed.
-/obj/item/weapon/spell/New()
- ..()
+/obj/item/weapon/spell/Initialize()
+ . = ..()
if(isliving(loc))
owner = loc
if(owner)
core = owner.get_technomancer_core()
- if(!core)
+ if(!core && needs_core)
to_chat(owner, "You need a Core to do that.")
- qdel(src)
- return
-// if(istype(/obj/item/weapon/technomancer_core, owner.back))
-// core = owner.back
+ return INITIALIZE_HINT_QDEL
+ else
+ return INITIALIZE_HINT_QDEL
+
update_icon()
// Proc: Destroy()
diff --git a/code/game/gamemodes/technomancer/spells/aspect_aura.dm b/code/game/gamemodes/technomancer/spells/aspect_aura.dm
index 0619f07ef6..85a3a4492e 100644
--- a/code/game/gamemodes/technomancer/spells/aspect_aura.dm
+++ b/code/game/gamemodes/technomancer/spells/aspect_aura.dm
@@ -41,8 +41,8 @@
aspect = ASPECT_CHROMATIC
var/glow_color = "#FFFFFF"
-/obj/item/weapon/spell/aura/New()
- ..()
+/obj/item/weapon/spell/aura/Initialize()
+ . = ..()
set_light(7, 4, l_color = glow_color)
START_PROCESSING(SSobj, src)
diff --git a/code/game/gamemodes/technomancer/spells/aura/aura.dm b/code/game/gamemodes/technomancer/spells/aura/aura.dm
index be986bb7ee..9bdffceac1 100644
--- a/code/game/gamemodes/technomancer/spells/aura/aura.dm
+++ b/code/game/gamemodes/technomancer/spells/aura/aura.dm
@@ -6,8 +6,8 @@
aspect = null
var/glow_color = "#FFFFFF"
-/obj/item/weapon/spell/aura/New()
- ..()
+/obj/item/weapon/spell/aura/Initialize()
+ . = ..()
set_light(calculate_spell_power(7), calculate_spell_power(4), l_color = glow_color)
START_PROCESSING(SSobj, src)
log_and_message_admins("has started casting [src].")
diff --git a/code/game/gamemodes/technomancer/spells/chroma.dm b/code/game/gamemodes/technomancer/spells/chroma.dm
index b87a82a0ae..dff834f668 100644
--- a/code/game/gamemodes/technomancer/spells/chroma.dm
+++ b/code/game/gamemodes/technomancer/spells/chroma.dm
@@ -14,8 +14,8 @@
aspect = ASPECT_LIGHT
var/color_to_use = "#FFFFFF"
-/obj/item/weapon/spell/chroma/New()
- ..()
+/obj/item/weapon/spell/chroma/Initialize()
+ . = ..()
set_light(6, 5, l_color = color_to_use)
/obj/effect/temporary_effect/chroma
diff --git a/code/game/gamemodes/technomancer/spells/energy_siphon.dm b/code/game/gamemodes/technomancer/spells/energy_siphon.dm
index 9bf8dd578f..0b46dc8dee 100644
--- a/code/game/gamemodes/technomancer/spells/energy_siphon.dm
+++ b/code/game/gamemodes/technomancer/spells/energy_siphon.dm
@@ -20,8 +20,8 @@
var/list/things_to_siphon = list() //Things which are actually drained as a result of the above not being null.
var/flow_rate = 1000 // Limits how much electricity can be drained per second. Measured by default in god knows what.
-/obj/item/weapon/spell/energy_siphon/New()
- ..()
+/obj/item/weapon/spell/energy_siphon/Initialize()
+ . = ..()
START_PROCESSING(SSobj, src)
/obj/item/weapon/spell/energy_siphon/Destroy()
diff --git a/code/game/gamemodes/technomancer/spells/flame_tongue.dm b/code/game/gamemodes/technomancer/spells/flame_tongue.dm
index 9a52c5d82f..a0471fe4ad 100644
--- a/code/game/gamemodes/technomancer/spells/flame_tongue.dm
+++ b/code/game/gamemodes/technomancer/spells/flame_tongue.dm
@@ -14,8 +14,8 @@
aspect = ASPECT_FIRE
var/obj/item/weapon/weldingtool/spell/welder = null
-/obj/item/weapon/spell/flame_tongue/New()
- ..()
+/obj/item/weapon/spell/flame_tongue/Initialize()
+ . = ..()
set_light(3, 2, l_color = "#FF6A00")
visible_message("\The [loc]'s hand begins to emit a flame.")
welder = new /obj/item/weapon/weldingtool/spell(src)
diff --git a/code/game/gamemodes/technomancer/spells/insert/insert.dm b/code/game/gamemodes/technomancer/spells/insert/insert.dm
index 9ac0295e2b..0d537b35a9 100644
--- a/code/game/gamemodes/technomancer/spells/insert/insert.dm
+++ b/code/game/gamemodes/technomancer/spells/insert/insert.dm
@@ -11,8 +11,8 @@
var/obj/item/weapon/inserted_spell/inserting = null
var/allow_stacking = 0
-/obj/item/weapon/spell/insert/New()
- ..()
+/obj/item/weapon/spell/insert/Initialize()
+ . = ..()
set_light(spell_light_range, spell_light_intensity, l_color = light_color)
/obj/item/weapon/inserted_spell
@@ -20,9 +20,9 @@
var/mob/living/host = null
var/spell_power_at_creation = 1.0 // This is here because the spell object that made this object probably won't exist.
-/obj/item/weapon/inserted_spell/New(var/newloc, var/user, var/obj/item/weapon/spell/insert/inserter)
- ..(newloc)
- host = newloc
+/obj/item/weapon/inserted_spell/Initialize(var/ml, var/user, var/obj/item/weapon/spell/insert/inserter)
+ . = ..()
+ host = loc
origin = user
if(light_color)
spawn(1)
diff --git a/code/game/gamemodes/technomancer/spells/instability_tap.dm b/code/game/gamemodes/technomancer/spells/instability_tap.dm
index ad2c72518b..e5a80fdafc 100644
--- a/code/game/gamemodes/technomancer/spells/instability_tap.dm
+++ b/code/game/gamemodes/technomancer/spells/instability_tap.dm
@@ -14,8 +14,8 @@
cast_methods = CAST_USE
aspect = ASPECT_UNSTABLE
-/obj/item/weapon/spell/instability_tap/New()
- ..()
+/obj/item/weapon/spell/instability_tap/Initialize()
+ . = ..()
set_light(3, 2, l_color = "#FA58F4")
/obj/item/weapon/spell/instability_tap/on_use_cast(mob/user)
diff --git a/code/game/gamemodes/technomancer/spells/modifier/modifier.dm b/code/game/gamemodes/technomancer/spells/modifier/modifier.dm
index 3ea278286e..f612f00d3f 100644
--- a/code/game/gamemodes/technomancer/spells/modifier/modifier.dm
+++ b/code/game/gamemodes/technomancer/spells/modifier/modifier.dm
@@ -9,8 +9,8 @@
var/spell_light_intensity = 2
var/spell_light_range = 3
-/obj/item/weapon/spell/modifier/New()
- ..()
+/obj/item/weapon/spell/modifier/Initialize()
+ . = ..()
set_light(spell_light_range, spell_light_intensity, l_color = light_color)
/obj/item/weapon/spell/modifier/on_melee_cast(atom/hit_atom, mob/user)
diff --git a/code/game/gamemodes/technomancer/spells/phase_shift.dm b/code/game/gamemodes/technomancer/spells/phase_shift.dm
index 7cee437685..0a64aec0b6 100644
--- a/code/game/gamemodes/technomancer/spells/phase_shift.dm
+++ b/code/game/gamemodes/technomancer/spells/phase_shift.dm
@@ -15,8 +15,8 @@
cast_methods = CAST_USE
aspect = ASPECT_TELE
-/obj/item/weapon/spell/phase_shift/New()
- ..()
+/obj/item/weapon/spell/phase_shift/Initialize()
+ . = ..()
set_light(3, 2, l_color = "#FA58F4")
/obj/effect/phase_shift
@@ -28,8 +28,8 @@
/obj/effect/phase_shift/ex_act()
return
-/obj/effect/phase_shift/New()
- ..()
+/obj/effect/phase_shift/Initialize()
+ . = ..()
set_light(3, 5, l_color = "#FA58F4")
START_PROCESSING(SSobj, src)
diff --git a/code/game/gamemodes/technomancer/spells/radiance.dm b/code/game/gamemodes/technomancer/spells/radiance.dm
index d86428354e..80a7d76ec9 100644
--- a/code/game/gamemodes/technomancer/spells/radiance.dm
+++ b/code/game/gamemodes/technomancer/spells/radiance.dm
@@ -16,8 +16,8 @@
var/power = 250
toggled = 1
-/obj/item/weapon/spell/radiance/New()
- ..()
+/obj/item/weapon/spell/radiance/Initialize()
+ . = ..()
set_light(7, 4, l_color = "#D9D900")
START_PROCESSING(SSobj, src)
log_and_message_admins("has casted [src].")
diff --git a/code/game/gamemodes/technomancer/spells/reflect.dm b/code/game/gamemodes/technomancer/spells/reflect.dm
index 07f3595eda..b5ca6047a4 100644
--- a/code/game/gamemodes/technomancer/spells/reflect.dm
+++ b/code/game/gamemodes/technomancer/spells/reflect.dm
@@ -16,8 +16,8 @@
var/damage_to_energy_multiplier = 60.0 //Determines how much energy to charge for blocking, e.g. 20 damage attack = 1200 energy cost
var/datum/effect/effect/system/spark_spread/spark_system = null
-/obj/item/weapon/spell/reflect/New()
- ..()
+/obj/item/weapon/spell/reflect/Initialize()
+ . = ..()
set_light(3, 2, l_color = "#006AFF")
spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, src)
diff --git a/code/game/gamemodes/technomancer/spells/shield.dm b/code/game/gamemodes/technomancer/spells/shield.dm
index b11d5590b0..849ea56fbc 100644
--- a/code/game/gamemodes/technomancer/spells/shield.dm
+++ b/code/game/gamemodes/technomancer/spells/shield.dm
@@ -18,8 +18,8 @@
var/damage_to_energy_multiplier = 30.0 //Determines how much energy to charge for blocking, e.g. 20 damage attack = 600 energy cost
var/datum/effect/effect/system/spark_spread/spark_system = null
-/obj/item/weapon/spell/shield/New()
- ..()
+/obj/item/weapon/spell/shield/Initialize()
+ . = ..()
set_light(3, 2, l_color = "#006AFF")
spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, src)
diff --git a/code/game/gamemodes/technomancer/spells/spawner/darkness.dm b/code/game/gamemodes/technomancer/spells/spawner/darkness.dm
index d83602aa68..c28080043f 100644
--- a/code/game/gamemodes/technomancer/spells/spawner/darkness.dm
+++ b/code/game/gamemodes/technomancer/spells/spawner/darkness.dm
@@ -18,8 +18,8 @@
adjust_instability(4)
..()
-/obj/item/weapon/spell/spawner/darkness/New()
- ..()
+/obj/item/weapon/spell/spawner/darkness/Initialize()
+ . = ..()
set_light(6, -20, l_color = "#FFFFFF")
/obj/effect/temporary_effect/darkness
diff --git a/code/game/gamemodes/technomancer/spells/spawner/destablize.dm b/code/game/gamemodes/technomancer/spells/spawner/destablize.dm
index aee8d2557b..59ccf41e5d 100644
--- a/code/game/gamemodes/technomancer/spells/spawner/destablize.dm
+++ b/code/game/gamemodes/technomancer/spells/spawner/destablize.dm
@@ -14,8 +14,8 @@
aspect = ASPECT_UNSTABLE
spawner_type = /obj/effect/temporary_effect/destablize
-/obj/item/weapon/spell/spawner/destablize/New()
- ..()
+/obj/item/weapon/spell/spawner/destablize/Initialize()
+ . = ..()
set_light(3, 2, l_color = "#C26DDE")
/obj/item/weapon/spell/spawner/destablize/on_ranged_cast(atom/hit_atom, mob/user)
diff --git a/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm b/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm
index b56ea64e9c..1594286377 100644
--- a/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm
+++ b/code/game/gamemodes/technomancer/spells/spawner/pulsar.dm
@@ -13,8 +13,8 @@
aspect = ASPECT_EMP
spawner_type = /obj/effect/temporary_effect/pulse/pulsar
-/obj/item/weapon/spell/spawner/pulsar/New()
- ..()
+/obj/item/weapon/spell/spawner/pulsar/Initialize()
+ . = ..()
set_light(3, 2, l_color = "#2ECCFA")
/obj/item/weapon/spell/spawner/pulsar/on_ranged_cast(atom/hit_atom, mob/user)
diff --git a/code/game/gamemodes/technomancer/spells/warp_strike.dm b/code/game/gamemodes/technomancer/spells/warp_strike.dm
index 83a2336ab6..b0f7712cfa 100644
--- a/code/game/gamemodes/technomancer/spells/warp_strike.dm
+++ b/code/game/gamemodes/technomancer/spells/warp_strike.dm
@@ -14,8 +14,8 @@
aspect = ASPECT_TELE
var/datum/effect/effect/system/spark_spread/sparks
-/obj/item/weapon/spell/warp_strike/New()
- ..()
+/obj/item/weapon/spell/warp_strike/Initialize()
+ . = ..()
sparks = new /datum/effect/effect/system/spark_spread()
sparks.set_up(5, 0, src)
sparks.attach(loc)
diff --git a/code/game/machinery/Beacon.dm b/code/game/machinery/Beacon.dm
index b6f6cb25ac..eb13608ae1 100644
--- a/code/game/machinery/Beacon.dm
+++ b/code/game/machinery/Beacon.dm
@@ -10,8 +10,8 @@
idle_power_usage = 0
var/obj/item/device/radio/beacon/Beacon
-/obj/machinery/bluespace_beacon/New()
- ..()
+/obj/machinery/bluespace_beacon/Initialize()
+ . = ..()
var/turf/T = src.loc
Beacon = new /obj/item/device/radio/beacon
Beacon.invisibility = INVISIBILITY_MAXIMUM
diff --git a/code/game/machinery/CableLayer.dm b/code/game/machinery/CableLayer.dm
index 8edc131ac8..ed99b6e72c 100644
--- a/code/game/machinery/CableLayer.dm
+++ b/code/game/machinery/CableLayer.dm
@@ -8,10 +8,10 @@
var/max_cable = 100
var/on = 0
-/obj/machinery/cablelayer/New()
+/obj/machinery/cablelayer/Initialize()
cable = new(src)
cable.amount = 100
- ..()
+ . = ..()
/obj/machinery/cablelayer/Moved(atom/old_loc, direction, forced = FALSE)
. = ..()
diff --git a/code/game/machinery/OpTable.dm b/code/game/machinery/OpTable.dm
index 0d67a00651..c0a817df2f 100644
--- a/code/game/machinery/OpTable.dm
+++ b/code/game/machinery/OpTable.dm
@@ -14,8 +14,8 @@
var/strapped = 0.0
var/obj/machinery/computer/operating/computer = null
-/obj/machinery/optable/New()
- ..()
+/obj/machinery/optable/Initialize()
+ . = ..()
for(var/direction in list(NORTH,EAST,SOUTH,WEST))
computer = locate(/obj/machinery/computer/operating, get_step(src, direction))
if(computer)
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index 519257a254..d4b1ead2ec 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -539,8 +539,8 @@
circuit = /obj/item/weapon/circuitboard/scanner_console
var/printing = null
-/obj/machinery/body_scanconsole/New()
- ..()
+/obj/machinery/body_scanconsole/Initialize()
+ . = ..()
findscanner()
/obj/machinery/body_scanconsole/Destroy()
diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm
index aead0c79f1..8a07a3a416 100644
--- a/code/game/machinery/ai_slipper.dm
+++ b/code/game/machinery/ai_slipper.dm
@@ -14,8 +14,8 @@
var/cooldown_on = 0
req_access = list(access_ai_upload)
-/obj/machinery/ai_slipper/New()
- ..()
+/obj/machinery/ai_slipper/Initialize()
+ . = ..()
update_icon()
/obj/machinery/ai_slipper/power_change()
diff --git a/code/game/machinery/air_alarm.dm b/code/game/machinery/air_alarm.dm
index 5e831188d1..908809ae72 100644
--- a/code/game/machinery/air_alarm.dm
+++ b/code/game/machinery/air_alarm.dm
@@ -103,6 +103,9 @@
/obj/machinery/alarm/Initialize(mapload)
. = ..()
first_run()
+ set_frequency(frequency)
+ if(!master_is_operating())
+ elect_master()
/obj/machinery/alarm/Destroy()
unregister_radio(src, frequency)
@@ -131,12 +134,6 @@
TLV["pressure"] = list(ONE_ATMOSPHERE * 0.80, ONE_ATMOSPHERE * 0.90, ONE_ATMOSPHERE * 1.10, ONE_ATMOSPHERE * 1.20) /* kpa */
TLV["temperature"] = list(T0C - 26, T0C, T0C + 40, T0C + 66) // K
-/obj/machinery/alarm/Initialize()
- . = ..()
- set_frequency(frequency)
- if(!master_is_operating())
- elect_master()
-
/obj/machinery/alarm/process()
if((stat & (NOPOWER|BROKEN)) || shorted)
return
diff --git a/code/game/machinery/atmoalter/area_atmos_computer.dm b/code/game/machinery/atmoalter/area_atmos_computer.dm
index bfe95bada7..82f23e72a6 100644
--- a/code/game/machinery/atmoalter/area_atmos_computer.dm
+++ b/code/game/machinery/atmoalter/area_atmos_computer.dm
@@ -14,7 +14,7 @@
//Simple variable to prevent me from doing attack_hand in both this and the child computer
var/zone = "This computer is working on a wireless range, the range is currently limited to "
-/obj/machinery/computer/area_atmos/Initialize()
+/obj/machinery/computer/area_atmos/LateInitialize()
. = ..()
scanscrubbers()
diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm
index 6fe30aeaab..585a62a5fa 100644
--- a/code/game/machinery/atmoalter/canister.dm
+++ b/code/game/machinery/atmoalter/canister.dm
@@ -368,30 +368,30 @@ update_flag
add_fingerprint(usr)
update_icon()
-/obj/machinery/portable_atmospherics/canister/phoron/New()
- ..()
+/obj/machinery/portable_atmospherics/canister/phoron/Initialize()
+ . = ..()
src.air_contents.adjust_gas("phoron", MolesForPressure())
src.update_icon()
return 1
-/obj/machinery/portable_atmospherics/canister/oxygen/New()
- ..()
+/obj/machinery/portable_atmospherics/canister/oxygen/Initialize()
+ . = ..()
src.air_contents.adjust_gas("oxygen", MolesForPressure())
src.update_icon()
return 1
-/obj/machinery/portable_atmospherics/canister/oxygen/prechilled/New()
- ..()
+/obj/machinery/portable_atmospherics/canister/oxygen/prechilled/Initialize()
+ . = ..()
src.air_contents.adjust_gas("oxygen", MolesForPressure())
src.air_contents.temperature = 80
src.update_icon()
return 1
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide/New()
- ..()
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide/Initialize()
+ . = ..()
air_contents.adjust_gas("nitrous_oxide", MolesForPressure())
src.update_icon()
@@ -407,23 +407,20 @@ update_flag
air_contents = new
return 1
-/obj/machinery/portable_atmospherics/canister/nitrogen/New()
-
- ..()
-
+/obj/machinery/portable_atmospherics/canister/nitrogen/Initialize()
+ . = ..()
src.air_contents.adjust_gas("nitrogen", MolesForPressure())
src.update_icon()
return 1
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide/New()
- ..()
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide/Initialize()
+ . = ..()
src.air_contents.adjust_gas("carbon_dioxide", MolesForPressure())
src.update_icon()
return 1
-
-/obj/machinery/portable_atmospherics/canister/air/New()
- ..()
+/obj/machinery/portable_atmospherics/canister/air/Initialize()
+ . = ..()
var/list/air_mix = StandardAirMix()
src.air_contents.adjust_multi("oxygen", air_mix["oxygen"], "nitrogen", air_mix["nitrogen"])
@@ -432,20 +429,20 @@ update_flag
//R-UST port
// Special types used for engine setup admin verb, they contain double amount of that of normal canister.
-/obj/machinery/portable_atmospherics/canister/nitrogen/engine_setup/New()
- ..()
+/obj/machinery/portable_atmospherics/canister/nitrogen/engine_setup/Initialize()
+ . = ..()
src.air_contents.adjust_gas("nitrogen", MolesForPressure())
src.update_icon()
return 1
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide/engine_setup/New()
- ..()
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide/engine_setup/Initialize()
+ . = ..()
src.air_contents.adjust_gas("carbon_dioxide", MolesForPressure())
src.update_icon()
return 1
-/obj/machinery/portable_atmospherics/canister/phoron/engine_setup/New()
- ..()
+/obj/machinery/portable_atmospherics/canister/phoron/engine_setup/Initialize()
+ . = ..()
src.air_contents.adjust_gas("phoron", MolesForPressure())
src.update_icon()
return 1
diff --git a/code/game/machinery/atmoalter/clamp.dm b/code/game/machinery/atmoalter/clamp.dm
index 318145c229..8667d4c50c 100644
--- a/code/game/machinery/atmoalter/clamp.dm
+++ b/code/game/machinery/atmoalter/clamp.dm
@@ -14,8 +14,8 @@
var/datum/pipe_network/network_node1
var/datum/pipe_network/network_node2
-/obj/machinery/clamp/New(loc, var/obj/machinery/atmospherics/pipe/simple/to_attach = null)
- ..()
+/obj/machinery/clamp/Initialize(var/ml, var/obj/machinery/atmospherics/pipe/simple/to_attach = null)
+ . = ..()
if(istype(to_attach))
target = to_attach
else
@@ -23,7 +23,6 @@
if(target)
update_networks()
dir = target.dir
- return 1
/obj/machinery/clamp/proc/update_networks()
if(!target)
diff --git a/code/game/machinery/atmoalter/portable_atmospherics.dm b/code/game/machinery/atmoalter/portable_atmospherics.dm
index dc530ecc2f..e334a3f3c2 100644
--- a/code/game/machinery/atmoalter/portable_atmospherics.dm
+++ b/code/game/machinery/atmoalter/portable_atmospherics.dm
@@ -13,16 +13,10 @@
var/start_pressure = ONE_ATMOSPHERE
var/maximum_pressure = 90 * ONE_ATMOSPHERE
-/obj/machinery/portable_atmospherics/New()
- ..()
-
- air_contents.volume = volume
- air_contents.temperature = T20C
-
- return 1
-
/obj/machinery/portable_atmospherics/Initialize()
..()
+ air_contents.volume = volume
+ air_contents.temperature = T20C
return INITIALIZE_HINT_LATELOAD
/obj/machinery/portable_atmospherics/LateInitialize()
diff --git a/code/game/machinery/atmoalter/pump.dm b/code/game/machinery/atmoalter/pump.dm
index 74e4804661..378d8965a0 100644
--- a/code/game/machinery/atmoalter/pump.dm
+++ b/code/game/machinery/atmoalter/pump.dm
@@ -21,8 +21,8 @@
/obj/machinery/portable_atmospherics/powered/pump/filled
start_pressure = 90 * ONE_ATMOSPHERE
-/obj/machinery/portable_atmospherics/powered/pump/New()
- ..()
+/obj/machinery/portable_atmospherics/powered/pump/Initialize()
+ . = ..()
cell = new/obj/item/weapon/cell/apc(src)
var/list/air_mix = StandardAirMix()
diff --git a/code/game/machinery/atmoalter/scrubber.dm b/code/game/machinery/atmoalter/scrubber.dm
index 794383001c..f6cadfbff1 100644
--- a/code/game/machinery/atmoalter/scrubber.dm
+++ b/code/game/machinery/atmoalter/scrubber.dm
@@ -20,8 +20,8 @@
var/list/scrubbing_gas = list("phoron", "carbon_dioxide", "nitrous_oxide", "volatile_fuel")
-/obj/machinery/portable_atmospherics/powered/scrubber/New()
- ..()
+/obj/machinery/portable_atmospherics/powered/scrubber/Initialize()
+ . = ..()
cell = new/obj/item/weapon/cell/apc(src)
/obj/machinery/portable_atmospherics/powered/scrubber/emp_act(severity)
@@ -162,8 +162,8 @@
var/global/gid = 1
var/id = 0
-/obj/machinery/portable_atmospherics/powered/scrubber/huge/New()
- ..()
+/obj/machinery/portable_atmospherics/powered/scrubber/huge/Initialize()
+ . = ..()
cell = null
id = gid
diff --git a/code/game/machinery/bioprinter.dm b/code/game/machinery/bioprinter.dm
index 6405a9f254..7749d967d9 100644
--- a/code/game/machinery/bioprinter.dm
+++ b/code/game/machinery/bioprinter.dm
@@ -335,7 +335,7 @@
var/matter_amount_per_sheet = 10
var/matter_type = MAT_STEEL
-/obj/machinery/organ_printer/robot/full/New()
+/obj/machinery/organ_printer/robot/full/Initialize()
. = ..()
stored_matter = max_stored_matter
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 625a4d6d55..d22ab1c9d1 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -42,7 +42,7 @@
var/list/camera_computers_using_this = list()
-/obj/machinery/camera/New()
+/obj/machinery/camera/Initialize()
wires = new(src)
assembly = new(src)
assembly.state = 4
@@ -61,7 +61,7 @@
error("[src.name] in [get_area(src)]has errored. [src.network?"Empty network list":"Null network list"]")
ASSERT(src.network)
ASSERT(src.network.len > 0)
- ..()
+ . = ..()
/obj/machinery/camera/Destroy()
if(isMotion())
@@ -180,7 +180,7 @@
else
assembly.state = 1
to_chat(user, "You cut \the [src] free from the wall.")
- new /obj/item/stack/cable_coil(src.loc, length=2)
+ new /obj/item/stack/cable_coil(src.loc, 2)
assembly = null //so qdel doesn't eat it.
qdel(src)
diff --git a/code/game/machinery/camera/presets.dm b/code/game/machinery/camera/presets.dm
index 5e463b0a78..42233501c4 100644
--- a/code/game/machinery/camera/presets.dm
+++ b/code/game/machinery/camera/presets.dm
@@ -106,8 +106,8 @@ var/global/list/engineering_networks = list(
// EMP
-/obj/machinery/camera/emp_proof/New()
- ..()
+/obj/machinery/camera/emp_proof/Initialize()
+ . = ..()
upgradeEmpProof()
// X-RAY
@@ -127,14 +127,14 @@ var/global/list/engineering_networks = list(
/obj/machinery/camera/xray/research
network = list(NETWORK_RESEARCH)
-/obj/machinery/camera/xray/New()
- ..()
+/obj/machinery/camera/xray/Initialize()
+ . = ..()
upgradeXRay()
// MOTION
-/obj/machinery/camera/motion/New()
- ..()
+/obj/machinery/camera/motion/Initialize()
+ . = ..()
upgradeMotion()
/obj/machinery/camera/motion/engineering_outpost
@@ -149,8 +149,8 @@ var/global/list/engineering_networks = list(
/obj/machinery/camera/all/command
network = list(NETWORK_COMMAND)
-/obj/machinery/camera/all/New()
- ..()
+/obj/machinery/camera/all/Initialize()
+ . = ..()
upgradeEmpProof()
upgradeXRay()
upgradeMotion()
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index d06a0080b0..a41ccad3a0 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -456,8 +456,8 @@
icon_state = "pod_g"
-/obj/machinery/clonepod/full/New()
- ..()
+/obj/machinery/clonepod/full/Initialize()
+ . = ..()
for(var/i = 1 to container_limit)
containers += new /obj/item/weapon/reagent_containers/glass/bottle/biomass(src)
@@ -499,7 +499,8 @@
name = "data disk - 'God Emperor of Mankind'"
read_only = 1
-/obj/item/weapon/disk/data/demo/New()
+/obj/item/weapon/disk/data/demo/Initialize()
+ . = ..()
initializeDisk()
buf.types=DNA2_BUF_UE|DNA2_BUF_UI
//data = "066000033000000000AF00330660FF4DB002690"
@@ -514,8 +515,8 @@
name = "data disk - 'Mr. Muggles'"
read_only = 1
-/obj/item/weapon/disk/data/monkey/New()
- ..()
+/obj/item/weapon/disk/data/monkey/Initialize()
+ . = ..()
initializeDisk()
buf.types=DNA2_BUF_SE
var/list/new_SE=list(0x098,0x3E8,0x403,0x44C,0x39F,0x4B0,0x59D,0x514,0x5FC,0x578,0x5DC,0x640,0x6A4)
@@ -524,8 +525,8 @@
buf.dna.SE=new_SE
buf.dna.SetSEValueRange(MONKEYBLOCK,0xDAC, 0xFFF)
-/obj/item/weapon/disk/data/New()
- ..()
+/obj/item/weapon/disk/data/Initialize()
+ . = ..()
var/diskcolor = pick(0,1,2)
icon_state = "datadisk[diskcolor]"
@@ -545,8 +546,8 @@
name = "Diskette Box"
icon_state = "disk_kit"
-/obj/item/weapon/storage/box/disks/New()
- ..()
+/obj/item/weapon/storage/box/disks/Initialize()
+ . = ..()
new /obj/item/weapon/disk/data(src)
new /obj/item/weapon/disk/data(src)
new /obj/item/weapon/disk/data(src)
diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm
index c965a54b15..dd94e6c8a9 100644
--- a/code/game/machinery/computer/Operating.dm
+++ b/code/game/machinery/computer/Operating.dm
@@ -20,8 +20,8 @@
var/healthAlarm = 50
var/oxy = 1 //oxygen beeping toggle
-/obj/machinery/computer/operating/New()
- ..()
+/obj/machinery/computer/operating/Initialize()
+ . = ..()
for(var/direction in list(NORTH,EAST,SOUTH,WEST))
table = locate(/obj/machinery/optable, get_step(src, direction))
if(table)
diff --git a/code/game/machinery/computer/RCON_Console.dm b/code/game/machinery/computer/RCON_Console.dm
index d6df0d2d6d..156f74ffa5 100644
--- a/code/game/machinery/computer/RCON_Console.dm
+++ b/code/game/machinery/computer/RCON_Console.dm
@@ -15,8 +15,8 @@
var/current_tag = null
var/datum/tgui_module/rcon/rcon
-/obj/machinery/computer/rcon/New()
- ..()
+/obj/machinery/computer/rcon/Initialize()
+ . = ..()
rcon = new(src)
/obj/machinery/computer/rcon/Destroy()
diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index 6928c3f029..737b10f350 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -94,8 +94,8 @@
var/blocked = 0 //Player cannot attack/heal while set
var/turtle = 0
-/obj/machinery/computer/arcade/battle/New()
- ..()
+/obj/machinery/computer/arcade/battle/Initialize()
+ . = ..()
var/name_action
var/name_part1
var/name_part2
@@ -347,8 +347,8 @@
var/gameStatus = ORION_STATUS_START
var/canContinueEvent = 0
-/obj/machinery/computer/arcade/orion_trail/New()
- ..()
+/obj/machinery/computer/arcade/orion_trail/Initialize()
+ . = ..()
// Sets up the main trail
stops = list("Pluto","Asteroid Belt","Proxima Centauri","Dead Space","Rigel Prime","Tau Ceti Beta","Black Hole","Space Outpost Beta-9","Orion Prime")
stopblurbs = list(
@@ -1237,8 +1237,8 @@
/// End Payment
-/obj/machinery/computer/arcade/clawmachine/New()
- ..()
+/obj/machinery/computer/arcade/clawmachine/Initialize()
+ . = ..()
/obj/machinery/computer/arcade/clawmachine/attack_hand(mob/living/user)
if(..())
diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm
index 24a7d21a5f..9bc132c7f1 100644
--- a/code/game/machinery/computer/atmos_alert.dm
+++ b/code/game/machinery/computer/atmos_alert.dm
@@ -12,8 +12,8 @@ var/global/list/minor_air_alarms = list()
icon_screen = "alert:0"
light_color = "#e6ffff"
-/obj/machinery/computer/atmos_alert/New()
- ..()
+/obj/machinery/computer/atmos_alert/Initialize()
+ . = ..()
atmosphere_alarm.register_alarm(src, /atom/proc/update_icon)
/obj/machinery/computer/atmos_alert/Destroy()
diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm
index 2f4c479c33..9c386c60bd 100644
--- a/code/game/machinery/computer/atmos_control.dm
+++ b/code/game/machinery/computer/atmos_control.dm
@@ -15,9 +15,6 @@
var/list/monitored_alarm_ids = null
var/datum/tgui_module/atmos_control/atmos_control
-/obj/machinery/computer/atmoscontrol/New()
- ..()
-
/obj/machinery/computer/atmoscontrol/laptop //[TO DO] Change name to PCU and update mapdata to include replacement computers
name = "\improper Atmospherics PCU"
desc = "A personal computer unit. It seems to have only the Atmosphereics Control program installed."
diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm
index 8c4fa55868..caad22f319 100644
--- a/code/game/machinery/computer/computer.dm
+++ b/code/game/machinery/computer/computer.dm
@@ -16,9 +16,6 @@
clicksound = "keyboard"
-/obj/machinery/computer/New()
- ..()
-
/obj/machinery/computer/Initialize()
. = ..()
power_change()
diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm
index 1af31afe80..fa73834f6f 100644
--- a/code/game/machinery/computer/crew.dm
+++ b/code/game/machinery/computer/crew.dm
@@ -10,9 +10,9 @@
circuit = /obj/item/weapon/circuitboard/crew
var/datum/tgui_module/crew_monitor/crew_monitor
-/obj/machinery/computer/crew/New()
+/obj/machinery/computer/crew/Initialize()
crew_monitor = new(src)
- ..()
+ . = ..()
/obj/machinery/computer/crew/Destroy()
qdel(crew_monitor)
diff --git a/code/game/machinery/computer/guestpass.dm b/code/game/machinery/computer/guestpass.dm
index 3360647321..f32858d8fa 100644
--- a/code/game/machinery/computer/guestpass.dm
+++ b/code/game/machinery/computer/guestpass.dm
@@ -96,8 +96,8 @@
var/list/internal_log = list()
var/mode = 0 // 0 - making pass, 1 - viewing logs
-/obj/machinery/computer/guestpass/New()
- ..()
+/obj/machinery/computer/guestpass/Initialize()
+ . = ..()
uid = "[rand(100,999)]-G[rand(10,99)]"
diff --git a/code/game/machinery/computer/shutoff_monitor.dm b/code/game/machinery/computer/shutoff_monitor.dm
index 8cc101d804..37eb2060a7 100644
--- a/code/game/machinery/computer/shutoff_monitor.dm
+++ b/code/game/machinery/computer/shutoff_monitor.dm
@@ -7,8 +7,8 @@
circuit = /obj/item/weapon/circuitboard/shutoff_monitor
var/datum/tgui_module/shutoff_monitor/monitor
-/obj/machinery/computer/shutoff_monitor/New()
- ..()
+/obj/machinery/computer/shutoff_monitor/Initialize()
+ . = ..()
monitor = new(src)
/obj/machinery/computer/shutoff_monitor/Destroy()
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index b1c6d68615..72cf643415 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -27,24 +27,24 @@
var/image/fluid
-/obj/machinery/atmospherics/unary/cryo_cell/New()
- ..()
+/obj/machinery/atmospherics/unary/cryo_cell/Initialize()
+ . = ..()
icon = 'icons/obj/cryogenics_split.dmi'
icon_state = "base"
initialize_directions = dir
-/obj/machinery/atmospherics/unary/cryo_cell/Initialize()
- . = ..()
var/image/tank = image(icon,"tank")
tank.alpha = 200
tank.pixel_y = 18
tank.plane = MOB_PLANE
tank.layer = MOB_LAYER+0.2 //Above fluid
+
fluid = image(icon, "tube_filler")
fluid.pixel_y = 18
fluid.alpha = 200
fluid.plane = MOB_PLANE
fluid.layer = MOB_LAYER+0.1 //Below glass, above mob
+
add_overlay(tank)
update_icon()
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index e16ef0ece0..b0fbc15939 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -307,9 +307,10 @@
on_store_visible_message_2 = "passes through it."
time_till_despawn = 10 // 1 second, because math
-/obj/machinery/cryopod/New()
+/obj/machinery/cryopod/Initialize()
+ . = ..()
announce = new /obj/item/device/radio/intercom(src)
- ..()
+ find_control_computer()
/obj/machinery/cryopod/Destroy()
if(occupant)
@@ -317,11 +318,6 @@
occupant.resting = 1
return ..()
-/obj/machinery/cryopod/Initialize()
- . = ..()
-
- find_control_computer()
-
/obj/machinery/cryopod/proc/find_control_computer(urgent=0)
control_computer = null
diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm
index 9b14dc68bb..a8f0d94c96 100644
--- a/code/game/machinery/deployable.dm
+++ b/code/game/machinery/deployable.dm
@@ -21,8 +21,8 @@ Deployable items
var/locked = 0.0
// req_access = list(access_maint_tunnels)
-/obj/machinery/deployable/barrier/New()
- ..()
+/obj/machinery/deployable/barrier/Initialize()
+ . = ..()
icon_state = "barrier[locked]"
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 01ece0eaa9..d34778210f 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -1375,8 +1375,16 @@ About the new airlock wires panel:
return 0
return ..(M)
-/obj/machinery/door/airlock/New(var/newloc, var/obj/structure/door_assembly/assembly=null)
- ..()
+/obj/machinery/door/airlock/Initialize(var/ml, var/obj/structure/door_assembly/assembly=null)
+
+ if(src.closeOtherId != null)
+ for (var/obj/machinery/door/airlock/A in machines)
+ if(A.closeOtherId == src.closeOtherId && A != src)
+ src.closeOther = A
+ break
+ name = "\improper [name]"
+
+ . = ..()
//if assembly is given, create the new door from the assembly
if (assembly && istype(assembly))
@@ -1404,7 +1412,7 @@ About the new airlock wires panel:
set_dir(assembly.dir)
//wires
- var/turf/T = get_turf(newloc)
+ var/turf/T = get_turf(src)
if(T && (T.z in using_map.admin_levels))
secured_wires = 1
if (secured_wires)
@@ -1412,14 +1420,9 @@ About the new airlock wires panel:
else
wires = new/datum/wires/airlock(src)
-/obj/machinery/door/airlock/Initialize()
- if(src.closeOtherId != null)
- for (var/obj/machinery/door/airlock/A in machines)
- if(A.closeOtherId == src.closeOtherId && A != src)
- src.closeOther = A
- break
- name = "\improper [name]"
- . = ..()
+ if(frequency)
+ set_frequency(frequency)
+ update_icon()
/obj/machinery/door/airlock/Destroy()
qdel(wires)
diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm
index 36c054ec24..ad83f7bc82 100644
--- a/code/game/machinery/doors/airlock_control.dm
+++ b/code/game/machinery/doors/airlock_control.dm
@@ -128,14 +128,6 @@
frequency = new_frequency
radio_connection = radio_controller.add_object(src, frequency, RADIO_AIRLOCK)
-
-/obj/machinery/door/airlock/Initialize()
- . = ..()
- if(frequency)
- set_frequency(frequency)
-
- update_icon()
-
/obj/machinery/door/airlock/Destroy()
if(frequency && radio_controller)
radio_controller.remove_object(src,frequency)
diff --git a/code/game/machinery/doors/alarmlock.dm b/code/game/machinery/doors/alarmlock.dm
index f7dda48feb..7508f559a8 100644
--- a/code/game/machinery/doors/alarmlock.dm
+++ b/code/game/machinery/doors/alarmlock.dm
@@ -9,10 +9,6 @@
var/air_frequency = 1437
autoclose = 0
-/obj/machinery/door/airlock/alarmlock/New()
- ..()
- air_connection = new
-
/obj/machinery/door/airlock/alarmlock/Destroy()
if(radio_controller)
radio_controller.remove_object(src,air_frequency)
@@ -22,8 +18,7 @@
. = ..()
radio_controller.remove_object(src, air_frequency)
air_connection = radio_controller.add_object(src, air_frequency, RADIO_TO_AIRALARM)
- open()
-
+ addtimer(CALLBACK(src, .proc/open), 0)
/obj/machinery/door/airlock/alarmlock/receive_signal(datum/signal/signal)
..()
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index fca9a04f5a..04e5002776 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -49,7 +49,7 @@
visible_message("\The [user] bonks \the [src] harmlessly.")
user.do_attack_animation(src)
-/obj/machinery/door/New()
+/obj/machinery/door/Initialize()
. = ..()
if(density)
layer = closed_layer
diff --git a/code/game/machinery/doors/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm
index 7c1d83036e..b635cd86ec 100644
--- a/code/game/machinery/doors/multi_tile.dm
+++ b/code/game/machinery/doors/multi_tile.dm
@@ -7,8 +7,8 @@
open_sound_powered = 'sound/machines/door/WideOpen.ogg'
close_sound_powered = 'sound/machines/door/WideClose.ogg'
-/obj/machinery/door/airlock/multi_tile/New()
- ..()
+/obj/machinery/door/airlock/multi_tile/Initialize()
+ . = ..()
SetBounds()
if(opacity)
create_fillers()
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index a50e54ba75..0caabe8b75 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -17,8 +17,8 @@
can_atmos_pass = ATMOS_PASS_PROC
air_properties_vary_with_direction = 1
-/obj/machinery/door/window/New()
- ..()
+/obj/machinery/door/window/Initialize()
+ . = ..()
update_nearby_tiles()
if(LAZYLEN(req_access))
src.icon_state = "[src.icon_state]"
diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm
index cab4f5c37f..6e21fd60c4 100644
--- a/code/game/machinery/doppler_array.dm
+++ b/code/game/machinery/doppler_array.dm
@@ -9,8 +9,8 @@ var/list/doppler_arrays = list()
icon_state = "doppler"
-/obj/machinery/doppler_array/New()
- ..()
+/obj/machinery/doppler_array/Initialize()
+ . = ..()
doppler_arrays += src
/obj/machinery/doppler_array/Destroy()
diff --git a/code/game/machinery/floodlight.dm b/code/game/machinery/floodlight.dm
index 84aa62b155..10ad623bf9 100644
--- a/code/game/machinery/floodlight.dm
+++ b/code/game/machinery/floodlight.dm
@@ -11,9 +11,9 @@
var/open = 0
var/brightness_on = 8 //can't remember what the maxed out value is
-/obj/machinery/floodlight/New()
+/obj/machinery/floodlight/Initialize()
+ . = ..()
cell = new(src)
- ..()
/obj/machinery/floodlight/update_icon()
overlays.Cut()
diff --git a/code/game/machinery/floorlayer.dm b/code/game/machinery/floorlayer.dm
index d8a2b463e2..5dcfe90d6e 100644
--- a/code/game/machinery/floorlayer.dm
+++ b/code/game/machinery/floorlayer.dm
@@ -8,9 +8,9 @@
var/obj/item/stack/tile/T
var/list/mode = list("dismantle"=0,"laying"=0,"collect"=0)
-/obj/machinery/floorlayer/New()
+/obj/machinery/floorlayer/Initialize()
+ . = ..()
T = new/obj/item/stack/tile/floor(src)
- ..()
/obj/machinery/floorlayer/Moved(atom/old_loc, direction, forced = FALSE)
. = ..()
diff --git a/code/game/machinery/frame.dm b/code/game/machinery/frame.dm
index 5e794cf2ae..867d9858c6 100644
--- a/code/game/machinery/frame.dm
+++ b/code/game/machinery/frame.dm
@@ -273,8 +273,8 @@
var/obj/ct = A
req_component_names[A] = initial(ct.name)
-/obj/structure/frame/New(var/loc, var/dir, var/building = 0, var/datum/frame/frame_types/type, mob/user as mob)
- ..()
+/obj/structure/frame/Initialize(var/ml, var/dir, var/building = 0, var/datum/frame/frame_types/type, mob/user as mob)
+ . = ..()
if(building)
frame_type = type
state = FRAME_PLACED
diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm
index 70a2e3ce4c..a478d3a416 100755
--- a/code/game/machinery/igniter.dm
+++ b/code/game/machinery/igniter.dm
@@ -30,8 +30,8 @@
location.hotspot_expose(1000,500,1)
return 1
-/obj/machinery/igniter/New()
- ..()
+/obj/machinery/igniter/Initialize()
+ . = ..()
icon_state = "igniter[on]"
/obj/machinery/igniter/power_change()
@@ -58,9 +58,6 @@
idle_power_usage = 2
active_power_usage = 4
-/obj/machinery/sparker/New()
- ..()
-
/obj/machinery/sparker/power_change()
..()
if(!(stat & NOPOWER) && disable == 0)
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index dfd65de258..5ee2d246d0 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -114,15 +114,12 @@ Class Procs:
var/speed_process = FALSE //If false, SSmachines. If true, SSfastprocess.
-/obj/machinery/New(l, d=0)
- ..(l)
+/obj/machinery/Initialize(var/ml, d=0)
+ . = ..()
if(d)
set_dir(d)
if(ispath(circuit))
circuit = new circuit(src)
-
-/obj/machinery/Initialize(var/mapload)
- . = ..()
global.machines += src
if(ispath(circuit))
circuit = new circuit(src)
@@ -130,7 +127,7 @@ Class Procs:
START_MACHINE_PROCESSING(src)
else
START_PROCESSING(SSfastprocess, src)
- if(!mapload)
+ if(!ml)
power_change()
/obj/machinery/Destroy()
diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm
index d702a300b5..0aa583e1a2 100644
--- a/code/game/machinery/magnet.dm
+++ b/code/game/machinery/magnet.dm
@@ -27,8 +27,8 @@
var/center_y = 0
var/max_dist = 20 // absolute value of center_x,y cannot exceed this integer
-/obj/machinery/magnetic_module/New()
- ..()
+/obj/machinery/magnetic_module/Initialize()
+ . = ..()
var/turf/T = loc
hide(!T.is_plating())
center = T
@@ -209,8 +209,8 @@
var/datum/radio_frequency/radio_connection
-/obj/machinery/magnetic_controller/New()
- ..()
+/obj/machinery/magnetic_controller/Initialize()
+ . = ..()
if(autolink)
for(var/obj/machinery/magnetic_module/M in machines)
diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm
index 25805c694e..40c23cda40 100644
--- a/code/game/machinery/mass_driver.dm
+++ b/code/game/machinery/mass_driver.dm
@@ -16,7 +16,7 @@
var/id = 1.0
var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess.
-/obj/machinery/mass_driver/New()
+/obj/machinery/mass_driver/Initialize()
. = ..()
default_apply_parts()
diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm
index 6d4453d1f2..6d08389065 100644
--- a/code/game/machinery/navbeacon.dm
+++ b/code/game/machinery/navbeacon.dm
@@ -18,8 +18,8 @@ var/global/list/navbeacons = list() // no I don't like putting this in, but it w
var/list/codes = list() // assoc. list of transponder codes
req_access = list(access_engine)
-/obj/machinery/navbeacon/New()
- ..()
+/obj/machinery/navbeacon/Initialize()
+ . = ..()
set_codes_from_txt(codes_txt)
if(freq)
warning("[src] at [x],[y],[z] has deprecated var freq=[freq]. Replace it with proper type.")
@@ -233,6 +233,6 @@ Transponder Codes:
"}
/obj/machinery/navbeacon/patrol
var/next_patrol
-/obj/machinery/navbeacon/patrol/New()
+/obj/machinery/navbeacon/patrol/Initialize()
codes = list("patrol" = 1, "next_patrol" = next_patrol)
- ..()
+ . = ..()
diff --git a/code/game/machinery/nuclear_bomb.dm b/code/game/machinery/nuclear_bomb.dm
index 7c25333600..414b153c2f 100644
--- a/code/game/machinery/nuclear_bomb.dm
+++ b/code/game/machinery/nuclear_bomb.dm
@@ -25,8 +25,8 @@ var/bomb_set
// 3 is sealant open, 4 is unwrenched, 5 is removed from bolts.
use_power = USE_POWER_OFF
-/obj/machinery/nuclearbomb/New()
- ..()
+/obj/machinery/nuclearbomb/Initialize()
+ . = ..()
r_code = "[rand(10000, 99999.0)]"//Creates a random code upon object spawn.
wires["Red"] = 0
wires["Blue"] = 0
@@ -410,8 +410,8 @@ var/bomb_set
return
return
-/obj/item/weapon/disk/nuclear/New()
- ..()
+/obj/item/weapon/disk/nuclear/Initialize()
+ . = ..()
nuke_disks |= src
/obj/item/weapon/disk/nuclear/Destroy()
diff --git a/code/game/machinery/pda_multicaster.dm b/code/game/machinery/pda_multicaster.dm
index cc189dcb3d..8f9cfb0f4b 100644
--- a/code/game/machinery/pda_multicaster.dm
+++ b/code/game/machinery/pda_multicaster.dm
@@ -12,8 +12,8 @@
var/toggle = 1 // If we /should/ be active or not,
var/list/internal_PDAs = list() // Assoc list of PDAs inside of this, with the department name being the index,
-/obj/machinery/pda_multicaster/New()
- ..()
+/obj/machinery/pda_multicaster/Initialize()
+ . = ..()
internal_PDAs = list("command" = new /obj/item/device/pda/multicaster/command(src),
"security" = new /obj/item/device/pda/multicaster/security(src),
"engineering" = new /obj/item/device/pda/multicaster/engineering(src),
diff --git a/code/game/machinery/pipe/pipelayer.dm b/code/game/machinery/pipe/pipelayer.dm
index 5e3df2b2cd..41e31e4ec0 100644
--- a/code/game/machinery/pipe/pipelayer.dm
+++ b/code/game/machinery/pipe/pipelayer.dm
@@ -21,9 +21,9 @@
"heat exchange pipes" = /obj/machinery/atmospherics/pipe/simple/heat_exchanging
)
-/obj/machinery/pipelayer/New()
+/obj/machinery/pipelayer/Initialize()
W = new(src)
- ..()
+ . = ..()
default_apply_parts()
update_icon()
diff --git a/code/game/machinery/records_scanner.dm b/code/game/machinery/records_scanner.dm
index c4e3ead84b..0f3ed983b9 100644
--- a/code/game/machinery/records_scanner.dm
+++ b/code/game/machinery/records_scanner.dm
@@ -8,7 +8,7 @@
anchored = 1
var/lastuser = null
-/obj/machinery/scanner/New()
+/obj/machinery/scanner/Initialize()
if(!outputdir)
switch(dir)
if(1)
@@ -21,6 +21,7 @@
outputdir = 4
if(!outputdir)
outputdir = 8
+ . = ..()
/obj/machinery/scanner/process()
if(stat & NOPOWER)
diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm
index bbe9597d7f..f77be28235 100644
--- a/code/game/machinery/requests_console.dm
+++ b/code/game/machinery/requests_console.dm
@@ -67,8 +67,8 @@ var/list/obj/machinery/requests_console/allConsoles = list()
if(icon_state == "req_comp_off")
icon_state = "req_comp[newmessagepriority]"
-/obj/machinery/requests_console/New()
- ..()
+/obj/machinery/requests_console/Initialize()
+ . = ..()
announcement.title = "[department] announcement"
announcement.newscast = 1
diff --git a/code/game/machinery/spaceheater.dm b/code/game/machinery/spaceheater.dm
index 54aac0a5ff..8178c970c9 100644
--- a/code/game/machinery/spaceheater.dm
+++ b/code/game/machinery/spaceheater.dm
@@ -13,8 +13,8 @@
clicksound = "switch"
interact_offline = TRUE
-/obj/machinery/space_heater/New()
- ..()
+/obj/machinery/space_heater/Initialize()
+ . = ..()
if(cell_type)
cell = new cell_type(src)
update_icon()
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index 2e22627c2f..6bad81a8da 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -33,7 +33,8 @@
HELMET_TYPE = /obj/item/clothing/head/helmet/space
MASK_TYPE = /obj/item/clothing/mask/breath
-/obj/machinery/suit_storage_unit/New()
+/obj/machinery/suit_storage_unit/Initialize()
+ . = ..()
update_icon()
if(SUIT_TYPE)
SUIT = new SUIT_TYPE(src)
@@ -573,8 +574,8 @@
var/datum/wires/suit_storage_unit/wires = null
-/obj/machinery/suit_cycler/New()
- ..()
+/obj/machinery/suit_cycler/Initialize()
+ . = ..()
wires = new(src)
target_department = departments[1]
diff --git a/code/game/machinery/supplybeacon.dm b/code/game/machinery/supplybeacon.dm
index 20be7d52ca..413f5a0af9 100644
--- a/code/game/machinery/supplybeacon.dm
+++ b/code/game/machinery/supplybeacon.dm
@@ -36,8 +36,8 @@
var/expended
var/drop_type
-/obj/machinery/power/supply_beacon/New()
- ..()
+/obj/machinery/power/supply_beacon/Initialize()
+ . = ..()
if(!drop_type) drop_type = pick(supply_drop_random_loot_types())
/obj/machinery/power/supply_beacon/supermatter
diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm
index 3a6f4e589b..fc3fa83458 100644
--- a/code/game/machinery/telecomms/broadcaster.dm
+++ b/code/game/machinery/telecomms/broadcaster.dm
@@ -30,10 +30,6 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
//Linked bluespace radios
var/list/linked_radios_weakrefs = list()
-/obj/machinery/telecomms/processor/Initialize()
- . = ..()
- default_apply_parts()
-
/obj/machinery/telecomms/broadcaster/proc/link_radio(var/obj/item/device/radio/R)
if(!istype(R))
return
diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm
index 6beaa0d309..a839fa0fb4 100644
--- a/code/game/machinery/telecomms/presets.dm
+++ b/code/game/machinery/telecomms/presets.dm
@@ -59,10 +59,10 @@
freq_listening = list(AI_FREQ, SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ, ENT_FREQ)
//Common and other radio frequencies for people to freely use
-/obj/machinery/telecomms/receiver/preset_right/New()
+/obj/machinery/telecomms/receiver/preset_right/Initialize()
for(var/i = PUBLIC_LOW_FREQ, i < PUBLIC_HIGH_FREQ, i += 2)
freq_listening |= i
- ..()
+ . = ..()
/obj/machinery/telecomms/receiver/preset_cent
id = "CentCom Receiver"
@@ -86,12 +86,12 @@
freq_listening = list(SUP_FREQ, SRV_FREQ)
autolinkers = list("processor2", "supply", "service", "unused")
-/obj/machinery/telecomms/bus/preset_two/New()
+/obj/machinery/telecomms/bus/preset_two/Initialize()
for(var/i = PUBLIC_LOW_FREQ, i < PUBLIC_HIGH_FREQ, i += 2)
if(i == PUB_FREQ)
continue
freq_listening |= i
- ..()
+ . = ..()
/obj/machinery/telecomms/bus/preset_three
id = "Bus 3"
@@ -177,12 +177,12 @@
freq_listening = list()
autolinkers = list("unused")
-/obj/machinery/telecomms/server/presets/unused/New()
+/obj/machinery/telecomms/server/presets/unused/Initialize()
for(var/i = PUBLIC_LOW_FREQ, i < PUBLIC_HIGH_FREQ, i += 2)
if(i == AI_FREQ || i == PUB_FREQ)
continue
freq_listening |= i
- ..()
+ . = ..()
/obj/machinery/telecomms/server/presets/command
id = "Command Server"
diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm
index a2cbe7638b..cf90a49548 100644
--- a/code/game/machinery/telecomms/telecomunications.dm
+++ b/code/game/machinery/telecomms/telecomunications.dm
@@ -111,10 +111,14 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
else
return 0
-
-/obj/machinery/telecomms/New()
+/obj/machinery/telecomms/Initialize()
telecomms_list += src
..()
+ default_apply_parts()
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/machinery/telecomms/LateInitialize()
+ . = ..()
//Set the listening_level if there's none.
if(!listening_level)
@@ -122,7 +126,6 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
var/turf/position = get_turf(src)
listening_level = position.z
-/obj/machinery/telecomms/Initialize()
if(autolinkers.len)
// Links nearby machines
if(!long_range_link)
@@ -131,7 +134,6 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
else
for(var/obj/machinery/telecomms/T in telecomms_list)
add_link(T)
- . = ..()
/obj/machinery/telecomms/Destroy()
telecomms_list -= src
@@ -264,10 +266,6 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
var/list/linked_radios_weakrefs = list()
-/obj/machinery/telecomms/receiver/Initialize()
- . = ..()
- default_apply_parts()
-
/obj/machinery/telecomms/receiver/proc/link_radio(var/obj/item/device/radio/R)
if(!istype(R))
return
@@ -347,10 +345,6 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
long_range_link = 1
netspeed = 40
-/obj/machinery/telecomms/hub/Initialize()
- . = ..()
- default_apply_parts()
-
/obj/machinery/telecomms/hub/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
if(is_freq_listening(signal))
if(istype(machine_from, /obj/machinery/telecomms/receiver))
@@ -387,10 +381,6 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
var/broadcasting = 1
var/receiving = 1
-/obj/machinery/telecomms/relay/Initialize()
- . = ..()
- default_apply_parts()
-
/obj/machinery/telecomms/relay/forceMove(var/newloc)
. = ..(newloc)
listening_level = z
@@ -444,10 +434,6 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
netspeed = 40
var/change_frequency = 0
-/obj/machinery/telecomms/bus/Initialize()
- . = ..()
- default_apply_parts()
-
/obj/machinery/telecomms/bus/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
if(is_freq_listening(signal))
@@ -500,10 +486,6 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
circuit = /obj/item/weapon/circuitboard/telecomms/processor
var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals
-/obj/machinery/telecomms/processor/Initialize()
- . = ..()
- default_apply_parts()
-
/obj/machinery/telecomms/processor/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
if(is_freq_listening(signal))
@@ -555,15 +537,11 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
// would add up to md5("password123comsat")
var/obj/item/device/radio/headset/server_radio = null
-/obj/machinery/telecomms/server/New()
- ..()
- Compiler = new()
- Compiler.Holder = src
- server_radio = new()
-
/obj/machinery/telecomms/server/Initialize()
+ Compiler = new
+ Compiler.Holder = src
+ server_radio = new
. = ..()
- default_apply_parts()
/obj/machinery/telecomms/server/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from)
diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm
index 5d0ebfc929..5c68397894 100644
--- a/code/game/machinery/teleporter.dm
+++ b/code/game/machinery/teleporter.dm
@@ -13,14 +13,10 @@
//Setting this to 1 will set locked to null after a player enters the portal and will not allow hand-teles to open portals to that location.
var/datum/nano_module/program/teleport_control/teleport_control
-/obj/machinery/computer/teleporter/New()
- id = "[rand(1000, 9999)]"
- ..()
- underlays.Cut()
- underlays += image('icons/obj/stationobjs.dmi', icon_state = "telecomp-wires")
-
/obj/machinery/computer/teleporter/Initialize()
+ id = "[rand(1000, 9999)]"
. = ..()
+ underlays = list(image('icons/obj/stationobjs.dmi', icon_state = "telecomp-wires"))
teleport_control = new(src)
var/obj/machinery/teleport/station/station = null
var/obj/machinery/teleport/hub/hub = null
diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm
index 621feae713..a5ed91cef6 100644
--- a/code/game/machinery/transformer.dm
+++ b/code/game/machinery/transformer.dm
@@ -9,9 +9,9 @@
var/transform_dead = 0
var/transform_standing = 0
-/obj/machinery/transformer/New()
+/obj/machinery/transformer/Initialize()
// On us
- ..()
+ . = ..()
new /obj/machinery/conveyor(loc, WEST, 1)
/obj/machinery/transformer/Bumped(var/atom/movable/AM)
@@ -39,8 +39,8 @@
if(robot)
robot.SetLockDown(0)
-/obj/machinery/transformer/conveyor/New()
- ..()
+/obj/machinery/transformer/conveyor/Initialize()
+ . = ..()
var/turf/T = loc
if(T)
// Spawn Conveyour Belts
diff --git a/code/game/machinery/virtual_reality/vr_console.dm b/code/game/machinery/virtual_reality/vr_console.dm
index 42179442f0..f0680c5faf 100644
--- a/code/game/machinery/virtual_reality/vr_console.dm
+++ b/code/game/machinery/virtual_reality/vr_console.dm
@@ -26,9 +26,6 @@
/obj/machinery/vr_sleeper/Initialize()
. = ..()
default_apply_parts()
-
-/obj/machinery/vr_sleeper/Initialize()
- . = ..()
smoke = new
update_icon()
@@ -179,6 +176,9 @@
return
/obj/machinery/vr_sleeper/proc/go_out(var/forced = TRUE)
+
+ set waitfor = FALSE
+
if(!occupant)
return
diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm
index 19bd2b9c53..0fe7480420 100644
--- a/code/game/mecha/combat/durand.dm
+++ b/code/game/mecha/combat/durand.dm
@@ -37,8 +37,8 @@
icon_scale_y = 1.5
/*
-/obj/mecha/combat/durand/New()
- ..()
+/obj/mecha/combat/durand/Initialize()
+ . = ..()
weapons += new /datum/mecha_weapon/ballistic/lmg(src)
weapons += new /datum/mecha_weapon/ballistic/scattershot(src)
selected_weapon = weapons[1]
@@ -81,8 +81,8 @@
/obj/mecha/combat/durand/old
desc = "An aging combat exosuit utilized by many corporations. Originally developed to combat hostile alien lifeforms. This one is particularly worn looking and likely isn't as sturdy."
-/obj/mecha/combat/durand/old/New()
- ..()
+/obj/mecha/combat/durand/old/Initialize()
+ . = ..()
health = 25
maxhealth = 250 //Just slightly worse.
cell.charge = rand(0, (cell.charge/2))
\ No newline at end of file
diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm
index b2b5fe613f..ba1dcb291e 100644
--- a/code/game/mecha/combat/gygax.dm
+++ b/code/game/mecha/combat/gygax.dm
@@ -115,8 +115,8 @@
var/obj/item/clothing/glasses/hud/health/mech/hud
-/obj/mecha/combat/gygax/serenity/New()
- ..()
+/obj/mecha/combat/gygax/serenity/Initialize()
+ . = ..()
hud = new /obj/item/clothing/glasses/hud/health/mech(src)
return
@@ -144,8 +144,8 @@
/obj/mecha/combat/gygax/old
desc = "A lightweight, security exosuit. Popular among private and corporate security. This one is particularly worn looking and likely isn't as sturdy."
-/obj/mecha/combat/gygax/old/New()
- ..()
+/obj/mecha/combat/gygax/old/Initialize()
+ . = ..()
health = 25
maxhealth = 250 //Just slightly worse.
cell.charge = rand(0, (cell.charge/2))
\ No newline at end of file
diff --git a/code/game/mecha/combat/marauder.dm b/code/game/mecha/combat/marauder.dm
index c218493847..76aa58c098 100644
--- a/code/game/mecha/combat/marauder.dm
+++ b/code/game/mecha/combat/marauder.dm
@@ -144,8 +144,8 @@
starting_equipment = null
-/obj/mecha/combat/marauder/old/New()
- ..()
+/obj/mecha/combat/marauder/old/Initialize()
+ . = ..()
health = 25
maxhealth = 300 //Just slightly worse.
cell.charge = rand(0, (cell.charge/2))
diff --git a/code/game/mecha/combat/phazon.dm b/code/game/mecha/combat/phazon.dm
index a1ea2ab451..b5cb7ad76a 100644
--- a/code/game/mecha/combat/phazon.dm
+++ b/code/game/mecha/combat/phazon.dm
@@ -158,8 +158,8 @@
/obj/mecha/combat/phazon/old
desc = "An exosuit which can only be described as 'WTF?'. This one is particularly worn looking and likely isn't as sturdy."
-/obj/mecha/combat/phazon/old/New()
- ..()
+/obj/mecha/combat/phazon/old/Initialize()
+ . = ..()
health = 25
maxhealth = 150 //Just slightly worse.
cell.charge = rand(0, (cell.charge/2))
\ No newline at end of file
diff --git a/code/game/mecha/equipment/tools/cable_layer.dm b/code/game/mecha/equipment/tools/cable_layer.dm
index a431ecdcbf..bfeccfcadc 100644
--- a/code/game/mecha/equipment/tools/cable_layer.dm
+++ b/code/game/mecha/equipment/tools/cable_layer.dm
@@ -7,10 +7,10 @@
var/max_cable = 1000
required_type = list(/obj/mecha/working)
-/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/New()
+/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/Initialize()
cable = new(src)
cable.amount = 0
- ..()
+ . = ..()
/obj/item/mecha_parts/mecha_equipment/tool/cable_layer/MoveAction()
layCable()
diff --git a/code/game/mecha/equipment/tools/shield.dm b/code/game/mecha/equipment/tools/shield.dm
index 1111e4c419..75cf76c1df 100644
--- a/code/game/mecha/equipment/tools/shield.dm
+++ b/code/game/mecha/equipment/tools/shield.dm
@@ -15,8 +15,8 @@
equip_type = EQUIP_HULL
-/obj/item/mecha_parts/mecha_equipment/combat_shield/New()
- ..()
+/obj/item/mecha_parts/mecha_equipment/combat_shield/Initialize()
+ . = ..()
my_shield = new my_shield_type
my_shield.shield_regen_delay = equip_cooldown
my_shield.my_tool = src
diff --git a/code/game/mecha/mech_prosthetics.dm b/code/game/mecha/mech_prosthetics.dm
index 9c6d1791a9..7413b67af8 100644
--- a/code/game/mecha/mech_prosthetics.dm
+++ b/code/game/mecha/mech_prosthetics.dm
@@ -32,11 +32,7 @@
/obj/machinery/pros_fabricator/Initialize()
. = ..()
default_apply_parts()
-
files = new /datum/research(src) //Setup the research data holder.
-
-/obj/machinery/pros_fabricator/Initialize()
- . = ..()
manufacturer = basic_robolimb.company
update_categories()
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 4749856d96..9e54dd7c8a 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -204,6 +204,7 @@
var/weapons_only_cycle = FALSE //So combat mechs don't switch to their equipment at times.
/obj/mecha/Initialize()
+
. = ..()
for(var/path in starting_components)
@@ -219,18 +220,6 @@
update_transform()
-/obj/mecha/drain_power(var/drain_check)
-
- if(drain_check)
- return 1
-
- if(!cell)
- return 0
-
- return cell.drain_power(drain_check)
-
-/obj/mecha/New()
- ..()
icon_state += "-open"
add_radio()
add_cabin()
@@ -250,7 +239,16 @@
log_message("[src.name] created.")
loc.Entered(src)
mechas_list += src //global mech list
- return
+
+/obj/mecha/drain_power(var/drain_check)
+
+ if(drain_check)
+ return 1
+
+ if(!cell)
+ return 0
+
+ return cell.drain_power(drain_check)
/obj/mecha/Exit(atom/movable/O)
if(O in cargo)
diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm
index 4be3c27d48..2cb775b07d 100644
--- a/code/game/mecha/mecha_parts.dm
+++ b/code/game/mecha/mecha_parts.dm
@@ -30,8 +30,8 @@
/obj/item/mecha_parts/chassis/ripley
name = "Ripley Chassis"
-/obj/item/mecha_parts/chassis/ripley/New()
- ..()
+/obj/item/mecha_parts/chassis/ripley/Initialize()
+ . = ..()
construct = new /datum/construction/mecha/ripley_chassis(src)
/obj/item/mecha_parts/part/ripley_torso
@@ -69,8 +69,8 @@
/obj/item/mecha_parts/chassis/gygax
name = "Gygax Chassis"
-/obj/item/mecha_parts/chassis/gygax/New()
- ..()
+/obj/item/mecha_parts/chassis/gygax/Initialize()
+ . = ..()
construct = new /datum/construction/mecha/gygax_chassis(src)
/obj/item/mecha_parts/part/gygax_torso
@@ -117,8 +117,8 @@
/obj/item/mecha_parts/chassis/serenity
name = "Serenity Chassis"
-/obj/item/mecha_parts/chassis/serenity/New()
- ..()
+/obj/item/mecha_parts/chassis/serenity/Initialize()
+ . = ..()
construct = new /datum/construction/mecha/serenity_chassis(src)
//////////// Durand
@@ -126,8 +126,8 @@
/obj/item/mecha_parts/chassis/durand
name = "Durand Chassis"
-/obj/item/mecha_parts/chassis/durand/New()
- ..()
+/obj/item/mecha_parts/chassis/durand/Initialize()
+ . = ..()
construct = new /datum/construction/mecha/durand_chassis(src)
/obj/item/mecha_parts/part/durand_torso
@@ -172,8 +172,8 @@
/obj/item/mecha_parts/chassis/firefighter
name = "Firefighter Chassis"
-/obj/item/mecha_parts/chassis/firefighter/New()
- ..()
+/obj/item/mecha_parts/chassis/firefighter/Initialize()
+ . = ..()
construct = new /datum/construction/mecha/firefighter_chassis(src)
/*
/obj/item/mecha_parts/part/firefighter_torso
@@ -203,8 +203,8 @@
name = "Phazon Chassis"
origin_tech = list(TECH_MATERIAL = 7)
-/obj/item/mecha_parts/chassis/phazon/New()
- ..()
+/obj/item/mecha_parts/chassis/phazon/Initialize()
+ . = ..()
construct = new /datum/construction/mecha/phazon_chassis(src)
/obj/item/mecha_parts/part/phazon_torso
@@ -255,8 +255,8 @@
/obj/item/mecha_parts/chassis/odysseus
name = "Odysseus Chassis"
-/obj/item/mecha_parts/chassis/odysseus/New()
- ..()
+/obj/item/mecha_parts/chassis/odysseus/Initialize()
+ . = ..()
construct = new /datum/construction/mecha/odysseus_chassis(src)
/obj/item/mecha_parts/part/odysseus_head
@@ -307,8 +307,8 @@
name = "Janus Chassis"
origin_tech = list(TECH_MATERIAL = 7)
-/obj/item/mecha_parts/chassis/janus/New()
- ..()
+/obj/item/mecha_parts/chassis/janus/Initialize()
+ . = ..()
construct = new /datum/construction/mecha/janus_chassis(src)
/obj/item/mecha_parts/part/janus_torso
diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm
index 7ca1e753fb..c28a16c893 100644
--- a/code/game/mecha/mecha_wreckage.dm
+++ b/code/game/mecha/mecha_wreckage.dm
@@ -15,8 +15,8 @@
var/list/crowbar_salvage
var/salvage_num = 5
-/obj/effect/decal/mecha_wreckage/New()
- ..()
+/obj/effect/decal/mecha_wreckage/Initialize()
+ . = ..()
crowbar_salvage = new
return
@@ -80,8 +80,8 @@
name = "Gygax wreckage"
icon_state = "gygax-broken"
-/obj/effect/decal/mecha_wreckage/gygax/New()
- ..()
+/obj/effect/decal/mecha_wreckage/gygax/Initialize()
+ . = ..()
var/list/parts = list(/obj/item/mecha_parts/part/gygax_torso,
/obj/item/mecha_parts/part/gygax_head,
/obj/item/mecha_parts/part/gygax_left_arm,
@@ -128,8 +128,8 @@
name = "Ripley wreckage"
icon_state = "ripley-broken"
-/obj/effect/decal/mecha_wreckage/ripley/New()
- ..()
+/obj/effect/decal/mecha_wreckage/ripley/Initialize()
+ . = ..()
var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso,
/obj/item/mecha_parts/part/ripley_left_arm,
/obj/item/mecha_parts/part/ripley_right_arm,
@@ -146,8 +146,8 @@
name = "Firefighter wreckage"
icon_state = "firefighter-broken"
-/obj/effect/decal/mecha_wreckage/ripley/firefighter/New()
- ..()
+/obj/effect/decal/mecha_wreckage/ripley/firefighter/Initialize()
+ . = ..()
var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso,
/obj/item/mecha_parts/part/ripley_left_arm,
/obj/item/mecha_parts/part/ripley_right_arm,
@@ -169,8 +169,8 @@
name = "Durand wreckage"
icon_state = "durand-broken"
-/obj/effect/decal/mecha_wreckage/durand/New()
- ..()
+/obj/effect/decal/mecha_wreckage/durand/Initialize()
+ . = ..()
var/list/parts = list(
/obj/item/mecha_parts/part/durand_torso,
/obj/item/mecha_parts/part/durand_head,
@@ -194,8 +194,8 @@
name = "Odysseus wreckage"
icon_state = "odysseus-broken"
-/obj/effect/decal/mecha_wreckage/odysseus/New()
- ..()
+/obj/effect/decal/mecha_wreckage/odysseus/Initialize()
+ . = ..()
var/list/parts = list(
/obj/item/mecha_parts/part/odysseus_torso,
/obj/item/mecha_parts/part/odysseus_head,
diff --git a/code/game/mecha/medical/odysseus.dm b/code/game/mecha/medical/odysseus.dm
index 316d39bace..594e82c2f7 100644
--- a/code/game/mecha/medical/odysseus.dm
+++ b/code/game/mecha/medical/odysseus.dm
@@ -20,8 +20,8 @@
icon_scale_x = 1.2
icon_scale_y = 1.2
-/obj/mecha/medical/odysseus/New()
- ..()
+/obj/mecha/medical/odysseus/Initialize()
+ . = ..()
hud = new /obj/item/clothing/glasses/hud/health/mech(src)
return
@@ -139,8 +139,8 @@
/obj/mecha/medical/odysseus/old
desc = "An aging combat exosuit utilized by many corporations. Originally developed to combat hostile alien lifeforms. This one is particularly worn looking and likely isn't as sturdy."
-/obj/mecha/medical/odysseus/old/New()
- ..()
+/obj/mecha/medical/odysseus/old/Initialize()
+ . = ..()
health = 25
maxhealth = 50 //Just slightly worse.
cell.charge = rand(0, (cell.charge/2))
\ No newline at end of file
diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm
index c7e9296991..a49a8d89ba 100644
--- a/code/game/mecha/working/ripley.dm
+++ b/code/game/mecha/working/ripley.dm
@@ -125,8 +125,8 @@
/obj/mecha/working/ripley/mining/old
desc = "An old, dusty mining ripley."
-/obj/mecha/working/ripley/mining/old/New()
- ..()
+/obj/mecha/working/ripley/mining/old/Initialize()
+ . = ..()
health = 25
maxhealth = 190 //Just slightly worse.
cell.charge = rand(0, cell.charge)
\ No newline at end of file
diff --git a/code/game/objects/effects/alien/aliens.dm b/code/game/objects/effects/alien/aliens.dm
index 836e277872..3d55d0ea5b 100644
--- a/code/game/objects/effects/alien/aliens.dm
+++ b/code/game/objects/effects/alien/aliens.dm
@@ -42,8 +42,8 @@
opacity = 0
health = 120
-/obj/effect/alien/resin/New()
- ..()
+/obj/effect/alien/resin/Initialize()
+ . = ..()
var/turf/T = get_turf(src)
T.thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT
@@ -381,7 +381,7 @@
var/ticks = 0
var/target_strength = 0
-/obj/effect/alien/acid/New(loc, target)
+/obj/effect/alien/acid/Initialize(var/ml, target)
..(loc)
src.target = target
@@ -444,15 +444,15 @@
var/health = 100
var/status = BURST //can be GROWING, GROWN or BURST; all mutually exclusive
-/obj/effect/alien/egg/New()
/*
+/obj/effect/alien/egg/Initialize()
+ . = ..()
if(config.aliens_allowed)
- ..()
- spawn(rand(MIN_GROWTH_TIME,MAX_GROWTH_TIME))
- Grow()
+ addtimer(CALLBACK(src, .proc/Grow), rand(MIN_GROWTH_TIME,MAX_GROWTH_TIME))
else
- qdel(src)
+ return INITIALIZE_HINT_QDEL
*/
+
/obj/effect/alien/egg/attack_hand(user as mob)
var/mob/living/carbon/M = user
diff --git a/code/game/objects/effects/bump_teleporter.dm b/code/game/objects/effects/bump_teleporter.dm
index 9379234ca6..ea7178e91d 100644
--- a/code/game/objects/effects/bump_teleporter.dm
+++ b/code/game/objects/effects/bump_teleporter.dm
@@ -11,8 +11,8 @@ var/list/obj/effect/bump_teleporter/BUMP_TELEPORTERS = list()
density = 1
opacity = 0
-/obj/effect/bump_teleporter/New()
- ..()
+/obj/effect/bump_teleporter/Initialize()
+ . = ..()
BUMP_TELEPORTERS += src
/obj/effect/bump_teleporter/Destroy()
diff --git a/code/game/objects/effects/chem/chemsmoke.dm b/code/game/objects/effects/chem/chemsmoke.dm
index 5538755d24..482f59810d 100644
--- a/code/game/objects/effects/chem/chemsmoke.dm
+++ b/code/game/objects/effects/chem/chemsmoke.dm
@@ -7,8 +7,8 @@
time_to_live = 300
pass_flags = PASSTABLE | PASSGRILLE | PASSGLASS //PASSGLASS is fine here, it's just so the visual effect can "flow" around glass
-/obj/effect/effect/smoke/chem/New()
- ..()
+/obj/effect/effect/smoke/chem/Initialize()
+ . = ..()
create_reagents(500)
return
diff --git a/code/game/objects/effects/chem/coating.dm b/code/game/objects/effects/chem/coating.dm
index 2e9ad26049..adf50da065 100644
--- a/code/game/objects/effects/chem/coating.dm
+++ b/code/game/objects/effects/chem/coating.dm
@@ -6,12 +6,9 @@
icon = 'icons/effects/effects.dmi'
icon_state = "dirt"
-/obj/effect/decal/cleanable/chemcoating/New()
- ..()
- create_reagents(100)
-
/obj/effect/decal/cleanable/chemcoating/Initialize()
. = ..()
+ create_reagents(100)
var/turf/T = get_turf(src)
if(T)
for(var/obj/O in get_turf(src))
diff --git a/code/game/objects/effects/chem/foam.dm b/code/game/objects/effects/chem/foam.dm
index 5a461e1525..a093abe9be 100644
--- a/code/game/objects/effects/chem/foam.dm
+++ b/code/game/objects/effects/chem/foam.dm
@@ -140,8 +140,8 @@
can_atmos_pass = ATMOS_PASS_NO
var/metal = 1 // 1 = aluminum, 2 = iron
-/obj/structure/foamedmetal/New()
- ..()
+/obj/structure/foamedmetal/Initialize()
+ . = ..()
update_nearby_tiles(1)
/obj/structure/foamedmetal/Destroy()
diff --git a/code/game/objects/effects/decals/Cleanable/fuel.dm b/code/game/objects/effects/decals/Cleanable/fuel.dm
index 47b46d6773..720af9fdf2 100644
--- a/code/game/objects/effects/decals/Cleanable/fuel.dm
+++ b/code/game/objects/effects/decals/Cleanable/fuel.dm
@@ -8,26 +8,31 @@
generic_filth = TRUE
persistent = FALSE
-/obj/effect/decal/cleanable/liquid_fuel/New(turf/newLoc,amt=1,nologs=1)
+/obj/effect/decal/cleanable/liquid_fuel/Initialize(var/ml, amt=1, nologs=1)
+
+ . = ..(ml)
+
+ if(!isturf(loc))
+ return INITIALIZE_HINT_QDEL
+
if(!nologs)
- message_admins("Liquid fuel has spilled in [newLoc.loc.name] ([newLoc.x],[newLoc.y],[newLoc.z]) (JMP)")
- log_game("Liquid fuel has spilled in [newLoc.loc.name] ([newLoc.x],[newLoc.y],[newLoc.z])")
+ message_admins("Liquid fuel has spilled in [loc.name] ([loc.x],[loc.y],[loc.z]) (JMP)")
+ log_game("Liquid fuel has spilled in [loc.name] ([loc.x],[loc.y],[loc.z])")
src.amount = amt
var/has_spread = 0
//Be absorbed by any other liquid fuel in the tile.
- for(var/obj/effect/decal/cleanable/liquid_fuel/other in newLoc)
+ for(var/obj/effect/decal/cleanable/liquid_fuel/other in loc)
if(other != src)
other.amount += src.amount
other.Spread()
has_spread = 1
break
- . = ..()
if(!has_spread)
Spread()
else
- qdel(src)
+ return INITIALIZE_HINT_QDEL
/obj/effect/decal/cleanable/liquid_fuel/proc/Spread(exclude=list())
//Allows liquid fuels to sometimes flow into other tiles.
@@ -52,10 +57,10 @@
icon_state = "mustard"
anchored = 0
-/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel/New(newLoc, amt = 1, d = 0)
+/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel/Initialize(var/ml, amt = 1, d = 0)
set_dir(d) //Setting this direction means you won't get torched by your own flamethrower.
- if(istype(newLoc, /turf/simulated))
- var/turf/simulated/T = newLoc
+ if(istype(loc, /turf/simulated))
+ var/turf/simulated/T = loc
T.hotspot_expose((T20C*2) + 380,500) //Ignite the fuel.
. = ..()
diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm
index 2a37edf708..63c85adb29 100644
--- a/code/game/objects/effects/decals/Cleanable/humans.dm
+++ b/code/game/objects/effects/decals/Cleanable/humans.dm
@@ -36,8 +36,8 @@ var/global/list/image/splatter_cache=list()
amount = 0
..(ignore=1)
-/obj/effect/decal/cleanable/blood/New()
- ..()
+/obj/effect/decal/cleanable/blood/Initialize()
+ . = ..()
update_icon()
if(istype(src, /obj/effect/decal/cleanable/blood/gibs))
return
@@ -143,8 +143,8 @@ var/global/list/image/splatter_cache=list()
amount = 0
var/list/drips = list()
-/obj/effect/decal/cleanable/blood/drip/New()
- ..()
+/obj/effect/decal/cleanable/blood/drip/Initialize()
+ . = ..()
drips |= icon_state
/obj/effect/decal/cleanable/blood/writing
@@ -155,8 +155,8 @@ var/global/list/image/splatter_cache=list()
amount = 0
var/message
-/obj/effect/decal/cleanable/blood/writing/New()
- ..()
+/obj/effect/decal/cleanable/blood/writing/Initialize()
+ . = ..()
if(random_icon_states.len)
for(var/obj/effect/decal/cleanable/blood/writing/W in loc)
random_icon_states.Remove(W.icon_state)
diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm
index 5f980bfb3c..fa6ceaf5ed 100644
--- a/code/game/objects/effects/decals/Cleanable/misc.dm
+++ b/code/game/objects/effects/decals/Cleanable/misc.dm
@@ -24,8 +24,8 @@
/obj/effect/decal/cleanable/greenglow
-/obj/effect/decal/cleanable/greenglow/New()
- ..()
+/obj/effect/decal/cleanable/greenglow/Initialize()
+ . = ..()
QDEL_IN(src, 2 MINUTES)
/obj/effect/decal/cleanable/dirt
diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm
index 0df27515c7..6873dea89d 100644
--- a/code/game/objects/effects/decals/cleanable.dm
+++ b/code/game/objects/effects/decals/cleanable.dm
@@ -20,6 +20,8 @@ generic_filth = TRUE means when the decal is saved, it will be switched out for
if(!mapload || !config.persistence_ignore_mapload)
SSpersistence.track_value(src, /datum/persistent/filth)
. = ..()
+ if (random_icon_states && length(src.random_icon_states) > 0)
+ src.icon_state = pick(src.random_icon_states)
/obj/effect/decal/cleanable/Destroy()
SSpersistence.forget_value(src, /datum/persistent/filth)
@@ -30,8 +32,3 @@ generic_filth = TRUE means when the decal is saved, it will be switched out for
qdel(src)
return
..()
-
-/obj/effect/decal/cleanable/New()
- if (random_icon_states && length(src.random_icon_states) > 0)
- src.icon_state = pick(src.random_icon_states)
- ..()
diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm
index ca95bc2777..8042239431 100644
--- a/code/game/objects/effects/decals/crayon.dm
+++ b/code/game/objects/effects/decals/crayon.dm
@@ -5,9 +5,8 @@
plane = DIRTY_PLANE
anchored = 1
-/obj/effect/decal/cleanable/crayon/New(location,main = "#FFFFFF",shade = "#000000",var/type = "rune")
- ..()
- loc = location
+/obj/effect/decal/cleanable/crayon/Initialize(var/ml, main = "#FFFFFF",shade = "#000000",var/type = "rune")
+ . = ..()
name = type
desc = "A [type] drawn in crayon."
diff --git a/code/game/objects/effects/decals/posters/posters.dm b/code/game/objects/effects/decals/posters/posters.dm
index d770de0df3..7c55453656 100644
--- a/code/game/objects/effects/decals/posters/posters.dm
+++ b/code/game/objects/effects/decals/posters/posters.dm
@@ -124,7 +124,7 @@
var/ruined = FALSE
// This stuff needs to go in new() for the the flick() to look right while it's being placed
-/obj/structure/sign/poster/New(var/newloc, var/placement_dir = null, var/obj/item/poster/P = null)
+/obj/structure/sign/poster/Initialize(var/ml, var/placement_dir = null, var/obj/item/poster/P = null)
if(placement_dir)
dir = placement_dir
@@ -143,7 +143,7 @@
pixel_y = 0
flick("poster_being_set", src)
- return ..()
+ . = ..()
/obj/structure/sign/poster/Initialize(var/newloc, var/placement_dir = null, var/obj/item/poster/P = null)
diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm
index ff95105356..2a3d014547 100644
--- a/code/game/objects/effects/effect_system.dm
+++ b/code/game/objects/effects/effect_system.dm
@@ -97,15 +97,12 @@ steam.start() -- spawns the effect
anchored = 1.0
mouse_opacity = 0
-/obj/effect/effect/sparks/New()
- ..()
+/obj/effect/effect/sparks/Initialize()
+ . = ..()
playsound(src, "sparks", 100, 1)
var/turf/T = src.loc
if (istype(T, /turf))
T.hotspot_expose(1000,100)
-
-/obj/effect/effect/sparks/Initialize()
- . = ..()
QDEL_IN(src, 5 SECONDS)
/obj/effect/effect/sparks/Destroy()
@@ -177,8 +174,8 @@ steam.start() -- spawns the effect
pixel_x = -32
pixel_y = -32
-/obj/effect/effect/smoke/New()
- ..()
+/obj/effect/effect/smoke/Initialize()
+ . = ..()
if(time_to_live)
spawn (time_to_live)
if(!QDELETED(src))
@@ -212,9 +209,9 @@ steam.start() -- spawns the effect
icon = 'icons/effects/effects.dmi'
icon_state = "sparks"
-/obj/effect/effect/smoke/illumination/New(var/newloc, var/lifetime=10, var/range=null, var/power=null, var/color=null)
+/obj/effect/effect/smoke/illumination/Initialize(var/ml, var/lifetime=10, var/range=null, var/power=null, var/color=null)
time_to_live=lifetime
- ..()
+ . = ..()
set_light(range, power, color)
/////////////////////////////////////////////
diff --git a/code/game/objects/effects/explosion_particles.dm b/code/game/objects/effects/explosion_particles.dm
index 12a1e92020..2f706a1072 100644
--- a/code/game/objects/effects/explosion_particles.dm
+++ b/code/game/objects/effects/explosion_particles.dm
@@ -6,11 +6,9 @@
anchored = 1
mouse_opacity = 0
-/obj/effect/expl_particles/New()
- ..()
- spawn (15)
- qdel(src)
- return
+/obj/effect/expl_particles/Initialize()
+ . = ..()
+ QDEL_IN(src, 15)
/datum/effect/system/expl_particles
var/number = 10
@@ -42,11 +40,9 @@
pixel_x = -32
pixel_y = -32
-/obj/effect/explosion/New()
- ..()
- spawn (10)
- qdel(src)
- return
+/obj/effect/explosion/Initialize()
+ . = ..()
+ QDEL_IN(src, 10)
/datum/effect/system/explosion
var/turf/location
diff --git a/code/game/objects/effects/gibs.dm b/code/game/objects/effects/gibs.dm
index 717bcac74e..7597f35c5e 100644
--- a/code/game/objects/effects/gibs.dm
+++ b/code/game/objects/effects/gibs.dm
@@ -9,12 +9,14 @@
var/fleshcolor //Used for gibbed humans.
var/bloodcolor //Used for gibbed humans.
-/obj/effect/gibspawner/New(location, var/datum/dna/MobDNA, var/fleshcolor, var/bloodcolor)
- ..()
-
- if(fleshcolor) src.fleshcolor = fleshcolor
- if(bloodcolor) src.bloodcolor = bloodcolor
+/obj/effect/gibspawner/Initialize(var/ml, var/datum/dna/MobDNA, var/fleshcolor, var/bloodcolor)
+ . = ..()
+ if(fleshcolor)
+ src.fleshcolor = fleshcolor
+ if(bloodcolor)
+ src.bloodcolor = bloodcolor
Gib(loc,MobDNA)
+ return INITIALIZE_HINT_QDEL
/obj/effect/gibspawner/proc/Gib(atom/location, var/datum/dna/MobDNA = null)
if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len)
@@ -51,5 +53,3 @@
var/list/directions = gibdirections[i]
if(directions.len)
gib.streak(directions)
-
- qdel(src)
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 1e9902f0c9..d328083753 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -8,49 +8,38 @@
invisibility = 100
var/delete_me = 0
-/obj/effect/landmark/New()
- ..()
+/obj/effect/landmark/Initialize()
+ . = ..()
tag = text("landmark*[]", name)
invisibility = 101
-
switch(name) //some of these are probably obsolete
if("monkey")
monkeystart += loc
delete_me = 1
- return
if("start")
newplayer_start += loc
delete_me = 1
- return
if("JoinLate") // Bit difference, since we need the spawn point to move.
latejoin += src
simulated = 1
- // delete_me = 1
- return
if("JoinLateGateway")
latejoin_gateway += loc
delete_me = 1
- return
if("JoinLateElevator")
latejoin_elevator += loc
delete_me = 1
- return
if("JoinLateCheckpoint")
latejoin_checkpoint += loc
delete_me = 1
- return
if("JoinLateCryo")
latejoin_cryo += loc
delete_me = 1
- return
if("JoinLateCyborg")
latejoin_cyborg += loc
delete_me = 1
- return
if("prisonwarp")
prisonwarp += loc
delete_me = 1
- return
if("Holding Facility")
holdingfacility += loc
if("tdome1")
@@ -64,35 +53,27 @@
if("prisonsecuritywarp")
prisonsecuritywarp += loc
delete_me = 1
- return
if("blobstart")
blobstart += loc
delete_me = 1
- return
if("xeno_spawn")
xeno_spawn += loc
delete_me = 1
- return
if("endgame_exit")
endgame_safespawns += loc
delete_me = 1
- return
if("bluespacerift")
endgame_exits += loc
delete_me = 1
- return
+
+ if(delete_me)
+ return INITIALIZE_HINT_QDEL
landmarks_list += src
- return 1
/obj/effect/landmark/proc/delete()
delete_me = 1
-/obj/effect/landmark/Initialize()
- . = ..()
- if(delete_me)
- return INITIALIZE_HINT_QDEL
-
/obj/effect/landmark/Destroy(var/force = FALSE)
if(delete_me || force)
landmarks_list -= src
@@ -105,8 +86,8 @@
icon_state = "x"
anchored = 1.0
-/obj/effect/landmark/start/New()
- ..()
+/obj/effect/landmark/start/Initialize()
+ . = ..()
tag = "start*[name]"
invisibility = 101
@@ -128,78 +109,88 @@
icon_state = "x"
anchored = 1.0
-/obj/effect/landmark/virtual_reality/New()
- ..()
+/obj/effect/landmark/virtual_reality/Initialize()
+ . = ..()
tag = "virtual_reality*[name]"
invisibility = 101
- return 1
//Costume spawner landmarks
-/obj/effect/landmark/costume/New() //costume spawner, selects a random subclass and disappears
-
- var/list/options = typesof(/obj/effect/landmark/costume)
- var/PICK= options[rand(1,options.len)]
- new PICK(src.loc)
- delete_me = 1
+/obj/effect/landmark/costume/Initialize() //costume spawner, selects a random subclass and disappears
+ ..()
+ if(type == /obj/effect/landmark/costume)
+ var/list/options = subtypesof(/obj/effect/landmark/costume)
+ var/PICK = options[rand(1,options.len)]
+ new PICK(src.loc)
+ return INITIALIZE_HINT_QDEL
//SUBCLASSES. Spawn a bunch of items and disappear likewise
-/obj/effect/landmark/costume/chicken/New()
+/obj/effect/landmark/costume/chicken/Initialize()
+ ..()
new /obj/item/clothing/suit/chickensuit(src.loc)
new /obj/item/clothing/head/chicken(src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/egg(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/gladiator/New()
+/obj/effect/landmark/costume/gladiator/Initialize()
+ ..()
new /obj/item/clothing/under/gladiator(src.loc)
new /obj/item/clothing/head/helmet/gladiator(src.loc)
- qdel(src)
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/madscientist/New()
+/obj/effect/landmark/costume/madscientist/Initialize()
+ ..()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/suit/storage/toggle/labcoat/mad(src.loc)
new /obj/item/clothing/glasses/gglasses(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/elpresidente/New()
+/obj/effect/landmark/costume/elpresidente/Initialize()
+ ..()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/mask/smokable/cigarette/cigar/havana(src.loc)
new /obj/item/clothing/shoes/boots/jackboots(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/nyangirl/New()
+/obj/effect/landmark/costume/nyangirl/Initialize()
+ ..()
new /obj/item/clothing/under/schoolgirl(src.loc)
new /obj/item/clothing/head/kitty(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/maid/New()
+/obj/effect/landmark/costume/maid/Initialize()
+ ..()
new /obj/item/clothing/under/skirt(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/beret , /obj/item/clothing/head/rabbitears )
new CHOICE(src.loc)
new /obj/item/clothing/glasses/sunglasses/blindfold(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/butler/New()
+/obj/effect/landmark/costume/butler/Initialize()
+ ..()
new /obj/item/clothing/accessory/wcoat(src.loc)
new /obj/item/clothing/under/suit_jacket(src.loc)
new /obj/item/clothing/head/that(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/scratch/New()
+/obj/effect/landmark/costume/scratch/Initialize()
+ ..()
new /obj/item/clothing/gloves/white(src.loc)
new /obj/item/clothing/shoes/white(src.loc)
new /obj/item/clothing/under/scratch(src.loc)
if (prob(30))
new /obj/item/clothing/head/cueball(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/highlander/New()
+/obj/effect/landmark/costume/highlander/Initialize()
+ ..()
new /obj/item/clothing/under/kilt(src.loc)
new /obj/item/clothing/head/beret(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/prig/New()
+/obj/effect/landmark/costume/prig/Initialize()
+ ..()
new /obj/item/clothing/accessory/wcoat(src.loc)
new /obj/item/clothing/glasses/monocle(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/bowler, /obj/item/clothing/head/that)
@@ -208,71 +199,83 @@
new /obj/item/weapon/cane(src.loc)
new /obj/item/clothing/under/sl_suit(src.loc)
new /obj/item/clothing/mask/fakemoustache(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/plaguedoctor/New()
+/obj/effect/landmark/costume/plaguedoctor/Initialize()
+ ..()
new /obj/item/clothing/suit/bio_suit/plaguedoctorsuit(src.loc)
new /obj/item/clothing/head/plaguedoctorhat(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/nightowl/New()
+/obj/effect/landmark/costume/nightowl/Initialize()
+ ..()
new /obj/item/clothing/under/owl(src.loc)
new /obj/item/clothing/mask/gas/owl_mask(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/waiter/New()
+/obj/effect/landmark/costume/waiter/Initialize()
+ ..()
new /obj/item/clothing/under/waiter(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/kitty, /obj/item/clothing/head/rabbitears)
new CHOICE(src.loc)
new /obj/item/clothing/suit/storage/apron(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/pirate/New()
+/obj/effect/landmark/costume/pirate/Initialize()
+ ..()
new /obj/item/clothing/under/pirate(src.loc)
new /obj/item/clothing/suit/pirate(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/pirate , /obj/item/clothing/head/bandana )
new CHOICE(src.loc)
new /obj/item/clothing/glasses/eyepatch(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/commie/New()
+/obj/effect/landmark/costume/commie/Initialize()
+ ..()
new /obj/item/clothing/under/soviet(src.loc)
new /obj/item/clothing/head/ushanka(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/imperium_monk/New()
+/obj/effect/landmark/costume/imperium_monk/Initialize()
+ ..()
new /obj/item/clothing/suit/imperium_monk(src.loc)
if (prob(25))
new /obj/item/clothing/mask/gas/cyborg(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/holiday_priest/New()
+/obj/effect/landmark/costume/holiday_priest/Initialize()
+ ..()
new /obj/item/clothing/suit/holidaypriest(src.loc)
- qdel(src)
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/marisawizard/fake/New()
+/obj/effect/landmark/costume/marisawizard/fake/Initialize()
+ ..()
new /obj/item/clothing/head/wizard/marisa/fake(src.loc)
new/obj/item/clothing/suit/wizrobe/marisa/fake(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/cutewitch/New()
+/obj/effect/landmark/costume/cutewitch/Initialize()
+ ..()
new /obj/item/clothing/under/sundress(src.loc)
new /obj/item/clothing/head/witchwig(src.loc)
new /obj/item/weapon/staff/broom(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/fakewizard/New()
+/obj/effect/landmark/costume/fakewizard/Initialize()
+ ..()
new /obj/item/clothing/suit/wizrobe/fake(src.loc)
new /obj/item/clothing/head/wizard/fake(src.loc)
new /obj/item/weapon/staff/(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/sexyclown/New()
+/obj/effect/landmark/costume/sexyclown/Initialize()
+ ..()
new /obj/item/clothing/mask/gas/sexyclown(src.loc)
new /obj/item/clothing/under/sexyclown(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
-/obj/effect/landmark/costume/sexymime/New()
+/obj/effect/landmark/costume/sexymime/Initialize()
+ ..()
new /obj/item/clothing/mask/gas/sexymime(src.loc)
new /obj/item/clothing/under/sexymime(src.loc)
- delete_me = 1
+ return INITIALIZE_HINT_QDEL
diff --git a/code/game/objects/effects/manifest.dm b/code/game/objects/effects/manifest.dm
index ec45c7a089..a204358b0f 100644
--- a/code/game/objects/effects/manifest.dm
+++ b/code/game/objects/effects/manifest.dm
@@ -4,10 +4,9 @@
icon_state = "x"
unacidable = 1//Just to be sure.
-/obj/effect/manifest/New()
-
- src.invisibility = 101
- return
+/obj/effect/manifest/Initialize()
+ . = ..()
+ invisibility = 101
/obj/effect/manifest/proc/manifest()
var/dat = "Crew Manifest:
"
@@ -18,4 +17,3 @@
P.name = "paper- 'Crew Manifest'"
//SN src = null
qdel(src)
- return
\ No newline at end of file
diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm
index 72af67faed..65eb8860ec 100644
--- a/code/game/objects/effects/overlays.dm
+++ b/code/game/objects/effects/overlays.dm
@@ -9,9 +9,9 @@
icon_state="b_beam"
var/tmp/atom/BeamSource
-/obj/effect/overlay/beam/New()
- ..()
- spawn(10) qdel(src)
+/obj/effect/overlay/beam/Initialize()
+ . = ..()
+ QDEL_IN(src, 10)
/obj/effect/overlay/palmtree_r
name = "Palm tree"
@@ -52,8 +52,8 @@
layer = ABOVE_MOB_LAYER
mouse_opacity = 0
-/obj/effect/overlay/wallrot/New()
- ..()
+/obj/effect/overlay/wallrot/Initialize()
+ . = ..()
pixel_x += rand(-10, 10)
pixel_y += rand(-10, 10)
diff --git a/code/game/objects/effects/prop/columnblast.dm b/code/game/objects/effects/prop/columnblast.dm
index ce0e4b2aad..e8397bf99b 100644
--- a/code/game/objects/effects/prop/columnblast.dm
+++ b/code/game/objects/effects/prop/columnblast.dm
@@ -4,19 +4,13 @@
desc = "Oh shit!"
icon_state = "pool"
icon = 'icons/effects/64x64.dmi'
-
pixel_x = -16
-/obj/effect/temporary_effect/eruption/New(var/turf/T, var/ttd = 10 SECONDS, var/newcolor)
+/obj/effect/temporary_effect/eruption/Initialize(var/ml, var/ttd = 10 SECONDS, var/newcolor)
if(ttd)
time_to_die = ttd
-
if(newcolor)
color = newcolor
-
- ..()
-
-/obj/effect/temporary_effect/eruption/Initialize()
. = ..()
flick("[icon_state]_create",src)
diff --git a/code/game/objects/effects/prop/snake.dm b/code/game/objects/effects/prop/snake.dm
index 2b3812ccc9..cd28d7ed75 100644
--- a/code/game/objects/effects/prop/snake.dm
+++ b/code/game/objects/effects/prop/snake.dm
@@ -22,14 +22,12 @@
// Is the snake hunting a specific atom? (Will always try to meander toward this target.)
var/atom/hunting
-/obj/effect/temporary_effect/pulse/snake/New(var/turf/T, var/atom/hunt_target, var/atom/Creator)
+/obj/effect/temporary_effect/pulse/snake/Initialize(var/ml, var/atom/hunt_target, var/atom/Creator)
if(hunt_target)
hunting = hunt_target
-
if(Creator)
creator = Creator
-
- ..()
+ . = ..()
/obj/effect/temporary_effect/pulse/snake/pulse_loop() // Override needed unfortunately to handle the possibility of not finding a target turf.
set waitfor = FALSE
diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm
index 2bfcb823c8..500bb006ee 100644
--- a/code/game/objects/effects/spawners/bombspawner.dm
+++ b/code/game/objects/effects/spawners/bombspawner.dm
@@ -44,14 +44,14 @@
name = "TTV bomb - proximity"
assembly_type = /obj/item/device/assembly/prox_sensor
-/obj/effect/spawner/newbomb/radio/custom/New(var/newloc, ph, ox, co)
+/obj/effect/spawner/newbomb/radio/custom/Initialize(var/ml, ph, ox, co)
if(ph != null) phoron_amt = ph
if(ox != null) oxygen_amt = ox
if(co != null) carbon_amt = co
- ..()
+ . = ..()
-/obj/effect/spawner/newbomb/Initialize(newloc)
- ..(newloc)
+/obj/effect/spawner/newbomb/Initialize()
+ ..()
var/obj/item/device/transfer_valve/V = new(src.loc)
var/obj/item/weapon/tank/phoron/PT = new(V)
var/obj/item/weapon/tank/oxygen/OT = new(V)
@@ -100,13 +100,11 @@
var/phoron_amt = 0
var/oxygen_amt = 0
-/obj/effect/spawner/onetankbomb/New(newloc) //just needs an assembly.
- ..(newloc)
-
+/obj/effect/spawner/onetankbomb/Initialize() //just needs an assembly.
+ ..()
var/type = pick(/obj/item/weapon/tank/phoron/onetankbomb, /obj/item/weapon/tank/oxygen/onetankbomb)
new type(src.loc)
-
- qdel(src)
+ return INITIALIZE_HINT_QDEL
/obj/effect/spawner/onetankbomb/full
name = "Single-tank bomb"
@@ -116,13 +114,11 @@
// var/assembly_type = /obj/item/device/assembly/signaler
//Note that the maximum amount of gas you can put in a 70L air tank at 1013.25 kPa and 519K is 16.44 mol.
-/obj/effect/spawner/onetankbomb/full/New(newloc) //just needs an assembly.
- ..(newloc)
-
+/obj/effect/spawner/onetankbomb/full/Initialize() //just needs an assembly.
+ . = ..()
var/type = pick(/obj/item/weapon/tank/phoron/onetankbomb/full, /obj/item/weapon/tank/oxygen/onetankbomb/full)
new type(src.loc)
-
- qdel(src)
+ return INITIALIZE_HINT_QDEL
/obj/effect/spawner/onetankbomb/frag
name = "Single-tank bomb"
@@ -132,12 +128,8 @@
// var/assembly_type = /obj/item/device/assembly/signaler
//Note that the maximum amount of gas you can put in a 70L air tank at 1013.25 kPa and 519K is 16.44 mol.
-/obj/effect/spawner/onetankbomb/full/New(newloc) //just needs an assembly.
- ..(newloc)
-
+/obj/effect/spawner/onetankbomb/frag/Initialize() //just needs an assembly.
+ . = ..()
var/type = pick(/obj/item/weapon/tank/phoron/onetankbomb/full, /obj/item/weapon/tank/oxygen/onetankbomb/full)
- new type(src.loc)
-
- qdel(src)
-
-
+ new type(src.loc)
+ return INITIALIZE_HINT_QDEL
diff --git a/code/game/objects/effects/spawners/gibspawner.dm b/code/game/objects/effects/spawners/gibspawner.dm
index af84a15d42..0db3bd5414 100644
--- a/code/game/objects/effects/spawners/gibspawner.dm
+++ b/code/game/objects/effects/spawners/gibspawner.dm
@@ -2,25 +2,25 @@
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/core)
gibamounts = list(2,2,1)
-/obj/effect/gibspawner/generic/New()
+/obj/effect/gibspawner/generic/Initialize()
gibdirections = list(list(WEST, NORTHWEST, SOUTHWEST, NORTH),list(EAST, NORTHEAST, SOUTHEAST, SOUTH), list())
- ..()
+ . = ..()
/obj/effect/gibspawner/human
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/down,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/decal/cleanable/blood/gibs/core)
gibamounts = list(1,1,1,1,1,1,1)
-/obj/effect/gibspawner/human/New()
+/obj/effect/gibspawner/human/Initialize()
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs, list())
gibamounts[6] = pick(0,1,2)
- ..()
+ . = ..()
/obj/effect/gibspawner/robot
sparks = 1
gibtypes = list(/obj/effect/decal/cleanable/blood/gibs/robot/up,/obj/effect/decal/cleanable/blood/gibs/robot/down,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot,/obj/effect/decal/cleanable/blood/gibs/robot/limb)
gibamounts = list(1,1,1,1,1,1)
-/obj/effect/gibspawner/robot/New()
+/obj/effect/gibspawner/robot/Initialize()
gibdirections = list(list(NORTH, NORTHEAST, NORTHWEST),list(SOUTH, SOUTHEAST, SOUTHWEST),list(WEST, NORTHWEST, SOUTHWEST),list(EAST, NORTHEAST, SOUTHEAST), alldirs, alldirs)
gibamounts[6] = pick(0,1,2)
- ..()
\ No newline at end of file
+ . = ..()
\ No newline at end of file
diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm
index 8b74a26246..3f22fa876b 100644
--- a/code/game/objects/effects/spiders.dm
+++ b/code/game/objects/effects/spiders.dm
@@ -100,9 +100,9 @@
START_PROCESSING(SSobj, src)
return ..()
-/obj/effect/spider/eggcluster/New(var/location, var/atom/parent)
+/obj/effect/spider/eggcluster/Initialize(var/ml, var/atom/parent)
get_light_and_color(parent)
- ..()
+ . = ..(ml)
/obj/effect/spider/eggcluster/Destroy()
STOP_PROCESSING(SSobj, src)
@@ -151,7 +151,7 @@
/obj/effect/spider/spiderling/frost
grow_as = list(/mob/living/simple_mob/animal/giant_spider/frost)
-/obj/effect/spider/spiderling/New(var/location, var/atom/parent)
+/obj/effect/spider/spiderling/Initialize(var/ml, var/atom/parent)
pixel_x = rand(6,-6)
pixel_y = rand(6,-6)
START_PROCESSING(SSobj, src)
@@ -159,7 +159,7 @@
if(prob(50))
amount_grown = 1
get_light_and_color(parent)
- ..()
+ . = ..(ml)
/obj/effect/spider/spiderling/Destroy()
STOP_PROCESSING(SSobj, src)
@@ -293,8 +293,9 @@
icon_state = "cocoon1"
health = 60
-/obj/effect/spider/cocoon/New()
- icon_state = pick("cocoon1","cocoon2","cocoon3")
+/obj/effect/spider/cocoon/Initialize()
+ . = ..()
+ icon_state = pick("cocoon1","cocoon2","cocoon3")
/obj/effect/spider/cocoon/Destroy()
src.visible_message("\The [src] splits open.")
diff --git a/code/game/objects/effects/step_triggers.dm b/code/game/objects/effects/step_triggers.dm
index b65085e65c..91ec4ee3b9 100644
--- a/code/game/objects/effects/step_triggers.dm
+++ b/code/game/objects/effects/step_triggers.dm
@@ -183,8 +183,8 @@ var/global/list/tele_landmarks = list() // Terrible, but the alternative is loop
/obj/effect/landmark/teleport_mark
var/landmark_id = null
-/obj/effect/landmark/teleport_mark/New()
- ..()
+/obj/effect/landmark/teleport_mark/Initialize()
+ . = ..()
tele_landmarks += src
/obj/effect/landmark/teleport_mark/Destroy()
diff --git a/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm b/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm
index 1088a3e4ba..a3ad51aea0 100644
--- a/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm
+++ b/code/game/objects/effects/temporary_visuals/projectiles/projectile_effects.dm
@@ -54,7 +54,7 @@
/obj/effect/projectile_lighting
var/owner
-/obj/effect/projectile_lighting/New(loc, color, range, intensity, owner_key)
- . = ..()
+/obj/effect/projectile_lighting/Initialize(var/ml, color, range, intensity, owner_key)
+ . = ..(ml)
set_light(range, intensity, color)
owner = owner_key
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index d7ec6181e0..165d261080 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -106,8 +106,8 @@
var/tip_timer // reference to timer id for a tooltip we might open soon
-/obj/item/New()
- ..()
+/obj/item/Initialize()
+ . = ..()
if(embed_chance < 0)
if(sharp)
embed_chance = max(5, round(force/w_class))
diff --git a/code/game/objects/items/antag_spawners.dm b/code/game/objects/items/antag_spawners.dm
index afa7ae66f9..ac63282303 100644
--- a/code/game/objects/items/antag_spawners.dm
+++ b/code/game/objects/items/antag_spawners.dm
@@ -5,8 +5,8 @@
var/searching = FALSE
var/datum/effect/effect/system/spark_spread/sparks
-/obj/item/weapon/antag_spawner/New()
- ..()
+/obj/item/weapon/antag_spawner/Initialize()
+ . = ..()
sparks = new /datum/effect/effect/system/spark_spread()
sparks.set_up(5, 0, src)
sparks.attach(loc)
diff --git a/code/game/objects/items/devices/ai_detector.dm b/code/game/objects/items/devices/ai_detector.dm
index 94d3a35912..9e01b5fabf 100644
--- a/code/game/objects/items/devices/ai_detector.dm
+++ b/code/game/objects/items/devices/ai_detector.dm
@@ -13,12 +13,12 @@
var/detect_state = PROXIMITY_NONE
origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 2, TECH_ILLEGAL = 2)
-/obj/item/device/multitool/ai_detector/New()
+/obj/item/device/multitool/ai_detector/Initialize()
// It's really really unlikely for the view range to change. But why not be futureproof anyways?
range_alert = world.view
range_warning = world.view * 2
START_PROCESSING(SSobj, src)
- ..()
+ return ..()
/obj/item/device/multitool/ai_detector/Destroy()
STOP_PROCESSING(SSobj, src)
diff --git a/code/game/objects/items/devices/communicator/communicator.dm b/code/game/objects/items/devices/communicator/communicator.dm
index ea916c7fbf..2799d2ea81 100644
--- a/code/game/objects/items/devices/communicator/communicator.dm
+++ b/code/game/objects/items/devices/communicator/communicator.dm
@@ -253,12 +253,8 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
var/datum/exonet_protocol/exonet = null
var/list/exonet_messages = list()
-// Proc: New()
-// Parameters: None
-// Description: Gives ghosts an exonet address based on their key and ghost name.
-/mob/observer/dead/Initialize()
- . = ..()
- exonet = new(src)
+/mob/observer/dead/proc/init_exonet()
+ set waitfor = FALSE
if(client)
exonet.make_address("communicator-[src.client]-[src.client.prefs.real_name]")
else
@@ -334,8 +330,8 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
/obj/machinery/camera/communicator
network = list(NETWORK_COMMUNICATORS)
-/obj/machinery/camera/communicator/New()
- ..()
+/obj/machinery/camera/communicator/Initialize()
+ . = ..()
client_huds |= global_hud.whitense
client_huds |= global_hud.darkMask
diff --git a/code/game/objects/items/devices/defib.dm b/code/game/objects/items/devices/defib.dm
index f2e971d90e..eeaf734566 100644
--- a/code/game/objects/items/devices/defib.dm
+++ b/code/game/objects/items/devices/defib.dm
@@ -22,8 +22,8 @@
/obj/item/device/defib_kit/get_cell()
return bcell
-/obj/item/device/defib_kit/New() //starts without a cell for rnd
- ..()
+/obj/item/device/defib_kit/Initialize() //starts without a cell for rnd
+ . = ..()
if(ispath(paddles))
paddles = new paddles(src, src)
else
@@ -580,9 +580,9 @@
/obj/item/weapon/shockpaddles/linked
var/obj/item/device/defib_kit/base_unit
-/obj/item/weapon/shockpaddles/linked/New(newloc, obj/item/device/defib_kit/defib)
+/obj/item/weapon/shockpaddles/linked/Initialize(var/ml, obj/item/device/defib_kit/defib)
base_unit = defib
- ..(newloc)
+ . = ..()
/obj/item/weapon/shockpaddles/linked/Destroy()
if(base_unit)
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 3141d3ee63..0fd6fc3b1e 100644
--- a/code/game/objects/items/devices/flashlight.dm
+++ b/code/game/objects/items/devices/flashlight.dm
@@ -335,9 +335,9 @@
drop_sound = 'sound/items/drop/gloves.ogg'
pickup_sound = 'sound/items/pickup/gloves.ogg'
-/obj/item/device/flashlight/flare/New()
+/obj/item/device/flashlight/flare/Initialize()
fuel = rand(800, 1000) // Sorry for changing this so much but I keep under-estimating how long X number of ticks last in seconds.
- ..()
+ . = ..()
/obj/item/device/flashlight/flare/process()
var/turf/pos = get_turf(src)
@@ -395,9 +395,9 @@
var/fuel = 0
power_use = 0
-/obj/item/device/flashlight/glowstick/New()
+/obj/item/device/flashlight/glowstick/Initialize()
fuel = rand(1600, 2000)
- ..()
+ . = ..()
/obj/item/device/flashlight/glowstick/process()
fuel = max(fuel - 1, 0)
@@ -465,8 +465,8 @@
on = 1 //Bio-luminesence has one setting, on.
power_use = 0
-/obj/item/device/flashlight/slime/New()
- ..()
+/obj/item/device/flashlight/slime/Initialize()
+ . = ..()
set_light(brightness_on, flashlight_power, flashlight_colour)
/obj/item/device/flashlight/slime/update_icon()
diff --git a/code/game/objects/items/devices/hacktool.dm b/code/game/objects/items/devices/hacktool.dm
index da1c165e9e..a550d608e1 100644
--- a/code/game/objects/items/devices/hacktool.dm
+++ b/code/game/objects/items/devices/hacktool.dm
@@ -7,8 +7,8 @@
var/list/supported_types
var/datum/topic_state/default/must_hack/hack_state
-/obj/item/device/multitool/hacktool/New()
- ..()
+/obj/item/device/multitool/hacktool/Initialize()
+ . = ..()
known_targets = list()
max_known_targets = 5 + rand(1,3)
supported_types = list(/obj/machinery/door/airlock)
diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm
index 810147dbc4..8b6d472c58 100644
--- a/code/game/objects/items/devices/laserpointer.dm
+++ b/code/game/objects/items/devices/laserpointer.dm
@@ -29,14 +29,14 @@
/obj/item/device/laser_pointer/purple
pointer_icon_state = "purple_laser"
-/obj/item/device/laser_pointer/New()
- ..()
+/obj/item/device/laser_pointer/Initialize()
+ . = ..()
diode = new(src)
if(!pointer_icon_state)
pointer_icon_state = pick("red_laser","green_laser","blue_laser","purple_laser")
-/obj/item/device/laser_pointer/upgraded/New()
- ..()
+/obj/item/device/laser_pointer/upgraded/Initialize()
+ . = ..()
diode = new /obj/item/weapon/stock_parts/micro_laser/ultra
diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm
index 6ae95bcf8a..76c84fa8d6 100644
--- a/code/game/objects/items/devices/lightreplacer.dm
+++ b/code/game/objects/items/devices/lightreplacer.dm
@@ -59,9 +59,9 @@
// when we get this many shards, we get a free bulb.
var/shards_required = 4
-/obj/item/device/lightreplacer/New()
+/obj/item/device/lightreplacer/Initialize()
failmsg = "The [name]'s refill light blinks red."
- ..()
+ . = ..()
/obj/item/device/lightreplacer/examine(mob/user)
. = ..()
diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm
index 1a1527b67f..1fd6711092 100644
--- a/code/game/objects/items/devices/paicard.dm
+++ b/code/game/objects/items/devices/paicard.dm
@@ -22,8 +22,8 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
if(istype(rig))
rig.forced_move(direction, user)
-/obj/item/device/paicard/New()
- ..()
+/obj/item/device/paicard/Initialize()
+ . = ..()
overlays += "pai-off"
/obj/item/device/paicard/Destroy()
diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm
index 59e386b608..e3a6fa9e53 100644
--- a/code/game/objects/items/devices/pipe_painter.dm
+++ b/code/game/objects/items/devices/pipe_painter.dm
@@ -6,8 +6,8 @@
var/list/modes
var/mode
-/obj/item/device/pipe_painter/New()
- ..()
+/obj/item/device/pipe_painter/Initialize()
+ . = ..()
modes = new()
for(var/C in pipe_colors)
modes += "[C]"
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index ad5e5c583f..58e8100204 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -20,8 +20,8 @@
drop_sound = 'sound/items/drop/component.ogg'
pickup_sound = 'sound/items/pickup/component.ogg'
-/obj/item/device/radio/headset/New()
- ..()
+/obj/item/device/radio/headset/Initialize()
+ . = ..()
internal_channels.Cut()
if(ks1type)
keyslot1 = new ks1type(src)
@@ -428,14 +428,11 @@
if(keyslot2.syndie)
src.syndie = 1
+ if(!radio_controller)
+ src.name = "broken radio headset"
+ return
for (var/ch_name in channels)
- if(!radio_controller)
- sleep(30) // Waiting for the radio_controller to be created.
- if(!radio_controller)
- src.name = "broken radio headset"
- return
-
secure_radio_connections[ch_name] = radio_controller.add_object(src, radiochannels[ch_name], RADIO_CHAT)
if(setDescription)
diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm
index 504ed918f5..97dd933e3a 100644
--- a/code/game/objects/items/devices/radio/intercom.dm
+++ b/code/game/objects/items/devices/radio/intercom.dm
@@ -67,23 +67,23 @@
channels = radiochannels.Copy()
return ..()
-/obj/item/device/radio/intercom/New()
- ..()
+/obj/item/device/radio/intercom/Initialize()
+ . = ..()
circuit = new circuit(src)
-/obj/item/device/radio/intercom/department/medbay/New()
- ..()
+/obj/item/device/radio/intercom/department/medbay/Initialize()
+ . = ..()
internal_channels = default_medbay_channels.Copy()
-/obj/item/device/radio/intercom/department/security/New()
- ..()
+/obj/item/device/radio/intercom/department/security/Initialize()
+ . = ..()
internal_channels = list(
num2text(PUB_FREQ) = list(),
num2text(SEC_I_FREQ) = list(access_security)
)
-/obj/item/device/radio/intercom/entertainment/New()
- ..()
+/obj/item/device/radio/intercom/entertainment/Initialize()
+ . = ..()
internal_channels = list(
num2text(PUB_FREQ) = list(),
num2text(ENT_FREQ) = list()
@@ -96,8 +96,8 @@
subspace_transmission = 1
syndie = 1
-/obj/item/device/radio/intercom/syndicate/New()
- ..()
+/obj/item/device/radio/intercom/syndicate/Initialize()
+ . = ..()
internal_channels[num2text(SYND_FREQ)] = list(access_syndicate)
/obj/item/device/radio/intercom/raider
@@ -107,8 +107,8 @@
subspace_transmission = 1
syndie = 1
-/obj/item/device/radio/intercom/raider/New()
- ..()
+/obj/item/device/radio/intercom/raider/Initialize()
+ . = ..()
internal_channels[num2text(RAID_FREQ)] = list(access_syndicate)
/obj/item/device/radio/intercom/attack_ai(mob/user as mob)
diff --git a/code/game/objects/items/devices/radio/jammer.dm b/code/game/objects/items/devices/radio/jammer.dm
index 8f52cc40df..7c20c18247 100644
--- a/code/game/objects/items/devices/radio/jammer.dm
+++ b/code/game/objects/items/devices/radio/jammer.dm
@@ -28,7 +28,8 @@ var/global/list/active_radio_jammers = list()
origin_tech = list(TECH_ILLEGAL = 7, TECH_BLUESPACE = 5) //Such technology! Subspace jamming!
-/obj/item/device/radio_jammer/New()
+/obj/item/device/radio_jammer/Initialize()
+ . = ..()
power_source = new(src)
update_icon() // So it starts with the full overlay.
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 856aa47803..444c80c94a 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -1,23 +1,23 @@
// Access check is of the type requires one. These have been carefully selected to avoid allowing the janitor to see channels he shouldn't
var/global/list/default_internal_channels = list(
- num2text(PUB_FREQ) = list(),
- num2text(AI_FREQ) = list(access_synth),
- num2text(ENT_FREQ) = list(),
- num2text(ERT_FREQ) = list(access_cent_specops),
- num2text(COMM_FREQ)= list(access_heads),
- num2text(ENG_FREQ) = list(access_engine_equip, access_atmospherics),
- num2text(MED_FREQ) = list(access_medical_equip),
- num2text(MED_I_FREQ)=list(access_medical_equip),
- num2text(SEC_FREQ) = list(access_security),
- num2text(SEC_I_FREQ)=list(access_security),
- num2text(SCI_FREQ) = list(access_tox,access_robotics,access_xenobiology),
- num2text(SUP_FREQ) = list(access_cargo),
- num2text(SRV_FREQ) = list(access_janitor, access_hydroponics)
+ num2text(PUB_FREQ) = list(),
+ num2text(AI_FREQ) = list(access_synth),
+ num2text(ENT_FREQ) = list(),
+ num2text(ERT_FREQ) = list(access_cent_specops),
+ num2text(COMM_FREQ) = list(access_heads),
+ num2text(ENG_FREQ) = list(access_engine_equip, access_atmospherics),
+ num2text(MED_FREQ) = list(access_medical_equip),
+ num2text(MED_I_FREQ) = list(access_medical_equip),
+ num2text(SEC_FREQ) = list(access_security),
+ num2text(SEC_I_FREQ) = list(access_security),
+ num2text(SCI_FREQ) = list(access_tox,access_robotics,access_xenobiology),
+ num2text(SUP_FREQ) = list(access_cargo),
+ num2text(SRV_FREQ) = list(access_janitor, access_hydroponics)
)
var/global/list/default_medbay_channels = list(
- num2text(PUB_FREQ) = list(),
- num2text(MED_FREQ) = list(access_medical_equip),
+ num2text(PUB_FREQ) = list(),
+ num2text(MED_FREQ) = list(access_medical_equip),
num2text(MED_I_FREQ) = list(access_medical_equip)
)
@@ -70,12 +70,6 @@ var/global/list/default_medbay_channels = list(
frequency = new_frequency
radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT)
-/obj/item/device/radio/New()
- ..()
- wires = new(src)
- internal_channels = default_internal_channels.Copy()
- listening_objects += src
-
/obj/item/device/radio/Destroy()
qdel(wires)
wires = null
@@ -86,9 +80,13 @@ var/global/list/default_medbay_channels = list(
radio_controller.remove_object(src, radiochannels[ch_name])
return ..()
-
/obj/item/device/radio/Initialize()
. = ..()
+
+ wires = new(src)
+ internal_channels = default_internal_channels.Copy()
+ listening_objects += src
+
if(frequency < RADIO_LOW_FREQ || frequency > RADIO_HIGH_FREQ)
frequency = sanitize_frequency(frequency, RADIO_LOW_FREQ, RADIO_HIGH_FREQ)
set_frequency(frequency)
@@ -758,6 +756,6 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
/obj/item/device/radio/phone/medbay
frequency = MED_I_FREQ
-/obj/item/device/radio/phone/medbay/New()
- ..()
+/obj/item/device/radio/phone/medbay/Initialize()
+ . = ..()
internal_channels = default_medbay_channels.Copy()
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index bd6e2c12b9..d28ebc71f4 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -26,10 +26,10 @@ HALOGEN COUNTER - Radcount on mobs
var/advscan = 0
var/showadvscan = 1
-/obj/item/device/healthanalyzer/New()
+/obj/item/device/healthanalyzer/Initialize()
if(advscan >= 1)
verbs += /obj/item/device/healthanalyzer/proc/toggle_adv
- ..()
+ . = ..()
/obj/item/device/healthanalyzer/do_surgery(mob/living/M, mob/living/user)
if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool
@@ -375,8 +375,8 @@ HALOGEN COUNTER - Radcount on mobs
var/details = 0
var/recent_fail = 0
-/obj/item/device/mass_spectrometer/New()
- ..()
+/obj/item/device/mass_spectrometer/Initialize()
+ . = ..()
var/datum/reagents/R = new/datum/reagents(5)
reagents = R
R.my_atom = src
diff --git a/code/game/objects/items/devices/spy_bug.dm b/code/game/objects/items/devices/spy_bug.dm
index 60ca5cc1a2..d3436ba4c5 100644
--- a/code/game/objects/items/devices/spy_bug.dm
+++ b/code/game/objects/items/devices/spy_bug.dm
@@ -17,8 +17,8 @@
var/obj/machinery/camera/bug/camera
var/camtype = /obj/machinery/camera/bug
-/obj/item/device/camerabug/New()
- ..()
+/obj/item/device/camerabug/Initialize()
+ . = ..()
// radio = new(src)
camera = new camtype(src)
@@ -158,8 +158,9 @@
var/obj/machinery/camera/bug/selected_camera
var/list/obj/machinery/camera/bug/cameras = new()
/*
-/obj/item/device/bug_monitor/New()
+/obj/item/device/bug_monitor/Initialize()
radio = new(src)
+ . = ..()
*/
/obj/item/device/bug_monitor/attack_self(mob/user)
if(operating)
@@ -242,8 +243,8 @@
/obj/machinery/camera/bug
network = list(NETWORK_SECURITY)
-/obj/machinery/camera/bug/New()
- ..()
+/obj/machinery/camera/bug/Initialize()
+ . = ..()
name = "Camera #[rand(1000,9999)]"
c_tag = name
@@ -251,8 +252,8 @@
// These cheap toys are accessible from the mercenary camera console as well - only the antag ones though!
network = list(NETWORK_MERCENARY)
-/obj/machinery/camera/bug/spy/New()
- ..()
+/obj/machinery/camera/bug/spy/Initialize()
+ . = ..()
name = "DV-136ZB #[rand(1000,9999)]"
c_tag = name
diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm
index 2b9479cb38..011a3338d6 100644
--- a/code/game/objects/items/devices/taperecorder.dm
+++ b/code/game/objects/items/devices/taperecorder.dm
@@ -18,8 +18,8 @@
throw_speed = 4
throw_range = 20
-/obj/item/device/taperecorder/New()
- ..()
+/obj/item/device/taperecorder/Initialize()
+ . = ..()
if(ispath(mytape))
mytape = new mytape(src)
update_icon()
@@ -431,5 +431,6 @@
//Random colour tapes
-/obj/item/device/tape/random/New()
+/obj/item/device/tape/random/Initialize()
+ . = ..()
icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]"
\ No newline at end of file
diff --git a/code/game/objects/items/devices/tvcamera.dm b/code/game/objects/items/devices/tvcamera.dm
index e8b6df0b98..2f368d7a53 100644
--- a/code/game/objects/items/devices/tvcamera.dm
+++ b/code/game/objects/items/devices/tvcamera.dm
@@ -9,10 +9,6 @@
var/obj/machinery/camera/network/thunder/camera
var/obj/item/device/radio/radio
-/obj/item/device/tvcamera/New()
- ..()
- listening_objects += src
-
/obj/item/device/tvcamera/Destroy()
listening_objects -= src
qdel(camera)
@@ -28,6 +24,7 @@
/obj/item/device/tvcamera/Initialize()
. = ..()
+ listening_objects += src
camera = new(src)
camera.c_tag = channel
camera.status = FALSE
diff --git a/code/game/objects/items/devices/uplink.dm b/code/game/objects/items/devices/uplink.dm
index 4c07229df7..38b7f658ab 100644
--- a/code/game/objects/items/devices/uplink.dm
+++ b/code/game/objects/items/devices/uplink.dm
@@ -212,8 +212,8 @@
//
// Includes normal radio uplink, multitool uplink,
// implant uplink (not the implant tool) and a preset headset uplink.
-/obj/item/device/radio/uplink/New()
- ..()
+/obj/item/device/radio/uplink/Initialize()
+ . = ..()
hidden_uplink = new(src)
icon_state = "radio"
@@ -221,8 +221,8 @@
if(hidden_uplink)
hidden_uplink.trigger(user)
-/obj/item/device/multitool/uplink/New()
- ..()
+/obj/item/device/multitool/uplink/Initialize()
+ . = ..()
hidden_uplink = new(src)
/obj/item/device/multitool/uplink/attack_self(mob/user as mob)
@@ -232,6 +232,6 @@
/obj/item/device/radio/headset/uplink
traitor_frequency = 1445
-/obj/item/device/radio/headset/uplink/New()
- ..()
+/obj/item/device/radio/headset/uplink/Initialize()
+ . = ..()
hidden_uplink = new(src)
diff --git a/code/game/objects/items/devices/violin.dm b/code/game/objects/items/devices/violin.dm
index 5dc215cf91..046b7f8020 100644
--- a/code/game/objects/items/devices/violin.dm
+++ b/code/game/objects/items/devices/violin.dm
@@ -7,8 +7,8 @@
icon = 'icons/obj/musician.dmi'
force = 10
-/obj/item/device/instrument/New()
- ..()
+/obj/item/device/instrument/Initialize()
+ . = ..()
song = new(instrumentId, src)
song.instrumentExt = instrumentExt
diff --git a/code/game/objects/items/glassjar.dm b/code/game/objects/items/glassjar.dm
index 9db0d88010..1cacf21829 100644
--- a/code/game/objects/items/glassjar.dm
+++ b/code/game/objects/items/glassjar.dm
@@ -17,8 +17,8 @@
drop_sound = 'sound/items/drop/glass.ogg'
pickup_sound = 'sound/items/pickup/glass.ogg'
-/obj/item/glass_jar/New()
- ..()
+/obj/item/glass_jar/Initialize()
+ . = ..()
update_icon()
/obj/item/glass_jar/afterattack(var/atom/A, var/mob/user, var/proximity)
diff --git a/code/game/objects/items/paintkit.dm b/code/game/objects/items/paintkit.dm
index 45430a41c9..6b77026bf2 100644
--- a/code/game/objects/items/paintkit.dm
+++ b/code/game/objects/items/paintkit.dm
@@ -198,6 +198,7 @@
return ..()
/obj/item/device/kit/suit/rig/debug/Initialize()
+ . = ..()
set_info("debug suit", "This is a test", "debug", CUSTOM_ITEM_OBJ, CUSTOM_ITEM_MOB)
/obj/item/device/kit/paint
diff --git a/code/game/objects/items/poi_items.dm b/code/game/objects/items/poi_items.dm
index 594e57361c..fc7ac29466 100644
--- a/code/game/objects/items/poi_items.dm
+++ b/code/game/objects/items/poi_items.dm
@@ -28,7 +28,7 @@
desc = "The top of this twisted chunk of metal is faintly stamped with a five pointed star. 'Property of US Army, Pascal B - 1957'."
catalogue_data = list(/datum/category_item/catalogue/information/objects/pascalb)
-/obj/item/poi/pascalb/New()
+/obj/item/poi/pascalb/Initialize()
START_PROCESSING(SSobj, src)
return ..()
@@ -76,7 +76,7 @@
desc = "This broken hunk of machinery looks extremely dangerous."
catalogue_data = list(/datum/category_item/catalogue/information/objects/oldreactor)
-/obj/item/poi/brokenoldreactor/New()
+/obj/item/poi/brokenoldreactor/Initialize()
START_PROCESSING(SSobj, src)
return ..()
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index 06b0e9edce..db5ddadd92 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -67,8 +67,8 @@
icon_state = "healthhud"
icon = 'icons/obj/clothing/glasses.dmi'
-/obj/item/borg/sight/hud/med/New()
- ..()
+/obj/item/borg/sight/hud/med/Initialize()
+ . = ..()
hud = new /obj/item/clothing/glasses/hud/health(src)
return
@@ -78,7 +78,7 @@
icon_state = "securityhud"
icon = 'icons/obj/clothing/glasses.dmi'
-/obj/item/borg/sight/hud/sec/New()
- ..()
+/obj/item/borg/sight/hud/sec/Initialize()
+ . = ..()
hud = new /obj/item/clothing/glasses/hud/security(src)
return
diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index 606ab3336c..5a3092d2ef 100644
--- a/code/game/objects/items/robot/robot_parts.dm
+++ b/code/game/objects/items/robot/robot_parts.dm
@@ -12,9 +12,6 @@
/obj/item/robot_parts/set_dir()
return
-/obj/item/robot_parts/New(var/newloc, var/model)
- ..(newloc)
-
/obj/item/robot_parts/l_arm
name = "cyborg left arm"
desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case."
@@ -71,8 +68,8 @@
var/obj/item/robot_parts/head/head = null
var/created_name = ""
-/obj/item/robot_parts/robot_suit/New()
- ..()
+/obj/item/robot_parts/robot_suit/Initialize()
+ . = ..()
src.updateicon()
/obj/item/robot_parts/robot_suit/proc/updateicon()
@@ -192,7 +189,7 @@
to_chat(user, "This [W] does not seem to fit.")
return
- var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), unfinished = 1)
+ var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), TRUE)
if(!O) return
user.drop_item()
diff --git a/code/game/objects/items/stacks/marker_beacons.dm b/code/game/objects/items/stacks/marker_beacons.dm
index f5de239b9a..f8709c255d 100644
--- a/code/game/objects/items/stacks/marker_beacons.dm
+++ b/code/game/objects/items/stacks/marker_beacons.dm
@@ -89,7 +89,7 @@ var/list/marker_beacon_colors = list(
var/perma = FALSE
var/mapped_in_color
-/obj/structure/marker_beacon/New(newloc, set_color)
+/obj/structure/marker_beacon/Initialize(var/ml, set_color)
. = ..()
if(set_color)
picked_color = set_color
diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm
index f8db22109d..02e283deac 100644
--- a/code/game/objects/items/toys/toys.dm
+++ b/code/game/objects/items/toys/toys.dm
@@ -37,7 +37,8 @@
icon_state = "waterballoon-e"
drop_sound = 'sound/items/drop/rubber.ogg'
-/obj/item/toy/balloon/New()
+/obj/item/toy/balloon/Initialize()
+ . = ..()
var/datum/reagents/R = new/datum/reagents(10)
reagents = R
R.my_atom = src
@@ -302,8 +303,8 @@
var/toysay = "What the fuck did you do?"
drop_sound = 'sound/items/drop/accessory.ogg'
-/obj/item/toy/figure/New()
- ..()
+/obj/item/toy/figure/Initialize()
+ . = ..()
desc = "A \"Space Life\" brand [name]"
/obj/item/toy/figure/attack_self(mob/user as mob)
diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm
index decb947815..6787425c20 100644
--- a/code/game/objects/items/trash.dm
+++ b/code/game/objects/items/trash.dm
@@ -11,15 +11,12 @@
matter = list(MAT_STEEL = 30)
var/age = 0
-/obj/item/trash/New(var/newloc, var/_age)
- ..(newloc)
+/obj/item/trash/Initialize(var/ml, var/_age)
+ . = ..()
if(!isnull(_age))
age = _age
-
-/obj/item/trash/Initialize(mapload)
- if(!mapload || !config.persistence_ignore_mapload)
+ if(!ml || !config.persistence_ignore_mapload)
SSpersistence.track_value(src, /datum/persistent/filth/trash)
- . = ..()
/obj/item/trash/Destroy()
SSpersistence.forget_value(src, /datum/persistent/filth/trash)
diff --git a/code/game/objects/items/weapons/candle.dm b/code/game/objects/items/weapons/candle.dm
index 7663dfd7ff..d7e1b40d5e 100644
--- a/code/game/objects/items/weapons/candle.dm
+++ b/code/game/objects/items/weapons/candle.dm
@@ -10,9 +10,9 @@
var/wax = 2000
var/icon_type = "candle"
-/obj/item/weapon/flame/candle/New()
+/obj/item/weapon/flame/candle/Initialize()
wax -= rand(800, 1000) // Enough for 27-33 minutes. 30 minutes on average.
- ..()
+ . = ..()
/obj/item/weapon/flame/candle/update_icon()
var/i
diff --git a/code/game/objects/items/weapons/canes.dm b/code/game/objects/items/weapons/canes.dm
index 25cb3dfff4..20ea01ddb5 100644
--- a/code/game/objects/items/weapons/canes.dm
+++ b/code/game/objects/items/weapons/canes.dm
@@ -22,8 +22,8 @@
/obj/item/weapon/cane/concealed
var/concealed_blade
-/obj/item/weapon/cane/concealed/New()
- ..()
+/obj/item/weapon/cane/concealed/Initialize()
+ . = ..()
var/obj/item/weapon/material/butterfly/switchblade/temp_blade = new(src)
concealed_blade = temp_blade
temp_blade.attack_self()
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index c5fc466e52..f0f5ba7830 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -420,8 +420,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM
ignitermes = "USER fiddles with FLAME, and manages to light their NAME with the power of science."
is_pipe = 1
-/obj/item/clothing/mask/smokable/pipe/New()
- ..()
+/obj/item/clothing/mask/smokable/pipe/Initialize()
+ . = ..()
name = "empty [initial(name)]"
/obj/item/clothing/mask/smokable/pipe/attack_self(mob/user as mob)
@@ -579,8 +579,8 @@ CIGARETTE PACKETS ARE IN FANCY.DM
activation_sound = 'sound/items/zippo_on.ogg'
deactivation_sound = 'sound/items/zippo_off.ogg'
-/obj/item/weapon/flame/lighter/random
-/obj/item/weapon/flame/lighter/random/New()
+/obj/item/weapon/flame/lighter/random/Initialize()
+ . = ..()
icon_state = "lighter-[pick("r","c","y","g")]"
item_state = icon_state
base_state = icon_state
diff --git a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm
index 30e95fb59c..cfbce5098d 100644
--- a/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm
+++ b/code/game/objects/items/weapons/circuitboards/computer/camera_monitor.dm
@@ -10,8 +10,8 @@
var/locked = 1
var/emagged = 0
-/obj/item/weapon/circuitboard/security/New()
- ..()
+/obj/item/weapon/circuitboard/security/Initialize()
+ . = ..()
/obj/item/weapon/circuitboard/security/tv
name = T_BOARD("security camera monitor - television")
@@ -22,8 +22,8 @@
build_path = /obj/machinery/computer/security/engineering
req_access = list()
-/obj/item/weapon/circuitboard/security/engineering/New()
- ..()
+/obj/item/weapon/circuitboard/security/engineering/Initialize()
+ . = ..()
network = engineering_networks
/obj/item/weapon/circuitboard/security/mining
@@ -38,8 +38,8 @@
board_type = new /datum/frame/frame_types/display
matter = list(MAT_STEEL = 50, "glass" = 50)
-/obj/item/weapon/circuitboard/security/telescreen/entertainment/New()
- ..()
+/obj/item/weapon/circuitboard/security/telescreen/entertainment/Initialize()
+ . = ..()
network = NETWORK_THUNDER
/obj/item/weapon/circuitboard/security/construct(var/obj/machinery/computer/security/C)
diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm
index 5e93f2d031..0f3ca5ffe4 100644
--- a/code/game/objects/items/weapons/cosmetics.dm
+++ b/code/game/objects/items/weapons/cosmetics.dm
@@ -26,7 +26,8 @@
/obj/item/weapon/lipstick/random
name = "lipstick"
-/obj/item/weapon/lipstick/random/New()
+/obj/item/weapon/lipstick/random/Initialize()
+ . = ..()
colour = pick("red","purple","jade","black")
name = "[colour] lipstick"
diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm
index ce63436094..6007477107 100644
--- a/code/game/objects/items/weapons/dna_injector.dm
+++ b/code/game/objects/items/weapons/dna_injector.dm
@@ -19,7 +19,8 @@
var/datatype=0
var/value=0
-/obj/item/weapon/dnainjector/New()
+/obj/item/weapon/dnainjector/Initialize()
+ . = ..()
if(datatype && block)
buf=new
buf.dna=new
@@ -142,9 +143,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/hulkmut/New()
+/obj/item/weapon/dnainjector/hulkmut/Initialize()
block = HULKBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antihulk
name = "\improper DNA injector (Anti-Hulk)"
@@ -152,9 +153,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antihulk/New()
+/obj/item/weapon/dnainjector/antihulk/Initialize()
block = HULKBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/xraymut
name = "\improper DNA injector (Xray)"
@@ -162,9 +163,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/xraymut/New()
+/obj/item/weapon/dnainjector/xraymut/Initialize()
block = XRAYBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antixray
name = "\improper DNA injector (Anti-Xray)"
@@ -172,9 +173,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antixray/New()
+/obj/item/weapon/dnainjector/antixray/Initialize()
block = XRAYBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/firemut
name = "\improper DNA injector (Fire)"
@@ -182,9 +183,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/firemut/New()
+/obj/item/weapon/dnainjector/firemut/Initialize()
block = FIREBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antifire
name = "\improper DNA injector (Anti-Fire)"
@@ -192,9 +193,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antifire/New()
+/obj/item/weapon/dnainjector/antifire/Initialize()
block = FIREBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/telemut
name = "\improper DNA injector (Tele.)"
@@ -202,9 +203,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/telemut/New()
+/obj/item/weapon/dnainjector/telemut/Initialize()
block = TELEBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antitele
name = "\improper DNA injector (Anti-Tele.)"
@@ -212,9 +213,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antitele/New()
+/obj/item/weapon/dnainjector/antitele/Initialize()
block = TELEBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/nobreath
name = "\improper DNA injector (No Breath)"
@@ -222,9 +223,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/nobreath/New()
+/obj/item/weapon/dnainjector/nobreath/Initialize()
block = NOBREATHBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antinobreath
name = "\improper DNA injector (Anti-No Breath)"
@@ -232,9 +233,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antinobreath/New()
+/obj/item/weapon/dnainjector/antinobreath/Initialize()
block = NOBREATHBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/remoteview
name = "\improper DNA injector (Remote View)"
@@ -242,9 +243,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/remoteview/New()
+/obj/item/weapon/dnainjector/remoteview/Initialize()
block = REMOTEVIEWBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antiremoteview
name = "\improper DNA injector (Anti-Remote View)"
@@ -252,9 +253,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antiremoteview/New()
+/obj/item/weapon/dnainjector/antiremoteview/Initialize()
block = REMOTEVIEWBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/regenerate
name = "\improper DNA injector (Regeneration)"
@@ -262,9 +263,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/regenerate/New()
+/obj/item/weapon/dnainjector/regenerate/Initialize()
block = REGENERATEBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antiregenerate
name = "\improper DNA injector (Anti-Regeneration)"
@@ -272,9 +273,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antiregenerate/New()
+/obj/item/weapon/dnainjector/antiregenerate/Initialize()
block = REGENERATEBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/runfast
name = "\improper DNA injector (Increase Run)"
@@ -282,9 +283,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/runfast/New()
+/obj/item/weapon/dnainjector/runfast/Initialize()
block = INCREASERUNBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antirunfast
name = "\improper DNA injector (Anti-Increase Run)"
@@ -292,9 +293,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antirunfast/New()
+/obj/item/weapon/dnainjector/antirunfast/Initialize()
block = INCREASERUNBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/morph
name = "\improper DNA injector (Morph)"
@@ -302,9 +303,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/morph/New()
+/obj/item/weapon/dnainjector/morph/Initialize()
block = MORPHBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antimorph
name = "\improper DNA injector (Anti-Morph)"
@@ -312,9 +313,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antimorph/New()
+/obj/item/weapon/dnainjector/antimorph/Initialize()
block = MORPHBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/noprints
name = "\improper DNA injector (No Prints)"
@@ -322,9 +323,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/noprints/New()
+/obj/item/weapon/dnainjector/noprints/Initialize()
block = NOPRINTSBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antinoprints
name = "\improper DNA injector (Anti-No Prints)"
@@ -332,9 +333,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antinoprints/New()
+/obj/item/weapon/dnainjector/antinoprints/Initialize()
block = NOPRINTSBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/insulation
name = "\improper DNA injector (Shock Immunity)"
@@ -342,9 +343,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/insulation/New()
+/obj/item/weapon/dnainjector/insulation/Initialize()
block = SHOCKIMMUNITYBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antiinsulation
name = "\improper DNA injector (Anti-Shock Immunity)"
@@ -352,9 +353,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antiinsulation/New()
+/obj/item/weapon/dnainjector/antiinsulation/Initialize()
block = SHOCKIMMUNITYBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/midgit
name = "\improper DNA injector (Small Size)"
@@ -362,9 +363,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/midgit/New()
+/obj/item/weapon/dnainjector/midgit/Initialize()
block = SMALLSIZEBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antimidgit
name = "\improper DNA injector (Anti-Small Size)"
@@ -372,9 +373,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antimidgit/New()
+/obj/item/weapon/dnainjector/antimidgit/Initialize()
block = SMALLSIZEBLOCK
- ..()
+ . = ..()
/////////////////////////////////////
/obj/item/weapon/dnainjector/antiglasses
@@ -383,9 +384,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antiglasses/New()
+/obj/item/weapon/dnainjector/antiglasses/Initialize()
block = GLASSESBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/glassesmut
name = "\improper DNA injector (Glasses)"
@@ -393,9 +394,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/glassesmut/New()
+/obj/item/weapon/dnainjector/glassesmut/Initialize()
block = GLASSESBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/epimut
name = "\improper DNA injector (Epi.)"
@@ -403,9 +404,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/epimut/New()
+/obj/item/weapon/dnainjector/epimut/Initialize()
block = HEADACHEBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antiepi
name = "\improper DNA injector (Anti-Epi.)"
@@ -413,9 +414,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antiepi/New()
+/obj/item/weapon/dnainjector/antiepi/Initialize()
block = HEADACHEBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/anticough
name = "\improper DNA injector (Anti-Cough)"
@@ -423,9 +424,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/anticough/New()
+/obj/item/weapon/dnainjector/anticough/Initialize()
block = COUGHBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/coughmut
name = "\improper DNA injector (Cough)"
@@ -433,9 +434,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/coughmut/New()
+/obj/item/weapon/dnainjector/coughmut/Initialize()
block = COUGHBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/clumsymut
name = "\improper DNA injector (Clumsy)"
@@ -443,9 +444,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/clumsymut/New()
+/obj/item/weapon/dnainjector/clumsymut/Initialize()
block = CLUMSYBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/anticlumsy
name = "\improper DNA injector (Anti-Clumy)"
@@ -453,9 +454,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/anticlumsy/New()
+/obj/item/weapon/dnainjector/anticlumsy/Initialize()
block = CLUMSYBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antitour
name = "\improper DNA injector (Anti-Tour.)"
@@ -463,9 +464,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antitour/New()
+/obj/item/weapon/dnainjector/antitour/Initialize()
block = TWITCHBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/tourmut
name = "\improper DNA injector (Tour.)"
@@ -473,9 +474,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/tourmut/New()
+/obj/item/weapon/dnainjector/tourmut/Initialize()
block = TWITCHBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/stuttmut
name = "\improper DNA injector (Stutt.)"
@@ -483,9 +484,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/stuttmut/New()
+/obj/item/weapon/dnainjector/stuttmut/Initialize()
block = NERVOUSBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antistutt
name = "\improper DNA injector (Anti-Stutt.)"
@@ -493,9 +494,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antistutt/New()
+/obj/item/weapon/dnainjector/antistutt/Initialize()
block = NERVOUSBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/blindmut
name = "\improper DNA injector (Blind)"
@@ -503,9 +504,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/blindmut/New()
+/obj/item/weapon/dnainjector/blindmut/Initialize()
block = BLINDBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antiblind
name = "\improper DNA injector (Anti-Blind)"
@@ -513,9 +514,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antiblind/New()
+/obj/item/weapon/dnainjector/antiblind/Initialize()
block = BLINDBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/deafmut
name = "\improper DNA injector (Deaf)"
@@ -523,9 +524,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/deafmut/New()
+/obj/item/weapon/dnainjector/deafmut/Initialize()
block = DEAFBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antideaf
name = "\improper DNA injector (Anti-Deaf)"
@@ -533,9 +534,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antideaf/New()
+/obj/item/weapon/dnainjector/antideaf/Initialize()
block = DEAFBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/hallucination
name = "\improper DNA injector (Halluctination)"
@@ -543,9 +544,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/hallucination/New()
+/obj/item/weapon/dnainjector/hallucination/Initialize()
block = HALLUCINATIONBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/antihallucination
name = "\improper DNA injector (Anti-Hallucination)"
@@ -553,9 +554,9 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/antihallucination/New()
+/obj/item/weapon/dnainjector/antihallucination/Initialize()
block = HALLUCINATIONBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/h2m
name = "\improper DNA injector (Human > Monkey)"
@@ -563,9 +564,9 @@
datatype = DNA2_BUF_SE
value = 0xFFF
-/obj/item/weapon/dnainjector/h2m/New()
+/obj/item/weapon/dnainjector/h2m/Initialize()
block = MONKEYBLOCK
- ..()
+ . = ..()
/obj/item/weapon/dnainjector/m2h
name = "\improper DNA injector (Monkey > Human)"
@@ -573,6 +574,6 @@
datatype = DNA2_BUF_SE
value = 0x001
-/obj/item/weapon/dnainjector/m2h/New()
+/obj/item/weapon/dnainjector/m2h/Initialize()
block = MONKEYBLOCK
- ..()
+ . = ..()
diff --git a/code/game/objects/items/weapons/ecigs.dm b/code/game/objects/items/weapons/ecigs.dm
index 5e26bd6e10..a1ea6702ba 100644
--- a/code/game/objects/items/weapons/ecigs.dm
+++ b/code/game/objects/items/weapons/ecigs.dm
@@ -18,8 +18,8 @@
var/icon_empty
var/ecig_colors = list(null, COLOR_DARK_GRAY, COLOR_RED_GRAY, COLOR_BLUE_GRAY, COLOR_GREEN_GRAY, COLOR_PURPLE_GRAY)
-/obj/item/clothing/mask/smokable/ecig/New()
- ..()
+/obj/item/clothing/mask/smokable/ecig/Initialize()
+ . = ..()
ec_cartridge = new cartridge_type(src)
/obj/item/clothing/mask/smokable/ecig/examine(mob/user)
@@ -61,8 +61,8 @@
icon_off = "ecigoff1"
icon_empty = "ecigoff1"
icon_on = "ecigon"
-/obj/item/clothing/mask/smokable/ecig/util/New()
- ..()
+/obj/item/clothing/mask/smokable/ecig/util/Initialize()
+ . = ..()
color = pick(ecig_colors)
/obj/item/clothing/mask/smokable/ecig/deluxe
@@ -153,7 +153,8 @@
volume = 20
flags = OPENCONTAINER
-/obj/item/weapon/reagent_containers/ecig_cartridge/New()
+/obj/item/weapon/reagent_containers/ecig_cartridge/Initialize()
+ . = ..()
create_reagents(volume)
/obj/item/weapon/reagent_containers/ecig_cartridge/examine(mob/user as mob)//to see how much left
@@ -168,32 +169,32 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/blanknico
name = "flavorless nicotine cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says you can add whatever flavoring agents you want."
-/obj/item/weapon/reagent_containers/ecig_cartridge/blanknico/New()
- ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/blanknico/Initialize()
+ . = ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
/obj/item/weapon/reagent_containers/ecig_cartridge/med_nicotine
name = "tobacco flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its tobacco flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/med_nicotine/New()
- ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/med_nicotine/Initialize()
+ . = ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 15)
/obj/item/weapon/reagent_containers/ecig_cartridge/high_nicotine
name = "high nicotine tobacco flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its tobacco flavored, with extra nicotine."
-/obj/item/weapon/reagent_containers/ecig_cartridge/high_nicotine/New()
- ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/high_nicotine/Initialize()
+ . = ..()
reagents.add_reagent("nicotine", 10)
reagents.add_reagent("water", 10)
/obj/item/weapon/reagent_containers/ecig_cartridge/orange
name = "orange flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its orange flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/orange/New()
- ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/orange/Initialize()
+ . = ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("orangejuice", 5)
@@ -201,8 +202,8 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/mint
name = "mint flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its mint flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/mint/New()
- ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/mint/Initialize()
+ . = ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("menthol", 5)
@@ -210,8 +211,8 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/watermelon
name = "watermelon flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its watermelon flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/watermelon/New()
- ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/watermelon/Initialize()
+ . = ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("watermelonjuice", 5)
@@ -219,8 +220,8 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/grape
name = "grape flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its grape flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/grape/New()
- ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/grape/Initialize()
+ . = ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("grapejuice", 5)
@@ -228,8 +229,8 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/lemonlime
name = "lemon-lime flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its lemon-lime flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/lemonlime/New()
- ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/lemonlime/Initialize()
+ . = ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("lemon_lime", 5)
@@ -237,8 +238,8 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/coffee
name = "coffee flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label says its coffee flavored."
-/obj/item/weapon/reagent_containers/ecig_cartridge/coffee/New()
- ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/coffee/Initialize()
+ . = ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("coffee", 5)
@@ -246,8 +247,8 @@
/obj/item/weapon/reagent_containers/ecig_cartridge/cannabis
name = "herb flavour cartridge"
desc = "A small metal cartridge which contains an atomizing coil and a solution to be atomized. The label seems to be suspiciously scuffed off..."
-/obj/item/weapon/reagent_containers/ecig_cartridge/cannabis/New()
- ..()
+/obj/item/weapon/reagent_containers/ecig_cartridge/cannabis/Initialize()
+ . = ..()
reagents.add_reagent("nicotine", 5)
reagents.add_reagent("water", 10)
reagents.add_reagent("cannabis", 5)
diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm
index c4d0bf657e..f1f6e85bb3 100644
--- a/code/game/objects/items/weapons/explosives.dm
+++ b/code/game/objects/items/weapons/explosives.dm
@@ -18,10 +18,10 @@
var/blast_light = 2
var/blast_flash = 3
-/obj/item/weapon/plastique/New()
+/obj/item/weapon/plastique/Initialize()
wires = new(src)
image_overlay = image('icons/obj/assemblies.dmi', "plastic-explosive2")
- ..()
+ . = ..()
/obj/item/weapon/plastique/Destroy()
qdel(wires)
diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm
index f755ad1420..60098a4f3f 100644
--- a/code/game/objects/items/weapons/flamethrower.dm
+++ b/code/game/objects/items/weapons/flamethrower.dm
@@ -193,12 +193,11 @@
//location.hotspot_expose(1000,500,1)
return
-/obj/item/weapon/flamethrower/full/New(var/loc)
- ..()
+/obj/item/weapon/flamethrower/full/Initialize(var/ml)
+ . = ..(ml)
weldtool = new /obj/item/weapon/weldingtool(src)
weldtool.status = 0
igniter = new /obj/item/device/assembly/igniter(src)
igniter.secured = 0
status = 1
update_icon()
- return
diff --git a/code/game/objects/items/weapons/game_kit.dm b/code/game/objects/items/weapons/game_kit.dm
index 09ffacd32b..d5efea9583 100644
--- a/code/game/objects/items/weapons/game_kit.dm
+++ b/code/game/objects/items/weapons/game_kit.dm
@@ -3,9 +3,10 @@ CONTAINS:
THAT STUPID GAME KIT
*/
-/obj/item/weapon/game_kit/New()
+/obj/item/weapon/game_kit/Initialize()
src.board_stat = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
src.selected = "CR"
+ . = ..()
/obj/item/weapon/game_kit/attack_paw(mob/user as mob)
return src.attack_hand(user)
diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm
index a767fd62e4..862453693c 100644
--- a/code/game/objects/items/weapons/gift_wrappaper.dm
+++ b/code/game/objects/items/weapons/gift_wrappaper.dm
@@ -16,8 +16,8 @@
drop_sound = 'sound/items/drop/cardboardbox.ogg'
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
-/obj/item/weapon/a_gift/New()
- ..()
+/obj/item/weapon/a_gift/Initialize()
+ . = ..()
pixel_x = rand(-10,10)
pixel_y = rand(-10,10)
if(w_class > 0 && w_class < ITEMSIZE_LARGE)
diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm
index b176563b26..98ebb2579d 100644
--- a/code/game/objects/items/weapons/grenades/flashbang.dm
+++ b/code/game/objects/items/weapons/grenades/flashbang.dm
@@ -22,8 +22,8 @@
damage *= B.overmind.blob_type.burn_multiplier
B.adjust_integrity(-damage)
- new/obj/effect/effect/sparks(src.loc)
- new/obj/effect/effect/smoke/illumination(src.loc, 5, range=30, power=30, color="#FFFFFF")
+ new /obj/effect/effect/sparks(src.loc)
+ new /obj/effect/effect/smoke/illumination(src.loc, 5, 30, 30, "#FFFFFF")
qdel(src)
@@ -135,31 +135,21 @@
can_repeat = FALSE
banglet = TRUE
-/obj/item/weapon/grenade/flashbang/clusterbang/segment/New()//Segments should never exist except part of the clusterbang, since these immediately 'do their thing' and asplode
- ..()
-
+/obj/item/weapon/grenade/flashbang/clusterbang/segment/Initialize() //Segments should never exist except part of the clusterbang, since these immediately 'do their thing' and asplode
+ . = ..()
icon_state = "clusterbang_segment_active"
-
var/stepdist = rand(1,4)//How far to step
var/temploc = src.loc//Saves the current location to know where to step away from
walk_away(src,temploc,stepdist)//I must go, my people need me
-
- var/dettime = rand(15,60)
- spawn(dettime)
- detonate()
+ addtimer(CALLBACK(src, .proc/detonate), rand(15, 60))
/obj/item/weapon/grenade/flashbang/cluster
banglet = TRUE
-/obj/item/weapon/grenade/flashbang/cluster/New()//Same concept as the segments, so that all of the parts don't become reliant on the clusterbang
- ..()
-
+/obj/item/weapon/grenade/flashbang/cluster/Initialize() //Same concept as the segments, so that all of the parts don't become reliant on the clusterbang
+ . = ..()
icon_state = "flashbang_active"
-
var/stepdist = rand(1,3)
var/temploc = src.loc
walk_away(src,temploc,stepdist)
-
- var/dettime = rand(15,60)
- spawn(dettime)
- detonate()
\ No newline at end of file
+ addtimer(CALLBACK(src, .proc/detonate), rand(15, 60))
diff --git a/code/game/objects/items/weapons/grenades/smokebomb.dm b/code/game/objects/items/weapons/grenades/smokebomb.dm
index 75c0e6a299..c1c67b4d38 100644
--- a/code/game/objects/items/weapons/grenades/smokebomb.dm
+++ b/code/game/objects/items/weapons/grenades/smokebomb.dm
@@ -10,8 +10,8 @@
var/smoke_color
var/smoke_strength = 8
-/obj/item/weapon/grenade/smokebomb/New()
- ..()
+/obj/item/weapon/grenade/smokebomb/Initialize()
+ . = ..()
src.smoke = new /datum/effect/effect/system/smoke_spread/bad()
src.smoke.attach(src)
diff --git a/code/game/objects/items/weapons/id cards/cards.dm b/code/game/objects/items/weapons/id cards/cards.dm
index d72ae51f81..748fa2df08 100644
--- a/code/game/objects/items/weapons/id cards/cards.dm
+++ b/code/game/objects/items/weapons/id cards/cards.dm
@@ -27,7 +27,7 @@
drop_sound = 'sound/items/drop/card.ogg'
pickup_sound = 'sound/items/pickup/card.ogg'
-/obj/item/weapon/card/New()
+/obj/item/weapon/card/Initialize()
. = ..()
reset_icon()
diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm
index b06e92cc4a..8bc0370691 100644
--- a/code/game/objects/items/weapons/implants/implant.dm
+++ b/code/game/objects/items/weapons/implants/implant.dm
@@ -110,9 +110,9 @@ GLOBAL_LIST_BOILERPLATE(all_tracking_implants, /obj/item/weapon/implant/tracking
/obj/item/weapon/implant/tracking/weak //This is for the loadout
degrade_time = 2.5 MINUTES
-/obj/item/weapon/implant/tracking/New()
+/obj/item/weapon/implant/tracking/Initialize()
id = rand(1, 1000)
- ..()
+ . = ..()
/obj/item/weapon/implant/tracking/post_implant(var/mob/source)
START_PROCESSING(SSobj, src)
@@ -372,8 +372,8 @@ Can only be loaded while still in its original case.
the implant may become unstable and either pre-maturely inject the subject or simply break."}
return dat
-/obj/item/weapon/implant/chem/New()
- ..()
+/obj/item/weapon/implant/chem/Initialize()
+ . = ..()
var/datum/reagents/R = new/datum/reagents(50)
reagents = R
R.my_atom = src
diff --git a/code/game/objects/items/weapons/implants/implantcase.dm b/code/game/objects/items/weapons/implants/implantcase.dm
index 9162be15eb..8fd62943f2 100644
--- a/code/game/objects/items/weapons/implants/implantcase.dm
+++ b/code/game/objects/items/weapons/implants/implantcase.dm
@@ -67,245 +67,213 @@
desc = "A case containing a tracking implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/tracking/New()
+/obj/item/weapon/implantcase/tracking/Initialize()
src.imp = new /obj/item/weapon/implant/tracking( src )
- ..()
- return
-
+ . = ..()
/obj/item/weapon/implantcase/explosive
name = "glass case - 'explosive'"
desc = "A case containing an explosive implant."
icon_state = "implantcase-r"
-/obj/item/weapon/implantcase/explosive/New()
+/obj/item/weapon/implantcase/explosive/Initialize()
src.imp = new /obj/item/weapon/implant/explosive( src )
- ..()
- return
-
+ . = ..()
/obj/item/weapon/implantcase/chem
name = "glass case - 'chem'"
desc = "A case containing a chemical implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/chem/New()
+/obj/item/weapon/implantcase/chem/Initialize()
src.imp = new /obj/item/weapon/implant/chem( src )
- ..()
- return
-
+ . = ..()
/obj/item/weapon/implantcase/loyalty
name = "glass case - 'loyalty'"
desc = "A case containing a loyalty implant."
icon_state = "implantcase-r"
-/obj/item/weapon/implantcase/loyalty/New()
+/obj/item/weapon/implantcase/loyalty/Initialize()
src.imp = new /obj/item/weapon/implant/loyalty( src )
- ..()
- return
-
+ . = ..()
/obj/item/weapon/implantcase/death_alarm
name = "glass case - 'death alarm'"
desc = "A case containing a death alarm implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/death_alarm/New()
+/obj/item/weapon/implantcase/death_alarm/Initialize()
src.imp = new /obj/item/weapon/implant/death_alarm( src )
- ..()
- return
-
+ . = ..()
/obj/item/weapon/implantcase/freedom
name = "glass case - 'freedom'"
desc = "A case containing a freedom implant."
icon_state = "implantcase-r"
-/obj/item/weapon/implantcase/freedom/New()
+/obj/item/weapon/implantcase/freedom/Initialize()
src.imp = new /obj/item/weapon/implant/freedom( src )
- ..()
- return
-
+ . = ..()
/obj/item/weapon/implantcase/adrenalin
name = "glass case - 'adrenalin'"
desc = "A case containing an adrenalin implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/adrenalin/New()
+/obj/item/weapon/implantcase/adrenalin/Initialize()
src.imp = new /obj/item/weapon/implant/adrenalin( src )
- ..()
- return
-
+ . = ..()
/obj/item/weapon/implantcase/dexplosive
name = "glass case - 'explosive'"
desc = "A case containing an explosive."
icon_state = "implantcase-r"
-/obj/item/weapon/implantcase/dexplosive/New()
+/obj/item/weapon/implantcase/dexplosive/Initialize()
src.imp = new /obj/item/weapon/implant/dexplosive( src )
- ..()
- return
-
+ . = ..()
/obj/item/weapon/implantcase/health
name = "glass case - 'health'"
desc = "A case containing a health tracking implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/health/New()
+/obj/item/weapon/implantcase/health/Initialize()
src.imp = new /obj/item/weapon/implant/health( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/language
name = "glass case - 'GalCom'"
desc = "A case containing a GalCom language implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/language/New()
+/obj/item/weapon/implantcase/language/Initialize()
src.imp = new /obj/item/weapon/implant/language( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/language/eal
name = "glass case - 'EAL'"
desc = "A case containing an Encoded Audio Language implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/language/eal/New()
+/obj/item/weapon/implantcase/language/eal/Initialize()
src.imp = new /obj/item/weapon/implant/language/eal( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/shades
name = "glass case - 'Integrated Shades'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/shades/New()
+/obj/item/weapon/implantcase/shades/Initialize()
src.imp = new /obj/item/weapon/implant/organ( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/taser
name = "glass case - 'Taser'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/taser/New()
+/obj/item/weapon/implantcase/taser/Initialize()
src.imp = new /obj/item/weapon/implant/organ/limbaugment( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/laser
name = "glass case - 'Laser'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/laser/New()
+/obj/item/weapon/implantcase/laser/Initialize()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/laser( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/dart
name = "glass case - 'Dart'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/dart/New()
+/obj/item/weapon/implantcase/dart/Initialize()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/dart( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/toolkit
name = "glass case - 'Toolkit'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/toolkit/New()
+/obj/item/weapon/implantcase/toolkit/Initialize()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/upperarm( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/medkit
name = "glass case - 'Toolkit'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/medkit/New()
+/obj/item/weapon/implantcase/medkit/Initialize()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/upperarm/medkit( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/surge
name = "glass case - 'Muscle Overclocker'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/surge/New()
+/obj/item/weapon/implantcase/surge/Initialize()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/upperarm/surge( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/analyzer
name = "glass case - 'Scanner'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/analyzer/New()
+/obj/item/weapon/implantcase/analyzer/Initialize()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/wrist( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/sword
name = "glass case - 'Scanner'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/sword/New()
+/obj/item/weapon/implantcase/sword/Initialize()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/wrist/sword( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/sprinter
name = "glass case - 'Sprinter'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/sprinter/New()
+/obj/item/weapon/implantcase/sprinter/Initialize()
src.imp = new /obj/item/weapon/implant/organ/pelvic( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/armblade
name = "glass case - 'Armblade'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/armblade/New()
+/obj/item/weapon/implantcase/armblade/Initialize()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/upperarm/blade( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/handblade
name = "glass case - 'Handblade'"
desc = "A case containing a nanite fabricator implant."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/handblade/New()
+/obj/item/weapon/implantcase/handblade/Initialize()
src.imp = new /obj/item/weapon/implant/organ/limbaugment/wrist/blade( src )
- ..()
- return
+ . = ..()
/obj/item/weapon/implantcase/restrainingbolt
name = "glass case - 'Restraining Bolt'"
desc = "A case containing a restraining bolt."
icon_state = "implantcase-b"
-/obj/item/weapon/implantcase/restrainingbolt/New()
+/obj/item/weapon/implantcase/restrainingbolt/Initialize()
src.imp = new /obj/item/weapon/implant/restrainingbolt( src )
- ..()
- return
+ . = ..()
diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm
index 8538980b9c..1fe86b5274 100644
--- a/code/game/objects/items/weapons/implants/implantchair.dm
+++ b/code/game/objects/items/weapons/implants/implantchair.dm
@@ -19,8 +19,8 @@
var/mob/living/carbon/occupant = null
var/injecting = 0
-/obj/machinery/implantchair/New()
- ..()
+/obj/machinery/implantchair/Initialize()
+ . = ..()
add_implants()
diff --git a/code/game/objects/items/weapons/implants/implantcircuits.dm b/code/game/objects/items/weapons/implants/implantcircuits.dm
index ffe6547fcb..033ad2c4b1 100644
--- a/code/game/objects/items/weapons/implants/implantcircuits.dm
+++ b/code/game/objects/items/weapons/implants/implantcircuits.dm
@@ -8,8 +8,8 @@
/obj/item/weapon/implant/integrated_circuit/islegal()
return TRUE
-/obj/item/weapon/implant/integrated_circuit/New()
- ..()
+/obj/item/weapon/implant/integrated_circuit/Initialize()
+ . = ..()
IC = new(src)
IC.implant = src
diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm
index a7ad536ebb..b36b61d5b0 100644
--- a/code/game/objects/items/weapons/implants/implanter.dm
+++ b/code/game/objects/items/weapons/implants/implanter.dm
@@ -29,15 +29,12 @@
imp = null
update()
- return
-
/obj/item/weapon/implanter/proc/update()
if (src.imp)
src.icon_state = "implanter1"
else
src.icon_state = "implanter0"
src.icon_state += "_[active]"
- return
/obj/item/weapon/implanter/attack(mob/M as mob, mob/user as mob)
if (!istype(M, /mob/living/carbon))
@@ -72,39 +69,35 @@
/obj/item/weapon/implanter/loyalty
name = "implanter-loyalty"
-/obj/item/weapon/implanter/loyalty/New()
+/obj/item/weapon/implanter/loyalty/Initialize()
src.imp = new /obj/item/weapon/implant/loyalty( src )
- ..()
+ . = ..()
update()
- return
/obj/item/weapon/implanter/explosive
name = "implanter (E)"
-/obj/item/weapon/implanter/explosive/New()
+/obj/item/weapon/implanter/explosive/Initialize()
src.imp = new /obj/item/weapon/implant/explosive( src )
- ..()
+ . = ..()
update()
- return
/obj/item/weapon/implanter/adrenalin
name = "implanter-adrenalin"
-/obj/item/weapon/implanter/adrenalin/New()
+/obj/item/weapon/implanter/adrenalin/Initialize()
src.imp = new /obj/item/weapon/implant/adrenalin(src)
- ..()
+ . = ..()
update()
- return
/obj/item/weapon/implanter/compressed
name = "implanter (C)"
icon_state = "cimplanter1"
-/obj/item/weapon/implanter/compressed/New()
+/obj/item/weapon/implanter/compressed/Initialize()
imp = new /obj/item/weapon/implant/compressed( src )
- ..()
+ . = ..()
update()
- return
/obj/item/weapon/implanter/compressed/update()
if (imp)
@@ -115,7 +108,6 @@
icon_state = "cimplanter2"
else
icon_state = "cimplanter0"
- return
/obj/item/weapon/implanter/compressed/attack(mob/M as mob, mob/user as mob)
var/obj/item/weapon/implant/compressed/c = imp
@@ -153,8 +145,7 @@
/obj/item/weapon/implanter/restrainingbolt
name = "implanter (bolt)"
-/obj/item/weapon/implanter/restrainingbolt/New()
+/obj/item/weapon/implanter/restrainingbolt/Initialize()
src.imp = new /obj/item/weapon/implant/restrainingbolt( src )
- ..()
+ . = ..()
update()
- return
diff --git a/code/game/objects/items/weapons/implants/implantfreedom.dm b/code/game/objects/items/weapons/implants/implantfreedom.dm
index 6e4f5f7a16..94d1c2c94d 100644
--- a/code/game/objects/items/weapons/implants/implantfreedom.dm
+++ b/code/game/objects/items/weapons/implants/implantfreedom.dm
@@ -8,12 +8,10 @@
var/uses = 1.0
-/obj/item/weapon/implant/freedom/New()
+/obj/item/weapon/implant/freedom/Initialize()
src.activation_emote = pick("blink", "blink_r", "eyebrow", "chuckle", "twitch", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
src.uses = rand(1, 5)
- ..()
- return
-
+ . = ..()
/obj/item/weapon/implant/freedom/trigger(emote, mob/living/carbon/source as mob)
if (src.uses < 1)
diff --git a/code/game/objects/items/weapons/implants/implantuplink.dm b/code/game/objects/items/weapons/implants/implantuplink.dm
index 873a09149c..7710774c28 100644
--- a/code/game/objects/items/weapons/implants/implantuplink.dm
+++ b/code/game/objects/items/weapons/implants/implantuplink.dm
@@ -3,13 +3,12 @@
desc = "Summon things."
var/activation_emote = "chuckle"
-/obj/item/weapon/implant/uplink/New()
+/obj/item/weapon/implant/uplink/Initialize()
activation_emote = pick("blink", "blink_r", "eyebrow", "chuckle", "twitch", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
hidden_uplink = new(src)
//hidden_uplink.uses = 5
//Code currently uses a mind var for telecrystals, balancing is currently an issue. Will investigate.
- ..()
- return
+ . = ..()
/obj/item/weapon/implant/uplink/post_implant(mob/source)
listening_objects |= src
@@ -20,4 +19,3 @@
/obj/item/weapon/implant/uplink/trigger(emote, mob/source as mob)
if(hidden_uplink && usr == source) // Let's not have another people activate our uplink
hidden_uplink.check_trigger(source, emote, activation_emote)
- return
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm
index 07a868d432..f4bfdc3b90 100644
--- a/code/game/objects/items/weapons/manuals.dm
+++ b/code/game/objects/items/weapons/manuals.dm
@@ -13,8 +13,8 @@
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
title = "Station Repairs and Construction"
-/obj/item/weapon/book/manual/engineering_construction/New()
- ..()
+/obj/item/weapon/book/manual/engineering_construction/Initialize()
+ . = ..()
dat = {"
@@ -35,8 +35,8 @@
author = "Engineering Encyclopedia" // Who wrote the thing, can be changed by pen or PC. It is not automatically assigned
title = "Particle Accelerator User's Guide"
-/obj/item/weapon/book/manual/engineering_particle_accelerator/New()
- ..()
+/obj/item/weapon/book/manual/engineering_particle_accelerator/Initialize()
+ . = ..()
dat = {"