From 7a81e116d25bbf20b98be84db035ac6f9927d188 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Fri, 10 Oct 2014 00:23:03 -0400 Subject: [PATCH] Fixes #6647 grabbed_by assignment is now done in the grab constructor, instead of leaking out all over the place. --- code/WorkInProgress/Cael_Aislinn/sculpture.dm | 1 - code/WorkInProgress/Cib/amorph/amorph_attack.dm | 2 -- code/modules/mob/living/carbon/alien/humanoid/humanoid.dm | 1 - code/modules/mob/living/carbon/alien/larva/larva.dm | 3 +-- code/modules/mob/living/carbon/human/human_attackalien.dm | 1 - code/modules/mob/living/carbon/human/human_attackhand.dm | 1 - code/modules/mob/living/carbon/human/inventory.dm | 1 + code/modules/mob/living/carbon/monkey/monkey.dm | 4 +--- code/modules/mob/living/silicon/robot/robot.dm | 3 +-- code/modules/mob/living/simple_animal/simple_animal.dm | 4 +--- code/modules/mob/mob_grab.dm | 2 ++ code/unused/hivebot/hivebot.dm | 1 - 12 files changed, 7 insertions(+), 17 deletions(-) diff --git a/code/WorkInProgress/Cael_Aislinn/sculpture.dm b/code/WorkInProgress/Cael_Aislinn/sculpture.dm index 2ecc98a4ae..639c2c8487 100644 --- a/code/WorkInProgress/Cael_Aislinn/sculpture.dm +++ b/code/WorkInProgress/Cael_Aislinn/sculpture.dm @@ -26,7 +26,6 @@ G.assailant = src G.layer = 20 G.affecting = target - target.grabbed_by += G G.synch() target.LAssailant = src diff --git a/code/WorkInProgress/Cib/amorph/amorph_attack.dm b/code/WorkInProgress/Cib/amorph/amorph_attack.dm index 188c682033..814b977d1a 100644 --- a/code/WorkInProgress/Cib/amorph/amorph_attack.dm +++ b/code/WorkInProgress/Cib/amorph/amorph_attack.dm @@ -95,7 +95,6 @@ M.r_hand = G G.layer = 20 G.affecting = src - grabbed_by += G G.synch() LAssailant = M @@ -150,7 +149,6 @@ M.r_hand = G G.layer = 20 G.affecting = src - grabbed_by += G G.synch() LAssailant = M diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 03e590f036..e6fa5dad11 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -293,7 +293,6 @@ M.put_in_active_hand(G) - grabbed_by += G G.synch() LAssailant = M diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 9f5640c69b..ce4abe5fb7 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -265,11 +265,10 @@ if ("grab") if (M == src) return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, M, src ) + var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, src ) M.put_in_active_hand(G) - grabbed_by += G G.synch() LAssailant = M diff --git a/code/modules/mob/living/carbon/human/human_attackalien.dm b/code/modules/mob/living/carbon/human/human_attackalien.dm index ea73d63f8d..76f56d3fcd 100644 --- a/code/modules/mob/living/carbon/human/human_attackalien.dm +++ b/code/modules/mob/living/carbon/human/human_attackalien.dm @@ -15,7 +15,6 @@ M.put_in_active_hand(G) - grabbed_by += G G.synch() LAssailant = M diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index bacef8541b..b2e98a8373 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -102,7 +102,6 @@ if(!G) //the grab will delete itself in New if affecting is anchored return M.put_in_active_hand(G) - grabbed_by += G G.synch() LAssailant = M diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index fca42a276c..94b2d36289 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -681,6 +681,7 @@ It can still be worn/put on as normal. for (var/obj/item/weapon/grab/G in target.grabbed_by) if (G.loc == source && G.state >= GRAB_AGGRESSIVE) grabbing = 1 + break if (!grabbing) slot_to_process = null source << "\red Your grasp was broken before you could restrain [target]!" diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 7bb9af2a15..982dc98303 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -277,7 +277,6 @@ M.put_in_active_hand(G) - grabbed_by += G G.synch() LAssailant = M @@ -342,11 +341,10 @@ if ("grab") if (M == src) return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, M, src ) + var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, src ) M.put_in_active_hand(G) - grabbed_by += G G.synch() LAssailant = M diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 40b3a4acd1..2b7c203777 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -839,11 +839,10 @@ if ("grab") if (M == src) return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, M, src ) + var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, src ) M.put_in_active_hand(G) - grabbed_by += G G.synch() playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) for(var/mob/O in viewers(src, null)) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 0fb08d0868..192d726aa4 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -253,7 +253,6 @@ M.put_in_active_hand(G) - grabbed_by += G G.synch() G.affecting = src LAssailant = M @@ -285,11 +284,10 @@ if(!(status_flags & CANPUSH)) return - var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, M, src ) + var/obj/item/weapon/grab/G = new /obj/item/weapon/grab( M, src ) M.put_in_active_hand(G) - grabbed_by += G G.synch() G.affecting = src LAssailant = M diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index a95f8612c1..dd04a5781e 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -28,6 +28,8 @@ del(src) return + affecting.grabbed_by += src + hud = new /obj/screen/grab(src) hud.icon_state = "reinforce" hud.name = "reinforce grab" diff --git a/code/unused/hivebot/hivebot.dm b/code/unused/hivebot/hivebot.dm index cf764c088b..ade7dab091 100644 --- a/code/unused/hivebot/hivebot.dm +++ b/code/unused/hivebot/hivebot.dm @@ -207,7 +207,6 @@ M.r_hand = G G.layer = 20 G.affecting = src - src.grabbed_by += G G.synch() playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) for(var/mob/O in viewers(src, null))