Browse Source

S_StartSIdentify bin exact

Depends on #914 and #913.
pull/88/head
Robin Eklind 7 years ago
parent
commit
dbe9e4d152
  1. 72
      Source/stores.cpp

72
Source/stores.cpp

@ -1614,62 +1614,61 @@ void AddStoreHoldId(ItemStruct itm, int i)
void S_StartSIdentify() void S_StartSIdentify()
{ {
ItemStruct itm; // [esp-170h] [ebp-18Ch] BOOL idok;
BOOLEAN idok; // [esp+10h] [ebp-Ch] int i;
int i; // [esp+14h] [ebp-8h]
idok = 0; idok = FALSE;
storenumh = 0;
stextsize = 1; stextsize = 1;
storenumh = 0;
for (i = 0; i < 48; i++) for (i = 0; i < 48; i++)
storehold[i]._itype = -1; storehold[i]._itype = -1;
if (IdItemOk(plr[myplr].InvBody)) { if (IdItemOk(&plr[myplr].InvBody[INVLOC_HEAD])) {
idok = 1; idok = TRUE;
qmemcpy(&itm, plr[myplr].InvBody, sizeof(ItemStruct)); AddStoreHoldId(plr[myplr].InvBody[INVLOC_HEAD], -1);
AddStoreHoldId(itm, -1);
} }
if (IdItemOk(&plr[myplr].InvBody[INVLOC_CHEST])) { if (IdItemOk(&plr[myplr].InvBody[INVLOC_CHEST])) {
idok = 1; idok = TRUE;
qmemcpy(&itm, &plr[myplr].InvBody[INVLOC_CHEST], sizeof(ItemStruct)); AddStoreHoldId(plr[myplr].InvBody[INVLOC_CHEST], -2);
AddStoreHoldId(itm, -2);
} }
if (IdItemOk(&plr[myplr].InvBody[INVLOC_HAND_LEFT])) { if (IdItemOk(&plr[myplr].InvBody[INVLOC_HAND_LEFT])) {
idok = 1; idok = TRUE;
qmemcpy(&itm, &plr[myplr].InvBody[INVLOC_HAND_LEFT], sizeof(ItemStruct)); AddStoreHoldId(plr[myplr].InvBody[INVLOC_HAND_LEFT], -3);
AddStoreHoldId(itm, -3);
} }
if (IdItemOk(&plr[myplr].InvBody[INVLOC_HAND_RIGHT])) { if (IdItemOk(&plr[myplr].InvBody[INVLOC_HAND_RIGHT])) {
idok = 1; idok = TRUE;
qmemcpy(&itm, &plr[myplr].InvBody[INVLOC_HAND_RIGHT], sizeof(ItemStruct)); AddStoreHoldId(plr[myplr].InvBody[INVLOC_HAND_RIGHT], -4);
AddStoreHoldId(itm, -4);
} }
if (IdItemOk(&plr[myplr].InvBody[INVLOC_RING_LEFT])) { if (IdItemOk(&plr[myplr].InvBody[INVLOC_RING_LEFT])) {
idok = 1; idok = TRUE;
qmemcpy(&itm, &plr[myplr].InvBody[INVLOC_RING_LEFT], sizeof(ItemStruct)); AddStoreHoldId(plr[myplr].InvBody[INVLOC_RING_LEFT], -5);
AddStoreHoldId(itm, -5);
} }
if (IdItemOk(&plr[myplr].InvBody[INVLOC_RING_RIGHT])) { if (IdItemOk(&plr[myplr].InvBody[INVLOC_RING_RIGHT])) {
idok = 1; idok = TRUE;
qmemcpy(&itm, &plr[myplr].InvBody[INVLOC_RING_RIGHT], sizeof(ItemStruct)); AddStoreHoldId(plr[myplr].InvBody[INVLOC_RING_RIGHT], -6);
AddStoreHoldId(itm, -6);
} }
if (IdItemOk(&plr[myplr].InvBody[INVLOC_AMULET])) { if (IdItemOk(&plr[myplr].InvBody[INVLOC_AMULET])) {
idok = 1; idok = TRUE;
qmemcpy(&itm, &plr[myplr].InvBody[INVLOC_AMULET], sizeof(ItemStruct)); AddStoreHoldId(plr[myplr].InvBody[INVLOC_AMULET], -7);
AddStoreHoldId(itm, -7);
} }
for (i = 0; i < plr[myplr]._pNumInv; i++) { for (i = 0; i < plr[myplr]._pNumInv; i++) {
if (IdItemOk(&plr[myplr].InvList[i])) { if (IdItemOk(&plr[myplr].InvList[i])) {
idok = 1; idok = TRUE;
qmemcpy(&itm, &plr[myplr].InvList[i], sizeof(ItemStruct)); AddStoreHoldId(plr[myplr].InvList[i], i);
AddStoreHoldId(itm, i);
} }
} }
if (idok) { if (!idok) {
stextscrl = 0;
sprintf(tempstr, "You have nothing to identify. Your gold : %i", plr[myplr]._pGold);
AddSText(0, 1, 1, tempstr, COL_GOLD, 0);
AddSLine(3);
AddSLine(21);
AddSText(0, 22, 1, "Back", COL_WHITE, 1);
OffsetSTextY(22, 6);
} else {
stextscrl = 1; stextscrl = 1;
stextsval = 0; stextsval = 0;
stextsmax = plr[myplr]._pNumInv; stextsmax = plr[myplr]._pNumInv;
@ -1678,16 +1677,9 @@ void S_StartSIdentify()
AddSLine(3); AddSLine(3);
AddSLine(21); AddSLine(21);
S_ScrollSSell(stextsval); S_ScrollSSell(stextsval);
} else { AddSText(0, 22, 1, "Back", COL_WHITE, 1);
stextscrl = 0; OffsetSTextY(22, 6);
sprintf(tempstr, "You have nothing to identify. Your gold : %i", plr[myplr]._pGold);
AddSText(0, 1, 1, tempstr, COL_GOLD, 0);
AddSLine(3);
AddSLine(21);
} }
AddSText(0, 22, 1, "Back", COL_WHITE, 1);
OffsetSTextY(22, 6);
} }
// 69F10C: using guessed type int storenumh; // 69F10C: using guessed type int storenumh;
// 6A09E0: using guessed type char stextsize; // 6A09E0: using guessed type char stextsize;

Loading…
Cancel
Save