From c7c9613b071838c0e68761a87cd7f93338d1b44d Mon Sep 17 00:00:00 2001 From: PJB3005 Date: Sat, 26 Sep 2015 16:08:22 +0200 Subject: [PATCH] Unifies pooling. --- .../binary_devices/binary_atmos_base.dm | 12 +- .../components/binary_devices/circulator.dm | 4 +- .../components/binary_devices/dp_vent_pump.dm | 2 +- .../components/binary_devices/passive_gate.dm | 2 +- .../components/binary_devices/pump.dm | 2 +- .../components/binary_devices/valve.dm | 4 +- .../components/binary_devices/volume_pump.dm | 2 +- .../components/trinary_devices/t_valve.dm | 8 +- .../trinary_devices/trinary_base.dm | 18 +-- .../components/unary/outlet_injector.dm | 2 +- .../components/unary/portables_connector.dm | 2 +- .../components/unary/unary_base.dm | 6 +- .../components/unary/vent_pump.dm | 2 +- .../components/unary/vent_scrubber.dm | 4 +- code/ATMOSPHERICS/datum_pipe_network.dm | 4 +- code/ATMOSPHERICS/datum_pipeline.dm | 4 +- code/ATMOSPHERICS/pipes.dm | 36 ++--- code/__HELPERS/datumpool.dm | 95 ++++++------- code/__HELPERS/experimental.dm | 126 ------------------ code/controllers/garbage.dm | 2 +- code/game/atoms.dm | 4 +- code/game/communications.dm | 4 +- code/game/machinery/airlock_control.dm | 10 +- code/game/machinery/alarm.dm | 4 +- code/game/machinery/atmo_control.dm | 14 +- code/game/machinery/atmoalter/meter.dm | 2 +- code/game/machinery/bots/cleanbot.dm | 2 +- code/game/machinery/bots/ed209bot.dm | 2 +- code/game/machinery/bots/floorbot.dm | 2 +- code/game/machinery/bots/mulebot.dm | 2 +- code/game/machinery/bots/secbot.dm | 2 +- .../game/machinery/computer/communications.dm | 2 +- code/game/machinery/computer/prisonshuttle.dm | 2 +- .../embedded_controller/airlock_program.dm | 6 +- code/game/machinery/magnet.dm | 4 +- code/game/machinery/navbeacon.dm | 2 +- code/game/machinery/telecomms/broadcaster.dm | 2 +- .../machinery/telecomms/telecomunications.dm | 2 +- code/game/objects/items/devices/PDA/cart.dm | 2 +- code/game/objects/items/devices/PDA/radio.dm | 4 +- code/game/objects/items/devices/deskbell.dm | 2 +- .../game/objects/items/devices/radio/radio.dm | 4 +- code/game/objects/items/stacks/cable.dm | 2 +- code/game/supplyshuttle.dm | 2 +- code/modules/assembly/signaler.dm | 2 +- code/modules/atmos_automation/console.dm | 2 +- code/modules/mining/machine_processing.dm | 4 +- code/modules/mining/machine_stacking.dm | 4 +- code/modules/mining/money_bag.dm | 2 +- code/modules/power/cable.dm | 12 +- code/modules/power/powernet.dm | 10 +- code/modules/recycling/conveyor2.dm | 2 +- code/modules/research/fabricators.dm | 2 +- code/modules/research/rdmachines.dm | 2 +- code/modules/scripting/IDE.dm | 2 +- .../scripting/Implementations/Telecomms.dm | 4 +- code/modules/supermatter/supermatter.dm | 2 +- vgstation13.dme | 1 - 58 files changed, 175 insertions(+), 297 deletions(-) delete mode 100644 code/__HELPERS/experimental.dm diff --git a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm index db13bf2328c..352e0eb2265 100644 --- a/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm +++ b/code/ATMOSPHERICS/components/binary_devices/binary_atmos_base.dm @@ -74,11 +74,11 @@ if(node1) node1.disconnect(src) if(network1) - returnToDPool(network1) + returnToPool(network1) if(node2) node2.disconnect(src) if(network2) - returnToDPool(network2) + returnToPool(network2) node1 = null node2 = null @@ -95,12 +95,12 @@ /obj/machinery/atmospherics/binary/build_network() if(!network1 && node1) - network1 = getFromDPool(/datum/pipe_network) + network1 = getFromPool(/datum/pipe_network) network1.normal_members += src network1.build_network(node1, src) if(!network2 && node2) - network2 = getFromDPool(/datum/pipe_network) + network2 = getFromPool(/datum/pipe_network) network2.normal_members += src network2.build_network(node2, src) @@ -137,12 +137,12 @@ /obj/machinery/atmospherics/binary/disconnect(obj/machinery/atmospherics/reference) if(reference==node1) if(network1) - returnToDPool(network1) + returnToPool(network1) node1 = null else if(reference==node2) if(network2) - returnToDPool(network2) + returnToPool(network2) node2 = null return null diff --git a/code/ATMOSPHERICS/components/binary_devices/circulator.dm b/code/ATMOSPHERICS/components/binary_devices/circulator.dm index 3fa1d539c06..3fd70e55de6 100644 --- a/code/ATMOSPHERICS/components/binary_devices/circulator.dm +++ b/code/ATMOSPHERICS/components/binary_devices/circulator.dm @@ -129,11 +129,11 @@ if(node1) node1.disconnect(src) if(network1) - returnToDPool(network1) + returnToPool(network1) if(node2) node2.disconnect(src) if(network2) - returnToDPool(network2) + returnToPool(network2) node1 = null node2 = null diff --git a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm index 0d9701c1b35..866f3034c29 100644 --- a/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/dp_vent_pump.dm @@ -131,7 +131,7 @@ if(!radio_connection) return 0 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm index 8f18b80d2f8..172e415dc62 100644 --- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm +++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm @@ -70,7 +70,7 @@ if(!radio_connection) return 0 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 5dcf7505241..fcb42e26a48 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -85,7 +85,7 @@ Thus, the two variables affect pump operation are set in New(): if(!radio_connection) return 0 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src diff --git a/code/ATMOSPHERICS/components/binary_devices/valve.dm b/code/ATMOSPHERICS/components/binary_devices/valve.dm index 5fd3268438f..ab66bba6cb7 100644 --- a/code/ATMOSPHERICS/components/binary_devices/valve.dm +++ b/code/ATMOSPHERICS/components/binary_devices/valve.dm @@ -64,10 +64,10 @@ if(network1) if(network1) - returnToDPool(network1) + returnToPool(network1) if(network2) if(network1) - returnToDPool(network2) + returnToPool(network2) build_network() diff --git a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm index 14b538b0c4e..921f91c1faf 100644 --- a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm @@ -76,7 +76,7 @@ Thus, the two variables affect pump operation are set in New(): if(!radio_connection) return 0 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src diff --git a/code/ATMOSPHERICS/components/trinary_devices/t_valve.dm b/code/ATMOSPHERICS/components/trinary_devices/t_valve.dm index 36b2fdf389b..3c9794ec7d8 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/t_valve.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/t_valve.dm @@ -77,9 +77,9 @@ update_icon() if(network1) - returnToDPool(network1) + returnToPool(network1) if(network3) - returnToDPool(network3) + returnToPool(network3) build_network() if(network1&&network2) @@ -104,9 +104,9 @@ update_icon() if(network1) - returnToDPool(network1) + returnToPool(network1) if(network2) - returnToDPool(network2) + returnToPool(network2) build_network() if(network1&&network3) diff --git a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm index d651ff0da28..5ecb83e8297 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/trinary_base.dm @@ -91,15 +91,15 @@ obj/machinery/atmospherics/trinary/Destroy() if(node1) node1.disconnect(src) if(network1) - returnToDPool(network1) + returnToPool(network1) if(node2) node2.disconnect(src) if(network2) - returnToDPool(network2) + returnToPool(network2) if(node3) node3.disconnect(src) if(network3) - returnToDPool(network3) + returnToPool(network3) node1 = null node2 = null @@ -129,17 +129,17 @@ obj/machinery/atmospherics/trinary/initialize() obj/machinery/atmospherics/trinary/build_network() if(!network1 && node1) - network1 = getFromDPool(/datum/pipe_network) + network1 = getFromPool(/datum/pipe_network) network1.normal_members += src network1.build_network(node1, src) if(!network2 && node2) - network2 = getFromDPool(/datum/pipe_network) + network2 = getFromPool(/datum/pipe_network) network2.normal_members += src network2.build_network(node2, src) if(!network3 && node3) - network3 = getFromDPool(/datum/pipe_network) + network3 = getFromPool(/datum/pipe_network) network3.normal_members += src network3.build_network(node3, src) @@ -183,17 +183,17 @@ obj/machinery/atmospherics/trinary/return_network_air(datum/pipe_network/referen obj/machinery/atmospherics/trinary/disconnect(obj/machinery/atmospherics/reference) if(reference==node1) if(network1) - returnToDPool(network1) + returnToPool(network1) node1 = null else if(reference==node2) if(network2) - returnToDPool(network2) + returnToPool(network2) node2 = null else if(reference==node3) if(network3) - returnToDPool(network3) + returnToPool(network3) node3 = null return null diff --git a/code/ATMOSPHERICS/components/unary/outlet_injector.dm b/code/ATMOSPHERICS/components/unary/outlet_injector.dm index af06288da55..e0e770adf3c 100644 --- a/code/ATMOSPHERICS/components/unary/outlet_injector.dm +++ b/code/ATMOSPHERICS/components/unary/outlet_injector.dm @@ -93,7 +93,7 @@ if(!radio_connection) return 0 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src diff --git a/code/ATMOSPHERICS/components/unary/portables_connector.dm b/code/ATMOSPHERICS/components/unary/portables_connector.dm index e476222cb1c..e6ccef93856 100644 --- a/code/ATMOSPHERICS/components/unary/portables_connector.dm +++ b/code/ATMOSPHERICS/components/unary/portables_connector.dm @@ -45,7 +45,7 @@ if(node) node.disconnect(src) if(network) - returnToDPool(network) + returnToPool(network) node = null diff --git a/code/ATMOSPHERICS/components/unary/unary_base.dm b/code/ATMOSPHERICS/components/unary/unary_base.dm index 5db5c4527b5..5afb9c975a4 100644 --- a/code/ATMOSPHERICS/components/unary/unary_base.dm +++ b/code/ATMOSPHERICS/components/unary/unary_base.dm @@ -46,7 +46,7 @@ if(node) node.disconnect(src) if(network) - returnToDPool(network) + returnToPool(network) node = null ..() @@ -62,7 +62,7 @@ /obj/machinery/atmospherics/unary/build_network() if(!network && node) - network = getFromDPool(/datum/pipe_network) + network = getFromPool(/datum/pipe_network) network.normal_members += src network.build_network(node, src) @@ -87,7 +87,7 @@ /obj/machinery/atmospherics/unary/disconnect(obj/machinery/atmospherics/reference) if(reference==node) if(network) - returnToDPool(network) + returnToPool(network) node = null return null diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 3e60a1fe500..5f97aa2fb0a 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -171,7 +171,7 @@ if(!radio_connection) return 0 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index 66a943b5a90..a920780cd8d 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -34,7 +34,7 @@ icon_state = "on" /obj/machinery/atmospherics/unary/vent_scrubber/on/burn_chamber - name = "\improper Burn Chamber Scrubber" + name = "\improper Burn Chamber Scrubber" frequency = 1449 id_tag = "inc_out" @@ -94,7 +94,7 @@ if(!radio_connection) return 0 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src signal.data = list( diff --git a/code/ATMOSPHERICS/datum_pipe_network.dm b/code/ATMOSPHERICS/datum_pipe_network.dm index bb86ab02a1a..bdcf4d37cc9 100644 --- a/code/ATMOSPHERICS/datum_pipe_network.dm +++ b/code/ATMOSPHERICS/datum_pipe_network.dm @@ -51,7 +51,7 @@ //Notes: Assuming that members will add themselves to appropriate roster in network_expandz() if(!start_normal) - returnToDPool(src) + returnToPool(src) return start_normal.network_expand(src, reference) @@ -61,7 +61,7 @@ if((normal_members.len>0)||(line_members.len>0)) pipe_networks |= src else - returnToDPool(src) + returnToPool(src) return return 1 diff --git a/code/ATMOSPHERICS/datum_pipeline.dm b/code/ATMOSPHERICS/datum_pipeline.dm index 3da1ab3f362..168cbb1aa5f 100644 --- a/code/ATMOSPHERICS/datum_pipeline.dm +++ b/code/ATMOSPHERICS/datum_pipeline.dm @@ -13,7 +13,7 @@ /datum/pipeline/Destroy() if(network) //For the pipenet rebuild - returnToDPool(network) + returnToPool(network) if(air && air.volume) //For the pipeline rebuild next tick temporarily_store_air() del(air) @@ -132,7 +132,7 @@ /datum/pipeline/proc/return_network(obj/machinery/atmospherics/reference) //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/datum/pipeline/proc/return_network() called tick#: [world.time]") if(!network) - network = getFromDPool(/datum/pipe_network) + network = getFromPool(/datum/pipe_network) network.build_network(src, null) //technically passing these parameters should not be allowed //however pipe_network.build_network(..) and pipeline.network_extend(...) diff --git a/code/ATMOSPHERICS/pipes.dm b/code/ATMOSPHERICS/pipes.dm index 08d00c93a70..70b04a0d45a 100644 --- a/code/ATMOSPHERICS/pipes.dm +++ b/code/ATMOSPHERICS/pipes.dm @@ -61,35 +61,35 @@ /obj/machinery/atmospherics/pipe/return_air() if(!parent) - parent = getFromDPool(/datum/pipeline) + parent = getFromPool(/datum/pipeline) parent.build_pipeline(src) return parent.air /obj/machinery/atmospherics/pipe/build_network() if(!parent) - parent = getFromDPool(/datum/pipeline) + parent = getFromPool(/datum/pipeline) parent.build_pipeline(src) return parent.return_network() /obj/machinery/atmospherics/pipe/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) if(!parent) - parent = getFromDPool(/datum/pipeline) + parent = getFromPool(/datum/pipeline) parent.build_pipeline(src) return parent.network_expand(new_network, reference) /obj/machinery/atmospherics/pipe/return_network(obj/machinery/atmospherics/reference) if(!parent) - parent = getFromDPool(/datum/pipeline) + parent = getFromPool(/datum/pipeline) parent.build_pipeline(src) return parent.return_network(reference) /obj/machinery/atmospherics/pipe/Destroy() if(parent) - returnToDPool(parent) + returnToPool(parent) for(var/obj/machinery/meter/M in src.loc) if(M.target == src) new /obj/item/pipe_meter(src.loc) @@ -341,12 +341,12 @@ /obj/machinery/atmospherics/pipe/simple/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) - returnToDPool(parent) + returnToPool(parent) node1 = null if(reference == node2) if(istype(node2, /obj/machinery/atmospherics/pipe)) - returnToDPool(parent) + returnToPool(parent) node2 = null update_icon() @@ -545,17 +545,17 @@ /obj/machinery/atmospherics/pipe/manifold/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) - returnToDPool(parent) + returnToPool(parent) node1 = null if(reference == node2) if(istype(node2, /obj/machinery/atmospherics/pipe)) - returnToDPool(parent) + returnToPool(parent) node2 = null if(reference == node3) if(istype(node3, /obj/machinery/atmospherics/pipe)) - returnToDPool(parent) + returnToPool(parent) node3 = null update_icon() @@ -764,22 +764,22 @@ /obj/machinery/atmospherics/pipe/manifold4w/disconnect(obj/machinery/atmospherics/reference) if(reference == node1) if(istype(node1, /obj/machinery/atmospherics/pipe)) - returnToDPool(parent) + returnToPool(parent) node1 = null if(reference == node2) if(istype(node2, /obj/machinery/atmospherics/pipe)) - returnToDPool(parent) + returnToPool(parent) node2 = null if(reference == node3) if(istype(node3, /obj/machinery/atmospherics/pipe)) - returnToDPool(parent) + returnToPool(parent) node3 = null if(reference == node4) if(istype(node4, /obj/machinery/atmospherics/pipe)) - returnToDPool(parent) + returnToPool(parent) node4 = null update_icon() @@ -983,14 +983,14 @@ /obj/machinery/atmospherics/pipe/layer_manifold/disconnect(obj/machinery/atmospherics/reference) if(reference == other_node) if(istype(other_node, /obj/machinery/atmospherics/pipe)) - returnToDPool(parent) + returnToPool(parent) other_node = null else for(var/pipelayer = PIPING_LAYER_MIN; pipelayer <= PIPING_LAYER_MAX; pipelayer += PIPING_LAYER_INCREMENT) if(reference == layer_nodes[pipelayer]) if(istype(layer_nodes[pipelayer], /obj/machinery/atmospherics/pipe)) - returnToDPool(parent) + returnToPool(parent) layer_nodes[pipelayer] = null update_icon() @@ -1169,11 +1169,11 @@ /obj/machinery/atmospherics/pipe/layer_adapter/disconnect(var/obj/machinery/atmospherics/reference) if(reference == mid_node) if(istype(mid_node, /obj/machinery/atmospherics/pipe)) - returnToDPool(parent) + returnToPool(parent) mid_node = null if(reference == layer_node) if(istype(layer_node, /obj/machinery/atmospherics/pipe)) - returnToDPool(parent) + returnToPool(parent) layer_node = null update_icon() diff --git a/code/__HELPERS/datumpool.dm b/code/__HELPERS/datumpool.dm index 66253644769..5919d7b4e57 100644 --- a/code/__HELPERS/datumpool.dm +++ b/code/__HELPERS/datumpool.dm @@ -4,81 +4,89 @@ //#define DEBUG_DATUM_POOL -#define MAINTAINING_DATUM_POOL_COUNT 500 -var/global/list/masterdatumPool = new -var/global/list/pooledvariables = new +#define MAINTAINING_OBJECT_POOL_COUNT 500 + +// Read-only or compile-time vars and special exceptions. +/var/list/exclude = list("inhand_states", "loc", "locs", "parent_type", "vars", "verbs", "type", "x", "y", "z","group", "animate_movement") + +/var/global/list/masterdatumPool = new +/var/global/list/pooledvariables = new /* * @args : datum type, normal arguments * Example call: getFromPool(/datum/pipeline, args) */ -/proc/getFromDPool() - //writepanic("[__FILE__].[__LINE__] (no type)([usr ? usr.ckey : ""]) \\/proc/getFromDPool() called tick#: [world.time]") - var/A = args[1] - var/list/B = list() - B += (args - A) - if(length(masterdatumPool["[A]"]) <= 0) +/proc/getFromPool(var/type, ...) + var/list/B = (args - type) + + if(length(masterdatumPool[type]) <= 0) + #ifdef DEBUG_DATUM_POOL if(ticker) - world << text("DEBUG_DATUM_POOL: new proc has been called ([] | []).", A, list2params(B)) + world << text("DEBUG_DATUM_POOL: new proc has been called ([] | []).", type, list2params(B)) #endif - //so the GC knows we're pooling this type. - if(isnull(masterdatumPool["[A]"])) - masterdatumPool["[A]"] = list(new A) - if(B && B.len) - return new A(arglist(B)) - else - return new A() - var/datum/O = masterdatumPool["[A]"][1] - masterdatumPool["[A]"] -= O + //so the GC knows we're pooling this type. + if(isnull(masterdatumPool[type])) + masterdatumPool[type] = list(new type) + + if(B && B.len) + return new type(arglist(B)) + else + return new type() + + var/datum/O = masterdatumPool[type][1] + masterdatumPool[type] -= O #ifdef DEBUG_DATUM_POOL - world << text("DEBUG_DATUM_POOL: getFromPool([]) [] left arglist([]).", A, length(masterdatumPool[A]), list2params(B)) + world << text("DEBUG_DATUM_POOL: getFromPool([]) [] left arglist([]).", type, length(masterdatumPool[type]), list2params(B)) #endif + if(!O || !istype(O)) - O = new A(arglist(B)) + O = new type(arglist(B)) else if(B && B.len) O.New(arglist(B)) else O.New() + O.disposed = null //Set to process once again return O /* * @args - * A, datum instance + * D, datum instance * - * @return - * -1, if A is not a movable atom - * - * Example call: returnToDPool(src) + * Example call: returnToPool(src) */ -/proc/returnToDPool(const/datum/D) - //writepanic("[__FILE__].[__LINE__] (no type)([usr ? usr.ckey : ""]) \\/proc/returnToDPool() called tick#: [world.time]") - if(!D) - return - if(length(masterdatumPool["[D.type]"]) > MAINTAINING_DATUM_POOL_COUNT) + +/proc/returnToPool(const/datum/D) + ASSERT(D) + + if(istype(D, /atom/movable) && length(masterdatumPool[D.type]) > MAINTAINING_OBJECT_POOL_COUNT) #ifdef DEBUG_DATUM_POOL - world << text("DEBUG_DATUM_POOL: returnToPool([]) exceeds [] discarding...", D.type, MAINTAINING_DATUM_POOL_COUNT) + world << text("DEBUG_DATUM_POOL: returnToPool([]) exceeds [] discarding...", D.type, MAINTAINING_OBJECT_POOL_COUNT) #endif - var/list/pool = masterdatumPool["[D.type]"] - pool.Cut(1,2) //LET IT GO. LET IT GOOOOOO. AKA REMOVE THE OLDEST ENTRY + + qdel(D) return - if(isnull(masterdatumPool["[D.type]"])) - masterdatumPool["[D.type]"] = list() + + if(isnull(masterdatumPool[D.type])) + masterdatumPool[D.type] = list() + D.Destroy() D.resetVariables() D.disposed = 1 //Set to stop processing while pooled - #ifdef DEBUG_DATUM_POOL - if(D in masterdatumPool["[D.type]"]) - world << text("returnToPool has been called twice for the same datum of type [] time to panic.", D.type) - #endif - masterdatumPool["[D.type]"] |= D #ifdef DEBUG_DATUM_POOL - world << text("DEBUG_DATUM_POOL: returnToPool([]) [] left.", D.type, length(masterdatumPool["[D.type]"])) + if(D in masterdatumPool[D.type]) + world << text("returnToPool has been called twice for the same datum of type [] time to panic.", D.type) + #endif + + masterdatumPool[D.type] |= D + + #ifdef DEBUG_DATUM_POOL + world << text("DEBUG_DATUM_POOL: returnToPool([]) [] left.", D.type, length(masterdatumPool[D.type])) #endif #undef MAINTAINING_DATUM_POOL_COUNT @@ -88,7 +96,6 @@ var/global/list/pooledvariables = new #endif /datum/proc/createVariables() - //writepanic("[__FILE__].[__LINE__] (no type)([usr ? usr.ckey : ""]) \\/datum/proc/createVariables() called tick#: [world.time]") pooledvariables[type] = new/list() var/list/exclude = global.exclude + args @@ -102,7 +109,6 @@ var/global/list/pooledvariables = new //SEE http://www.byond.com/forum/?post=76850 AS A REFERENCE ON THIS /datum/proc/resetVariables() - //writepanic("[__FILE__].[__LINE__] (no type)([usr ? usr.ckey : ""]) \\/datum/proc/resetVariables() called tick#: [world.time]") if(!pooledvariables[type]) createVariables(args) @@ -110,7 +116,6 @@ var/global/list/pooledvariables = new vars[key] = pooledvariables[type][key] /proc/isInTypes(atom/Object, types) - //writepanic("[__FILE__].[__LINE__] (no type)([usr ? usr.ckey : ""]) \\/proc/isInTypes() called tick#: [world.time]") if(!Object) return 0 var/prototype = Object.type diff --git a/code/__HELPERS/experimental.dm b/code/__HELPERS/experimental.dm deleted file mode 100644 index 912b17af766..00000000000 --- a/code/__HELPERS/experimental.dm +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Experimental procs by ESwordTheCat! - */ - -/** - * Object pooling. - * - * If this file is named experimental, - * well treat this implementation as experimental experimental (redundancy intended). - * - * WARNING, only supports /atom/movable (/mob and /obj) - */ - -// Uncomment to show debug messages. -//#define DEBUG_OBJECT_POOL - -#define MAINTAINING_OBJECT_POOL_COUNT 500 - -var/global/list/masterPool = new - -// Read-only or compile-time vars and special exceptions. -var/list/exclude = list("inhand_states", "loc", "locs", "parent_type", "vars", "verbs", "type", "x", "y", "z","group", "animate_movement") - -/* - * @args - * A, object type - * B, location to spawn - * - * Example call: getFromPool(/obj/item/weapon/shard, loc) - */ -/proc/getFromPool() - //writepanic("[__FILE__].[__LINE__] (no type)([usr ? usr.ckey : ""]) \\/proc/getFromPool() called tick#: [world.time]") - var/A = args[1] - var/list/B = list() - B += (args - A) - if(length(masterPool["[A]"]) <= 0) - #ifdef DEBUG_OBJECT_POOL - if(ticker) - world << text("DEBUG_OBJECT_POOL: new proc has been called ([] | []).", A, list2params(B)) - #endif - //so the GC knows we're pooling this type. - if(isnull(masterPool["[A]"])) - masterPool["[A]"] = list(new A) - if(B && B.len) - return new A(arglist(B)) - else - return new A() - - var/atom/movable/O = masterPool["[A]"][1] - masterPool["[A]"] -= O - - #ifdef DEBUG_OBJECT_POOL - world << text("DEBUG_OBJECT_POOL: getFromPool([]) [] left arglist([]).", A, length(masterPool[A]), list2params(B)) - #endif - if(!O || !istype(O)) - O = new A(arglist(B)) - else - if(length(B)) - O.loc = B[1] - O.New(arglist(B)) - return O - -/* - * @args - * A, object instance - * - * @return - * -1, if A is not a movable atom - * - * Example call: returnToPool(src) - */ -/proc/returnToPool(const/atom/movable/AM) - //writepanic("[__FILE__].[__LINE__] (no type)([usr ? usr.ckey : ""]) \\/proc/returnToPool() called tick#: [world.time]") - ASSERT(AM) - if(istype(AM.loc,/mob/living)) - var/mob/living/L = AM.loc - L.u_equip(AM,1) - if(length(masterPool["[AM.type]"]) > MAINTAINING_OBJECT_POOL_COUNT) - #ifdef DEBUG_OBJECT_POOL - world << text("DEBUG_OBJECT_POOL: returnToPool([]) exceeds [] discarding...", AM.type, MAINTAINING_OBJECT_POOL_COUNT) - #endif - - qdel(AM, 1) - return - - if(isnull(masterPool["[AM.type]"])) - masterPool["[AM.type]"] = list() - AM.Destroy() - AM.resetVariables() - masterPool["[AM.type]"] |= AM - - #ifdef DEBUG_OBJECT_POOL - world << text("DEBUG_OBJECT_POOL: returnToPool([]) [] left.", AM.type, length(masterPool["[AM.type]"])) - #endif - -#undef MAINTAINING_OBJECT_POOL_COUNT - -#ifdef DEBUG_OBJECT_POOL -#undef DEBUG_OBJECT_POOL -#endif - -/* - * if you have a variable that needed to be preserve, override this and call .. - * - * example - * - * /obj/item/resetVariables() - * ..("var1", "var2", "var3") - * - * however, if the object has a child type an it has overridden resetVariables() - * this should be - * - * /obj/item/resetVariables() - * ..("var1", "var2", "var3", args) - * - * /obj/item/weapon/resetVariables() - * ..("var4") - */ - -//RETURNS NULL WHEN INITIALIZED AS A LIST() AND POSSIBLY OTHER DISCRIMINATORS -//IF YOU ARE USING SPECIAL VARIABLES SUCH A LIST() INITIALIZE THEM USING RESET VARIABLES -//SEE http://www.byond.com/forum/?post=76850 AS A REFERENCE ON THIS - -/atom/movable/resetVariables() - loc = null - ..("loc",args) \ No newline at end of file diff --git a/code/controllers/garbage.dm b/code/controllers/garbage.dm index a4d76090c84..6ec37c01693 100644 --- a/code/controllers/garbage.dm +++ b/code/controllers/garbage.dm @@ -111,7 +111,7 @@ var/soft_dels = 0 return //We are object pooling this. - if(("[D.type]" in masterPool) && !ignore_pooling) + if(("[D.type]" in masterdatumPool) && !ignore_pooling) returnToPool(D) return diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 97213b84592..aa217a3d079 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -142,7 +142,7 @@ var/global/list/ghdel_profiling = list() reagents = null if(materials) - returnToDPool(materials) + returnToPool(materials) // Idea by ChuckTheSheep to make the object even more unreferencable. invisibility = 101 @@ -164,7 +164,7 @@ var/global/list/ghdel_profiling = list() on_moved = new("owner"=src) . = ..() if(starting_materials) - materials = getFromDPool(/datum/materials, src) + materials = getFromPool(/datum/materials, src) for(var/matID in starting_materials) materials.addAmount(matID, starting_materials[matID]) AddToProfiler() diff --git a/code/game/communications.dm b/code/game/communications.dm index 8515c4d663a..d57d1ef8eb2 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -239,7 +239,7 @@ var/global/datum/controller/radio/radio_controller if(range) start_point = get_turf(source) if(!start_point) - returnToDPool(signal) + returnToPool(signal) return 0 if (filter) //here goes some copypasta. It is for optimisation. -rastaf0 @@ -287,7 +287,7 @@ var/global/datum/controller/radio/radio_controller //log_admin("DEBUG: post_signal(source=[source] ([source.x], [source.y], [source.z]),filter=[filter]) frequency=[frequency], N_f=[N_f], N_nf=[N_nf]") - returnToDPool(signal) + returnToPool(signal) /datum/radio_frequency/proc/add_listener(const/obj/device, var/filter) //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/datum/radio_frequency/proc/add_listener() called tick#: [world.time]") diff --git a/code/game/machinery/airlock_control.dm b/code/game/machinery/airlock_control.dm index 9cc787bde71..5c097707634 100644 --- a/code/game/machinery/airlock_control.dm +++ b/code/game/machinery/airlock_control.dm @@ -60,7 +60,7 @@ obj/machinery/door/airlock/receive_signal(datum/signal/signal) obj/machinery/door/airlock/proc/send_status() //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/obj/machinery/door/airlock/proc/send_status() called tick#: [world.time]") if(radio_connection) - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.data["tag"] = id_tag signal.data["timestamp"] = world.time @@ -86,7 +86,7 @@ obj/machinery/door/airlock/Bumped(atom/AM) if(istype(AM, /obj/mecha)) var/obj/mecha/mecha = AM if(density && radio_connection && mecha.occupant && (src.allowed(mecha.occupant) || src.check_access_list(mecha.operation_req_access))) - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.data["tag"] = id_tag signal.data["timestamp"] = world.time @@ -156,7 +156,7 @@ obj/machinery/airlock_sensor/update_icon() obj/machinery/airlock_sensor/attack_hand(mob/user) if(..()) return - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.data["tag"] = master_tag signal.data["command"] = command @@ -166,7 +166,7 @@ obj/machinery/airlock_sensor/attack_hand(mob/user) obj/machinery/airlock_sensor/process() if(on) - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.data["tag"] = id_tag signal.data["timestamp"] = world.time @@ -315,7 +315,7 @@ obj/machinery/access_button/attack_hand(mob/user) user << "Access Denied" else if(radio_connection) - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.data["tag"] = master_tag signal.data["command"] = command diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 8cd728912be..3490d3096dc 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -400,7 +400,7 @@ if(!radio_connection) return 0 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src @@ -463,7 +463,7 @@ if(!frequency) return - var/datum/signal/alert_signal = getFromDPool(/datum/signal) + var/datum/signal/alert_signal = getFromPool(/datum/signal) alert_signal.source = src alert_signal.transmission_method = 1 alert_signal.data["zone"] = areaMaster.name diff --git a/code/game/machinery/atmo_control.dm b/code/game/machinery/atmo_control.dm index 976f98233e7..2d2953e134a 100644 --- a/code/game/machinery/atmo_control.dm +++ b/code/game/machinery/atmo_control.dm @@ -60,7 +60,7 @@ /obj/machinery/air_sensor/process() if(on) - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.data["tag"] = id_tag signal.data["timestamp"] = world.time @@ -494,7 +494,7 @@ font-weight:bold; /obj/machinery/computer/general_air_control/large_tank_control/proc/send_signal(var/list/data) //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/obj/machinery/computer/general_air_control/large_tank_control/proc/send_signal() called tick#: [world.time]") - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src signal.data=data @@ -516,7 +516,7 @@ font-weight:bold; if(!radio_connection) return 0 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src if(href_list["in_refresh_status"]) @@ -582,7 +582,7 @@ font-weight:bold; if(data["temperature"] <= on_temperature) injecting = 1 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src @@ -661,7 +661,7 @@ font-weight:bold; if(!radio_connection) return 0 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src signal.data = list( @@ -680,7 +680,7 @@ font-weight:bold; if(!radio_connection) return 0 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src signal.data = list( @@ -695,7 +695,7 @@ font-weight:bold; if(!radio_connection) return 0 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src signal.data = list( diff --git a/code/game/machinery/atmoalter/meter.dm b/code/game/machinery/atmoalter/meter.dm index abe9c6da0b5..30745f669e4 100644 --- a/code/game/machinery/atmoalter/meter.dm +++ b/code/game/machinery/atmoalter/meter.dm @@ -77,7 +77,7 @@ if(!radio_connection) return - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.transmission_method = 1 signal.data = list( diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index d08dfd0782c..8a4393827d9 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -209,7 +209,7 @@ text("[src.oddbutton ? "Yes" : "No" closest_loc = null next_dest_loc = null - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.transmission_method = 1 signal.data = list("findbeacon" = "patrol") diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index b0188e5d27d..df472791b61 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -633,7 +633,7 @@ Auto Patrol: []"}, if(!frequency) return - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.transmission_method = 1 //for(var/key in keyval) diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm index 9435e86d7c2..462d9b8e011 100644 --- a/code/game/machinery/bots/floorbot.dm +++ b/code/game/machinery/bots/floorbot.dm @@ -669,7 +669,7 @@ var/global/list/floorbot_targets=list() if(!frequency) return - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.transmission_method = 1 //for(var/key in keyval) diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index 206c19e2d75..a841f36922a 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -881,7 +881,7 @@ var/global/mulebot_count = 0 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.transmission_method = 1 //for(var/key in keyval) diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index 46b873d8d54..a7c9a0257a0 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -606,7 +606,7 @@ Auto Patrol: []"}, if(!frequency) return - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.transmission_method = 1 //for(var/key in keyval) diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 4ddc3bc992e..ecb2b6b4fb9 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -556,7 +556,7 @@ var/shuttle_call/shuttle_calls[0] if(!frequency) return - var/datum/signal/status_signal = getFromDPool(/datum/signal) + var/datum/signal/status_signal = getFromPool(/datum/signal) status_signal.source = src status_signal.transmission_method = 1 status_signal.data["command"] = command diff --git a/code/game/machinery/computer/prisonshuttle.dm b/code/game/machinery/computer/prisonshuttle.dm index dcbf9dfd49e..ab68416d0d2 100644 --- a/code/game/machinery/computer/prisonshuttle.dm +++ b/code/game/machinery/computer/prisonshuttle.dm @@ -134,7 +134,7 @@ var/prison_shuttle_timeleft = 0 //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\proc/post_signal() called tick#: [world.time]") var/datum/radio_frequency/frequency = radio_controller.return_frequency(1311) if(!frequency) return - var/datum/signal/status_signal = getFromDPool(/datum/signal) + var/datum/signal/status_signal = getFromPool(/datum/signal) status_signal.source = src status_signal.transmission_method = 1 status_signal.data["command"] = command diff --git a/code/game/machinery/embedded_controller/airlock_program.dm b/code/game/machinery/embedded_controller/airlock_program.dm index 7c20e23d2b2..d3c637b182b 100644 --- a/code/game/machinery/embedded_controller/airlock_program.dm +++ b/code/game/machinery/embedded_controller/airlock_program.dm @@ -218,12 +218,12 @@ if(master) master.post_signal(signal, comm_line) else - returnToDPool(signal) + returnToPool(signal) /datum/computer/file/embedded_program/proc/signalDoor(var/tag, var/command) //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/datum/computer/file/embedded_program/proc/signalDoor() called tick#: [world.time]") - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.data["tag"] = tag signal.data["command"] = command post_signal(signal) @@ -231,7 +231,7 @@ /datum/computer/file/embedded_program/proc/signalPump(var/tag, var/power, var/direction, var/pressure) //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/datum/computer/file/embedded_program/proc/signalPump() called tick#: [world.time]") - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.data = list( "tag" = tag, "sigtype" = "command", diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm index 2a2fae45d25..cba7153332b 100644 --- a/code/game/machinery/magnet.dm +++ b/code/game/machinery/magnet.dm @@ -290,7 +290,7 @@ if(href_list["radio-op"]) // Prepare signal beforehand, because this is a radio operation - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 // radio transmission signal.source = src signal.frequency = frequency @@ -357,7 +357,7 @@ looping = 1 // Prepare the radio signal - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 // radio transmission signal.source = src signal.frequency = frequency diff --git a/code/game/machinery/navbeacon.dm b/code/game/machinery/navbeacon.dm index ad7b3d83456..1cd38130ce8 100644 --- a/code/game/machinery/navbeacon.dm +++ b/code/game/machinery/navbeacon.dm @@ -93,7 +93,7 @@ if(!frequency) return - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.transmission_method = 1 signal.data["beacon"] = location diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index d0afdbc68e2..6995411b6e6 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -554,7 +554,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/atom/proc/telecomms_process() called tick#: [world.time]") // First, we want to generate a new radio signal - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 2 // 2 would be a subspace transmission. var/turf/pos = get_turf(src) diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index a659f9b70a0..a19fcd96649 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -71,7 +71,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() if(long_range_link == 0 && machine.long_range_link == 0) continue // If we're sending a copy, be sure to create the copy for EACH machine and paste the data - var/datum/signal/copy = getFromDPool(/datum/signal) + var/datum/signal/copy = getFromPool(/datum/signal) if(copysig) copy.transmission_method = 2 diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index a9b3a14f512..c3a7cf4da14 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -255,7 +255,7 @@ if(!frequency) return - var/datum/signal/status_signal = getFromDPool(/datum/signal) + var/datum/signal/status_signal = getFromPool(/datum/signal) status_signal.source = src status_signal.transmission_method = 1 status_signal.data["command"] = command diff --git a/code/game/objects/items/devices/PDA/radio.dm b/code/game/objects/items/devices/PDA/radio.dm index 1e5ab26ec4e..45be1c76433 100644 --- a/code/game/objects/items/devices/PDA/radio.dm +++ b/code/game/objects/items/devices/PDA/radio.dm @@ -22,7 +22,7 @@ if(!frequency) return - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.transmission_method = 1 signal.data[key] = value @@ -265,7 +265,7 @@ var/turf/T = get_turf(src) lastsignalers.Add("[time] : [usr.key] used [src] @ location ([T.x],[T.y],[T.z]) : [format_frequency(frequency)]/[code]") - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.encryption = code signal.data["message"] = message diff --git a/code/game/objects/items/devices/deskbell.dm b/code/game/objects/items/devices/deskbell.dm index bbc5462fa13..9ade1555274 100644 --- a/code/game/objects/items/devices/deskbell.dm +++ b/code/game/objects/items/devices/deskbell.dm @@ -182,7 +182,7 @@ if(!radio_connection) return //the desk bell also works like a simple send-only signaler. - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.encryption = code //Since its default code is 0, which cannot be set on a remote signaling device, signal.data["message"] = "ACTIVATE" //there is no risk that one of the desk bells already there at round start could trigger a signaler diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 4cbddada20c..b3f4b85b29c 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -326,7 +326,7 @@ if(subspace_transmission) // First, we want to generate a new radio signal - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 2 // 2 would be a subspace transmission. // transmission_method could probably be enumerated through #define. Would be neater. @@ -380,7 +380,7 @@ filter_type = 1 - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 2 diff --git a/code/game/objects/items/stacks/cable.dm b/code/game/objects/items/stacks/cable.dm index cbd5bcc5b67..07faf2b315e 100644 --- a/code/game/objects/items/stacks/cable.dm +++ b/code/game/objects/items/stacks/cable.dm @@ -160,7 +160,7 @@ var/global/list/datum/stack_recipe/cable_recipes = list ( \ C.update_icon() //create a new powernet with the cable, if needed it will be merged later - var/datum/powernet/PN = getFromDPool(/datum/powernet) + var/datum/powernet/PN = getFromPool(/datum/powernet) PN.add_cable(C) C.mergeConnectedNetworks(C.d2) // merge the powernet with adjacents powernets diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index ec276c09a28..b57dc08e69b 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -830,7 +830,7 @@ var/list/mechtoys = list( if(!frequency) return - var/datum/signal/status_signal = getFromDPool(/datum/signal) + var/datum/signal/status_signal = getFromPool(/datum/signal) status_signal.source = src status_signal.transmission_method = 1 status_signal.data["command"] = command diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 5ea2579249f..47a7250283e 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -120,7 +120,7 @@ //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/obj/item/device/assembly/signaler/proc/signal() called tick#: [world.time]") if(!radio_connection) return - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.encryption = code signal.data["message"] = "ACTIVATE" diff --git a/code/modules/atmos_automation/console.dm b/code/modules/atmos_automation/console.dm index 6beb1df9004..1e373f12d2b 100644 --- a/code/modules/atmos_automation/console.dm +++ b/code/modules/atmos_automation/console.dm @@ -52,7 +52,7 @@ /obj/machinery/computer/general_air_control/atmos_automation/proc/send_signal(var/list/data, filter = RADIO_ATMOSIA) //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/obj/machinery/computer/general_air_control/atmos_automation/proc/send_signal() called tick#: [world.time]") - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src signal.data=data diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 5776b4427ff..c7f9eab2b00 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -234,7 +234,7 @@ if(!frequency) return - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.data["tag"] = smelter_tag signal.transmission_method = 1 //radio signal signal.source = src @@ -379,7 +379,7 @@ /obj/machinery/mineral/processing_unit/proc/send_signal(list/data) //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/obj/machinery/mineral/processing_unit/proc/send_signal() called tick#: [world.time]") - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.transmission_method = 1 //radio signal signal.source = src signal.data["tag"] = id_tag diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm index 5b047c19a3c..37b1666b838 100644 --- a/code/modules/mining/machine_stacking.dm +++ b/code/modules/mining/machine_stacking.dm @@ -77,7 +77,7 @@ if(!radio_connection) return - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.transmission_method = 1 //radio signal signal.data["tag"] = stacker_tag @@ -257,7 +257,7 @@ if(!radio_connection) return - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.transmission_method = 1 //radio signal signal.data["tag"] = id_tag diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm index 4027c8aaa01..5ec0bfafc55 100644 --- a/code/modules/mining/money_bag.dm +++ b/code/modules/mining/money_bag.dm @@ -15,7 +15,7 @@ /obj/item/weapon/moneybag/attack_hand(user as mob) var/credits=0 if(!coin_value) - coin_value = getFromDPool(/datum/materials) + coin_value = getFromPool(/datum/materials) else coin_value.resetVariables() //make its storage be 0 diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index e7efaf74bfc..00c6fcb9f8c 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -295,7 +295,7 @@ By design, d1 is the smallest direction and d2 is the highest continue if(C.d1 == (direction ^ 3) || C.d2 == (direction ^ 3)) // we've got a diagonally matching cable if(!C.powernet) // if the matching cable somehow got no powernet, make him one (should not happen for cables) - var/datum/powernet/newPN = getFromDPool(/datum/powernet/) + var/datum/powernet/newPN = getFromPool(/datum/powernet/) newPN.add_cable(C) if(powernet) //if we already have a powernet, then merge the two powernets merge_powernets(powernet,C.powernet) @@ -312,7 +312,7 @@ By design, d1 is the smallest direction and d2 is the highest continue if(C.d1 == (direction ^ 12) || C.d2 == (direction ^ 12)) // we've got a diagonally matching cable if(!C.powernet) // if the matching cable somehow got no powernet, make him one (should not happen for cables) - var/datum/powernet/newPN = getFromDPool(/datum/powernet/) + var/datum/powernet/newPN = getFromPool(/datum/powernet/) newPN.add_cable(C) if(powernet) // if we already have a powernet, then merge the two powernets merge_powernets(powernet, C.powernet) @@ -336,7 +336,7 @@ By design, d1 is the smallest direction and d2 is the highest continue if(C.d1 == fdir || C.d2 == fdir) // we've got a matching cable in the neighbor turf if(!C.powernet) // if the matching cable somehow got no powernet, make him one (should not happen for cables) - var/datum/powernet/newPN = getFromDPool(/datum/powernet/) + var/datum/powernet/newPN = getFromPool(/datum/powernet/) newPN.add_cable(C) if(powernet) // if we already have a powernet, then merge the two powernets merge_powernets(powernet,C.powernet) @@ -350,7 +350,7 @@ By design, d1 is the smallest direction and d2 is the highest var/list/connections = list() if(!powernet) // if we somehow have no powernet, make one (should not happen for cables) - var/datum/powernet/newPN = getFromDPool(/datum/powernet/) + var/datum/powernet/newPN = getFromPool(/datum/powernet/) newPN.add_cable(src) // first let's add turf cables to our powernet @@ -448,8 +448,8 @@ By design, d1 is the smallest direction and d2 is the highest var/list/powerlist = power_list(T1, src, 0, 0) // find the other cables that ended in the centre of the turf, with or without a powernet if(powerlist.len>0) - var/datum/powernet/PN = getFromDPool(/datum/powernet/) + var/datum/powernet/PN = getFromPool(/datum/powernet/) propagate_network(powerlist[1], PN) // propagates the new powernet beginning at the source cable if(PN.is_empty()) // can happen with machines made nodeless when smoothing cables - returnToDPool(PN) //powernets do not get qdelled + returnToPool(PN) //powernets do not get qdelled diff --git a/code/modules/power/powernet.dm b/code/modules/power/powernet.dm index 3097994eb33..878e7083431 100644 --- a/code/modules/power/powernet.dm +++ b/code/modules/power/powernet.dm @@ -75,7 +75,7 @@ Powernet procs : cables -= C C.powernet = null if(is_empty()) - returnToDPool(src) + returnToPool(src) // helper proc for removing a power machine from the current powernet // warning : this proc doesn't check if the machine exists, but don't worry a runtime should tell you if it doesn't @@ -84,7 +84,7 @@ Powernet procs : nodes -= M M.powernet = null if(is_empty()) - returnToDPool(src) + returnToPool(src) // helper proc for removing a power machine from the current powernet // warning : this proc doesn't check if the machine exists, but don't worry a runtime should tell you if it doesn't @@ -93,7 +93,7 @@ Powernet procs : components -= C C.powernet = null if(is_empty()) - returnToDPool(src) + returnToPool(src) // add a cable to the current powernet /datum/powernet/proc/add_cable(obj/structure/cable/C) @@ -175,7 +175,7 @@ Powernet procs : P.build_status = 1 for(var/datum/power_connection/C in components) C.build_status = 1 - returnToDPool(src) + returnToPool(src) //Hopefully this will never ever have to be used var/global/powernets_broke = 0 @@ -184,7 +184,7 @@ var/global/powernets_broke = 0 /obj/structure/cable/proc/rebuild_from() //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/obj/structure/cable/proc/rebuild_from() called tick#: [world.time]") if(!powernet) - var/datum/powernet/NewPN = getFromDPool(/datum/powernet) + var/datum/powernet/NewPN = getFromPool(/datum/powernet) NewPN.add_cable(src) propagate_network(src, src.powernet) NewPN.load = oldload diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 334fce1b21c..5f1799a21a9 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -384,7 +384,7 @@ /obj/machinery/conveyor_switch/proc/send_command(var/command) //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\/obj/machinery/conveyor_switch/proc/send_command() called tick#: [world.time]") if(radio_connection) - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source=src signal.transmission_method = 1 //radio signal signal.data["tag"] = id_tag diff --git a/code/modules/research/fabricators.dm b/code/modules/research/fabricators.dm index 3c31f17b63a..9fcb6913dda 100644 --- a/code/modules/research/fabricators.dm +++ b/code/modules/research/fabricators.dm @@ -284,7 +284,7 @@ src.overlays -= "[base_state]_ani" if(being_built) if(!being_built.materials) - being_built.materials = getFromDPool(/datum/materials, being_built) + being_built.materials = getFromPool(/datum/materials, being_built) for(var/matID in part.materials) if(copytext(matID, 1, 2) != "$") //it's not a material, let's ignore it continue diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index 6d36ccd5d21..bb302579536 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -38,7 +38,7 @@ var/global/list/rnd_machines = list() icon_state_open = "[base_state]_t" if(research_flags & TAKESMATIN && !materials) - materials = getFromDPool(/datum/materials, src) + materials = getFromPool(/datum/materials, src) if(ticker) initialize() diff --git a/code/modules/scripting/IDE.dm b/code/modules/scripting/IDE.dm index 16c9dcb7f1e..5e31da654b6 100644 --- a/code/modules/scripting/IDE.dm +++ b/code/modules/scripting/IDE.dm @@ -92,7 +92,7 @@ client/verb/tcsrun() if(Machine.SelectedServer) var/obj/machinery/telecomms/server/Server = Machine.SelectedServer - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.data["message"] = "" if(Server.freq_listening.len > 0) signal.frequency = Server.freq_listening[1] diff --git a/code/modules/scripting/Implementations/Telecomms.dm b/code/modules/scripting/Implementations/Telecomms.dm index 22a21f36ec2..7e61ca5021c 100644 --- a/code/modules/scripting/Implementations/Telecomms.dm +++ b/code/modules/scripting/Implementations/Telecomms.dm @@ -276,7 +276,7 @@ datum/signal code = round(code) code = Clamp(code, 0, 100) - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = S signal.encryption = code signal.data["message"] = "ACTIVATE" @@ -291,7 +291,7 @@ datum/signal //writepanic("[__FILE__].[__LINE__] ([src.type])([usr ? usr.ckey : ""]) \\proc/tcombroadcast() called tick#: [world.time]") - var/datum/signal/newsign = getFromDPool(/datum/signal) + var/datum/signal/newsign = getFromPool(/datum/signal) var/obj/machinery/telecomms/server/S = data["server"] var/obj/item/device/radio/hradio = S.server_radio diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index cbdecd1b279..1529fb3bb91 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -206,7 +206,7 @@ if(!radio_connection) return - var/datum/signal/signal = getFromDPool(/datum/signal) + var/datum/signal/signal = getFromPool(/datum/signal) signal.source = src signal.transmission_method = 1 signal.data = list( diff --git a/vgstation13.dme b/vgstation13.dme index 96fc95e5b1f..8cfed5ad59a 100644 --- a/vgstation13.dme +++ b/vgstation13.dme @@ -20,7 +20,6 @@ #include "code\__HELPERS\cmp.dm" #include "code\__HELPERS\constants.dm" #include "code\__HELPERS\datumpool.dm" -#include "code\__HELPERS\experimental.dm" #include "code\__HELPERS\files.dm" #include "code\__HELPERS\game.dm" #include "code\__HELPERS\gender.dm"