Removes the datum pool, as it is not performant.

* Creating new objects is cheap, in fact comparable to the cost of getting it out of the pool, so it doesn't help there.
* Placing items in the pool is far more expensive than letting them garbage collect due to the resetting of vars and such.
This commit is contained in:
Leshana
2017-05-03 20:39:59 -04:00
parent 3c9698c53d
commit 44ff1a70c6
55 changed files with 92 additions and 217 deletions

View File

@@ -183,7 +183,7 @@
/obj/item/rig_module/self_destruct/New()
..()
src.smoke = PoolOrNew(/datum/effect/effect/system/smoke_spread/bad)
src.smoke = new /datum/effect/effect/system/smoke_spread/bad()
src.smoke.attach(src)
/obj/item/rig_module/self_destruct/Destroy()

View File

@@ -43,7 +43,7 @@
/mob/living/silicon/ai/proc/create_eyeobj(var/newloc)
if(eyeobj) destroy_eyeobj()
if(!newloc) newloc = src.loc
eyeobj = PoolOrNew(/mob/observer/eye/aiEye, newloc)
eyeobj = new /mob/observer/eye/aiEye(newloc)
eyeobj.owner = src
eyeobj.name = "[src.name] (AI Eye)" // Give it a name
if(client) client.eye = eyeobj

View File

@@ -221,7 +221,7 @@
if(building == 1)
I = new /obj/item/stack/tile/floor(src)
else
I = PoolOrNew(/obj/item/stack/rods, src)
I = new /obj/item/stack/rods(src)
A.attackby(I, src)
target = null
busy = 0

View File

@@ -268,8 +268,8 @@
var/turf/Tsec = get_turf(src)
new /obj/item/device/assembly/prox_sensor(Tsec)
PoolOrNew(/obj/item/stack/rods, Tsec)
PoolOrNew(/obj/item/stack/rods, Tsec)
new /obj/item/stack/rods(Tsec)
new /obj/item/stack/rods(Tsec)
new /obj/item/stack/cable_coil/cut(Tsec)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread

View File

@@ -80,7 +80,7 @@
time_last_drone = world.time
if(player.mob && player.mob.mind) player.mob.mind.reset()
var/mob/living/silicon/robot/drone/new_drone = PoolOrNew(drone_type, get_turf(src))
var/mob/living/silicon/robot/drone/new_drone = new drone_type(get_turf(src))
new_drone.transfer_personality(player)
new_drone.master_fabricator = src

View File

@@ -176,16 +176,16 @@
step_to(O, get_turf(pick(view(7, src))))
//rods
O = PoolOrNew(/obj/item/stack/rods, src.loc)
O = new /obj/item/stack/rods(src.loc)
step_to(O, get_turf(pick(view(7, src))))
if(prob(75))
O = PoolOrNew(/obj/item/stack/rods, src.loc)
O = new /obj/item/stack/rods(src.loc)
step_to(O, get_turf(pick(view(7, src))))
if(prob(50))
O = PoolOrNew(/obj/item/stack/rods, src.loc)
O = new /obj/item/stack/rods(src.loc)
step_to(O, get_turf(pick(view(7, src))))
if(prob(25))
O = PoolOrNew(/obj/item/stack/rods, src.loc)
O = new /obj/item/stack/rods(src.loc)
step_to(O, get_turf(pick(view(7, src))))
//plasteel

View File

@@ -103,7 +103,7 @@
if(istype(I, /obj/effect/spider/eggcluster))
eggcount ++
if(!eggcount)
var/eggs = PoolOrNew(/obj/effect/spider/eggcluster/small, list(O, src))
var/eggs = new /obj/effect/spider/eggcluster/small(O, src)
O.implants += eggs
H << "<span class='warning'>The [src] injects something into your [O.name]!</span>"
@@ -172,7 +172,7 @@
if(busy == LAYING_EGGS)
E = locate() in get_turf(src)
if(!E)
PoolOrNew(/obj/effect/spider/eggcluster, list(loc, src))
new /obj/effect/spider/eggcluster(loc, src)
fed--
busy = 0
stop_automated_movement = 0

