Back to legacygamers.net
WARPGATE

Rune

CRuneSystemMgr, CRuneSlotData, rune Lua callbacks

Functions 185Code 56 KBAddresses 0x00764C30 to 0x0081F360Group Systems
185 functions
AddressSizeNameDescription
0x00764C30430CRuneSystemMgr__constructorConstructs CRuneSystemMgr, inits vtable, 5 maps, vectors, and flag fields for rune data
0x00764DE0446CRuneSystemEntry__constructorConstructs CRuneSystemEntry with default name "NoName" and data "NoData", sets vtable
0x007657D0330CRuneSystemMgr__destructorCRuneSystemMgr destructor, destroys page objects, clears all maps and vectors
0x00765920155CRuneSystemPage__destructorCRuneSystemPage destructor, destroys rune objects in vectors, frees sub-arrays and name string
0x007659D093CRuneSystemEntry__destructorCRuneSystemEntry destructor, destroys name and data strings
0x00765A30143CRuneSystemExtEntry__destructorCRuneSystemExtEntry destructor, destroys 6 sub-entries and base entry strings
0x00765AC031CRuneSystemEntry__matches_idReturns true if entry's ID fields at 0x10/0x14 match the given parameter
0x00765AE042CRuneSystemEntry__matches_fullReturns true if entry matches on fields 0x10, 0x14, and 0x48
0x00765B1042CRuneSystemEntry__matches_full_bReturns true if entry matches on fields 0x10, 0x14, and 0x48
0x00765B4082CRuneSystemEntry__compare_name_lessCompares entry name strings at offset 0x18, returns true if this name less than other
0x00765BA084CRuneSystemEntry__compare_name_greaterCompares entry name strings at offset 0x18, returns true if this name greater than other
0x00765C0035CRuneSystemMgr__scalar_destructorScalar deleting destructor for CRuneSystemMgr (0x68 bytes)
0x00765C30176CRuneSystemPage__scalar_destructorScalar deleting destructor for CRuneSystemPage (0x44 bytes)
0x00765CE036CRuneSlot__scalar_destructorScalar deleting destructor for CRuneSlot (0x14 bytes)
0x00765D10114CRuneSystemEntry__scalar_destructorScalar deleting destructor for CRuneSystemEntry (0x50 bytes)
0x00765D90167CRuneSystemExtEntry__scalar_destructorScalar deleting destructor for CRuneSystemExtEntry (0x138 bytes)
0x00765E40159CRuneSystemMgr__set_rune_data_at_indexSets rune data at given index in vector, auto-resizes to 15 elements if needed
0x00765EE0159CRuneSystemMgr__set_rune_data_at_index_bSets rune data at given index in vector, auto-resizes to 15 elements if needed
0x00765F80309CRuneSystemMgr__add_slot_pairAdds a key-value pair to map, creates new entry with vector if key not found
0x007660C0501CRuneSystemMgr__add_rune_entryCreates and adds a rune entry (basic or extended) to page's slot vector by type
0x007662C0335CRuneSystemMgr__add_rune_descriptionAdds description data to existing rune entry identified by page and coordinates
0x00766410134CRuneSystemMgr__set_rune_field_by_coordSets a field at offset 0xA8+index*4 on rune found by page, x, y coordinates
0x007664A0181CRuneSystemMgr__set_rune_extended_dataSets extended data fields on rune found by page and coordinates
0x00766560292CRuneSystemMgr__set_rune_set_infoSets rune set reward info on rune found by page and coordinates
0x0076669044CRuneSystemMgr__push_back_upgrade_tableAppends value to upgrade table vector at offset 0x44
0x007666C0246CRuneSystemMgr__add_pageCreates a new rune page and adds it to the page vector
0x007667C0341CRuneSystemMgr__add_collection_entryCreates and adds a rune collection entry to the collection vector
0x0076692073CRuneSystemPage__count_active_runesCounts active runes in a page slot by checking active flag at offset 0xC of each entry
0x00766970159CRuneSystemMgr__get_or_create_singletonCreates the global CRuneSystemMgr singleton (DAT_01450b90) if it doesn't exist. Allocates 0x68 bytes, calls constructor. If creation succeeds and active flag (offset 0xC) is set, returns 1. Otherwise destroys the failed instance and returns 0.
0x00766A1027CRuneSystemMgr__destroy_singletonDestroys the global CRuneSystemMgr singleton via virtual destructor, nulls pointer
0x00766A3064CRuneSystemMgr__find_highest_active_gradeSearches backward from (param_2-1) through pairs at offset 0xF8 to find the highest index where either element is non-zero. Returns that index, or -1 if none found. param_2 must be < 8.
0x00766A7010CRuneSystemMgr__get_page_countReturns count of rune pages (size of vector at offset 0x1C)
0x00766A8010CRuneSystemMgr__get_collection_countReturns count of rune collection entries (size of vector at offset 0x5C)
0x00766A90128CRuneSystemMgr__get_rune_extra_dataFinds rune by page and ID, returns pointer to extra data block at offset 0xF8
0x00766B104CRuneSystemMgr__get_active_flagReturns byte flag at offset 0xC indicating rune system active state
0x00766B2060CRuneSystemMgr__find_page_by_idFinds rune page by ID (or uses current if -1), searches vector for matching page ID at +4
0x00766B6038CRuneSystemMgr__get_page_at_indexBounds-checked accessor for the rune page pointer vector at offset 0x1C/0x20. Returns the page pointer at the given index, or 0 if out of bounds.
0x00766B90216CRuneSystemMgr__count_active_slotsCounts non-null slot pointers in vector at offset 0x50 using SIMD-optimized loop
0x00766C7044CRuneSystemMgr__count_active_rune_entriesCounts rune entries in vector at offset 0x50/0x54 where the active flag (offset 0xC in each entry) is set. Returns the count of active entries.
0x00766CA012CRuneSystemEntry__get_name_cstrReturns a pointer to the raw C string of the entry's name (std::string at offset 0x18). Uses SSO: if capacity (offset 0x2C) > 15, returns heap pointer; otherwise returns inline buffer address.
0x00766CB034CRuneSystemMgr__get_upgrade_table_entryReturns the value at the given index from the upgrade table vector at offset 0x40/0x44. Returns 0 if index is out of bounds.
0x00766CE034CRuneSystemMgr__get_collection_entryReturns the value at the given index from the collection vector at offset 0x5C/0x60. Returns 0 if index is out of bounds.
0x00766D1065CRuneSystemMgr__find_collection_map_entryLooks up entry in the collection map (sentinel at offset 0x4C) by key. Uses lower_bound to find the node, returns pointer to node data (node+0x14) if found, 0 otherwise.
0x00766D6065CRuneSystemMgr__find_page_map_entryLooks up entry in the page map (sentinel at offset 0x54) by key. Uses lower_bound to find the node, returns pointer to node data (node+0x14) if found, 0 otherwise.
0x00766DB04CRuneSystemMgr__get_field_14Returns value at offset 0x14 of rune system object
0x00766DC04CRuneSystemMgr__get_field_18Returns value at offset 0x18 of rune system object
0x00766DD0101CRuneSystemMgr__get_grade_fail_infoLooks up grade fail info from map by type key, returns data pointer
0x00766E407CRuneSystemMgr__get_current_page_id_pairReturns 8-byte value pair at offset 0x10 (current page ID and related field)
0x00766E509CRuneSystemMgr__is_activeReturns true if rune system is active (flag at offset 0xC is non-zero)
0x00766E6080CRuneSystemMgr__get_slot_dataGets rune slot data by page and slot index, returns pointer to 8-byte entry or default
0x00766EB071CRuneSystemMgr__get_slot_count_for_pageReturns number of rune slots for given page, 0 if page not found or invalid
0x00766F0084CRuneSystemMgr__get_rune_at_slotGets rune data at specific slot index within a page's sub-vector, validates bounds
0x00766F6028CRuneSystemMgr__get_upgrade_table_sizeReturns size of upgrade table vector at offset 0x44
0x00766F80228CRuneSystemMgr__calculate_rune_offsetCalculates rune display offset using page lookup and optional multiplier from secondary map
0x0076707079CRuneSystemMgr__find_rune_by_coordFinds rune entry by page ID and grid coordinates, delegates to coordinate search
0x007670C0110CRuneSystemMgr__find_rune_at_xySearches rune vector for entry matching x,y coords at offsets 0x10/0x14, returns found entry
0x007671304CRuneSystemMgr__get_current_page_idReturns the current rune page ID from offset 0x10
0x007671404CRuneSystemMgr__get_total_rune_countReturns total rune count from offset 0x48
0x007671504CRuneSystemMgr__get_max_rune_countReturns max rune count from offset 0x4C
0x0076716022CRuneSystemMgr__get_rune_by_indexReturns rune data at index from array at offset 0xA8, max 15 entries
0x00767180174CRuneSystemMgr__get_linked_page_dataLooks up linked page data via two map lookups, returns pointer to data or null
0x007672304CRuneSystemMgr__get_pending_flagReturns byte flag at offset 0xD of the rune system object
0x0076724012CRuneSystemMgr__get_string_buffer_ptrReturns pointer to SSO string buffer at offset 0x30, dereferencing if length exceeds small buffer (0xF)
0x007672502768CRuneSystemMgr__load_lua_tablesLoads all rune system Lua files and registers callbacks for grades, items, tags, descriptions
0x00767D20185CRuneSystemMgr__reset_all_rune_statesResets all rune states across pages, clears activation flags and selection data via RTTI cast
0x00767DE0113CRuneSystemMgr__reset_page_rune_flagsResets all rune flags within a single page entry: clears activation flag at +0xC, resets selection fields via RTTI dynamic cast (0xE4, 0xE8, 0xF4)
0x00767E70300CRuneSystemMgr__load_default_tagLoads runesystemInfo Lua file and calls GetDefultTag to set current page ID
0x00767FA078CRuneSystemMgr__check_rune_requirementChecks if rune meets activation requirements, returns true if all conditions met
0x00767FF0266CRuneSystemMgr__check_rune_availableChecks if specific rune is available for activation on current page
0x00768100291CRuneSystemMgr__find_substring_in_nameSearches for a substring within the SSO string at offset 0x18, using memchr-based pattern matching. Returns true if found, false if not.
0x0076823016CRuneSystemMgr__check_rune_count_equalsCompares field at offset 0x48 with param_2, returns 1 if equal, 0 otherwise
0x00768240529CRuneSystemMgr__handle_packetHandles rune system packets (0xBCB-0xC16), dispatches to UI update or server request
0x007684C0370CRuneSystemMgr__on_rune_activate_resultHandles rune activation result from server, updates local rune state and UI
0x00768640108CRuneSystemMgr__update_rune_string_fieldFinds rune by page ID and coordinates, then copies an SSO string to the rune's string field at offset 0x18
0x007686B0134CRuneSystemMgr__update_rune_link_fieldsFinds rune by page ID and coordinates, then updates link fields at offsets 0xEC and 0xF0 with provided values
0x0076874013CRuneSystemMgr__set_flag_0xcSets byte field at offset 0xC of the object
0x0076875035CRuneSystemMgr__assign_string_0x18Assigns an SSO string to the string field at offset 0x18, skipping if source is self
0x0076878015CRuneSystemMgr__set_field_0x18Sets dword field at offset 0x18 from dereferenced pointer param
0x0076879019CRuneSystemMgr__set_page_and_selectionSets fields at offset 0x10 (page ID) and 0x14 (selection index) from two params
0x007687B0236CRuneSystemMgr__set_equipped_runeSets the currently equipped rune: finds rune by page/coord, manages equip bonus add/remove via CEnchantMgr, tracks activation count from slot vector
0x007688A087CRuneSystemMgr__set_current_page_by_idSets current page by searching page vector for matching ID. Falls back to first page if ID not found.
0x0076890013CRuneSystemMgr__set_field_0x48Sets dword field at offset 0x48 of the object
0x0076891013CRuneSystemMgr__set_field_0x4cSets dword field at offset 0x4C of the object
0x0076892013CRuneSystemMgr__set_pending_flagSets byte field at offset 0xD (pending/request flag) of the object
0x0076893035CRuneSystemMgr__assign_string_0x30Assigns an SSO string to the string field at offset 0x30, skipping if source is self
0x00768960158CRuneSystemMgr__activate_rune_at_coordActivates a rune at given page/coord: sets activation flag at +0xC, updates experience fields at 0xE4/0xE8, returns status code (0=ok, 1=exp increased, 2=level increased, -1=not found)
0x00768A00131CRuneSystemMgr__set_rune_grade_at_coordFinds rune by page/coord and sets its grade field at offset 0xF4. Returns 1 on success, 0 if not found.
0x00768A9037CRuneSystemMgr__destroy_objects_in_rangeCRuneSystemMgr: destroy objects in range
0x00769240509CRuneSystemMgr__lua_AddGradeTypeLua callback for AddGradeType, registers grade type data from Lua table
0x00769440509CRuneSystemMgr__lua_AddGradeType_FailLua callback for AddGradeType_Fail, registers grade failure data from Lua table
0x00769640673CRuneSystemMgr__lua_AddItemListTable_TypeLua callback for AddItemListTable_Type, registers item list table data
0x007698F0653CRuneSystemMgr__lua_AddRuneLua callback for AddRune, adds rune entry with coords, name, and type info
0x00769B80860CRuneSystemMgr__lua_AddRuneSetRewardLua callback for AddRuneSetReward, registers set reward data for runes
0x00769EE0855CRuneSystemMgr__lua_AddRune_DescriptionLua callback for AddRune_Description, sets description text for rune entries
0x0076A240553CRuneSystemMgr__lua_AddRune_GradeListLua callback for AddRune_GradeList, registers grade list data for runes
0x0076A470530CRuneSystemMgr__lua_AddRune_SlotCollectionListLua callback for AddRune_SlotCollectionList, registers slot collection data
0x0076A690679CRuneSystemMgr__lua_AddTagLua callback for AddTag, registers tag data for rune system pages
0x0076A940245CRuneSystemMgr__lua_Add_Decom_ItemNumLua callback for Add_Decom_ItemNum, registers decompose item number data
0x0076AA40549CRuneSystemMgr__lua_AdditemDecomLua callback for AdditemDecom, registers item decomposition data
0x0076AC70868CRuneSystemMgr__lua_AdditemDecomTypeLua callback for AdditemDecomType, registers item decomposition type data
0x0076AFE0672CRuneSystemMgr__lua_SetRune_DisplayNameLua callback for SetRune_DisplayName, sets display name for rune entries
0x0076B280555CRuneSystemMgr__lua_SetRune_UpGradeTableLua callback for SetRune_UpGradeTable, configures upgrade table entries
0x0076B4B0219CRuneSystemMgr__lua_SetRuneSysteminfoLua callback for SetRuneSysteminfo, configures rune system global info
0x00814540864UIRuneSystemRequestWnd__ctorConstructor for UIRuneSystemRequestWnd. Inherits base UI. Sets vtable. Initializes 3 SSO strings with gauge texture paths: 'runesystem_gage_empty.bmp' (0x22), 'runesystem_gage_full.bmp' (0x28), 'runesystem_gage_max.bmp' (0x2e). Fields: mode=0x45 at 0x1f, flags at 0x20-0x21.
0x00814D40159UIRuneSystemRequestWnd__constructorConstructor for rune system request window. Sets vtable PTR_UIWindow_0112ca04, clears fields 0x2E-0x2F, sends network packet 0xBE0 with flag=1 to request rune data from server.
0x0081559065UIRuneSystem__destroy_string_wrapperSimple string destructor wrapper with SEH frame. Destroys a single STL string.
0x00815740105UIRuneSystemWnd__destructorDestructor for the rune system main window. Sets vtable 0112bb98, destroys 3 embedded string objects (0x18 bytes each starting at offset 0x4A*4) via eh_vector_destructor_iterator, then calls base destructor (FUN_008511b0).
0x00815870137UIRuneSystemRequestWnd__destructorDestructor for rune system request window. Sets vtable, sends network packet (0xBE0 with flag=0 to unsubscribe), then calls base window destructor.
0x00815C90143UIRuneSystemRequestWnd__scalar_del_dtorScalar deleting destructor for rune system request window.
0x00816470444UIRuneSystem__append_text_entryAppends text entry with string, color, and offset to scrollable text buffer at +0xc0
0x0081663054UIRuneSystem__adjust_scroll_positionAdjusts scroll position by delta, clamped to [0, max_scroll], calls redraw on change
0x0081667064UIRuneSystem__set_tick_timerSets a timeout at +0xb8 if not already active; uses timeGetTime + duration
0x008166B0369UIRuneSystem__update_tab_selectionUpdates rune tab UI state based on selected tab index; shows/hides sub-panels (0=list, 1=detail, 2=range)
0x00816830209UIRuneSystem__reset_ui_stateClears rune strings, resets selection to -1, hides child controls and refreshes display
0x0081691056UIRuneSystem__set_size_and_resizeSets dirty flag, calls size update and virtual resize/reposition methods
0x00816950238UIRuneSystem__show_rune_tooltipShows tooltip for rune at given index using predefined position/size arrays from global data
0x00816A40142UIRuneSystem__clear_text_entriesDestroys all text entries in buffer +0xc0..+0xc4, resets end pointer to start
0x00816AD0123UIRuneSystem__hit_test_rune_gridReturns rune index from grid x/y coords; cell size 0x36, two columns, bounds checked
0x00816B5054UIRuneSystem__hit_test_scroll_rowReturns row index from y coordinate; row height 0x1b, valid range [0x14, width-0x17]
0x00816B9073UIRuneSystem__find_button_regionReturns button region index (0-5) from x/y coords; checks 6 regions of size 0x5a x 0x78
0x00816BE0117UIRuneSystem__hit_test_rune_detail_gridReturns rune detail slot index from x/y in detail panel; 8 slots in 2 rows, cell 0x36x0x27
0x00816C7063UIRuneSystem__deselect_and_resetClears hover selection to -1, clamped to max; triggers redraw via virtual calls
0x00816CB02820UIRuneSystem__init_child_controlsCreates rune UI child controls: listbox, 3 tab panels, text label, scrollbar, description area with tabs
0x008177C01750UIRuneSystem__init_rune_detail_panelCreates rune detail panel with radio buttons (on/off/disabled), scrollbars, checkbox list and description areas
0x00817EA01110UIRuneSystem__init_rune_tab_listCreates rune tab panel with category list items, radio buttons (runesystem_btn_radio_off/on/disable.bmp)
0x00818300405UIRuneSystem__init_rune_list_panelCreates rune list panel with listbox and 4-tab panel; positions tab at bottom of window
0x008184A0985UIRuneSystem__init_labels_and_buttonsCreates UI labels and toggle buttons for rune category view; positions text with measured font widths
0x00818880769UIRuneSystem__draw_rune_list_viewRenders rune list view: background, rune icons with names, levels, and stat descriptions
0x00818B90788UIRuneSystem__draw_rune_detail_viewRenders rune detail: background image, rune icons with sprites, name, level text, and navigation indicators
0x00818EB0474UIRuneSystem__draw_progress_barDraws progress bar with percentage text (formatted as %.2f%%) or empty state background
0x00819090426UIRuneSystem__draw_rune_slot_gridRenders 9-slot rune grid: background, slot sprites, rune names, and level labels
0x00819240964UIRuneSystem__draw_rune_equip_gridRenders equipped rune grid with sprites, levels, names and optional greyed-out overlay for locked slots
0x008196D02598UIRuneSystem__draw_main_panelRenders main rune panel: rune grid with 6 slots, detail text, level/cost display, upgrade path info
0x0081A100199UIRuneSystem__draw_text_entriesRenders buffered text entries with color and position from +0xc0 array, row spacing via +0xb4
0x0081A1D0172UIRuneSystem__draw_map_backgroundDraws background sprite using map name from +0x80 string with zoom level from +0x30
0x0081A280271UIRuneSystem__draw_header_footer_spritesDraws header and footer background sprites, then renders title text via message ID 0xfd2
0x0081A390832UIRuneSystem__draw_rune_grid_with_spritesRenders rune grid cells with item sprites, level bars; highlights over-leveled runes in red
0x0081A6D0675UIRuneSystem__draw_rune_upgrade_gridRenders rune upgrade grid with item sprites and level counts; greys out max-level runes
0x0081A980675UIRuneSystem__draw_material_gridRenders material items in 4x2 grid with sprites and count labels; conditional on +0xb4 flag
0x0081AC30330UIRuneSystem__draw_map_overlay_textDraws map background with overlay text label positioned at bottom; handles zoom and conditional map strings
0x0081AD80396UIRuneSystem__draw_rune_page_tabsRenders rune page tab buttons with active/inactive sprites; highlights current page via CRuneSystemMgr
0x0081AF102213UIRuneSystem__draw_rune_inventory_panelRenders rune inventory with sprites, success rates (formatted %d.%d%%), item counts, and name labels in 4x2 grid
0x0081B7C0564UIRuneSystem__draw_rune_summary_panelRenders rune summary with sprite, name label, active/inactive state indicator, and level text
0x0081BA00780UIRuneSystem__draw_rune_page_infoDraws rune page header with cost value, page title, and description text from CRuneSystemMgr
0x0081BD10380UIRuneSystem__draw_scrollbarDraws vertical scrollbar with track, thumb, and arrow sprites; borders with highlight colors
0x0081BEC0268UIRuneSystem__on_rune_slot_clickHandles click on rune slot in main grid; navigates to rune page if different from current
0x0081C000118UIRuneSystem__on_list_item_clickHandles click in scrollable list; calculates row from y, sets selection, notifies parent with item index
0x0081C08095UIRuneSystem__on_tab_clickHandles tab bar click; calculates tab index from x position, updates selection (max 3 tabs)
0x0081C0F0157UIRuneSystem__on_page_tab_clickHandles rune page tab click; looks up page by index, navigates to that page via CRuneSystemMgr
0x0081C190148UIRuneSystem__on_right_click_by_modeHandles right-click actions based on +0x124 mode: mode 2 = apply drag offset, mode 3 = show "cannot use" chat message (msg 0x1068), mode 0 = show info message (msg 0x1069), then clears hover window
0x0081C240387UIRuneSystem__on_mouse_event_dispatchDispatches mouse events to appropriate rune panel handlers based on current tab and mode
0x0081C3E0297UIRuneSystem__on_mouse_move_equip_gridMouse move handler for equipped rune grid. Hit-tests x,y against rune slot positions (stride 0x28), shows rune name tooltip via CToolTipMgr on hover over valid slots
0x0081C510465UIRuneSystem__on_drag_eventHandles drag events in rune system; scrollbar thumb dragging and rune item dragging
0x0081C6F0255UIRuneSystem__on_mouse_move_main_gridMouse move handler for main 6-slot rune grid. Iterates rune slot positions from DAT_0112cf9c/cfb4 arrays, shows rune name tooltip when hovering over occupied slots
0x0081C7F0365UIRuneSystem__on_mouse_move_upgrade_gridMouse move handler for upgrade grid. Hit-tests against rune grid cells, shows item tooltip (via CItemDB__build_item_tooltip_string) for the item at the hovered cell position
0x0081C960276UIRuneSystem__on_mouse_move_page_tabsMouse move handler for rune page tabs. Hit-tests x position against tab spacing (0x1b stride), shows page name tooltip for the hovered tab via CToolTipMgr
0x0081CA80353UIRuneSystem__on_mouse_move_detail_gridMouse move handler for rune detail grid. Hit-tests against detail panel slots, shows item tooltip for the item at the hovered slot via CItemDB__build_item_tooltip_string
0x0081CC40205UIRuneSystem__on_double_click_show_item_infoDouble-click handler that opens item info window. Redraws via vtable, creates CItemDesc from item at +0x48, opens window type 0xc with item data notification (msg 0x18)
0x0081CD10249UIRuneSystem__on_double_click_upgrade_gridDouble-click handler for upgrade grid. Hit-tests x,y against grid cells, creates CItemDesc from slot item, opens item info window (type 0xc) with notification msg 0x18
0x0081CE10243UIRuneSystem__on_double_click_detail_gridDouble-click handler for detail grid panel. Hit-tests against detail grid slots via hit_test_rune_detail_grid, creates CItemDesc and opens item info window (type 0xc)
0x0081CF1070UIRuneSystem__on_scroll_stepHandles single scroll step. Adjusts scroll position +0x21 by +1 or -1 based on param sign, clamped to [0, max]. Triggers redraw if position changed
0x0081CF60323UIRuneSystem__on_rune_list_updateHandles rune list data update from server; rebuilds list view and resets selection
0x0081D0B0935UIRuneSystem__setup_default_stateInitializes default rune system state; sets first tab active, loads initial rune data
0x0081D460141UIRuneSystem__populate_rune_detailPopulates rune detail panel with description, stats, and requirements for selected rune
0x0081D4F0140UIRuneSystem__populate_upgrade_infoPopulates upgrade panel with cost, materials, and success rate for selected rune
0x0081D580112UIRuneSystem__on_child_list_notificationHandles child list control notifications. Msg 0x3c (page change): adjusts scrollbar range and position. Msg 0xab (list item select): sets selected index at +0x2f and redraws
0x0081D5F0189UIRuneSystem__on_container_messageHandles container widget messages. Msg 0x22: assigns string text to tab label (up to index 2). Msg 0x66: sets item ID at +0x48, updates state flags at +0x2b based on param4 value, redraws. Falls through to parent handler for other messages
0x0081D6B064UIRuneSystem__on_button_and_control_eventMain button/control event dispatcher. Handles: button clicks (0x23c=equip, 0x158=unequip, 0xc3=select, 0x1fd=upgrade, 0x24e-0x254=slot actions), scroll events (7/9/10), tab changes (0x16), page changes (0x3c). Sends packets 0xbd0/0xbd2/0xc16 to server. Shows confirmation dialogs for equip/unequip
0x0081DA20138UIRuneSystem__on_radio_and_text_eventHandles radio button and text field events from child controls. Msg 0xd: radio select - sets tab index at +0xc, redraws, notifies parent. Msg 0x16: sets selection index at +0x1f, redraws. Msg 0x4e: sets text string from param
0x0081DAB0125UIRuneSystem__on_messageMain message handler for UIRuneSystem window. Handles button clicks (msg 6), scroll (7/9/10), tab selection (0x16), timer events (0x3c), rune slot clicks (0x61), timer setup (0x69/0x6a), rune selection (0xa9), detail/action commands (0xab), and effect creation (0xb2). Delegates to UIWindow__handle_button_click at the end.
0x0081E3F0302UIRuneSystem__on_layout_initHandles layout initialization (msg 0xD). Parses param_4 data structure to extract 8 child control pointers (at offsets +2/+6/+10/+14/+18/+22/+26/+30) and their sizes (at offsets +34 through +48), storing them in fields 0x2E-0x3D. On msg 6/0xB8: clears a TLS field. Triggers repaint after layout setup.
0x0081E520169UIRuneSystem__on_page_navigateHandles page navigation for rune system. On msg 6/0x13c: decrements page index (scroll left, clamped to 0). On msg 6/0x13d: increments page index (scroll right, clamped to page_count - 10). On msg 0xa9: sets page offset based on selection.
0x0081E5D0543UIRuneSystem__on_craft_messageHandles rune crafting/upgrade messages. On msg 6/0xd7: calls switch_tab. On msg 6/0x197: checks inventory space and crafting cooldown, sends packet 0xbd8 (rune craft request) to server, sets pending flag. Shows error dialog if inventory full or cooldown active. On msg 0x3c: updates rune item detail.
0x0081E7F0154UIRuneSystem__on_rune_packet_commandHandles rune packet commands. On msg 6/0x23c with rate-limit check: sends packet 0xbce to server with rune ID. On msg 0x3c: refreshes child panels and populates rune detail. Forwards to parent via CEffect__notify_parent_of_state_change.
0x0081E89092UIRuneSystem__update_scrollbar_rangeCalculates visible item count from control height and element list size, then sets scrollbar range (max, page_size, total) via CUIScrollBar__set_range_and_position. Also resets a control field to 0.
0x0081E8F037UIRuneSystem__set_timer_deadlineStores a timer deadline at fields 0xB8/0xBC. Computes deadline as timeGetTime() + param_2, with param_3 as the high word carry.
0x0081E92067UIRuneSystem__set_selected_runeSets the currently selected rune for display. Stores rune data pointer at field 0x1F, updates max rune count on a child control, triggers repaint, and calls populate_rune_detail to fill in the detail panel.
0x0081E970224UIRuneSystem__switch_tabSwitches between rune system tabs (field 0x2F is tab index, max 2). Hides all 3 tab panels via msg 0xD/1, then shows the selected one via msg 0xD/0. Updates linked page data from CRuneSystemMgr and triggers repaint. Also manages upgrade table visibility on tab 1.
0x0081EA50710UIRuneSystem__populate_info_panelPopulates rune info/tooltip panel. Clears existing text entries, then iterates 5 data categories building formatted text with counts and names. For each category with entries, adds header from message string table and individual item strings. Updates scrollbar range at the end.
0x0081ED20873UIRuneSystem__set_rune_item_detailSets rune item detail display. Looks up item info, resolves sprite resource path (tries .bmp then .tga format), stores item name string, and updates linked page data. Also manages tab panel visibility based on whether an item is selected.
0x0081F09047UIRuneSystem__set_clamped_indexClamps param_2 to field 0x20 (max value) and stores in field 0x21. Triggers repaint if the value changed. Generic index-setting utility used by rune system UI.
0x0081F0C0357UIRuneSystem__update_rune_slot_displayUpdates rune slot display panel. Sets rune data pointer, updates max count and rune index on child controls, then iterates 7 slots checking activation flags and sending msg 0x66 with slot state (active/inactive/completed). Triggers layout refresh at the end.
0x0081F23071UIRuneSystem__set_selection_indexSets selection index (field 0x21) clamped to max (field 0x20), triggers repaint if changed, then stores param_2 in field 0x2F and forces a second repaint.
0x0081F280216UIRuneSystem__draw_level_barDraws level progress bar with current/max values and color at specified position
0x0081F360256UIRuneSystem__draw_rune_spriteDraws rune sprite at given position with optional greyed-out state overlay