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 )