From 9f9a7920d4e3a245d65995e2a95cb3f39cf525aa Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Tue, 3 Nov 2020 02:05:01 +0100 Subject: [PATCH] Reorder items.cpp --- Source/items.cpp | 205 ++++++++++++++++++++++++----------------------- Source/items.h | 74 ----------------- 2 files changed, 103 insertions(+), 176 deletions(-) diff --git a/Source/items.cpp b/Source/items.cpp index 1f30aff9b..96fc642fa 100644 --- a/Source/items.cpp +++ b/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; diff --git a/Source/items.h b/Source/items.h index 05827316d..a0c503c2f 100644 --- a/Source/items.h +++ b/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__ */