aboutsummaryrefslogtreecommitdiff
path: root/src
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 /src
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)
Diffstat (limited to 'src')
-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;