From 8f6c353ad0cd6a21242cad75aff723af1cc0dc62 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sat, 5 Sep 2020 21:35:02 +0100 Subject: [PATCH] memory leak bad --- code/controllers/subsystem/job.dm | 12 +++++++++--- code/modules/client/preferences.dm | 2 -- .../modules/mob/dead/new_player/preferences_setup.dm | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 4f59992ace..e61a3b3854 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -665,7 +665,7 @@ SUBSYSTEM_DEF(job) message_admins(msg) CRASH(msg) -/datum/controller/subsystem/job/proc/equip_loadout(mob/dead/new_player/N, mob/living/M, equipbackpackstuff, bypass_prereqs = FALSE) +/datum/controller/subsystem/job/proc/equip_loadout(mob/dead/new_player/N, mob/living/M, equipbackpackstuff, bypass_prereqs = FALSE, can_drop = TRUE) var/mob/the_mob = N if(!the_mob) the_mob = M // cause this doesn't get assigned if player is a latejoiner @@ -694,9 +694,15 @@ SUBSYSTEM_DEF(job) var/mob/living/carbon/C = M var/obj/item/storage/backpack/B = C.back if(!B || !SEND_SIGNAL(B, COMSIG_TRY_STORAGE_INSERT, I, null, TRUE, TRUE)) // Otherwise, try to put it in the backpack, for carbons. - I.forceMove(get_turf(C)) + if(can_drop) + I.forceMove(get_turf(C)) + else + qdel(I) else if(!M.equip_to_slot_if_possible(I, SLOT_IN_BACKPACK, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) // Otherwise, try to put it in the backpack - I.forceMove(get_turf(M)) // If everything fails, just put it on the floor under the mob. + if(can_drop) + I.forceMove(get_turf(M)) // If everything fails, just put it on the floor under the mob. + else + qdel(I) /datum/controller/subsystem/job/proc/FreeRole(rank) if(!rank) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 7debbff4d9..609733ffa7 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -2544,8 +2544,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(custom_speech_verb != "default") character.dna.species.say_mod = custom_speech_verb - //todo: make limb features copy to the person - SEND_SIGNAL(character, COMSIG_HUMAN_PREFS_COPIED_TO, src, icon_updates, roundstart_checks) //let's be sure the character updates diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm index 779699238b..abce0954a4 100644 --- a/code/modules/mob/dead/new_player/preferences_setup.dm +++ b/code/modules/mob/dead/new_player/preferences_setup.dm @@ -46,7 +46,7 @@ if(current_tab == 3) //give it its loadout if not on the appearance tab - SSjob.equip_loadout(parent.mob, mannequin, FALSE, bypass_prereqs = TRUE) + SSjob.equip_loadout(parent.mob, mannequin, FALSE, bypass_prereqs = TRUE, can_drop = FALSE) else if(previewJob && equip_job) mannequin.job = previewJob.title