From 9acb50006a7f00d55a7373143fde52933df2ffdf Mon Sep 17 00:00:00 2001 From: eppc0330 <47050704+eppc0330@users.noreply.github.com> Date: Sun, 8 May 2022 00:48:20 +0900 Subject: [PATCH] Fix equip order (#6876) * Fixes equip order * Accessoires now prioritize the left side of the equipment window (if both slots are occupied) * Weapons now prioritize the left side (right hand) in renewal * Weapons still prioritize the right side (shield hand) in pre-renewal --- src/map/pc.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/map/pc.cpp b/src/map/pc.cpp index b0c9afb369..8ecec96203 100755 --- a/src/map/pc.cpp +++ b/src/map/pc.cpp @@ -11386,7 +11386,7 @@ bool pc_equipitem(struct map_session_data *sd,short n,int req_pos,bool equipswit if(pos == EQP_ACC) { //Accessories should only go in one of the two. pos = req_pos&EQP_ACC; if (pos == EQP_ACC) //User specified both slots. - pos = equip_index[EQI_ACC_R] >= 0 ? EQP_ACC_L : EQP_ACC_R; + pos = (equip_index[EQI_ACC_R] >= 0 && equip_index[EQI_ACC_L] < 0) ? EQP_ACC_L : EQP_ACC_R; for (i = 0; i < sd->inventory_data[n]->slots; i++) { // Accessories that have cards that force equip location if (!sd->inventory.u.items_inventory[n].card[i]) @@ -11406,11 +11406,15 @@ bool pc_equipitem(struct map_session_data *sd,short n,int req_pos,bool equipswit } else if(pos == EQP_ARMS && id->equip == EQP_HAND_R) { //Dual wield capable weapon. pos = (req_pos&EQP_ARMS); if (pos == EQP_ARMS) //User specified both slots, pick one for them. +#ifdef RENEWAL + pos = (equip_index[EQI_HAND_R] >= 0 && equip_index[EQI_HAND_L] < 0) ? EQP_HAND_L : EQP_HAND_R; +#else pos = equip_index[EQI_HAND_R] >= 0 ? EQP_HAND_L : EQP_HAND_R; +#endif } else if(pos == EQP_SHADOW_ACC) { // Shadow System pos = req_pos&EQP_SHADOW_ACC; if (pos == EQP_SHADOW_ACC) - pos = equip_index[EQI_SHADOW_ACC_L] >= 0 ? EQP_SHADOW_ACC_R : EQP_SHADOW_ACC_L; + pos = (equip_index[EQI_SHADOW_ACC_L] >= 0 && equip_index[EQI_SHADOW_ACC_R] < 0) ? EQP_SHADOW_ACC_R : EQP_SHADOW_ACC_L; } else if(pos == EQP_SHADOW_ARMS && id->equip == EQP_SHADOW_WEAPON) { pos = (req_pos&EQP_SHADOW_ARMS); if( pos == EQP_SHADOW_ARMS )