aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-10-02 20:49:29 -0300
committerjoschiwald <joschiwald.trinity@gmail.com>2017-03-05 01:06:40 +0100
commit44d48c80ee076dfed754dcf9a025890335a20841 (patch)
treee4a224619a198eb7dd69370ae038d9a6a77bcf5a
parent062ca4ac69140b74c3034e60c671c7d418dea188 (diff)
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) (cherry picked from commit bdf7cf6d50f0ab3409d66cd6bcc1fb783053608b)
-rw-r--r--src/server/game/Entities/Player/Player.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 168ab141b25..f09e8e136df 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -13311,14 +13311,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()->GetInventoryType() == INVTYPE_2HWEAPON)
+ return true;
- if (!mainItem || !offItem)
+ Item* mainItem = GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
+ if (!mainItem || mainItem->GetTemplate()->GetInventoryType() != INVTYPE_2HWEAPON)
return false;
- if (mainItem->GetTemplate()->GetInventoryType() != INVTYPE_2HWEAPON &&
- offItem->GetTemplate()->GetInventoryType() != INVTYPE_2HWEAPON)
+ if (!offItem)
return false;
return true;