From 22cc36345f6f9c9fc8a7c7ba4f1e448aaa048956 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 26 Mar 2017 01:30:32 -0700 Subject: [PATCH 1/4] Update chameleon.dm --- code/modules/clothing/chameleon.dm | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 54d158386c..4d013ce2c8 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -423,6 +423,7 @@ var/list/ammo_copy_vars var/list/gun_copy_vars var/badmin_mode = FALSE + var/static/list/blacklisted_vars = list("locs", "loc", "contents", "x", "y", "z") /obj/item/weapon/gun/energy/laser/chameleon/New() ..() @@ -449,13 +450,17 @@ chameleon_ammo_vars = list() chameleon_gun_vars = list() chameleon_projectile_vars = list() - for(var/V in chambered.vars) - chambered.vars[V] = initial(chambered.vars[V]) - qdel(chambered.BB) + if(chambered) + for(var/v in ammo_copy_vars) + if(v in blacklisted_vars) //Just in case admins go crazy. + continue + chambered.vars[v] = initial(chambered.vars[v]) + for(var/v in gun_copy_vars) + if(v in blacklisted_vars) + continue + vars[v] = initial(vars[v]) + qdel(chambered.BB) chambered.newshot() - for(var/V in vars) - vars[V] = initial(vars[V]) - /obj/item/weapon/gun/energy/laser/chameleon/proc/set_chameleon_ammo(obj/item/ammo_casing/AC, passthrough = TRUE, reset = FALSE) if(!istype(AC)) @@ -464,7 +469,7 @@ for(var/V in ammo_copy_vars) if(AC.vars[V]) chameleon_ammo_vars[V] = AC.vars[V] - if(chambered.vars[V]) + if(chambered && chambered.vars[V]) chambered.vars[V] = AC.vars[V] if(passthrough) var/obj/item/projectile/P = AC.BB @@ -492,7 +497,7 @@ return FALSE for(var/V in gun_copy_vars) if(vars[V] && G.vars[V]) - chameleon_gun_vars[V] = G.vars[V] + chameleon_gun_vars[V] = G.vars[V]! vars[V] = G.vars[V] if(passthrough) if(istype(G, /obj/item/weapon/gun/ballistic)) From 2a8fcb3929073e1fdf4bc89c05b9b0eea5721d9e Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 26 Mar 2017 01:31:57 -0700 Subject: [PATCH 2/4] Update chameleon.dm --- code/modules/clothing/chameleon.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 4d013ce2c8..1bead5fded 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -497,7 +497,7 @@ return FALSE for(var/V in gun_copy_vars) if(vars[V] && G.vars[V]) - chameleon_gun_vars[V] = G.vars[V]! + chameleon_gun_vars[V] = G.vars[V] vars[V] = G.vars[V] if(passthrough) if(istype(G, /obj/item/weapon/gun/ballistic)) From 5688b6b3066bce9ef22ab125a95717491cdece36 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 26 Mar 2017 03:41:21 -0700 Subject: [PATCH 3/4] Update chameleon.dm --- code/modules/clothing/chameleon.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 1bead5fded..3f9cd74916 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -459,7 +459,8 @@ if(v in blacklisted_vars) continue vars[v] = initial(vars[v]) - qdel(chambered.BB) + if(chambered.BB) + qdel(chambered.BB) chambered.newshot() /obj/item/weapon/gun/energy/laser/chameleon/proc/set_chameleon_ammo(obj/item/ammo_casing/AC, passthrough = TRUE, reset = FALSE) From c432ec08594aa523bcb9959bd7609019148ebc56 Mon Sep 17 00:00:00 2001 From: kevinz000 Date: Sun, 26 Mar 2017 13:14:16 -0700 Subject: [PATCH 4/4] Update chameleon.dm --- code/modules/clothing/chameleon.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 3f9cd74916..b33f1c29d5 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -460,7 +460,7 @@ continue vars[v] = initial(vars[v]) if(chambered.BB) - qdel(chambered.BB) + qdel(chambered.BB) chambered.newshot() /obj/item/weapon/gun/energy/laser/chameleon/proc/set_chameleon_ammo(obj/item/ammo_casing/AC, passthrough = TRUE, reset = FALSE)