diff --git a/Source/inv.cpp b/Source/inv.cpp index 1b7476e80..02e82d6de 100644 --- a/Source/inv.cpp +++ b/Source/inv.cpp @@ -760,41 +760,32 @@ int GoldAutoPlace(int pnum) int WeaponAutoPlace(int pnum) { - int v1; // edi - int v2; // eax - int v3; // ecx - ItemStruct *v4; // esi - ItemStruct *v5; // edi - int result; // eax - - v1 = pnum; - if (plr[pnum].HoldItem._iLoc == ILOC_TWOHAND) { - if (plr[v1].InvBody[INVLOC_HAND_LEFT]._itype != ITYPE_NONE || plr[v1].InvBody[INVLOC_HAND_RIGHT]._itype != ITYPE_NONE) - return 0; - LABEL_12: - NetSendCmdChItem(TRUE, 4u); - v4 = &plr[v1].HoldItem; - v5 = &plr[v1].InvBody[INVLOC_HAND_LEFT]; - goto LABEL_13; - } - v2 = plr[v1].InvBody[INVLOC_HAND_LEFT]._itype; - if (v2 != ITYPE_NONE && plr[v1].InvBody[INVLOC_HAND_LEFT]._iClass == 1) - return 0; - v3 = plr[v1].InvBody[INVLOC_HAND_RIGHT]._itype; - if (v3 != ITYPE_NONE && plr[v1].InvBody[INVLOC_HAND_RIGHT]._iClass == 1) - return 0; - if (v2 == ITYPE_NONE) - goto LABEL_12; - if (v3 == ITYPE_NONE && plr[v1].InvBody[INVLOC_HAND_LEFT]._iLoc != ILOC_TWOHAND) { - NetSendCmdChItem(TRUE, 5u); - v4 = &plr[v1].HoldItem; - v5 = &plr[v1].InvBody[INVLOC_HAND_RIGHT]; - LABEL_13: - result = 1; - qmemcpy(v5, v4, sizeof(ItemStruct)); - return result; + if (plr[pnum].HoldItem._iLoc != ILOC_TWOHAND) { + if (plr[pnum].InvBody[INVLOC_HAND_LEFT]._itype != ITYPE_NONE && plr[pnum].InvBody[INVLOC_HAND_LEFT]._iClass == ICLASS_WEAPON) + return FALSE; + if (plr[pnum].InvBody[INVLOC_HAND_RIGHT]._itype != ITYPE_NONE && plr[pnum].InvBody[INVLOC_HAND_RIGHT]._iClass == ICLASS_WEAPON) + return FALSE; + if (plr[pnum].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_NONE) { + NetSendCmdChItem(TRUE, INVLOC_HAND_LEFT); + plr[pnum].InvBody[INVLOC_HAND_LEFT] = plr[pnum].HoldItem; + return TRUE; + } + if (plr[pnum].InvBody[INVLOC_HAND_RIGHT]._itype == ITYPE_NONE && plr[pnum].InvBody[INVLOC_HAND_LEFT]._iLoc != ILOC_TWOHAND) { + NetSendCmdChItem(TRUE, INVLOC_HAND_RIGHT); + plr[pnum].InvBody[INVLOC_HAND_RIGHT] = plr[pnum].HoldItem; + return TRUE; + } + } else { + if (plr[pnum].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_NONE && plr[pnum].InvBody[INVLOC_HAND_RIGHT]._itype == ITYPE_NONE) { + NetSendCmdChItem(TRUE, INVLOC_HAND_LEFT); + plr[pnum].InvBody[INVLOC_HAND_LEFT] = plr[pnum].HoldItem; + return TRUE; + } else { + return FALSE; + } } - return 0; + + return FALSE; } int SwapItem(ItemStruct *a, ItemStruct *b)