From 6ee820afe46351e2c984e8c52a854f9fbb5279cc Mon Sep 17 00:00:00 2001 From: ariel- Date: Sun, 2 Oct 2016 20:49:29 -0300 Subject: [PATCH] Core/Player: correct logic for IsUsingTwoHandedWeaponInOneHand Fixes penalty not being applied when we are using a 2H in offhand, and a unarmed MH. MH may do unarmed attacks in this case. (reciprocal of 2H MH, unarmed OH, only uses MH normally, OH doesn't unarmed attack) --- src/server/game/Entities/Player/Player.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 3b76a3479a..761f559123 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -13172,14 +13172,15 @@ bool Player::IsTwoHandUsed() const bool Player::IsUsingTwoHandedWeaponInOneHand() const { - Item* mainItem = GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND); Item* offItem = GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND); + if (offItem && offItem->GetTemplate()->InventoryType == INVTYPE_2HWEAPON) + return true; - if (!mainItem || !offItem) + Item* mainItem = GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND); + if (!mainItem || mainItem->GetTemplate()->InventoryType != INVTYPE_2HWEAPON) return false; - if (mainItem->GetTemplate()->InventoryType != INVTYPE_2HWEAPON && - offItem->GetTemplate()->InventoryType != INVTYPE_2HWEAPON) + if (!offItem) return false; return true;