/Source/items.h

https://github.com/diasurgical/devilutionX · C Header · 155 lines · 140 code · 9 blank · 6 comment · 0 complexity · 932e6406276fa64dfbdf1102f2aa29f8 MD5 · raw file

  1. /**
  2. * @file items.h
  3. *
  4. * Interface of item functionality.
  5. */
  6. #ifndef __ITEMS_H__
  7. #define __ITEMS_H__
  8. DEVILUTION_BEGIN_NAMESPACE
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12. extern int itemactive[MAXITEMS];
  13. extern BOOL uitemflag;
  14. extern int itemavail[MAXITEMS];
  15. extern ItemStruct curruitem;
  16. extern ItemGetRecordStruct itemrecord[MAXITEMS];
  17. extern ItemStruct item[MAXITEMS + 1];
  18. extern BOOL itemhold[3][3];
  19. extern BYTE *itemanims[ITEMTYPES];
  20. extern BOOL UniqueItemFlag[128];
  21. extern int numitems;
  22. extern int gnNumGetRecords;
  23. void InitItemGFX();
  24. BOOL ItemPlace(int xp, int yp);
  25. void AddInitItems();
  26. void InitItems();
  27. void CalcPlrItemVals(int p, BOOL Loadgfx);
  28. void CalcPlrScrolls(int p);
  29. void CalcPlrStaff(int p);
  30. void CalcSelfItems(int pnum);
  31. void CalcPlrItemMin(int pnum);
  32. BOOL ItemMinStats(PlayerStruct *p, ItemStruct *x);
  33. void CalcPlrBookVals(int p);
  34. void CalcPlrInv(int p, BOOL Loadgfx);
  35. void SetPlrHandItem(ItemStruct *h, int idata);
  36. void GetPlrHandSeed(ItemStruct *h);
  37. void GetGoldSeed(int pnum, ItemStruct *h);
  38. void SetPlrHandSeed(ItemStruct *h, int iseed);
  39. void SetPlrHandGoldCurs(ItemStruct *h);
  40. void CreatePlrItems(int p);
  41. BOOL ItemSpaceOk(int i, int j);
  42. BOOL GetItemSpace(int x, int y, char inum);
  43. void GetSuperItemSpace(int x, int y, char inum);
  44. void GetSuperItemLoc(int x, int y, int *xx, int *yy);
  45. void CalcItemValue(int i);
  46. void GetBookSpell(int i, int lvl);
  47. void GetStaffPower(int i, int lvl, int bs, BOOL onlygood);
  48. void GetStaffSpell(int i, int lvl, BOOL onlygood);
  49. void GetItemAttrs(int i, int idata, int lvl);
  50. int RndPL(int param1, int param2);
  51. int PLVal(int pv, int p1, int p2, int minv, int maxv);
  52. void SaveItemPower(int i, int power, int param1, int param2, int minval, int maxval, int multval);
  53. void GetItemPower(int i, int minlvl, int maxlvl, int flgs, BOOL onlygood);
  54. void GetItemBonus(int i, int idata, int minlvl, int maxlvl, BOOL onlygood);
  55. void SetupItem(int i);
  56. int RndItem(int m);
  57. int RndUItem(int m);
  58. int RndAllItems();
  59. int RndTypeItems(int itype, int imid);
  60. int CheckUnique(int i, int lvl, int uper, BOOL recreate);
  61. void GetUniqueItem(int i, int uid);
  62. void SpawnUnique(int uid, int x, int y);
  63. void ItemRndDur(int ii);
  64. void SetupAllItems(int ii, int idx, int iseed, int lvl, int uper, int onlygood, BOOL recreate, BOOL pregen);
  65. void SpawnItem(int m, int x, int y, BOOL sendmsg);
  66. void CreateItem(int uid, int x, int y);
  67. void CreateRndItem(int x, int y, BOOL onlygood, BOOL sendmsg, BOOL delta);
  68. void SetupAllUseful(int ii, int iseed, int lvl);
  69. void CreateRndUseful(int pnum, int x, int y, BOOL sendmsg);
  70. void CreateTypeItem(int x, int y, BOOL onlygood, int itype, int imisc, BOOL sendmsg, BOOL delta);
  71. void RecreateItem(int ii, int idx, WORD icreateinfo, int iseed, int ivalue);
  72. void RecreateEar(int ii, WORD ic, int iseed, int Id, int dur, int mdur, int ch, int mch, int ivalue, int ibuff);
  73. void SpawnQuestItem(int itemid, int x, int y, int randarea, int selflag);
  74. void SpawnRock();
  75. void RespawnItem(int i, BOOL FlipFlag);
  76. void DeleteItem(int ii, int i);
  77. void ItemDoppel();
  78. void ProcessItems();
  79. void FreeItemGFX();
  80. void GetItemFrm(int i);
  81. void GetItemStr(int i);
  82. void CheckIdentify(int pnum, int cii);
  83. void DoRepair(int pnum, int cii);
  84. void RepairItem(ItemStruct *i, int lvl);
  85. void DoRecharge(int pnum, int cii);
  86. void RechargeItem(ItemStruct *i, int r);
  87. void PrintItemOil(char IDidx);
  88. void PrintItemPower(char plidx, ItemStruct *x);
  89. void DrawUTextBack();
  90. void PrintUString(int x, int y, BOOL cjustflag, char *str, int col);
  91. void DrawULine(int y);
  92. void DrawUniqueInfo();
  93. void PrintItemMisc(ItemStruct *x);
  94. void PrintItemDetails(ItemStruct *x);
  95. void PrintItemDur(ItemStruct *x);
  96. void UseItem(int p, int Mid, int spl);
  97. BOOL StoreStatOk(ItemStruct *h);
  98. BOOL SmithItemOk(int i);
  99. int RndSmithItem(int lvl);
  100. void BubbleSwapItem(ItemStruct *a, ItemStruct *b);
  101. void SortSmith();
  102. void SpawnSmith(int lvl);
  103. BOOL PremiumItemOk(int i);
  104. int RndPremiumItem(int minlvl, int maxlvl);
  105. void SpawnOnePremium(int i, int plvl);
  106. void SpawnPremium(int lvl);
  107. BOOL WitchItemOk(int i);
  108. int RndWitchItem(int lvl);
  109. void SortWitch();
  110. void WitchBookLevel(int ii);
  111. void SpawnWitch(int lvl);
  112. int RndBoyItem(int lvl);
  113. void SpawnBoy(int lvl);
  114. BOOL HealerItemOk(int i);
  115. int RndHealerItem(int lvl);
  116. void SortHealer();
  117. void SpawnHealer(int lvl);
  118. void SpawnStoreGold();
  119. void RecreateSmithItem(int ii, int idx, int lvl, int iseed);
  120. void RecreatePremiumItem(int ii, int idx, int plvl, int iseed);
  121. void RecreateBoyItem(int ii, int idx, int lvl, int iseed);
  122. void RecreateWitchItem(int ii, int idx, int lvl, int iseed);
  123. void RecreateHealerItem(int ii, int idx, int lvl, int iseed);
  124. void RecreateTownItem(int ii, int idx, WORD icreateinfo, int iseed, int ivalue);
  125. void RecalcStoreStats();
  126. int ItemNoFlippy();
  127. void CreateSpellBook(int x, int y, int ispell, BOOL sendmsg, BOOL delta);
  128. void CreateMagicArmor(int x, int y, int imisc, int icurs, BOOL sendmsg, BOOL delta);
  129. void CreateMagicWeapon(int x, int y, int imisc, int icurs, BOOL sendmsg, BOOL delta);
  130. BOOL GetItemRecord(int nSeed, WORD wCI, int nIndex);
  131. void NextItemRecord(int i);
  132. void SetItemRecord(int nSeed, WORD wCI, int nIndex);
  133. void PutItemRecord(int nSeed, WORD wCI, int nIndex);
  134. /* data */
  135. extern BYTE ItemCAnimTbl[];
  136. extern char *ItemDropNames[];
  137. extern BYTE ItemAnimLs[];
  138. extern int ItemDropSnds[];
  139. extern int ItemInvSnds[];
  140. extern int idoppely;
  141. extern int premiumlvladd[6];
  142. #ifdef __cplusplus
  143. }
  144. #endif
  145. DEVILUTION_END_NAMESPACE
  146. #endif /* __ITEMS_H__ */