Browse Source

Merge pull request #918 from AJenbo/inv.cpp

Inv.cpp
pull/88/head
Robin Eklind 7 years ago committed by GitHub
parent
commit
951ce55f4d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 111
      Source/inv.cpp

111
Source/inv.cpp

@ -760,53 +760,39 @@ 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;
}
return 0;
return FALSE;
}
int SwapItem(ItemStruct *a, ItemStruct *b)
{
int v2; // eax
ItemStruct h; // [esp+8h] [ebp-170h]
qmemcpy(&h, a, sizeof(h));
v2 = h._iCurs;
qmemcpy(a, b, sizeof(ItemStruct));
qmemcpy(b, &h, sizeof(ItemStruct));
return v2 + CURSOR_FIRSTITEM;
ItemStruct h;
h = *a;
*a = *b;
*b = h;
return h._iCurs + CURSOR_FIRSTITEM;
}
void CheckInvPaste(int pnum, int mx, int my)
@ -1753,42 +1739,33 @@ void CheckQuestItem(int pnum)
void InvGetItem(int pnum, int ii)
{
int v2; // ebp
int v3; // edx
int v4; // ecx
int v5; // ecx
int pnuma; // [esp+4h] [ebp-8h]
int v7; // [esp+8h] [ebp-4h]
v7 = ii;
pnuma = pnum;
int i;
if (dropGoldFlag) {
dropGoldFlag = FALSE;
dropGoldValue = 0;
}
v2 = ii;
if (dItem[item[ii]._ix][item[ii]._iy]) {
if (myplr == pnum && pcurs >= CURSOR_FIRSTITEM)
NetSendCmdPItem(TRUE, CMD_SYNCPUTITEM, plr[myplr].WorldX, plr[myplr].WorldY);
_HIBYTE(item[v2]._iCreateInfo) &= 0x7Fu;
qmemcpy(&plr[pnuma].HoldItem, &item[v2], sizeof(plr[pnuma].HoldItem));
CheckQuestItem(pnuma);
CheckBookLevel(pnuma);
CheckItemStats(pnuma);
v3 = 0;
dItem[item[v2]._ix][item[v2]._iy] = 0;
while (v3 < numitems) {
v4 = itemactive[v3];
if (v4 == v7) {
DeleteItem(v4, v3);
v3 = 0;
item[ii]._iCreateInfo &= ~0x8000;
plr[pnum].HoldItem = item[ii];
CheckQuestItem(pnum);
CheckBookLevel(pnum);
CheckItemStats(pnum);
dItem[item[ii]._ix][item[ii]._iy] = 0;
i = 0;
while (i < numitems) {
if (itemactive[i] == ii) {
DeleteItem(itemactive[i], i);
i = 0;
} else {
++v3;
i++;
}
}
v5 = plr[pnuma].HoldItem._iCurs;
pcursitem = -1;
SetCursor_(v5 + CURSOR_FIRSTITEM);
SetCursor_(plr[pnum].HoldItem._iCurs + CURSOR_FIRSTITEM);
}
}
// 4B8CC0: using guessed type char pcursitem;

Loading…
Cancel
Save