Devilution: items.cpp

Created on 18 Sep 2018  路  7Comments  路  Source: diasurgical/devilution

  • [x] 41F096 (InitItemGFX)
  • [x] 41F0E8 (ItemPlace)
  • [x] 41F13A (AddInitItems) #819
  • [x] 41F24E (InitItems)
  • [x] 41F320 (CalcPlrItemVals)
  • [x] 41F953 (CalcPlrScrolls)
  • [x] 41FA4A (CalcPlrStaff)
  • [x] 41FA97 (CalcSelfItems)
  • [x] 41FB91 (CalcPlrItemMin)
  • [x] 41FBF6 (ItemMinStats)
  • [x] 41FC2C (CalcPlrBookVals)
  • [x] 41FD3E (CalcPlrInv)
  • [x] 41FD98 (SetPlrHandItem)
  • [x] 41FE98 (GetPlrHandSeed)
  • [x] 41FEA4 (GetGoldSeed)
  • [x] 41FF16 (SetPlrHandSeed)
  • [x] 41FF19 (SetPlrHandGoldCurs)
  • [x] 41FF4E (CreatePlrItems)
  • [x] 4200F8 (ItemSpaceOk)
  • [x] 4201F2 (GetItemSpace)
  • [x] 4202E8 (GetSuperItemSpace)
  • [x] 420376 (GetSuperItemLoc)
  • [x] 4203E0 (CalcItemValue)
  • [x] 42042C (GetBookSpell)
  • [x] 420514 (GetStaffPower)
  • [x] 4206E5 (GetStaffSpell)
  • [x] 42084A (GetItemAttrs)
  • [x] 420B17 (RndPL)
  • [x] 420B28 (PLVal)
  • [x] 420B68 (SaveItemPower)
  • [x] 4215EF (GetItemPower)
  • [x] 42191C (GetItemBonus)
  • [x] 4219C1 (SetupItem)
  • [x] 421A4B (RndItem)
  • [x] 421B32 (RndUItem)
  • [x] 421C2A (RndAllItems)
  • [x] 421CB7 (RndTypeItems)
  • [x] 421D41 (CheckUnique)
  • [x] 421E11 (GetUniqueItem)
  • [x] 421F5C (SpawnUnique)
  • [x] 421FE6 (ItemRndDur)
  • [x] 422024 (SetupAllItems)
  • [x] 42217A (SpawnItem)
  • [x] 422290 (CreateItem)
  • [x] 42232B (CreateRndItem)
  • [x] 4223D0 (SetupAllUseful)
  • [x] 42243D (CreateRndUseful)
  • [x] 4224A6 (CreateTypeItem)
  • [x] 42254A (RecreateItem)
  • [x] 42265C (RecreateEar)
  • [x] 422795 (SpawnQuestItem)
  • [x] 4228B1 (SpawnRock)
  • [x] 422989 (RespawnItem)
  • [x] 422A50 (DeleteItem)
  • [x] 422A84 (ItemDoppel)
  • [x] 422ADE (ProcessItems)
  • [x] 422BB2 (FreeItemGFX)
  • [x] 422BCF (GetItemFrm)
  • [x] 422BF0 (GetItemStr)
  • [x] 422C63 (CheckIdentify)
  • [x] 422C9C (DoRepair)
  • [x] 422CF6 (RepairItem)
  • [x] 422D6C (DoRecharge)
  • [x] 422DDD (RechargeItem)
  • [x] 422E14 (PrintItemOil)
  • [x] 422EF4 (PrintItemPower)
  • [x] 423530 (DrawUTextBack)
  • [x] 42358C (PrintUString)
  • [x] 42365B (DrawULine)
  • [x] 4236A6 (DrawUniqueInfo)
  • [x] 4237DC (PrintItemMisc)
  • [x] 4238D4 (PrintItemDetails)
  • [x] 423AE1 (PrintItemDur)
  • [x] 423CE0 (UseItem)
  • [x] 4241D7 (StoreStatOk)
  • [x] 42421C (SmithItemOk)
  • [x] 424252 (RndSmithItem)
  • [x] 4242C1 (BubbleSwapItem)
  • [x] 4242F5 (SortSmith)
  • [x] 424351 (SpawnSmith)
  • [x] 424420 (PremiumItemOk)
  • [x] 42445F (RndPremiumItem)
  • [x] 4244C6 (SpawnOnePremium)
  • [x] 4245A0 (SpawnPremium)
  • [x] 42466C (WitchItemOk)
  • [x] 4246D2 (RndWitchItem)
  • [x] 424735 (SortWitch)
  • [x] 424795 (WitchBookLevel)
  • [x] 424815 (SpawnWitch)
  • [x] 4249A4 (RndBoyItem)
  • [x] 424A03 (SpawnBoy)
  • [x] 424A9B (HealerItemOk)
  • [x] 424B49 (RndHealerItem)
  • [x] 424BAC (SortHealer)
  • [x] 424C0C (SpawnHealer) #957
  • [x] 424D57 (SpawnStoreGold)
  • [x] 424D80 (RecreateSmithItem)
  • [x] 424DD1 (RecreatePremiumItem)
  • [x] 424E3C (RecreateBoyItem)
  • [x] 424EA1 (RecreateWitchItem)
  • [x] 424F52 (RecreateHealerItem)
  • [x] 424FB8 (RecreateTownItem)
  • [x] 42501F (RecalcStoreStats)
  • [x] 4250C0 (ItemNoFlippy)
  • [x] 4250EF (CreateSpellBook)
  • [x] 4251B8 (CreateMagicArmor)
  • [x] 4251B8 (CreateMagicWeapon)
  • [x] 42526E (GetItemRecord)
  • [x] 425311 (NextItemRecord)
  • [x] 425357 (SetItemRecord)
  • [x] 42539E (PutItemRecord)
Binary exact

Most helpful comment

As I already said over discord, SpawnHealer is currently bin-exact now.
I've bisected and it got bin exact after the following commit:
https://github.com/diasurgical/devilution/commit/3c0dc5f1649725be55b0676498a851a432822639

The only possible thing affecting it is existance of unused inline function in defs.h and its content also seem to matter but maybe it's just a layout in memory after all.

Anyway, I think we may close this issue for now but this function is the epitome of instability.

All 7 comments

CreateMagicItem->CreateMagicArmor+CreateMagicWeapon

The remaining functions require that the data lists gets hidden from the compiler, possibly by moving them to a sperate file.

Update:
Issue solved, we should now be able to clean this file :)

Update:
Issue solved, we should now be able to clean this file :)

What of the last PRs do you mean?

I'm referring to the remaining function of this file, there are still 3 left (Qndel already fixed one)

My interest was about the "issue solved", 610580625efcbd0f394e3aa503e8a60f585abc1d
Thanks everyone for all the collaborative work!

As I already said over discord, SpawnHealer is currently bin-exact now.
I've bisected and it got bin exact after the following commit:
https://github.com/diasurgical/devilution/commit/3c0dc5f1649725be55b0676498a851a432822639

The only possible thing affecting it is existance of unused inline function in defs.h and its content also seem to matter but maybe it's just a layout in memory after all.

Anyway, I think we may close this issue for now but this function is the epitome of instability.

Nice, I was a bit surprised by the resulting drop in diff by that commit :)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

nomdenom picture nomdenom  路  9Comments

AJenbo picture AJenbo  路  8Comments

maristane picture maristane  路  3Comments

ghost picture ghost  路  10Comments

AJenbo picture AJenbo  路  6Comments