From c0d4c30711810c93946b50609238da20a599d049 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Tue, 3 Mar 2020 14:57:32 +0100 Subject: [PATCH 1/5] Update _lists.dm --- code/__HELPERS/_lists.dm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 8e44b57396..f16b566b00 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -174,6 +174,15 @@ L[T] = TRUE return L +/proc/typecacheof_assoc_list(list/pathlist, ignore_root_path = FALSE) + . = list() + if(!istype(pathlist)) + return + for(var/P in pathlist) + var/value = pathlist[P] + for(var/T in (ignore_root_path ? subtypesof(P) : typesof(P))) + .[T] = value + //Empties the list by setting the length to 0. Hopefully the elements get garbage collected /proc/clearlist(list/list) if(istype(list)) @@ -579,4 +588,4 @@ var/list/ret = list() for(var/key in input) ret += key - return ret \ No newline at end of file + return ret From edc53770eab6f6eaabf9c31807d9b8de2ecd3a30 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Tue, 3 Mar 2020 15:05:32 +0100 Subject: [PATCH 2/5] Update area_copy.dm --- code/modules/holodeck/area_copy.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index 8fa0825628..1f11378544 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -4,6 +4,10 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list( "power_supply", "contents", "reagents", "stat", "x", "y", "z", "group", "atmos_adjacent_turfs", "comp_lookup" )) +GLOBAL_list_INIT(duplicate_forbidden_vars_by_type, typecacheof_assoc_list(list( + /obj/item/gun/energy = "ammo_type" + ))) + /proc/DuplicateObject(atom/original, perfectcopy = TRUE, sameloc = FALSE, atom/newloc = null, nerf = FALSE, holoitem=FALSE) RETURN_TYPE(original.type) if(!original) @@ -16,7 +20,7 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list( O = new original.type(newloc) if(perfectcopy && O && original) - for(var/V in original.vars - GLOB.duplicate_forbidden_vars) + for(var/V in original.vars - GLOB.duplicate_forbidden_vars - duplicate_forbidden_vars_by_type[O.type]) if(islist(original.vars[V])) var/list/L = original.vars[V] O.vars[V] = L.Copy() From b378da24684a67aa8064bf04f7ba7724791ef86b Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Tue, 3 Mar 2020 15:06:42 +0100 Subject: [PATCH 3/5] Update energy.dm --- code/modules/projectiles/guns/energy.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 401678512b..be43bc48fd 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -67,8 +67,7 @@ /obj/item/gun/energy/Destroy() if(flags_1 & INITIALIZED_1) QDEL_NULL(cell) - if(!(flags_1 & HOLOGRAM_1)) //holodeck stuff. - QDEL_LIST(ammo_type) + QDEL_LIST(ammo_type) STOP_PROCESSING(SSobj, src) return ..() From 490ad4373d9ec49bab3e239937527a91136d67bc Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Tue, 3 Mar 2020 15:12:06 +0100 Subject: [PATCH 4/5] Update area_copy.dm --- code/modules/holodeck/area_copy.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index 1f11378544..cef950a6a9 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -20,7 +20,7 @@ GLOBAL_list_INIT(duplicate_forbidden_vars_by_type, typecacheof_assoc_list(list( O = new original.type(newloc) if(perfectcopy && O && original) - for(var/V in original.vars - GLOB.duplicate_forbidden_vars - duplicate_forbidden_vars_by_type[O.type]) + for(var/V in original.vars - GLOB.duplicate_forbidden_vars - GLOB.duplicate_forbidden_vars_by_type[O.type]) if(islist(original.vars[V])) var/list/L = original.vars[V] O.vars[V] = L.Copy() From beef8917893057dc58493ac7694e6b6fa56954f0 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Tue, 3 Mar 2020 15:12:54 +0100 Subject: [PATCH 5/5] Update area_copy.dm --- code/modules/holodeck/area_copy.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index cef950a6a9..9fb97c08a7 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -4,7 +4,7 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars,list( "power_supply", "contents", "reagents", "stat", "x", "y", "z", "group", "atmos_adjacent_turfs", "comp_lookup" )) -GLOBAL_list_INIT(duplicate_forbidden_vars_by_type, typecacheof_assoc_list(list( +GLOBAL_LIST_INIT(duplicate_forbidden_vars_by_type, typecacheof_assoc_list(list( /obj/item/gun/energy = "ammo_type" )))