Back to legacygamers.net
WARPGATE

Game Items

CItemDB, CItemInfo, CItemDesc, CItemCollection, CShop, CMailItem, CInventoryItem, ItemBonus, bit flag accessors

Functions 778Code 261 KBAddresses 0x0042BC80 to 0x00E49F40Group Game Logic
778 functions
AddressSizeNameDescription
0x0042BC8086CItemInfoMgr__static_init_0042bc80Static initializer: calls CSVParser__free_all_line_buffers to initialize CItemInfoMgr CSV state, registers atexit_CItemInfoMgr_dtor for cleanup at shutdown
0x0069BD1015thunk_to_ItemBonus__reg_subspconsumptionThunk forwarding to ItemBonus__reg_subspconsumption. Registers the SubSPConsumption item bonus handler.
0x0069BD2015thunk_to_ItemBonus__reg_SubSPdrainThunk forwarding to ItemBonus__reg_SubSPdrain. Registers the SubSPdrain item bonus handler.
0x0069BD3015thunk_to_ItemBonus__reg_SubSkillDelayThunk forwarding to ItemBonus__reg_SubSkillDelay. Registers the SubSkillDelay item bonus handler.
0x0069BD4015thunk_to_ItemBonus__reg_SubSkillMDamageThunk forwarding to ItemBonus__reg_SubSkillMDamage. Registers the SubSkillMDamage item bonus handler.
0x0069BD5015thunk_to_ItemBonus__reg_SubSkillSPThunk forwarding to ItemBonus__reg_SubSkillSP. Registers the SubSkillSP item bonus handler.
0x0069BD6015thunk_to_ItemBonus__reg_SubSpecificSpellCastTimeThunk forwarding to ItemBonus__reg_SubSpecificSpellCastTime. Registers the SubSpecificSpellCastTime item bonus handler.
0x0069BD7015thunk_to_ItemBonus__reg_SubSpellCastTimeThunk forwarding to ItemBonus__reg_SubSpellCastTime. Registers the SubSpellCastTime item bonus handler.
0x0069BD8015thunk_to_ItemBonus__reg_SubSpellDelayThunk forwarding to ItemBonus__reg_SubSpellDelay. Registers the SubSpellDelay item bonus handler.
0x0069BD9015thunk_to_ItemBonus__reg_AddEXPPercent_KillRaceThunk forwarding to ItemBonus__reg_AddEXPPercent_KillRace. Registers the AddEXPPercent_KillRace item bonus handler.
0x0069BDA015thunk_to_ItemBonus__reg_AddExtParamThunk forwarding to ItemBonus__reg_AddExtParam. Registers the AddExtParam item bonus handler.
0x0069BDB015thunk_to_ItemBonus__reg_AddGuideAttackThunk forwarding to ItemBonus__reg_AddGuideAttack. Registers the AddGuideAttack item bonus handler.
0x0069BDC015thunk_to_ItemBonus__reg_AddHPdrainThunk forwarding to ItemBonus__reg_AddHPdrain. Registers the AddHPdrain item bonus handler.
0x0069BDD015thunk_to_ItemBonus__reg_AddHealModifyPercentThunk forwarding to ItemBonus__reg_AddHealModifyPercent. Registers the AddHealModifyPercent item bonus handler.
0x0069BDE015thunk_to_ItemBonus__reg_AddHealValueThunk forwarding to ItemBonus__reg_AddHealValue. Registers the AddHealValue item bonus handler.
0x0069BDF015thunk_to_ItemBonus__reg_AddIgnore_MRES_RacePercentThunk forwarding to ItemBonus__reg_AddIgnore_MRES_RacePercent. Registers the AddIgnore_MRES_RacePercent item bonus handler.
0x0069BE0015thunk_to_ItemBonus__reg_AddIgnore_RES_RacePercentThunk forwarding to ItemBonus__reg_AddIgnore_RES_RacePercent. Registers the AddIgnore_RES_RacePercent item bonus handler.
0x0069BE1015thunk_to_ItemBonus__reg_AddMDamage_PropertyThunk forwarding to ItemBonus__reg_AddMDamage_Property. Registers the AddMDamage_Property item bonus handler.
0x0069BE2015thunk_to_ItemBonus__reg_AddMDamage_SizeThunk forwarding to ItemBonus__reg_AddMDamage_Size. Registers the AddMDamage_Size item bonus handler.
0x0069BE3015thunk_to_ItemBonus__reg_AddAttrToleraceThunk forwarding to ItemBonus__reg_AddAttrTolerace. Registers the AddAttrTolerace (attribute tolerance) item bonus handler.
0x0069BE4015thunk_to_ItemBonus__reg_AddMdamage_ClassThunk forwarding to ItemBonus__reg_AddMdamage_Class. Registers the AddMdamage_Class item bonus handler.
0x0069BE5015thunk_to_ItemBonus__reg_AddMdamage_RaceThunk forwarding to ItemBonus__reg_AddMdamage_Race. Registers the AddMdamage_Race item bonus handler.
0x0069BE6015thunk_to_ItemBonus__reg_AddMeleeAttackDamageThunk forwarding to ItemBonus__reg_AddMeleeAttackDamage. Registers the AddMeleeAttackDamage item bonus handler.
0x0069BE7015thunk_to_ItemBonus__reg_AddMeleeAttackReflectThunk forwarding to ItemBonus__reg_AddMeleeAttackReflect. Registers the AddMeleeAttackReflect item bonus handler.
0x0069BE8015thunk_to_ItemBonus__reg_AddNeverknockbackThunk forwarding to ItemBonus__reg_AddNeverknockback. Registers the AddNeverknockback item bonus handler.
0x0069BE9015thunk_to_ItemBonus__reg_AddRaceToleraceThunk forwarding to ItemBonus__reg_AddRaceTolerace. Registers the AddRaceTolerace (race tolerance) item bonus handler.
0x0069BEA015thunk_to_ItemBonus__reg_AddRangeAttackDamageThunk forwarding to ItemBonus__reg_AddRangeAttackDamage. Registers the AddRangeAttackDamage item bonus handler.
0x0069BEB015thunk_to_ItemBonus__reg_AddReceiveItem_EquipThunk forwarding to ItemBonus__reg_AddReceiveItem_Equip. Registers the AddReceiveItem_Equip item bonus handler.
0x0069BEC015thunk_to_ItemBonus__reg_AddReflectMagicThunk forwarding to ItemBonus__reg_AddReflectMagic. Registers the AddReflectMagic item bonus handler.
0x0069BED015thunk_to_ItemBonus__reg_AddReflectToleraceThunk forwarding to ItemBonus__reg_AddReflectTolerace. Registers the AddReflectTolerace (reflect tolerance) item bonus handler.
0x0069BEE015thunk_to_ItemBonus__reg_addattrtoleraceThunk forwarding to ItemBonus__reg_addattrtolerace. Registers the addattrtolerace (attribute tolerance, lowercase variant) item bonus handler.
0x0069BEF015thunk_to_ItemBonus__reg_AddSFCTEquipAmountThunk forwarding to ItemBonus__reg_AddSFCTEquipAmount. Registers the AddSFCTEquipAmount item bonus handler.
0x0069BF0015thunk_to_ItemBonus__reg_AddSFCTEquipPermillThunk forwarding to ItemBonus__reg_AddSFCTEquipPermill. Registers the AddSFCTEquipPermill item bonus handler.
0x0069BF1015thunk_to_ItemBonus__reg_AddSPconsumptionThunk forwarding to ItemBonus__reg_AddSPconsumption. Registers the AddSPconsumption item bonus handler.
0x0069BF2015thunk_to_ItemBonus__reg_addspconsumptionThunk forwarding to ItemBonus__reg_addspconsumption. Registers the addspconsumption item bonus handler (lowercase variant).
0x0069BF3015thunk_to_ItemBonus__reg_AddSPdrainThunk forwarding to ItemBonus__reg_AddSPdrain. Registers the AddSPdrain item bonus handler.
0x0069BF4015thunk_to_ItemBonus__reg_AddSkillDelayThunk forwarding to ItemBonus__reg_AddSkillDelay. Registers the AddSkillDelay item bonus handler.
0x0069BF5015thunk_to_ItemBonus__reg_AddSkillMDamageThunk forwarding to ItemBonus__reg_AddSkillMDamage. Registers the AddSkillMDamage item bonus handler.
0x0069BF6015thunk_to_ItemBonus__reg_AddSkillSPThunk forwarding to ItemBonus__reg_AddSkillSP. Registers the AddSkillSP item bonus handler.
0x0069BF7015thunk_to_ItemBonus__reg_AddSpecificSpellCastTimeThunk forwarding to ItemBonus__reg_AddSpecificSpellCastTime. Registers the AddSpecificSpellCastTime item bonus handler.
0x0069BF8015thunk_to_ItemBonus__reg_AddSpellCastTimeThunk forwarding to ItemBonus__reg_AddSpellCastTime. Registers the AddSpellCastTime item bonus handler.
0x0069BF9015thunk_to_ItemBonus__reg_AddBowAttackDamageThunk forwarding to ItemBonus__reg_AddBowAttackDamage.
0x0069BFA015thunk_to_ItemBonus__reg_AddSpellDelayThunk forwarding to ItemBonus__reg_AddSpellDelay.
0x0069BFB015thunk_to_ItemBonus__reg_BodyAttributeThunk forwarding to ItemBonus__reg_BodyAttribute.
0x0069BFC015thunk_to_ItemBonus__reg_ClairvoyanceThunk forwarding to ItemBonus__reg_Clairvoyance.
0x0069BFD015thunk_to_ItemBonus__reg_ClassAddDamageThunk forwarding to ItemBonus__reg_ClassAddDamage.
0x0069BFE015thunk_to_ItemBonus__reg_ClassSubDamageThunk forwarding to ItemBonus__reg_ClassSubDamage.
0x0069BFF015thunk_to_ItemBonus__reg_ConditionThunk forwarding to ItemBonus__reg_Condition.
0x0069C00015thunk_to_ItemBonus__reg_DisableSkillThunk forwarding to ItemBonus__reg_DisableSkill.
0x0069C01015thunk_to_ItemBonus__reg_EnableSkillThunk forwarding to ItemBonus__reg_EnableSkill.
0x0069C02015thunk_to_ItemBonus__reg_IndestructibleArmorThunk forwarding to ItemBonus__reg_IndestructibleArmor.
0x0069C03015thunk_to_ItemBonus__reg_IndestructibleWeaponThunk forwarding to ItemBonus__reg_IndestructibleWeapon.
0x0069C04015thunk_to_ItemBonus__reg_AddCRIPercent_RaceThunk forwarding to ItemBonus__reg_AddCRIPercent_Race.
0x0069C05015thunk_to_ItemBonus__reg_MagicimmuneThunk forwarding to ItemBonus__reg_Magicimmune.
0x0069C06015thunk_to_ItemBonus__reg_NoDispellThunk forwarding to ItemBonus__reg_NoDispell.
0x0069C07015thunk_to_ItemBonus__reg_NoJamstoneThunk forwarding to ItemBonus__reg_NoJamstone.
0x0069C08015thunk_to_ItemBonus__reg_NoMadogearfuelThunk forwarding to ItemBonus__reg_NoMadogearfuel.
0x0069C09015thunk_to_ItemBonus__reg_PerfectDamageThunk forwarding to ItemBonus__reg_PerfectDamage.
0x0069C0A015thunk_to_ItemBonus__reg_RaceAddDamageThunk forwarding to ItemBonus__reg_RaceAddDamage.
0x0069C0B015thunk_to_ItemBonus__reg_RaceAddDamageSelfThunk forwarding to ItemBonus__reg_RaceAddDamageSelf.
0x0069C0C015thunk_to_ItemBonus__reg_RaceSubDamageThunk forwarding to ItemBonus__reg_RaceSubDamage.
0x0069C0D015thunk_to_ItemBonus__reg_RaceSubDamageSelfThunk forwarding to ItemBonus__reg_RaceSubDamageSelf.
0x0069C0E015thunk_to_ItemBonus__reg_ReincarnationThunk forwarding to ItemBonus__reg_Reincarnation.
0x0069C0F015thunk_to_ItemBonus__reg_AddDamage_CRIThunk forwarding to ItemBonus__reg_AddDamage_CRI.
0x0069C10015thunk_to_ItemBonus__reg_SetIgnoreDEFClassThunk forwarding to ItemBonus__reg_SetIgnoreDEFClass.
0x0069C11015thunk_to_ItemBonus__reg_SetIgnoreDEFRaceThunk forwarding to ItemBonus__reg_SetIgnoreDEFRace.
0x0069C12015thunk_to_ItemBonus__reg_SetIgnoreDefClass_PercentThunk forwarding to ItemBonus__reg_SetIgnoreDefClass_Percent.
0x0069C13015thunk_to_ItemBonus__reg_SetIgnoreDefRace_PercentThunk forwarding to ItemBonus__reg_SetIgnoreDefRace_Percent.
0x0069C14015thunk_to_ItemBonus__reg_SetIgnoreMdefClassThunk forwarding to ItemBonus__reg_SetIgnoreMdefClass.
0x0069C15015thunk_to_ItemBonus__reg_SetIgnoreMdefRaceThunk forwarding to ItemBonus__reg_SetIgnoreMdefRace.
0x0069C16015thunk_to_ItemBonus__reg_SetInvestigateThunk forwarding to ItemBonus__reg_SetInvestigate.
0x0069C17015thunk_to_ItemBonus__reg_SplashAttackThunk forwarding to ItemBonus__reg_SplashAttack.
0x0069C18015thunk_to_ItemBonus__reg_SubAttrToleraceThunk forwarding to ItemBonus__reg_SubAttrTolerace.
0x0069C19015thunk_to_ItemBonus__reg_subattrtoleraceThunk forwarding to ItemBonus__reg_subattrtolerace (lowercase variant).
0x0069C1A015thunk_to_ItemBonus__reg_AddDamage_HITThunk forwarding to ItemBonus__reg_AddDamage_HIT.
0x0069C1B015thunk_to_ItemBonus__reg_SubBowAttackDamageThunk forwarding to ItemBonus__reg_SubBowAttackDamage.
0x0069C1C015thunk_to_ItemBonus__reg_SubCRIPercent_RaceThunk forwarding to ItemBonus__reg_SubCRIPercent_Race.
0x0069C1D015thunk_to_ItemBonus__reg_SubDamage_CRIThunk forwarding to ItemBonus__reg_SubDamage_CRI.
0x0069C1E015thunk_to_ItemBonus__reg_SubDamage_HITThunk forwarding to ItemBonus__reg_SubDamage_HIT.
0x0069C1F015thunk_to_ItemBonus__reg_SubDamage_PropertyThunk forwarding to ItemBonus__reg_SubDamage_Property.
0x0069C20015thunk_to_ItemBonus__reg_SubDamage_SKIDThunk forwarding to ItemBonus__reg_SubDamage_SKID.
0x0069C21015thunk_to_ItemBonus__reg_SubDamage_SizeThunk forwarding to ItemBonus__reg_SubDamage_Size.
0x0069C22015thunk_to_ItemBonus__reg_SubEXPPercent_KillRaceThunk forwarding to ItemBonus__reg_SubEXPPercent_KillRace.
0x0069C23015thunk_to_ItemBonus__reg_SubExtParamThunk forwarding to ItemBonus__reg_SubExtParam.
0x0069C24015thunk_to_ItemBonus__reg_SubGuideAttackThunk forwarding to ItemBonus__reg_SubGuideAttack.
0x0069C25015thunk_to_ItemBonus__reg_AddDamage_PropertyThunk forwarding to ItemBonus__reg_AddDamage_Property.
0x0069C26015thunk_to_ItemBonus__reg_SubHPdrainThunk forwarding to ItemBonus__reg_SubHPdrain.
0x0069C27015thunk_to_ItemBonus__reg_SubHealModifyPercentThunk forwarding to ItemBonus__reg_SubHealModifyPercent.
0x0069C28015thunk_to_ItemBonus__reg_SubHealValueThunk forwarding to ItemBonus__reg_SubHealValue.
0x0069C29015thunk_to_ItemBonus__reg_SubIgnore_MRES_RacePercentThunk forwarding to ItemBonus__reg_SubIgnore_MRES_RacePercent.
0x0069C2A015thunk_to_ItemBonus__reg_SubIgnore_RES_RacePercentThunk forwarding to ItemBonus__reg_SubIgnore_RES_RacePercent.
0x0069C2B015thunk_to_ItemBonus__reg_SubMDamage_PropertyThunk forwarding to ItemBonus__reg_SubMDamage_Property.
0x0069C2C015thunk_to_ItemBonus__reg_SubMDamage_SizeThunk forwarding to ItemBonus__reg_SubMDamage_Size.
0x0069C2D015thunk_to_ItemBonus__reg_SubMdamage_ClassThunk forwarding to ItemBonus__reg_SubMdamage_Class.
0x0069C2E015thunk_to_ItemBonus__reg_SubMdamage_RaceThunk forwarding to ItemBonus__reg_SubMdamage_Race.
0x0069C2F015thunk_to_ItemBonus__reg_SubMeleeAttackDamageThunk forwarding to ItemBonus__reg_SubMeleeAttackDamage.
0x0069C30015thunk_to_ItemBonus__reg_AddDamage_SKIDThunk forwarding to ItemBonus__reg_AddDamage_SKID.
0x0069C31015thunk_to_ItemBonus__reg_SubMeleeAttackReflectThunk forwarding to ItemBonus__reg_SubMeleeAttackReflect.
0x0069C32015thunk_to_ItemBonus__reg_SubNeverknockbackThunk forwarding to ItemBonus__reg_SubNeverknockback.
0x0069C33015thunk_to_ItemBonus__reg_SubRaceToleraceThunk forwarding to ItemBonus__reg_SubRaceTolerace.
0x0069C34015thunk_to_ItemBonus__reg_SubRangeAttackDamageThunk forwarding to ItemBonus__reg_SubRangeAttackDamage.
0x0069C35015thunk_to_ItemBonus__reg_SubReceiveItem_EquipThunk forwarding to ItemBonus__reg_SubReceiveItem_Equip.
0x0069C36015thunk_to_ItemBonus__reg_SubReflectMagicThunk forwarding to ItemBonus__reg_SubReflectMagic.
0x0069C37015thunk_to_ItemBonus__reg_SubReflectToleraceThunk forwarding to ItemBonus__reg_SubReflectTolerace.
0x0069C38015thunk_to_ItemBonus__reg_SubSFCTEquipAmountThunk forwarding to ItemBonus__reg_SubSFCTEquipAmount.
0x0069C39015thunk_to_ItemBonus__reg_SubSFCTEquipPermillThunk forwarding to ItemBonus__reg_SubSFCTEquipPermill.
0x0069C3B015thunk_to_ItemBonus__reg_AddDamage_SizeThunk forwarding to ItemBonus__reg_AddDamage_Size.
0x006A1AA01287ItemBonus__ctorItemBonus 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.
0x006A1FB0435ItemBonus__move_ctorItemBonus move constructor: copies vtable and lua fields, then swaps hashmap/vector internals from source object. Initializes empty containers first, then swaps with source.
0x006A4A0073ItemBonus__destroy_umap_14h_nodesDestroys unordered_map nodes with 0x14-byte entries and frees sentinel
0x006A4A5073ItemBonus__destroy_umap_2Ch_nodes_ADestroys unordered_map nodes with 0x2C-byte entries and frees sentinel
0x006A4AA0103ItemBonus__free_linked_list_10hWalks linked list freeing 0x10-byte nodes, then frees sentinel
0x006A4B1073ItemBonus__destroy_umap_2Ch_nodes_BDestroys unordered_map nodes with 0x2C-byte entries via variant B
0x006A4B60103ItemBonus__free_linked_list_10h_BWalks linked list freeing 0x10-byte nodes via variant B
0x006A4BD073ItemBonus__destroy_umap_2Ch_nodes_CDestroys unordered_map nodes with 0x2C-byte entries via variant C
0x006A4C2073ItemBonus__destroy_umap_2Ch_nodes_DDestroys unordered_map nodes with 0x2C-byte entries via variant D
0x006A4C70103ItemBonus__destroy_list_0x18Walks linked list freeing 0x18-byte nodes, then frees sentinel
0x006A4CE065ItemBonus__dtor_wrapper_40c0SEH-wrapped destructor delegate to 006a40c0
0x006A4D3087ItemBonus__dtor_json_reader_2ChDestroys JsonReader 0x2C-byte node at member offset+4
0x006A4D9087ItemBonus__dtor_json_reader_34hDestroys JsonReader 0x34-byte (52-byte) node at member offset+4 via CFmt__destroy_tree_52byte_nodes
0x006A4DF066ItemBonus__dtor_enchant_treeDestroys enchantment tree via Ench__ui_0068dd20
0x006A4E4068ItemBonus__dtor_stringSEH-wrapped STL string destructor
0x006A4E90116ItemBonus__free_linked_list_0ChWalks linked list at offset+4 freeing 0xC-byte nodes
0x006A4F1080ItemBonus__dtor_delegate_2980SEH-wrapped destructor delegate to 006a2980 with offset+4 param
0x006A4F60115ItemBonus__dtor_umap_at_offset8_2ChCalls 006a37f0 then destroys 0x2C-byte umap at member offset+8
0x006A4FE080ItemBonus__dtor_delegate_2ea0SEH-wrapped destructor delegate to 006a2ea0 with offset+4 param
0x006A5030115ItemBonus__dtor_umap_at_offset8_2Ch_BCalls 006a35b0 then destroys 0x2C-byte umap at member offset+8
0x006A50B065ItemBonus__dtor_delegate_4210SEH-wrapped destructor delegate to 006a4210
0x006A510065ItemBonus__dtor_delegate_2860SEH-wrapped destructor delegate to 006a2860
0x006A515065ItemBonus__dtor_delegate_28f0SEH-wrapped destructor delegate to 006a28f0
0x006A51A065ItemBonus__dtor_delegate_2980_BSEH-wrapped destructor delegate to 006a2980
0x006A51F065ItemBonus__dtor_delegate_2a10SEH-wrapped destructor delegate to 006a2a10
0x006A524065ItemBonus__dtor_delegate_2aa0SEH-wrapped destructor delegate to 006a2aa0
0x006A529065ItemBonus__dtor_delegate_2b30SEH-wrapped destructor delegate to 006a2b30
0x006A52E065ItemBonus__dtor_delegate_2bc0SEH-wrapped destructor delegate to 006a2bc0
0x006A5330102ItemBonus__dtor_umap_50h_at_offset4Calls 006a3490 then destroys 0x50-byte umap at offset+4
0x006A53A0102ItemBonus__dtor_umap_14h_at_offset4Calls 006a3520 then destroys 0x14-byte umap at offset+4
0x006A5410102ItemBonus__dtor_umap_2Ch_at_offset4Calls 006a35b0 then destroys 0x2C-byte umap at offset+4
0x006A548065ItemBonus__dtor_delegate_2da0SEH-wrapped destructor delegate to 006a2da0
0x006A54D0102ItemBonus__dtor_umap_2Ch_at_offset4_BCalls 006a36d0 then destroys 0x2C-byte umap at offset+4
0x006A554065ItemBonus__dtor_delegate_2ea0_BSEH-wrapped destructor delegate to 006a2ea0
0x006A5590102ItemBonus__dtor_umap_2Ch_at_offset4_CCalls 006a37f0 then destroys 0x2C-byte umap at offset+4
0x006A5600102ItemBonus__dtor_umap_2Ch_at_offset4_DCalls 006a3880 then destroys 0x2C-byte umap at offset+4
0x006A567065ItemBonus__dtor_delegate_3010SEH-wrapped destructor delegate to 006a3010
0x006A56C0909ItemBonus__destructorMain destructor: clears all bonus maps, lists, observers, and enchant trees
0x006A5A50106ItemBonus__dtor_pair_2860_2da0Sequentially calls destructors 006a2860 then 006a2da0
0x006A5AD0190ItemBonus__clear_hashmap_10h_AClears hashmap: rehashes if sparse, else frees all 0x10-byte nodes
0x006A5BA0190ItemBonus__clear_hashmap_10h_BClears hashmap: rehashes if sparse, else frees all 0x10-byte nodes (variant B)
0x006A5C70190ItemBonus__clear_hashmap_10h_CClears hashmap: rehashes if sparse, else frees all 0x10-byte nodes (variant C)
0x006A5D70103ItemBonus__clear_hashmap_50hClears hashmap with 0x50-byte node umap destructor
0x006A5DE0103ItemBonus__clear_hashmap_14hClears hashmap with 0x14-byte node umap destructor
0x006A5E50103ItemBonus__clear_hashmap_2ChClears hashmap with 0x2C-byte node umap destructor
0x006A5EC0145ItemBonus__clear_hashmap_10h_sehSEH-wrapped hashmap clear, frees 0x10-byte nodes and resets buckets
0x006A5F6075ItemBonus__clear_hashmap_2Ch_simpleClears hashmap with 0x2C-byte node destructor, no SEH wrapper
0x006A5FB0145ItemBonus__clear_hashmap_10h_seh_BSEH-wrapped hashmap clear, frees 0x10-byte nodes (variant B)
0x006A605075ItemBonus__clear_hashmap_2Ch_simple_BClears hashmap with 0x2C-byte node destructor (variant B)
0x006A60A075ItemBonus__clear_hashmap_2Ch_simple_CClears hashmap with 0x2C-byte node destructor (variant C)
0x006A6260353ItemBonus__uset_insert_4byte_keyInserts 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.
0x006A6490179ItemBonus__reg_subspconsumptionRegisters "subspconsumption" bonus with 2 int params
0x006A6550179ItemBonus__reg_SubSPdrainRegisters "SubSPdrain" bonus with 2 int params
0x006A6610179ItemBonus__reg_SubSkillDelayRegisters "SubSkillDelay" bonus with skill_id+value params
0x006A66D0179ItemBonus__reg_SubSkillMDamageRegisters "SubSkillMDamage" bonus with skill_id+value params
0x006A6790179ItemBonus__reg_SubSkillSPRegisters "SubSkillSP" bonus with skill_id+value params
0x006A6850179ItemBonus__reg_SubSpecificSpellCastTimeRegisters "SubSpecificSpellCastTime" bonus with skill_id+value params
0x006A6910179ItemBonus__reg_SubSpellCastTimeRegisters "SubSpellCastTime" bonus with 1 int param
0x006A69D0179ItemBonus__reg_SubSpellDelayRegisters "SubSpellDelay" bonus with 1 int param
0x006A6A90179ItemBonus__reg_AddEXPPercent_KillRaceRegisters "AddEXPPercent_KillRace" bonus with race+value params
0x006A6B50179ItemBonus__reg_AddExtParamRegisters "AddExtParam" bonus with 3 params
0x006A6C10179ItemBonus__reg_AddGuideAttackRegisters "AddGuideAttack" bonus with 1 int param
0x006A6CD0179ItemBonus__reg_AddHPdrainRegisters "AddHPdrain" bonus with 2 int params
0x006A6D90179ItemBonus__reg_AddHealModifyPercentRegisters "AddHealModifyPercent" bonus with 1 int param
0x006A6E50179ItemBonus__reg_AddHealValueRegisters "AddHealValue" bonus with 1 int param
0x006A6F10179ItemBonus__reg_AddIgnore_MRES_RacePercentRegisters "AddIgnore_MRES_RacePercent" bonus with race+value params
0x006A6FD0179ItemBonus__reg_AddIgnore_RES_RacePercentRegisters "AddIgnore_RES_RacePercent" bonus with race+value params
0x006A7090179ItemBonus__reg_AddMDamage_PropertyRegisters "AddMDamage_Property" bonus with 3 params
0x006A7150179ItemBonus__reg_AddMDamage_SizeRegisters "AddMDamage_Size" bonus with 3 params
0x006A7210179ItemBonus__reg_AddAttrToleraceRegisters "AddAttrTolerace" bonus with element+value params
0x006A72D0179ItemBonus__reg_AddMdamage_ClassRegisters "AddMdamage_Class" bonus with class+value params
0x006A7390179ItemBonus__reg_AddMdamage_RaceRegisters "AddMdamage_Race" bonus with race+value params
0x006A7450179ItemBonus__reg_AddMeleeAttackDamageRegisters "AddMeleeAttackDamage" bonus with race+value params
0x006A7510179ItemBonus__reg_AddMeleeAttackReflectRegisters "AddMeleeAttackReflect" bonus with 1 int param
0x006A75D0179ItemBonus__reg_AddNeverknockbackRegisters "AddNeverknockback" bonus with 1 int param
0x006A7690179ItemBonus__reg_AddRaceToleraceRegisters "AddRaceTolerace" bonus with race+value params
0x006A7750179ItemBonus__reg_AddRangeAttackDamageRegisters "AddRangeAttackDamage" bonus with race+value params
0x006A7810179ItemBonus__reg_AddReceiveItem_EquipRegisters "AddReceiveItem_Equip" bonus with 1 int param
0x006A78D0179ItemBonus__reg_AddReflectMagicRegisters "AddReflectMagic" bonus with 1 int param
0x006A7990179ItemBonus__reg_AddReflectToleraceRegisters "AddReflectTolerace" bonus with 1 int param
0x006A7A50179ItemBonus__reg_addattrtoleraceRegisters "addattrtolerace" bonus with 3 params (lowercase variant)
0x006A7B10179ItemBonus__reg_AddSFCTEquipAmountRegisters "AddSFCTEquipAmount" bonus with skill+type+amount params
0x006A7BD0179ItemBonus__reg_AddSFCTEquipPermillRegisters "AddSFCTEquipPermill" bonus with skill+type+permill params
0x006A7C90179ItemBonus__reg_AddSPconsumptionRegisters "AddSPconsumption" bonus with 1 int param
0x006A7D50179ItemBonus__reg_addspconsumptionRegisters "addspconsumption" bonus with 2 int params (lowercase variant)
0x006A7E10179ItemBonus__reg_AddSPdrainRegisters "AddSPdrain" bonus with 2 int params
0x006A7ED0179ItemBonus__reg_AddSkillDelayRegisters "AddSkillDelay" bonus with skill_id+value params
0x006A7F90179ItemBonus__reg_AddSkillMDamageRegisters "AddSkillMDamage" bonus with skill_id+value params
0x006A8050179ItemBonus__reg_AddSkillSPRegisters "AddSkillSP" bonus with skill_id+value params
0x006A8110179ItemBonus__reg_AddSpecificSpellCastTimeRegisters "AddSpecificSpellCastTime" bonus with skill_id+value params
0x006A81D0179ItemBonus__reg_AddSpellCastTimeRegisters "AddSpellCastTime" bonus with 1 int param
0x006A8290179ItemBonus__reg_AddBowAttackDamageRegisters "AddBowAttackDamage" bonus with race+value params
0x006A8350179ItemBonus__reg_AddSpellDelayRegisters "AddSpellDelay" bonus with 1 int param
0x006A8410179ItemBonus__reg_BodyAttributeRegisters "BodyAttribute" bonus with 1 flag param
0x006A84D0179ItemBonus__reg_ClairvoyanceRegisters "Clairvoyance" bonus with 1 int param
0x006A8590179ItemBonus__reg_ClassAddDamageRegisters "ClassAddDamage" bonus with 3 params
0x006A8650179ItemBonus__reg_ClassSubDamageRegisters "ClassSubDamage" bonus with 3 params
0x006A8710179ItemBonus__reg_ConditionRegisters "Condition" bonus with 3 flag params
0x006A87D0179ItemBonus__reg_DisableSkillRegisters "DisableSkill" bonus with skill_id+value params
0x006A8890179ItemBonus__reg_EnableSkillRegisters "EnableSkill" bonus with skill_id+value params
0x006A8950179ItemBonus__reg_IndestructibleArmorRegisters "IndestructibleArmor" bonus with 1 int param
0x006A8A10179ItemBonus__reg_IndestructibleWeaponRegisters "IndestructibleWeapon" bonus with 1 int param
0x006A8AD0179ItemBonus__reg_AddCRIPercent_RaceRegisters "AddCRIPercent_Race" bonus with race+value params
0x006A8B90179ItemBonus__reg_MagicimmuneRegisters "Magicimmune" bonus with 1 int param
0x006A8C50179ItemBonus__reg_NoDispellRegisters "NoDispell" bonus with 1 int param
0x006A8D10179ItemBonus__reg_NoJamstoneRegisters "NoJamstone" bonus with 1 int param
0x006A8DD0179ItemBonus__reg_NoMadogearfuelRegisters "NoMadogearfuel" bonus with 1 int param
0x006A8E90179ItemBonus__reg_PerfectDamageRegisters "PerfectDamage" bonus with 1 int param
0x006A8F50179ItemBonus__reg_RaceAddDamageRegisters "RaceAddDamage" bonus with race+value params
0x006A9010179ItemBonus__reg_RaceAddDamageSelfRegisters "RaceAddDamageSelf" bonus with race+value params
0x006A90D0179ItemBonus__reg_RaceSubDamageRegisters "RaceSubDamage" bonus with race+value params
0x006A9190179ItemBonus__reg_RaceSubDamageSelfRegisters "RaceSubDamageSelf" bonus with race+value params
0x006A9250179ItemBonus__reg_ReincarnationRegisters "Reincarnation" bonus with 1 int param
0x006A9310179ItemBonus__reg_AddDamage_CRIRegisters "AddDamage_CRI" bonus with race+value params
0x006A93D0179ItemBonus__reg_SetIgnoreDEFClassRegisters "SetIgnoreDEFClass" bonus with 1 flag param
0x006A9490179ItemBonus__reg_SetIgnoreDEFRaceRegisters "SetIgnoreDEFRace" bonus with 1 flag param
0x006A9550179ItemBonus__reg_SetIgnoreDefClass_PercentRegisters "SetIgnoreDefClass_Percent" bonus with class+value params
0x006A9610179ItemBonus__reg_SetIgnoreDefRace_PercentRegisters "SetIgnoreDefRace_Percent" bonus with race+value params
0x006A96D0179ItemBonus__reg_SetIgnoreMdefClassRegisters "SetIgnoreMdefClass" bonus with class+value params
0x006A9790179ItemBonus__reg_SetIgnoreMdefRaceRegisters "SetIgnoreMdefRace" bonus with race+value params
0x006A9850179ItemBonus__reg_SetInvestigateRegisters "SetInvestigate" bonus with 0 params (flag only)
0x006A9910179ItemBonus__reg_SplashAttackRegisters "SplashAttack" bonus with 1 int param
0x006A99D0179ItemBonus__reg_SubAttrToleraceRegisters "SubAttrTolerace" bonus with element+value params
0x006A9A90179ItemBonus__reg_subattrtoleraceRegisters "subattrtolerace" bonus with 3 params (lowercase variant)
0x006A9B50179ItemBonus__reg_AddDamage_HITRegisters "AddDamage_HIT" bonus with race+value params
0x006A9C10179ItemBonus__reg_SubBowAttackDamageRegisters "SubBowAttackDamage" bonus with race+value params
0x006A9CD0179ItemBonus__reg_SubCRIPercent_RaceRegisters "SubCRIPercent_Race" bonus with race+value params
0x006A9D90179ItemBonus__reg_SubDamage_CRIRegisters "SubDamage_CRI" bonus with race+value params
0x006A9E50179ItemBonus__reg_SubDamage_HITRegisters "SubDamage_HIT" bonus with race+value params
0x006A9F10179ItemBonus__reg_SubDamage_PropertyRegisters "SubDamage_Property" bonus with 3 params
0x006A9FD0179ItemBonus__reg_SubDamage_SKIDRegisters "SubDamage_SKID" bonus with skill+type+value params
0x006AA090179ItemBonus__reg_SubDamage_SizeRegisters "SubDamage_Size" bonus with 3 params
0x006AA150179ItemBonus__reg_SubEXPPercent_KillRaceRegisters "SubEXPPercent_KillRace" bonus with race+value params
0x006AA210179ItemBonus__reg_SubExtParamRegisters "SubExtParam" bonus with 3 params
0x006AA2D0179ItemBonus__reg_SubGuideAttackRegisters "SubGuideAttack" bonus with 1 int param
0x006AA390179ItemBonus__reg_AddDamage_PropertyRegisters "AddDamage_Property" bonus with 3 params
0x006AA450179ItemBonus__reg_SubHPdrainRegisters "SubHPdrain" bonus with 2 int params
0x006AA510179ItemBonus__reg_SubHealModifyPercentRegisters "SubHealModifyPercent" bonus with 1 int param
0x006AA5D0179ItemBonus__reg_SubHealValueRegisters "SubHealValue" bonus with 1 int param
0x006AA690179ItemBonus__reg_SubIgnore_MRES_RacePercentRegisters "SubIgnore_MRES_RacePercent" bonus with race+value params
0x006AA750179ItemBonus__reg_SubIgnore_RES_RacePercentRegisters "SubIgnore_RES_RacePercent" bonus with race+value params
0x006AA810179ItemBonus__reg_SubMDamage_PropertyRegisters "SubMDamage_Property" bonus with 3 params
0x006AA8D0179ItemBonus__reg_SubMDamage_SizeRegisters "SubMDamage_Size" bonus with 3 params
0x006AA990179ItemBonus__reg_SubMdamage_ClassRegisters "SubMdamage_Class" bonus with class+value params
0x006AAA50179ItemBonus__reg_SubMdamage_RaceRegisters "SubMdamage_Race" bonus with race+value params
0x006AAB10179ItemBonus__reg_SubMeleeAttackDamageRegisters "SubMeleeAttackDamage" bonus with race+value params
0x006AABD0179ItemBonus__reg_AddDamage_SKIDRegisters "AddDamage_SKID" bonus with skill+type+value params
0x006AAC90179ItemBonus__reg_SubMeleeAttackReflectRegisters "SubMeleeAttackReflect" bonus with 1 int param
0x006AAD50179ItemBonus__reg_SubNeverknockbackRegisters "SubNeverknockback" bonus with 0 params (flag removal)
0x006AAE10179ItemBonus__reg_SubRaceToleraceRegisters "SubRaceTolerace" bonus with race+value params
0x006AAED0179ItemBonus__reg_SubRangeAttackDamageRegisters "SubRangeAttackDamage" bonus with race+value params
0x006AAF90179ItemBonus__reg_SubReceiveItem_EquipRegisters "SubReceiveItem_Equip" bonus with 1 int param
0x006AB050179ItemBonus__reg_SubReflectMagicRegisters "SubReflectMagic" bonus with 1 int param
0x006AB110179ItemBonus__reg_SubReflectToleraceRegisters "SubReflectTolerace" bonus with 1 int param
0x006AB1D0179ItemBonus__reg_SubSFCTEquipAmountRegisters "SubSFCTEquipAmount" bonus with skill+type+amount params
0x006AB290179ItemBonus__reg_SubSFCTEquipPermillRegisters "SubSFCTEquipPermill" bonus with skill+type+permill params
0x006AB350179ItemBonus__reg_SubSPconsumptionRegisters "SubSPconsumption" bonus with 1 int param
0x006AB410179ItemBonus__reg_AddDamage_SizeRegisters "AddDamage_Size" bonus with 3 params
0x006AB4D030ItemBonus__scalar_deleting_dtor_smallScalar deleting destructor for 4-byte object
0x006AB4F038ItemBonus__scalar_deleting_dtorScalar deleting destructor: calls main dtor then frees 0x1FC-byte object
0x006AB520752ItemBonus__register_bonus_handlerRegisters a named bonus handler with param count/type descriptors into the bonus map
0x006AB8101654ItemBonus__apply_bonus_valuesApplies bonus parameter values to the active item bonus computation context
0x006ABE90236ItemBonus__reset_all_active_bonusesResets enchant tree, clears dirty flag, destroys all 3 observer lists
0x006ABF80792ItemBonus__remove_bonus_valuesRemoves bonus parameter values from the active item bonus computation context
0x006AC2A0125ItemBonus__find_bonus_by_nameLooks up bonus entry by 4-byte name hash in offset+0x138 map
0x006AC320142ItemBonus__lookup_3level_map3-level nested hashmap lookup using 3 int keys in offset+0x1E0 map
0x006AC3C0113ItemBonus__find_bonus_value_28hLooks up bonus value by 4-byte name hash in offset+0x28 map
0x006AC440122ItemBonus__find_bonus_entry_98hLooks up bonus entry by 4-byte name hash in offset+0x98 map, returns node+0xC
0x006AC4C0214ItemBonus__equip_location_to_bitmaskConverts equip location index (1-0x23) to bitmask for slot flags
0x006AC6104ItemBonus__get_base_ptr_plus4Returns this+4 pointer offset
0x006AC620142ItemBonus__get_job_group_from_skill_idMaps skill ID to job group (1-6, 0x18-0x19, or special class ranges 0xFA2+)
0x006AC89071ItemBonus__normalize_skill_id_with_4thNormalizes skill ID aliases to base form, handles 4th job class mapping
0x006ACCB071ItemBonus__normalize_skill_id_no_4thNormalizes skill ID aliases to base form, without 4th job class mapping
0x006AD0E0954ItemBonus__process_bonus_scriptParses and processes item bonus script text into bonus handler calls
0x006AD4A083ItemBonus__find_bonus_by_json_keyLooks up bonus entry by JSON reader key hash in offset+0x158 map
0x006AD500122ItemBonus__find_bonus_value_178hLooks up bonus value by 4-byte name hash in offset+0x178 map
0x006AD580272ItemBonus__lookup_3level_bonus_value3-level nested lookup: int key -> string key -> bounded uint key, returns float as int
0x006AD690429ItemBonus__bitmask_to_equip_locationConverts equip slot bitmask back to location index (1-0x23)
0x006AD880122ItemBonus__find_bonus_entry_118hLooks up bonus entry by 4-byte name hash in offset+0x118 map, returns node+0xC
0x006AD91010253ItemBonus__constructorMain constructor: initializes all bonus maps, registers all 80+ bonus handlers
0x006B012070ItemBonus__check_range_in_sorted_setChecks if param range falls within a sorted set entry's [lo,hi] bounds
0x006B01701057ItemBonus__compute_equip_bonusesComputes aggregate bonus values for equipped items
0x006B05A01097ItemBonus__compute_status_bonusesComputes aggregate bonus values for status effects
0x006B09F01545ItemBonus__compute_skill_bonusesComputes aggregate bonus values for skill modifiers
0x006B10007889ItemBonus__build_bonus_descriptionBuilds formatted bonus description text for UI display
0x006B2EE03357ItemBonus__format_bonus_tooltipFormats bonus values into tooltip display strings with color/sign formatting
0x006B3C002559ItemBonus__format_extended_tooltipFormats extended bonus tooltip with race/element/size specific details
0x006B46005837ItemBonus__format_skill_bonus_tooltipFormats skill-related bonus tooltips with skill names and modifier values
0x006B5DA02419ItemBonus__format_condition_tooltipFormats conditional bonus tooltips with trigger conditions and effects
0x006B6720972ItemBonus__format_special_bonus_tooltipFormats special bonus tooltips (clairvoyance, knockback, etc.)
0x006B6AF0383ItemBonus__add_equip_bonusAdds bonus from equip: creates observer, inserts into map, applies values, marks dirty
0x006B6C70412ItemBonus__add_status_bonusAdds bonus from status effect: creates observer, inserts into map, applies values
0x006B6E10244ItemBonus__remove_equip_bonusRemoves bonus for equip: removes values, destroys observer, erases from map
0x006B6F10262ItemBonus__remove_status_bonusRemoves bonus for status effect: removes values, destroys observer, erases from map
0x006B7020454ItemBonus__update_equip_bonus_on_changeHandles equip bonus change: recalculates enchant effects and string set entries
0x006B71F0403ItemBonus__update_status_bonus_on_changeHandles status bonus change: recalculates enchant effects and string set entries
0x006B7390401ItemBonus__refresh_on_job_changeRefreshes all equip bonuses when job class changes, toggling enabled state
0x006B7530137ItemBonus__collect_display_valuesCollects bonus display values from all 3 observer lists, clears dirty flag
0x006B75C028ItemBonus__set_context_and_clearClears 16-byte node hashmap and stores context value at offset+0x1C
0x006B75E0368ItemBonus__insert_bonus_name_valueInserts name->value pair into offset+0x19C unordered_map with FNV-1a hash
0x006B776013ItemBonus__set_ui_callbackStores UI callback pointer at offset+0x20
0x006B7770128ItemBonus__recalculate_dirty_flagsIterates all 3 observer lists accumulating dirty flags, notifies UI callback
0x006D13E0147CItemDB__move_construct_tree_pairMove-constructs a tree pair: copies keys, swaps tree head and count from source
0x006D1480159CItemDB__destroy_nested_tree_nodesRecursively destroys RB-tree nodes with nested sub-trees; frees 0x1C outer and 0x20 inner nodes
0x006D1520144CItemDB__destroy_inner_nodes_recursiveRecursively destroys inner RB-tree nodes; cleans up string data and frees 0x20-byte nodes
0x006D15B075CItemDB__find_lower_bound_intFinds lower bound in int-keyed RB-tree; traverses left/right based on key comparison
0x006D1600121CItemDB__ctorCItemDB constructor: sets vtable, initializes count to 0, allocates 0x1C-byte RB-tree sentinel node with self-referencing pointers
0x006D169067CItemDB__free_node_0x28SEH 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.
0x006D16E067CItemDB__free_node_0x1CSEH cleanup helper: frees 0x1C-byte outer RB-tree node at this+4 if non-null. Used during exception unwinding.
0x006D173067CItemDB__free_node_0x20SEH cleanup helper: frees 0x20-byte inner RB-tree node at this+4 if non-null. Used during exception unwinding.
0x006D1780116CItemDB__destroy_string_and_free_nodeDestroys string member at this+4, then frees the 0x28-byte node
0x006D180076CItemDB__clear_nested_tree_and_freeDestroys all nested tree nodes then frees the 0x1C-byte sentinel
0x006D186076CItemDB__clear_inner_tree_and_freeDestroys all inner tree nodes then frees the 0x20-byte sentinel
0x006D18C0145CItemDB__destroy_nested_node_and_freeDestroys inner tree at node+0x14, clears and frees the 0x20 sub-tree sentinel, then frees 0x1C outer node
0x006D1960126CItemDB__destroy_inner_entry_and_freeCleans up inner node data at this+4, then frees the 0x20-byte node
0x006D19E078CItemDB__free_outer_node_0x1CSEH cleanup helper: frees 0x1C-byte outer tree node at this+4 if non-null. Variant without nested cleanup.
0x006D1A3078CItemDB__free_inner_node_0x20SEH cleanup helper: frees 0x20-byte inner tree node at this+4 if non-null. Variant without nested cleanup.
0x006D1A80134CItemDB__destroy_linked_list_with_stringsDestroys linked list of 0x28-byte nodes containing strings, frees each node
0x006D1B1087CItemDB__destroy_tree_0x1cDestroys RB-tree with 0x1C-byte sentinel node, calls nested tree node destructor
0x006D1B7087CItemDB__destroy_tree_0x20Destroys RB-tree with 0x20-byte sentinel node; calls destroy_inner_nodes_recursive then frees the 0x20-byte sentinel
0x006D1BD0102CItemDB__destroy_inner_tree_0x20Destroys inner RB-tree at offset+4 with 0x20-byte sentinel node
0x006D1C4083CItemDB__destroy_linked_list_wrapper_BWrapper that delegates to destroy_linked_list_with_strings for cleanup of linked list at offset+4
0x006D1CA0108CItemDB__dtorCItemDB destructor: resets vtable, destroys all nested tree nodes at this+4, frees 0x1C-byte sentinel
0x006D1D1068CItemDB__destroy_linked_list_wrapperWrapper that calls destroy_linked_list_with_strings for cleanup
0x006D1D6030CItemDB__scalar_deleter_4byteScalar deleting destructor for a 4-byte object; conditionally frees memory if flag bit 0 is set
0x006D1D80133CItemDB__scalar_dtorScalar deleting destructor for CItemDB, sets vtable and destroys tree, frees 0xC
0x006D1E10770CItemDB__insert_item_entryInserts item entry with nested tree: creates outer node by ID, inner node by sub-key, appends to linked list
0x006D212027CItemDB__resolve_item_idResolves item ID through redirect table, returns original if no redirect found
0x006D2140111CItemDB__find_item_entryFinds item entry by ID (with redirect), returns ptr to entry data and found flag
0x006D21B0757CNeoPackageItemMgr__load_probability_luaLoads Lua probability table, registers InsertPackage callback, initializes DAT_0138d288
0x006D24B087CItemDB__has_item_entryChecks if item ID exists in database (with redirect), returns true if found
0x006D293095CItemDB__allocate_entries_0x28Allocates array of 0x28-byte item entries with aligned allocation for large sizes
0x006D2990549CNeoPackageItemMgr__lua_insert_packageLua callback "InsertPackage" - validates 5 args (3 numbers, 1 string, 1 number), creates item entry
0x006D2BC0234CPaidItemMgr__rbtree_insert_or_findInserts key into RB-tree or finds existing, returns node ptr and inserted flag
0x006D2CB0121CPaidItemMgr__ctorConstructor for CPaidItemMgr, sets vtable PTR_FUN_01113010, initializes RB-tree
0x006D2D4086CPaidItemMgr__dtorDestructor for CPaidItemMgr, sets vtable and clears/frees RB-tree
0x006D2DA030CPaidItemMgr__scalar_dtor_4byteScalar deleting destructor for CPaidItemMgr, frees 4-byte object if flag set
0x006D2DC0111CPaidItemMgr__scalar_dtor_0xcScalar deleting destructor for CPaidItemMgr, sets vtable, clears tree, frees 0xC
0x006D2E30724CPaidItemMgr__build_item_tree_recursiveRecursively builds paid item tree by item ID, resolving sub-items from CItemDB and helper
0x006D3110599CPaidItemMgr__load_item_sold_luaLoads Lua probability table for sold items, registers C_AddItemSold callback
0x006D3370194CPaidItemMgr__is_item_in_sold_tableChecks if item ID is in sold item table, initializes CItemDB if needed, returns 1 if found
0x006D3440247CPaidItemMgr__lua_add_item_soldLua callback "C_AddItemSold" - takes 1 number arg, builds item tree for sold item ID
0x006D3540195CItemInfo__ctorConstructor for CItemInfo, sets vtable PTR_FUN_01113088, zeros 17 dword fields
0x006D3610105CItemInfo__dtorDestructor for CItemInfo, sets vtable, cleans up internal data and vectors
0x006D3680126CItemInfo__scalar_dtorScalar deleting destructor for CItemInfo, cleans up then frees 0x44-byte object
0x006D3700111CItemInfoMgr__scalar_dtorScalar deleting destructor for CItemInfoMgr, vtable PTR_FUN_01113090, frees 0x10
0x006D3770221CItemInfoMgr__get_item_info_by_keyLooks up item info from RB-tree by int key, returns ptr to info struct at node+0x14
0x006D3850221CItemInfoMgr__get_item_info_by_key_altAlternative item info lookup from RB-tree by int key, returns ptr to info struct
0x006D3930201CItemInfoMgr__get_item_info_checkedGets item info by key with bounds check, returns default if not found
0x006D3A00211CItemDB__get_item_info_by_idLooks up item info by numeric ID in global item tree; returns entry at node+0x14 or default at DAT_0138d2b8
0x006D3AE0302CItemInfoMgr__find_or_create_entryFinds existing entry by key or creates new one with default values, returns ptr to data
0x006D3C10416CItemInfoMgr__get_or_insert_entryGets existing entry or inserts new 0x20-byte node with zeroed data, returns ptr to data
0x006D3DC0449CItemDB__find_or_create_item_entryFinds or creates item DB entry by ID; allocates 0x58-byte node with default item data on miss
0x006D3FB0103CItemInfoMgr__rbtree_destroy_nodes_0x20_ARecursively destroys RB-tree nodes (0x20-byte each) by traversing right subtree, then deleting current node and following left pointer. Tree variant A.
0x006D4020103CItemInfoMgr__rbtree_destroy_nodes_0x20_BRecursively destroys RB-tree nodes (0x20-byte each) by traversing right subtree, then deleting current node and following left pointer. Tree variant B.
0x006D4090131CItemInfoMgr__rbtree_destroy_nodes_0x20_with_cleanupRecursively destroys RB-tree nodes (0x20-byte each). Cleans up node data via clear_tree_nodes_alt before deleting each node. Returns this ptr.
0x006D4120178CItemInfoMgr__rbtree_destroy_nodes_0x58_with_cleanupRecursively destroys RB-tree nodes (0x58-byte item entries). Cleans up sub-vectors and trees in each node before deleting. Returns this ptr.
0x006D41E075CItemInfoMgr__find_lower_bound_tree_CRB-tree lower_bound search using global DAT_0138d2a8 tree, variant C
0x006D423075CItemInfoMgr__find_lower_bound_tree_DRB-tree lower_bound search using global DAT_0138d290 tree, variant D
0x006D428075CItemInfoMgr__find_lower_bound_tree_ERB-tree lower_bound search using global DAT_0138d298 tree, variant E
0x006D42D075CItemInfoMgr__find_lower_bound_tree_FRB-tree lower_bound search using global DAT_0138d2a0 tree, variant F
0x006D45E0181CItemInfoMgr__vector_copy_constructCopy-constructs a vector of 4-byte elements from source param_2. Allocates aligned buffer, copies all elements via memcpy, sets begin/end/capacity pointers.
0x006D46A0172CItemInfo__copy_ctorCopy constructor for CItemInfo. Copies vtable, scalar fields, and two vectors from source object. Sets up PTR_CItemInfo__scalar_dtor vtable.
0x006D4750134CItemDesc__ctorDefault constructor for CItemDesc. Initializes two SSO string fields (at +0x2c and +0x44) to empty with capacity 0xf, then calls CItemDesc__reset_all_fields.
0x006D47E0132CItemDesc__ctor_altAlternative constructor for CItemDesc. Same pattern as CItemDesc__ctor - initializes two SSO string fields and calls reset_all_fields.
0x006D487067CItemInfoMgr__free_node_0xc_AFrees 0xC-byte tree node at offset+4 if non-null, variant A
0x006D48C067CItemInfoMgr__free_node_0x20Frees a 0x20-byte node pointed to by this+4 if non-null.
0x006D491067CItemInfoMgr__free_node_0x20_CFrees a 0x20-byte node pointed to by this+4 if non-null. Variant C.
0x006D496067CItemInfoMgr__free_node_0x20_DFrees a 0x20-byte node pointed to by this+4 if non-null. Variant D.
0x006D49B067CItemInfoMgr__free_node_0x58Frees a 0x58-byte node (item entry) pointed to by this+4 if non-null.
0x006D4A0078CItemInfoMgr__free_node_0xc_with_sehFrees 0xC-byte tree node with SEH frame cleanup, uses local_8 sentinel
0x006D4A60111CItemInfoMgr__destroy_rbtree_0x20_ADestroys entire RB-tree by recursively freeing all 0x20-byte nodes plus the 0x20-byte sentinel node. Variant A.
0x006D4AE0111CItemInfoMgr__destroy_rbtree_0x20_BDestroys entire RB-tree by recursively freeing all 0x20-byte nodes plus the 0x20-byte sentinel node. Variant B.
0x006D4B6076CItemInfoMgr__destroy_rbtree_0x20_with_cleanupDestroys RB-tree with per-node cleanup. Recursively destroys 0x20-byte data nodes via destroy_nodes_0x20_with_cleanup, then frees the 0x20-byte sentinel.
0x006D4BC076CItemInfoMgr__destroy_rbtree_0x58_with_cleanupDestroys 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.
0x006D4C2078CItemInfoMgr__free_sentinel_node_0x20_AFrees the 0x20-byte sentinel/header node of an RB-tree pointed to by this+4 if non-null. Variant A.
0x006D4C7078CItemInfoMgr__free_sentinel_node_0x20_BFrees the 0x20-byte sentinel/header node of an RB-tree pointed to by this+4 if non-null. Variant B.
0x006D4CC0116CItemInfoMgr__destroy_nested_and_free_0x20Destroys nested tree at offset+0x14, then frees 0x20-byte node
0x006D4D40158CItemInfoMgr__destroy_complex_node_0x58Destroys complex 0x58-byte node with CItemInfo vtable, cleans up 2 nested trees
0x006D4DE078CItemInfoMgr__free_sentinel_node_0x20_CFrees the 0x20-byte sentinel/header node of an RB-tree pointed to by this+4 if non-null. Variant C.
0x006D4E3078CItemInfoMgr__free_sentinel_node_0x20_DFrees the 0x20-byte sentinel/header node of an RB-tree pointed to by this+4 if non-null. Variant D.
0x006D4E8078CItemInfoMgr__free_sentinel_node_0x20_EFrees the 0x20-byte sentinel/header node of an RB-tree pointed to by this+4 if non-null. Variant E.
0x006D4ED078CItemInfoMgr__free_sentinel_node_0x58Frees the 0x58-byte sentinel/header node of an RB-tree (item entries) pointed to by this+4 if non-null.
0x006D4F20103CItemInfoMgr__destroy_linked_list_0xcDestroys linked list of 0xC-byte nodes, frees each node in order
0x006D4F9068CItemInfoMgr__reset_tree_stateResets/clears tree state by calling clear_tree_nodes_alt. Lightweight cleanup without full node destruction.
0x006D4FE0118CItemInfo__dtor_006d4fe0Destructor for CItemInfo. Sets vtable to CItemInfo__scalar_dtor, then cleans up vector and two sub-trees owned by this object.
0x006D50F090CItemInfoMgr__dtorDestructor for CItemInfoMgr. Sets vtable to scalar_dtor, frees all line buffers, then frees the aligned vector buffer.
0x006D5160321CItemInfo__copy_fromCopies item info from source, copies 3 dword vectors and scalar fields via memcpy
0x006D52B0406CItemDesc__copy_fromCopies item description struct from source, copies strings, security mem structs, and flags
0x006D545097CItemDesc__populate_from_parsed_dataPopulates 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.
0x006D54C082CItemDesc__compare_string_fieldCompares 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).
0x006D5550217CItemDesc__init_from_dataInitializes item description fields from raw data source, sets type/slot/flags
0x006D563021CItemDesc__lookup_in_global_mapLooks up item info by key in the global DAT_0138d2a8 RB-tree map. Thin wrapper around CItemInfoMgr__get_item_info_by_key.
0x006D5650221CItemDesc__get_card_rarity_colorReturns 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).
0x006D573075CItemDesc__get_item_info_vector_by_flagParses 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.
0x006D5780144CItemDesc__format_grade_letter_textFormats item grade letter (D/C/B/A for levels 1-4) from field at offset 0x88 into output buffer
0x006D5810124CItemDesc__format_unidentified_nameGets unidentified item name (field+4) from item info DB by ID and copies to output buffer with bounds checking
0x006D589021CItemDesc__lookup_item_info_by_idSimple wrapper that calls CItemDB__get_item_info_by_id with the global item DB tree
0x006D58B0236CItemDesc__get_desc_by_idGets item description by ID from global tree DAT_0138d290, returns default if not found
0x006D59A03993CItemDB__build_item_tooltip_stringBuilds item tooltip string based on item type, costume flag, enchant level, and card slots
0x006D69C0216CItemDesc__get_desc_by_id_altGets item description by ID from global tree DAT_0138d298, uses atexit for init
0x006D6AA0210CItemDesc__format_equip_type_textFormats equipment type text based on slot type (0-4), special handling for IDs 0xA4A/0xA4B
0x006D6B90116CItemDesc__format_weapon_subtype_textFormats weapon subtype text using string IDs 0x1CB/0x1CC/0x1CD for types 5/10/15
0x006D6C10233CItemDesc__format_location_textFormats item equip location text from combined position field, uses string ID 0x245 as fallback
0x006D6D0074CItemDesc__format_field_snprintfFormats item description field value via vsnprintf through a global singleton, returns length written
0x006D6D5087CItemDesc__format_costume_label_textFormats costume label text using message string table ID 0x2F4, copies into output buffer with bounds checking
0x006D6DB0409CItemDesc__format_card_slots_textFormats card slot names into buffer, handles 2x/3x/4x multiplier labels for duplicate cards
0x006D6F50324CItemDesc__format_card_prefix_textFormats card prefix names into buffer with multiplier labels, uses prefix field (+4)
0x006D70A054CItemDesc__format_option_textFormats item option text from field at offset 0x60 using format string at DAT_011132d4
0x006D70E01405CItemDB__serialize_item_to_packetSerializes item data into packet fields (0x119-0x12D): equip info, cards, options, expire, enchants
0x006D766075CItemDesc__get_sprite_resource_idGets sprite resource ID for item, returns field+8 for enchant type, field+0x1C otherwise
0x006D76B036CItemDesc__get_refinement_levelGets refinement level from item info at field offset 0x30
0x006D76E091CItemDesc__format_refinement_textFormats refinement level as "+%d" text if non-zero, using snprintf-like formatting
0x006D774018CItemDesc__select_valid_stringReturns param_2 string if param_1 > 0, otherwise returns empty string constant
0x006D7760124CItemDesc__format_identified_nameFormats identified item name from item info field at offset 0x18, null-safe
0x006D77E0213CItemDesc__has_card_or_enchantChecks if item has cards/enchants in slots, handles special armor/weapon type checks
0x006D78C03904CItemDB__load_all_item_tablesMaster item DB loader: reads item_txt, eventItem, cards, slots, params, book items, metal process, move info tables
0x006D881030CItemDesc__is_enchantable_typeReturns 1 if item type is enchantable (4,5,8,9,11-15,21 = weapon/armor types)
0x006D885058CItemDesc__is_book_item_idReturns true if item ID exists in the BookItemNameTable RB-tree (DAT_0138d2a0)
0x006D889058CItemDesc__is_valid_enchant_idChecks if enchant ID exists in global tree DAT_0138d2a8
0x006D88D023CItemDesc__is_enchanted_or_special_slotReturns 1 if card slot field at offset 0x1C is 0xFE or 0xFF (enchanted/special), 0 otherwise
0x006D892074CItemDesc__is_special_item_idChecks if item ID is special (1000, 994-997), used for arrow/ammo type detection
0x006D898080CItemDesc__is_all_digitsValidates that string contains only digit characters using lookup table at DAT_0131d570
0x006D89D053CItemDesc__is_enchant_stone_idReturns 1 if item ID is in enchant stone ranges (9001-9493 or 10000-10999), 0 otherwise
0x006D8A1044CItemDesc__is_arrow_ammo_idReturns 1 if item ID is 994-997 (arrow/ammunition types), 0 otherwise
0x006D8A5064CItemDesc__is_gradeable_item_idReturns 1 if item ID exceeds 600 (gradeable equipment range), 0 otherwise
0x006D8A90199CItemDesc__reset_all_fieldsZeros all item description fields including strings, flags, slots, enchants, and grade
0x006D8B60765CItemDesc__build_search_name_listBuilds searchable name list from item DB, checking item names, prefixes, and descriptions
0x006D8E60370CItemDesc__match_search_stringMatches search string against item name using substr or exact match, adds to result if found
0x006D8FE048CItemDesc__assign_string_and_check_emptyAssigns the given string to the item's internal SSO string field and returns whether field at offset 0x54 is zero
0x006D901088CItemDesc__convert_int_to_stringConverts integer param to decimal string via _itoa and assigns to item's internal SSO string field
0x006D907069CItemDesc__set_random_option_entryWrites random option entry (id, value, param) at index into item description struct at offset 0x9C, max 5 entries
0x006D90C01138CItemDesc__parse_binary_packetParses binary item packet (type 0x119) with TLV sub-fields 0x11A-0x12D into item description
0x006D959026CItemDesc__set_card_slot_idSets card slot ID at index (0-3) in the item description card array at offset 0x1C
0x006D95B030CItemDesc__advance_buffer_ptrAdvances buffer pointer by param_1 bytes and decreases remaining size counter if param_4 flag is set
0x006D95D079CItemDesc__copy_string_to_bufferCopies source string into output buffer with strncpy_s bounds checking, optionally decrements remaining size
0x006DA26036CItemInfoMgr__memcpy_rangeCopies memory range [param_1, param_2) to destination param_3, returns pointer past copied data
0x006DA290165CItemDesc__add_search_resultAdds matching item ID to search result set via RB-tree insert
0x006DA340219CItemInfoMgr__create_serialized_bufferAllocates 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.
0x008805E07get_field_0xe4_008805e0Getter that returns 4-byte field at offset 0xe4 from param_1
0x008D1220446CItemDesc__render_formatted_tooltipRenders 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.
0x008D13E0988CItemDesc__render_inline_tooltip_textRenders 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.
0x008D17C0442CItemDesc__layout_tooltip_multilineLays 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.
0x008D1980413CItemDesc__draw_tooltip_with_wrappingDraws 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).
0x008DA6901631CItemDesc__format_tooltip_bodyFormats 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).
0x00972E60225CItemInfoMgr__build_sell_info_vectorBuilds item info vector for sell context menu. Inserts CItemInfoMgr entries 0x50DC and 0x50DD (sell-related info IDs) into output vector.
0x00972F50292CItemInfoMgr__build_storage_info_vectorBuilds item info vector for storage context menu. Inserts entries 0x5140, 0x5142 (with quantity param from offset 0xFC), and 0x5141.
0x00973080225CItemInfoMgr__build_trade_info_vectorBuilds item info vector for trade context menu. Inserts entries 0x510E and 0x510F.
0x00973170225CItemInfoMgr__build_cart_info_vectorBuilds item info vector for cart context menu. Inserts entries 0x51A4 and 0x51A5.
0x00973260315CItemInfoMgr__build_equip_info_vectorBuilds 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.
0x009733A0315CItemInfoMgr__build_guild_storage_info_vectorBuilds item info vector for guild storage context menu. If offset 0x108 is 0, uses entries 0x529E/0x529F; otherwise uses 0x526C/0x526D.
0x009734E0386CItemInfoMgr__build_auction_info_vectorBuilds 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.
0x00973670225CItemInfoMgr__build_mail_info_vectorBuilds item info vector for mail attach context menu. Inserts entries 0x5398 and 0x5399.
0x00973760315CItemInfoMgr__build_shop_info_vectorBuilds item info vector for shop context menu. If offset 0x130 is 0 (buy mode), uses entries 0x5334/0x5335; otherwise (sell mode) uses 0x5366/0x5367.
0x0099A5E01893CItemDescWindow__handle_event_0099a5e0CItemDescWindow 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.
0x00A913F07get_field_0x19c_00a913f0Getter returning 4-byte field at offset 0x19c from param_1
0x00A916F07get_field_0x1a0_00a916f0Getter that returns 4-byte field at offset 0x1a0 from param_1
0x00ADFF90721CItemInfoMgr__load_lua_configLoads 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.
0x00AE0360559CItemInfoMgr__populate_item_dbPopulates 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.
0x00AEF3904get_field_offset_0x14_00aef390Returns input parameter plus 0x14 offset, likely pointer arithmetic
0x00B889204get_field_0x18_00b88920Getter that returns 4-byte field at offset 0x18 from parameter
0x00B8DEA04get_field_0x4_00b8dea0Getter returning value at param+4 offset
0x00B8DEB07get_field_0x88_00b8deb0Getter that returns 4-byte field at offset 0x88 from parameter
0x00B8DF204get_field_0x3c_00b8df20Returns 4-byte field at offset 0x3c from param_1
0x00B8E7604get_field_0x40_00b8e760Getter that returns byte from param_1 + 0x40 offset
0x00B8E8204get_field_0x18_00b8e820Getter returning 4-byte field at offset 0x18 from parameter
0x00B8E8E04get_field_0x38_00b8e8e0Getter that returns field at offset 0x38 from parameter
0x00B96B705get_field_0x18_00b96b70Getter returning 4-byte field at offset 0x18 from parameter
0x00C7BD308set_field_0x44_to_zero_00c7bd30Sets field at offset 0x44 to zero on passed object
0x00C7C0404set_field_0x0_to_zero_00c7c040Sets first byte of param to 0; likely zeroing a flag or field
0x00C90DA04get_field_0xc_00c90da0Getter returning field at offset 0xc from parameter
0x00C90DB04get_field_0x8_00c90db0Getter returning 4-byte field at offset 0x8 from param_1
0x00CF0090433CItem__format_display_name_with_slotsFormats 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.
0x00CFB702218CShop__send_npc_shop_purchase_listIterates NPC shop items, builds purchase list with item IDs and amounts, sends to server via CNetworkSession. Clears deal and inventory lists afterward.
0x00D01610570CMailItem__vector_insertstd::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.
0x00D01CC0552CInventoryItem__vector_insertstd::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.
0x00D03D40126CWhisperMessage__copy_constructCopy 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.
0x00D03E50226CMailItem__move_constructMove 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.
0x00D03F40187CMailItem__copy_constructCopy 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.
0x00D04000201CMailItem__default_ctorDefault 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.
0x00D043C0147CInventoryItem__copy_constructCopy 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.
0x00D05470243CMailItem__copy_assignCopy-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.
0x00D45B9060CItemDB__dispatch_item_packetCItemDB: dispatch item packet
0x00D59FD0941CItemCollection__populate_buying_storePopulates 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.
0x00D5A4C01171CItemCollection__build_character_item_listBuilds 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.
0x00D5AB00126CItemCollection__handle_item_storage_updateHandles 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.
0x00D5AB80541CItemCollection__open_storage_windowsOpens 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.
0x00D5ADA0326CItemCollection__open_auction_windowsOpens 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.
0x00D5AEF0310CItemCollection__load_guild_storage_or_closeLoads 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.
0x00DD43A0384bitmask_to_3slot_indicesConverts 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.
0x00DD6CB0188CItemCollection__conditional_dtorConditional 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.
0x00DD6D70287CItemCollection__equip_to_slots_with_bonusEquips 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.
0x00DD6E90121CItemCollection__add_or_merge_shop_itemAdds 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.
0x00DD6F10273CItemCollection__update_buy_list_entryUpdates 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.
0x00DD7030119CItemCollection__add_or_update_selling_itemAdds 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.
0x00DD70B0347CItemCollection__add_or_update_buying_store_itemAdds 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.
0x00DD7210162CItemCollection__add_or_update_storage_itemAdds 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.
0x00DD72C0133CItemCollection__add_or_update_cart_itemAdds 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.
0x00DD7350201CItemCollection__add_or_update_categorized_storage_itemAdds 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.
0x00DD742069CItemCollection__add_or_update_guild_storage_itemAdds or updates item in guild storage list at offset 0x1758. If item with matching ID found, adds quantity. Otherwise pushes new item.
0x00DD747069CItemCollection__add_or_update_mail_itemAdds or updates item in mail attachment list at offset 0x1760. If item with matching ID found, adds quantity. Otherwise pushes new item.
0x00DD74C069CItemCollection__add_or_update_auction_itemAdds or updates item in auction item list at offset 0x1748. If item with matching ID found, adds quantity. Otherwise pushes new item.
0x00DD7510162CItemCollection__equip_to_slots_extendedEquips 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.
0x00DD75C0242CItemCollection__add_item_from_string_idConstructs 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.
0x00DD76C015CItemCollection__push_back_wrapperSimple wrapper that delegates to CShopItemList__push_back. Adds item to the end of a linked list.
0x00DD76D0145CItemCollection__add_or_merge_deal_itemAdds 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.
0x00DD7770121CItemCollection__add_or_merge_deal_other_itemAdds 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.
0x00DD77F0145CItemCollection__add_or_merge_deal_item_by_id_or_nameAdds 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.
0x00DD7890214CItemCollection__add_or_update_inventory_with_stack_limitAdds 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.
0x00DD7970440CItemCollection__add_item_from_desc_or_lookupAdds 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.
0x00DD7B3079CItemCollection__add_or_merge_deal_item_by_idAdds 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.
0x00DD7B80167CItemCollection__add_or_update_favorite_itemAdds 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.
0x00DD7C30228CItemCollection__update_or_add_equip_compare_slot_AUpdates 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.
0x00DD7D20228CItemCollection__update_or_add_equip_compare_slot_BUpdates 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.
0x00DD800043CItemCollection__set_buy_list_item_flagSets a flag (offset 0x54 in node) on a buy list item at offset 0x17dc, matched by item ID. No-op if item not found.
0x00DD803053CItemCollection__set_buy_list_item_optionsSets 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.
0x00DD807043CItemCollection__set_buy_list_item_priceSets the price field (offset 0x44 in node) on a buy list item at offset 0x17dc, matched by item ID. No-op if not found.
0x00DD80A0735CItemCollection__randomize_and_update_map_boundsRandomizes 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.
0x00DD8380202CItemCollection__clear_all_categorized_listsClears 11 categorized item lists starting at offset 0x1784. Iterates each list, destroys string data, frees nodes (0x100 bytes each), and updates count.
0x00DD8450205CItemCollection__remove_non_equipment_from_sellingRemoves 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.
0x00DD854084CItemCollection__clear_deal_and_inventory_listsClears three item lists: deal other (0x1720), inventory (0x1730), and deal self (0x1718). Uses CNavigationWnd__on_scroll_event to traverse and clear each list.
0x00DD85B0171CItemCollection__reset_all_equip_slotsResets 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.
0x00DD8660205CItemCollection__remove_equipment_from_sellingRemoves 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.
0x00DD8750111CItemCollection__clear_equip_compare_slotsClears all 10 equip comparison slots in both A (0x3ec0) and B (0x5210) arrays by zeroing their first field. Also clears 0x5210 slot.
0x00DD87C032CItemCollection__clear_shop_listClears the shop item list at offset 0x1728. Delegates to CNavigationWnd__on_scroll_event for traversal and cleanup.
0x00DD87E0170CItemCollection__clear_buy_listClears the buy list at offset 0x17e4. Iterates linked list, destroys string data, frees each node (0x58 bytes), and updates count at offset 0x17e8.
0x00DD889042CItemCollection__clear_selling_listClears the selling list at offset 0x1710 and notifies UI via CUIWindowMgr__notify_language_change.
0x00DD88C060CItemCollection__clear_mail_and_auction_listsClears both mail attachment (0x1760) and auction (0x1748) item lists.
0x00DD890032CItemCollection__clear_storage_listClears the storage item list at offset 0x1768.
0x00DD892032CItemCollection__clear_cart_listClears the cart item list at offset 0x1740.
0x00DD894032CItemCollection__clear_categorized_storage_listClears the categorized storage list at offset 0x1750.
0x00DD896032CItemCollection__clear_guild_storage_listClears the guild storage list at offset 0x1758.
0x00DD898032CItemCollection__clear_mail_listClears the mail attachment list at offset 0x1760.
0x00DD89A032CItemCollection__clear_auction_listClears the auction item list at offset 0x1748.
0x00DD89C081CItemCollection__clear_quest_item_listClears quest item list at offset 0x734. Frees all nodes (0x14 bytes each), resets sentinel pointers and count at 0x738.
0x00DD8A2046CItemCollection__clear_categorized_list_by_indexClears a categorized item list by index (0-10). Accesses list at offset 0x1784 + index*8. Bounds-checked.
0x00DD8A50111CItemCollection__clear_equip_compare_slots_BClears all 10 equip comparison slots in array B (offsets 0x4870-0x5128) plus slot at 0x5214 by zeroing their first field.
0x00DD8AC037CItemCollection__reset_10_equip_descsResets all 10 equipment item descriptions by calling CItemDesc__reset_all_fields on each in a loop.
0x00DD8AF0209CItemCollection__clear_buying_store_and_remove_effectsClears 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.
0x00DD8BD061CItemCollection__reset_trade_countersResets 6 trade-related counters/fields at offsets 0x166c-0x1680 to zero.
0x00DD8C1032CItemCollection__clear_deal_other_listClears the deal other player's item list at offset 0x1720.
0x00DD8C3032CItemCollection__clear_inventory_listClears the inventory item list at offset 0x1730.
0x00DD8C5032CItemCollection__clear_deal_self_listClears the deal self item list at offset 0x1718.
0x00DD8C7041CItemCollection__reset_9_equip_slot_namesResets 9 equipment slot name strings to "nothing" by calling STL_lib_func_004fa8f0 in a loop.
0x00DD8CA032CItemCollection__clear_favorites_listClears the favorites item list at offset 0x1738.
0x00DD8DB0232CItemCollection__copy_mail_to_buying_storeClears 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.
0x00DD8EA0792CItemDB__find_matching_item_in_listSearches 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.
0x00DDA740356CItemDB__remove_or_decrease_item_quantityRemoves 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.
0x00DDAB30267CItemDB__remove_deal_item_by_id_or_nameRemoves 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.
0x00DDACE0171CItemDB__remove_storage_item_by_idRemoves 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.
0x00DDB580212CItemDB__remove_buff_entry_by_nameRemoves 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.
0x00DDBB507get_field_0x8134_00ddbb50Getter that returns 4-byte field at offset 0x8134 from param_1
0x00DDC05069CItemDB__lookup_item_by_id_map708Looks 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.
0x00DDC0A069CItemDB__lookup_item_by_id_map700Looks 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.
0x00DDC240114CItemDB__get_body_sprite_pathGets 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.
0x00DDC330420CItemDB__get_equipped_item_by_slot_typeReturns 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.
0x00DDC580132CItemDB__find_recently_sold_itemSearches 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.
0x00DDC6F0175CShop__get_item_by_index_or_specialGets 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.
0x00DDC7A0132CShop__find_item_by_idSearches 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.
0x00DDC830100CShop__get_cart_item_by_indexGets a cart/second-tab shop item by index from array at offset 0x3EB0 (stride 0xF8). Returns a copy via CShopItem copy constructor.
0x00DDC930151CShop__get_linked_list_item_by_indexGets 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.
0x00DDC9D0593CShop__lookup_item_name_in_sorted_mapLooks 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.
0x00DDCC30231CShop__get_item_node_by_indexGets 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.
0x00DDCD2036CShop__get_item_quantity_by_idGets the quantity of an item by its ID (offset by 10000). Looks up in array at this+0x710. Returns 0 if ID < 10000.
0x00DDCDC0125CItem__build_current_weapon_sprite_pathBuilds 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.
0x00DDCF60114CItem__build_current_shield_sprite_pathBuilds the shield sprite path for the current item using member fields: shield ID (0x1628), job class (0xE98), base class (0xED8), and equipment slot (0xEF0).
0x00DDD050125CItem__build_current_weapon_sprite_path_type1Builds the secondary weapon (type=1) sprite path for the current item using member data and helper functions for weapon type and class info.
0x00DDD0D036CShop__get_card_item_quantity_by_idGets the quantity of a card item by its ID (offset by 8000). Looks up in array at this+0x71C. Returns 0 if ID < 8000.
0x00DDD100140CItem__get_sprite_name_by_indexGets a sprite name string by index from the pointer array at this+0xF84. Returns it as an STL string via copy.
0x00DDD200114CItem__build_current_imf_resource_pathBuilds the IMF resource path for the current item using member fields: shield ID (0x1628), job class (0xE98), base class (0xED8), and sprite type (0xF08).
0x00DDD2C055CItemDesc__get_color_codeGets 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.
0x00DDD300245CShop__find_item_index_by_id_stringIterates 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.
0x00DDD400216CShop__collect_matching_item_indicesTraverses 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.
0x00DDD4E0190CShop__find_item_in_linked_list_by_idSearches 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.
0x00DDD5A0353CShop__find_item_in_linked_list_by_slotSearches 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.
0x00DDD710151CShop__get_linked_list_item_by_index_validatedGets 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.
0x00DDD7B018CShop__find_item_ptr_by_id_stringSearches 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.
0x00DDD7C278CShop__find_item_ptr_by_id_string_fastcallFastcall variant of find_item_ptr_by_id_string. Same logic: searches linked list at 0x1710, returns pointer to item data matching ID string.
0x00DDD81062CShop__find_item_ptr_by_slot_idSearches 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.
0x00DDD85095CShop__find_item_ptr_by_id_with_filterSearches 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.
0x00DDD8B0240CShop__get_item_name_by_idGets 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.
0x00DDD9A074CShop__get_total_quantity_by_idSums the quantity (field +0x18) of all items in linked list at 0x1710 whose string ID matches param_2. Returns total count.
0x00DDDFE0850CItem__remap_job_class_for_costumeRemaps 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.
0x00DDE3D0366CItem__get_hit_sound_filenameGets 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.
0x00DDE5C0231CItem__get_equip_name_by_locationGets 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.
0x00DDE72076CItem__find_in_rb_tree_by_keySearches a red-black tree (sentinel at +0x80BC) using lower_bound. Returns pointer to value at node+0x14 if key matches, NULL otherwise.
0x00DDE770140CItem__set_display_name_from_cstrCopies a C-string into an STL string, then calls ItemDisplayTree__get_display_name to set the display name for the item.
0x00DDE80094CItem__find_item_id_by_name_in_listSearches 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.
0x00DDE86036CShop__get_shadow_equip_quantity_by_idGets the quantity of a shadow equipment item by ID (offset by 0x2008). Looks up in array at this+0x728. Returns 0 if ID < 0x2008.
0x00DDE890134CShop__find_storage_item_by_slotFinds a storage item by slot ID in linked list at 0x1768. Returns copy via CShopItem copy constructor. Calls error handler if not found.
0x00DDE920151CShop__get_storage_item_by_indexGets a storage item by sequential index from linked list at 0x1768. Validates count at 0x176C. Returns copy via CShopItem copy constructor.
0x00DDE9C042CShop__get_storage_item_quantity_by_slotGets the quantity (field +0x18) of a storage item by slot ID from linked list at 0x1768. Returns 0 if not found.
0x00DDE9F0134CShop__find_guild_storage_item_by_slotFinds a guild storage item by slot ID in linked list at 0x1740. Returns copy via CShopItem copy constructor. Calls error handler if not found.
0x00DDEA80151CShop__get_guild_storage_item_by_indexGets a guild storage item by sequential index from linked list at 0x1740. Validates count at 0x1744. Returns copy via CShopItem copy constructor.
0x00DDEB2042CShop__get_guild_storage_item_quantity_by_slotGets the quantity (field +0x18) of a guild storage item by slot ID from linked list at 0x1740. Returns 0 if not found.
0x00DDEB50134CShop__find_cart_list_item_by_slotFinds a cart item by slot ID in linked list at 0x1750. Returns copy via CShopItem copy constructor. Calls error handler if not found.
0x00DDEBE0151CShop__get_cart_list_item_by_indexGets a cart list item by sequential index from linked list at 0x1750. Validates count at 0x1754. Returns copy via CShopItem copy constructor.
0x00DDEC8042CShop__get_cart_list_item_quantity_by_slotGets quantity (field +0x18) of a cart list item by slot ID from linked list at 0x1750. Returns 0 if not found.
0x00DDECB0132CShop__find_buyingstore_item_by_slotFinds a buying store item by slot ID in linked list at 0x1758. Returns copy via CShopItem copy constructor. Calls error handler if not found.
0x00DDED40159CShop__find_buyingstore_item_by_id_stringFinds 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.
0x00DDEDE0151CShop__get_buyingstore_item_by_indexGets a buying store item by sequential index from linked list at 0x1758. Validates count at 0x175C. Returns copy via CShopItem copy constructor.
0x00DDEE8042CShop__get_buyingstore_item_quantity_by_slotGets quantity (field +0x18) of a buying store item by slot ID from linked list at 0x1758. Returns 0 if not found.
0x00DDEEB0134CShop__find_trade_item_by_slotFinds a trade item by slot ID in linked list at 0x1760. Returns copy via CShopItem copy constructor. Calls error handler if not found.
0x00DDEF40184CShop__find_trade_item_by_nameFinds 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.
0x00DDF000134CShop__get_trade_item_by_indexGets a trade item by sequential index from linked list at 0x1760. Returns copy via CShopItem copy constructor. Calls error handler if not found.
0x00DDF09094CShop__get_trade_item_quantity_by_nameGets the quantity (field +0x18) of a trade item by name string from linked list at 0x1760. Returns 0 if not found.
0x00DDF0F042CShop__get_trade_item_quantity_by_slotGets quantity (field +0x18) of a trade item by slot ID from linked list at 0x1760. Returns 0 if not found.
0x00DDF120134CShop__find_mail_item_by_slotFinds a mail attachment item by slot ID in linked list at offset 6000 (0x1770). Returns copy via CShopItem copy constructor.
0x00DDF1B073CShop__calc_total_trade_valueCalculates 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.
0x00DDF200151CShop__get_equipped_item_by_indexGets an equipped item by sequential index from linked list at 0x1748. Validates count at 0x174C. Returns copy via CShopItem copy constructor.
0x00DDF2A042CShop__get_equipped_item_quantity_by_slotGets quantity (field +0x18) of an equipped item by slot ID from linked list at 0x1748. Returns 0 if not found.
0x00DDF2D066CShop__find_item_option_by_slotFinds 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.
0x00DDF320535CItem__lookup_map_bgm_filenameLooks 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'.
0x00DDF540102CShop__find_equip_tab_item_ptr_by_idFinds 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.
0x00DDF5B0166CShop__get_equip_tab_item_by_indexGets 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.
0x00DDF660334CItem__get_current_map_resource_nameGets 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.
0x00DDF7B0209CItem__lookup_map_type_by_nameLooks 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.
0x00DDF8A07get_field_0x17e8_00ddf8a0Getter that returns 4-byte field at offset 0x17e8 from param_1
0x00DDF8B07get_field_0x1714_00ddf8b0Getter returning 4-byte field at offset 0x1714 from parameter
0x00DDF8C07get_field_0x176c_00ddf8c0Getter that returns 4-byte field at offset 0x176c from param_1
0x00DDF8D07get_field_0x1744_00ddf8d0Getter returning 4-byte field at offset 0x1744 from parameter
0x00DDF8E07get_field_0x1754_00ddf8e0Getter returning 4-byte field at offset 0x1754 from parameter
0x00DDF8F07get_field_0x175c_00ddf8f0Getter returning 4-byte field at offset 0x175c from parameter
0x00DDF9007get_field_0x1764_00ddf900Getter returning 4-byte field at offset 0x1764 from parameter
0x00DDF9107get_field_0x174c_00ddf910Getter returning 4-byte field at offset 0x174c from param_1
0x00DDF92032CShop__get_equip_tab_countReturns 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.
0x00DDF9D07get_field_0x17e0_00ddf9d0Getter returning 4-byte field at offset 0x17e0 from parameter
0x00DDF9E07get_field_0x1724_00ddf9e0Getter returning 4-byte field at offset 0x1724 from parameter
0x00DDF9F07get_field_0x1734_00ddf9f0Getter returning 4-byte field at offset 0x1734 from param_1
0x00DDFA007get_field_0x171c_00ddfa00Getter returning 4-byte value from param at offset 0x171c
0x00DDFA107get_field_0x173c_00ddfa10Getter returning 4-byte field at offset 0x173c from param_1
0x00DDFA2038CItem__count_visible_items_in_listCounts items in linked list at 0x17DC that have a zero flag at field +0x48 (visible/non-hidden items). Returns the count of such items.
0x00DDFA50100CShop__get_vending_item_by_indexGets a vending item by index from the fixed array at offset 0x4860 (stride 0xF8). Returns copy via CShopItem copy constructor.
0x00DDFAC0138CShop__get_shop_sell_item_by_indexGets 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.
0x00DDFD0045CShop__get_inventory_item_favorite_flagGets 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.
0x00DDFD30117CShop__get_inventory_item_quantity_by_infoGets 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.
0x00DDFDB045CShop__get_inventory_item_quantity_by_slotGets 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.
0x00DDFDE0118CShop__get_inventory_item_type_by_infoGets 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.
0x00DDFE6046CShop__get_inventory_item_type_by_slotGets 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.
0x00DDFE90193CShop__calc_total_weight_by_idCalculates 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.
0x00DDFF60121CShop__calc_total_weight_by_slotCalculates 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.
0x00DE00D0229CItem__get_item_node_by_slot_idGets 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.
0x00DE01C0531CItem__get_item_node_by_unique_idGets 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.
0x00DE03E0283CItem__get_item_node_by_nameGets 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.
0x00DE0500231CItem__get_item_node_by_indexGets 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.
0x00DE05F045CItem__find_item_node_ptr_by_slot_idFinds 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.
0x00DE0620184CShop__find_npc_shop_item_by_nameFinds 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.
0x00DE06E0134CShop__get_npc_shop_item_by_indexGets an NPC shop item by sequential index from linked list at 0x1720. Returns copy via CShopItem copy constructor. Calls error handler if not found.
0x00DE077094CShop__get_npc_shop_item_quantity_by_nameGets quantity (field +0x18) of an NPC shop item by name string from linked list at 0x1720. Returns 0 if not found.
0x00DE07D042CShop__get_npc_shop_item_quantity_by_slotGets quantity (field +0x18) of an NPC shop item by slot ID from linked list at 0x1720. Returns 0 if not found.
0x00DE080033CShop__calc_npc_shop_total_costCalculates total cost of all items in NPC shop list (0x1720). Sums (price * quantity) for each item. Fields: +0x18=quantity, +0x20=price.
0x00DE08F0134CShop__find_favorite_item_by_slotFinds a favorite/starred item by slot ID in linked list at 0x1730. Returns copy via CShopItem copy constructor. Calls error handler if not found.
0x00DE0980151CShop__get_favorite_item_by_indexGets a favorite item by sequential index from linked list at 0x1730. Validates count at 0x1734. Returns copy via CShopItem copy constructor.
0x00DE0A2042CShop__get_favorite_item_quantity_by_slotGets quantity (field +0x18) of a favorite item by slot ID from linked list at 0x1730. Returns 0 if not found.
0x00DE0A5024CItem__get_remaining_cooldown_msCalculates remaining cooldown time in milliseconds. Returns timeGetTime() minus stored timestamp at this+0x794, adjusted by -0x48 (72ms offset).
0x00DE0A70477CItem__get_npc_location_radiusGets 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.
0x00DE0D30151CShop__get_inventory_item_by_indexGets an inventory item by sequential index from linked list at 0x1718. Validates count at 0x171C. Returns copy via CShopItem copy constructor.
0x00DE0DD042CShop__get_inventory_item_quantity_by_slot_directGets quantity (field +0x18) of an inventory item by slot ID from linked list at 0x1718. Returns 0 if not found. Direct slot-based lookup.
0x00DE0E0028CItem__get_card_slot_string_ptrGets 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.
0x00DE0E40104CShop__get_item_quantity_by_id_universalUniversal 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.
0x00DE0EB0134CShop__find_quest_item_by_slotFinds a quest item by slot ID in linked list at 0x1738. Returns copy via CShopItem copy constructor. Calls error handler if not found.
0x00DE0F40151CShop__get_quest_item_by_indexGets a quest item by sequential index from linked list at 0x1738. Validates count at 0x173C. Returns copy via CShopItem copy constructor.
0x00DE0FE042CShop__get_quest_item_quantity_by_slotGets quantity (field +0x18) of a quest item by slot ID from linked list at 0x1738. Returns 0 if not found.
0x00DE10109201CItem__large_init_or_load_tablesLarge function (9201 bytes) - skipped decompilation. Likely initialization or table loading routine for CItem.
0x00DE3410593CItem__lookup_item_name_in_sorted_map_extExtended 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.
0x00DE3680250CItem__get_hit_sound_filename_by_weaponGets 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.
0x00DE38E075CItem__find_in_rb_tree_get_byteSearches 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.
0x00DE3930478CItem__get_map_npc_warp_infoGets 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.
0x00DE3B10254CItem__get_map_index_from_rbtreeGets 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.
0x00DE3C10199CItem__calc_animated_light_valueCalculates 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.
0x00DE3D90392CItem__broadcast_item_list_to_handlerBroadcasts 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.
0x00DE3F203351CItem__reset_session_stateResets 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.
0x00DE4C40311CItem__load_buying_store_item_listLoads 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.
0x00DE4D80611CItem__init_damage_skin_settingsInitializes 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).
0x00DE4FF0576CItem__rescale_all_ui_positionsRescales 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.
0x00DE5230388CItem__load_map_object_light_tableLoads 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.
0x00DE5B4061CItem__reset_skill_bar_vectorsResets two vectors to zero: skill bar data at offsets 0x5608-0x5610 and 0x55FC-0x5604. Clears begin, end, and capacity pointers for both.
0x00DE5B8073CItem__load_indoor_rsw_tableLoads indoorRswTable.txt into vector at 0x5248. Sorts the string pointer array using introsort. Returns 1.
0x00DE72905296CItem__large_load_data_tablesLarge function (5296 bytes) - skipped decompilation. Data table loading routine for CItem.
0x00DE89702612CItem__load_map_position_tableLoads 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.
0x00DE93F061CItem__reset_enchant_vectorsResets two enchant-related vectors to zero at offsets 0x56A4-0x56AC and 0x5698-0x56A0. Clears begin, end, and capacity pointers for both.
0x00DE9750338CItem__load_mp3_name_tableLoads 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.
0x00DE98B039081CItem__very_large_init_routineCItem: very large init routine
0x00DF316092CItem__reset_inventory_expansion_stateResets 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).
0x00DF31C0473CItem__rebuild_shadow_factor_tableRebuilds 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.
0x00DF33B01170CItem__init_all_data_tablesMaster 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.
0x00DF385017383CItem__large_packet_handlerLarge function (17383 bytes) - skipped decompilation. Major packet handler or state machine for CItem.
0x00DF7C401282CItem__reset_all_game_stateMajor 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.
0x00DF88B0129CItem__clear_inventory_and_shop_stateClears 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.
0x00DF8940755CItem__reset_entity_lists_and_item_stateResets 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.
0x00DF940094CItem__refresh_display_if_readyChecks 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.
0x00DF969078CItem__check_name_in_item_listIterates the item name linked list at offset 0x17e4 and returns 1 if any entry matches param_2 via fuzzy string comparison, 0 otherwise.
0x00DF96E013extract_bit4_flagExtracts bit 4 from the input value, returning it as a boolean (0 or 1).
0x00DF96F021compare_bit4_flagsXORs bit 4 of two values and returns the result as a boolean (0 or 1).
0x00DF971012extract_bit1_flagExtracts bit 1 from the input value, returning it as a boolean (0 or 1).
0x00DF972019compare_bit1_flagsXORs bit 1 of two values and returns the result as a boolean (0 or 1).
0x00DF974013extract_bit5_flagExtracts bit 5 from the input value, returning it as a boolean (0 or 1).
0x00DF975021compare_bit5_flagsXORs bit 5 of two values and returns the result as a boolean (0 or 1).
0x00DF977013extract_bit23_flagExtracts bit 23 from the input value, returning it as a boolean (0 or 1).
0x00DF978021compare_bit23_flagsXORs bit 23 of two values and returns the result as a boolean (0 or 1).
0x00DF97A013extract_bit24_flag_00df97a0Extracts bit 24 from the input value, returning it as a boolean (0 or 1).
0x00DF97B021compare_bit24_flags_00df97b0XORs bit 24 of two values and returns the result as a boolean (0 or 1).
0x00DF97D013extract_bit25_flag_00df97d0Extracts bit 25 from the input value, returning it as a boolean (0 or 1).
0x00DF97E021compare_bit25_flags_00df97e0XORs bit 25 of two values and returns the result as a boolean (0 or 1).
0x00DF980013extract_bit26_flag_00df9800Extracts bit 26 from the input value, returning it as a boolean (0 or 1).
0x00DF981021compare_bit26_flagsXORs bit 26 of two values and returns the result as a boolean (0 or 1).
0x00DF983013extract_bit19_flagExtracts bit 19 from the input value, returning it as a boolean (0 or 1).
0x00DF984021compare_bit19_flagsXORs bit 19 of two values and returns the result as a boolean (0 or 1).
0x00DF986013extract_bit14_flag_00df9860Extracts bit 14 from the input value, returning it as a boolean (0 or 1).
0x00DF987013extract_bit27_flagExtracts bit 27 from the input value, returning it as a boolean (0 or 1).
0x00DF990013extract_bit28_flagExtracts bit 28 from the input value, returning it as a boolean (0 or 1).
0x00DF991013extract_bit11_flag_00df9910Extracts bit 11 from the input value, returning it as a boolean (0 or 1).
0x00DF992021compare_bit11_flags_00df9920XORs bit 11 of two values and returns the result as a boolean (0 or 1).
0x00DF994013extract_bit20_flag_00df9940Extracts bit 20 from the input value, returning it as a boolean (0 or 1).
0x00DF995021compare_bit20_flags_00df9950XORs bit 20 of two values and returns the result as a boolean (0 or 1).
0x00DF997013extract_bit13_flag_00df9970Extracts bit 13 from the input value, returning it as a boolean (0 or 1).
0x00DF998021compare_bit13_flagsXORs bit 13 of two values and returns the result as a boolean (0 or 1).
0x00DF99A013extract_bit16_flagExtracts bit 16 from the input value, returning it as a boolean (0 or 1).
0x00DF99B010get_bit_0_XXXX_00df99b0Extracts the least significant bit from a byte parameter
0x00DF99C013compare_bit0_xorXORs two byte parameters and returns the least significant bit. Effectively compares bit 0 of two values, returning 1 if they differ.
0x00DF99D013extract_bit6_flagExtracts bit 6 from the input value, returning it as a boolean (0 or 1).
0x00DF99E021compare_bit6_flagsXORs bit 6 of two values and returns the result as a boolean (0 or 1).
0x00DF9A0013extract_bit15_flagExtracts bit 15 from the input value, returning it as a boolean (0 or 1).
0x00DF9A1021compare_bit15_flagsXORs bit 15 of two values and returns the result as a boolean (0 or 1).
0x00DF9A3013extract_bit18_flagExtracts bit 18 from the input value, returning it as a boolean (0 or 1).
0x00DF9A4013extract_bit17_flagExtracts bit 17 from the input value, returning it as a boolean (0 or 1).
0x00DF9A5021compare_bit17_flagsXORs bit 17 of two values and returns the result as a boolean (0 or 1).
0x00DF9A7013extract_bit21_flagExtracts bit 21 from the input value, returning it as a boolean (0 or 1).
0x00DF9A8021compare_bit21_flagsXORs bit 21 of two values and returns the result as a boolean (0 or 1).
0x00DF9AC0206CItem__lookup_map_object_light_flagBinary 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.
0x00DFC170433CShop__add_matching_items_to_listIterates 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.
0x00DFC330740CShop__rebuild_filtered_item_listRebuilds 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.
0x00DFC620910CShop__unequip_item_from_slotUnequips 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.
0x00DFC9B0506CShop__equip_item_to_slotEquips 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.
0x00DFCBB0459CShop__add_item_to_equipment_slotAdds 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.
0x00DFD0605164CItem__load_data_tables_helperHelper 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.
0x00DFF4B046set_field_0x5c1c_and_notify_windowStores param_2 into this+0x5C1C, then sends event 0x3C to window DAT_01457860 if non-null.
0x00DFFCB057set_field_0x5210_and_notify_window_271bStores param_2 at this+0x5210, then finds window type 0x271B and sends it event 0x17 to refresh.
0x00DFFD2057set_field_0x5214_and_notify_window_271bStores param_2 at this+0x5214, then finds window type 0x271B and sends it event 0x17 to refresh.
0x00E010B016set_field_0x8134Simple setter: stores param_2 at this+0x8134.
0x00E065802635CShop__process_item_eventComplex 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.
0x00E0819066CItemDB__clear_selling_items_batchIterates 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.
0x00E0829060CItemDB__clear_selling_slot_quantitiesClears the quantity fields for 5 selling item slots at offsets +0x5C78/+0x5D70/+0x5E68/+0x5F60/+0x6058 (0xF8 stride) and resets the total counter at +0x6140.
0x00E0830046CItemDB__clear_enchant_fieldsClears enchant-related fields in the item DB. Zeros out flag at +0x6EB, two 4-byte + 2-byte + 1-byte fields spanning +0x6EC through +0x6F8.
0x00E0833041CItemDB__clear_option_slotsClears 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.
0x00E0836023CItemDB__clear_card_slotsClears the card slot data at +0x5AC (0xFC bytes = 252 bytes, enough for multiple card slot entries) by memset to zero.
0x00E0838067CItemDB__clear_stat_bonusesClears 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.).
0x00E083D0168CItemDB__remove_entries_from_both_mapsRemoves 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.
0x00E2EC10187CItemCollection__update_equipment_slotsUpdates 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.
0x00E2ECD0185CItemCollection__update_inventory_slotsUpdates 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.
0x00E2ED90222CItemCollection__insert_item_into_mapInserts 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.
0x00E2F3B0358CItemCollection__send_favorite_tab_updateSends 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.
0x00E2F52020CItemCollection__clear_favorite_slotsClears 0x3F bytes of favorite slot data starting at this+0x6AC. Simple memset to zero.
0x00E2F54046CItemCollection__reset_equipment_itemsResets all 10 equipment item descriptors by calling CItemDesc__reset_all_fields in a loop. Notifies UI of language change afterward.
0x00E2F57046CItemCollection__reset_inventory_itemsResets 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.
0x00E2F6E036CItemCollection__find_favorite_slot_indexSearches 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.
0x00E2FC50548CItemCollection__resolve_item_for_slotResolves 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.
0x00E30720267CItemCollection__count_unique_equip_cardsCounts 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.
0x00E30830267CItemCollection__count_unique_inventory_cardsCounts 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.
0x00E30940266CItemCollection__get_item_sprite_name_hashBuilds 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.
0x00E31B20138CItemCollection__get_equipment_itemGets 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.
0x00E31BB0175CItemCollection__get_inventory_itemGets 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.
0x00E31C80163CItemCollection__get_storage_itemGets 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.
0x00E3D39059CItemCollection__is_item_equipped_in_any_slotChecks 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.
0x00E3D8A0185CItemCollection__unequip_itemUnequips 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.
0x00E3D960448CItemCollection__remove_inventory_itemRemoves 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.
0x00E3E5506616CItemInfoMgr__build_item_info_tableBuilds 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).
0x00E42F205905CItemInfoMgr__build_item_info_table_bSecond 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).
0x00E492D0163CItemCollection__set_favorite_itemSets 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.
0x00E494F0728CItemDesc__parse_tagged_binary_dataParses 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.
0x00E49F40357CShop__build_favorite_list_from_slotsBuilds 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.