Browse Source

Reorder items.cpp

pull/911/head
Anders Jenbo 5 years ago
parent
commit
9f9a7920d4
  1. 205
      Source/items.cpp
  2. 74
      Source/items.h

205
Source/items.cpp

@ -492,31 +492,6 @@ int items_get_currlevel()
return lvl;
}
void items_42390F()
{
int x, y, id;
x = random_(12, 80) + 16;
y = random_(12, 80) + 16;
while (!ItemPlace(x, y)) {
x = random_(12, 80) + 16;
y = random_(12, 80) + 16;
}
switch (currlevel) {
case 22:
id = IDI_NOTE2;
break;
case 23:
id = IDI_NOTE3;
break;
default:
id = IDI_NOTE1;
break;
}
SpawnQuestItem(id, x, y, 0, 1);
}
#endif
void InitItemGFX()
@ -598,6 +573,32 @@ void AddInitItems()
}
}
#ifdef HELLFIRE
static void items_42390F()
{
int x, y, id;
x = random_(12, 80) + 16;
y = random_(12, 80) + 16;
while (!ItemPlace(x, y)) {
x = random_(12, 80) + 16;
y = random_(12, 80) + 16;
}
switch (currlevel) {
case 22:
id = IDI_NOTE2;
break;
case 23:
id = IDI_NOTE3;
break;
default:
id = IDI_NOTE1;
break;
}
SpawnQuestItem(id, x, y, 0, 1);
}
#endif
void InitItems()
{
int i;
@ -1210,6 +1211,20 @@ void CalcSelfItems(int pnum)
} while (changeflag);
}
static BOOL ItemMinStats(PlayerStruct *p, ItemStruct *x)
{
if (p->_pMagic < x->_iMinMag)
return FALSE;
if (p->_pStrength < x->_iMinStr)
return FALSE;
if (p->_pDexterity < x->_iMinDex)
return FALSE;
return TRUE;
}
void CalcPlrItemMin(int pnum)
{
PlayerStruct *p;
@ -1234,20 +1249,6 @@ void CalcPlrItemMin(int pnum)
}
}
BOOL ItemMinStats(PlayerStruct *p, ItemStruct *x)
{
if (p->_pMagic < x->_iMinMag)
return FALSE;
if (p->_pStrength < x->_iMinStr)
return FALSE;
if (p->_pDexterity < x->_iMinDex)
return FALSE;
return TRUE;
}
void CalcPlrBookVals(int p)
{
int i, slvl;
@ -3516,28 +3517,7 @@ void CheckIdentify(int pnum, int cii)
SetCursor_(CURSOR_HAND);
}
void DoRepair(int pnum, int cii)
{
PlayerStruct *p;
ItemStruct *pi;
p = &plr[pnum];
PlaySfxLoc(IS_REPAIR, p->_px, p->_py);
if (cii >= NUM_INVLOC) {
pi = &p->InvList[cii - NUM_INVLOC];
} else {
pi = &p->InvBody[cii];
}
RepairItem(pi, p->_pLevel);
CalcPlrInv(pnum, TRUE);
if (pnum == myplr)
SetCursor_(CURSOR_HAND);
}
void RepairItem(ItemStruct *i, int lvl)
static void RepairItem(ItemStruct *i, int lvl)
{
int rep, d;
@ -3568,6 +3548,42 @@ void RepairItem(ItemStruct *i, int lvl)
i->_iDurability = i->_iMaxDur;
}
void DoRepair(int pnum, int cii)
{
PlayerStruct *p;
ItemStruct *pi;
p = &plr[pnum];
PlaySfxLoc(IS_REPAIR, p->_px, p->_py);
if (cii >= NUM_INVLOC) {
pi = &p->InvList[cii - NUM_INVLOC];
} else {
pi = &p->InvBody[cii];
}
RepairItem(pi, p->_pLevel);
CalcPlrInv(pnum, TRUE);
if (pnum == myplr)
SetCursor_(CURSOR_HAND);
}
static void RechargeItem(ItemStruct *i, int r)
{
if (i->_iCharges != i->_iMaxCharges) {
do {
i->_iMaxCharges--;
if (i->_iMaxCharges == 0) {
return;
}
i->_iCharges += r;
} while (i->_iCharges < i->_iMaxCharges);
if (i->_iCharges > i->_iMaxCharges)
i->_iCharges = i->_iMaxCharges;
}
}
void DoRecharge(int pnum, int cii)
{
PlayerStruct *p;
@ -3592,21 +3608,7 @@ void DoRecharge(int pnum, int cii)
}
#ifdef HELLFIRE
void DoOil(int pnum, int cii)
{
PlayerStruct *p = &plr[pnum];
if (cii >= NUM_INVLOC || cii == INVLOC_HEAD || (cii > INVLOC_AMULET && cii <= INVLOC_CHEST)) {
if (OilItem(&p->InvBody[cii], p)) {
CalcPlrInv(pnum, TRUE);
if (pnum == myplr) {
SetCursor_(CURSOR_HAND);
}
}
}
}
BOOL OilItem(ItemStruct *x, PlayerStruct *p)
static BOOL OilItem(ItemStruct *x, PlayerStruct *p)
{
int dur, r;
@ -3726,21 +3728,20 @@ BOOL OilItem(ItemStruct *x, PlayerStruct *p)
return TRUE;
}
#endif
void RechargeItem(ItemStruct *i, int r)
void DoOil(int pnum, int cii)
{
if (i->_iCharges != i->_iMaxCharges) {
do {
i->_iMaxCharges--;
if (i->_iMaxCharges == 0) {
return;
PlayerStruct *p = &plr[pnum];
if (cii >= NUM_INVLOC || cii == INVLOC_HEAD || (cii > INVLOC_AMULET && cii <= INVLOC_CHEST)) {
if (OilItem(&p->InvBody[cii], p)) {
CalcPlrInv(pnum, TRUE);
if (pnum == myplr) {
SetCursor_(CURSOR_HAND);
}
i->_iCharges += r;
} while (i->_iCharges < i->_iMaxCharges);
if (i->_iCharges > i->_iMaxCharges)
i->_iCharges = i->_iMaxCharges;
}
}
}
#endif
void PrintItemOil(char IDidx)
{
@ -4928,7 +4929,7 @@ int RndPremiumItem(int minlvl, int maxlvl)
return ril[random_(50, ri)] + 1;
}
void SpawnOnePremium(int i, int plvl)
static void SpawnOnePremium(int i, int plvl)
{
int itype;
ItemStruct holditem;
@ -5661,6 +5662,20 @@ void CreateMagicWeapon(int x, int y, int imisc, int icurs, BOOL sendmsg, BOOL de
}
}
static void NextItemRecord(int i)
{
gnNumGetRecords--;
if (gnNumGetRecords == 0) {
return;
}
itemrecord[i].dwTimestamp = itemrecord[gnNumGetRecords].dwTimestamp;
itemrecord[i].nSeed = itemrecord[gnNumGetRecords].nSeed;
itemrecord[i].wCI = itemrecord[gnNumGetRecords].wCI;
itemrecord[i].nIndex = itemrecord[gnNumGetRecords].nIndex;
}
BOOL GetItemRecord(int nSeed, WORD wCI, int nIndex)
{
int i;
@ -5680,20 +5695,6 @@ BOOL GetItemRecord(int nSeed, WORD wCI, int nIndex)
return TRUE;
}
void NextItemRecord(int i)
{
gnNumGetRecords--;
if (gnNumGetRecords == 0) {
return;
}
itemrecord[i].dwTimestamp = itemrecord[gnNumGetRecords].dwTimestamp;
itemrecord[i].nSeed = itemrecord[gnNumGetRecords].nSeed;
itemrecord[i].wCI = itemrecord[gnNumGetRecords].wCI;
itemrecord[i].nIndex = itemrecord[gnNumGetRecords].nIndex;
}
void SetItemRecord(int nSeed, WORD wCI, int nIndex)
{
DWORD dwTicks;

74
Source/items.h

@ -9,20 +9,16 @@
extern int itemactive[MAXITEMS];
extern BOOL uitemflag;
extern int itemavail[MAXITEMS];
extern ItemStruct curruitem;
extern ItemGetRecordStruct itemrecord[MAXITEMS];
extern ItemStruct item[MAXITEMS + 1];
extern BOOL itemhold[3][3];
#ifdef HELLFIRE
extern CornerStoneStruct CornerStone;
#endif
extern BYTE *itemanims[ITEMTYPES];
extern BOOL UniqueItemFlag[128];
#ifdef HELLFIRE
extern int auricGold;
#endif
extern int numitems;
extern int gnNumGetRecords;
#ifdef HELLFIRE
int items_4231CA(int i);
@ -35,63 +31,29 @@ int items_42342E(int i);
int items_4234B2(int i);
int items_423518(int i);
int items_42357E(int i);
void items_42390F();
int items_get_currlevel();
#endif
void InitItemGFX();
BOOL ItemPlace(int xp, int yp);
void AddInitItems();
void InitItems();
void CalcPlrItemVals(int p, BOOL Loadgfx);
void CalcPlrScrolls(int p);
void CalcPlrStaff(int p);
void CalcSelfItems(int pnum);
void CalcPlrItemMin(int pnum);
BOOL ItemMinStats(PlayerStruct *p, ItemStruct *x);
void CalcPlrBookVals(int p);
void CalcPlrInv(int p, BOOL Loadgfx);
void SetPlrHandItem(ItemStruct *h, int idata);
void GetPlrHandSeed(ItemStruct *h);
void GetGoldSeed(int pnum, ItemStruct *h);
void SetPlrHandSeed(ItemStruct *h, int iseed);
void SetPlrHandGoldCurs(ItemStruct *h);
void CreatePlrItems(int p);
BOOL ItemSpaceOk(int i, int j);
BOOL GetItemSpace(int x, int y, char inum);
void GetSuperItemSpace(int x, int y, char inum);
void GetSuperItemLoc(int x, int y, int &xx, int &yy);
void CalcItemValue(int i);
void GetBookSpell(int i, int lvl);
void GetStaffPower(int i, int lvl, int bs, BOOL onlygood);
void GetStaffSpell(int i, int lvl, BOOL onlygood);
void GetItemAttrs(int i, int idata, int lvl);
int RndPL(int param1, int param2);
int PLVal(int pv, int p1, int p2, int minv, int maxv);
void SaveItemPower(int i, int power, int param1, int param2, int minval, int maxval, int multval);
void GetItemPower(int i, int minlvl, int maxlvl, int flgs, BOOL onlygood);
#ifdef HELLFIRE
void GetItemBonus(int i, int idata, int minlvl, int maxlvl, BOOL onlygood, BOOLEAN allowspells);
#else
void GetItemBonus(int i, int idata, int minlvl, int maxlvl, BOOL onlygood);
#endif
void SetupItem(int i);
int RndItem(int m);
int RndUItem(int m);
int RndAllItems();
#ifdef HELLFIRE
int RndTypeItems(int itype, int imid, int lvl);
#else
int RndTypeItems(int itype, int imid);
#endif
int CheckUnique(int i, int lvl, int uper, BOOL recreate);
void GetUniqueItem(int i, int uid);
void SpawnUnique(int uid, int x, int y);
void ItemRndDur(int ii);
void SetupAllItems(int ii, int idx, int iseed, int lvl, int uper, BOOL onlygood, BOOL recreate, BOOL pregen);
void SpawnItem(int m, int x, int y, BOOL sendmsg);
void CreateItem(int uid, int x, int y);
void CreateRndItem(int x, int y, BOOL onlygood, BOOL sendmsg, BOOL delta);
void SetupAllUseful(int ii, int iseed, int lvl);
void CreateRndUseful(int pnum, int x, int y, BOOL sendmsg);
void CreateTypeItem(int x, int y, BOOL onlygood, int itype, int imisc, BOOL sendmsg, BOOL delta);
void RecreateItem(int ii, int idx, WORD icreateinfo, int iseed, int ivalue);
@ -110,7 +72,6 @@ void SpawnTheodore(int xx, int yy);
#endif
void RespawnItem(int i, BOOL FlipFlag);
void DeleteItem(int ii, int i);
void ItemDoppel();
void ProcessItems();
void FreeItemGFX();
void GetItemFrm(int i);
@ -121,50 +82,25 @@ void RepairItem(ItemStruct *i, int lvl);
void DoRecharge(int pnum, int cii);
#ifdef HELLFIRE
void DoOil(int pnum, int cii);
BOOL OilItem(ItemStruct *x, PlayerStruct *p);
#endif
void RechargeItem(ItemStruct *i, int r);
void PrintItemOil(char IDidx);
void PrintItemPower(char plidx, ItemStruct *x);
void DrawUTextBack();
void PrintUString(int x, int y, BOOL cjustflag, const char *str, int col);
void DrawULine(int y);
void DrawUniqueInfo();
void PrintItemMisc(ItemStruct *x);
void PrintItemDetails(ItemStruct *x);
void PrintItemDur(ItemStruct *x);
void UseItem(int p, int Mid, int spl);
BOOL StoreStatOk(ItemStruct *h);
BOOL SmithItemOk(int i);
int RndSmithItem(int lvl);
void BubbleSwapItem(ItemStruct *a, ItemStruct *b);
void SortSmith();
void SpawnSmith(int lvl);
BOOL PremiumItemOk(int i);
int RndPremiumItem(int minlvl, int maxlvl);
void SpawnOnePremium(int i, int plvl);
#ifdef HELLFIRE
void SpawnPremium(int pnum);
#else
void SpawnPremium(int lvl);
#endif
BOOL WitchItemOk(int i);
int RndWitchItem(int lvl);
void SortWitch();
void WitchBookLevel(int ii);
void SpawnWitch(int lvl);
int RndBoyItem(int lvl);
void SpawnBoy(int lvl);
BOOL HealerItemOk(int i);
int RndHealerItem(int lvl);
void SortHealer();
void SpawnHealer(int lvl);
void SpawnStoreGold();
void RecreateSmithItem(int ii, int idx, int lvl, int iseed);
void RecreatePremiumItem(int ii, int idx, int plvl, int iseed);
void RecreateBoyItem(int ii, int idx, int lvl, int iseed);
void RecreateWitchItem(int ii, int idx, int lvl, int iseed);
void RecreateHealerItem(int ii, int idx, int lvl, int iseed);
void RecreateTownItem(int ii, int idx, WORD icreateinfo, int iseed, int ivalue);
void RecalcStoreStats();
int ItemNoFlippy();
@ -175,26 +111,16 @@ void CreateAmulet(int x, int y, int curlv, BOOL sendmsg, BOOL delta);
#endif
void CreateMagicWeapon(int x, int y, int imisc, int icurs, BOOL sendmsg, BOOL delta);
BOOL GetItemRecord(int nSeed, WORD wCI, int nIndex);
void NextItemRecord(int i);
void SetItemRecord(int nSeed, WORD wCI, int nIndex);
void PutItemRecord(int nSeed, WORD wCI, int nIndex);
/* data */
#ifdef HELLFIRE
extern int OilLevels[10];
extern int OilValues[10];
extern int OilMagic[10];
extern char OilNames[10][25];
extern int MaxGold;
#endif
extern BYTE ItemCAnimTbl[];
extern const char *const ItemDropNames[];
extern BYTE ItemAnimLs[];
extern int ItemDropSnds[];
extern int ItemInvSnds[];
extern int idoppely;
extern int premiumlvladd[6];
#endif /* __ITEMS_H__ */

Loading…
Cancel
Save