From 08ea043e6988793d02e5815c2ea6466149bb6414 Mon Sep 17 00:00:00 2001 From: mikomyazaki <47489928+mikomyazaki@users.noreply.github.com> Date: Tue, 15 Feb 2022 22:45:30 +0000 Subject: [PATCH] Initialize and GC failure fixes #1 (#13190) --- code/game/objects/effects/decals/Cleanable/misc.dm | 2 +- code/game/objects/items/glassjar.dm | 13 +++++-------- code/game/objects/structures/janicart.dm | 2 +- .../objects/structures/stool_bed_chair_nest/bed.dm | 2 +- code/game/turfs/turf.dm | 6 ++++++ code/modules/assembly/holder.dm | 4 ++++ code/modules/detectivework/tools/sample_kits.dm | 10 ++-------- code/modules/heavy_vehicle/premade/_premade.dm | 4 ++-- code/modules/mining/mine_items.dm | 2 +- code/modules/mob/abstract/new_player/menu.dm | 2 +- .../living/simple_animal/friendly/farm_animals.dm | 4 +--- code/modules/mob/mob.dm | 7 ++++++- 12 files changed, 31 insertions(+), 27 deletions(-) diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm index 84af8110334..3dcfd75a852 100644 --- a/code/game/objects/effects/decals/Cleanable/misc.dm +++ b/code/game/objects/effects/decals/Cleanable/misc.dm @@ -104,7 +104,7 @@ var/list/viruses = list() /obj/effect/decal/cleanable/vomit/Initialize() - ..() + . = ..() create_reagents(20, src) /obj/effect/decal/cleanable/tomato_smudge diff --git a/code/game/objects/items/glassjar.dm b/code/game/objects/items/glassjar.dm index 1911677236e..67adb1d44e0 100644 --- a/code/game/objects/items/glassjar.dm +++ b/code/game/objects/items/glassjar.dm @@ -214,11 +214,15 @@ /obj/item/glass_jar/gumball contains = JAR_GUMBALL + var/gumball_path = /obj/item/clothing/mask/chewable/candy/gum/gumball + +/obj/item/glass_jar/gumball/medical + gumball_path = /obj/item/clothing/mask/chewable/candy/gum/gumball/medical /obj/item/glass_jar/gumball/Initialize() ..() for(var/i = 1 to GUMBALL_MAX) - var/obj/item/clothing/mask/chewable/candy/gum/gumball/G = new(src) + var/obj/item/clothing/mask/chewable/candy/gum/gumball/G = new gumball_path(src) contained += G return INITIALIZE_HINT_LATELOAD @@ -226,13 +230,6 @@ /obj/item/glass_jar/gumball/LateInitialize() update_icon() -/obj/item/glass_jar/gumball/medical/Initialize() - for(var/i = 1 to GUMBALL_MAX) - var/obj/item/clothing/mask/chewable/candy/gum/gumball/medical/G = new(src) - contained += G - - return INITIALIZE_HINT_LATELOAD - #undef JAR_NOTHING #undef JAR_MONEY #undef JAR_ANIMAL diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index dde3e3aabbb..185ea3af7d7 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -25,7 +25,7 @@ var/mob/living/pulling /obj/structure/janitorialcart/full/Initialize() - ..() + . = ..() mybag = new /obj/item/storage/bag/trash(src) mymop = new /obj/item/mop(src) myspray = new /obj/item/reagent_containers/spray/cleaner(src) diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index e37359be18a..a43b90773ca 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -354,7 +354,7 @@ slowdown = 0 /obj/structure/bed/roller/Initialize() - ..() + . = ..() LAZYADD(can_buckle, /obj/structure/closet/body_bag) /obj/structure/bed/roller/Destroy() diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 854da925b7e..045b62357be 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -104,6 +104,7 @@ changing_turf = FALSE turfs -= src + remove_cleanables() cleanup_roof() if (ao_queued) @@ -524,3 +525,8 @@ var/const/enterloopsanity = 100 /turf/proc/is_floor() return FALSE + +/turf/proc/remove_cleanables() + for(var/obj/effect/O in src) + if(istype(O,/obj/effect/rune) || istype(O,/obj/effect/decal/cleanable)) + qdel(O) \ No newline at end of file diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index b7a0c50073e..f66813a7e82 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -178,6 +178,10 @@ listening_objects += src /obj/item/device/assembly_holder/Destroy() + if(a_left) + a_left.holder = null + if(a_right) + a_right.holder = null listening_objects -= src return ..() diff --git a/code/modules/detectivework/tools/sample_kits.dm b/code/modules/detectivework/tools/sample_kits.dm index 15ce1012a1c..3818dd65b7b 100644 --- a/code/modules/detectivework/tools/sample_kits.dm +++ b/code/modules/detectivework/tools/sample_kits.dm @@ -7,14 +7,14 @@ var/label_text = "" /obj/item/sample/Initialize(var/newloc, var/atom/supplied) - ..(newloc) + . = ..(newloc) if(supplied) copy_evidence(supplied) name = "[initial(name)] ([supplied.get_swab_name()])" LAZYADD(source, supplied.get_swab_name()) /obj/item/sample/print/Initialize(var/newloc, var/atom/supplied) - ..(newloc, supplied) + . = ..(newloc, supplied) if(LAZYLEN(evidence)) icon_state = "fingerprint1" @@ -68,12 +68,6 @@ else name = "[initial(name)] ([label_text])" -/obj/item/sample/Initialize(var/newloc, var/atom/supplied) - ..(newloc) - if(supplied) - copy_evidence(supplied) - name = "[initial(name)] ([supplied.get_swab_name()])" - LAZYADD(source, supplied.get_swab_name()) /atom/proc/get_swab_name() return "\the [initial(name)]" diff --git a/code/modules/heavy_vehicle/premade/_premade.dm b/code/modules/heavy_vehicle/premade/_premade.dm index 372eae95b4b..1addcd180c3 100644 --- a/code/modules/heavy_vehicle/premade/_premade.dm +++ b/code/modules/heavy_vehicle/premade/_premade.dm @@ -222,7 +222,7 @@ ..() /mob/living/heavy_vehicle/premade/random/boring/Initialize(mapload, var/obj/structure/heavy_vehicle_frame/source_frame) - ..(mapload, source_frame, using_boring_colours = TRUE) + . = ..(mapload, source_frame, using_boring_colours = TRUE) /mob/living/heavy_vehicle/premade/random/extra/Initialize(mapload, var/obj/structure/heavy_vehicle_frame/source_frame) - ..(mapload, source_frame, super_random = TRUE) + . = ..(mapload, source_frame, super_random = TRUE) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 33964a43453..5d8d1efd92a 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -441,7 +441,7 @@ anchored = TRUE /obj/item/stack/flag/red/planted/Initialize() - ..() + . = ..() base_state = "redflag" set_light(2) diff --git a/code/modules/mob/abstract/new_player/menu.dm b/code/modules/mob/abstract/new_player/menu.dm index 5564feb3a4a..2a79ec03958 100644 --- a/code/modules/mob/abstract/new_player/menu.dm +++ b/code/modules/mob/abstract/new_player/menu.dm @@ -271,7 +271,7 @@ announce_ghost_joinleave(src) var/mob/living/carbon/human/dummy/mannequin/mannequin = new client.prefs.dress_preview_mob(mannequin) - observer.appearance = mannequin + observer.appearance = mannequin.appearance observer.appearance_flags = KEEP_TOGETHER observer.alpha = 127 observer.layer = initial(observer.layer) diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 95853540301..b9cd2c959cb 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -276,14 +276,12 @@ . =..() if(!.) return - if(!stat && prob(3) && eggsleft > 0) + if(!stat && prob(3) && eggsleft > 0 && chicken_count < MAX_CHICKENS) visible_message("[src] [pick("lays an egg.","squats down and croons.","begins making a huge racket.","begins clucking raucously.")]") eggsleft-- var/obj/item/reagent_containers/food/snacks/egg/E = new(get_turf(src)) E.pixel_x = rand(-6,6) E.pixel_y = rand(-6,6) - if(chicken_count < MAX_CHICKENS && prob(10)) - START_PROCESSING(SSprocessing, E) // Penguins diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 3aa9b56f353..f204258b51a 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -344,11 +344,16 @@ pointing_effect = new /obj/effect/decal/point(tile) pointing_effect.invisibility = invisibility - addtimer(CALLBACK(GLOBAL_PROC, /proc/qdel, pointing_effect), 2 SECONDS) + addtimer(CALLBACK(.proc/end_pointing_effect), 2 SECONDS) face_atom(A) return 1 +/mob/proc/end_pointing_effect() + if(pointing_effect) + qdel(pointing_effect) + pointing_effect = null + /mob/verb/mode() set name = "Activate Held Object" set category = "Object"