Browse Source

Clean up CreateSpellBook

pull/100/head
Anders Jenbo 7 years ago
parent
commit
85bc3c6d36
  1. 54
      Source/items.cpp
  2. 6
      Source/items.h

54
Source/items.cpp

@ -4537,11 +4537,10 @@ void RecreateHealerItem(int ii, int idx, int lvl, int iseed)
} }
item[ii]._iCreateInfo = lvl | 0x4000; item[ii]._iCreateInfo = lvl | 0x4000;
item[ii]._iSeed = iseed; item[ii]._iSeed = iseed;
item[ii]._iIdentified = TRUE; item[ii]._iIdentified = TRUE;
} }
void RecreateTownItem(int ii, int idx, unsigned short icreateinfo, int iseed, int ivalue) void RecreateTownItem(int ii, int idx, unsigned short icreateinfo, int iseed, int ivalue)
{ {
if (icreateinfo & 0x400) if (icreateinfo & 0x400)
@ -4598,52 +4597,50 @@ int ItemNoFlippy()
return r; return r;
} }
void CreateSpellBook(int x, int y, int ispell, BOOLEAN sendmsg, int delta) void CreateSpellBook(int x, int y, int ispell, BOOL sendmsg, int delta)
{ {
int ii; // edi int ii, idx;
int idx; // [esp+8h] [ebp-8h] BOOL done;
BOOLEAN done; // [esp+Ch] [ebp-4h]
done = 0; done = FALSE;
idx = RndTypeItems(0, 24); idx = RndTypeItems(0, 24);
if (numitems < MAXITEMS) { if (numitems < MAXITEMS) {
ii = itemavail[0]; ii = itemavail[0];
GetSuperItemSpace(x, y, itemavail[0]); GetSuperItemSpace(x, y, ii);
itemactive[numitems] = ii;
itemavail[0] = itemavail[MAXITEMS - numitems - 1]; itemavail[0] = itemavail[MAXITEMS - numitems - 1];
do { itemactive[numitems] = ii;
while (!done) {
SetupAllItems(ii, idx, GetRndSeed(), 2 * currlevel, 1, 1, 0, delta); SetupAllItems(ii, idx, GetRndSeed(), 2 * currlevel, 1, 1, 0, delta);
if (item[ii]._iMiscId == IMISC_BOOK && item[ii]._iSpell == ispell) if (item[ii]._iMiscId == IMISC_BOOK && item[ii]._iSpell == ispell)
done = 1; done = TRUE;
} while (!done); }
if (sendmsg) if (sendmsg)
NetSendCmdDItem(FALSE, ii); NetSendCmdDItem(FALSE, ii);
if (delta) if (delta)
DeltaAddItem(ii); DeltaAddItem(ii);
++numitems; numitems++;
} }
} }
void CreateMagicArmor(int x, int y, int imisc, int icurs, int sendmsg, int delta) void CreateMagicArmor(int x, int y, int imisc, int icurs, BOOL sendmsg, int delta)
{ {
int ii; // esi int ii, idx;
int idx; // ebx BOOL done;
BOOL done; // [esp+Ch] [ebp-4h]
done = 0; done = FALSE;
if (numitems < MAXITEMS) { if (numitems < MAXITEMS) {
ii = itemavail[0]; ii = itemavail[0];
GetSuperItemSpace(x, y, ii); GetSuperItemSpace(x, y, ii);
itemavail[0] = itemavail[MAXITEMS - numitems - 1]; itemavail[0] = itemavail[MAXITEMS - numitems - 1];
itemactive[numitems] = ii; itemactive[numitems] = ii;
idx = RndTypeItems(imisc, 0); idx = RndTypeItems(imisc, 0);
do { while (!done) {
SetupAllItems(ii, idx, GetRndSeed(), 2 * currlevel, 1, 1, 0, delta); SetupAllItems(ii, idx, GetRndSeed(), 2 * currlevel, 1, 1, 0, delta);
if (item[ii]._iCurs == icurs) if (item[ii]._iCurs == icurs)
done = 1; done = TRUE;
else else
idx = RndTypeItems(imisc, 0); idx = RndTypeItems(imisc, 0);
} while (!done); }
if (sendmsg) if (sendmsg)
NetSendCmdDItem(FALSE, ii); NetSendCmdDItem(FALSE, ii);
if (delta) if (delta)
@ -4652,26 +4649,25 @@ void CreateMagicArmor(int x, int y, int imisc, int icurs, int sendmsg, int delta
} }
} }
void CreateMagicWeapon(int x, int y, int imisc, int icurs, int sendmsg, int delta) void CreateMagicWeapon(int x, int y, int imisc, int icurs, BOOL sendmsg, int delta)
{ {
int ii; // esi int ii, idx;
int idx; // ebx BOOL done;
BOOL done; // [esp+Ch] [ebp-4h]
done = 0; done = FALSE;
if (numitems < MAXITEMS) { if (numitems < MAXITEMS) {
ii = itemavail[0]; ii = itemavail[0];
GetSuperItemSpace(x, y, ii); GetSuperItemSpace(x, y, ii);
itemavail[0] = itemavail[MAXITEMS - numitems - 1]; itemavail[0] = itemavail[MAXITEMS - numitems - 1];
itemactive[numitems] = ii; itemactive[numitems] = ii;
idx = RndTypeItems(imisc, 0); idx = RndTypeItems(imisc, 0);
do { while (!done) {
SetupAllItems(ii, idx, GetRndSeed(), 2 * currlevel, 1, 1, 0, delta); SetupAllItems(ii, idx, GetRndSeed(), 2 * currlevel, 1, 1, 0, delta);
if (item[ii]._iCurs == icurs) if (item[ii]._iCurs == icurs)
done = 1; done = TRUE;
else else
idx = RndTypeItems(imisc, 0); idx = RndTypeItems(imisc, 0);
} while (!done); }
if (sendmsg) if (sendmsg)
NetSendCmdDItem(FALSE, ii); NetSendCmdDItem(FALSE, ii);
if (delta) if (delta)

6
Source/items.h

@ -118,9 +118,9 @@ void RecreateHealerItem(int ii, int idx, int lvl, int iseed);
void RecreateTownItem(int ii, int idx, unsigned short icreateinfo, int iseed, int ivalue); void RecreateTownItem(int ii, int idx, unsigned short icreateinfo, int iseed, int ivalue);
void RecalcStoreStats(); void RecalcStoreStats();
int ItemNoFlippy(); int ItemNoFlippy();
void CreateSpellBook(int x, int y, int ispell, BOOLEAN sendmsg, int delta); void CreateSpellBook(int x, int y, int ispell, BOOL sendmsg, int delta);
void CreateMagicArmor(int x, int y, int imisc, int icurs, int sendmsg, int delta); void CreateMagicArmor(int x, int y, int imisc, int icurs, BOOL sendmsg, int delta);
void CreateMagicWeapon(int x, int y, int imisc, int icurs, int sendmsg, int delta); void CreateMagicWeapon(int x, int y, int imisc, int icurs, BOOL sendmsg, int delta);
BOOL GetItemRecord(int nSeed, WORD wCI, int nIndex); BOOL GetItemRecord(int nSeed, WORD wCI, int nIndex);
void NextItemRecord(int i); void NextItemRecord(int i);
void SetItemRecord(int nSeed, WORD wCI, int nIndex); void SetItemRecord(int nSeed, WORD wCI, int nIndex);

Loading…
Cancel
Save