mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-27 15:18:09 +01:00
[MIRROR] Some more Init and Destroy issues (#10317)
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
co-authored by
Kashargul
parent
5e90dd067f
commit
5aad34f339
@@ -9,15 +9,17 @@
|
||||
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(mapload, amt=1, nologs=1)
|
||||
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]) (<A href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[newLoc.x];Y=[newLoc.y];Z=[newLoc.z]'>JMP</a>)")
|
||||
log_game("Liquid fuel has spilled in [newLoc.loc.name] ([newLoc.x],[newLoc.y],[newLoc.z])")
|
||||
message_admins("Liquid fuel has spilled in [loc.loc.name] ([loc.x],[loc.y],[loc.z]) (<A href='byond://?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[loc.x];Y=[loc.y];Z=[loc.z]'>JMP</a>)")
|
||||
log_game("Liquid fuel has spilled in [loc.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()
|
||||
@@ -27,8 +29,6 @@
|
||||
. = ..()
|
||||
if(!has_spread)
|
||||
Spread()
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/decal/cleanable/liquid_fuel/proc/Spread(exclude=list())
|
||||
//Allows liquid fuels to sometimes flow into other tiles.
|
||||
@@ -53,10 +53,10 @@
|
||||
icon_state = "mustard"
|
||||
anchored = FALSE
|
||||
|
||||
/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel/New(newLoc, amt = 1, d = 0)
|
||||
/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel/Initialize(mapload, 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.
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ var/global/list/image/splatter_cache=list()
|
||||
var/amount = 5
|
||||
generic_filth = TRUE
|
||||
persistent = FALSE
|
||||
var/delete_me = FALSE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/reveal_blood()
|
||||
if(!fluorescent)
|
||||
@@ -37,8 +38,10 @@ var/global/list/image/splatter_cache=list()
|
||||
amount = 0
|
||||
..(ignore=1)
|
||||
|
||||
/obj/effect/decal/cleanable/blood/New()
|
||||
..()
|
||||
/obj/effect/decal/cleanable/blood/Initialize(mapload)
|
||||
. = ..()
|
||||
if(delete_me)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
update_icon()
|
||||
if(istype(src, /obj/effect/decal/cleanable/blood/gibs))
|
||||
return
|
||||
@@ -48,7 +51,10 @@ var/global/list/image/splatter_cache=list()
|
||||
if(B != src)
|
||||
if (B.blood_DNA)
|
||||
blood_DNA |= B.blood_DNA.Copy()
|
||||
qdel(B)
|
||||
if(!(B.flags & ATOM_INITIALIZED))
|
||||
B.delete_me = TRUE
|
||||
else
|
||||
qdel(B)
|
||||
|
||||
//VOREstation edit - Moved timer call to Init, and made it not call on mapload
|
||||
/obj/effect/decal/cleanable/blood/Initialize(mapload, var/_age)
|
||||
@@ -164,8 +170,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(mapload)
|
||||
. = ..()
|
||||
drips |= icon_state
|
||||
|
||||
/obj/effect/decal/cleanable/blood/writing
|
||||
@@ -176,8 +182,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(mapload)
|
||||
. = ..()
|
||||
if(random_icon_states.len)
|
||||
for(var/obj/effect/decal/cleanable/blood/writing/W in loc)
|
||||
random_icon_states.Remove(W.icon_state)
|
||||
|
||||
@@ -37,9 +37,12 @@
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "dirt"
|
||||
mouse_opacity = 0
|
||||
var/delete_me = FALSE
|
||||
|
||||
/obj/effect/decal/cleanable/dirt/Initialize(mapload, var/_age, var/dirt)
|
||||
.=..()
|
||||
if(delete_me)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
var/turf/simulated/our_turf = src.loc
|
||||
if(our_turf && istype(our_turf) && our_turf.can_dirty)
|
||||
our_turf.dirt = clamp(max(age ? (dirt ? dirt : 101) : our_turf.dirt, our_turf.dirt), 0, 101)
|
||||
@@ -49,7 +52,10 @@
|
||||
if (alreadythere == src)
|
||||
continue
|
||||
else if (alreadyfound)
|
||||
qdel(alreadythere)
|
||||
if(!(alreadythere.flags & ATOM_INITIALIZED))
|
||||
delete_me = TRUE
|
||||
else
|
||||
qdel(alreadythere)
|
||||
continue
|
||||
alreadyfound = TRUE
|
||||
alreadythere.alpha = calcalpha //don't need to constantly recalc for all of them in it because it'll just max if a non-persistent dirt overlay gets added, and then the new dirt overlay will be deleted
|
||||
|
||||
@@ -12,12 +12,13 @@
|
||||
icon = 'icons/effects/map_effects.dmi'
|
||||
icon_state = "gibspawn"
|
||||
|
||||
/obj/effect/gibspawner/New(location, var/datum/dna/MobDNA, var/fleshcolor, var/bloodcolor)
|
||||
..()
|
||||
/obj/effect/gibspawner/Initialize(mapload, 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)
|
||||
@@ -54,5 +55,3 @@
|
||||
var/list/directions = gibdirections[i]
|
||||
if(directions.len)
|
||||
gib.streak(directions)
|
||||
|
||||
qdel(src)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
unacidable = TRUE
|
||||
simulated = FALSE
|
||||
invisibility = 100
|
||||
var/delete_me = 0
|
||||
var/delete_me = FALSE
|
||||
|
||||
/obj/effect/landmark/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -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(mapload)
|
||||
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(mapload)
|
||||
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(mapload)
|
||||
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)
|
||||
..()
|
||||
. = ..()
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
pickup_sound = 'sound/items/pickup/device.ogg'
|
||||
drop_sound = 'sound/items/drop/device.ogg'
|
||||
|
||||
/obj/item/taperecorder/New()
|
||||
..()
|
||||
/obj/item/taperecorder/Initialize(mapload)
|
||||
. = ..()
|
||||
if(ispath(mytape))
|
||||
mytape = new mytape(src)
|
||||
update_icon()
|
||||
@@ -445,5 +445,6 @@
|
||||
|
||||
|
||||
//Random colour tapes
|
||||
/obj/item/rectape/random/New()
|
||||
/obj/item/rectape/random/Initialize(mapload)
|
||||
. = ..()
|
||||
icon_state = "tape_[pick("white", "blue", "red", "yellow", "purple")]"
|
||||
|
||||
@@ -112,3 +112,7 @@
|
||||
var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES]
|
||||
if(istype(E))
|
||||
E.change_eye_color()
|
||||
|
||||
/obj/item/makeover/Destroy()
|
||||
qdel(M)
|
||||
. = ..()
|
||||
|
||||
@@ -11,16 +11,14 @@ var/global/list/ashtray_cache = list()
|
||||
var/image/base_image
|
||||
var/max_butts = 10
|
||||
|
||||
/obj/item/material/ashtray/New(var/newloc, var/material_name)
|
||||
..(newloc, material_name)
|
||||
/obj/item/material/ashtray/Initialize(mapload, material_key)
|
||||
. = ..()
|
||||
if(!material)
|
||||
qdel(src)
|
||||
return
|
||||
return INITIALIZE_HINT_QDEL
|
||||
icon_state = "blank"
|
||||
max_butts = round(material.hardness/5) //This is arbitrary but whatever.
|
||||
randpixel_xy()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/material/ashtray/update_icon()
|
||||
color = null
|
||||
@@ -100,11 +98,11 @@ var/global/list/ashtray_cache = list()
|
||||
update_icon()
|
||||
return ..()
|
||||
|
||||
/obj/item/material/ashtray/plastic/New(var/newloc)
|
||||
..(newloc, MAT_PLASTIC)
|
||||
/obj/item/material/ashtray/plastic/Initialize(mapload)
|
||||
. = ..(mapload, MAT_PLASTIC)
|
||||
|
||||
/obj/item/material/ashtray/bronze/New(var/newloc)
|
||||
..(newloc, MAT_BRONZE)
|
||||
/obj/item/material/ashtray/bronze/Initialize(mapload)
|
||||
. = ..(mapload, MAT_BRONZE)
|
||||
|
||||
/obj/item/material/ashtray/glass/New(var/newloc)
|
||||
..(newloc,MAT_GLASS)
|
||||
/obj/item/material/ashtray/glass/Initialize(mapload)
|
||||
. = ..(mapload, MAT_GLASS)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/material/twohanded/baseballbat/foam/New(var/newloc)
|
||||
..(newloc,"foam")
|
||||
/obj/item/material/twohanded/baseballbat/foam/Initialize(mapload)
|
||||
. = ..(mapload, MAT_FOAM)
|
||||
|
||||
/obj/item/material/sword/foam
|
||||
attack_verb = list("bonked","whacked")
|
||||
@@ -14,8 +14,8 @@
|
||||
unbreakable = 1
|
||||
damtype = HALLOSS
|
||||
|
||||
/obj/item/material/sword/foam/New(var/newloc)
|
||||
..(newloc,"foam")
|
||||
/obj/item/material/sword/foam/Initialize(mapload)
|
||||
. = ..(mapload, MAT_FOAM)
|
||||
|
||||
/obj/item/material/twohanded/spear/foam
|
||||
attack_verb = list("bonked","whacked")
|
||||
@@ -26,8 +26,9 @@
|
||||
base_icon = "spear_mask"
|
||||
icon_state = "spear_mask0"
|
||||
unbreakable = 1
|
||||
/obj/item/material/twohanded/spear/foam/New(var/newloc)
|
||||
..(newloc,"foam")
|
||||
|
||||
/obj/item/material/twohanded/spear/foam/Initialize(mapload)
|
||||
. = ..(mapload, MAT_FOAM)
|
||||
|
||||
/obj/item/material/twohanded/fireaxe/foam
|
||||
attack_verb = list("bonked","whacked")
|
||||
@@ -39,8 +40,8 @@
|
||||
icon_state = "fireaxe_mask0"
|
||||
unbreakable = 1
|
||||
|
||||
/obj/item/material/twohanded/fireaxe/foam/New(var/newloc)
|
||||
..(newloc,"foam")
|
||||
/obj/item/material/twohanded/fireaxe/foam/Initialize(mapload)
|
||||
. = ..(mapload, MAT_FOAM)
|
||||
|
||||
/obj/item/material/twohanded/fireaxe/foam/afterattack()
|
||||
return
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/material/shard/titaniumglass/New(loc)
|
||||
..(loc, MAT_TITANIUMGLASS)
|
||||
/obj/item/material/shard/titaniumglass/Initialize(mapload)
|
||||
. = ..(mapload, MAT_TITANIUMGLASS)
|
||||
|
||||
/obj/item/material/shard/plastitaniumglass/New(loc)
|
||||
..(loc, MAT_PLASTITANIUMGLASS)
|
||||
/obj/item/material/shard/plastitaniumglass/Initialize(mapload)
|
||||
. = ..(mapload, MAT_PLASTITANIUMGLASS)
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
throwforce = round(force*thrown_force_divisor)
|
||||
//to_world("[src] has unwielded force [force_unwielded], wielded force [force_wielded] and throwforce [throwforce] when made from default material [material.name]")
|
||||
|
||||
/obj/item/material/twohanded/Initialize(mapload)
|
||||
/obj/item/material/twohanded/Initialize(mapload, material_key)
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
pickup_sound = 'sound/items/pickup/weldingtool.ogg'
|
||||
tool_qualities = list(TOOL_WELDER)
|
||||
|
||||
/obj/item/weldingtool/Initialize()
|
||||
/obj/item/weldingtool/Initialize(mapload)
|
||||
. = ..()
|
||||
// var/random_fuel = min(rand(10,20),max_fuel)
|
||||
var/datum/reagents/R = new/datum/reagents(max_fuel)
|
||||
@@ -493,13 +493,13 @@
|
||||
always_process = TRUE
|
||||
var/obj/item/weldpack/mounted_pack = null
|
||||
|
||||
/obj/item/weldingtool/tubefed/New(location)
|
||||
..()
|
||||
if(istype(location, /obj/item/weldpack))
|
||||
var/obj/item/weldpack/holder = location
|
||||
/obj/item/weldingtool/tubefed/Initialize(mapload)
|
||||
. = ..()
|
||||
if(istype(loc, /obj/item/weldpack))
|
||||
var/obj/item/weldpack/holder = loc
|
||||
mounted_pack = holder
|
||||
else
|
||||
qdel(src)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/item/weldingtool/tubefed/Destroy()
|
||||
mounted_pack.nozzle = null
|
||||
@@ -556,11 +556,12 @@
|
||||
acti_sound = 'sound/effects/sparks4.ogg'
|
||||
deac_sound = 'sound/effects/sparks4.ogg'
|
||||
|
||||
/obj/item/weldingtool/electric/unloaded/New()
|
||||
/obj/item/weldingtool/electric/unloaded/Initialize(mapload)
|
||||
cell_type = null
|
||||
. = ..()
|
||||
|
||||
/obj/item/weldingtool/electric/New()
|
||||
..()
|
||||
/obj/item/weldingtool/electric/Initialize(mapload)
|
||||
. = ..()
|
||||
if(cell_type == null)
|
||||
update_icon()
|
||||
else if(cell_type)
|
||||
|
||||
@@ -18,12 +18,18 @@
|
||||
/obj/item/stack/tile/floor/techgrey = "#363f43")
|
||||
var/health = 100
|
||||
var/maxhealth = 100
|
||||
var/delete_me = FALSE
|
||||
|
||||
/obj/structure/catwalk/Initialize()
|
||||
. = ..()
|
||||
if(delete_me)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
for(var/obj/structure/catwalk/C in get_turf(src))
|
||||
if(C != src)
|
||||
qdel(C)
|
||||
if(!(C.flags & ATOM_INITIALIZED))
|
||||
C.delete_me = TRUE
|
||||
else
|
||||
qdel(C)
|
||||
update_connections(1)
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -579,6 +579,7 @@
|
||||
|
||||
var/contents_vis_flags = NONE
|
||||
var/contents_original_pixel_y = 0
|
||||
var/changing_state = FALSE
|
||||
|
||||
/obj/structure/prop/machine/nt_pod/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -641,33 +642,30 @@
|
||||
return
|
||||
if(!user.client?.holder)
|
||||
return
|
||||
if(changing_state)
|
||||
return
|
||||
|
||||
AM.forceMove(src)
|
||||
|
||||
/obj/structure/prop/machine/nt_pod/change_state(state)
|
||||
. = ..()
|
||||
if(changing_state)
|
||||
return
|
||||
switch(state)
|
||||
if("open")
|
||||
changing_state = TRUE
|
||||
cut_overlay("nt_pod_top_on")
|
||||
cut_overlay("nt_pod_under")
|
||||
|
||||
// Fluid drains
|
||||
fluid.icon_state = "nothing"
|
||||
flick("nt_pod_emptying", fluid) // 8ds
|
||||
sleep(8)
|
||||
|
||||
// Door opens
|
||||
door.icon_state = "nothing"
|
||||
flick("nt_pod_opening", door) // 9ds
|
||||
sleep(9)
|
||||
|
||||
// GET OUT
|
||||
outside.layer = BELOW_MOB_LAYER
|
||||
if(contents.len)
|
||||
for(var/atom/movable/AM as anything in contents)
|
||||
unduct(AM)
|
||||
addtimer(CALLBACK(src, PROC_REF(delayed_flick), door, "nothing", "nt_pod_opening", 0.9 SECONDS), 0.8 SECONDS) // 9ds
|
||||
|
||||
if("closed")
|
||||
changing_state = TRUE
|
||||
outside.layer = ABOVE_MOB_LAYER
|
||||
cut_overlay("nt_pod_top_on")
|
||||
add_overlay("nt_pod_top_on")
|
||||
@@ -676,10 +674,8 @@
|
||||
// Door closes
|
||||
door.icon_state = "nt_pod_glass"
|
||||
flick("nt_pod_closing", door) // 9ds
|
||||
sleep(9)
|
||||
// Fluid fills
|
||||
fluid.icon_state = "nt_pod_liquid"
|
||||
flick("nt_pod_filling", fluid) // 8ds
|
||||
addtimer(CALLBACK(src, PROC_REF(delayed_flick), fluid, "nt_pod_liquid", "nt_pod_filling"), 0.9 SECONDS) // 8ds
|
||||
|
||||
if("panel_open")
|
||||
cut_overlay("nt_pod_panel")
|
||||
@@ -689,6 +685,22 @@
|
||||
|
||||
// Old Virology stuff
|
||||
|
||||
/obj/structure/prop/machine/nt_pod/proc/delayed_flick(var/obj/effect/overlay/ovrl, var/icon_state, var/flicked, var/get_out_time)
|
||||
ovrl.icon_state = icon_state
|
||||
flick(flicked, ovrl)
|
||||
// GET OUT
|
||||
if(get_out_time)
|
||||
addtimer(CALLBACK(src, PROC_REF(get_out)), get_out_time)
|
||||
return
|
||||
changing_state = FALSE
|
||||
|
||||
/obj/structure/prop/machine/nt_pod/proc/get_out()
|
||||
outside.layer = BELOW_MOB_LAYER
|
||||
if(contents.len)
|
||||
for(var/atom/movable/AM as anything in contents)
|
||||
unduct(AM)
|
||||
changing_state = FALSE
|
||||
|
||||
/obj/structure/prop/machine/centrifuge
|
||||
name = "centrifuge"
|
||||
desc = "Used to separate things with different weight. Spin 'em round, round, right round."
|
||||
|
||||
Reference in New Issue
Block a user