From 569e89abd0d40d3ff4541c9cc88e5d780fcac478 Mon Sep 17 00:00:00 2001
From: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Date: Fri, 5 Jun 2020 16:23:31 -0400
Subject: [PATCH] Minor circle hand fixes (#51276)
* love being "the circle game" person now
* most useless flag ever
---
code/__DEFINES/obj_flags.dm | 1 +
code/datums/components/riding.dm | 3 +++
code/game/objects/items/weaponry.dm | 4 ++--
code/modules/mob/living/carbon/human/human_defense.dm | 2 +-
4 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm
index 12d01bd1374..c29184e5c30 100644
--- a/code/__DEFINES/obj_flags.dm
+++ b/code/__DEFINES/obj_flags.dm
@@ -29,6 +29,7 @@
#define IN_STORAGE (1<<11) //is this item in the storage item, such as backpack? used for tooltips
#define SURGICAL_TOOL (1<<12) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes)
#define EYE_STAB (1<<13) /// Item can be used to eyestab
+#define HAND_ITEM (1<<14) /// If an item is just your hand (circled hand, slapper) and shouldn't block things like riding
// Flags for the clothing_flags var on /obj/item/clothing
diff --git a/code/datums/components/riding.dm b/code/datums/components/riding.dm
index 98f4d5afe06..5482f3b2167 100644
--- a/code/datums/components/riding.dm
+++ b/code/datums/components/riding.dm
@@ -329,6 +329,9 @@
else
inhand.rider = riding_target_override
inhand.parent = AM
+ for(var/obj/item/I in user.held_items) // yes i know this sucks but these are ABSTRACT++ dumbness and i'm not adding a whole new flag for these two meme items
+ if((I.obj_flags & HAND_ITEM))
+ qdel(I)
if(user.put_in_hands(inhand, TRUE))
amount_equipped++
else
diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm
index 7629827f6ff..6eeecd43ff9 100644
--- a/code/game/objects/items/weaponry.dm
+++ b/code/game/objects/items/weaponry.dm
@@ -683,7 +683,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
icon_state = "madeyoulook"
force = 0
throwforce = 0
- item_flags = DROPDEL | ABSTRACT
+ item_flags = DROPDEL | ABSTRACT | HAND_ITEM
attack_verb = list("bopped")
/obj/item/circlegame/Initialize()
@@ -783,7 +783,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
inhand_icon_state = "nothing"
force = 0
throwforce = 0
- item_flags = DROPDEL | ABSTRACT
+ item_flags = DROPDEL | ABSTRACT | HAND_ITEM
attack_verb = list("slapped")
hitsound = 'sound/effects/snap.ogg'
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index f843f8909b9..6d7097dcfd2 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -203,7 +203,7 @@
if(M.a_intent == INTENT_DISARM) //Always drop item in hand, if no item, get stunned instead.
var/obj/item/I = get_active_held_item()
- if(I && dropItemToGround(I))
+ if(I && !(I.item_flags & ABSTRACT) && dropItemToGround(I))
playsound(loc, 'sound/weapons/slash.ogg', 25, TRUE, -1)
visible_message("[M] disarmed [src]!", \
"[M] disarmed you!", "You hear aggressive shuffling!", null, M)