View File

@@ -123,7 +123,7 @@
if(!paperamount)
return
paperamount--
return PoolOrNew(/obj/item/weapon/shreddedp, get_turf(src))
return new /obj/item/weapon/shreddedp(get_turf(src))
/obj/machinery/papershredder/power_change()
..()
@@ -185,5 +185,5 @@
var/mob/living/M = loc
if(istype(M))
M.drop_from_inventory(src)
PoolOrNew(/obj/effect/decal/cleanable/ash,get_turf(src))
new /obj/effect/decal/cleanable/ash(get_turf(src))
qdel(src)

View File

@@ -38,7 +38,7 @@
playsound(src, 'sound/effects/snap.ogg', 50, 1)
src.visible_message("<span class='warning'>\The [src] explodes in a bright flash!</span>")
var/datum/effect/effect/system/spark_spread/sparks = PoolOrNew(/datum/effect/effect/system/spark_spread)
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread()
sparks.set_up(2, 1, T)
sparks.start()

View File

@@ -38,7 +38,7 @@
if(1)
new_growth = 2
var/obj/structure/diona/vines/existing = locate() in T
if(!istype(existing)) existing = PoolOrNew(/obj/structure/diona/vines, T)
if(!istype(existing)) existing = new /obj/structure/diona/vines(T)
if(existing.growth < new_growth)
existing.growth = new_growth
existing.update_icon()
@@ -161,11 +161,11 @@
switch(value)
if(ARTIFACT_CHAR)
PoolOrNew(/obj/structure/diona/bulb,T)
new /obj/structure/diona/bulb(T)
if(MONSTER_CHAR)
spawn_diona_nymph(T)
if(DOOR_CHAR)
var/obj/structure/diona/vines/V = PoolOrNew(/obj/structure/diona/vines,T)
var/obj/structure/diona/vines/V = new /obj/structure/diona/vines(T)
V.growth = 3
V.update_icon()
spawn(1)

View File

@@ -26,7 +26,7 @@
/obj/item/projectile/spell_projectile/before_move()
if(proj_trail && src && src.loc) //pretty trails
var/obj/effect/overlay/trail = PoolOrNew(/obj/effect/overlay, src.loc)
var/obj/effect/overlay/trail = new /obj/effect/overlay(src.loc)
trails += trail
trail.icon = proj_trail_icon
trail.icon_state = proj_trail_icon_state

View File

@@ -139,7 +139,7 @@
/obj/vehicle/emp_act(severity)
var/was_on = on
stat |= EMPED
var/obj/effect/overlay/pulse2 = PoolOrNew(/obj/effect/overlay, src.loc)
var/obj/effect/overlay/pulse2 = new /obj/effect/overlay(src.loc)
pulse2.icon = 'icons/effects/effects.dmi'
pulse2.icon_state = "empdisable"
pulse2.name = "emp sparks"
@@ -192,8 +192,8 @@
src.visible_message("\red <B>[src] blows apart!</B>", 1)
var/turf/Tsec = get_turf(src)
PoolOrNew(/obj/item/stack/rods, Tsec)
PoolOrNew(/obj/item/stack/rods, Tsec)
new /obj/item/stack/rods(Tsec)
new /obj/item/stack/rods(Tsec)
new /obj/item/stack/cable_coil/cut(Tsec)
if(cell)

View File

@@ -244,7 +244,7 @@
apply_material_decorations = 0
if(23)
apply_prefix = 0
new_item = PoolOrNew(/obj/item/stack/rods, src.loc)
new_item = new /obj/item/stack/rods(src.loc)
apply_image_decorations = 0
apply_material_decorations = 0
if(24)