Browse Source

Add enumds for _pgfxnum and fully use inv_body_loc (#392)

* Add enumds for _pgfxnum and fully use inv_body_loc

* _iIdentified is BOOL

* _pgfxnum
pull/25/head
Anders Jenbo 8 years ago committed by Robin Eklind
parent
commit
411fa9f24a
  1. 20
      Source/control.cpp
  2. 146
      Source/inv.cpp
  3. 78
      Source/items.cpp
  4. 2
      Source/msg.cpp
  5. 58
      Source/objects.cpp
  6. 30
      Source/player.cpp
  7. 81
      Source/stores.cpp
  8. 18
      enums.h

20
Source/control.cpp

@ -568,10 +568,10 @@ LABEL_32:
break;
case RSPLTYPE_CHARGES:
sprintf(infostr, "Staff of %s", spelldata[pSpell].sNameText);
if ( plr[myplr].InvBody[4]._iCharges == 1 )
if ( plr[myplr].InvBody[INVLOC_HAND_LEFT]._iCharges == 1 )
strcpy(tempstr, "1 Charge");
else
sprintf(tempstr, "%i Charges", plr[myplr].InvBody[4]._iCharges);
sprintf(tempstr, "%i Charges", plr[myplr].InvBody[INVLOC_HAND_LEFT]._iCharges);
goto LABEL_32;
}
}
@ -1610,10 +1610,10 @@ LABEL_54:
case RSPLTYPE_CHARGES:
sprintf(tempstr, "Staff of %s", spelldata[v4].sNameText);
AddPanelString(tempstr, 1);
if ( plr[myplr].InvBody[4]._iCharges == 1 )
if ( plr[myplr].InvBody[INVLOC_HAND_LEFT]._iCharges == 1 )
strcpy(tempstr, "1 Charge");
else
sprintf(tempstr, "%i Charges", plr[myplr].InvBody[4]._iCharges);
sprintf(tempstr, "%i Charges", plr[myplr].InvBody[INVLOC_HAND_LEFT]._iCharges);
goto LABEL_54;
}
}
@ -2119,7 +2119,7 @@ void __cdecl DrawChr()
v30 = plr[v2]._pIMinDam;
v30 += plr[v2]._pIBonusDamMod + v30 * v3 / 100;
v4 = plr[v2]._pDamageMod;
v5 = plr[v2].InvBody[4]._itype == ITYPE_BOW;
v5 = plr[v2].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_BOW;
v29 = plr[v2]._pDamageMod;
if ( v5 && _LOBYTE(plr[v2]._pClass) != 1 )
v4 >>= 1;
@ -2127,7 +2127,7 @@ void __cdecl DrawChr()
v6 = plr[v2]._pIBonusDam;
v28 = plr[v2]._pIMaxDam;
v7 = plr[v2]._pIBonusDamMod + v28 * v6 / 100 + v28;
if ( plr[v2].InvBody[4]._itype != ITYPE_BOW || _LOBYTE(plr[v2]._pClass) == 1 )
if ( plr[v2].InvBody[INVLOC_HAND_LEFT]._itype != ITYPE_BOW || _LOBYTE(plr[v2]._pClass) == 1 )
v8 = v29 + v7;
else
v8 = (v29 >> 1) + v7;
@ -2551,9 +2551,9 @@ void __cdecl DrawDurIcon()
v0 = 336;
v1 = &plr[myplr];
v2 = DrawDurIcon4Item(v1->InvBody, v0, 4);
v3 = DrawDurIcon4Item(&v1->InvBody[6], v2, 3);
v4 = DrawDurIcon4Item(&v1->InvBody[4], v3, 0);
DrawDurIcon4Item(&v1->InvBody[5], v4, 0);
v3 = DrawDurIcon4Item(&v1->InvBody[INVLOC_CHEST], v2, 3);
v4 = DrawDurIcon4Item(&v1->InvBody[INVLOC_HAND_LEFT], v3, 0);
DrawDurIcon4Item(&v1->InvBody[INVLOC_HAND_RIGHT], v4, 0);
}
}
// 4B8968: using guessed type int sbookflag;
@ -2760,7 +2760,7 @@ void __cdecl DrawSpellBook()
{
if ( v3 == 3 )
{
sprintf(tempstr, "Staff (%i charges)", plr[myplr].InvBody[4]._iCharges);
sprintf(tempstr, "Staff (%i charges)", plr[myplr].InvBody[INVLOC_HAND_LEFT]._iCharges);
}
else
{

146
Source/inv.cpp

@ -900,27 +900,27 @@ int __fastcall WeaponAutoPlace(int pnum)
v1 = pnum;
if ( plr[pnum].HoldItem._iLoc == ILOC_TWOHAND )
{
if ( plr[v1].InvBody[4]._itype != -1 || plr[v1].InvBody[5]._itype != -1 )
if ( plr[v1].InvBody[INVLOC_HAND_LEFT]._itype != -1 || plr[v1].InvBody[INVLOC_HAND_RIGHT]._itype != -1 )
return 0;
LABEL_12:
NetSendCmdChItem(1u, 4u);
v4 = &plr[v1].HoldItem;
v5 = &plr[v1].InvBody[4];
v5 = &plr[v1].InvBody[INVLOC_HAND_LEFT];
goto LABEL_13;
}
v2 = plr[v1].InvBody[4]._itype;
if ( v2 != -1 && plr[v1].InvBody[4]._iClass == 1 )
v2 = plr[v1].InvBody[INVLOC_HAND_LEFT]._itype;
if ( v2 != -1 && plr[v1].InvBody[INVLOC_HAND_LEFT]._iClass == 1 )
return 0;
v3 = plr[v1].InvBody[5]._itype;
if ( v3 != -1 && plr[v1].InvBody[5]._iClass == 1 )
v3 = plr[v1].InvBody[INVLOC_HAND_RIGHT]._itype;
if ( v3 != -1 && plr[v1].InvBody[INVLOC_HAND_RIGHT]._iClass == 1 )
return 0;
if ( v2 == -1 )
goto LABEL_12;
if ( v3 == -1 && plr[v1].InvBody[4]._iLoc != ILOC_TWOHAND )
if ( v3 == -1 && plr[v1].InvBody[INVLOC_HAND_LEFT]._iLoc != ILOC_TWOHAND )
{
NetSendCmdChItem(1u, 5u);
v4 = &plr[v1].HoldItem;
v5 = &plr[v1].InvBody[5];
v5 = &plr[v1].InvBody[INVLOC_HAND_RIGHT];
LABEL_13:
result = 1;
qmemcpy(v5, v4, sizeof(ItemStruct));
@ -1113,75 +1113,75 @@ LABEL_93:
case ILOC_ONEHAND:
if ( v10 > 12 )
{
if ( plr[v3].InvBody[5]._itype == ITYPE_NONE )
if ( plr[v3].InvBody[INVLOC_HAND_RIGHT]._itype == ITYPE_NONE )
{
v25 = plr[v3].InvBody[4]._itype;
v25 = plr[v3].InvBody[INVLOC_HAND_LEFT]._itype;
if ( v25 == ITYPE_NONE )
goto LABEL_232;
if ( plr[v3].InvBody[4]._iLoc == ILOC_TWOHAND )
if ( plr[v3].InvBody[INVLOC_HAND_LEFT]._iLoc == ILOC_TWOHAND )
{
NetSendCmdDelItem(0, 4u);
NetSendCmdChItem(0, 5u);
SwapItem(&plr[v3].InvBody[5], &plr[v3].InvBody[4]);
v23 = &plr[v3].InvBody[5];
SwapItem(&plr[v3].InvBody[INVLOC_HAND_RIGHT], &plr[v3].InvBody[INVLOC_HAND_LEFT]);
v23 = &plr[v3].InvBody[INVLOC_HAND_RIGHT];
LABEL_99:
v24 = SwapItem(v23, &plr[v3].HoldItem);
LABEL_172:
cursor_ida = v24;
goto LABEL_226;
}
if ( v25 == ITYPE_NONE || plr[v3].InvBody[4]._iClass != plr[v3].HoldItem._iClass )
if ( v25 == ITYPE_NONE || plr[v3].InvBody[INVLOC_HAND_LEFT]._iClass != plr[v3].HoldItem._iClass )
{
LABEL_232:
NetSendCmdChItem(0, 5u);
v22 = &plr[v3].InvBody[5];
v22 = &plr[v3].InvBody[INVLOC_HAND_RIGHT];
LABEL_158:
qmemcpy(v22, &plr[v3].HoldItem, sizeof(ItemStruct));
goto LABEL_226;
}
}
else if ( plr[v3].InvBody[4]._itype == ITYPE_NONE
|| plr[v3].InvBody[4]._iClass != plr[v3].HoldItem._iClass )
else if ( plr[v3].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_NONE
|| plr[v3].InvBody[INVLOC_HAND_LEFT]._iClass != plr[v3].HoldItem._iClass )
{
goto LABEL_114;
}
}
else
{
if ( plr[v3].InvBody[4]._itype == ITYPE_NONE )
if ( plr[v3].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_NONE )
{
if ( plr[v3].InvBody[5]._itype != ITYPE_NONE
&& plr[v3].InvBody[5]._iClass == plr[v3].HoldItem._iClass )
if ( plr[v3].InvBody[INVLOC_HAND_RIGHT]._itype != ITYPE_NONE
&& plr[v3].InvBody[INVLOC_HAND_RIGHT]._iClass == plr[v3].HoldItem._iClass )
{
LABEL_114:
NetSendCmdChItem(0, 5u);
v23 = &plr[v3].InvBody[5];
v23 = &plr[v3].InvBody[INVLOC_HAND_RIGHT];
goto LABEL_99;
}
NetSendCmdChItem(0, 4u);
v22 = &plr[v3].InvBody[4];
v22 = &plr[v3].InvBody[INVLOC_HAND_LEFT];
goto LABEL_158;
}
if ( plr[v3].InvBody[5]._itype != ITYPE_NONE
&& plr[v3].InvBody[5]._iClass == plr[v3].HoldItem._iClass )
if ( plr[v3].InvBody[INVLOC_HAND_RIGHT]._itype != ITYPE_NONE
&& plr[v3].InvBody[INVLOC_HAND_RIGHT]._iClass == plr[v3].HoldItem._iClass )
{
goto LABEL_114;
}
}
NetSendCmdChItem(0, 4u);
v23 = &plr[v3].InvBody[4];
v23 = &plr[v3].InvBody[INVLOC_HAND_LEFT];
goto LABEL_99;
case ILOC_TWOHAND:
NetSendCmdDelItem(0, 5u);
if ( plr[v3].InvBody[4]._itype == ITYPE_NONE )
if ( plr[v3].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_NONE )
goto LABEL_147;
v26 = plr[v3].InvBody[5]._itype;
v26 = plr[v3].InvBody[INVLOC_HAND_RIGHT]._itype;
if ( v26 == -1 )
goto LABEL_146;
qmemcpy(&tempitem, &plr[v3].HoldItem, sizeof(tempitem));
v27 = &plr[v3].InvBody[5];
v27 = &plr[v3].InvBody[INVLOC_HAND_RIGHT];
if ( v26 != 5 )
v27 = &plr[v3].InvBody[4];
v27 = &plr[v3].InvBody[INVLOC_HAND_LEFT];
v28 = p;
qmemcpy(&plr[v3].HoldItem, v27, sizeof(plr[v3].HoldItem));
v29 = plr[v3].HoldItem._iCurs + 12;
@ -1208,33 +1208,33 @@ LABEL_114:
SetICursor(v33);
if ( !v67 )
return;
if ( plr[v3].InvBody[5]._itype == ITYPE_SHIELD )
plr[v3].InvBody[5]._itype = ITYPE_NONE;
if ( plr[v3].InvBody[INVLOC_HAND_RIGHT]._itype == ITYPE_SHIELD )
plr[v3].InvBody[INVLOC_HAND_RIGHT]._itype = ITYPE_NONE;
else
plr[v3].InvBody[4]._itype = ITYPE_NONE;
plr[v3].InvBody[INVLOC_HAND_LEFT]._itype = ITYPE_NONE;
LABEL_146:
if ( plr[v3].InvBody[4]._itype != ITYPE_NONE )
if ( plr[v3].InvBody[INVLOC_HAND_LEFT]._itype != ITYPE_NONE )
goto LABEL_149;
LABEL_147:
if ( plr[v3].InvBody[5]._itype == ITYPE_NONE )
if ( plr[v3].InvBody[INVLOC_HAND_RIGHT]._itype == ITYPE_NONE )
{
NetSendCmdChItem(0, 4u);
qmemcpy(&plr[v3].InvBody[4], &plr[v3].HoldItem, sizeof(plr[v3].InvBody[4]));
qmemcpy(&plr[v3].InvBody[INVLOC_HAND_LEFT], &plr[v3].HoldItem, sizeof(plr[v3].InvBody[INVLOC_HAND_LEFT]));
}
else
{
LABEL_149:
NetSendCmdChItem(0, 4u);
if ( plr[v3].InvBody[4]._itype == ITYPE_NONE )
SwapItem(&plr[v3].InvBody[4], &plr[v3].InvBody[5]);
cursor_ida = SwapItem(&plr[v3].InvBody[4], &plr[v3].HoldItem);
if ( plr[v3].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_NONE )
SwapItem(&plr[v3].InvBody[INVLOC_HAND_LEFT], &plr[v3].InvBody[INVLOC_HAND_RIGHT]);
cursor_ida = SwapItem(&plr[v3].InvBody[INVLOC_HAND_LEFT], &plr[v3].HoldItem);
}
if ( plr[v3].InvBody[4]._itype == ITYPE_STAFF )
if ( plr[v3].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_STAFF )
{
v34 = plr[v3].InvBody[4]._iSpell;
v34 = plr[v3].InvBody[INVLOC_HAND_LEFT]._iSpell;
if ( v34 )
{
if ( plr[v3].InvBody[4]._iCharges > 0 )
if ( plr[v3].InvBody[INVLOC_HAND_LEFT]._iCharges > 0 )
{
plr[v3]._pRSpell = v34;
_LOBYTE(plr[v3]._pRSplType) = 3;
@ -1245,16 +1245,16 @@ LABEL_149:
goto LABEL_226;
case ILOC_ARMOR:
NetSendCmdChItem(0, 6u);
if ( plr[v3].InvBody[6]._itype == ITYPE_NONE )
if ( plr[v3].InvBody[INVLOC_CHEST]._itype == ITYPE_NONE )
{
v22 = &plr[v3].InvBody[6];
v22 = &plr[v3].InvBody[INVLOC_CHEST];
goto LABEL_158;
}
v23 = &plr[v3].InvBody[6];
v23 = &plr[v3].InvBody[INVLOC_CHEST];
goto LABEL_99;
case ILOC_HELM:
NetSendCmdChItem(0, 0);
if ( plr[v3].InvBody[0]._itype == ITYPE_NONE )
if ( plr[v3].InvBody[INVLOC_HEAD]._itype == ITYPE_NONE )
{
v22 = plr[v3].InvBody;
goto LABEL_158;
@ -1265,32 +1265,32 @@ LABEL_149:
if ( v10 == 4 )
{
NetSendCmdChItem(0, 1u);
if ( plr[v3].InvBody[1]._itype == ITYPE_NONE )
if ( plr[v3].InvBody[INVLOC_RING_LEFT]._itype == ITYPE_NONE )
{
v22 = &plr[v3].InvBody[1];
v22 = &plr[v3].InvBody[INVLOC_RING_LEFT];
goto LABEL_158;
}
v23 = &plr[v3].InvBody[1];
v23 = &plr[v3].InvBody[INVLOC_RING_LEFT];
}
else
{
NetSendCmdChItem(0, 2u);
if ( plr[v3].InvBody[2]._itype == ITYPE_NONE )
if ( plr[v3].InvBody[INVLOC_RING_RIGHT]._itype == ITYPE_NONE )
{
v22 = &plr[v3].InvBody[2];
v22 = &plr[v3].InvBody[INVLOC_RING_RIGHT];
goto LABEL_158;
}
v23 = &plr[v3].InvBody[2];
v23 = &plr[v3].InvBody[INVLOC_RING_RIGHT];
}
goto LABEL_99;
case ILOC_AMULET:
NetSendCmdChItem(0, 3u);
if ( plr[v3].InvBody[3]._itype == ITYPE_NONE )
if ( plr[v3].InvBody[INVLOC_AMULET]._itype == ITYPE_NONE )
{
v22 = &plr[v3].InvBody[3];
v22 = &plr[v3].InvBody[INVLOC_AMULET];
goto LABEL_158;
}
v23 = &plr[v3].InvBody[3];
v23 = &plr[v3].InvBody[INVLOC_AMULET];
goto LABEL_99;
case ILOC_UNEQUIPABLE:
v35 = plr[v3].HoldItem._itype;
@ -2205,7 +2205,7 @@ void __fastcall AutoGetItem(int pnum, int ii)
else
{
v4 = 0;
if ( (!(plr[v3]._pgfxnum & 0xF) || (plr[v3]._pgfxnum & 0xF) == 1) && plr[v3]._pmode <= PM_WALK3 )
if ( ((plr[v3]._pgfxnum & 0xF) == ANIM_ID_UNARMED || (plr[v3]._pgfxnum & 0xF) == ANIM_ID_UNARMED_SHIELD) && plr[v3]._pmode <= PM_WALK3 )
{
if ( plr[v3].HoldItem._iStatFlag )
{
@ -2214,7 +2214,7 @@ void __fastcall AutoGetItem(int pnum, int ii)
v4 = WeaponAutoPlace(v2);
if ( v4 )
{
CalcPlrInv(v2, 1u);
CalcPlrInv(v2, TRUE);
goto LABEL_71;
}
}
@ -2823,7 +2823,7 @@ int __fastcall SyncPutItem(int pnum, int x, int y, int idx, int icreateinfo, int
{
RecreateItem(v25, idx, icreateinfo, iseed, ivalue);
if ( Id )
item[ic]._iIdentified = 1;
item[ic]._iIdentified = TRUE;
v27 = ic;
item[v27]._iDurability = dur;
item[v27]._iMaxDur = mdur;
@ -2885,21 +2885,21 @@ int __cdecl CheckInvHLight()
{
case 4:
v9 = 1;
v2 = &v3->InvBody[1];
v2 = &v3->InvBody[INVLOC_RING_LEFT];
goto LABEL_36;
case 5:
v9 = 2;
v2 = &v3->InvBody[2];
v2 = &v3->InvBody[INVLOC_RING_RIGHT];
goto LABEL_36;
case 6:
v9 = 3;
v2 = &v3->InvBody[3];
v2 = &v3->InvBody[INVLOC_AMULET];
goto LABEL_36;
}
if ( v0 >= 7 && v0 <= 12 )
{
v9 = 4;
v2 = &v3->InvBody[4];
v2 = &v3->InvBody[INVLOC_HAND_LEFT];
goto LABEL_36;
}
if ( v0 < 13 || v0 > 18 )
@ -2907,7 +2907,7 @@ int __cdecl CheckInvHLight()
if ( v0 >= 19 && v0 <= 24 )
{
v9 = 6;
v2 = &v3->InvBody[6];
v2 = &v3->InvBody[INVLOC_CHEST];
goto LABEL_36;
}
if ( v0 < 25 || v0 > 64 )
@ -2939,11 +2939,11 @@ LABEL_37:
_LOBYTE(result) = -1;
return result;
}
v2 = &v3->InvBody[4];
if ( v3->InvBody[4]._itype == -1 || v3->InvBody[4]._iLoc != 2 )
v2 = &v3->InvBody[INVLOC_HAND_LEFT];
if ( v3->InvBody[INVLOC_HAND_LEFT]._itype == -1 || v3->InvBody[INVLOC_HAND_LEFT]._iLoc != 2 )
{
v9 = 5;
v2 = &v3->InvBody[5];
v2 = &v3->InvBody[INVLOC_HAND_RIGHT];
}
else
{
@ -3077,11 +3077,11 @@ void __fastcall UseStaffCharge(int pnum)
int *v2; // eax
v1 = pnum;
if ( plr[pnum].InvBody[4]._itype != ITYPE_NONE
&& plr[v1].InvBody[4]._iMiscId == IMISC_STAFF
&& plr[v1].InvBody[4]._iSpell == plr[v1]._pRSpell )
if ( plr[pnum].InvBody[INVLOC_HAND_LEFT]._itype != ITYPE_NONE
&& plr[v1].InvBody[INVLOC_HAND_LEFT]._iMiscId == IMISC_STAFF
&& plr[v1].InvBody[INVLOC_HAND_LEFT]._iSpell == plr[v1]._pRSpell )
{
v2 = &plr[v1].InvBody[4]._iCharges;
v2 = &plr[v1].InvBody[INVLOC_HAND_LEFT]._iCharges;
if ( *v2 > 0 )
{
--*v2;
@ -3099,10 +3099,10 @@ BOOL __cdecl UseStaff()
if ( pcurs == CURSOR_HAND )
{
v0 = myplr;
if ( plr[myplr].InvBody[4]._itype != ITYPE_NONE
&& plr[v0].InvBody[4]._iMiscId == IMISC_STAFF
&& plr[v0].InvBody[4]._iSpell == plr[v0]._pRSpell
&& plr[v0].InvBody[4]._iCharges > 0 )
if ( plr[myplr].InvBody[INVLOC_HAND_LEFT]._itype != ITYPE_NONE
&& plr[v0].InvBody[INVLOC_HAND_LEFT]._iMiscId == IMISC_STAFF
&& plr[v0].InvBody[INVLOC_HAND_LEFT]._iSpell == plr[v0]._pRSpell
&& plr[v0].InvBody[INVLOC_HAND_LEFT]._iCharges > 0 )
{
result = TRUE;
}

78
Source/items.cpp

@ -854,12 +854,12 @@ void __fastcall CalcPlrItemVals(int p, BOOL Loadgfx)
mind = 1;
maxd = 1;
if ( plr[p].InvBody[4]._itype == ITYPE_SHIELD && plr[p].InvBody[4]._iStatFlag )
if ( plr[p].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_SHIELD && plr[p].InvBody[INVLOC_HAND_LEFT]._iStatFlag )
{
maxd = 3;
}
if ( plr[p].InvBody[5]._itype == ITYPE_SHIELD && plr[p].InvBody[5]._iStatFlag )
if ( plr[p].InvBody[INVLOC_HAND_RIGHT]._itype == ITYPE_SHIELD && plr[p].InvBody[INVLOC_HAND_RIGHT]._iStatFlag )
{
maxd = 3;
}
@ -1024,60 +1024,58 @@ void __fastcall CalcPlrItemVals(int p, BOOL Loadgfx)
g = 0;
if ( plr[p].InvBody[4]._itype != ITYPE_NONE
&& plr[p].InvBody[4]._iClass == ICLASS_WEAPON
&& plr[p].InvBody[4]._iStatFlag )
if ( plr[p].InvBody[INVLOC_HAND_LEFT]._itype != ITYPE_NONE
&& plr[p].InvBody[INVLOC_HAND_LEFT]._iClass == ICLASS_WEAPON
&& plr[p].InvBody[INVLOC_HAND_LEFT]._iStatFlag )
{
g = plr[p].InvBody[4]._itype;
g = plr[p].InvBody[INVLOC_HAND_LEFT]._itype;
}
if ( plr[p].InvBody[5]._itype != ITYPE_NONE
&& plr[p].InvBody[5]._iClass == ICLASS_WEAPON
&& plr[p].InvBody[5]._iStatFlag )
if ( plr[p].InvBody[INVLOC_HAND_RIGHT]._itype != ITYPE_NONE
&& plr[p].InvBody[INVLOC_HAND_RIGHT]._iClass == ICLASS_WEAPON
&& plr[p].InvBody[INVLOC_HAND_RIGHT]._iStatFlag )
{
g = plr[p].InvBody[5]._itype;
g = plr[p].InvBody[INVLOC_HAND_RIGHT]._itype;
}
switch ( g )
{
case ITYPE_SWORD:
g = 2;
g = ANIM_ID_SWORD;
break;
case ITYPE_AXE:
g = 5;
g = ANIM_ID_AXE;
break;
case ITYPE_BOW:
plr[p]._pwtype = 1;
g = 4;
g = ANIM_ID_BOW;
break;
case ITYPE_MACE:
g = 6;
g = ANIM_ID_MACE;
break;
case ITYPE_STAFF:
g = 8;
g = ANIM_ID_STAFF;
break;
}
if ( plr[p].InvBody[4]._itype == ITYPE_SHIELD && plr[p].InvBody[4]._iStatFlag )
if ( plr[p].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_SHIELD && plr[p].InvBody[INVLOC_HAND_LEFT]._iStatFlag )
{
plr[p]._pBlockFlag = 1;
g++;
}
if ( plr[p].InvBody[5]._itype == ITYPE_SHIELD && plr[p].InvBody[5]._iStatFlag )
if ( plr[p].InvBody[INVLOC_HAND_RIGHT]._itype == ITYPE_SHIELD && plr[p].InvBody[INVLOC_HAND_RIGHT]._iStatFlag )
{
plr[p]._pBlockFlag = 1;
g++;
}
if ( plr[p].InvBody[6]._itype == ITYPE_MARMOR && plr[p].InvBody[6]._iStatFlag )
if ( plr[p].InvBody[INVLOC_CHEST]._itype == ITYPE_MARMOR && plr[p].InvBody[INVLOC_CHEST]._iStatFlag )
{
// probably a flag set
g += 16;
g += ANIM_ID_MEDIUM_ARMOR;
}
if ( plr[p].InvBody[6]._itype == ITYPE_HARMOR && plr[p].InvBody[6]._iStatFlag )
if ( plr[p].InvBody[INVLOC_CHEST]._itype == ITYPE_HARMOR && plr[p].InvBody[INVLOC_CHEST]._iStatFlag )
{
// probably a flag set
g += 32;
g += ANIM_ID_HEAVY_ARMOR;
}
if ( plr[p]._pgfxnum != g && Loadgfx )
@ -1186,12 +1184,12 @@ void __fastcall CalcPlrStaff(int pnum)
signed __int64 v3; // rax
v1 = pnum;
v2 = plr[pnum].InvBody[4]._itype == ITYPE_NONE;
v2 = plr[pnum].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_NONE;
plr[v1]._pISpells[0] = 0;
plr[v1]._pISpells[1] = 0;
if ( !v2 && plr[v1].InvBody[4]._iStatFlag && plr[v1].InvBody[4]._iCharges > 0 )
if ( !v2 && plr[v1].InvBody[INVLOC_HAND_LEFT]._iStatFlag && plr[v1].InvBody[INVLOC_HAND_LEFT]._iCharges > 0 )
{
v3 = (__int64)1 << (_LOBYTE(plr[v1].InvBody[4]._iSpell) - 1);
v3 = (__int64)1 << (_LOBYTE(plr[v1].InvBody[INVLOC_HAND_LEFT]._iSpell) - 1);
plr[v1]._pISpells[0] = v3;
plr[v1]._pISpells[1] = HIDWORD(v3);
}
@ -1216,7 +1214,7 @@ void __fastcall CalcSelfItems(int pnum)
v2 = 0;
v3 = 0;
v4 = 0;
v5 = &v1->InvBody[0]._iStatFlag;
v5 = &v1->InvBody[INVLOC_HEAD]._iStatFlag;
v6 = 7;
do
{
@ -1239,7 +1237,7 @@ void __fastcall CalcSelfItems(int pnum)
do
{
v9 = 0;
v8 = &v1->InvBody[0]._iMinStr;
v8 = &v1->InvBody[INVLOC_HEAD]._iMinStr;
v10 = 7;
do
{
@ -2726,7 +2724,7 @@ void __fastcall SetupItem(int i)
il = ItemAnimLs[it];
item[i]._iAnimData = Item2Frm[it];
item[i]._iAnimLen = il;
item[i]._iIdentified = 0;
item[i]._iIdentified = FALSE;
item[i]._iPostDraw = 0;
if ( !plr[myplr].pLvlLoad )
@ -3618,7 +3616,7 @@ void __fastcall CheckIdentify(int pnum, int cii)
ItemStruct *pi; // esi
pi = &plr[pnum].InvBody[cii];
pi->_iIdentified = 1;
pi->_iIdentified = TRUE;
CalcPlrInv(pnum, 1);
@ -4839,7 +4837,7 @@ void __fastcall SpawnSmith(int lvl)
while ( item[0]._iIvalue > 140000 );
qmemcpy(v4, item, sizeof(ItemStruct));
v4->_iCreateInfo = lvl | 0x400;
v4->_iIdentified = 1;
v4->_iIdentified = TRUE;
v4->_iStatFlag = StoreStatOk(v4);
++v4;
if ( !--v9 )
@ -4924,7 +4922,7 @@ void __fastcall SpawnOnePremium(int i, int plvl)
while ( item[0]._iIvalue > 140000 );
qmemcpy(&premiumitem[i], item, sizeof(ItemStruct));
premiumitem[i]._iCreateInfo = plvl | 0x800;
premiumitem[i]._iIdentified = 1;
premiumitem[i]._iIdentified = TRUE;
premiumitem[i]._iStatFlag = StoreStatOk(&premiumitem[i]);
qmemcpy(item, &holditem, sizeof(ItemStruct));
}
@ -5123,7 +5121,7 @@ void __fastcall SpawnWitch(int lvl)
if ( item[0]._iIvalue <= 140000 )
{
qmemcpy(itm, item, sizeof(ItemStruct));
itm->_iIdentified = 1;
itm->_iIdentified = TRUE;
itm->_iCreateInfo = lvl | 0x2000;
WitchBookLevel(ii);
++ii;
@ -5185,7 +5183,7 @@ void __fastcall SpawnBoy(int lvl)
while ( item[0]._iIvalue > 90000 );
qmemcpy(&boyitem, item, sizeof(boyitem));
boyitem._iCreateInfo = lvl | 0x10;
boyitem._iIdentified = 1;
boyitem._iIdentified = TRUE;
boyitem._iStatFlag = StoreStatOk(&boyitem);
boylevel = lvl >> 1;
}
@ -5355,7 +5353,7 @@ void __fastcall SpawnHealer(int lvl)
GetItemAttrs(0, RndHealerItem(lvl) - 1, lvl);
qmemcpy(v4, item, sizeof(ItemStruct));
v4->_iCreateInfo = lvl | 0x4000;
v4->_iIdentified = 1;
v4->_iIdentified = TRUE;
v4->_iStatFlag = StoreStatOk(v4);
++v4;
--v10;
@ -5388,7 +5386,7 @@ void __fastcall RecreateSmithItem(int ii, int idx, int plvl, int iseed)
GetItemAttrs(ii, RndSmithItem(plvl) - 1, plvl);
item[ii]._iSeed = iseed;
item[ii]._iCreateInfo = plvl | 0x400;
item[ii]._iIdentified = 1;
item[ii]._iIdentified = TRUE;
}
void __fastcall RecreatePremiumItem(int ii, int idx, int lvl, int iseed)
@ -5401,7 +5399,7 @@ void __fastcall RecreatePremiumItem(int ii, int idx, int lvl, int iseed)
GetItemBonus(ii, itype, lvl >> 1, lvl, 1);
item[ii]._iCreateInfo = lvl | 0x800;
item[ii]._iSeed = iseed;
item[ii]._iIdentified = 1;
item[ii]._iIdentified = TRUE;
}
void __fastcall RecreateBoyItem(int ii, int idx, int lvl, int iseed)
@ -5414,7 +5412,7 @@ void __fastcall RecreateBoyItem(int ii, int idx, int lvl, int iseed)
GetItemBonus(ii, itype, lvl, 2 * lvl, 1);
item[ii]._iCreateInfo = lvl | 0x1000;
item[ii]._iSeed = iseed;
item[ii]._iIdentified = 1;
item[ii]._iIdentified = TRUE;
}
void __fastcall RecreateWitchItem(int ii, int idx, int lvl, int iseed)
@ -5439,7 +5437,7 @@ void __fastcall RecreateWitchItem(int ii, int idx, int lvl, int iseed)
}
item[ii]._iCreateInfo = lvl | 0x2000;
item[ii]._iSeed = iseed;
item[ii]._iIdentified = 1;
item[ii]._iIdentified = TRUE;
}
void __fastcall RecreateHealerItem(int ii, int idx, int lvl, int iseed)
@ -5452,7 +5450,7 @@ void __fastcall RecreateHealerItem(int ii, int idx, int lvl, int iseed)
GetItemAttrs(ii, idx, lvl);
item[ii]._iCreateInfo = lvl | 0x4000;
item[ii]._iSeed = iseed;
item[ii]._iIdentified = 1;
item[ii]._iIdentified = TRUE;
}
void __fastcall RecreateTownItem(int ii, int idx, unsigned short icreateinfo, int iseed, int ivalue)

2
Source/msg.cpp

@ -812,7 +812,7 @@ void __cdecl DeltaLoadLevel()
RecreateItem(v14, v16, v13, v18, v17);
v19 = v8 + 4721 * currlevel;
if ( *(&sgLevels[0].item[0].bId + v19) )
item[v14]._iIdentified = 1;
item[v14]._iIdentified = TRUE;
v20 = v14;
item[v20]._iDurability = *((unsigned char *)&sgLevels[0].item[0].bDur + v19);
item[v20]._iMaxDur = *((unsigned char *)&sgLevels[0].item[0].bMDur + v19);

58
Source/objects.cpp

@ -4980,7 +4980,7 @@ void __fastcall OperateShrine(int pnum, int i, int sType)
return;
v13 = arglist;
v14 = 7;
v15 = &plr[arglist].InvBody[0]._itype;
v15 = &plr[arglist].InvBody[INVLOC_HEAD]._itype;
v7 = 7;
do
{
@ -4992,7 +4992,7 @@ void __fastcall OperateShrine(int pnum, int i, int sType)
while ( v7 );
if ( v12 <= 0 )
goto LABEL_47;
v16 = &plr[v13].InvBody[0]._iMaxDur;
v16 = &plr[v13].InvBody[INVLOC_HEAD]._iMaxDur;
do
{
if ( *(v16 - 58) != -1 )
@ -5018,7 +5018,7 @@ void __fastcall OperateShrine(int pnum, int i, int sType)
while ( 1 )
{
v18 = 0;
v19 = &plr[v13].InvBody[0]._iMaxDur;
v19 = &plr[v13].InvBody[INVLOC_HEAD]._iMaxDur;
v20 = 7;
do
{
@ -5039,9 +5039,9 @@ void __fastcall OperateShrine(int pnum, int i, int sType)
goto LABEL_47;
v21 = random(0, 7);
v7 = v13 * 21720 + 368 * v21;
if ( *(int *)((char *)&plr[0].InvBody[0]._itype + v7) != -1 )
if ( *(int *)((char *)&plr[0].InvBody[INVLOC_HEAD]._itype + v7) != -1 )
{
v7 = *(int *)((char *)&plr[0].InvBody[0]._iMaxDur + v7);
v7 = *(int *)((char *)&plr[0].InvBody[INVLOC_HEAD]._iMaxDur + v7);
if ( v7 != 255 )
{
if ( v7 )
@ -5050,8 +5050,8 @@ void __fastcall OperateShrine(int pnum, int i, int sType)
}
}
v22 = 368 * v21 + v13 * 21720;
v23 = (int *)((char *)&plr[0].InvBody[0]._iDurability + v22);
v7 = (int)&plr[0].InvBody[0]._iMaxDur + v22;
v23 = (int *)((char *)&plr[0].InvBody[INVLOC_HEAD]._iDurability + v22);
v7 = (int)&plr[0].InvBody[INVLOC_HEAD]._iMaxDur + v22;
*v23 -= 20;
v24 = *v23;
*(_DWORD *)v7 -= 20;
@ -5069,39 +5069,39 @@ LABEL_47:
if ( arglist != myplr )
goto LABEL_280;
v26 = arglist;
if ( plr[arglist].InvBody[0]._itype != ITYPE_NONE )
plr[v26].InvBody[0]._iAC += 2;
if ( plr[v26].InvBody[6]._itype != ITYPE_NONE )
plr[v26].InvBody[6]._iAC += 2;
v27 = plr[v26].InvBody[4]._itype;
if ( plr[arglist].InvBody[INVLOC_HEAD]._itype != ITYPE_NONE )
plr[v26].InvBody[INVLOC_HEAD]._iAC += 2;
if ( plr[v26].InvBody[INVLOC_CHEST]._itype != ITYPE_NONE )
plr[v26].InvBody[INVLOC_CHEST]._iAC += 2;
v27 = plr[v26].InvBody[INVLOC_HAND_LEFT]._itype;
if ( v27 != ITYPE_NONE )
{
if ( v27 == ITYPE_SHIELD )
{
plr[v26].InvBody[4]._iAC += 2;
plr[v26].InvBody[INVLOC_HAND_LEFT]._iAC += 2;
}
else
{
v28 = plr[v26].InvBody[4]._iMinDam;
v29 = &plr[v26].InvBody[4]._iMaxDam;
v28 = plr[v26].InvBody[INVLOC_HAND_LEFT]._iMinDam;
v29 = &plr[v26].InvBody[INVLOC_HAND_LEFT]._iMaxDam;
--*v29;
if ( plr[v26].InvBody[4]._iMaxDam < v28 )
if ( plr[v26].InvBody[INVLOC_HAND_LEFT]._iMaxDam < v28 )
*v29 = v28;
}
}
v7 = plr[v26].InvBody[5]._itype;
v7 = plr[v26].InvBody[INVLOC_HAND_RIGHT]._itype;
if ( v7 != ITYPE_NONE )
{
if ( v7 == ITYPE_SHIELD )
{
plr[v26].InvBody[5]._iAC += 2;
plr[v26].InvBody[INVLOC_HAND_RIGHT]._iAC += 2;
}
else
{
v30 = plr[v26].InvBody[5]._iMinDam;
v7 = (int)&plr[v26].InvBody[5]._iMaxDam;
v30 = plr[v26].InvBody[INVLOC_HAND_RIGHT]._iMinDam;
v7 = (int)&plr[v26].InvBody[INVLOC_HAND_RIGHT]._iMaxDam;
--*(_DWORD *)v7;
if ( plr[v26].InvBody[5]._iMaxDam < v30 )
if ( plr[v26].InvBody[INVLOC_HAND_RIGHT]._iMaxDam < v30 )
*(_DWORD *)v7 = v30;
}
}
@ -5116,12 +5116,12 @@ LABEL_47:
if ( arglist != myplr )
goto LABEL_280;
v34 = arglist;
v35 = plr[arglist].InvBody[4]._itype;
v35 = plr[arglist].InvBody[INVLOC_HAND_LEFT]._itype;
if ( v35 != ITYPE_NONE && v35 != ITYPE_SHIELD )
++plr[v34].InvBody[4]._iMaxDam;
v7 = plr[v34].InvBody[5]._itype;
++plr[v34].InvBody[INVLOC_HAND_LEFT]._iMaxDam;
v7 = plr[v34].InvBody[INVLOC_HAND_RIGHT]._itype;
if ( v7 != ITYPE_NONE && v7 != ITYPE_SHIELD )
++plr[v34].InvBody[5]._iMaxDam;
++plr[v34].InvBody[INVLOC_HAND_RIGHT]._iMaxDam;
v36 = 0;
if ( plr[v34]._pNumInv > 0 )
{
@ -5163,7 +5163,7 @@ LABEL_47:
if ( arglist != myplr )
goto LABEL_280;
v38 = arglist;
v39 = &plr[arglist].InvBody[0]._iMaxCharges;
v39 = &plr[arglist].InvBody[INVLOC_HEAD]._iMaxCharges;
v40 = 7;
do
{
@ -5204,7 +5204,7 @@ LABEL_47:
if ( arglist != myplr )
goto LABEL_280;
v45 = arglist;
v46 = &plr[arglist].InvBody[0]._iDurability;
v46 = &plr[arglist].InvBody[INVLOC_HEAD]._iDurability;
v47 = 7;
do
{
@ -5677,7 +5677,7 @@ LABEL_47:
if ( v5 || arglist != myplr )
return;
v125 = arglist;
v126 = &plr[arglist].InvBody[0]._iIdentified;
v126 = &plr[arglist].InvBody[INVLOC_HEAD]._iIdentified;
v127 = 7;
do
{
@ -7265,7 +7265,7 @@ void __fastcall GetObjectStr(int i)
_LOBYTE(infoclr) = 2;
}
}
}
}
// 4B883C: using guessed type int infoclr;
// 5CCB10: using guessed type char setlvlnum;
// 5CF31D: using guessed type char setlevel;

30
Source/player.cpp

@ -445,40 +445,40 @@ void __fastcall SetPlrAnims(int pnum)
int gn = plr[pnum]._pgfxnum & 0xF;
if (pc == PC_WARRIOR) {
if (gn == 4) {
if (gn == ANIM_ID_BOW) {
if (leveltype != DTYPE_TOWN) {
plr[pnum]._pNFrames = 8;
}
plr[pnum]._pAWidth = 96;
plr[pnum]._pAFNum = 11;
} else if (gn == 5) {
} else if (gn == ANIM_ID_AXE) {
plr[pnum]._pAFrames = 20;
plr[pnum]._pAFNum = 10;
} else if (gn == 8) {
} else if (gn == ANIM_ID_STAFF) {
plr[pnum]._pAFrames = 16;
plr[pnum]._pAFNum = 11;
}
} else if (pc == PC_ROGUE) {
if (gn == 5) {
if (gn == ANIM_ID_AXE) {
plr[pnum]._pAFrames = 22;
plr[pnum]._pAFNum = 13;
} else if (gn == 4) {
} else if (gn == ANIM_ID_BOW) {
plr[pnum]._pAFrames = 12;
plr[pnum]._pAFNum = 7;
} else if (gn == 8) {
} else if (gn == ANIM_ID_STAFF) {
plr[pnum]._pAFrames = 16;
plr[pnum]._pAFNum = 11;
}
} else if (pc == PC_SORCERER) {
plr[pnum]._pSWidth = 128;
if (gn == 0) {
if (gn == ANIM_ID_UNARMED) {
plr[pnum]._pAFrames = 20;
} else if (gn == 1) {
} else if (gn == ANIM_ID_UNARMED_SHIELD) {
plr[pnum]._pAFNum = 9;
} else if (gn == 4) {
} else if (gn == ANIM_ID_BOW) {
plr[pnum]._pAFrames = 20;
plr[pnum]._pAFNum = 16;
} else if (gn == 5) {
} else if (gn == ANIM_ID_AXE) {
plr[pnum]._pAFrames = 24;
plr[pnum]._pAFNum = 16;
}
@ -632,11 +632,11 @@ void __fastcall CreatePlayer(int pnum, char c)
}
if (c == PC_WARRIOR) {
plr[pnum]._pgfxnum = 3;
plr[pnum]._pgfxnum = ANIM_ID_SWORD_SHIELD;
} else if (c == PC_ROGUE) {
plr[pnum]._pgfxnum = 4;
plr[pnum]._pgfxnum = ANIM_ID_BOW;
} else if (c == PC_SORCERER) {
plr[pnum]._pgfxnum = 8;
plr[pnum]._pgfxnum = ANIM_ID_STAFF;
}
for (i = 0; i < sizeof(plr[pnum]._pLvlVisited); i++) {
@ -813,7 +813,7 @@ void __fastcall InitPlayer(int pnum, BOOL FirstTime)
plr[pnum]._pSpell = SPL_INVALID;
plr[pnum]._pRSplType = RSPLTYPE_INVALID;
plr[pnum]._pSplType = RSPLTYPE_INVALID;
if ((plr[pnum]._pgfxnum & 0xF) == 4) {
if ((plr[pnum]._pgfxnum & 0xF) == ANIM_ID_BOW) {
plr[pnum]._pwtype = TRUE;
} else {
plr[pnum]._pwtype = FALSE;
@ -1708,7 +1708,7 @@ void __fastcall StartPlayerKill(int pnum, int earflag)
PlrDeadItem(pnum, &ear, 0, 0);
}
} else {
ItemStruct *pi = &plr[pnum].InvBody[0];
ItemStruct *pi = &plr[pnum].InvBody[INVLOC_HEAD];
i = NUM_INVLOC;
while (i != 0) {
i--;

81
Source/stores.cpp

@ -747,9 +747,8 @@ void __fastcall PrintStoreItem(ItemStruct *x, int l, char iclr)
sstr[0] = 0;
v3 = x;
v4 = x->_iIdentified == 0;
y = l;
if ( !v4 )
if ( x->_iIdentified )
{
if ( x->_iMagical != 2 )
{
@ -1135,31 +1134,31 @@ void __cdecl S_StartSRepair()
while ( (signed int)v1 < (signed int)&storehold[48]._itype );
v2 = myplr;
v3 = myplr;
if ( plr[myplr].InvBody[0]._itype != -1 && plr[v3].InvBody[0]._iDurability != plr[v3].InvBody[0]._iMaxDur )
if ( plr[myplr].InvBody[INVLOC_HEAD]._itype != -1 && plr[v3].InvBody[INVLOC_HEAD]._iDurability != plr[v3].InvBody[INVLOC_HEAD]._iMaxDur )
{
v12 = 1;
AddStoreHoldRepair(plr[v3].InvBody, -1);
v2 = myplr;
}
v4 = v2;
if ( plr[v2].InvBody[6]._itype != -1 && plr[v4].InvBody[6]._iDurability != plr[v4].InvBody[6]._iMaxDur )
if ( plr[v2].InvBody[INVLOC_CHEST]._itype != -1 && plr[v4].InvBody[INVLOC_CHEST]._iDurability != plr[v4].InvBody[INVLOC_CHEST]._iMaxDur )
{
v12 = 1;
AddStoreHoldRepair(&plr[v4].InvBody[6], -2);
AddStoreHoldRepair(&plr[v4].InvBody[INVLOC_CHEST], -2);
v2 = myplr;
}
v5 = v2;
if ( plr[v2].InvBody[4]._itype != -1 && plr[v5].InvBody[4]._iDurability != plr[v5].InvBody[4]._iMaxDur )
if ( plr[v2].InvBody[INVLOC_HAND_LEFT]._itype != -1 && plr[v5].InvBody[INVLOC_HAND_LEFT]._iDurability != plr[v5].InvBody[INVLOC_HAND_LEFT]._iMaxDur )
{
v12 = 1;
AddStoreHoldRepair(&plr[v5].InvBody[4], -3);
AddStoreHoldRepair(&plr[v5].InvBody[INVLOC_HAND_LEFT], -3);
v2 = myplr;
}
v6 = v2;
if ( plr[v2].InvBody[5]._itype != -1 && plr[v6].InvBody[5]._iDurability != plr[v6].InvBody[5]._iMaxDur )
if ( plr[v2].InvBody[INVLOC_HAND_RIGHT]._itype != -1 && plr[v6].InvBody[INVLOC_HAND_RIGHT]._iDurability != plr[v6].InvBody[INVLOC_HAND_RIGHT]._iMaxDur )
{
v12 = 1;
AddStoreHoldRepair(&plr[v6].InvBody[5], -4);
AddStoreHoldRepair(&plr[v6].InvBody[INVLOC_HAND_RIGHT], -4);
v2 = myplr;
}
v7 = 21720 * v2;
@ -1501,10 +1500,10 @@ void __cdecl S_StartWRecharge()
}
while ( (signed int)v0 < (signed int)&storehold[48]._itype );
v1 = myplr;
if ( plr[myplr].InvBody[4]._itype == ITYPE_STAFF && plr[v1].InvBody[4]._iCharges != plr[v1].InvBody[4]._iMaxCharges )
if ( plr[myplr].InvBody[INVLOC_HAND_LEFT]._itype == ITYPE_STAFF && plr[v1].InvBody[INVLOC_HAND_LEFT]._iCharges != plr[v1].InvBody[INVLOC_HAND_LEFT]._iMaxCharges )
{
v8 = 1;
qmemcpy(&v4, &plr[v1].InvBody[4], sizeof(v4));
qmemcpy(&v4, &plr[v1].InvBody[INVLOC_HAND_LEFT], sizeof(v4));
AddStoreHoldRecharge(v4, -1);
}
v2 = plr[v1]._pNumInv;
@ -1827,7 +1826,7 @@ bool __fastcall IdItemOk(ItemStruct *i)
if ( i->_itype != -1 )
{
if ( i->_iMagical )
result = i->_iIdentified == 0;
result = !i->_iIdentified;
}
return result;
}
@ -1861,40 +1860,40 @@ void __cdecl S_StartSIdentify()
qmemcpy(&itm, plr[myplr].InvBody, sizeof(ItemStruct));
AddStoreHoldId(itm, -1);
}
if ( IdItemOk(&plr[myplr].InvBody[6]) )
if ( IdItemOk(&plr[myplr].InvBody[INVLOC_CHEST]) )
{
idok = 1;
qmemcpy(&itm, &plr[myplr].InvBody[6], sizeof(ItemStruct));
qmemcpy(&itm, &plr[myplr].InvBody[INVLOC_CHEST], sizeof(ItemStruct));
AddStoreHoldId(itm, -2);
}
if ( IdItemOk(&plr[myplr].InvBody[4]) )
if ( IdItemOk(&plr[myplr].InvBody[INVLOC_HAND_LEFT]) )
{
idok = 1;
qmemcpy(&itm, &plr[myplr].InvBody[4], sizeof(ItemStruct));
qmemcpy(&itm, &plr[myplr].InvBody[INVLOC_HAND_LEFT], sizeof(ItemStruct));
AddStoreHoldId(itm, -3);
}
if ( IdItemOk(&plr[myplr].InvBody[5]) )
if ( IdItemOk(&plr[myplr].InvBody[INVLOC_HAND_RIGHT]) )
{
idok = 1;
qmemcpy(&itm, &plr[myplr].InvBody[5], sizeof(ItemStruct));
qmemcpy(&itm, &plr[myplr].InvBody[INVLOC_HAND_RIGHT], sizeof(ItemStruct));
AddStoreHoldId(itm, -4);
}
if ( IdItemOk(&plr[myplr].InvBody[1]) )
if ( IdItemOk(&plr[myplr].InvBody[INVLOC_RING_LEFT]) )
{
idok = 1;
qmemcpy(&itm, &plr[myplr].InvBody[1], sizeof(ItemStruct));
qmemcpy(&itm, &plr[myplr].InvBody[INVLOC_RING_LEFT], sizeof(ItemStruct));
AddStoreHoldId(itm, -5);
}
if ( IdItemOk(&plr[myplr].InvBody[2]) )
if ( IdItemOk(&plr[myplr].InvBody[INVLOC_RING_RIGHT]) )
{
idok = 1;
qmemcpy(&itm, &plr[myplr].InvBody[2], sizeof(ItemStruct));
qmemcpy(&itm, &plr[myplr].InvBody[INVLOC_RING_RIGHT], sizeof(ItemStruct));
AddStoreHoldId(itm, -6);
}
if ( IdItemOk(&plr[myplr].InvBody[3]) )
if ( IdItemOk(&plr[myplr].InvBody[INVLOC_AMULET]) )
{
idok = 1;
qmemcpy(&itm, &plr[myplr].InvBody[3], sizeof(ItemStruct));
qmemcpy(&itm, &plr[myplr].InvBody[INVLOC_AMULET], sizeof(ItemStruct));
AddStoreHoldId(itm, -7);
}
@ -2739,7 +2738,7 @@ void __cdecl SmithBuyItem()
TakePlrsMoney(plr[myplr].HoldItem._iIvalue);
if ( !plr[myplr].HoldItem._iMagical )
plr[myplr].HoldItem._iIdentified = 0;
plr[myplr].HoldItem._iIdentified = FALSE;
StoreAutoPlace();
idx = stextvhold + ((stextlhold - stextup) >> 2);
if ( idx == 19 )
@ -2835,7 +2834,7 @@ void __cdecl SmithBuyPItem()
TakePlrsMoney(plr[myplr].HoldItem._iIvalue);
if ( !plr[myplr].HoldItem._iMagical )
plr[myplr].HoldItem._iIdentified = 0;
plr[myplr].HoldItem._iIdentified = FALSE;
StoreAutoPlace();
xx = 0;
idx = (stextlhold - stextup) >> 2;
@ -3153,13 +3152,13 @@ void __cdecl SmithRepairItem()
else
{
if ( i == -1 )
plr[myplr].InvBody[0]._iDurability = plr[myplr].InvBody[0]._iMaxDur;
plr[myplr].InvBody[INVLOC_HEAD]._iDurability = plr[myplr].InvBody[INVLOC_HEAD]._iMaxDur;
if ( i == -2 )
plr[myplr].InvBody[6]._iDurability = plr[myplr].InvBody[6]._iMaxDur;
plr[myplr].InvBody[INVLOC_CHEST]._iDurability = plr[myplr].InvBody[INVLOC_CHEST]._iMaxDur;
if ( i == -3 )
plr[myplr].InvBody[4]._iDurability = plr[myplr].InvBody[4]._iMaxDur;
plr[myplr].InvBody[INVLOC_HAND_LEFT]._iDurability = plr[myplr].InvBody[INVLOC_HAND_LEFT]._iMaxDur;
if ( i == -4 )
plr[myplr].InvBody[5]._iDurability = plr[myplr].InvBody[5]._iMaxDur;
plr[myplr].InvBody[INVLOC_HAND_RIGHT]._iDurability = plr[myplr].InvBody[INVLOC_HAND_RIGHT]._iMaxDur;
}
}
// 69F108: using guessed type int stextup;
@ -3378,7 +3377,7 @@ void __cdecl WitchRechargeItem()
if ( i >= 0 )
plr[myplr].InvList[i]._iCharges = plr[myplr].InvList[i]._iMaxCharges;
else
plr[myplr].InvBody[4]._iCharges = plr[myplr].InvBody[4]._iMaxCharges;
plr[myplr].InvBody[INVLOC_HAND_LEFT]._iCharges = plr[myplr].InvBody[INVLOC_HAND_LEFT]._iMaxCharges;
CalcPlrInv(myplr, 1u);
}
@ -3512,7 +3511,7 @@ void __cdecl HealerBuyItem()
}
TakePlrsMoney(plr[v4].HoldItem._iIvalue);
if ( !plr[myplr].HoldItem._iMagical )
plr[myplr].HoldItem._iIdentified = 0;
plr[myplr].HoldItem._iIdentified = FALSE;
StoreAutoPlace();
if ( gbMaxPlayers == 1 )
{
@ -3623,27 +3622,27 @@ void __cdecl StoryIdItem()
v1 = myplr;
if ( v0 >= 0 )
{
plr[myplr].InvList[v0]._iIdentified = 1;
plr[myplr].InvList[v0]._iIdentified = TRUE;
}
else
{
if ( v0 == -1 )
plr[myplr].InvBody[0]._iIdentified = 1;
plr[myplr].InvBody[INVLOC_HEAD]._iIdentified = TRUE;
if ( v0 == -2 )
plr[v1].InvBody[6]._iIdentified = 1;
plr[v1].InvBody[INVLOC_CHEST]._iIdentified = TRUE;
if ( v0 == -3 )
plr[v1].InvBody[4]._iIdentified = 1;
plr[v1].InvBody[INVLOC_HAND_LEFT]._iIdentified = TRUE;
if ( v0 == -4 )
plr[v1].InvBody[5]._iIdentified = 1;
plr[v1].InvBody[INVLOC_HAND_RIGHT]._iIdentified = TRUE;
if ( v0 == -5 )
plr[v1].InvBody[1]._iIdentified = 1;
plr[v1].InvBody[INVLOC_RING_LEFT]._iIdentified = TRUE;
if ( v0 == -6 )
plr[v1].InvBody[2]._iIdentified = 1;
plr[v1].InvBody[INVLOC_RING_RIGHT]._iIdentified = TRUE;
if ( v0 == -7 )
plr[v1].InvBody[3]._iIdentified = 1;
plr[v1].InvBody[INVLOC_AMULET]._iIdentified = TRUE;
}
v2 = v1;
plr[v2].HoldItem._iIdentified = 1;
plr[v2].HoldItem._iIdentified = TRUE;
TakePlrsMoney(plr[v2].HoldItem._iIvalue);
CalcPlrInv(myplr, 1u);
}

18
enums.h

@ -2658,6 +2658,24 @@ enum player_graphic {
PFILE_NONDEATH = 0x17F
};
enum anim_weapon_id {
ANIM_ID_UNARMED = 0x00,
ANIM_ID_UNARMED_SHIELD = 0x01,
ANIM_ID_SWORD = 0x02,
ANIM_ID_SWORD_SHIELD = 0x03,
ANIM_ID_BOW = 0x04,
ANIM_ID_AXE = 0x05,
ANIM_ID_MACE = 0x06,
ANIM_ID_MACE_SHIELD = 0x07,
ANIM_ID_STAFF = 0x08
};
enum anim_armor_id {
ANIM_ID_LIGHT_ARMOR = 0x00,
ANIM_ID_MEDIUM_ARMOR = 0x10,
ANIM_ID_HEAVY_ARMOR = 0x20
};
enum shrine_type {
SHRINE_MYSTERIOUS = 0,
SHRINE_HIDDEN = 1,

Loading…
Cancel
Save