diff options
author | ariel- <ariel-@users.noreply.github.com> | 2016-10-02 20:49:29 -0300 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2016-10-02 20:49:29 -0300 |
commit | bdf7cf6d50f0ab3409d66cd6bcc1fb783053608b (patch) | |
tree | 9b9711e2937938b001e2319580fccfeec38bbfe5 /src | |
parent | 625ca6ec1ca524f7435b34408470c9a04b675566 (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)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 9 |
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 881625dd7c3..6b54554ccbd 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -13346,14 +13346,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; |