Game Items
CItemDB, CItemInfo, CItemDesc, CItemCollection, CShop, CMailItem, CInventoryItem, ItemBonus, bit flag accessors
| Address | Size | Name | Description |
|---|---|---|---|
| 0x0042BC80 | 86 | CItemInfoMgr__static_init_0042bc80 | Static initializer: calls CSVParser__free_all_line_buffers to initialize CItemInfoMgr CSV state, registers atexit_CItemInfoMgr_dtor for cleanup at shutdown |
| 0x0069BD10 | 15 | thunk_to_ItemBonus__reg_subspconsumption | Thunk forwarding to ItemBonus__reg_subspconsumption. Registers the SubSPConsumption item bonus handler. |
| 0x0069BD20 | 15 | thunk_to_ItemBonus__reg_SubSPdrain | Thunk forwarding to ItemBonus__reg_SubSPdrain. Registers the SubSPdrain item bonus handler. |
| 0x0069BD30 | 15 | thunk_to_ItemBonus__reg_SubSkillDelay | Thunk forwarding to ItemBonus__reg_SubSkillDelay. Registers the SubSkillDelay item bonus handler. |
| 0x0069BD40 | 15 | thunk_to_ItemBonus__reg_SubSkillMDamage | Thunk forwarding to ItemBonus__reg_SubSkillMDamage. Registers the SubSkillMDamage item bonus handler. |
| 0x0069BD50 | 15 | thunk_to_ItemBonus__reg_SubSkillSP | Thunk forwarding to ItemBonus__reg_SubSkillSP. Registers the SubSkillSP item bonus handler. |
| 0x0069BD60 | 15 | thunk_to_ItemBonus__reg_SubSpecificSpellCastTime | Thunk forwarding to ItemBonus__reg_SubSpecificSpellCastTime. Registers the SubSpecificSpellCastTime item bonus handler. |
| 0x0069BD70 | 15 | thunk_to_ItemBonus__reg_SubSpellCastTime | Thunk forwarding to ItemBonus__reg_SubSpellCastTime. Registers the SubSpellCastTime item bonus handler. |
| 0x0069BD80 | 15 | thunk_to_ItemBonus__reg_SubSpellDelay | Thunk forwarding to ItemBonus__reg_SubSpellDelay. Registers the SubSpellDelay item bonus handler. |
| 0x0069BD90 | 15 | thunk_to_ItemBonus__reg_AddEXPPercent_KillRace | Thunk forwarding to ItemBonus__reg_AddEXPPercent_KillRace. Registers the AddEXPPercent_KillRace item bonus handler. |
| 0x0069BDA0 | 15 | thunk_to_ItemBonus__reg_AddExtParam | Thunk forwarding to ItemBonus__reg_AddExtParam. Registers the AddExtParam item bonus handler. |
| 0x0069BDB0 | 15 | thunk_to_ItemBonus__reg_AddGuideAttack | Thunk forwarding to ItemBonus__reg_AddGuideAttack. Registers the AddGuideAttack item bonus handler. |
| 0x0069BDC0 | 15 | thunk_to_ItemBonus__reg_AddHPdrain | Thunk forwarding to ItemBonus__reg_AddHPdrain. Registers the AddHPdrain item bonus handler. |
| 0x0069BDD0 | 15 | thunk_to_ItemBonus__reg_AddHealModifyPercent | Thunk forwarding to ItemBonus__reg_AddHealModifyPercent. Registers the AddHealModifyPercent item bonus handler. |
| 0x0069BDE0 | 15 | thunk_to_ItemBonus__reg_AddHealValue | Thunk forwarding to ItemBonus__reg_AddHealValue. Registers the AddHealValue item bonus handler. |
| 0x0069BDF0 | 15 | thunk_to_ItemBonus__reg_AddIgnore_MRES_RacePercent | Thunk forwarding to ItemBonus__reg_AddIgnore_MRES_RacePercent. Registers the AddIgnore_MRES_RacePercent item bonus handler. |
| 0x0069BE00 | 15 | thunk_to_ItemBonus__reg_AddIgnore_RES_RacePercent | Thunk forwarding to ItemBonus__reg_AddIgnore_RES_RacePercent. Registers the AddIgnore_RES_RacePercent item bonus handler. |
| 0x0069BE10 | 15 | thunk_to_ItemBonus__reg_AddMDamage_Property | Thunk forwarding to ItemBonus__reg_AddMDamage_Property. Registers the AddMDamage_Property item bonus handler. |
| 0x0069BE20 | 15 | thunk_to_ItemBonus__reg_AddMDamage_Size | Thunk forwarding to ItemBonus__reg_AddMDamage_Size. Registers the AddMDamage_Size item bonus handler. |
| 0x0069BE30 | 15 | thunk_to_ItemBonus__reg_AddAttrTolerace | Thunk forwarding to ItemBonus__reg_AddAttrTolerace. Registers the AddAttrTolerace (attribute tolerance) item bonus handler. |
| 0x0069BE40 | 15 | thunk_to_ItemBonus__reg_AddMdamage_Class | Thunk forwarding to ItemBonus__reg_AddMdamage_Class. Registers the AddMdamage_Class item bonus handler. |
| 0x0069BE50 | 15 | thunk_to_ItemBonus__reg_AddMdamage_Race | Thunk forwarding to ItemBonus__reg_AddMdamage_Race. Registers the AddMdamage_Race item bonus handler. |
| 0x0069BE60 | 15 | thunk_to_ItemBonus__reg_AddMeleeAttackDamage | Thunk forwarding to ItemBonus__reg_AddMeleeAttackDamage. Registers the AddMeleeAttackDamage item bonus handler. |
| 0x0069BE70 | 15 | thunk_to_ItemBonus__reg_AddMeleeAttackReflect | Thunk forwarding to ItemBonus__reg_AddMeleeAttackReflect. Registers the AddMeleeAttackReflect item bonus handler. |
| 0x0069BE80 | 15 | thunk_to_ItemBonus__reg_AddNeverknockback | Thunk forwarding to ItemBonus__reg_AddNeverknockback. Registers the AddNeverknockback item bonus handler. |
| 0x0069BE90 | 15 | thunk_to_ItemBonus__reg_AddRaceTolerace | Thunk forwarding to ItemBonus__reg_AddRaceTolerace. Registers the AddRaceTolerace (race tolerance) item bonus handler. |
| 0x0069BEA0 | 15 | thunk_to_ItemBonus__reg_AddRangeAttackDamage | Thunk forwarding to ItemBonus__reg_AddRangeAttackDamage. Registers the AddRangeAttackDamage item bonus handler. |
| 0x0069BEB0 | 15 | thunk_to_ItemBonus__reg_AddReceiveItem_Equip | Thunk forwarding to ItemBonus__reg_AddReceiveItem_Equip. Registers the AddReceiveItem_Equip item bonus handler. |
| 0x0069BEC0 | 15 | thunk_to_ItemBonus__reg_AddReflectMagic | Thunk forwarding to ItemBonus__reg_AddReflectMagic. Registers the AddReflectMagic item bonus handler. |
| 0x0069BED0 | 15 | thunk_to_ItemBonus__reg_AddReflectTolerace | Thunk forwarding to ItemBonus__reg_AddReflectTolerace. Registers the AddReflectTolerace (reflect tolerance) item bonus handler. |
| 0x0069BEE0 | 15 | thunk_to_ItemBonus__reg_addattrtolerace | Thunk forwarding to ItemBonus__reg_addattrtolerace. Registers the addattrtolerace (attribute tolerance, lowercase variant) item bonus handler. |
| 0x0069BEF0 | 15 | thunk_to_ItemBonus__reg_AddSFCTEquipAmount | Thunk forwarding to ItemBonus__reg_AddSFCTEquipAmount. Registers the AddSFCTEquipAmount item bonus handler. |
| 0x0069BF00 | 15 | thunk_to_ItemBonus__reg_AddSFCTEquipPermill | Thunk forwarding to ItemBonus__reg_AddSFCTEquipPermill. Registers the AddSFCTEquipPermill item bonus handler. |
| 0x0069BF10 | 15 | thunk_to_ItemBonus__reg_AddSPconsumption | Thunk forwarding to ItemBonus__reg_AddSPconsumption. Registers the AddSPconsumption item bonus handler. |
| 0x0069BF20 | 15 | thunk_to_ItemBonus__reg_addspconsumption | Thunk forwarding to ItemBonus__reg_addspconsumption. Registers the addspconsumption item bonus handler (lowercase variant). |
| 0x0069BF30 | 15 | thunk_to_ItemBonus__reg_AddSPdrain | Thunk forwarding to ItemBonus__reg_AddSPdrain. Registers the AddSPdrain item bonus handler. |
| 0x0069BF40 | 15 | thunk_to_ItemBonus__reg_AddSkillDelay | Thunk forwarding to ItemBonus__reg_AddSkillDelay. Registers the AddSkillDelay item bonus handler. |
| 0x0069BF50 | 15 | thunk_to_ItemBonus__reg_AddSkillMDamage | Thunk forwarding to ItemBonus__reg_AddSkillMDamage. Registers the AddSkillMDamage item bonus handler. |
| 0x0069BF60 | 15 | thunk_to_ItemBonus__reg_AddSkillSP | Thunk forwarding to ItemBonus__reg_AddSkillSP. Registers the AddSkillSP item bonus handler. |
| 0x0069BF70 | 15 | thunk_to_ItemBonus__reg_AddSpecificSpellCastTime | Thunk forwarding to ItemBonus__reg_AddSpecificSpellCastTime. Registers the AddSpecificSpellCastTime item bonus handler. |
| 0x0069BF80 | 15 | thunk_to_ItemBonus__reg_AddSpellCastTime | Thunk forwarding to ItemBonus__reg_AddSpellCastTime. Registers the AddSpellCastTime item bonus handler. |
| 0x0069BF90 | 15 | thunk_to_ItemBonus__reg_AddBowAttackDamage | Thunk forwarding to ItemBonus__reg_AddBowAttackDamage. |
| 0x0069BFA0 | 15 | thunk_to_ItemBonus__reg_AddSpellDelay | Thunk forwarding to ItemBonus__reg_AddSpellDelay. |
| 0x0069BFB0 | 15 | thunk_to_ItemBonus__reg_BodyAttribute | Thunk forwarding to ItemBonus__reg_BodyAttribute. |
| 0x0069BFC0 | 15 | thunk_to_ItemBonus__reg_Clairvoyance | Thunk forwarding to ItemBonus__reg_Clairvoyance. |
| 0x0069BFD0 | 15 | thunk_to_ItemBonus__reg_ClassAddDamage | Thunk forwarding to ItemBonus__reg_ClassAddDamage. |
| 0x0069BFE0 | 15 | thunk_to_ItemBonus__reg_ClassSubDamage | Thunk forwarding to ItemBonus__reg_ClassSubDamage. |
| 0x0069BFF0 | 15 | thunk_to_ItemBonus__reg_Condition | Thunk forwarding to ItemBonus__reg_Condition. |
| 0x0069C000 | 15 | thunk_to_ItemBonus__reg_DisableSkill | Thunk forwarding to ItemBonus__reg_DisableSkill. |
| 0x0069C010 | 15 | thunk_to_ItemBonus__reg_EnableSkill | Thunk forwarding to ItemBonus__reg_EnableSkill. |
| 0x0069C020 | 15 | thunk_to_ItemBonus__reg_IndestructibleArmor | Thunk forwarding to ItemBonus__reg_IndestructibleArmor. |
| 0x0069C030 | 15 | thunk_to_ItemBonus__reg_IndestructibleWeapon | Thunk forwarding to ItemBonus__reg_IndestructibleWeapon. |
| 0x0069C040 | 15 | thunk_to_ItemBonus__reg_AddCRIPercent_Race | Thunk forwarding to ItemBonus__reg_AddCRIPercent_Race. |
| 0x0069C050 | 15 | thunk_to_ItemBonus__reg_Magicimmune | Thunk forwarding to ItemBonus__reg_Magicimmune. |
| 0x0069C060 | 15 | thunk_to_ItemBonus__reg_NoDispell | Thunk forwarding to ItemBonus__reg_NoDispell. |
| 0x0069C070 | 15 | thunk_to_ItemBonus__reg_NoJamstone | Thunk forwarding to ItemBonus__reg_NoJamstone. |
| 0x0069C080 | 15 | thunk_to_ItemBonus__reg_NoMadogearfuel | Thunk forwarding to ItemBonus__reg_NoMadogearfuel. |
| 0x0069C090 | 15 | thunk_to_ItemBonus__reg_PerfectDamage | Thunk forwarding to ItemBonus__reg_PerfectDamage. |
| 0x0069C0A0 | 15 | thunk_to_ItemBonus__reg_RaceAddDamage | Thunk forwarding to ItemBonus__reg_RaceAddDamage. |
| 0x0069C0B0 | 15 | thunk_to_ItemBonus__reg_RaceAddDamageSelf | Thunk forwarding to ItemBonus__reg_RaceAddDamageSelf. |
| 0x0069C0C0 | 15 | thunk_to_ItemBonus__reg_RaceSubDamage | Thunk forwarding to ItemBonus__reg_RaceSubDamage. |
| 0x0069C0D0 | 15 | thunk_to_ItemBonus__reg_RaceSubDamageSelf | Thunk forwarding to ItemBonus__reg_RaceSubDamageSelf. |
| 0x0069C0E0 | 15 | thunk_to_ItemBonus__reg_Reincarnation | Thunk forwarding to ItemBonus__reg_Reincarnation. |
| 0x0069C0F0 | 15 | thunk_to_ItemBonus__reg_AddDamage_CRI | Thunk forwarding to ItemBonus__reg_AddDamage_CRI. |
| 0x0069C100 | 15 | thunk_to_ItemBonus__reg_SetIgnoreDEFClass | Thunk forwarding to ItemBonus__reg_SetIgnoreDEFClass. |
| 0x0069C110 | 15 | thunk_to_ItemBonus__reg_SetIgnoreDEFRace | Thunk forwarding to ItemBonus__reg_SetIgnoreDEFRace. |
| 0x0069C120 | 15 | thunk_to_ItemBonus__reg_SetIgnoreDefClass_Percent | Thunk forwarding to ItemBonus__reg_SetIgnoreDefClass_Percent. |
| 0x0069C130 | 15 | thunk_to_ItemBonus__reg_SetIgnoreDefRace_Percent | Thunk forwarding to ItemBonus__reg_SetIgnoreDefRace_Percent. |
| 0x0069C140 | 15 | thunk_to_ItemBonus__reg_SetIgnoreMdefClass | Thunk forwarding to ItemBonus__reg_SetIgnoreMdefClass. |
| 0x0069C150 | 15 | thunk_to_ItemBonus__reg_SetIgnoreMdefRace | Thunk forwarding to ItemBonus__reg_SetIgnoreMdefRace. |
| 0x0069C160 | 15 | thunk_to_ItemBonus__reg_SetInvestigate | Thunk forwarding to ItemBonus__reg_SetInvestigate. |
| 0x0069C170 | 15 | thunk_to_ItemBonus__reg_SplashAttack | Thunk forwarding to ItemBonus__reg_SplashAttack. |
| 0x0069C180 | 15 | thunk_to_ItemBonus__reg_SubAttrTolerace | Thunk forwarding to ItemBonus__reg_SubAttrTolerace. |
| 0x0069C190 | 15 | thunk_to_ItemBonus__reg_subattrtolerace | Thunk forwarding to ItemBonus__reg_subattrtolerace (lowercase variant). |
| 0x0069C1A0 | 15 | thunk_to_ItemBonus__reg_AddDamage_HIT | Thunk forwarding to ItemBonus__reg_AddDamage_HIT. |
| 0x0069C1B0 | 15 | thunk_to_ItemBonus__reg_SubBowAttackDamage | Thunk forwarding to ItemBonus__reg_SubBowAttackDamage. |
| 0x0069C1C0 | 15 | thunk_to_ItemBonus__reg_SubCRIPercent_Race | Thunk forwarding to ItemBonus__reg_SubCRIPercent_Race. |
| 0x0069C1D0 | 15 | thunk_to_ItemBonus__reg_SubDamage_CRI | Thunk forwarding to ItemBonus__reg_SubDamage_CRI. |
| 0x0069C1E0 | 15 | thunk_to_ItemBonus__reg_SubDamage_HIT | Thunk forwarding to ItemBonus__reg_SubDamage_HIT. |
| 0x0069C1F0 | 15 | thunk_to_ItemBonus__reg_SubDamage_Property | Thunk forwarding to ItemBonus__reg_SubDamage_Property. |
| 0x0069C200 | 15 | thunk_to_ItemBonus__reg_SubDamage_SKID | Thunk forwarding to ItemBonus__reg_SubDamage_SKID. |
| 0x0069C210 | 15 | thunk_to_ItemBonus__reg_SubDamage_Size | Thunk forwarding to ItemBonus__reg_SubDamage_Size. |
| 0x0069C220 | 15 | thunk_to_ItemBonus__reg_SubEXPPercent_KillRace | Thunk forwarding to ItemBonus__reg_SubEXPPercent_KillRace. |
| 0x0069C230 | 15 | thunk_to_ItemBonus__reg_SubExtParam | Thunk forwarding to ItemBonus__reg_SubExtParam. |
| 0x0069C240 | 15 | thunk_to_ItemBonus__reg_SubGuideAttack | Thunk forwarding to ItemBonus__reg_SubGuideAttack. |
| 0x0069C250 | 15 | thunk_to_ItemBonus__reg_AddDamage_Property | Thunk forwarding to ItemBonus__reg_AddDamage_Property. |
| 0x0069C260 | 15 | thunk_to_ItemBonus__reg_SubHPdrain | Thunk forwarding to ItemBonus__reg_SubHPdrain. |
| 0x0069C270 | 15 | thunk_to_ItemBonus__reg_SubHealModifyPercent | Thunk forwarding to ItemBonus__reg_SubHealModifyPercent. |
| 0x0069C280 | 15 | thunk_to_ItemBonus__reg_SubHealValue | Thunk forwarding to ItemBonus__reg_SubHealValue. |
| 0x0069C290 | 15 | thunk_to_ItemBonus__reg_SubIgnore_MRES_RacePercent | Thunk forwarding to ItemBonus__reg_SubIgnore_MRES_RacePercent. |
| 0x0069C2A0 | 15 | thunk_to_ItemBonus__reg_SubIgnore_RES_RacePercent | Thunk forwarding to ItemBonus__reg_SubIgnore_RES_RacePercent. |
| 0x0069C2B0 | 15 | thunk_to_ItemBonus__reg_SubMDamage_Property | Thunk forwarding to ItemBonus__reg_SubMDamage_Property. |
| 0x0069C2C0 | 15 | thunk_to_ItemBonus__reg_SubMDamage_Size | Thunk forwarding to ItemBonus__reg_SubMDamage_Size. |
| 0x0069C2D0 | 15 | thunk_to_ItemBonus__reg_SubMdamage_Class | Thunk forwarding to ItemBonus__reg_SubMdamage_Class. |
| 0x0069C2E0 | 15 | thunk_to_ItemBonus__reg_SubMdamage_Race | Thunk forwarding to ItemBonus__reg_SubMdamage_Race. |
| 0x0069C2F0 | 15 | thunk_to_ItemBonus__reg_SubMeleeAttackDamage | Thunk forwarding to ItemBonus__reg_SubMeleeAttackDamage. |
| 0x0069C300 | 15 | thunk_to_ItemBonus__reg_AddDamage_SKID | Thunk forwarding to ItemBonus__reg_AddDamage_SKID. |
| 0x0069C310 | 15 | thunk_to_ItemBonus__reg_SubMeleeAttackReflect | Thunk forwarding to ItemBonus__reg_SubMeleeAttackReflect. |
| 0x0069C320 | 15 | thunk_to_ItemBonus__reg_SubNeverknockback | Thunk forwarding to ItemBonus__reg_SubNeverknockback. |
| 0x0069C330 | 15 | thunk_to_ItemBonus__reg_SubRaceTolerace | Thunk forwarding to ItemBonus__reg_SubRaceTolerace. |
| 0x0069C340 | 15 | thunk_to_ItemBonus__reg_SubRangeAttackDamage | Thunk forwarding to ItemBonus__reg_SubRangeAttackDamage. |
| 0x0069C350 | 15 | thunk_to_ItemBonus__reg_SubReceiveItem_Equip | Thunk forwarding to ItemBonus__reg_SubReceiveItem_Equip. |
| 0x0069C360 | 15 | thunk_to_ItemBonus__reg_SubReflectMagic | Thunk forwarding to ItemBonus__reg_SubReflectMagic. |
| 0x0069C370 | 15 | thunk_to_ItemBonus__reg_SubReflectTolerace | Thunk forwarding to ItemBonus__reg_SubReflectTolerace. |
| 0x0069C380 | 15 | thunk_to_ItemBonus__reg_SubSFCTEquipAmount | Thunk forwarding to ItemBonus__reg_SubSFCTEquipAmount. |
| 0x0069C390 | 15 | thunk_to_ItemBonus__reg_SubSFCTEquipPermill | Thunk forwarding to ItemBonus__reg_SubSFCTEquipPermill. |
| 0x0069C3B0 | 15 | thunk_to_ItemBonus__reg_AddDamage_Size | Thunk forwarding to ItemBonus__reg_AddDamage_Size. |
| 0x006A1AA0 | 1287 | ItemBonus__ctor | ItemBonus constructor: sets vtable to ItemBonus__scalar_deleting_dtor, creates CLuaInstance, initializes 12+ hashmaps/trees/vectors for item bonus data (enchant trees, skill bonuses, etc.). Creates CEnchantMgr enchant_data at +0x18. |
| 0x006A1FB0 | 435 | ItemBonus__move_ctor | ItemBonus move constructor: copies vtable and lua fields, then swaps hashmap/vector internals from source object. Initializes empty containers first, then swaps with source. |
| 0x006A4A00 | 73 | ItemBonus__destroy_umap_14h_nodes | Destroys unordered_map nodes with 0x14-byte entries and frees sentinel |
| 0x006A4A50 | 73 | ItemBonus__destroy_umap_2Ch_nodes_A | Destroys unordered_map nodes with 0x2C-byte entries and frees sentinel |
| 0x006A4AA0 | 103 | ItemBonus__free_linked_list_10h | Walks linked list freeing 0x10-byte nodes, then frees sentinel |
| 0x006A4B10 | 73 | ItemBonus__destroy_umap_2Ch_nodes_B | Destroys unordered_map nodes with 0x2C-byte entries via variant B |
| 0x006A4B60 | 103 | ItemBonus__free_linked_list_10h_B | Walks linked list freeing 0x10-byte nodes via variant B |
| 0x006A4BD0 | 73 | ItemBonus__destroy_umap_2Ch_nodes_C | Destroys unordered_map nodes with 0x2C-byte entries via variant C |
| 0x006A4C20 | 73 | ItemBonus__destroy_umap_2Ch_nodes_D | Destroys unordered_map nodes with 0x2C-byte entries via variant D |
| 0x006A4C70 | 103 | ItemBonus__destroy_list_0x18 | Walks linked list freeing 0x18-byte nodes, then frees sentinel |
| 0x006A4CE0 | 65 | ItemBonus__dtor_wrapper_40c0 | SEH-wrapped destructor delegate to 006a40c0 |
| 0x006A4D30 | 87 | ItemBonus__dtor_json_reader_2Ch | Destroys JsonReader 0x2C-byte node at member offset+4 |
| 0x006A4D90 | 87 | ItemBonus__dtor_json_reader_34h | Destroys JsonReader 0x34-byte (52-byte) node at member offset+4 via CFmt__destroy_tree_52byte_nodes |
| 0x006A4DF0 | 66 | ItemBonus__dtor_enchant_tree | Destroys enchantment tree via Ench__ui_0068dd20 |
| 0x006A4E40 | 68 | ItemBonus__dtor_string | SEH-wrapped STL string destructor |
| 0x006A4E90 | 116 | ItemBonus__free_linked_list_0Ch | Walks linked list at offset+4 freeing 0xC-byte nodes |
| 0x006A4F10 | 80 | ItemBonus__dtor_delegate_2980 | SEH-wrapped destructor delegate to 006a2980 with offset+4 param |
| 0x006A4F60 | 115 | ItemBonus__dtor_umap_at_offset8_2Ch | Calls 006a37f0 then destroys 0x2C-byte umap at member offset+8 |
| 0x006A4FE0 | 80 | ItemBonus__dtor_delegate_2ea0 | SEH-wrapped destructor delegate to 006a2ea0 with offset+4 param |
| 0x006A5030 | 115 | ItemBonus__dtor_umap_at_offset8_2Ch_B | Calls 006a35b0 then destroys 0x2C-byte umap at member offset+8 |
| 0x006A50B0 | 65 | ItemBonus__dtor_delegate_4210 | SEH-wrapped destructor delegate to 006a4210 |
| 0x006A5100 | 65 | ItemBonus__dtor_delegate_2860 | SEH-wrapped destructor delegate to 006a2860 |
| 0x006A5150 | 65 | ItemBonus__dtor_delegate_28f0 | SEH-wrapped destructor delegate to 006a28f0 |
| 0x006A51A0 | 65 | ItemBonus__dtor_delegate_2980_B | SEH-wrapped destructor delegate to 006a2980 |
| 0x006A51F0 | 65 | ItemBonus__dtor_delegate_2a10 | SEH-wrapped destructor delegate to 006a2a10 |
| 0x006A5240 | 65 | ItemBonus__dtor_delegate_2aa0 | SEH-wrapped destructor delegate to 006a2aa0 |
| 0x006A5290 | 65 | ItemBonus__dtor_delegate_2b30 | SEH-wrapped destructor delegate to 006a2b30 |
| 0x006A52E0 | 65 | ItemBonus__dtor_delegate_2bc0 | SEH-wrapped destructor delegate to 006a2bc0 |
| 0x006A5330 | 102 | ItemBonus__dtor_umap_50h_at_offset4 | Calls 006a3490 then destroys 0x50-byte umap at offset+4 |
| 0x006A53A0 | 102 | ItemBonus__dtor_umap_14h_at_offset4 | Calls 006a3520 then destroys 0x14-byte umap at offset+4 |
| 0x006A5410 | 102 | ItemBonus__dtor_umap_2Ch_at_offset4 | Calls 006a35b0 then destroys 0x2C-byte umap at offset+4 |
| 0x006A5480 | 65 | ItemBonus__dtor_delegate_2da0 | SEH-wrapped destructor delegate to 006a2da0 |
| 0x006A54D0 | 102 | ItemBonus__dtor_umap_2Ch_at_offset4_B | Calls 006a36d0 then destroys 0x2C-byte umap at offset+4 |
| 0x006A5540 | 65 | ItemBonus__dtor_delegate_2ea0_B | SEH-wrapped destructor delegate to 006a2ea0 |
| 0x006A5590 | 102 | ItemBonus__dtor_umap_2Ch_at_offset4_C | Calls 006a37f0 then destroys 0x2C-byte umap at offset+4 |
| 0x006A5600 | 102 | ItemBonus__dtor_umap_2Ch_at_offset4_D | Calls 006a3880 then destroys 0x2C-byte umap at offset+4 |
| 0x006A5670 | 65 | ItemBonus__dtor_delegate_3010 | SEH-wrapped destructor delegate to 006a3010 |
| 0x006A56C0 | 909 | ItemBonus__destructor | Main destructor: clears all bonus maps, lists, observers, and enchant trees |
| 0x006A5A50 | 106 | ItemBonus__dtor_pair_2860_2da0 | Sequentially calls destructors 006a2860 then 006a2da0 |
| 0x006A5AD0 | 190 | ItemBonus__clear_hashmap_10h_A | Clears hashmap: rehashes if sparse, else frees all 0x10-byte nodes |
| 0x006A5BA0 | 190 | ItemBonus__clear_hashmap_10h_B | Clears hashmap: rehashes if sparse, else frees all 0x10-byte nodes (variant B) |
| 0x006A5C70 | 190 | ItemBonus__clear_hashmap_10h_C | Clears hashmap: rehashes if sparse, else frees all 0x10-byte nodes (variant C) |
| 0x006A5D70 | 103 | ItemBonus__clear_hashmap_50h | Clears hashmap with 0x50-byte node umap destructor |
| 0x006A5DE0 | 103 | ItemBonus__clear_hashmap_14h | Clears hashmap with 0x14-byte node umap destructor |
| 0x006A5E50 | 103 | ItemBonus__clear_hashmap_2Ch | Clears hashmap with 0x2C-byte node umap destructor |
| 0x006A5EC0 | 145 | ItemBonus__clear_hashmap_10h_seh | SEH-wrapped hashmap clear, frees 0x10-byte nodes and resets buckets |
| 0x006A5F60 | 75 | ItemBonus__clear_hashmap_2Ch_simple | Clears hashmap with 0x2C-byte node destructor, no SEH wrapper |
| 0x006A5FB0 | 145 | ItemBonus__clear_hashmap_10h_seh_B | SEH-wrapped hashmap clear, frees 0x10-byte nodes (variant B) |
| 0x006A6050 | 75 | ItemBonus__clear_hashmap_2Ch_simple_B | Clears hashmap with 0x2C-byte node destructor (variant B) |
| 0x006A60A0 | 75 | ItemBonus__clear_hashmap_2Ch_simple_C | Clears hashmap with 0x2C-byte node destructor (variant C) |
| 0x006A6260 | 353 | ItemBonus__uset_insert_4byte_key | Inserts a 4-byte key into an unordered_set using FNV-1a hash over the 4 bytes. Allocates 0x10-byte node, stores key at +8. Rehashes if load factor exceeded. Its declared type suggests a string set, but actual usage is 4-byte int keys. |
| 0x006A6490 | 179 | ItemBonus__reg_subspconsumption | Registers "subspconsumption" bonus with 2 int params |
| 0x006A6550 | 179 | ItemBonus__reg_SubSPdrain | Registers "SubSPdrain" bonus with 2 int params |
| 0x006A6610 | 179 | ItemBonus__reg_SubSkillDelay | Registers "SubSkillDelay" bonus with skill_id+value params |
| 0x006A66D0 | 179 | ItemBonus__reg_SubSkillMDamage | Registers "SubSkillMDamage" bonus with skill_id+value params |
| 0x006A6790 | 179 | ItemBonus__reg_SubSkillSP | Registers "SubSkillSP" bonus with skill_id+value params |
| 0x006A6850 | 179 | ItemBonus__reg_SubSpecificSpellCastTime | Registers "SubSpecificSpellCastTime" bonus with skill_id+value params |
| 0x006A6910 | 179 | ItemBonus__reg_SubSpellCastTime | Registers "SubSpellCastTime" bonus with 1 int param |
| 0x006A69D0 | 179 | ItemBonus__reg_SubSpellDelay | Registers "SubSpellDelay" bonus with 1 int param |
| 0x006A6A90 | 179 | ItemBonus__reg_AddEXPPercent_KillRace | Registers "AddEXPPercent_KillRace" bonus with race+value params |
| 0x006A6B50 | 179 | ItemBonus__reg_AddExtParam | Registers "AddExtParam" bonus with 3 params |
| 0x006A6C10 | 179 | ItemBonus__reg_AddGuideAttack | Registers "AddGuideAttack" bonus with 1 int param |
| 0x006A6CD0 | 179 | ItemBonus__reg_AddHPdrain | Registers "AddHPdrain" bonus with 2 int params |
| 0x006A6D90 | 179 | ItemBonus__reg_AddHealModifyPercent | Registers "AddHealModifyPercent" bonus with 1 int param |
| 0x006A6E50 | 179 | ItemBonus__reg_AddHealValue | Registers "AddHealValue" bonus with 1 int param |
| 0x006A6F10 | 179 | ItemBonus__reg_AddIgnore_MRES_RacePercent | Registers "AddIgnore_MRES_RacePercent" bonus with race+value params |
| 0x006A6FD0 | 179 | ItemBonus__reg_AddIgnore_RES_RacePercent | Registers "AddIgnore_RES_RacePercent" bonus with race+value params |
| 0x006A7090 | 179 | ItemBonus__reg_AddMDamage_Property | Registers "AddMDamage_Property" bonus with 3 params |
| 0x006A7150 | 179 | ItemBonus__reg_AddMDamage_Size | Registers "AddMDamage_Size" bonus with 3 params |
| 0x006A7210 | 179 | ItemBonus__reg_AddAttrTolerace | Registers "AddAttrTolerace" bonus with element+value params |
| 0x006A72D0 | 179 | ItemBonus__reg_AddMdamage_Class | Registers "AddMdamage_Class" bonus with class+value params |
| 0x006A7390 | 179 | ItemBonus__reg_AddMdamage_Race | Registers "AddMdamage_Race" bonus with race+value params |
| 0x006A7450 | 179 | ItemBonus__reg_AddMeleeAttackDamage | Registers "AddMeleeAttackDamage" bonus with race+value params |
| 0x006A7510 | 179 | ItemBonus__reg_AddMeleeAttackReflect | Registers "AddMeleeAttackReflect" bonus with 1 int param |
| 0x006A75D0 | 179 | ItemBonus__reg_AddNeverknockback | Registers "AddNeverknockback" bonus with 1 int param |
| 0x006A7690 | 179 | ItemBonus__reg_AddRaceTolerace | Registers "AddRaceTolerace" bonus with race+value params |
| 0x006A7750 | 179 | ItemBonus__reg_AddRangeAttackDamage | Registers "AddRangeAttackDamage" bonus with race+value params |
| 0x006A7810 | 179 | ItemBonus__reg_AddReceiveItem_Equip | Registers "AddReceiveItem_Equip" bonus with 1 int param |
| 0x006A78D0 | 179 | ItemBonus__reg_AddReflectMagic | Registers "AddReflectMagic" bonus with 1 int param |
| 0x006A7990 | 179 | ItemBonus__reg_AddReflectTolerace | Registers "AddReflectTolerace" bonus with 1 int param |
| 0x006A7A50 | 179 | ItemBonus__reg_addattrtolerace | Registers "addattrtolerace" bonus with 3 params (lowercase variant) |
| 0x006A7B10 | 179 | ItemBonus__reg_AddSFCTEquipAmount | Registers "AddSFCTEquipAmount" bonus with skill+type+amount params |
| 0x006A7BD0 | 179 | ItemBonus__reg_AddSFCTEquipPermill | Registers "AddSFCTEquipPermill" bonus with skill+type+permill params |
| 0x006A7C90 | 179 | ItemBonus__reg_AddSPconsumption | Registers "AddSPconsumption" bonus with 1 int param |
| 0x006A7D50 | 179 | ItemBonus__reg_addspconsumption | Registers "addspconsumption" bonus with 2 int params (lowercase variant) |
| 0x006A7E10 | 179 | ItemBonus__reg_AddSPdrain | Registers "AddSPdrain" bonus with 2 int params |
| 0x006A7ED0 | 179 | ItemBonus__reg_AddSkillDelay | Registers "AddSkillDelay" bonus with skill_id+value params |
| 0x006A7F90 | 179 | ItemBonus__reg_AddSkillMDamage | Registers "AddSkillMDamage" bonus with skill_id+value params |
| 0x006A8050 | 179 | ItemBonus__reg_AddSkillSP | Registers "AddSkillSP" bonus with skill_id+value params |
| 0x006A8110 | 179 | ItemBonus__reg_AddSpecificSpellCastTime | Registers "AddSpecificSpellCastTime" bonus with skill_id+value params |
| 0x006A81D0 | 179 | ItemBonus__reg_AddSpellCastTime | Registers "AddSpellCastTime" bonus with 1 int param |
| 0x006A8290 | 179 | ItemBonus__reg_AddBowAttackDamage | Registers "AddBowAttackDamage" bonus with race+value params |
| 0x006A8350 | 179 | ItemBonus__reg_AddSpellDelay | Registers "AddSpellDelay" bonus with 1 int param |
| 0x006A8410 | 179 | ItemBonus__reg_BodyAttribute | Registers "BodyAttribute" bonus with 1 flag param |
| 0x006A84D0 | 179 | ItemBonus__reg_Clairvoyance | Registers "Clairvoyance" bonus with 1 int param |
| 0x006A8590 | 179 | ItemBonus__reg_ClassAddDamage | Registers "ClassAddDamage" bonus with 3 params |
| 0x006A8650 | 179 | ItemBonus__reg_ClassSubDamage | Registers "ClassSubDamage" bonus with 3 params |
| 0x006A8710 | 179 | ItemBonus__reg_Condition | Registers "Condition" bonus with 3 flag params |
| 0x006A87D0 | 179 | ItemBonus__reg_DisableSkill | Registers "DisableSkill" bonus with skill_id+value params |
| 0x006A8890 | 179 | ItemBonus__reg_EnableSkill | Registers "EnableSkill" bonus with skill_id+value params |
| 0x006A8950 | 179 | ItemBonus__reg_IndestructibleArmor | Registers "IndestructibleArmor" bonus with 1 int param |
| 0x006A8A10 | 179 | ItemBonus__reg_IndestructibleWeapon | Registers "IndestructibleWeapon" bonus with 1 int param |
| 0x006A8AD0 | 179 | ItemBonus__reg_AddCRIPercent_Race | Registers "AddCRIPercent_Race" bonus with race+value params |
| 0x006A8B90 | 179 | ItemBonus__reg_Magicimmune | Registers "Magicimmune" bonus with 1 int param |
| 0x006A8C50 | 179 | ItemBonus__reg_NoDispell | Registers "NoDispell" bonus with 1 int param |
| 0x006A8D10 | 179 | ItemBonus__reg_NoJamstone | Registers "NoJamstone" bonus with 1 int param |
| 0x006A8DD0 | 179 | ItemBonus__reg_NoMadogearfuel | Registers "NoMadogearfuel" bonus with 1 int param |
| 0x006A8E90 | 179 | ItemBonus__reg_PerfectDamage | Registers "PerfectDamage" bonus with 1 int param |
| 0x006A8F50 | 179 | ItemBonus__reg_RaceAddDamage | Registers "RaceAddDamage" bonus with race+value params |
| 0x006A9010 | 179 | ItemBonus__reg_RaceAddDamageSelf | Registers "RaceAddDamageSelf" bonus with race+value params |
| 0x006A90D0 | 179 | ItemBonus__reg_RaceSubDamage | Registers "RaceSubDamage" bonus with race+value params |
| 0x006A9190 | 179 | ItemBonus__reg_RaceSubDamageSelf | Registers "RaceSubDamageSelf" bonus with race+value params |
| 0x006A9250 | 179 | ItemBonus__reg_Reincarnation | Registers "Reincarnation" bonus with 1 int param |
| 0x006A9310 | 179 | ItemBonus__reg_AddDamage_CRI | Registers "AddDamage_CRI" bonus with race+value params |
| 0x006A93D0 | 179 | ItemBonus__reg_SetIgnoreDEFClass | Registers "SetIgnoreDEFClass" bonus with 1 flag param |
| 0x006A9490 | 179 | ItemBonus__reg_SetIgnoreDEFRace | Registers "SetIgnoreDEFRace" bonus with 1 flag param |
| 0x006A9550 | 179 | ItemBonus__reg_SetIgnoreDefClass_Percent | Registers "SetIgnoreDefClass_Percent" bonus with class+value params |
| 0x006A9610 | 179 | ItemBonus__reg_SetIgnoreDefRace_Percent | Registers "SetIgnoreDefRace_Percent" bonus with race+value params |
| 0x006A96D0 | 179 | ItemBonus__reg_SetIgnoreMdefClass | Registers "SetIgnoreMdefClass" bonus with class+value params |
| 0x006A9790 | 179 | ItemBonus__reg_SetIgnoreMdefRace | Registers "SetIgnoreMdefRace" bonus with race+value params |
| 0x006A9850 | 179 | ItemBonus__reg_SetInvestigate | Registers "SetInvestigate" bonus with 0 params (flag only) |
| 0x006A9910 | 179 | ItemBonus__reg_SplashAttack | Registers "SplashAttack" bonus with 1 int param |
| 0x006A99D0 | 179 | ItemBonus__reg_SubAttrTolerace | Registers "SubAttrTolerace" bonus with element+value params |
| 0x006A9A90 | 179 | ItemBonus__reg_subattrtolerace | Registers "subattrtolerace" bonus with 3 params (lowercase variant) |
| 0x006A9B50 | 179 | ItemBonus__reg_AddDamage_HIT | Registers "AddDamage_HIT" bonus with race+value params |
| 0x006A9C10 | 179 | ItemBonus__reg_SubBowAttackDamage | Registers "SubBowAttackDamage" bonus with race+value params |
| 0x006A9CD0 | 179 | ItemBonus__reg_SubCRIPercent_Race | Registers "SubCRIPercent_Race" bonus with race+value params |
| 0x006A9D90 | 179 | ItemBonus__reg_SubDamage_CRI | Registers "SubDamage_CRI" bonus with race+value params |
| 0x006A9E50 | 179 | ItemBonus__reg_SubDamage_HIT | Registers "SubDamage_HIT" bonus with race+value params |
| 0x006A9F10 | 179 | ItemBonus__reg_SubDamage_Property | Registers "SubDamage_Property" bonus with 3 params |
| 0x006A9FD0 | 179 | ItemBonus__reg_SubDamage_SKID | Registers "SubDamage_SKID" bonus with skill+type+value params |
| 0x006AA090 | 179 | ItemBonus__reg_SubDamage_Size | Registers "SubDamage_Size" bonus with 3 params |
| 0x006AA150 | 179 | ItemBonus__reg_SubEXPPercent_KillRace | Registers "SubEXPPercent_KillRace" bonus with race+value params |
| 0x006AA210 | 179 | ItemBonus__reg_SubExtParam | Registers "SubExtParam" bonus with 3 params |
| 0x006AA2D0 | 179 | ItemBonus__reg_SubGuideAttack | Registers "SubGuideAttack" bonus with 1 int param |
| 0x006AA390 | 179 | ItemBonus__reg_AddDamage_Property | Registers "AddDamage_Property" bonus with 3 params |
| 0x006AA450 | 179 | ItemBonus__reg_SubHPdrain | Registers "SubHPdrain" bonus with 2 int params |
| 0x006AA510 | 179 | ItemBonus__reg_SubHealModifyPercent | Registers "SubHealModifyPercent" bonus with 1 int param |
| 0x006AA5D0 | 179 | ItemBonus__reg_SubHealValue | Registers "SubHealValue" bonus with 1 int param |
| 0x006AA690 | 179 | ItemBonus__reg_SubIgnore_MRES_RacePercent | Registers "SubIgnore_MRES_RacePercent" bonus with race+value params |
| 0x006AA750 | 179 | ItemBonus__reg_SubIgnore_RES_RacePercent | Registers "SubIgnore_RES_RacePercent" bonus with race+value params |
| 0x006AA810 | 179 | ItemBonus__reg_SubMDamage_Property | Registers "SubMDamage_Property" bonus with 3 params |
| 0x006AA8D0 | 179 | ItemBonus__reg_SubMDamage_Size | Registers "SubMDamage_Size" bonus with 3 params |
| 0x006AA990 | 179 | ItemBonus__reg_SubMdamage_Class | Registers "SubMdamage_Class" bonus with class+value params |
| 0x006AAA50 | 179 | ItemBonus__reg_SubMdamage_Race | Registers "SubMdamage_Race" bonus with race+value params |
| 0x006AAB10 | 179 | ItemBonus__reg_SubMeleeAttackDamage | Registers "SubMeleeAttackDamage" bonus with race+value params |
| 0x006AABD0 | 179 | ItemBonus__reg_AddDamage_SKID | Registers "AddDamage_SKID" bonus with skill+type+value params |
| 0x006AAC90 | 179 | ItemBonus__reg_SubMeleeAttackReflect | Registers "SubMeleeAttackReflect" bonus with 1 int param |
| 0x006AAD50 | 179 | ItemBonus__reg_SubNeverknockback | Registers "SubNeverknockback" bonus with 0 params (flag removal) |
| 0x006AAE10 | 179 | ItemBonus__reg_SubRaceTolerace | Registers "SubRaceTolerace" bonus with race+value params |
| 0x006AAED0 | 179 | ItemBonus__reg_SubRangeAttackDamage | Registers "SubRangeAttackDamage" bonus with race+value params |
| 0x006AAF90 | 179 | ItemBonus__reg_SubReceiveItem_Equip | Registers "SubReceiveItem_Equip" bonus with 1 int param |
| 0x006AB050 | 179 | ItemBonus__reg_SubReflectMagic | Registers "SubReflectMagic" bonus with 1 int param |
| 0x006AB110 | 179 | ItemBonus__reg_SubReflectTolerace | Registers "SubReflectTolerace" bonus with 1 int param |
| 0x006AB1D0 | 179 | ItemBonus__reg_SubSFCTEquipAmount | Registers "SubSFCTEquipAmount" bonus with skill+type+amount params |
| 0x006AB290 | 179 | ItemBonus__reg_SubSFCTEquipPermill | Registers "SubSFCTEquipPermill" bonus with skill+type+permill params |
| 0x006AB350 | 179 | ItemBonus__reg_SubSPconsumption | Registers "SubSPconsumption" bonus with 1 int param |
| 0x006AB410 | 179 | ItemBonus__reg_AddDamage_Size | Registers "AddDamage_Size" bonus with 3 params |
| 0x006AB4D0 | 30 | ItemBonus__scalar_deleting_dtor_small | Scalar deleting destructor for 4-byte object |
| 0x006AB4F0 | 38 | ItemBonus__scalar_deleting_dtor | Scalar deleting destructor: calls main dtor then frees 0x1FC-byte object |
| 0x006AB520 | 752 | ItemBonus__register_bonus_handler | Registers a named bonus handler with param count/type descriptors into the bonus map |
| 0x006AB810 | 1654 | ItemBonus__apply_bonus_values | Applies bonus parameter values to the active item bonus computation context |
| 0x006ABE90 | 236 | ItemBonus__reset_all_active_bonuses | Resets enchant tree, clears dirty flag, destroys all 3 observer lists |
| 0x006ABF80 | 792 | ItemBonus__remove_bonus_values | Removes bonus parameter values from the active item bonus computation context |
| 0x006AC2A0 | 125 | ItemBonus__find_bonus_by_name | Looks up bonus entry by 4-byte name hash in offset+0x138 map |
| 0x006AC320 | 142 | ItemBonus__lookup_3level_map | 3-level nested hashmap lookup using 3 int keys in offset+0x1E0 map |
| 0x006AC3C0 | 113 | ItemBonus__find_bonus_value_28h | Looks up bonus value by 4-byte name hash in offset+0x28 map |
| 0x006AC440 | 122 | ItemBonus__find_bonus_entry_98h | Looks up bonus entry by 4-byte name hash in offset+0x98 map, returns node+0xC |
| 0x006AC4C0 | 214 | ItemBonus__equip_location_to_bitmask | Converts equip location index (1-0x23) to bitmask for slot flags |
| 0x006AC610 | 4 | ItemBonus__get_base_ptr_plus4 | Returns this+4 pointer offset |
| 0x006AC620 | 142 | ItemBonus__get_job_group_from_skill_id | Maps skill ID to job group (1-6, 0x18-0x19, or special class ranges 0xFA2+) |
| 0x006AC890 | 71 | ItemBonus__normalize_skill_id_with_4th | Normalizes skill ID aliases to base form, handles 4th job class mapping |
| 0x006ACCB0 | 71 | ItemBonus__normalize_skill_id_no_4th | Normalizes skill ID aliases to base form, without 4th job class mapping |
| 0x006AD0E0 | 954 | ItemBonus__process_bonus_script | Parses and processes item bonus script text into bonus handler calls |
| 0x006AD4A0 | 83 | ItemBonus__find_bonus_by_json_key | Looks up bonus entry by JSON reader key hash in offset+0x158 map |
| 0x006AD500 | 122 | ItemBonus__find_bonus_value_178h | Looks up bonus value by 4-byte name hash in offset+0x178 map |
| 0x006AD580 | 272 | ItemBonus__lookup_3level_bonus_value | 3-level nested lookup: int key -> string key -> bounded uint key, returns float as int |
| 0x006AD690 | 429 | ItemBonus__bitmask_to_equip_location | Converts equip slot bitmask back to location index (1-0x23) |
| 0x006AD880 | 122 | ItemBonus__find_bonus_entry_118h | Looks up bonus entry by 4-byte name hash in offset+0x118 map, returns node+0xC |
| 0x006AD910 | 10253 | ItemBonus__constructor | Main constructor: initializes all bonus maps, registers all 80+ bonus handlers |
| 0x006B0120 | 70 | ItemBonus__check_range_in_sorted_set | Checks if param range falls within a sorted set entry's [lo,hi] bounds |
| 0x006B0170 | 1057 | ItemBonus__compute_equip_bonuses | Computes aggregate bonus values for equipped items |
| 0x006B05A0 | 1097 | ItemBonus__compute_status_bonuses | Computes aggregate bonus values for status effects |
| 0x006B09F0 | 1545 | ItemBonus__compute_skill_bonuses | Computes aggregate bonus values for skill modifiers |
| 0x006B1000 | 7889 | ItemBonus__build_bonus_description | Builds formatted bonus description text for UI display |
| 0x006B2EE0 | 3357 | ItemBonus__format_bonus_tooltip | Formats bonus values into tooltip display strings with color/sign formatting |
| 0x006B3C00 | 2559 | ItemBonus__format_extended_tooltip | Formats extended bonus tooltip with race/element/size specific details |
| 0x006B4600 | 5837 | ItemBonus__format_skill_bonus_tooltip | Formats skill-related bonus tooltips with skill names and modifier values |
| 0x006B5DA0 | 2419 | ItemBonus__format_condition_tooltip | Formats conditional bonus tooltips with trigger conditions and effects |
| 0x006B6720 | 972 | ItemBonus__format_special_bonus_tooltip | Formats special bonus tooltips (clairvoyance, knockback, etc.) |
| 0x006B6AF0 | 383 | ItemBonus__add_equip_bonus | Adds bonus from equip: creates observer, inserts into map, applies values, marks dirty |
| 0x006B6C70 | 412 | ItemBonus__add_status_bonus | Adds bonus from status effect: creates observer, inserts into map, applies values |
| 0x006B6E10 | 244 | ItemBonus__remove_equip_bonus | Removes bonus for equip: removes values, destroys observer, erases from map |
| 0x006B6F10 | 262 | ItemBonus__remove_status_bonus | Removes bonus for status effect: removes values, destroys observer, erases from map |
| 0x006B7020 | 454 | ItemBonus__update_equip_bonus_on_change | Handles equip bonus change: recalculates enchant effects and string set entries |
| 0x006B71F0 | 403 | ItemBonus__update_status_bonus_on_change | Handles status bonus change: recalculates enchant effects and string set entries |
| 0x006B7390 | 401 | ItemBonus__refresh_on_job_change | Refreshes all equip bonuses when job class changes, toggling enabled state |
| 0x006B7530 | 137 | ItemBonus__collect_display_values | Collects bonus display values from all 3 observer lists, clears dirty flag |
| 0x006B75C0 | 28 | ItemBonus__set_context_and_clear | Clears 16-byte node hashmap and stores context value at offset+0x1C |
| 0x006B75E0 | 368 | ItemBonus__insert_bonus_name_value | Inserts name->value pair into offset+0x19C unordered_map with FNV-1a hash |
| 0x006B7760 | 13 | ItemBonus__set_ui_callback | Stores UI callback pointer at offset+0x20 |
| 0x006B7770 | 128 | ItemBonus__recalculate_dirty_flags | Iterates all 3 observer lists accumulating dirty flags, notifies UI callback |
| 0x006D13E0 | 147 | CItemDB__move_construct_tree_pair | Move-constructs a tree pair: copies keys, swaps tree head and count from source |
| 0x006D1480 | 159 | CItemDB__destroy_nested_tree_nodes | Recursively destroys RB-tree nodes with nested sub-trees; frees 0x1C outer and 0x20 inner nodes |
| 0x006D1520 | 144 | CItemDB__destroy_inner_nodes_recursive | Recursively destroys inner RB-tree nodes; cleans up string data and frees 0x20-byte nodes |
| 0x006D15B0 | 75 | CItemDB__find_lower_bound_int | Finds lower bound in int-keyed RB-tree; traverses left/right based on key comparison |
| 0x006D1600 | 121 | CItemDB__ctor | CItemDB constructor: sets vtable, initializes count to 0, allocates 0x1C-byte RB-tree sentinel node with self-referencing pointers |
| 0x006D1690 | 67 | CItemDB__free_node_0x28 | SEH cleanup helper: frees 0x28-byte tree node allocation at this+4 if non-null. Used during exception unwinding for linked-list nodes with string data. |
| 0x006D16E0 | 67 | CItemDB__free_node_0x1C | SEH cleanup helper: frees 0x1C-byte outer RB-tree node at this+4 if non-null. Used during exception unwinding. |
| 0x006D1730 | 67 | CItemDB__free_node_0x20 | SEH cleanup helper: frees 0x20-byte inner RB-tree node at this+4 if non-null. Used during exception unwinding. |
| 0x006D1780 | 116 | CItemDB__destroy_string_and_free_node | Destroys string member at this+4, then frees the 0x28-byte node |
| 0x006D1800 | 76 | CItemDB__clear_nested_tree_and_free | Destroys all nested tree nodes then frees the 0x1C-byte sentinel |
| 0x006D1860 | 76 | CItemDB__clear_inner_tree_and_free | Destroys all inner tree nodes then frees the 0x20-byte sentinel |
| 0x006D18C0 | 145 | CItemDB__destroy_nested_node_and_free | Destroys inner tree at node+0x14, clears and frees the 0x20 sub-tree sentinel, then frees 0x1C outer node |
| 0x006D1960 | 126 | CItemDB__destroy_inner_entry_and_free | Cleans up inner node data at this+4, then frees the 0x20-byte node |
| 0x006D19E0 | 78 | CItemDB__free_outer_node_0x1C | SEH cleanup helper: frees 0x1C-byte outer tree node at this+4 if non-null. Variant without nested cleanup. |
| 0x006D1A30 | 78 | CItemDB__free_inner_node_0x20 | SEH cleanup helper: frees 0x20-byte inner tree node at this+4 if non-null. Variant without nested cleanup. |
| 0x006D1A80 | 134 | CItemDB__destroy_linked_list_with_strings | Destroys linked list of 0x28-byte nodes containing strings, frees each node |
| 0x006D1B10 | 87 | CItemDB__destroy_tree_0x1c | Destroys RB-tree with 0x1C-byte sentinel node, calls nested tree node destructor |
| 0x006D1B70 | 87 | CItemDB__destroy_tree_0x20 | Destroys RB-tree with 0x20-byte sentinel node; calls destroy_inner_nodes_recursive then frees the 0x20-byte sentinel |
| 0x006D1BD0 | 102 | CItemDB__destroy_inner_tree_0x20 | Destroys inner RB-tree at offset+4 with 0x20-byte sentinel node |
| 0x006D1C40 | 83 | CItemDB__destroy_linked_list_wrapper_B | Wrapper that delegates to destroy_linked_list_with_strings for cleanup of linked list at offset+4 |
| 0x006D1CA0 | 108 | CItemDB__dtor | CItemDB destructor: resets vtable, destroys all nested tree nodes at this+4, frees 0x1C-byte sentinel |
| 0x006D1D10 | 68 | CItemDB__destroy_linked_list_wrapper | Wrapper that calls destroy_linked_list_with_strings for cleanup |
| 0x006D1D60 | 30 | CItemDB__scalar_deleter_4byte | Scalar deleting destructor for a 4-byte object; conditionally frees memory if flag bit 0 is set |
| 0x006D1D80 | 133 | CItemDB__scalar_dtor | Scalar deleting destructor for CItemDB, sets vtable and destroys tree, frees 0xC |
| 0x006D1E10 | 770 | CItemDB__insert_item_entry | Inserts item entry with nested tree: creates outer node by ID, inner node by sub-key, appends to linked list |
| 0x006D2120 | 27 | CItemDB__resolve_item_id | Resolves item ID through redirect table, returns original if no redirect found |
| 0x006D2140 | 111 | CItemDB__find_item_entry | Finds item entry by ID (with redirect), returns ptr to entry data and found flag |
| 0x006D21B0 | 757 | CNeoPackageItemMgr__load_probability_lua | Loads Lua probability table, registers InsertPackage callback, initializes DAT_0138d288 |
| 0x006D24B0 | 87 | CItemDB__has_item_entry | Checks if item ID exists in database (with redirect), returns true if found |
| 0x006D2930 | 95 | CItemDB__allocate_entries_0x28 | Allocates array of 0x28-byte item entries with aligned allocation for large sizes |
| 0x006D2990 | 549 | CNeoPackageItemMgr__lua_insert_package | Lua callback "InsertPackage" - validates 5 args (3 numbers, 1 string, 1 number), creates item entry |
| 0x006D2BC0 | 234 | CPaidItemMgr__rbtree_insert_or_find | Inserts key into RB-tree or finds existing, returns node ptr and inserted flag |
| 0x006D2CB0 | 121 | CPaidItemMgr__ctor | Constructor for CPaidItemMgr, sets vtable PTR_FUN_01113010, initializes RB-tree |
| 0x006D2D40 | 86 | CPaidItemMgr__dtor | Destructor for CPaidItemMgr, sets vtable and clears/frees RB-tree |
| 0x006D2DA0 | 30 | CPaidItemMgr__scalar_dtor_4byte | Scalar deleting destructor for CPaidItemMgr, frees 4-byte object if flag set |
| 0x006D2DC0 | 111 | CPaidItemMgr__scalar_dtor_0xc | Scalar deleting destructor for CPaidItemMgr, sets vtable, clears tree, frees 0xC |
| 0x006D2E30 | 724 | CPaidItemMgr__build_item_tree_recursive | Recursively builds paid item tree by item ID, resolving sub-items from CItemDB and helper |
| 0x006D3110 | 599 | CPaidItemMgr__load_item_sold_lua | Loads Lua probability table for sold items, registers C_AddItemSold callback |
| 0x006D3370 | 194 | CPaidItemMgr__is_item_in_sold_table | Checks if item ID is in sold item table, initializes CItemDB if needed, returns 1 if found |
| 0x006D3440 | 247 | CPaidItemMgr__lua_add_item_sold | Lua callback "C_AddItemSold" - takes 1 number arg, builds item tree for sold item ID |
| 0x006D3540 | 195 | CItemInfo__ctor | Constructor for CItemInfo, sets vtable PTR_FUN_01113088, zeros 17 dword fields |
| 0x006D3610 | 105 | CItemInfo__dtor | Destructor for CItemInfo, sets vtable, cleans up internal data and vectors |
| 0x006D3680 | 126 | CItemInfo__scalar_dtor | Scalar deleting destructor for CItemInfo, cleans up then frees 0x44-byte object |
| 0x006D3700 | 111 | CItemInfoMgr__scalar_dtor | Scalar deleting destructor for CItemInfoMgr, vtable PTR_FUN_01113090, frees 0x10 |
| 0x006D3770 | 221 | CItemInfoMgr__get_item_info_by_key | Looks up item info from RB-tree by int key, returns ptr to info struct at node+0x14 |
| 0x006D3850 | 221 | CItemInfoMgr__get_item_info_by_key_alt | Alternative item info lookup from RB-tree by int key, returns ptr to info struct |
| 0x006D3930 | 201 | CItemInfoMgr__get_item_info_checked | Gets item info by key with bounds check, returns default if not found |
| 0x006D3A00 | 211 | CItemDB__get_item_info_by_id | Looks up item info by numeric ID in global item tree; returns entry at node+0x14 or default at DAT_0138d2b8 |
| 0x006D3AE0 | 302 | CItemInfoMgr__find_or_create_entry | Finds existing entry by key or creates new one with default values, returns ptr to data |
| 0x006D3C10 | 416 | CItemInfoMgr__get_or_insert_entry | Gets existing entry or inserts new 0x20-byte node with zeroed data, returns ptr to data |
| 0x006D3DC0 | 449 | CItemDB__find_or_create_item_entry | Finds or creates item DB entry by ID; allocates 0x58-byte node with default item data on miss |
| 0x006D3FB0 | 103 | CItemInfoMgr__rbtree_destroy_nodes_0x20_A | Recursively destroys RB-tree nodes (0x20-byte each) by traversing right subtree, then deleting current node and following left pointer. Tree variant A. |
| 0x006D4020 | 103 | CItemInfoMgr__rbtree_destroy_nodes_0x20_B | Recursively destroys RB-tree nodes (0x20-byte each) by traversing right subtree, then deleting current node and following left pointer. Tree variant B. |
| 0x006D4090 | 131 | CItemInfoMgr__rbtree_destroy_nodes_0x20_with_cleanup | Recursively destroys RB-tree nodes (0x20-byte each). Cleans up node data via clear_tree_nodes_alt before deleting each node. Returns this ptr. |
| 0x006D4120 | 178 | CItemInfoMgr__rbtree_destroy_nodes_0x58_with_cleanup | Recursively destroys RB-tree nodes (0x58-byte item entries). Cleans up sub-vectors and trees in each node before deleting. Returns this ptr. |
| 0x006D41E0 | 75 | CItemInfoMgr__find_lower_bound_tree_C | RB-tree lower_bound search using global DAT_0138d2a8 tree, variant C |
| 0x006D4230 | 75 | CItemInfoMgr__find_lower_bound_tree_D | RB-tree lower_bound search using global DAT_0138d290 tree, variant D |
| 0x006D4280 | 75 | CItemInfoMgr__find_lower_bound_tree_E | RB-tree lower_bound search using global DAT_0138d298 tree, variant E |
| 0x006D42D0 | 75 | CItemInfoMgr__find_lower_bound_tree_F | RB-tree lower_bound search using global DAT_0138d2a0 tree, variant F |
| 0x006D45E0 | 181 | CItemInfoMgr__vector_copy_construct | Copy-constructs a vector of 4-byte elements from source param_2. Allocates aligned buffer, copies all elements via memcpy, sets begin/end/capacity pointers. |
| 0x006D46A0 | 172 | CItemInfo__copy_ctor | Copy constructor for CItemInfo. Copies vtable, scalar fields, and two vectors from source object. Sets up PTR_CItemInfo__scalar_dtor vtable. |
| 0x006D4750 | 134 | CItemDesc__ctor | Default constructor for CItemDesc. Initializes two SSO string fields (at +0x2c and +0x44) to empty with capacity 0xf, then calls CItemDesc__reset_all_fields. |
| 0x006D47E0 | 132 | CItemDesc__ctor_alt | Alternative constructor for CItemDesc. Same pattern as CItemDesc__ctor - initializes two SSO string fields and calls reset_all_fields. |
| 0x006D4870 | 67 | CItemInfoMgr__free_node_0xc_A | Frees 0xC-byte tree node at offset+4 if non-null, variant A |
| 0x006D48C0 | 67 | CItemInfoMgr__free_node_0x20 | Frees a 0x20-byte node pointed to by this+4 if non-null. |
| 0x006D4910 | 67 | CItemInfoMgr__free_node_0x20_C | Frees a 0x20-byte node pointed to by this+4 if non-null. Variant C. |
| 0x006D4960 | 67 | CItemInfoMgr__free_node_0x20_D | Frees a 0x20-byte node pointed to by this+4 if non-null. Variant D. |
| 0x006D49B0 | 67 | CItemInfoMgr__free_node_0x58 | Frees a 0x58-byte node (item entry) pointed to by this+4 if non-null. |
| 0x006D4A00 | 78 | CItemInfoMgr__free_node_0xc_with_seh | Frees 0xC-byte tree node with SEH frame cleanup, uses local_8 sentinel |
| 0x006D4A60 | 111 | CItemInfoMgr__destroy_rbtree_0x20_A | Destroys entire RB-tree by recursively freeing all 0x20-byte nodes plus the 0x20-byte sentinel node. Variant A. |
| 0x006D4AE0 | 111 | CItemInfoMgr__destroy_rbtree_0x20_B | Destroys entire RB-tree by recursively freeing all 0x20-byte nodes plus the 0x20-byte sentinel node. Variant B. |
| 0x006D4B60 | 76 | CItemInfoMgr__destroy_rbtree_0x20_with_cleanup | Destroys RB-tree with per-node cleanup. Recursively destroys 0x20-byte data nodes via destroy_nodes_0x20_with_cleanup, then frees the 0x20-byte sentinel. |
| 0x006D4BC0 | 76 | CItemInfoMgr__destroy_rbtree_0x58_with_cleanup | Destroys RB-tree with per-node cleanup. Recursively destroys 0x58-byte item entry nodes via destroy_nodes_0x58_with_cleanup, then frees the 0x58-byte sentinel. |
| 0x006D4C20 | 78 | CItemInfoMgr__free_sentinel_node_0x20_A | Frees the 0x20-byte sentinel/header node of an RB-tree pointed to by this+4 if non-null. Variant A. |
| 0x006D4C70 | 78 | CItemInfoMgr__free_sentinel_node_0x20_B | Frees the 0x20-byte sentinel/header node of an RB-tree pointed to by this+4 if non-null. Variant B. |
| 0x006D4CC0 | 116 | CItemInfoMgr__destroy_nested_and_free_0x20 | Destroys nested tree at offset+0x14, then frees 0x20-byte node |
| 0x006D4D40 | 158 | CItemInfoMgr__destroy_complex_node_0x58 | Destroys complex 0x58-byte node with CItemInfo vtable, cleans up 2 nested trees |
| 0x006D4DE0 | 78 | CItemInfoMgr__free_sentinel_node_0x20_C | Frees the 0x20-byte sentinel/header node of an RB-tree pointed to by this+4 if non-null. Variant C. |
| 0x006D4E30 | 78 | CItemInfoMgr__free_sentinel_node_0x20_D | Frees the 0x20-byte sentinel/header node of an RB-tree pointed to by this+4 if non-null. Variant D. |
| 0x006D4E80 | 78 | CItemInfoMgr__free_sentinel_node_0x20_E | Frees the 0x20-byte sentinel/header node of an RB-tree pointed to by this+4 if non-null. Variant E. |
| 0x006D4ED0 | 78 | CItemInfoMgr__free_sentinel_node_0x58 | Frees the 0x58-byte sentinel/header node of an RB-tree (item entries) pointed to by this+4 if non-null. |
| 0x006D4F20 | 103 | CItemInfoMgr__destroy_linked_list_0xc | Destroys linked list of 0xC-byte nodes, frees each node in order |
| 0x006D4F90 | 68 | CItemInfoMgr__reset_tree_state | Resets/clears tree state by calling clear_tree_nodes_alt. Lightweight cleanup without full node destruction. |
| 0x006D4FE0 | 118 | CItemInfo__dtor_006d4fe0 | Destructor for CItemInfo. Sets vtable to CItemInfo__scalar_dtor, then cleans up vector and two sub-trees owned by this object. |
| 0x006D50F0 | 90 | CItemInfoMgr__dtor | Destructor for CItemInfoMgr. Sets vtable to scalar_dtor, frees all line buffers, then frees the aligned vector buffer. |
| 0x006D5160 | 321 | CItemInfo__copy_from | Copies item info from source, copies 3 dword vectors and scalar fields via memcpy |
| 0x006D52B0 | 406 | CItemDesc__copy_from | Copies item description struct from source, copies strings, security mem structs, and flags |
| 0x006D5450 | 97 | CItemDesc__populate_from_parsed_data | Populates item description fields from parsed data source. Copies ID, counts, scalar fields, a string at +0x11, and sets validity flag based on whether ID is -1. |
| 0x006D54C0 | 82 | CItemDesc__compare_string_field | Compares SSO string fields at offset +0x44 between two CItemDesc objects. Returns 0 if equal, 1 if this < other (used as less-than comparator for sorting). |
| 0x006D5550 | 217 | CItemDesc__init_from_data | Initializes item description fields from raw data source, sets type/slot/flags |
| 0x006D5630 | 21 | CItemDesc__lookup_in_global_map | Looks up item info by key in the global DAT_0138d2a8 RB-tree map. Thin wrapper around CItemInfoMgr__get_item_info_by_key. |
| 0x006D5650 | 221 | CItemDesc__get_card_rarity_color | Returns a color pointer based on how many card slots are filled. Checks has_card_or_enchant flag, parses item ID from string at +0x2c, counts matching cards in 4 slots against item info, returns color from 5-element lookup table (none/1/2/3/4 cards). |
| 0x006D5730 | 75 | CItemDesc__get_item_info_vector_by_flag | Parses item ID from string field at +0x2c, looks up in global item DB (DAT_0138d2b0). Returns pointer to vector at +0xc if flag at +0x5c is set, otherwise returns vector at +0x20. |
| 0x006D5780 | 144 | CItemDesc__format_grade_letter_text | Formats item grade letter (D/C/B/A for levels 1-4) from field at offset 0x88 into output buffer |
| 0x006D5810 | 124 | CItemDesc__format_unidentified_name | Gets unidentified item name (field+4) from item info DB by ID and copies to output buffer with bounds checking |
| 0x006D5890 | 21 | CItemDesc__lookup_item_info_by_id | Simple wrapper that calls CItemDB__get_item_info_by_id with the global item DB tree |
| 0x006D58B0 | 236 | CItemDesc__get_desc_by_id | Gets item description by ID from global tree DAT_0138d290, returns default if not found |
| 0x006D59A0 | 3993 | CItemDB__build_item_tooltip_string | Builds item tooltip string based on item type, costume flag, enchant level, and card slots |
| 0x006D69C0 | 216 | CItemDesc__get_desc_by_id_alt | Gets item description by ID from global tree DAT_0138d298, uses atexit for init |
| 0x006D6AA0 | 210 | CItemDesc__format_equip_type_text | Formats equipment type text based on slot type (0-4), special handling for IDs 0xA4A/0xA4B |
| 0x006D6B90 | 116 | CItemDesc__format_weapon_subtype_text | Formats weapon subtype text using string IDs 0x1CB/0x1CC/0x1CD for types 5/10/15 |
| 0x006D6C10 | 233 | CItemDesc__format_location_text | Formats item equip location text from combined position field, uses string ID 0x245 as fallback |
| 0x006D6D00 | 74 | CItemDesc__format_field_snprintf | Formats item description field value via vsnprintf through a global singleton, returns length written |
| 0x006D6D50 | 87 | CItemDesc__format_costume_label_text | Formats costume label text using message string table ID 0x2F4, copies into output buffer with bounds checking |
| 0x006D6DB0 | 409 | CItemDesc__format_card_slots_text | Formats card slot names into buffer, handles 2x/3x/4x multiplier labels for duplicate cards |
| 0x006D6F50 | 324 | CItemDesc__format_card_prefix_text | Formats card prefix names into buffer with multiplier labels, uses prefix field (+4) |
| 0x006D70A0 | 54 | CItemDesc__format_option_text | Formats item option text from field at offset 0x60 using format string at DAT_011132d4 |
| 0x006D70E0 | 1405 | CItemDB__serialize_item_to_packet | Serializes item data into packet fields (0x119-0x12D): equip info, cards, options, expire, enchants |
| 0x006D7660 | 75 | CItemDesc__get_sprite_resource_id | Gets sprite resource ID for item, returns field+8 for enchant type, field+0x1C otherwise |
| 0x006D76B0 | 36 | CItemDesc__get_refinement_level | Gets refinement level from item info at field offset 0x30 |
| 0x006D76E0 | 91 | CItemDesc__format_refinement_text | Formats refinement level as "+%d" text if non-zero, using snprintf-like formatting |
| 0x006D7740 | 18 | CItemDesc__select_valid_string | Returns param_2 string if param_1 > 0, otherwise returns empty string constant |
| 0x006D7760 | 124 | CItemDesc__format_identified_name | Formats identified item name from item info field at offset 0x18, null-safe |
| 0x006D77E0 | 213 | CItemDesc__has_card_or_enchant | Checks if item has cards/enchants in slots, handles special armor/weapon type checks |
| 0x006D78C0 | 3904 | CItemDB__load_all_item_tables | Master item DB loader: reads item_txt, eventItem, cards, slots, params, book items, metal process, move info tables |
| 0x006D8810 | 30 | CItemDesc__is_enchantable_type | Returns 1 if item type is enchantable (4,5,8,9,11-15,21 = weapon/armor types) |
| 0x006D8850 | 58 | CItemDesc__is_book_item_id | Returns true if item ID exists in the BookItemNameTable RB-tree (DAT_0138d2a0) |
| 0x006D8890 | 58 | CItemDesc__is_valid_enchant_id | Checks if enchant ID exists in global tree DAT_0138d2a8 |
| 0x006D88D0 | 23 | CItemDesc__is_enchanted_or_special_slot | Returns 1 if card slot field at offset 0x1C is 0xFE or 0xFF (enchanted/special), 0 otherwise |
| 0x006D8920 | 74 | CItemDesc__is_special_item_id | Checks if item ID is special (1000, 994-997), used for arrow/ammo type detection |
| 0x006D8980 | 80 | CItemDesc__is_all_digits | Validates that string contains only digit characters using lookup table at DAT_0131d570 |
| 0x006D89D0 | 53 | CItemDesc__is_enchant_stone_id | Returns 1 if item ID is in enchant stone ranges (9001-9493 or 10000-10999), 0 otherwise |
| 0x006D8A10 | 44 | CItemDesc__is_arrow_ammo_id | Returns 1 if item ID is 994-997 (arrow/ammunition types), 0 otherwise |
| 0x006D8A50 | 64 | CItemDesc__is_gradeable_item_id | Returns 1 if item ID exceeds 600 (gradeable equipment range), 0 otherwise |
| 0x006D8A90 | 199 | CItemDesc__reset_all_fields | Zeros all item description fields including strings, flags, slots, enchants, and grade |
| 0x006D8B60 | 765 | CItemDesc__build_search_name_list | Builds searchable name list from item DB, checking item names, prefixes, and descriptions |
| 0x006D8E60 | 370 | CItemDesc__match_search_string | Matches search string against item name using substr or exact match, adds to result if found |
| 0x006D8FE0 | 48 | CItemDesc__assign_string_and_check_empty | Assigns the given string to the item's internal SSO string field and returns whether field at offset 0x54 is zero |
| 0x006D9010 | 88 | CItemDesc__convert_int_to_string | Converts integer param to decimal string via _itoa and assigns to item's internal SSO string field |
| 0x006D9070 | 69 | CItemDesc__set_random_option_entry | Writes random option entry (id, value, param) at index into item description struct at offset 0x9C, max 5 entries |
| 0x006D90C0 | 1138 | CItemDesc__parse_binary_packet | Parses binary item packet (type 0x119) with TLV sub-fields 0x11A-0x12D into item description |
| 0x006D9590 | 26 | CItemDesc__set_card_slot_id | Sets card slot ID at index (0-3) in the item description card array at offset 0x1C |
| 0x006D95B0 | 30 | CItemDesc__advance_buffer_ptr | Advances buffer pointer by param_1 bytes and decreases remaining size counter if param_4 flag is set |
| 0x006D95D0 | 79 | CItemDesc__copy_string_to_buffer | Copies source string into output buffer with strncpy_s bounds checking, optionally decrements remaining size |
| 0x006DA260 | 36 | CItemInfoMgr__memcpy_range | Copies memory range [param_1, param_2) to destination param_3, returns pointer past copied data |
| 0x006DA290 | 165 | CItemDesc__add_search_result | Adds matching item ID to search result set via RB-tree insert |
| 0x006DA340 | 219 | CItemInfoMgr__create_serialized_buffer | Allocates a buffer with 2-byte type prefix + 4-byte size + data payload. Copies param_3 data of param_4 bytes into the buffer after the header. |
| 0x008805E0 | 7 | get_field_0xe4_008805e0 | Getter that returns 4-byte field at offset 0xe4 from param_1 |
| 0x008D1220 | 446 | CItemDesc__render_formatted_tooltip | Renders a formatted item tooltip. Calls CItemDesc__format_tooltip_body to build text into a 256-byte buffer, optionally appends a title via resource string 0x2b8, then renders with CTextRenderer__draw_text_with_wrapping. |
| 0x008D13E0 | 988 | CItemDesc__render_inline_tooltip_text | Renders inline tooltip text with word wrapping. Formats the item description, performs word-wrap via FUN_00a837d0, then renders each text segment with color coding: 0xe0e0e0 for separators, item rarity color for normal items, 0x5050fa for identified items. Measures text width to track cursor position. |
| 0x008D17C0 | 442 | CItemDesc__layout_tooltip_multiline | Lays out multiline tooltip text. Formats item description into a 256-byte buffer, determines rarity color, then delegates to CTextRenderer__layout_multiline_text for text layout and height calculation. |
| 0x008D1980 | 413 | CItemDesc__draw_tooltip_with_wrapping | Draws tooltip text with wrapping. Similar to layout_tooltip_multiline but uses CTextRenderer__draw_text_with_wrapping for actual rendering instead of just layout. Handles rarity color conversion (BGR to RGB swap). |
| 0x008DA690 | 1631 | CItemDesc__format_tooltip_body | Formats the complete tooltip body text for an item. Handles identified vs unidentified items, enchantments, card slots, equipment type, weapon subtype, refinement, and location text. Manages text color (0xE04040 for location found, 0x4040E0 for not found). Builds output buffer with section offsets tracked in param_4 vector. Adapts format based on DAT_016d3b10 (client type: 0xC or 0xE variants). |
| 0x00972E60 | 225 | CItemInfoMgr__build_sell_info_vector | Builds item info vector for sell context menu. Inserts CItemInfoMgr entries 0x50DC and 0x50DD (sell-related info IDs) into output vector. |
| 0x00972F50 | 292 | CItemInfoMgr__build_storage_info_vector | Builds item info vector for storage context menu. Inserts entries 0x5140, 0x5142 (with quantity param from offset 0xFC), and 0x5141. |
| 0x00973080 | 225 | CItemInfoMgr__build_trade_info_vector | Builds item info vector for trade context menu. Inserts entries 0x510E and 0x510F. |
| 0x00973170 | 225 | CItemInfoMgr__build_cart_info_vector | Builds item info vector for cart context menu. Inserts entries 0x51A4 and 0x51A5. |
| 0x00973260 | 315 | CItemInfoMgr__build_equip_info_vector | Builds item info vector for equip context menu. Conditionally uses different entry IDs based on offset 0x100: if 0, uses 21000/0x5209; if non-zero, uses 0x523A/0x523B. |
| 0x009733A0 | 315 | CItemInfoMgr__build_guild_storage_info_vector | Builds item info vector for guild storage context menu. If offset 0x108 is 0, uses entries 0x529E/0x529F; otherwise uses 0x526C/0x526D. |
| 0x009734E0 | 386 | CItemInfoMgr__build_auction_info_vector | Builds item info vector for auction context menu. If offset 0x10C is 0, uses entries 0x52D0/0x52D1; otherwise uses 0x5302/0x5305 (with quantity from offset 0x108)/0x5303. |
| 0x00973670 | 225 | CItemInfoMgr__build_mail_info_vector | Builds item info vector for mail attach context menu. Inserts entries 0x5398 and 0x5399. |
| 0x00973760 | 315 | CItemInfoMgr__build_shop_info_vector | Builds item info vector for shop context menu. If offset 0x130 is 0 (buy mode), uses entries 0x5334/0x5335; otherwise (sell mode) uses 0x5366/0x5367. |
| 0x0099A5E0 | 1893 | CItemDescWindow__handle_event_0099a5e0 | CItemDescWindow event handler. Handles event 6 (close via 0xC9), event 0x93 (item desc lookup). Gets item desc by ID, builds comma-separated description strings for multiple properties (msg IDs 0xAE4-0xAEB), sizes window to fit, and shows item info. |
| 0x00A913F0 | 7 | get_field_0x19c_00a913f0 | Getter returning 4-byte field at offset 0x19c from param_1 |
| 0x00A916F0 | 7 | get_field_0x1a0_00a916f0 | Getter that returns 4-byte field at offset 0x1a0 from param_1 |
| 0x00ADFF90 | 721 | CItemInfoMgr__load_lua_config | Loads item info configuration from Lua script (System/iteminfo_true.lub). Registers 6 Lua callbacks: AddItem, AddItemUnidentifiedDesc, AddItemIdentifiedDesc, AddItemEffectInfo, AddItemIsCostume, AddItemPackageID. Executes the script, shows MessageBox on error. Returns 1 on success, 0 on failure. |
| 0x00AE0360 | 559 | CItemInfoMgr__populate_item_db | Populates the item database from the cache tree. Iterates all tree nodes, for each item: creates/finds a CItemDB entry, copies unidentified/identified name strings, copies description string arrays (identified and unidentified), sets slot count and costume flag. Uses red-black tree in-order traversal. |
| 0x00AEF390 | 4 | get_field_offset_0x14_00aef390 | Returns input parameter plus 0x14 offset, likely pointer arithmetic |
| 0x00B88920 | 4 | get_field_0x18_00b88920 | Getter that returns 4-byte field at offset 0x18 from parameter |
| 0x00B8DEA0 | 4 | get_field_0x4_00b8dea0 | Getter returning value at param+4 offset |
| 0x00B8DEB0 | 7 | get_field_0x88_00b8deb0 | Getter that returns 4-byte field at offset 0x88 from parameter |
| 0x00B8DF20 | 4 | get_field_0x3c_00b8df20 | Returns 4-byte field at offset 0x3c from param_1 |
| 0x00B8E760 | 4 | get_field_0x40_00b8e760 | Getter that returns byte from param_1 + 0x40 offset |
| 0x00B8E820 | 4 | get_field_0x18_00b8e820 | Getter returning 4-byte field at offset 0x18 from parameter |
| 0x00B8E8E0 | 4 | get_field_0x38_00b8e8e0 | Getter that returns field at offset 0x38 from parameter |
| 0x00B96B70 | 5 | get_field_0x18_00b96b70 | Getter returning 4-byte field at offset 0x18 from parameter |
| 0x00C7BD30 | 8 | set_field_0x44_to_zero_00c7bd30 | Sets field at offset 0x44 to zero on passed object |
| 0x00C7C040 | 4 | set_field_0x0_to_zero_00c7c040 | Sets first byte of param to 0; likely zeroing a flag or field |
| 0x00C90DA0 | 4 | get_field_0xc_00c90da0 | Getter returning field at offset 0xc from parameter |
| 0x00C90DB0 | 4 | get_field_0x8_00c90db0 | Getter returning 4-byte field at offset 0x8 from param_1 |
| 0x00CF0090 | 433 | CItem__format_display_name_with_slots | Formats an item's display name with card slot info. Reads item name from offset 0xE6 + index*0x33. If name is empty, uses CPacketSystem__bulk_processor to build name from item ID + slot counts. Appends slot display: either message 0x7EE (if min==max slots) or 'd/d' format showing current/max slots. |
| 0x00CFB702 | 218 | CShop__send_npc_shop_purchase_list | Iterates NPC shop items, builds purchase list with item IDs and amounts, sends to server via CNetworkSession. Clears deal and inventory lists afterward. |
| 0x00D01610 | 570 | CMailItem__vector_insert | std::vector::insert for 0x74-byte records containing an embedded STL string at offset 0x3C. Uses 1.5x growth strategy with max element count 0x234F72C. Copies existing elements around insertion point via vector_move_loop_records_0x74 and constructs the new element via record_0x74_copy_construct. Destroys old buffer elements via STL_string_dtor loop. |
| 0x00D01CC0 | 552 | CInventoryItem__vector_insert | std::vector::insert for large 0x158-byte records. Uses 1.5x growth strategy with max count 0xBE82FA. Constructs via record_0x158_copy_construct, copies via helper functions, destroys old elements via STL_vector_destroy_loop_0x158. Used for extended entity/attendance data. |
| 0x00D03D40 | 126 | CWhisperMessage__copy_construct | Copy constructor for a 0x40-byte record containing two STL strings at offsets 0x00 and 0x18, plus 4 DWORD data fields at offsets 0x30-0x3C. Deep-copies both strings. Used for duplicating paired-string data records. |
| 0x00D03E50 | 226 | CMailItem__move_construct | Move constructor for a 0x74-byte entity/item record. Copies all fixed fields (header, two 0x18-byte data blocks, trailing fields). Move-constructs the embedded STL string at offset 0x3C (transfers heap pointer, nullifies source to empty SSO state). Used during vector reallocation and sorting swaps. |
| 0x00D03F40 | 187 | CMailItem__copy_construct | Copy constructor for a 0x74-byte entity/item record. Copies all fixed fields identically to the move constructor, but deep-copies the embedded STL string at offset 0x3C via STL_string_copy_construct (preserving the source). Used when duplicating records without invalidating the original. |
| 0x00D04000 | 201 | CMailItem__default_ctor | Default constructor for a 0x74-byte entity/item record. Zero-initializes all fields: header bytes, two 0x18-byte data regions, sets up an empty SSO string at offset 0x3C (capacity 0xF), and zeroes trailing fields including the 2-byte field at 0x72 and a 0x10-byte block at 0x60. Creates a blank template record. |
| 0x00D043C0 | 147 | CInventoryItem__copy_construct | Copy constructor for a 0x158-byte record. Bulk-copies 0x60 bytes of plain DWORD data fields (offsets 0x00-0x5F) including a 2-byte field at 0x5C, then deep-copies an embedded CShopItem object at offset 0x60 via CShopItem__copy_construct. Used for duplicating extended entity/attendance reward records. |
| 0x00D05470 | 243 | CMailItem__copy_assign | Copy-assigns a 0x74-byte variant record. Copies raw byte fields (9 bytes at offset 0, 0x18 bytes at 0x9 and 0x21), move-assigns one STL string at offset 0x3c, then copies remaining scalar fields up to 0x72. |
| 0x00D45B90 | 60 | CItemDB__dispatch_item_packet | CItemDB: dispatch item packet |
| 0x00D59FD0 | 941 | CItemCollection__populate_buying_store | Populates the buying store item collection. Clears existing buying store, iterates vector of 0x36-byte item records, extracts name/map strings with Korean text search, sets color-coded markers (green for own store, red for prohibited), and adds each to buying store. Finishes by loading mini party info and refreshing equip/status windows. |
| 0x00D5A4C0 | 1171 | CItemCollection__build_character_item_list | Builds character item list from a vector of 0x100-byte records. Extracts item data, tooltips, names, and equip info into 0x74-byte records. On mode 1: sorts by equip status, splits into equipped/unequipped lists, creates window 0xFD. On mode 2/3: shows error message and clears lists. |
| 0x00D5AB00 | 126 | CItemCollection__handle_item_storage_update | Handles item storage/equip update. Routes by (param_2, param_3): (0,0)=add to inventory list, (1,0)=update equipment slot via 00dff9c0, (2,0)=update equipment slot. Then notifies equipment window (type 0xC) with event 0x18. |
| 0x00D5AB80 | 541 | CItemCollection__open_storage_windows | Opens storage windows. If param_8=1: clears guild storage, loads 0xF8-byte item records, opens guild storage window 0x2D with delete mode and timer. Otherwise: clears auction+mail lists, loads items into auction collection, opens auction windows 0x2B and 0x2C with timer. Sets flag at this+0x24C. |
| 0x00D5ADA0 | 326 | CItemCollection__open_auction_windows | Opens auction windows. Clears auction+mail lists, loads 0xF8-byte item records into auction collection, creates auction windows 0x2B and 0x2C with notifications. Sets flag at this+0x24C. |
| 0x00D5AEF0 | 310 | CItemCollection__load_guild_storage_or_close | Loads guild storage items or closes storage windows. If vector is non-empty: clears guild storage, loads 0xF8-byte item records. If empty: fires event 0x52, closes guild storage, closes auction/mail windows, and clears mail/auction lists. |
| 0x00DD43A0 | 384 | bitmask_to_3slot_indices | Converts a 10-bit bitmask to up to 3 slot indices. Iterates bits 0-9, fills output with indices of set bits. If fewer than 3 set bits, pads with -1. Uses STL vector internally for temporary storage. |
| 0x00DD6CB0 | 188 | CItemCollection__conditional_dtor | Conditional destructor for CItemCollection. If flag&2: calls eh_vector_destructor on list elements (8 bytes each), optionally frees array. Otherwise: destroys rb_tree nodes (0x3c each) and frees root. Flag&1 frees the object itself. |
| 0x00DD6D70 | 287 | CItemCollection__equip_to_slots_with_bonus | Equips item to up to 3 equipment slots determined by bitmask. For each valid slot index (0-9), copies item desc and marks slot as occupied at offset 0x1800. Then ensures CDataTable singleton exists, applies status bonus, and invalidates visible windows. |
| 0x00DD6E90 | 121 | CItemCollection__add_or_merge_shop_item | Adds item to shop item list at offset 0x1728, or if item with same name already exists, adds to its quantity (offset 0x18 in node). String comparison uses std::char_traits equality check. |
| 0x00DD6F10 | 273 | CItemCollection__update_buy_list_entry | Updates an existing buy list entry by name match in linked list at offset 0x17e4. Copies price, flags and string data from param into matching node. Calls FUN_00ddffe0 for index tracking and FUN_00e03e70 for UI refresh if not found. |
| 0x00DD7030 | 119 | CItemCollection__add_or_update_selling_item | Adds or updates item in selling list at offset 0x1710. If item with matching ID (offset 4) found, updates quantity and flags. Otherwise pushes new item. Calls CUIWindowMgr__notify_language_change if param_3 is set. Returns 0 if merged, 1 if added. |
| 0x00DD70B0 | 347 | CItemCollection__add_or_update_buying_store_item | Adds or updates item in buying store price list at offset 0x17dc. On name match: calls FUN_00ddffe0 for index, erases and rebalances. If no match: inserts new entry, checks entity for buying store effect (0xa0), creates it if needed. |
| 0x00DD7210 | 162 | CItemCollection__add_or_update_storage_item | Adds or updates item in storage list at offset 0x1768. If item with matching ID found, adds quantity. If param_3==0 and param_4==1, sends UI notification via DAT_0145797c vtable call. Returns 0 if merged, 1 if added. |
| 0x00DD72C0 | 133 | CItemCollection__add_or_update_cart_item | Adds or updates item in cart list at offset 0x1740. If item with matching ID found, adds quantity and notifies DAT_01457974 window. Returns 0 if merged, 1 if added. |
| 0x00DD7350 | 201 | CItemCollection__add_or_update_categorized_storage_item | Adds or updates item in categorized storage list at offset 0x1750. param_3 selects UI window: 0->DAT_01457a90, 1->DAT_01457978, 2->DAT_01457aa0. Notifies selected window if param_4==1. Returns 0 if merged, 1 if added. |
| 0x00DD7420 | 69 | CItemCollection__add_or_update_guild_storage_item | Adds or updates item in guild storage list at offset 0x1758. If item with matching ID found, adds quantity. Otherwise pushes new item. |
| 0x00DD7470 | 69 | CItemCollection__add_or_update_mail_item | Adds or updates item in mail attachment list at offset 0x1760. If item with matching ID found, adds quantity. Otherwise pushes new item. |
| 0x00DD74C0 | 69 | CItemCollection__add_or_update_auction_item | Adds or updates item in auction item list at offset 0x1748. If item with matching ID found, adds quantity. Otherwise pushes new item. |
| 0x00DD7510 | 162 | CItemCollection__equip_to_slots_extended | Equips item to up to 3 equipment slots (extended version). Copies item desc, marks slot occupied at offset 0x21b0, and copies additional fields at 0x2204/0x2208/0x2210 (refine level, option data). Returns 1. |
| 0x00DD75C0 | 242 | CItemCollection__add_item_from_string_id | Constructs an item from a string ID (atoi of item name), gets equip slot type and class/level, then pushes it to a shop item list. Cleans up temporary strings. |
| 0x00DD76C0 | 15 | CItemCollection__push_back_wrapper | Simple wrapper that delegates to CShopItemList__push_back. Adds item to the end of a linked list. |
| 0x00DD76D0 | 145 | CItemCollection__add_or_merge_deal_item | Adds or merges item in deal item list at offset 0x1718. If item with matching name found: if quantity is -1 keeps it at -1, otherwise adds quantity. Otherwise pushes new item. |
| 0x00DD7770 | 121 | CItemCollection__add_or_merge_deal_other_item | Adds or merges item in other player's deal list at offset 0x1720. If item with matching name found, adds quantity. Otherwise pushes new item. Name comparison uses std::char_traits. |
| 0x00DD77F0 | 145 | CItemCollection__add_or_merge_deal_item_by_id_or_name | Adds or merges deal item at offset 0x1720. If param_2 flag at 0x77 is set, matches by item ID only; otherwise matches by name. If found, adds quantity. Otherwise pushes new item. |
| 0x00DD7890 | 214 | CItemCollection__add_or_update_inventory_with_stack_limit | Adds or updates inventory item at offset 0x1730 with stack limit check. Looks up item's stack limit from shop data. If existing item found, updates quantity only if below limit. New items added only if initial quantity fits limit. |
| 0x00DD7970 | 440 | CItemCollection__add_item_from_desc_or_lookup | Adds item to collection. If param_2==0: creates item directly from desc (string ID -> atoi -> class/level lookup). Otherwise: looks up item from shop, copies it, builds desc, and pushes. Used for creating item entries from different sources. |
| 0x00DD7B30 | 79 | CItemCollection__add_or_merge_deal_item_by_id | Adds or merges item in deal list at offset 0x1718 by item ID match. If existing item has -1 quantity (infinite), keeps it unchanged. Otherwise adds quantity. New items pushed if not found. |
| 0x00DD7B80 | 167 | CItemCollection__add_or_update_favorite_item | Adds or updates item in favorites list at offset 0x1738. Checks DAT_016f7144 flag and global EffectMap for mode. If item found by ID, adds quantity. Notifies DAT_01457908 window on change. Returns 0 if merged, 1 if added. |
| 0x00DD7C30 | 228 | CItemCollection__update_or_add_equip_compare_slot_A | Updates or adds item to equip comparison slot array A at offset 0x3eb4. If item with matching slot found, updates quantity. Otherwise fills first empty slot. Notifies equip compare window (type 0x271b) after update. |
| 0x00DD7D20 | 228 | CItemCollection__update_or_add_equip_compare_slot_B | Updates or adds item to equip comparison slot array B at offset 0x4864. Same logic as slot A version but different base offset. Notifies equip compare window (type 0x271b) after update. |
| 0x00DD8000 | 43 | CItemCollection__set_buy_list_item_flag | Sets a flag (offset 0x54 in node) on a buy list item at offset 0x17dc, matched by item ID. No-op if item not found. |
| 0x00DD8030 | 53 | CItemCollection__set_buy_list_item_options | Sets two short options (at offsets 0x50 and 0x52 in node) on a buy list item at offset 0x17dc, matched by item ID. No-op if not found. |
| 0x00DD8070 | 43 | CItemCollection__set_buy_list_item_price | Sets the price field (offset 0x44 in node) on a buy list item at offset 0x17dc, matched by item ID. No-op if not found. |
| 0x00DD80A0 | 735 | CItemCollection__randomize_and_update_map_bounds | Randomizes 5 map parameters at offsets 0x532c-0x533c (mod 12 each) and 12 at 0x5340+. Updates map bounds (0x5568-0x5574) and refreshes entity grid display if bounds changed. Uses DAT_0145785c window for invalidation. |
| 0x00DD8380 | 202 | CItemCollection__clear_all_categorized_lists | Clears 11 categorized item lists starting at offset 0x1784. Iterates each list, destroys string data, frees nodes (0x100 bytes each), and updates count. |
| 0x00DD8450 | 205 | CItemCollection__remove_non_equipment_from_selling | Removes non-equipment items from selling list at offset 0x1710. Keeps items of type 4,5,8,9,11-15 (equipment types), removes all others. Notifies UI after cleanup. |
| 0x00DD8540 | 84 | CItemCollection__clear_deal_and_inventory_lists | Clears three item lists: deal other (0x1720), inventory (0x1730), and deal self (0x1718). Uses CNavigationWnd__on_scroll_event to traverse and clear each list. |
| 0x00DD85B0 | 171 | CItemCollection__reset_all_equip_slots | Resets all 10 equipment slots by calling CItemDesc__reset_all_fields on each. Notifies item list window, ensures CDataTable singleton exists, resets all active item bonuses, and invalidates visible windows. |
| 0x00DD8660 | 205 | CItemCollection__remove_equipment_from_selling | Removes equipment items from selling list at offset 0x1710. Removes items of type 4,5,8,9,11-15 (equipment types), keeps all others. Inverse of remove_non_equipment. Notifies UI after cleanup. |
| 0x00DD8750 | 111 | CItemCollection__clear_equip_compare_slots | Clears all 10 equip comparison slots in both A (0x3ec0) and B (0x5210) arrays by zeroing their first field. Also clears 0x5210 slot. |
| 0x00DD87C0 | 32 | CItemCollection__clear_shop_list | Clears the shop item list at offset 0x1728. Delegates to CNavigationWnd__on_scroll_event for traversal and cleanup. |
| 0x00DD87E0 | 170 | CItemCollection__clear_buy_list | Clears the buy list at offset 0x17e4. Iterates linked list, destroys string data, frees each node (0x58 bytes), and updates count at offset 0x17e8. |
| 0x00DD8890 | 42 | CItemCollection__clear_selling_list | Clears the selling list at offset 0x1710 and notifies UI via CUIWindowMgr__notify_language_change. |
| 0x00DD88C0 | 60 | CItemCollection__clear_mail_and_auction_lists | Clears both mail attachment (0x1760) and auction (0x1748) item lists. |
| 0x00DD8900 | 32 | CItemCollection__clear_storage_list | Clears the storage item list at offset 0x1768. |
| 0x00DD8920 | 32 | CItemCollection__clear_cart_list | Clears the cart item list at offset 0x1740. |
| 0x00DD8940 | 32 | CItemCollection__clear_categorized_storage_list | Clears the categorized storage list at offset 0x1750. |
| 0x00DD8960 | 32 | CItemCollection__clear_guild_storage_list | Clears the guild storage list at offset 0x1758. |
| 0x00DD8980 | 32 | CItemCollection__clear_mail_list | Clears the mail attachment list at offset 0x1760. |
| 0x00DD89A0 | 32 | CItemCollection__clear_auction_list | Clears the auction item list at offset 0x1748. |
| 0x00DD89C0 | 81 | CItemCollection__clear_quest_item_list | Clears quest item list at offset 0x734. Frees all nodes (0x14 bytes each), resets sentinel pointers and count at 0x738. |
| 0x00DD8A20 | 46 | CItemCollection__clear_categorized_list_by_index | Clears a categorized item list by index (0-10). Accesses list at offset 0x1784 + index*8. Bounds-checked. |
| 0x00DD8A50 | 111 | CItemCollection__clear_equip_compare_slots_B | Clears all 10 equip comparison slots in array B (offsets 0x4870-0x5128) plus slot at 0x5214 by zeroing their first field. |
| 0x00DD8AC0 | 37 | CItemCollection__reset_10_equip_descs | Resets all 10 equipment item descriptions by calling CItemDesc__reset_all_fields on each in a loop. |
| 0x00DD8AF0 | 209 | CItemCollection__clear_buying_store_and_remove_effects | Clears the buying store item list at offset 0x17dc. Also removes buying store effects (0xa0) from entities that have them. Resets buying store name string and count at 0x5464. |
| 0x00DD8BD0 | 61 | CItemCollection__reset_trade_counters | Resets 6 trade-related counters/fields at offsets 0x166c-0x1680 to zero. |
| 0x00DD8C10 | 32 | CItemCollection__clear_deal_other_list | Clears the deal other player's item list at offset 0x1720. |
| 0x00DD8C30 | 32 | CItemCollection__clear_inventory_list | Clears the inventory item list at offset 0x1730. |
| 0x00DD8C50 | 32 | CItemCollection__clear_deal_self_list | Clears the deal self item list at offset 0x1718. |
| 0x00DD8C70 | 41 | CItemCollection__reset_9_equip_slot_names | Resets 9 equipment slot name strings to "nothing" by calling STL_lib_func_004fa8f0 in a loop. |
| 0x00DD8CA0 | 32 | CItemCollection__clear_favorites_list | Clears the favorites item list at offset 0x1738. |
| 0x00DD8DB0 | 232 | CItemCollection__copy_mail_to_buying_store | Clears buying store list at offset 0x1770, then copies all items from mail list (0x1760) into buying store. Allocates 0x100 byte nodes for each copied item. |
| 0x00DD8EA0 | 792 | CItemDB__find_matching_item_in_list | Searches the item list (linked list at this+0x1750) for an item matching multiple criteria from param_3: name string (+0x2C), 4 stat values (+0x1C-0x28), type byte (+0x5C), card count (+0x60), enchant count (+0x88), and option slots (+0x9C, 5 bytes each). Returns a pair<bool, ItemDesc> where bool indicates if found. If not found, creates empty item desc. |
| 0x00DDA740 | 356 | CItemDB__remove_or_decrease_item_quantity | Removes or decreases item quantity in the inventory list (this+0x1750). Searches by item ID (param_2+4). If param_3 is null, decreases quantity by param_2+0x10 and removes if <=0. If param_3 is non-null, fully unlinks and deletes the node (0x100 bytes). Optionally notifies UI window (param_4==1). Returns 1 if found, 0 otherwise. |
| 0x00DDAB30 | 267 | CItemDB__remove_deal_item_by_id_or_name | Removes a deal/trade item from the list at this+0x1720. Matches by item ID (param_2+4) when param_2+0x77 flag is set, or by name string comparison (param_2+0x2C) otherwise. Decreases quantity by param_2+0x10 and removes if <=0. Frees 0x100-byte node on removal. |
| 0x00DDACE0 | 171 | CItemDB__remove_storage_item_by_id | Removes a storage item from the list at this+0x1738. Searches by item ID (param_2+4), decreases quantity by param_2+0x10, removes if <=0. After removal, scans remaining list to clear a flag byte at offset 0x7E on the next matching entry. Notifies DAT_01457908 window to refresh. Returns 1 on success, 0 if not found. |
| 0x00DDB580 | 212 | CItemDB__remove_buff_entry_by_name | Removes a buff/status effect entry from the list at this+0x17DC by name string match. If found, removes the associated visual effect (effect ID 0xA0) from the entity and unlinks the 0x58-byte node from the list. |
| 0x00DDBB50 | 7 | get_field_0x8134_00ddbb50 | Getter that returns 4-byte field at offset 0x8134 from param_1 |
| 0x00DDC050 | 69 | CItemDB__lookup_item_by_id_map708 | Looks up an item value from a map at +0x708 by item ID. Uses lower_bound search. Returns the value at node+0x14 if found, -1 (0xFFFFFFFF) if not found or if at the sentinel node. |
| 0x00DDC0A0 | 69 | CItemDB__lookup_item_by_id_map700 | Looks up an item value from a map at +0x700 by item ID. Uses lower_bound search. Returns the value at node+0x14 if found, -1 (0xFFFFFFFF) if not found or if at the sentinel node. |
| 0x00DDC240 | 114 | CItemDB__get_body_sprite_path | Gets the body sprite path for an item. Reads sprite index from +0x1628, item type from +0xE98, and sub-type from +0xEEC, then calls build_body_sprite_path with these values and 3 zero params. |
| 0x00DDC330 | 420 | CItemDB__get_equipped_item_by_slot_type | Returns a pointer to the equipped item data for a given equipment slot type bitmask. Maps slot constants to offsets: 1=0x17F0, 2/0x22=0x18E8, 4=0x19E0, 0x10=0x1BD0, 0x20=0x1CC8, 0x40=0x1DC0, 0x88=0x1AD8. For costume slots (0x8000), looks up by item ID in list at this+0x1710. Returns null if slot empty or invalid. |
| 0x00DDC580 | 132 | CItemDB__find_recently_sold_item | Searches the recently sold items array (10 entries at +0x2B50, 0xF8 stride) for an item matching param_3 ID. If found, copies the item data and sets *param_4 to the index. If not found, initializes empty. |
| 0x00DDC6F0 | 175 | CShop__get_item_by_index_or_special | Gets a shop item by index. If param_3==0xF, retrieves special item from offset 0x16ec. For indices 0-9, copies from item array at 0x17f0 (stride 0xF8). Otherwise calls error handler. |
| 0x00DDC7A0 | 132 | CShop__find_item_by_id | Searches the shop item array (10 entries at offset 0x17f0, stride 0xF8) for an item matching param_3 ID. Returns copy of matching item and writes index to param_4. |
| 0x00DDC830 | 100 | CShop__get_cart_item_by_index | Gets a cart/second-tab shop item by index from array at offset 0x3EB0 (stride 0xF8). Returns a copy via CShopItem copy constructor. |
| 0x00DDC930 | 151 | CShop__get_linked_list_item_by_index | Gets an item from a linked list at offset 0x1728 by traversing to the given index. Returns copy via CShopItem copy constructor. Validates list count at 0x172C. |
| 0x00DDC9D0 | 593 | CShop__lookup_item_name_in_sorted_map | Looks up an item name string in a sorted map (std::lower_bound on tree at offset 0x5230). Strips file extension (last 4 chars before '.') from the input name. Returns pointer to mapped data or default. |
| 0x00DDCC30 | 231 | CShop__get_item_node_by_index | Gets an item node from linked list at 0x17E4 by traversing to index param_3. Returns CItemNode copy. If index exceeds list, returns zeroed-out node with empty strings. |
| 0x00DDCD20 | 36 | CShop__get_item_quantity_by_id | Gets the quantity of an item by its ID (offset by 10000). Looks up in array at this+0x710. Returns 0 if ID < 10000. |
| 0x00DDCDC0 | 125 | CItem__build_current_weapon_sprite_path | Builds the weapon sprite path for the current item using data from the object (offset 0xED8) and helper functions to get weapon type and class info. |
| 0x00DDCF60 | 114 | CItem__build_current_shield_sprite_path | Builds the shield sprite path for the current item using member fields: shield ID (0x1628), job class (0xE98), base class (0xED8), and equipment slot (0xEF0). |
| 0x00DDD050 | 125 | CItem__build_current_weapon_sprite_path_type1 | Builds the secondary weapon (type=1) sprite path for the current item using member data and helper functions for weapon type and class info. |
| 0x00DDD0D0 | 36 | CShop__get_card_item_quantity_by_id | Gets the quantity of a card item by its ID (offset by 8000). Looks up in array at this+0x71C. Returns 0 if ID < 8000. |
| 0x00DDD100 | 140 | CItem__get_sprite_name_by_index | Gets a sprite name string by index from the pointer array at this+0xF84. Returns it as an STL string via copy. |
| 0x00DDD200 | 114 | CItem__build_current_imf_resource_path | Builds the IMF resource path for the current item using member fields: shield ID (0x1628), job class (0xE98), base class (0xED8), and sprite type (0xF08). |
| 0x00DDD2C0 | 55 | CItemDesc__get_color_code | Gets a color code for an item description. Returns -0x555556 if flag at +0x5C is unset, calls update_fields otherwise. Returns -1 or -0x100 based on type field at +0x64. |
| 0x00DDD300 | 245 | CShop__find_item_index_by_id_string | Iterates through linked list items (count at 0x1714), converts each item's string ID to int via atoi, returns the index of the item matching param_2. Returns 0xFFFF if not found. |
| 0x00DDD400 | 216 | CShop__collect_matching_item_indices | Traverses linked list at 0x1710, collects slot indices (field +0xC) of items whose string ID matches param_3. If param_4 is set, only includes items with flag at +0x64 set. Returns vector of matching indices. |
| 0x00DDD4E0 | 190 | CShop__find_item_in_linked_list_by_id | Searches linked list at 0x1710 for an item whose string ID (atoi) matches param_3. param_4 filters by equip flag. Returns copy via CShopItem copy constructor. Error if list empty or not found. |
| 0x00DDD5A0 | 353 | CShop__find_item_in_linked_list_by_slot | Searches linked list at 0x1710 for an item whose slot field (+0xC) matches param_3. Returns copy via CShopItem copy constructor. Handles cleanup of temp strings. |
| 0x00DDD710 | 151 | CShop__get_linked_list_item_by_index_validated | Gets an item from linked list at 0x1710 by sequential index (param_3). Validates list is not empty via count at 0x1714. Returns copy via CShopItem copy constructor. |
| 0x00DDD7B0 | 18 | CShop__find_item_ptr_by_id_string | Searches linked list at 0x1710 for an item whose string ID (atoi) matches param_2. Returns direct pointer to item data (offset +2 from node). param_3 filters by equipped flag. Returns NULL if not found. |
| 0x00DDD7C2 | 78 | CShop__find_item_ptr_by_id_string_fastcall | Fastcall variant of find_item_ptr_by_id_string. Same logic: searches linked list at 0x1710, returns pointer to item data matching ID string. |
| 0x00DDD810 | 62 | CShop__find_item_ptr_by_slot_id | Searches linked list at 0x1710 for an item whose slot field (+0xC) matches param_2. Returns direct pointer to item (offset +2). Returns NULL if not found, list empty, or slot is 0. |
| 0x00DDD850 | 95 | CShop__find_item_ptr_by_id_with_filter | Searches linked list at 0x1710 for item matching ID (atoi of string field). If param_3 set, also requires equipped flag. Returns direct pointer to item data or NULL. |
| 0x00DDD8B0 | 240 | CShop__get_item_name_by_id | Gets the display name string for an item by its slot ID. First checks linked list via find_by_slot, then falls back to the fixed item array at 0x17F0 (10 entries, stride 0xF8). Returns pointer to name string. |
| 0x00DDD9A0 | 74 | CShop__get_total_quantity_by_id | Sums the quantity (field +0x18) of all items in linked list at 0x1710 whose string ID matches param_2. Returns total count. |
| 0x00DDDFE0 | 850 | CItem__remap_job_class_for_costume | Remaps job class IDs for costume display. Checks member field at +0x1628 against known job class IDs and global bitfield flags (DAT_0173354c) to return alternate costume class IDs. Handles baby classes, 3rd jobs, mounted variants, etc. |
| 0x00DDE3D0 | 366 | CItem__get_hit_sound_filename | Gets the hit sound WAV filename for a weapon type. For normal weapons, looks up in sound arrays at +0x5268/+0x5274. For fist/unarmed (weapon 0), returns random hit_fist*.wav. Handles special job class cases (0xFCE, 0x1081). Falls back to enemy_hit_normal*.wav. |
| 0x00DDE5C0 | 231 | CItem__get_equip_name_by_location | Gets the display name for an equipment slot by location ID. Handles costume locations by mapping to base equip via map_costume_to_base_equip_location. Uses rb_tree lookups for gender-specific names. Falls back to pointer array at +0xFA8. |
| 0x00DDE720 | 76 | CItem__find_in_rb_tree_by_key | Searches a red-black tree (sentinel at +0x80BC) using lower_bound. Returns pointer to value at node+0x14 if key matches, NULL otherwise. |
| 0x00DDE770 | 140 | CItem__set_display_name_from_cstr | Copies a C-string into an STL string, then calls ItemDisplayTree__get_display_name to set the display name for the item. |
| 0x00DDE800 | 94 | CItem__find_item_id_by_name_in_list | Searches the linked list at 0x17DC for an item whose name string (at node+0x14/+0x28) matches param_2. Returns the item ID (node+0xC) or 0 if not found. Uses std::char_traits comparison. |
| 0x00DDE860 | 36 | CShop__get_shadow_equip_quantity_by_id | Gets the quantity of a shadow equipment item by ID (offset by 0x2008). Looks up in array at this+0x728. Returns 0 if ID < 0x2008. |
| 0x00DDE890 | 134 | CShop__find_storage_item_by_slot | Finds a storage item by slot ID in linked list at 0x1768. Returns copy via CShopItem copy constructor. Calls error handler if not found. |
| 0x00DDE920 | 151 | CShop__get_storage_item_by_index | Gets a storage item by sequential index from linked list at 0x1768. Validates count at 0x176C. Returns copy via CShopItem copy constructor. |
| 0x00DDE9C0 | 42 | CShop__get_storage_item_quantity_by_slot | Gets the quantity (field +0x18) of a storage item by slot ID from linked list at 0x1768. Returns 0 if not found. |
| 0x00DDE9F0 | 134 | CShop__find_guild_storage_item_by_slot | Finds a guild storage item by slot ID in linked list at 0x1740. Returns copy via CShopItem copy constructor. Calls error handler if not found. |
| 0x00DDEA80 | 151 | CShop__get_guild_storage_item_by_index | Gets a guild storage item by sequential index from linked list at 0x1740. Validates count at 0x1744. Returns copy via CShopItem copy constructor. |
| 0x00DDEB20 | 42 | CShop__get_guild_storage_item_quantity_by_slot | Gets the quantity (field +0x18) of a guild storage item by slot ID from linked list at 0x1740. Returns 0 if not found. |
| 0x00DDEB50 | 134 | CShop__find_cart_list_item_by_slot | Finds a cart item by slot ID in linked list at 0x1750. Returns copy via CShopItem copy constructor. Calls error handler if not found. |
| 0x00DDEBE0 | 151 | CShop__get_cart_list_item_by_index | Gets a cart list item by sequential index from linked list at 0x1750. Validates count at 0x1754. Returns copy via CShopItem copy constructor. |
| 0x00DDEC80 | 42 | CShop__get_cart_list_item_quantity_by_slot | Gets quantity (field +0x18) of a cart list item by slot ID from linked list at 0x1750. Returns 0 if not found. |
| 0x00DDECB0 | 132 | CShop__find_buyingstore_item_by_slot | Finds a buying store item by slot ID in linked list at 0x1758. Returns copy via CShopItem copy constructor. Calls error handler if not found. |
| 0x00DDED40 | 159 | CShop__find_buyingstore_item_by_id_string | Finds a buying store item by ID string (atoi) in linked list at 0x1758. Returns copy via CShopItem copy constructor. Calls error handler if not found. |
| 0x00DDEDE0 | 151 | CShop__get_buyingstore_item_by_index | Gets a buying store item by sequential index from linked list at 0x1758. Validates count at 0x175C. Returns copy via CShopItem copy constructor. |
| 0x00DDEE80 | 42 | CShop__get_buyingstore_item_quantity_by_slot | Gets quantity (field +0x18) of a buying store item by slot ID from linked list at 0x1758. Returns 0 if not found. |
| 0x00DDEEB0 | 134 | CShop__find_trade_item_by_slot | Finds a trade item by slot ID in linked list at 0x1760. Returns copy via CShopItem copy constructor. Calls error handler if not found. |
| 0x00DDEF40 | 184 | CShop__find_trade_item_by_name | Finds a trade item by name string in linked list at 0x1760. Compares using std::char_traits. Returns copy via CShopItem copy constructor. Calls error handler if not found. |
| 0x00DDF000 | 134 | CShop__get_trade_item_by_index | Gets a trade item by sequential index from linked list at 0x1760. Returns copy via CShopItem copy constructor. Calls error handler if not found. |
| 0x00DDF090 | 94 | CShop__get_trade_item_quantity_by_name | Gets the quantity (field +0x18) of a trade item by name string from linked list at 0x1760. Returns 0 if not found. |
| 0x00DDF0F0 | 42 | CShop__get_trade_item_quantity_by_slot | Gets quantity (field +0x18) of a trade item by slot ID from linked list at 0x1760. Returns 0 if not found. |
| 0x00DDF120 | 134 | CShop__find_mail_item_by_slot | Finds a mail attachment item by slot ID in linked list at offset 6000 (0x1770). Returns copy via CShopItem copy constructor. |
| 0x00DDF1B0 | 73 | CShop__calc_total_trade_value | Calculates total trade value by summing (price * quantity) for all items in linked list at 0x1760. Returns 64-bit result (longlong). Field +0x18=quantity, +0x20=price. |
| 0x00DDF200 | 151 | CShop__get_equipped_item_by_index | Gets an equipped item by sequential index from linked list at 0x1748. Validates count at 0x174C. Returns copy via CShopItem copy constructor. |
| 0x00DDF2A0 | 42 | CShop__get_equipped_item_quantity_by_slot | Gets quantity (field +0x18) of an equipped item by slot ID from linked list at 0x1748. Returns 0 if not found. |
| 0x00DDF2D0 | 66 | CShop__find_item_option_by_slot | Finds an item option entry by slot ID in linked list at 0x734. Returns 12-byte struct (3 fields) copied from node. Returns zeroed struct if not found. |
| 0x00DDF320 | 535 | CItem__lookup_map_bgm_filename | Looks up the BGM filename for a map name. Strips extension from map name, binary searches sorted pair array at 0x5224. Returns matched BGM path or default 'bgm_01.mp3'. |
| 0x00DDF540 | 102 | CShop__find_equip_tab_item_ptr_by_id | Finds an item pointer in equipment tab (param_2, 0-10) linked list at 0x1784+(tab*8). Searches by ID string (atoi). Returns direct pointer to item data or NULL. |
| 0x00DDF5B0 | 166 | CShop__get_equip_tab_item_by_index | Gets an item by sequential index from equipment tab (param_3, 0-10) linked list at 0x1784+(tab*8). Validates tab range and count. Returns copy via CShopItem copy constructor. |
| 0x00DDF660 | 334 | CItem__get_current_map_resource_name | Gets the resource name for the current map. Reads map name from this+0x160C, builds STL string, and calls ItemDisplayTree__get_resource_name to resolve it. |
| 0x00DDF7B0 | 209 | CItem__lookup_map_type_by_name | Looks up the map type for a given map name. Binary searches sorted pair array at 0x5218. Returns type value or default 3 if not found. |
| 0x00DDF8A0 | 7 | get_field_0x17e8_00ddf8a0 | Getter that returns 4-byte field at offset 0x17e8 from param_1 |
| 0x00DDF8B0 | 7 | get_field_0x1714_00ddf8b0 | Getter returning 4-byte field at offset 0x1714 from parameter |
| 0x00DDF8C0 | 7 | get_field_0x176c_00ddf8c0 | Getter that returns 4-byte field at offset 0x176c from param_1 |
| 0x00DDF8D0 | 7 | get_field_0x1744_00ddf8d0 | Getter returning 4-byte field at offset 0x1744 from parameter |
| 0x00DDF8E0 | 7 | get_field_0x1754_00ddf8e0 | Getter returning 4-byte field at offset 0x1754 from parameter |
| 0x00DDF8F0 | 7 | get_field_0x175c_00ddf8f0 | Getter returning 4-byte field at offset 0x175c from parameter |
| 0x00DDF900 | 7 | get_field_0x1764_00ddf900 | Getter returning 4-byte field at offset 0x1764 from parameter |
| 0x00DDF910 | 7 | get_field_0x174c_00ddf910 | Getter returning 4-byte field at offset 0x174c from param_1 |
| 0x00DDF920 | 32 | CShop__get_equip_tab_count | Returns the item count for a given equipment tab index (0-10). Reads from array at this+0x1788 with stride 8. Returns 0 if tab index is out of range. |
| 0x00DDF9D0 | 7 | get_field_0x17e0_00ddf9d0 | Getter returning 4-byte field at offset 0x17e0 from parameter |
| 0x00DDF9E0 | 7 | get_field_0x1724_00ddf9e0 | Getter returning 4-byte field at offset 0x1724 from parameter |
| 0x00DDF9F0 | 7 | get_field_0x1734_00ddf9f0 | Getter returning 4-byte field at offset 0x1734 from param_1 |
| 0x00DDFA00 | 7 | get_field_0x171c_00ddfa00 | Getter returning 4-byte value from param at offset 0x171c |
| 0x00DDFA10 | 7 | get_field_0x173c_00ddfa10 | Getter returning 4-byte field at offset 0x173c from param_1 |
| 0x00DDFA20 | 38 | CItem__count_visible_items_in_list | Counts items in linked list at 0x17DC that have a zero flag at field +0x48 (visible/non-hidden items). Returns the count of such items. |
| 0x00DDFA50 | 100 | CShop__get_vending_item_by_index | Gets a vending item by index from the fixed array at offset 0x4860 (stride 0xF8). Returns copy via CShopItem copy constructor. |
| 0x00DDFAC0 | 138 | CShop__get_shop_sell_item_by_index | Gets a shop sell-tab item by index from array at 0x21A0 (stride 0xF8). Valid indices 0-9. Index 0xF and >=10 both trigger error handler. |
| 0x00DDFD00 | 45 | CShop__get_inventory_item_favorite_flag | Gets the favorite/star flag (byte at node+0x7F) for an inventory item by matching slot ID from param_2+4 in linked list at 0x1718. Returns 0 if not found. |
| 0x00DDFD30 | 117 | CShop__get_inventory_item_quantity_by_info | Gets the quantity (field +0x18) of an inventory item by matching its ID string. Compares atoi of node string with atoi of param_2+0x2C string. Searches linked list at 0x1718. |
| 0x00DDFDB0 | 45 | CShop__get_inventory_item_quantity_by_slot | Gets the quantity (field +0x18) of an inventory item by matching slot ID from param_2+4 in linked list at 0x1718. Returns 0 if not found. |
| 0x00DDFDE0 | 118 | CShop__get_inventory_item_type_by_info | Gets the item type (short at field +0x74) of an inventory item by matching its ID string from param_2+0x2C. Searches linked list at 0x1718. Returns 0 if not found. |
| 0x00DDFE60 | 46 | CShop__get_inventory_item_type_by_slot | Gets the item type (short at field +0x74) of an inventory item by matching slot ID from param_2+4. Searches linked list at 0x1718. Returns 0 if not found. |
| 0x00DDFE90 | 193 | CShop__calc_total_weight_by_id | Calculates total weight for items in NPC shop list (0x1720) by matching each item's ID string against inventory (0x1718) to get weight per item. Sums (quantity * weight) for all matching items. |
| 0x00DDFF60 | 121 | CShop__calc_total_weight_by_slot | Calculates total weight for items in NPC shop list (0x1720) by matching each item's slot ID against inventory (0x1718). Sums (quantity * weight) for all matching items. |
| 0x00DE00D0 | 229 | CItem__get_item_node_by_slot_id | Gets an item node by slot ID from linked list at 0x17DC. Returns CItemNode copy with slot, name strings, and count. Returns zeroed node with empty strings if not found. |
| 0x00DE01C0 | 531 | CItem__get_item_node_by_unique_id | Gets an item node by unique ID (field +0x10) from linked list at 0x17DC. Returns CItemNode copy. If not found, returns zeroed-out default node. Handles string cleanup for both paths. |
| 0x00DE03E0 | 283 | CItem__get_item_node_by_name | Gets an item node by name string match from linked list at 0x17DC. Compares using std::char_traits. Returns CItemNode copy or zeroed node with empty strings if not found. |
| 0x00DE0500 | 231 | CItem__get_item_node_by_index | Gets an item node by sequential index from linked list at 0x17DC. Returns CItemNode copy or zeroed node with empty strings if index exceeds list size. |
| 0x00DE05F0 | 45 | CItem__find_item_node_ptr_by_slot_id | Finds a direct pointer to an item node by slot ID in linked list at 0x17DC. Returns pointer to node data (offset +2 from link) or NULL if not found. |
| 0x00DE0620 | 184 | CShop__find_npc_shop_item_by_name | Finds an NPC shop item by name string in linked list at 0x1720. Uses std::char_traits comparison. Returns copy via CShopItem copy constructor. Calls error handler if not found. |
| 0x00DE06E0 | 134 | CShop__get_npc_shop_item_by_index | Gets an NPC shop item by sequential index from linked list at 0x1720. Returns copy via CShopItem copy constructor. Calls error handler if not found. |
| 0x00DE0770 | 94 | CShop__get_npc_shop_item_quantity_by_name | Gets quantity (field +0x18) of an NPC shop item by name string from linked list at 0x1720. Returns 0 if not found. |
| 0x00DE07D0 | 42 | CShop__get_npc_shop_item_quantity_by_slot | Gets quantity (field +0x18) of an NPC shop item by slot ID from linked list at 0x1720. Returns 0 if not found. |
| 0x00DE0800 | 33 | CShop__calc_npc_shop_total_cost | Calculates total cost of all items in NPC shop list (0x1720). Sums (price * quantity) for each item. Fields: +0x18=quantity, +0x20=price. |
| 0x00DE08F0 | 134 | CShop__find_favorite_item_by_slot | Finds a favorite/starred item by slot ID in linked list at 0x1730. Returns copy via CShopItem copy constructor. Calls error handler if not found. |
| 0x00DE0980 | 151 | CShop__get_favorite_item_by_index | Gets a favorite item by sequential index from linked list at 0x1730. Validates count at 0x1734. Returns copy via CShopItem copy constructor. |
| 0x00DE0A20 | 42 | CShop__get_favorite_item_quantity_by_slot | Gets quantity (field +0x18) of a favorite item by slot ID from linked list at 0x1730. Returns 0 if not found. |
| 0x00DE0A50 | 24 | CItem__get_remaining_cooldown_ms | Calculates remaining cooldown time in milliseconds. Returns timeGetTime() minus stored timestamp at this+0x794, adjusted by -0x48 (72ms offset). |
| 0x00DE0A70 | 477 | CItem__get_npc_location_radius | Gets the NPC location radius for a given job class. Calls Lua 'GetNpcLocationRadius'. If Lua returns 0, looks up in rb_tree at 0x5254. Caches new entries. Optionally maps job ID via map_job_id_to_skill_tree_id if param_3 is set. |
| 0x00DE0D30 | 151 | CShop__get_inventory_item_by_index | Gets an inventory item by sequential index from linked list at 0x1718. Validates count at 0x171C. Returns copy via CShopItem copy constructor. |
| 0x00DE0DD0 | 42 | CShop__get_inventory_item_quantity_by_slot_direct | Gets quantity (field +0x18) of an inventory item by slot ID from linked list at 0x1718. Returns 0 if not found. Direct slot-based lookup. |
| 0x00DE0E00 | 28 | CItem__get_card_slot_string_ptr | Gets a pointer to the string data for a card slot. Calculates offset as (param_2*3+0x18)*8 into the object. Handles SSO (small string optimization) by checking capacity. |
| 0x00DE0E40 | 104 | CShop__get_item_quantity_by_id_universal | Universal item quantity lookup by ID. Routes to different arrays: 1-7999 from this+0x70, 10001+ from this+0x710, 8000+ (if valid type) from this+0x71C. Returns 0 if not found. |
| 0x00DE0EB0 | 134 | CShop__find_quest_item_by_slot | Finds a quest item by slot ID in linked list at 0x1738. Returns copy via CShopItem copy constructor. Calls error handler if not found. |
| 0x00DE0F40 | 151 | CShop__get_quest_item_by_index | Gets a quest item by sequential index from linked list at 0x1738. Validates count at 0x173C. Returns copy via CShopItem copy constructor. |
| 0x00DE0FE0 | 42 | CShop__get_quest_item_quantity_by_slot | Gets quantity (field +0x18) of a quest item by slot ID from linked list at 0x1738. Returns 0 if not found. |
| 0x00DE1010 | 9201 | CItem__large_init_or_load_tables | Large function (9201 bytes) - skipped decompilation. Likely initialization or table loading routine for CItem. |
| 0x00DE3410 | 593 | CItem__lookup_item_name_in_sorted_map_ext | Extended version of item name lookup in sorted map (at 0x523C). Strips file extension, does lower_bound search. Uses thread-local static with 9-entry vector init. Sets found flag via param_3. Returns pointer to data or default. |
| 0x00DE3680 | 250 | CItem__get_hit_sound_filename_by_weapon | Gets hit sound filename using lua_get_real_weapon_id to resolve weapon. Similar to get_hit_sound_filename but takes weapon param directly. Handles doram/summoner classes, fist sounds, and normal weapon sounds from array at +0x5274. |
| 0x00DE38E0 | 75 | CItem__find_in_rb_tree_get_byte | Searches rb_tree (sentinel at +0x80BC) for key param_2. Returns byte value at node+0x14 if found, 0 otherwise. Variant of find_in_rb_tree_by_key. |
| 0x00DE3930 | 478 | CItem__get_map_npc_warp_info | Gets NPC warp destination info for the current map. Looks up map name in rb_tree at 0x80B4, then finds warp target by index (param_3) and param_4 key. Returns 8-byte struct with coordinates. Returns zeroed if not found. |
| 0x00DE3B10 | 254 | CItem__get_map_index_from_rbtree | Gets the map index from the rb_tree at 0x80B4. Builds search key from current map name or param string. Returns map index (field +0x28) from matching node, or -1 if not found. |
| 0x00DE3C10 | 199 | CItem__calc_animated_light_value | Calculates an animated light/color value based on rb_tree data at 0x7EE0. Gets min/max/period values, uses timeGetTime() to compute oscillating value between min and max. Clamps result to 0-255. |
| 0x00DE3D90 | 392 | CItem__broadcast_item_list_to_handler | Broadcasts all items in the linked list at 0x17E4 to a handler. For each item, calls handler function pointer (at DAT_013495bc vtable offset 0x18) with type 0xB and item name. Increments global counter DAT_0173AD3D, capped at 40. |
| 0x00DE3F20 | 3351 | CItem__reset_session_state | Resets all session/character state when entering game or switching characters. Initializes TLS encrypted registry key for game path storage (RegCreateKeyExA), then zeros out hundreds of game state fields: player stats, item lists, skill bars, equipment, quest data, attendance, rankings, reports, selection indices. Clears rb_trees, vectors, linked lists. Calls CReportManager__clear_all, load_prohibition_log_file, clear_selection_indices. Resets timestamps via timeGetTime/GetTickCount/GetSystemTime. Called on character select or session init. |
| 0x00DE4C40 | 311 | CItem__load_buying_store_item_list | Loads the BuyingStoreItemList.txt file and populates the buying store allowed items vector at 0x1778. Parses each line as an item ID via atoi. Pre-allocates 512 entries. |
| 0x00DE4D80 | 611 | CItem__init_damage_skin_settings | Initializes damage skin settings by calling Lua functions GetDamageSkinSize, GetDamageResourceName, and GetDamageMillionUnit. Validates skin index at +0x80C4 against count at +0x80C8, and damage type at +0x80CC (0-3 range). |
| 0x00DE4FF0 | 576 | CItem__rescale_all_ui_positions | Rescales all UI element positions based on current screen resolution. Iterates through rb_tree arrays at +0x5318 and linked list at +0x531C. Scales x/y coordinates by resolution ratio with 0.5 rounding and y-offset of 17. |
| 0x00DE5230 | 388 | CItem__load_map_object_light_table | Loads mapObjLightTable.txt into vector at 0x5288. Each line becomes a (string, bool) pair. Boolean is set if the second column is NOT empty (strcmp != 0). Pre-allocates 512 entries. Sorts by string key. |
| 0x00DE5B40 | 61 | CItem__reset_skill_bar_vectors | Resets two vectors to zero: skill bar data at offsets 0x5608-0x5610 and 0x55FC-0x5604. Clears begin, end, and capacity pointers for both. |
| 0x00DE5B80 | 73 | CItem__load_indoor_rsw_table | Loads indoorRswTable.txt into vector at 0x5248. Sorts the string pointer array using introsort. Returns 1. |
| 0x00DE7290 | 5296 | CItem__large_load_data_tables | Large function (5296 bytes) - skipped decompilation. Data table loading routine for CItem. |
| 0x00DE8970 | 2612 | CItem__load_map_position_table | Loads mapPosTable.txt and populates the map position data structures. Parses #-delimited lines with map coordinates. Stores data in rb_tree at this+0x5310 (per-map bounding boxes) and rb_tree at this+0x531C (per-position entries). Uses '@' marker for initial map count allocation (0x5318/0x5328). Each map entry contains position name and 4 coordinate values (x1, y1, x2, y2). Also populates per-position map with string key lookups. |
| 0x00DE93F0 | 61 | CItem__reset_enchant_vectors | Resets two enchant-related vectors to zero at offsets 0x56A4-0x56AC and 0x5698-0x56A0. Clears begin, end, and capacity pointers for both. |
| 0x00DE9750 | 338 | CItem__load_mp3_name_table | Loads mp3NameTable.txt into sorted pair vector at 0x5224. Each line produces a (map_name, bgm_filename) pair. Pre-allocates 512 entries. Sorts by map name for binary search lookup. |
| 0x00DE98B0 | 39081 | CItem__very_large_init_routine | CItem: very large init routine |
| 0x00DF3160 | 92 | CItem__reset_inventory_expansion_state | Resets inventory expansion state. Calls CPacket__handle_inventory_expansion with saved values, then resets expansion fields at 0x5BD8-0x5BF0 to defaults (-1 for last 3 fields). |
| 0x00DF31C0 | 473 | CItem__rebuild_shadow_factor_table | Rebuilds the shadow factor rb_tree at 0x5254. Clears existing tree, then iterates through all job class IDs (0 to 0x7D02), calling Lua 'ReqshadowFactor' for each. Inserts results as float values into the tree. |
| 0x00DF33B0 | 1170 | CItem__init_all_data_tables | Master data table initialization. Loads mp3NameTable.txt, indoorRswTable.txt, ViewPointTable, format strings, message strings, manner.txt, pet/monster XML, encrypted tables, item DB, emotion CSV, fog params, weapon hit sounds, job sprite names, shadow factors, buying store list, exception minimap names, pet emotions. Also checks for duplicate client windows via encrypted FindWindowA and sends WM_CLOSE. Called during game startup. |
| 0x00DF3850 | 17383 | CItem__large_packet_handler | Large function (17383 bytes) - skipped decompilation. Major packet handler or state machine for CItem. |
| 0x00DF7C40 | 1282 | CItem__reset_all_game_state | Major game state reset function. Initializes player stats, resets inventory/shop state, clears equipment slots, zeros weight/zeny counters, sets defaults for UI config. Queries GlobalMemoryStatus for low-memory flag. Clears formatted string slots 0xDB-0xE7. |
| 0x00DF88B0 | 129 | CItem__clear_inventory_and_shop_state | Clears inventory and shop state. Calls navigation scroll handler, frees all nodes from linked list at 0xFE4, then resets 10 item description entries via CItemDesc__reset_all_fields. |
| 0x00DF8940 | 755 | CItem__reset_entity_lists_and_item_state | Resets entity lists, item state, and game data. Clears linked lists at 0x1720/1730/1718/1738, zeros 21 equipment/item slot counters (0x3EC0-0x5128 at 0xF8 stride), destroys global callback list, frees name list at 0x17E4, removes attached effects from entities, clears item selling slots, and resets various state fields. Called on map change or game reset. |
| 0x00DF9400 | 94 | CItem__refresh_display_if_ready | Checks if game mode is active, then refreshes the equipment/item display if version counters at 0x556C and 0x5568 match or 0x5574/0x5570 match. Calls entity grid refresh and effect invalidation. |
| 0x00DF9690 | 78 | CItem__check_name_in_item_list | Iterates the item name linked list at offset 0x17e4 and returns 1 if any entry matches param_2 via fuzzy string comparison, 0 otherwise. |
| 0x00DF96E0 | 13 | extract_bit4_flag | Extracts bit 4 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF96F0 | 21 | compare_bit4_flags | XORs bit 4 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF9710 | 12 | extract_bit1_flag | Extracts bit 1 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9720 | 19 | compare_bit1_flags | XORs bit 1 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF9740 | 13 | extract_bit5_flag | Extracts bit 5 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9750 | 21 | compare_bit5_flags | XORs bit 5 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF9770 | 13 | extract_bit23_flag | Extracts bit 23 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9780 | 21 | compare_bit23_flags | XORs bit 23 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF97A0 | 13 | extract_bit24_flag_00df97a0 | Extracts bit 24 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF97B0 | 21 | compare_bit24_flags_00df97b0 | XORs bit 24 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF97D0 | 13 | extract_bit25_flag_00df97d0 | Extracts bit 25 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF97E0 | 21 | compare_bit25_flags_00df97e0 | XORs bit 25 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF9800 | 13 | extract_bit26_flag_00df9800 | Extracts bit 26 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9810 | 21 | compare_bit26_flags | XORs bit 26 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF9830 | 13 | extract_bit19_flag | Extracts bit 19 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9840 | 21 | compare_bit19_flags | XORs bit 19 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF9860 | 13 | extract_bit14_flag_00df9860 | Extracts bit 14 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9870 | 13 | extract_bit27_flag | Extracts bit 27 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9900 | 13 | extract_bit28_flag | Extracts bit 28 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9910 | 13 | extract_bit11_flag_00df9910 | Extracts bit 11 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9920 | 21 | compare_bit11_flags_00df9920 | XORs bit 11 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF9940 | 13 | extract_bit20_flag_00df9940 | Extracts bit 20 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9950 | 21 | compare_bit20_flags_00df9950 | XORs bit 20 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF9970 | 13 | extract_bit13_flag_00df9970 | Extracts bit 13 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9980 | 21 | compare_bit13_flags | XORs bit 13 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF99A0 | 13 | extract_bit16_flag | Extracts bit 16 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF99B0 | 10 | get_bit_0_XXXX_00df99b0 | Extracts the least significant bit from a byte parameter |
| 0x00DF99C0 | 13 | compare_bit0_xor | XORs two byte parameters and returns the least significant bit. Effectively compares bit 0 of two values, returning 1 if they differ. |
| 0x00DF99D0 | 13 | extract_bit6_flag | Extracts bit 6 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF99E0 | 21 | compare_bit6_flags | XORs bit 6 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF9A00 | 13 | extract_bit15_flag | Extracts bit 15 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9A10 | 21 | compare_bit15_flags | XORs bit 15 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF9A30 | 13 | extract_bit18_flag | Extracts bit 18 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9A40 | 13 | extract_bit17_flag | Extracts bit 17 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9A50 | 21 | compare_bit17_flags | XORs bit 17 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF9A70 | 13 | extract_bit21_flag | Extracts bit 21 from the input value, returning it as a boolean (0 or 1). |
| 0x00DF9A80 | 21 | compare_bit21_flags | XORs bit 21 of two values and returns the result as a boolean (0 or 1). |
| 0x00DF9AC0 | 206 | CItem__lookup_map_object_light_flag | Binary searches a sorted string-to-byte pair array at offset 0x5288 for a matching name, returning the associated byte value or 1 if not found. |
| 0x00DFC170 | 433 | CShop__add_matching_items_to_list | Iterates shop items by index, gets each item via CShop__get_linked_list_item_by_index_validated, converts its string ID to int via atoi, checks if the ID is in the vector at this+0x1778. If found, allocates a new list node (0x100 bytes) via CShopItem__copy_construct and inserts it into the list at this+0x1750. |
| 0x00DFC330 | 740 | CShop__rebuild_filtered_item_list | Rebuilds the filtered item list at this+0x1750. First phase adds matching items (same as CShop__add_matching_items_to_list). Second phase iterates the new list, cross-references against list 0x1748 to get level values, and removes items that fail FUN_00e3d390 check or updates their level fields. |
| 0x00DFC620 | 910 | CShop__unequip_item_from_slot | Unequips an item. If param_2==0x8000, removes from linked list slot, displays chat message, clears slot, removes window 0x271B entry, and removes status bonus. Otherwise handles slotted equipment (up to 10 slots), moves item back to inventory list, and notifies UI. Also ensures CDataTable is initialized. |
| 0x00DFC9B0 | 506 | CShop__equip_item_to_slot | Equips an item (param_2 points to item data). Displays equip message, copies item data into up to 3 equipment slots, applies item bonus, and refreshes windows. If item is shadow equip (checked via FUN_00e1d9b0), routes to FUN_00e07150 instead. |
| 0x00DFCBB0 | 459 | CShop__add_item_to_equipment_slot | Adds an item to one of 10 equipment slots (0x3EC0..0x4778, stride 0xF8). First checks if all 10 slots are full (returns 0). Copies item data, finds matching slot by item ID, stacks if found, otherwise places in first empty slot. Notifies window 0x271B to refresh. |
| 0x00DFD060 | 5164 | CItem__load_data_tables_helper | Helper for loading item data tables. 5.1K bytes. Called by CItem__large_load_data_tables. Loads data files via CDataTableMgr, calls lua functions, decrypts XOR data. Shows error messageboxes on failure. |
| 0x00DFF4B0 | 46 | set_field_0x5c1c_and_notify_window | Stores param_2 into this+0x5C1C, then sends event 0x3C to window DAT_01457860 if non-null. |
| 0x00DFFCB0 | 57 | set_field_0x5210_and_notify_window_271b | Stores param_2 at this+0x5210, then finds window type 0x271B and sends it event 0x17 to refresh. |
| 0x00DFFD20 | 57 | set_field_0x5214_and_notify_window_271b | Stores param_2 at this+0x5214, then finds window type 0x271B and sends it event 0x17 to refresh. |
| 0x00E010B0 | 16 | set_field_0x8134 | Simple setter: stores param_2 at this+0x8134. |
| 0x00E06580 | 2635 | CShop__process_item_event | Complex shop item event handler. Finds existing or creates new rbtree entry for param_2 (item ID). If entry doesn't exist, creates new shop tab entry with item descriptions (handling long names with ellipsis). Limits tabs to 3. Manages item description vectors with string formatting based on item type. Sorts tabs by title. |
| 0x00E08190 | 66 | CItemDB__clear_selling_items_batch | Iterates 5 selling item slots (at this+0x5C68, 0xF8 stride). For each with non-zero quantity at +0x10, clears it via CItemCollection__add_or_update_selling_item(slot, 0). Notifies UI if any items were cleared. |
| 0x00E08290 | 60 | CItemDB__clear_selling_slot_quantities | Clears the quantity fields for 5 selling item slots at offsets +0x5C78/+0x5D70/+0x5E68/+0x5F60/+0x6058 (0xF8 stride) and resets the total counter at +0x6140. |
| 0x00E08300 | 46 | CItemDB__clear_enchant_fields | Clears enchant-related fields in the item DB. Zeros out flag at +0x6EB, two 4-byte + 2-byte + 1-byte fields spanning +0x6EC through +0x6F8. |
| 0x00E08330 | 41 | CItemDB__clear_option_slots | Clears 36 (0x24) option slot entries starting at +0x4B0. Each entry is 7 bytes (1 byte flag + 4 byte value + 2 byte field). Zeroes all entries. |
| 0x00E08360 | 23 | CItemDB__clear_card_slots | Clears the card slot data at +0x5AC (0xFC bytes = 252 bytes, enough for multiple card slot entries) by memset to zero. |
| 0x00E08380 | 67 | CItemDB__clear_stat_bonuses | Clears 36 stat bonus dword fields from +0x420 through +0x4AC. Each is set to 0. These likely represent various item stat bonuses (STR, AGI, VIT, INT, DEX, LUK, ATK, DEF, etc.). |
| 0x00E083D0 | 168 | CItemDB__remove_entries_from_both_maps | Removes an entry from two red-black tree maps (at +0x784 and +0x78C) keyed by (param_3, param_2) pair. Uses lower_bound search on each map. If a matching or greater entry is found, erases and frees the 0x20-byte node. |
| 0x00E2EC10 | 187 | CItemCollection__update_equipment_slots | Updates equipment slots in item collection. Resolves up to 3 slot indices from item location, copies item descriptor into equipment array at stride 0xF8, sets equipped flag at +0x6B78, copies additional item properties. Clears tooltip timer and notifies UI of change. |
| 0x00E2ECD0 | 185 | CItemCollection__update_inventory_slots | Updates inventory slots in item collection. Resolves up to 3 slot indices from item location, copies item descriptor into inventory array at stride 0xF8, sets flag at +0x61C8. Special handling for location 0x8000 (ammo). Clears tooltip timer and notifies UI of change. |
| 0x00E2ED90 | 222 | CItemCollection__insert_item_into_map | Inserts an item into the item collection's std::map by item ID. Uses _Find_lower_bound to locate insertion point. If item ID not found, allocates a 0x14-byte node with the item ID at offset +0x10 and inserts via Insert_node. Map root is at this+0x7F94. |
| 0x00E2F3B0 | 358 | CItemCollection__send_favorite_tab_update | Sends a favorite tab update to the server. Looks up tree node for key=2 in map at this+0x7FAC. If found, clears item data at this+0x61A4, sends 4-byte network packet (0x7F40B11), and reinserts the node if missing. Zeros the node's data fields after send. |
| 0x00E2F520 | 20 | CItemCollection__clear_favorite_slots | Clears 0x3F bytes of favorite slot data starting at this+0x6AC. Simple memset to zero. |
| 0x00E2F540 | 46 | CItemCollection__reset_equipment_items | Resets all 10 equipment item descriptors by calling CItemDesc__reset_all_fields in a loop. Notifies UI of language change afterward. |
| 0x00E2F570 | 46 | CItemCollection__reset_inventory_items | Resets all 10 inventory item descriptors by calling CItemDesc__reset_all_fields in a loop. Notifies UI of language change afterward. Same structure as reset_equipment_items but for inventory array. |
| 0x00E2F6E0 | 36 | CItemCollection__find_favorite_slot_index | Searches 9 favorite slots (stride 7 bytes, starting at this+0x6AD) for a matching item param_2. Returns the slot index (0-8) if found, -1 if not found. |
| 0x00E2FC50 | 548 | CItemCollection__resolve_item_for_slot | Resolves an item for a specific equipment slot. If param_2 is 0, destroys nodes. Otherwise looks up item info, resolves up to 3 slot indices from equip location param_3, and copies item from either normal shop or special shop tab depending on item category. Returns the resolved item structure. |
| 0x00E30720 | 267 | CItemCollection__count_unique_equip_cards | Counts unique card IDs across 10 equipment slots (stride 0xF8, starting at this+0x2B54). Builds a deduplicated list of non-zero card IDs, skipping duplicates. Returns the count of unique cards. |
| 0x00E30830 | 267 | CItemCollection__count_unique_inventory_cards | Counts unique card IDs across 10 inventory slots (stride 0xF8, starting at this+0x17F4). Same algorithm as count_unique_equip_cards but for inventory array. Returns the count of unique cards. |
| 0x00E30940 | 266 | CItemCollection__get_item_sprite_name_hash | Builds a sprite resource name string from the item's name field at this+0x160C, appends a 4-byte suffix from DAT_01129020, and hashes the result via FUN_00dde770. Returns the hash value for sprite lookup. |
| 0x00E31B20 | 138 | CItemCollection__get_equipment_item | Gets an equipment item by slot index. If param_3 is 0xF, returns empty/null item. If param_3 < 10, copies the equipment item from array at this+0x6B68 (stride 0xF8). Otherwise returns empty/null item. |
| 0x00E31BB0 | 175 | CItemCollection__get_inventory_item | Gets an inventory item by slot index. If param_3 is 0xF, searches linked list at this+0x7EC8 for the item. If param_3 < 10, copies from inventory array at this+0x61B8 (stride 0xF8). Otherwise returns empty/null item. |
| 0x00E31C80 | 163 | CItemCollection__get_storage_item | Gets a storage item by index. Reads from dynamic array at this+0x811C. If the array is empty or param_3 exceeds the count (array_size / 0xF8), returns empty/null item. Otherwise copies from the array at stride 0xF8. |
| 0x00E3D390 | 59 | CItemCollection__is_item_equipped_in_any_slot | Checks if an item is currently equipped in any of the 10 equipment slots. Iterates equipment array (stride 0x3E ints, starting at this+0x6B6C) checking both the equip field and an alternate field at offset -0x26C from it. Returns 1 if found, 0 if not or param_2 is 0. |
| 0x00E3D8A0 | 185 | CItemCollection__unequip_item | Unequips an item from equipment slots. Special handling for ammo (location 0x8000) via FUN_00e497f0. For normal equipment, resolves up to 3 slot indices, clears the equipped flag at slot*0xF8+0x6B74, and resets item descriptors. Clears tooltip timer and notifies UI. |
| 0x00E3D960 | 448 | CItemCollection__remove_inventory_item | Removes an item from inventory slots. For ammo (location 0x8000), resolves item name, shows chat message (msg 0xAB) with item tooltip, then clears ammo. For normal items, resolves up to 3 slot indices and resets item descriptors. Clears tooltip timer and notifies UI. |
| 0x00E3E550 | 6616 | CItemInfoMgr__build_item_info_table | Builds item info table for CItemInfoMgr. 6.6K bytes. Inserts item data into RB tree with hints, populates vectors. No callers (likely static initializer or callback). |
| 0x00E42F20 | 5905 | CItemInfoMgr__build_item_info_table_b | Second item info table builder. 5.9K bytes. Same pattern as CItemInfoMgr__build_item_info_table - inserts data into RB tree with hints, populates vectors. No callers (static initializer). |
| 0x00E492D0 | 163 | CItemCollection__set_favorite_item | Sets a favorite item in a slot. If param_2 is 0, clears slot param_3. Otherwise searches existing favorites for param_2, clears it from old slot if found, then places param_2 in slot param_3. Slots are 7 bytes each starting at this+0x6AD. |
| 0x00E494F0 | 728 | CItemDesc__parse_tagged_binary_data | Parses a tagged binary item description format starting with marker 0xFB. Tags 0xFD-0x104 copy data to specific offsets in the output structure: 0xFD=offset 0, 0xFE=offset 4, 0xFF=offset 8, 0x100=string field 1, 0x101=string field 2, 0x102=offset 0x3C, 0x103=offset 0x40, 0x104=offset 0x44. Tag 0xFC terminates parsing. Each tag has a 6-byte header (tag + size) followed by data. Returns total bytes consumed or -1 on error. |
| 0x00E49F40 | 357 | CShop__build_favorite_list_from_slots | Builds a favorites shop item list from an array of slot indices. Clears the categorized storage list, then for each slot index in param_3 (param_2 entries), looks up the shop item by slot, creates a CShopItem copy (0x100 bytes), and inserts it into the doubly-linked favorites list at this+0x1750. |
No function here matches that. Search all 47,061 functions instead.