Game Entity
CEntity, CEntity3D, CPlayerEntity, CSkillUnit, CItemSprite, CGroundItemEffect, entity state/spawn/render
| Address | Size | Name | Description |
|---|---|---|---|
| 0x00605980 | 1 | CEntityList__find_first_active_entity | Iterates entity pointer array at offset 0xBC, returns first entity with active flag (offset 0x1B0) set to 1 |
| 0x0063F2A0 | 78 | CEntity__dtor_sprite_part_node | Destructor for sprite part tree node - deletes node at offset+4 with size 0x4c |
| 0x0063F2F0 | 78 | CEntity__dtor_layer_priority_node | Destructor for layer priority tree node - deletes node at offset+4 with size 0x1c |
| 0x0063F340 | 223 | CEntity__map_insert_or_get_sprite_part | Inserts or retrieves sprite part entry in the entity's red-black tree map by key. Allocates 0x18 byte node if not found. Returns pointer to value at node+0x14. |
| 0x0063F420 | 223 | CEntity__map_insert_or_get_layer_priority | Inserts or retrieves layer priority entry in the entity's red-black tree map by key. Allocates 0x18 byte node if not found. Returns pointer to value at node+0x14. |
| 0x0063F500 | 1911 | CEntity__render_all_sprite_layers | Main entity sprite rendering function. Projects world coords to screen, computes scale, loads sprite resources, iterates through body parts (0-8) checking direction/state, renders each part with proper offsets, handles garment/robe overlays, and submits sprite quads to render queue. |
| 0x0063FC90 | 946 | CEntity__add_sprite_part_to_render_map | Adds a sprite part (body/head/accessory) to the entity's render map. Calls Lua GetLayerPriority to determine draw order. Creates a node with 48-byte sprite data (transform matrix, texture coords) and inserts into the sprite part tree. |
| 0x00640050 | 1206 | CEntity__render_shadow_sprites | Renders shadow sprite quads for entity body parts. Iterates through active parts, looks up skill tree detail entries, computes shadow vertices offset by a configurable amount, and submits shadow quads with multiple offset positions (7 directional offsets for shadow spread). |
| 0x00640510 | 1457 | CEntity__render_robe_sprite | Renders the robe/garment sprite overlay for an entity. Builds robe sprite paths (type0 and type1), loads resources, gets animated frame data, computes per-frame light values, applies render effects, and handles top-layer Lua check for draw ordering. Checks entity job ID for special robe-exempt entities (FF6, FF7, 1010). |
| 0x00640AD0 | 733 | CEntity__render_garment_shadow_quads | Renders 7 shadow quads for the garment/robe at various offset positions. Reads garment color from entity field 0x4f4, optionally applies color transformation based on GameSettings option 0xe5. Calls CSkillUnit__render_garment_sprite for each quad with offset increments. |
| 0x00640DB0 | 53 | CEntity__get_alternate_sprite_frame | Gets an alternate sprite frame for action types 2/3/4/8. Compares resource counts between type 1 and the requested type; if the requested type has a multiple of type 1's count, returns the scaled frame. Otherwise returns {0, nullptr}. |
| 0x00640E60 | 103 | CEntity__compute_direction_with_flip_tracking | Computes entity facing direction using calc_direction_from_delta and tracks flip state. Returns mapped direction (0/2/4) with special handling for direction 4->2 remap. Tracks whether entity crossed the flip boundary for smooth transitions. |
| 0x00640ED0 | 586 | CEntity__compute_sprite_part_offset | Computes the pixel offset for a specific sprite part relative to the body. For type 1 (body), computes from base frame. For types 2/3/4/8, gets animated frame data, computes offset between alternate and current frames, applies riding sprite Y-offset correction, and scales by anchor point ratios. |
| 0x00641130 | 375 | CEntity__get_doram_item_offset | Gets Doram-specific item position offset by calling Lua function 'OffsetItemPos_GetOffsetForDoram'. Returns {0,0} if the equip location is not a special equip type. Only applies to Doram race characters. |
| 0x006412B0 | 218 | CEntity__get_sprite_resource_by_type | Gets the sprite resource pointer for a given part type (0=body, 1=head). For type 0, checks entity field 0x48 count and loads from string at +0x1c. For type 1, checks field 0x444 count and loads from +0x478. Returns resource base + 0x110 or resource + 0x510. |
| 0x00641390 | 94 | CEntity__get_render_layer_count | Returns the number of render layers for a given sprite part type. Types 2/3/8 return 1. Type 4 returns 0x11 if entity field 0x458==0xb9 else 1. Default returns 0x101 with special cases for certain entity states (field 0x34 values 1 or 2) at high alpha. |
| 0x00641420 | 106 | CEntity__lookup_sprite_part_in_tree | Looks up a sprite part by index in the entity's render tree map. Returns a result struct {found, sprite_ptr, action_ptr} where found=1 if the index exists in the tree, 0 otherwise. |
| 0x00641490 | 177 | CEntity__init_sprite_part_map | Initializes the entity's sprite part map. Clears rendering state flags, then inserts entries for sprite part indices 2/3/4/8 and the main body into the map, storing resource pointers from entity fields 0x450/0x454/0x458/0x49c. Also calls format_to_iterator to populate head/accessory resources. |
| 0x00641550 | 17 | CEntity__has_valid_sprite_frame | Returns true if the sprite part at param_2 has a valid frame index (field +8 != -1). |
| 0x00641570 | 167 | CEntity__should_skip_sprite_layer | Determines if a sprite layer should be skipped for rendering. Returns 0 (skip) for types 5/6/7 when entity is in special state or action is in extended range with certain job IDs (FF6, FF7, 1010). Returns 0 for types 2/3/4 when entity field 0x6d is set. Returns 0 for type 8 when field 0x4d9 is clear. Returns 1 otherwise (render). |
| 0x00641620 | 552 | CEntity__get_sound_resource_name | Gets the sound resource name for a specific entity part type. For type 6, looks up the skill name string, strips the .wav extension if present, and returns it. For all other types, returns an empty string. Used to associate sound effects with sprite animations. |
| 0x00641850 | 1123 | CEntity__render_single_sprite_layer | Renders a single sprite layer for an entity body part. Iterates through detail entries, computes offsets (Doram offset + part offset + rotation), calls the virtual draw function, handles body/head-specific logic (aspect ratio for type 0, position tracking for type 1), applies render effects, status auras, and adds sprite parts to the render map. For type 0, also triggers robe sprite rendering. |
| 0x00641CD0 | 258 | CEntity__submit_all_sprite_quads | Iterates through all sprite parts in the entity's render tree and submits each as a quad to the render queue. Applies aspect ratio scaling to vertex positions. Uses either rotated or non-rotated sprite quad submission depending on special mode state. Traverses the red-black tree in-order. |
| 0x00641DE0 | 81 | CEntity__add_shadow_quad_with_offset | Adds a shadow quad by offsetting source vertices by (param_2, param_3) and inserting into the entity's sprite part render map with priority 5. |
| 0x00641E40 | 738 | CEntity__load_sprite_resources_for_parts | Loads sprite and action resources for all 9 body parts (indices 0-8). For each part, gets head resource pointer and skill resource. Special handling for part 1 (head): checks riding flag to substitute alternative head sprite, checks equip flag to load special weapon sprites. Stores resource pointers in entity's sprite part tree. Also initializes layer priority map for parts 2-4, checking guild skill IDs. |
| 0x00642130 | 42 | CEntity__expand_bounding_box_for_body_head | Expands the entity's bounding box to include the given vertices, but only for body (type 0) or head (type 1) parts, and only when entity field 0xa5 is set. |
| 0x006984D6 | 2 | CEntity__process_layer_priority_tree_node | WARNING (jumptable): Unable to track spacebase fully for stack |
| 0x006984FF | 53 | CEntity__process_layer_priority_tree_node | WARNING (jumptable): Unable to track spacebase fully for stack |
| 0x0080D6D0 | 89 | CEntityRenderer__destructor | Destructor for CEntityRenderer. Sets vtable, destroys internal RB-tree (sprite part map) via CReportStorage__destroy_tree_and_sentinel. |
| 0x0080D730 | 117 | CEntityRenderer__scalar_deleting_dtor | Scalar deleting destructor for CEntityRenderer. Sets vtable, destroys RB-tree, frees 0xC4 bytes if bit 0 set. |
| 0x0080D7B0 | 742 | CEntityRenderer__calc_sprite_frame_vertices | Calculates sprite frame vertex positions for entity rendering. Takes sprite frame data, scale, and offsets; computes screen-space quad coords, UV fog values, and ARGB color from sprite palette. Returns 1 if visible, 0 if culled by screen bounds. |
| 0x0080DAA0 | 255 | CEntityRenderer__apply_equipment_sprite_offset | Applies sprite position offsets for equipment layers (head=2, garment=3, robe=4). Adjusts X/Y position based on resolution threshold (DAT_0135f44c vs DAT_0112bb7c). |
| 0x0080DBA0 | 971 | CEntityRenderer__build_sprite_layer_front | Builds front-facing sprite layer for entity rendering. Loads robe sprite resources, iterates skill tree detail entries to compute sprite frame vertices. Pushes 12-byte render entries to the render list. Handles animation frames and fog depth. |
| 0x0080DF70 | 1068 | CEntityRenderer__build_sprite_layer_back | Builds back-facing sprite layer for entity rendering. Similar to front layer but pushes 16-byte entries (with extra layer flag). Handles top-layer Lua check for overlay positioning adjustments. |
| 0x0080E3A0 | 299 | CEntityRenderer__lua_get_draw_on_top | Queries Lua for DrawOnTop flag. Calls 'DrawOnTop' or 'New_DrawOnTop' depending on global flag DAT_0173353c. Returns 1 byte boolean indicating whether sprite should render on top layer. |
| 0x0080E4D0 | 1430 | CEntityRenderer__apply_item_position_offset | Applies item/equipment position offsets via Lua callback 'OffsetItemPos_GetUppingBottomIte...'. Handles per-job and per-equip-slot offset tables with resolution-dependent branching. For type 2 (body), also queries Lua for additional offset and applies it. |
| 0x0080EA80 | 5575 | CEntityRenderer__render_entity_full | Main entity render function. Sets up camera matrix, projects world position to screen, loads all sprite resources (body, head, weapon, accessory, robe palettes), iterates through equipment layers (0-8) building sprite render entries. Handles direction mapping, layer priority via Lua, guild skill checks, and bounding box computation. Output is a linked list of render entries. |
| 0x008105A0 | 5643 | CEntityRenderer__render_entity_to_list | Renders an entity to an output render list (param_2). Similar to render_entity_full but returns the list pointer. Projects entity to screen, loads all sprite resources, builds render entries per equipment layer, handles palette swaps, direction, and layer priority. Sets bounding box and visibility flag. |
| 0x00811C10 | 930 | CEntityRenderer__render_shadow | Renders entity shadow sprite. Loads shadow.spr and shadow.act resources, gets interpolated ground height, projects to screen, computes shadow quad vertices with scale from NPC location radius. Returns render entry pointer or 0 if not visible. |
| 0x008124B0 | 236 | CEntityRenderer__lua_set_layer_priority | Sets entity layer priority via Lua. Stores param_2 at offset 0xBC, calls Lua method with 'IsHelmRobe' and 'TB_Layer_Priority' string arguments to determine sprite rendering layer order. |
| 0x00CA83A0 | 606 | CEntity__ctor | Constructs CEntity (inherits CSprite). Calls CSprite__ctor_base, sets vtable to CEntity, initializes pathfinder (two 0x40-byte linked lists), four 0xC-byte linked lists, one 0x14-byte RB-tree, and calls CEntity__reset_all_state_fields. |
| 0x00CA88E0 | 67 | CEntity__free_pathfinder_node | Frees a 0x40-byte pathfinder linked list sentinel node of CEntity if it exists. |
| 0x00CA89D0 | 78 | CEntity__free_pathfinder_sentinel_alt | Alt variant of CEntity pathfinder sentinel free. Frees 0x40-byte sentinel if exists. |
| 0x00CA8D70 | 321 | CEntity__dtor | Destructor for CEntity. Sets vtable, cleans up UI/sub-objects, clears map info tree, destroys linked lists for paths (0xC, 0x40 nodes), clears pathfinder vector, then calls CSprite__dtor. |
| 0x00CA90D0 | 345 | CEntity__scalar_deleting_dtor | Scalar deleting destructor for CEntity. Calls full CEntity dtor chain (UI cleanup, path lists, map info), then CSprite__dtor. Frees 0x410 bytes if flag bit 0 set. |
| 0x00CA9430 | 52 | CEntity__adjust_sprite_offset_for_riding | Adjusts sprite Y offset for riding/mount classes. Checks if entity type is 5 (pet/mount) and job ID is in riding class ranges (0x5248-0x5260 or 0x5817-0x588C), adds 4 to Y offset if so. |
| 0x00CA9E20 | 41 | CEntity__has_shield_equipped | Checks if entity has a shield equipped. Returns false for certain special job classes (via FUN_00e3d350), otherwise checks field 0x404 (shield slot) != 0. |
| 0x00CAA4D0 | 618 | CEntity__play_idle_combat_animation | Plays idle combat animation based on entity job class. Checks game option 0x6B first. Dispatches different action IDs (0x7D, 0x92, 0x93, 0x96, 0x97) based on weapon type: mount, magic classes, mech, special jobs. Uses weapon ID comparison with global weapon class IDs. |
| 0x00CAA870 | 296 | CEntity__dispatch_effect_by_id | Dispatches an effect by ID on an entity. For IDs < 0x9B5, directly calls CEntity__toggle_effect_by_id. For higher IDs, queries Lua function 'GetEffectType' to determine dispatch type: 0=toggle effect, 1=hat effect, 2=both, 3/4=effect with subtype. |
| 0x00CAA9B0 | 471 | CEntity__apply_hat_effect | Applies a hat effect to an entity. Calls Lua "GetHatEffectID" to resolve the effect ID from (param_2 - 0x9B5). If effect ID is 0xFE, checks if entity is a specific type and toggles flag 0x10 at offset 0x438. Creates a persistent effect via CEffectManager__create_effect and marks it as attached (offset 0xC8 = 1). Falls through to FUN_00cadd60 if effect creation fails. |
| 0x00CAABA0 | 111 | CEntity__toggle_effect_by_id | Toggles a visual effect on an entity. If param_3 is true, creates a new persistent effect (attached flag offset 0xC8 = 1) via CEffectManager. If param_3 is false, removes the effect by ID and type. Uses the entity's effect manager at offset 0x110. |
| 0x00CAAC10 | 100 | CEntity__toggle_effect_with_subtype | Toggles an effect on entity with a sub-type parameter. If param_4 is true, creates an effect using CEffectManager with the sub-type as last param. If false, adds the effect via CEffectMgr__add_effect_and_register using a different registration path. Uses entity's effect manager at offset 0x110. |
| 0x00CAAC80 | 843 | CEntity__clear_all_status_effects | Clears all status/visual effects from an entity. Sets flag at offset 0x2B8 to 0, then calls virtual method at vtable+8 (likely remove_effect) with effect IDs: 200, 0x3D0-0x3D3, 0x3FE-0x3FF, 0x4CA-0x4CB, 0x2F5, 0x370, 0x18D-0x18E, 0x16A, 0xC9-0xCA, and two global DAT values. These correspond to various RO status effects (body auras, shadows, etc). |
| 0x00CAAFD0 | 77 | CEntity__destroy_status_window | Destroys the entity's status window UI. Checks if a global state is valid (FUN_00e1dfb0), then if the window pointer at offset 0x188 is non-null, unregisters it from CUIWindowMgr and sets the pointer to null. |
| 0x00CAB020 | 292 | CEntity__clear_attached_entity_slot | Clears an attached entity reference slot on this entity. Checks 13 slots at offsets 0x37C-0x3AC; if any matches the given entity ID (param_2), sets that slot to 0. Slots likely represent attached entities like pets, homunculus, elemental, mercenary, etc. |
| 0x00CAB150 | 36 | CEntity__destroy_tooltip_window | Destroys the entity's tooltip/info window. If the window handle at offset 0x18C is non-null, unregisters it from CUIWindowMgr and nulls the pointer. |
| 0x00CAB180 | 1130 | CEntity__render_with_aura_and_shadow | CEntity: render with aura and shadow |
| 0x00CAB610 | 290 | CEntity__find_path_with_speed_adjust | Finds a path for entity movement with speed adjustment. If global speed override (DAT_016f7144) is active, adjusts the speed parameter using EffectMap frame rate. Calls CPathFinder__find_path_astar, then checks if the last waypoint direction exceeds the param. If so, retries with 10/13 of the original speed (walking speed reduction). Stores final speed at offset 0x254. |
| 0x00CAB7F0 | 303 | CEntity__get_direction_index | Gets the direction index for this entity from an angle, with special handling for certain entity types. Gets camera rotation, subtracts param angle, normalizes to [0, 360). Checks entity job class via FUN_00cabfa0: if the entity is a boss/NPC type (job 46-999) with non-zero action state (offset 0x34), or if it's a rideable mount type (FUN_00e1dce0), uses a different angle division formula for 8-direction mapping. |
| 0x00CAB990 | 18 | CEntity__get_head_direction | Gets the head direction of this entity. Returns 0 if the entity's sub-object at offset 0x108 is null, otherwise delegates to get_field_offset_0x14 to retrieve the head direction value. |
| 0x00CAB9B0 | 7 | CEntity__get_head_sprite_ptr | Returns the head/sub-sprite object pointer at offset 0x108. Used by CEntity__get_head_direction to access head direction data. |
| 0x00CAB9C0 | 293 | CEntity__get_sprite_height_for_action | Returns the sprite height (as a char value) based on the entity's current action type. Large switch statement mapping action IDs to heights: 0=0, 1=8, 2/0x2B/0x2C/etc=80('P'), 3=64('@'), 4=48('0'), 5/0x14/0x19=24, 9/0x12/etc=88('X'), 0xB=32(' '), 0xC/0x13/etc=40('('), 0xD=special (checks mount status), 0x10-0x51 range=96('`'), 0x4A/0x4B=104('h'). Action 0x1A has sub-cases for specific job IDs (0xFD1,0x1083,etc). |
| 0x00CABC80 | 176 | CEntity__get_body_direction_offset | Calculates a body direction offset for the entity based on its type and state. Checks if entity is a specific mounted/special type, then if it's of a certain class (FUN_00dfa600). Returns +10 or -20 depending on offset 0x2CC flag for mounted entities, -40 or -30 for special class, and 0 or +30 for normal entities. |
| 0x00CABD30 | 7 | CEntity__get_shield_id | Returns the shield equipment ID at offset 0x404. Returns 0 if no shield equipped. Used by CEntity__has_shield_equipped. |
| 0x00CABD40 | 146 | CEntity__find_skill_tree_node_by_name | Searches the entity's skill tree for a node matching a specific skill name (at DAT_011a067c). Iterates through all tree nodes via UISkillWnd__get_tree_node_count and UISkillWnd__get_skill_tree_node, comparing each node's skill name string. Returns the index of the matching node, or (count - 2) if not found (and count != 1). |
| 0x00CABDE0 | 127 | CEntity__apply_speed_modifier_from_status | Applies a movement speed modifier based on the entity's status flags. Only acts if flag 0x10 is set at offset 0xE8. Reads a multiplier byte at offset 0xF0 and uses a lookup table (DAT_01387FA8) to compute a scaling factor. Values above 0x10E result in a flat constant multiplier; otherwise uses a table-based formula with the byte value * 16 as offset. |
| 0x00CABFA0 | 1049 | CEntity__get_effective_job_id | Gets the effective job/class ID for the entity, accounting for class transformations. If param is -1, uses the entity's stored job ID at offset 0x25C. Checks various class transformation functions and returns mapped job IDs: baby classes (0x16), super novice variants (0x1A-0x1E), Taekwon ranks. For mounted/costume classes, remaps specific job IDs (e.g., 0xFC5->0xFCC, 0xFA8->0xFAE). Also handles Doram, Star Emperor, Soul Reaper class variants with special costume weapon IDs. Returns original job if no transformation applies. |
| 0x00CAC760 | 35 | CEntity__get_garment_sprite_id | Gets the garment/robe sprite ID for this entity. If the costume type at offset 0x404 is 1, returns 0x1104; if 2, returns 0x1105; otherwise returns the stored garment ID from offset 0x25C. |
| 0x00CAC790 | 1390 | CEntity__get_encrypted_sprite_path | Returns an encrypted sprite file path based on gender (param_2: 1=male, 2=female) and job class ID (param_3). Uses XOR-encrypted string buffers stored in TLS for different class/gender combinations (job IDs 0x1101-0x1103 and others). Each path has separate encrypted data and decrypt-on-first-use pattern with xor_decrypt_buffer. The encrypted paths likely point to sprite resource files for different character classes. |
| 0x00CACD00 | 99 | CEntity__get_sprite_path | Gets the sprite path for this entity. Delegates to CEntity__get_encrypted_sprite_path using the entity's gender (offset 0x404) and job ID (offset 0x25C). Returns the path string. |
| 0x00CACD70 | 91 | CEntity__get_weapon_type_for_job | Determines the weapon display type for the entity based on its effective job ID. Returns 3 for certain classic jobs (Thief, Assassin, wedding), 5 for Doram classes and 4th jobs (0xFF0-0x1010, 0x10B6-0x10B9), and 0 for all other jobs. These likely control which weapon sprite set to use. |
| 0x00CACE40 | 93 | CEntity__compute_attack_speed_multiplier | Computes the attack speed animation multiplier for the entity. If the entity has a valid status (offset 0x108 != 0) and a positive speed value (offset 0x64), gets a float value from UISkillWnd, clamps it to a minimum threshold (DAT_010dc098), and multiplies by the speed. Returns 1.0 if no valid status or zero speed. |
| 0x00CACEA0 | 67 | CEntity__get_scaled_skill_value | Returns a scaled skill value based on a float from UISkillWnd. If the entity sub-object (offset 0x108) exists and param_3 is positive, gets a float value from UISkillWnd for param_2. Clamps the minimum to DAT_010dc098 and multiplies by param_3. Returns 1.0 if conditions are not met. |
| 0x00CACEF0 | 41 | CEntity__get_sub_entity_by_index | Returns a pointer to a sub-entity structure by index. Index 0 returns offset 0x318, index 1 returns offset 0x348, otherwise returns null. These offsets likely correspond to equipment overlay or attachment sub-entities (e.g., head gear, shield). |
| 0x00CAD420 | 81 | CEntity__get_attached_entity_for_skill | Gets the attached entity ID for a given skill ID. Skills 0x81, 0x17D, 0x14CE, 0x14D1, 0x1978 return the entity from slot 0x37C (pet/homunculus). Skills 0x8C3, 0x8C4 return from slot 0x380 (elemental). Returns 0 for unrecognized skills. |
| 0x00CAD480 | 41 | CEntity__get_sub_entity_by_index_b | Returns a pointer to a sub-entity structure by index (variant B with different offsets). Index 0 returns offset 0x330, index 1 returns offset 0x360, otherwise returns null. Similar to get_sub_entity_by_index but at different struct offsets. |
| 0x00CAD4B0 | 541 | CEntity__get_mount_sprite_scale_x | Calculates the X-axis sprite scale for mounted entities. Starts with base scale modified by status flag 0x10 at offset 0xE8 (speed modifier table). Then checks effective job ID to determine mount-specific scaling: mounted classes (0xFC4, 0xFCC, 0x100D-0x1010) use a smaller scale, dragon/mech mounts (0xFB6, 0xFF0-0xFFF, 0x10B6-0x10B9) use a standard mount scale. For rideable entities, checks the specific mount type at offset 0x4D4 (Peco=0, Gryphon=0xFA1, Dragon=0x105E) to apply different scales (0, double, or standard). |
| 0x00CAD780 | 321 | CEntity__get_mount_sprite_scale_y | Calculates the Y-axis sprite scale for mounted entities. Similar logic to get_mount_sprite_scale_x but returns Y-specific scale values from different globals. Dragon/mech mounts return DAT_011425ec, mounted classes return a different Y scale, and normal entities return DAT_01117e28. |
| 0x00CAD990 | 7 | CEntity__get_sprite_resource_handle | Returns the sprite resource handle at offset 0x104. This field stores the loaded .spr resource (e.g., cursors.spr or NPC sprite) set during init_cursor_sprites and init_npc_sprite_and_state. |
| 0x00CAD9A0 | 64 | CEntity__get_elapsed_time_seconds | Returns the elapsed time in seconds since the entity's timestamp at offset 0x8C. Uses timeGetTime() to get current time, computes the delta, and converts from milliseconds to seconds by dividing by 1000.0. |
| 0x00CAD9E0 | 214 | CEntity__get_target_position | Gets the 3D position of a target entity by ID. If target ID matches the player's own ID (DAT_01733c3c), returns the camera/player position. Otherwise searches for the entity via CBGMManager__find_map_by_id_no_cache. If found, copies its position. If not found, mirrors own position relative to player (extrapolation). Returns 1 if target was found, 0 otherwise. |
| 0x00CADAF0 | 21 | CEntity__get_weapon_attack_range | Gets the weapon attack range for this entity. Returns -1 if the sub-object at offset 0x300 is null. Otherwise returns the value at sub-object offset 0xA0, which represents the equipped weapon's attack range. |
| 0x00CADB10 | 21 | CEntity__get_weapon_attack_range_b | Gets the weapon attack range (variant B, offset 0xA4) for this entity. Returns -1 if sub-object at offset 0x300 is null. Otherwise returns value from sub-object offset 0xA4. Likely the secondary/left-hand weapon range. |
| 0x00CADB70 | 11 | CEntity__has_costume_garment | Returns true if the entity has a costume garment equipped. Checks if the costume type field at offset 0x404 is non-zero. |
| 0x00CADBE0 | 54 | CEntity__has_attached_effect_with_id | Checks if the entity has an attached effect with a specific effect ID. Iterates through the linked list at offset 0x144, checking each node's effect object (node[2]) at its offset 0x168 for a match with param_2. Returns true if found. |
| 0x00CADC20 | 24 | CEntity__is_visible_and_active | Returns true if the entity is both visible (offset 0xA0 != 0) and active (offset 0xA1 != 0). Both flags must be set for the entity to be considered visible and active. |
| 0x00CADC40 | 55 | CEntity__has_effect_object_in_list | Checks if a specific effect object pointer exists in the entity's effect list. If the list count at offset 0x148 is non-zero, iterates the linked list at offset 0x144 comparing each node's data pointer (node[2]) to param_2. Returns true if found. |
| 0x00CADCC0 | 11 | CEntity__has_guild_emblem | Returns true if the entity has a guild emblem. Checks if the guild emblem ID at offset 0x2AC is non-zero. |
| 0x00CADCF0 | 49 | CEntity__update_timestamp_and_check_newer | Updates the entity's timestamp at offsets 0x3EC (high) and 0x3E8 (low) with the given values. Returns 1 if the new timestamp is strictly newer than the previous one. Used for packet ordering to discard stale updates. |
| 0x00CADD60 | 909 | CEntity__create_skill_effect | Creates a skill visual effect and attaches it to the entity. Manages an 8-entry history ring buffer (DAT_0171dd30-4C). Effect ID 0x7F sets a flag and shifts history. IDs 0-60000 are valid. Special cases: 0x345 uses helper_00611ed0, 0x98C creates a custom effect with vtable PTR_FUN_011a0050. Calls Lua 'IsForceRenderEffect' to check rendering. Sets up 3D vectors, creates a CSkillEffectManager, adds to the entity's linked effect list at offset 0x144. Returns the effect object pointer or null. |
| 0x00CAE1B0 | 506 | CEntity__update_effect_set | Updates the entity's persistent effect set (red-black tree at offset 0x3FC). If param_3 is false, removes the effect and disables it. If true, first disables all existing effects in the set, inserts the new effect ID into the tree (max 0xCCCCCCC entries), then re-enables all effects. Uses FUN_00caa870 to toggle effects on/off and FUN_00cc4900 for removal. |
| 0x00CAE3B0 | 333 | CEntity__spawn_skill_projectile | Spawns a skill projectile entity (0x4F8 bytes). Allocates via operator_new, constructs via FUN_00da7700, sets target flag at offset 0x260, calls FUN_00cc2340 to init, then sets various properties via virtual methods (position, direction, etc). Creates a sub-entity (0x518 bytes) via FUN_00da17a0, copies position from param_4, sets initial color to white (0xFF at 0x98, 0xFFFF at 0x99). Adds to the global render list. |
| 0x00CAE500 | 210 | CEntity__spawn_death_effect | Spawns the entity's death/destroy visual effect. Gets head/body directions, constructs the effect via FUN_00cd8740 with entity position. Copies the animation timer from param_1 offset 0x10C if positive. Looks for effect 0x946 in the entity's effect manager and inherits its source reference at offset 0x138->0x48. |
| 0x00CAE5E0 | 94 | CEntity__handle_entity_click_interaction | Handles entity click/interaction. Only proceeds if game state is valid and target is not the local player. Gets the entity's account ID via virtual method, looks up resource via CResourceCache, then creates a chat bubble/interaction display via CGameMode. |
| 0x00CAE640 | 325 | CEntity__check_and_apply_guild_skill_effect | Checks if a guild skill flag applies to this entity and creates the corresponding effect. Iterates through guild skill entries checking offsets 0x48/0x54. For each entry, compares the skill's entity reference. If matching and the entity doesn't already have effect 0xA0 (guild aura) attached, creates it via CEntity__create_skill_effect. |
| 0x00CAE790 | 689 | CEntity__dispatch_skill_effect_by_id | Giant skill effect dispatcher. Routes skill IDs to appropriate effect creation functions based on the entity's job class. Three main paths: FUN_00cd8000 for ground-targeted skills (fire bolt, etc), FUN_00cdbc30 for projectile/area skills, and FUN_00cd8f30 for simple directional skills. Covers hundreds of RO skill IDs organized by ranges (3rd class skills 0x5000+, 4th class 0x5600+, etc). |
| 0x00CAF030 | 23 | CEntity__create_dialog_bubble | Wrapper that creates a dialog bubble widget for this entity. Gets global game mode state and delegates to CGameMode__create_entity_dialog_bubble to create a UIDialogWithStrings widget at offset 0x18C. |
| 0x00CAF050 | 282 | CEntity__adjust_color_rgba | Adjusts the entity's RGBA color values by delta amounts. Only applies if the entity is not locked (offset 0xA3 == 0). Adds the deltas (params 2-5) to the stored RGBA bytes at offsets 0x98-0x9B, clamping each component to [0, 255]. R at 0x9B, G at 0x9A, B at 0x99, A at 0x98. |
| 0x00CAF170 | 229 | CEntity__destroy_all_attached_effects | Destroys all attached effects on this entity. Iterates the linked list at offset 0x144, calling each effect's virtual method at vtable+0x40 (destroy/cleanup with params 0x18). Then removes all nodes from the list, freeing each 0xC-byte node. Decrements the list count at offset 0x148 and zeros out counters at 0x14C and 0x150. |
| 0x00CAF260 | 530 | CEntity__cleanup_all_ui_and_sub_objects | Comprehensive cleanup of all entity sub-objects and UI elements. Destroys sprite objects at 0x30C and 0x310 (calling their destructors). Unregisters UI windows at offsets 0x264, 0x268, 0x26C, 0x270, 0x274, 0x300. Iterates and destroys the list at 0x3B0 (calling vtable+8 with action 0x31). Destroys status window at 0x188 (also removes from entity list) and tooltip at 0x18C. |
| 0x00CAF4F0 | 995 | CEntity__reset_all_state_fields | Resets all entity state fields to their initial values. Clears numerous fields: position, rotation, scale (set to 1.0), color, status flags, animation state, timers (set from timeGetTime), action IDs, equipment slots, stat values, guild info, etc. Essentially reinitializes the entity to a blank state. Sets initial action at offset 0x26 to -1, byte flag at offset 0xA4 to 1, and various timer offsets to current time minus offsets. |
| 0x00CAF8F0 | 152 | CEntity__init_cursor_sprites | Initializes the entity's cursor/selection sprites. Zeroes interaction flag at offset 0x138, sets visible+active flags. Loads "cursors.spr" and "cursors.act" resources via CResourceMgr, storing handles at offsets 0x104 and 0x108 with reference counting. Calls virtual method at vtable+0x1C with params (3,2,0) to set initial animation state. |
| 0x00CAF990 | 708 | CEntity__init_npc_sprite_and_state | Initializes an NPC entity's sprite and state. Zeros position, rotation, scale (set to 1.0), color (white, fully opaque). Loads NPC sprite/act files using the NPC name from FUN_00dde5c0 (format "NPC\\%s.spr"/"NPC\\%s.act"). Stores resource handles at 0x104/0x108 with ref counting. Clears numerous state fields, sets animation speed default at 0xC2 to 10, enables flag at 0xB4. Clears the linked list at 0x11C. |
| 0x00CAFC60 | 184 | CEntity__replace_attached_effect | Replaces an attached effect on the entity. First removes all existing instances of the effect (by ID param_2) by repeatedly calling the remove virtual method until none remain. If param_3 is true, creates a new instance of the effect via CEffectManager__create_effect, then sets its position (vtable+0x20) and rotation (vtable+0x28) from the provided parameters. |
| 0x00CAFD30 | 138 | CEntity__update_sprite_animation | Updates the entity's sprite animation frame. Copies current action to previous, calculates elapsed time since creation (offset 0x8C), divides by frame speed (offset 0x58) and modulates by frame count to get current frame index. If entity has a lifetime counter (offset 0x138), decrements it and sets invisible (offset 0xA0=0) when it reaches zero. Returns 1. |
| 0x00CAFDD0 | 233 | CEntity__generate_grayscale_palette | Generates a grayscale palette from a color palette. Reads 256 color entries from offset 0x510, extracts RGB components from packed 16-bit color format (5 bits per channel), computes average gray value ((R+G+B)/3), and writes back as RGBA grayscale. Uses the stub_0056f7b0 function to apply the result back to the palette buffer. |
| 0x00CAFEC0 | 27 | CEntity__recalculate_frame_offset | Recalculates the frame offset for the entity's animation. Calls virtual method at vtable+0x10 to get the action frame count for the current direction (param_1[0x13]), adds it to the base action index (offset 0x34) and stores result at offset 0x38. |
| 0x00CAFEE0 | 24 | CEntity__enable_special_movement_flag | Sets a special movement flag at offset 0x9E to 1 if the entity's class mode at offset 0x2BC is 1 or 2. Likely enables special movement animations for mounted or transformed entities. |
| 0x00CAFF00 | 794 | CEntity__update_overhead_ui_positions | Updates the screen positions of overhead UI elements (chat bubbles, name plates, HP bar, etc). Calculates a Y scale factor based on viewport height. Positions chat bubble (offset 0x264) with timeout check (5 seconds), name plate (offset 0x268), guild name (offset 0x26C), HP/SP bar (offset 0x270) with scroll range update, and title (offset 0x274). All positions are offset from the entity's screen coordinates (offsets 0xAC/0xB0) with the Y scale applied. |
| 0x00CB0220 | 327 | CEntity__update_idle_effects | Updates idle/passive effects on the entity. Clears status effect flags when DAT_0173ad54 is positive and flag is 1. Checks entity class for special types: if is_specific_class returns true, sets the effect timer to 36000. Otherwise checks for two different idle animation states and creates skill effects 0x16 or 0x21 when cooldown timers expire. Increments the effect timer at offset 0x2D8 each frame. |
| 0x00CB03E0 | 284 | CEntity__update_hp_bar_display | Updates the HP bar display for this entity. Only shows if game setting 0xD5 (show HP bars) is enabled and the entity has HP data at offset 0x300. Hides the bar if the entity is invisible, dead, or in BG mode 2. Otherwise shows it (virtual call at vtable+0x38), sets HP value if action state is 3, scales the bar position to screen coordinates, and positions it above the entity. |
| 0x00CB0500 | 1418 | CEntity__update_animation_state | Complex animation state machine update for entities. Handles frame calculation, action transitions, and multi-frame animation sequences. Manages three animation modes: simple time-based frame cycling, scripted frame sequences (with forward/reverse playback and looping), and table-driven frame animations. Uses timeGetTime for frame timing. Handles action 0x2D (loading a special resource). Detects animation completion (offset 0x9D=1) and manages reverse playback (offset 0xFE). Extensive logic for combining body/head animations with proper frame clamping. |
| 0x00CB0A90 | 62 | CEntity__update_animation_frame_from_distance | Updates the animation frame index based on distance traveled (offset 0x240). Multiplies distance by a constant and 4.0, divides by frame speed (offset 0x58), then modulates by frame count to get the current frame. Returns the cycle count (number of full animation loops completed). |
| 0x00CB0AD0 | 1271 | CEntity__play_animation_sounds | Plays sounds associated with animation frames. Compares current frame (0x3C) with previous frame (0x44) and plays sounds for any new frames reached. Iterates through animation tree nodes, gets skill name strings, checks for sound file references (searches for ".wav" pattern). For forward animation, plays sounds from old frame to new. For wrapped/reverse animation, plays remaining frames then loops from start. Positions sounds in 3D relative to the camera. |
| 0x00CB0FD0 | 2218 | CEntity__update_movement_and_actions | Main entity update tick handling movement, action states, and fade-out. Handles fade-out timer at offset 0x2DC (alpha decay). Large switch on action state (offset 0x1C): 0=idle (with random NPC idle animations), 1=walking (pathfinding position interpolation with direction calculation using atan2), 3=attack (calls virtual attack handler, handles monster/NPC death removal), 4=knockback (linear interpolation from current to target position), 5/7/0x2D=skill/emote actions, 8=dead (periodic warp check on party members), 0xD=sitting (with mount animation variants). Updates ground height via C3dAttr__GetInterpolatedHeight and applies position offsets. |
| 0x00CB18E0 | 69 | CEntity__update_fade_alpha | Updates the entity's fade-out alpha value. If the fade timer at offset 0x2DC is set, checks if it has expired (returns 0 to signal removal). If still active, calculates remaining time / 2 as the alpha value (clamped to 255) and stores at offset 0x9B. Returns 1 to keep entity alive. |
| 0x00CB1930 | 1806 | CEntity__process_damage_queue | Processes the entity's pending damage number queue (linked list at offset 0x2A8). For each expired entry, resolves attacker and target names (with '#' character stripping for anonymized names), formats damage messages using CMessageStringTable (msg IDs 0x644-0x648) based on whether the local player is attacker/target, and dispatches chat messages with color coding (0xFFFF for self-damage, 0xC8C8FF for observed damage). Removes processed entries from the linked list. |
| 0x00CB2040 | 90 | CEntity__send_map_click_command | Sends a map click command to the game mode. Converts the entity's world position (X,Z at offsets 0x10, 0x18) to map coordinates via FUN_00cd5230, then dispatches command 0xC with the entity's ID (offset 0x110) and map coordinates to the global game mode handler. |
| 0x00CB20B0 | 59 | CEntity__render_sprite_if_visible | Renders the entity's sprite if it is visible (offset 0xA0 != 0). Calls FUN_00cb35f0 with the view matrix and scale factor, then calls FUN_00cb20f0 for the full render pass with default parameters. |
| 0x00CB20F0 | 1842 | CEntity__render_sprite_full | Full sprite rendering pipeline for entities. On special days (DAT_01737a88==1), loads alternate sprites based on day-of-month (cycles through 3 sprite sets). Transforms entity world position through view matrix, projects to screen coordinates. Iterates through all sprite layers in the animation frame, calling virtual render method for each layer. Handles aura rendering (flag 0x100 = fade gradient, 0x4000 = green tint, 0x40000 = red tint). Applies palette overrides and RSM object height offsets. Updates screen bounding box for UI positioning. |
| 0x00CB2830 | 3396 | CEntity__render_multi_layer_skill_sprite | Renders a multi-layered skill effect sprite with up to 8 layers (0-7). Each layer loads different sprite/act resources based on the skill ID (param_3). Layer 0 uses the entity's base sprite, layers 1-3 load numbered variants with job class-specific paths, layer 4+ loads named effect sprites via a giant switch on skill IDs (0x1781-0x179E range - Kagerou/Oboro ninja skills). Handles sprite alignment offsets between layers and applies palette overrides. Projects to screen coordinates and calls the render pipeline for each visible layer. |
| 0x00CB35F0 | 933 | CEntity__render_shadow | Renders the entity's ground shadow. Skips for entity 0x235 (specific NPC), or if not initialized or scale is zero. Loads "shadow.spr"/"shadow.act" resources, projects entity position to screen, computes shadow quad vertices with scale from the shadow sprite dimensions. Applies perspective correction for Z-depth and adds to the render queue. Shadow size scales with entity's Y scale factor (offset 0x54) and the passed param_3. |
| 0x00CB3FA0 | 77 | CEntity__set_animation_speed | Sets the entity's animation frame speed. Multiplies the input speed by a float value from UISkillWnd for the current action. If the global speed override (DAT_016f7144) is active, further scales by EffectMap__get_time_scale_by_speed. Only applies if the result exceeds a minimum threshold. Stores at offset 0x58. |
| 0x00CB4030 | 54 | CEntity__find_attached_effect_by_id | Searches the entity's attached effect list for an effect with a specific ID. Iterates the linked list at offset 0x144, checking each node's effect object (node[2]) at offset 0x168 for a match. Returns the effect object pointer, or 0 if not found. |
| 0x00CB4070 | 129 | CEntity__apply_costume_garment_change | Applies a costume garment change to the entity. Copies the pending garment type from offset 0x408 to 0x404, clears pending. Resets visibility flags and action completion markers. Maps garment type 1 to sprite ID 0x1104, type 2 to 0x1105, otherwise uses stored garment ID from offset 0x25C. Calls virtual method at vtable+0x54 to load the new garment sprite, then vtable+0x80 to refresh. Sets idle state if not in attack action. |
| 0x00CB4100 | 113 | CEntity__dispatch_action_by_type | Dispatches an entity action by type using a jump table. Validates the action type (param_2) is in range 0x17-0x9F with param_3 == 0, then uses an indexed jump table (at PTR_LAB_00cb4740) to call the appropriate handler. The jump table covers approximately 160 different action types for the entity system. |
| 0x00CB4800 | 406 | CEntity__process_action_table_entry | Processes an action table entry for the entity. Validates the entity is not the local player (DAT_01733c3c), is not invisible (bit1), not dead (bit6), and not in BG mode (bit14) before dispatching. Uses a jump table indexed by param_3 (range 0-0xA0) to handle specific action types. Falls through to CEntity__dispatch_action_by_type for unhandled cases. The jump table at PTR_LAB_00cbec04 covers entity state transitions, equipment changes, and visual effect triggers. |
| 0x00CBF860 | 183 | CEntity__handle_marker_placement | Handles placement/visibility of ground marker entities. If param_3==1 and param_4==0: sets world position from param_5, calculates Y height via C3dAttr__GetInterpolatedHeight, makes visible (0xA0=1), clears lifetime. Sets color to red (0xFFFF0000) if param_7 or param_8 is non-zero, otherwise white. If param_3==2 and param_4==0: either sets lifetime from param_5/param_6, or hides the marker (0xA0=0) if both are zero. |
| 0x00CBF930 | 58 | CEntity__load_act_resource | Loads an ACT (animation action) resource file for the entity. Releases the existing resource at offset 0x108 if present, then loads the new one via CResourceMgr__load_resource_by_path and increments its reference count. |
| 0x00CBF970 | 362 | CEntity__set_action_with_speed_calc | Sets the entity's current action with full animation speed calculation. Validates action index against the ACT resource frame count (for type 7 entities). Calculates frame speed using UISkillWnd__get_float_value multiplied by optional EffectMap speed. Applies a secondary multiplier from offset 0x64. Clamps minimum to 1.0 or the EffectMap speed. Sets action (offset 0x34), resets frame counter (0x3C=0), clears animation completion flag (0x9D), and resets various sub-animation fields. |
| 0x00CBFAE0 | 286 | CEntity__set_action_simple | Simplified version of set_action_with_speed_calc. Same animation speed calculation logic but without the initial ACT resource validation. Sets action index, resets frame counter and completion flag, and clears sub-animation fields. Does not reset offset 0x238 or 0x378. |
| 0x00CBFC00 | 63 | CEntity__set_color_rgba_direct | Directly sets the entity's RGBA color components. Each parameter (-1 means skip/unchanged): param_2=R (offset 0x9B), param_3=G (offset 0x9A), param_4=B (offset 0x99), param_5=A (offset 0x98). Values are stored as bytes. |
| 0x00CBFC40 | 6144 | CPlayerEntity__apply_status_flag_effects | Processes player entity status flags and applies visual effects. 6.1K bytes. Called by CPlayerEntity__initialize_local_player. Compares and extracts individual bit flags (bits 1-25), creates/destroys skill effects, updates status windows, triggers combat animations based on status changes. |
| 0x00CC1490 | 225 | CEntity__get_attack_animation_resource | Gets the appropriate attack animation sprite resource based on action state. For param_2==0xF and param_3==3: cycles through attack animation frames (counter at 0xF7), loading alternate sprite resource (DAT_011a05BC) when counter > 19, resetting at 40. For param_3==0: handles special attack states (offset 0xFE values 1 or 3), cycling through 3 attack animation variants at different rates (counter at offset 0x100/0xFF). Loads resources from paths at DAT_011a054C, 011a0570, 011a0594. |
| 0x00CC1580 | 99 | CEntity__apply_body_rotation_from_status | Applies body rotation offset based on the entity's status flag 0x40 at offset 0xE8. If the flag is set and the rotation index (offset 0xF4) is less than 37, looks up a rotation value from the table at DAT_01388110 and computes an angular offset. Wraps the value to [0, 360) range. Sets the result to param_2 output. |
| 0x00CC15F0 | 323 | CEntity__calculate_sway_offset | Calculates a swaying/wobbling offset for entity rendering. Increments a rotation counter (offset 0xF8) by 2, wrapping at 360. Manages a sway magnitude counter (offset 0xFA) that increases when idle/walking or in special states, decreases in other action states. The sway is computed from a sine lookup table (DAT_01387FA8) combined with the magnitude, then scaled by camera perspective. Returns the sway amount as a screen-space offset. |
| 0x00CC1740 | 195 | CEntity__render_status_aura_overlays | Renders additional sprite overlays based on entity status flags. Flag 0x100: renders a fade gradient overlay with color based on concentration level (offset 0xF4, 6 levels). Flag 0x4000: renders a green-tinted overlay (5,5,255). Flag 0x40000: renders a red-tinted overlay (255,5,5). Uses submit_sprite_quad_to_render_queue for the gradient and FUN_00cc1c40 for colored overlays. |
| 0x00CC1810 | 218 | CEntity__apply_size_modifier_from_status | Applies sprite size modifiers based on entity status flags. Flag 0x10 at offset 0xE8: applies a growth modifier from a table lookup (offset 0xF0 as index into DAT_01387FA8), scaling up to 2x. Flag 0x400: applies a shrink modifier from a similar table (offset 0xF1), reducing to about 0.5x. Both use sine-based interpolation for smooth transitions. |
| 0x00CC18F0 | 263 | CEntity__apply_rotation_position_offset | Applies a position offset based on the entity's rotation status (flag 0x40 at offset 0xE8). Computes an angular offset from the rotation table at DAT_01388110, then applies sine/cosine displacement to the X/Y screen coordinates (param_3/param_4). Uses different scale factors depending on param_2 (1 = large offset using DAT_01114248, >1 = smaller offset using DAT_010dd24C). |
| 0x00CC1A00 | 210 | CEntity__get_attack_animation_resource_b | Variant B of get_attack_animation_resource. Same cycling logic through attack animation states (offsets 0xFE, 0xFF, 0x100, 0xF7) but loads from different resource paths (DAT_011a05E4, 011a0608, 011a062C, 011a0654). Used for different weapon/class attack animations. |
| 0x00CC1AE0 | 311 | CEntity__apply_sprite_stretch_from_status | Applies vertical sprite stretching/squishing based on entity status flags. Flag 0x80: stretches sprite vertically using a table-based modifier at offset 0xF4 (phases: growing to max, then shrinking). Flag 0x20: applies a squeeze/shake effect with random jitter (uses rand() for phases 4-33), creating a wobble animation. Both modify the Y bounds passed via param_2/param_3. |
| 0x00CC1C20 | 25 | CEntity__set_palette_and_type | Sets the entity's palette type byte at offset 0x305 and palette ID at offset 0x308. |
| 0x00CC1C40 | 213 | CEntity__render_colored_aura_overlay | Renders a colored aura overlay on the entity. Uses the aura intensity byte at offset 0xF6 to compute the color: values 0-10 use direct intensity*15, values 11-20 use fixed intensity with color offset, values 21-50 use a fading formula. Combines with R/G/B params (param_3-5) into an ARGB color at param_2+0x18, then submits two sprite quads for the overlay effect. Only renders if intensity < 51. |
| 0x00CC1D20 | 28 | CEntity__update_max_hp_if_higher | Updates the entity's max HP value at offset 0x3C8 only if the new value (param_2) is greater than the current value or if the current value is less than 1. Ensures max HP never decreases except when explicitly reset. |
| 0x00CC1D40 | 230 | CEntity__set_weapon_sprite | Sets the entity's weapon sprite. Clears max HP tracking value at offset 0x3C8 (same field as update_max_hp_if_higher). If this is the local player (DAT_01733c3c), calls set_selection_index_by_slot to update the player's weapon display. Otherwise stores weapon ID by slot: param_3==0 at offset 0x3B8, ==1 at 0x3BC, ==2 at 0x3C0. If weapon ID > 0, loads the weapon sprite via vtable+0x54 and refreshes. If <= 0, loads either costume garment sprite (0x1104/0x1105) or the effective job sprite, then refreshes. |
| 0x00CC1E30 | 63 | CEntity__set_shield_sprite | Sets the entity's shield/left-hand sprite. Clears flag at offset 0x3C8, stores shield ID at offset 0x3C4. If ID <= 0, resolves to the effective job ID instead. Calls vtable+0x54 to load the sprite and vtable+0x3C to refresh the current action state. |
| 0x00CC2050 | 16 | CEntity__set_field_2e4 | Simple setter that stores a value at entity offset 0x2E4. |
| 0x00CC2060 | 185 | CEntity__set_shield_and_send_packet | Sets the entity's shield ID (offset 0x2E8) and sends a packet if conditions are met. Checks against special job IDs (0x4F2D = Poring, 0x2D2 = Wedding/Xmas). For other jobs, checks if the entity is a player class (via FUN_00dfa600, thunk_to_00dfbce0, FUN_00e1dc00) before sending the shield display packet via CPacketStream. |
| 0x00CC2120 | 193 | CEntity__update_sprite_name | Updates the entity's sprite name/path by computing it from the effective job ID and various entity properties. Calls virtual methods for getting render info, then FUN_00ddc1d0 to build the sprite name string, and assigns it to the entity's internal string if it differs from the current one. |
| 0x00CC2200 | 56 | CEntity__set_bounding_box | Sets the 5-field bounding box or rectangle data at the beginning of the entity structure. Copies 5 values directly from parameters to the first 5 dwords. |
| 0x00CC2240 | 250 | CEntity__insert_or_update_map_entry | Inserts or updates an entry in the entity's map (red-black tree at offset 0x11C). Uses tree_lower_bound to find the insertion point. If the key doesn't exist, allocates a new 0x20-byte node and inserts it. Sets the node's data fields (offset 0x18, 0x1C) from params. |
| 0x00CC2340 | 570 | CEntity__set_mounted_job_and_update_sprite | Sets the entity's mounted/costume job ID (offset 0x25C) by mapping the input job ID to its mounted/riding variant. Contains a large switch mapping standard 4th jobs (0xFF0-0x1010), Doram classes, baby classes, etc. to their ride variants. After mapping, checks for costume override and calls the sprite load virtual function, then clears status effects and plays idle animation. |
| 0x00CC26F0 | 129 | CEntity__notify_minimap_position | Notifies the minimap UI of the entity's position. Checks if the minimap option (0x77) is enabled and the minimap window is visible. Converts the entity's world position (offsets 0x10, 0x18) to cell coordinates via CGameMode__world_to_cell, then calls the minimap's update virtual method with the cell position and params. |
| 0x00CC2780 | 57 | CEntity__set_animation_speed_scaled | Sets the entity's animation speed (offset 0x58) with optional effect map time scaling. If the global effect map flag is set, multiplies the speed by the effect map's time scale. Only applies if the final speed exceeds a global minimum threshold. |
| 0x00CC27C0 | 75 | CEntity__set_bone_transform | Sets a bone transform (6 values / 24 bytes) for the entity. If param_3=0, writes to offset 0x318 (first bone slot). If param_3=1, writes to offset 0x348 (second bone slot). Copies all 6 dwords from the input array. |
| 0x00CC2810 | 16 | CEntity__set_hair_color | Sets the entity's hair color at offset 0x2C8. |
| 0x00CC2820 | 1255 | CEntity__update_spatial_quad_tree | Updates the entity's spatial representation in the quad tree for click-selection and visibility. Computes the entity's bounding box with a height offset based on job type (player, monster, NPC, homunculus, etc.). Ensures minimum dimensions based on a near-clip threshold. Creates a 0x28-byte quad tree entry with the bounding rect, entity ID, job ID, and type flags, then inserts it. Calls the entity's virtual update method at the end. |
| 0x00CC2D50 | 75 | CEntity__set_bone_offset | Sets a bone offset (6 values / 24 bytes) for the entity. If param_3=0, writes to offset 0x330 (first bone offset slot). If param_3=1, writes to offset 0x360 (second bone offset slot). |
| 0x00CC2DA0 | 19 | CEntity__set_sex | Sets the entity's sex/gender at offset 0x260. Masks to bit 0 only (0 or 1). |
| 0x00CC2E00 | 58 | CEntity__load_texture_resource | Loads a texture resource by path. Releases the old resource reference at offset 0x104 if one exists, then loads the new resource via CResourceMgr and stores the pointer. Increments the reference count on the new resource. |
| 0x00CC2E50 | 3533 | CEntity__change_action_state | Large entity action state machine. Changes entity action/animation state based on param_2 (action ID). Handles idle(0), walk(1), sit(3), dead(4), attack(7/9), casting(0x10-0x14), skill effects(0x15-0x19), emotion/pose states(0x1a-0x51). Sets animation parameters, creates skill effects, manages BGM registration, and updates timing via timeGetTime. param_3=1 means snap to stored position. |
| 0x00CC3DC0 | 29 | CEntity__set_scale_xy | Sets entity scale X (offset 0xac) and Y (offset 0xb0) from float parameters. |
| 0x00CC3DE0 | 36 | CEntity__set_color_rgb | Copies a 3-component vector (RGB color or 3D vector) from param_2 into entity fields at offsets 0x8c, 0x90, 0x94. |
| 0x00CC3E10 | 58 | CEntity__reset_attack_state | Resets entity attack/interaction state. Clears target ID (offset 0x110 = -1), clears flags at 0x2b8 and 0xa4, sets a 510ms timer (0x1fe) at offset 0x2dc using timeGetTime. Ensures timer is never 0. |
| 0x00CC3E50 | 453 | CEntity__set_elemental_orbit_effect | Sets elemental orbit visual effect on entity. Removes existing orbit effects (IDs 0x2e1-0x2e0, 0x2df), then creates a new orbit effect based on element type (1=fire/0x2e1, 2=water/0x2e2, 3=wind/0x2df, 4=earth/0x2e0, 5=generic/0xe4). Uses CEffectManager to create and CEffectOrbit to set orbit count from param_3. |
| 0x00CC4015 | 96 | CEntity__create_elemental_orbit_effect_fragment | Code fragment (mid-function entry) that maps element IDs to effect IDs (1=0x2e1, 2=0x2e2, 3=0x2df, 4=0x2e0, else=0xe4) and calls CEntity__create_skill_effect. Part of the elemental orbit effect creation flow. |
| 0x00CC40C0 | 16 | CEntity__set_job_id | Sets the entity's job/class ID at offset 0x404. |
| 0x00CC40D0 | 260 | CEntity__enter_dead_state | Transitions entity to dead state (state 3). Saves previous state, sets action to 0x51 (death animation), marks entity as dead, updates name string using job ID and related info via FUN_00ddc1d0. Only acts if not already in state 3. |
| 0x00CC41E0 | 36 | CEntity__notify_emotion_to_ui | Notifies the UI manager about an entity emotion. Gets the mode manager via get_field4_if_mode1, then dispatches message 0xd (emotion) with the entity's value at offset 0x110. |
| 0x00CC4270 | 77 | CEntity__update_screen_position | Projects entity's 3D world position to 2D screen coordinates using CRenderPipeline__project_world_to_screen_2d, then calls the entity's virtual method at offset 0x18 with the resulting screen x,y. |
| 0x00CC4640 | 135 | CEntity__update_npc_chat_position | Updates NPC chat bubble position for the entity. Checks if entity has valid body parts (vtable+200 call) and is a valid job type, then dispatches to either CBGMManager__toggle_npc_chat_with_params (for local player) or CBGMManager__try_toggle_npc_chat_with_range_check (for other entities). |
| 0x00CC46D0 | 554 | CEntity__update_tetra_vortex_effect | Updates Tetra Vortex skill effect on entity. param_2=element index, param_3=action (1=create, else=release), param_4=element type. Creates or releases elemental sprites (effect IDs 0x4ee-0x4f1) representing fire/water/wind/earth. Uses RTDynamicCast to check effect type, CEffectTetraVortex to manage element positions and orbit angles. |
| 0x00CC4C50 | 95 | CEntity__clear_elemental_spirit_effects | Removes elemental spirit visual effects from entity. Maps spirit IDs (0x3ca=wind/0x2df, 0x3cb=fire/0x2e1, 0x3cc=earth/0x2e0, 0x3cd=water/0x2e2) to effect IDs and calls the entity's remove-effect virtual method (0x6d). Clears 6 spirit-related fields (offsets 0x56-0x5b). |
| 0x00CC8230 | 325 | CEntity__process_attack_action | Processes attack actions for an entity. Handles multi-hit attacks by scheduling damage events with timing. Determines attack type from param_3 data, finds target entity, faces toward target, sets action state. For special jobs (Dorams, Homunculus, etc.), applies special effect IDs (0x1b2, 0x974). Schedules multi-hit damage events with frame-based timing from DAT_0135ed10. |
| 0x00CC8970 | 4415 | CEntity__process_ground_skill_effect | Processes ground-targeted skill visual effects. Large switch on skill ID: creates appropriate visual effects at the target ground position. Handles many skills including Fire Wall (0x1e3), Meteor Storm (0x301), Jack Frost (0x98f), Land Protector (0x306), various trap skills. Converts cell coordinates to world position, gets interpolated height, creates effects via CEffectManager or FUN_00cdfa00 with skill-specific timing and parameters. |
| 0x00CC9F20 | 1105 | CEntity__process_damage_number_display | Creates floating damage number effects on an entity. Splits damage value into individual digits (supports damage abbreviation mode 0x10b for K/M suffixes). Removes existing damage displays of the same type (0x16). Creates per-digit effect objects via FUN_00e4a550, positions them vertically, adds to entity's attached effect list. Handles large damage display (100M+) differently. |
| 0x00CCA380 | 2105 | CEntity__process_skill_action | Processes a skill action on an entity. Large handler for skill effects triggered by combat. Handles various action types (4/5/6/8/9/0xd/0xe) with skill-specific logic. For type 5/0xe (projectile/targeted skills), creates timed events with duration. Manages facing direction, skill effects, sound effects for specific skills (ABR summons). Calls CEffect handlers for custom skill behavior, creates skill effect objects at target positions. |
| 0x00CCC3F0 | 189 | CEntity__clear_damage_number_effects | Removes all attached damage number effects (type 0x16) from entity's effect list. Iterates through the linked list at offset 0x3b0, clears each effect with type 0x16 by detaching it, sending destroy message (0x18), removing from list, and unregistering from BGM manager. |
| 0x00CCC4B0 | 339 | CEntity__schedule_skill_projectile | Schedules a skill projectile event on a target entity. Checks if skill should bypass (FUN_00ccc890), computes travel time from param_4, gets timing offset, builds event structure with skill ID, effect IDs, and duration. Dispatches event via target entity's virtual method. Handles null target for certain skills (0x992, 0x2e3, 0x13a6, 0x9ad). |
| 0x00CCC6E0 | 259 | CEntity__schedule_skill_impact | Schedules a skill impact event on target entity. Similar to schedule_skill_projectile but uses action type 0x61 instead of 0x60, and doesn't look up custom effect/end IDs (uses -1). Handles null target for skills 0x992, 0x2e3. |
| 0x00CCCAF0 | 48 | CEntity__set_attack_speed | Sets entity attack animation speed. Clamps param_2 to DAT_0135f1e0 max value, divides by a constant to convert to float speed factor, stores in both offsets 0x64 and 0x68. |
| 0x00CD3A30 | 219 | CEntity__get_display_name_for_state | Returns entity's display name based on current state. If state is 2 (walking) or 0x18, retrieves name from state data at offset 0x31c. Otherwise returns the string at offset 0x344 if it exists, or NULL. |
| 0x00CD3E90 | 459 | CEntity__serialize_entity_data_short | Serializes entity data into a short (0x3f byte) packet buffer. Packs entity ID, job ID, direction, head direction, shield, weapon type, hair style/color, body part info, equipment IDs, name string. Used for entity spawn/appearance packets for non-moving entities. |
| 0x00CD41E0 | 1550 | CEntity__serialize_entity_spawn_packet | Serializes entity data into a spawn packet buffer. For walking entities (state 1), creates packet 0x856 (0x4b bytes) with position interpolation from timeGetTime. For non-walking entities, creates packet 0x857 (0x45 bytes). Packs entity ID, job, equipment, stats, position (with sub-cell precision), direction, name string, and optional extended data (HP/body info). |
| 0x00CD47F0 | 1616 | CEntity__serialize_entity_move_packet | Serializes entity data into a move/update packet with custom packet ID (param_3). For walking entities, creates larger packet (0x5a bytes) with interpolated position and weapon range data. For non-walking entities, creates 0x54 byte packet. Includes all equipment, stats, position (with sub-cell precision), direction, name, and optional extended data. |
| 0x00CD5550 | 547 | CEntity__get_location_string | Builds a "Location: mapname (x, y)" string for the entity. Gets player position, converts to cell coordinates via CGameMode__world_to_cell, truncates map name to remove extension (last 4 chars), formats into output string param_2. |
| 0x00CD5780 | 119 | CEntityMap__contains_entity_id | Checks if an entity ID exists in the entity hash map at offset 0x62c. Uses FNV-1a hash on the 4 bytes of the ID. Returns true if found, false otherwise. |
| 0x00CEC930 | 177 | CEntity__reset_network_state | Resets entity network/state fields to defaults. Clears multiple fields: action IDs, timers, string buffers (via STL_lib_func), status flags. Sets some fields to -1 (0xFFFFFFFF) as sentinel values. Called during entity cleanup or respawn. |
| 0x00CECB10 | 67 | CEntity__set_name_color_from_entity | Sets entity name color based on another entity's info. Reads entity ID from param_2+0x110, resolves effective job ID, then calls get_entity_name_color to determine the display color. Stores the color at param_1+0x90 and clears param_1+0x94. |
| 0x00CECE10 | 30 | CEntity__set_action_info | Sets entity action info. Stores param_2 at offset 0x308 and param_3 at offset 0x30C. Only writes if param_3 != -1 (sentinel check). |
| 0x00CED190 | 200 | CEntity__toggle_hashmap_entry | Toggles an entity in a hash map. If param_3==1, emplaces param_2 into unordered_map. Otherwise, finds and removes param_2 from the hash map using FNV-1a hash on the 4-byte key. Manages bucket chain pointers during removal. |
| 0x00CED2E0 | 79 | CEntity__play_sound_at_position | Plays a sound at a 3D position. Calls virtual function at vtable+8 on the sound object at param_1+0xD4, passing position (param_2, param_3) and distance param_4 with sign-extended 64-bit values. |
| 0x00CED520 | 326 | CEntity__send_keepalive_tick | Sends a keepalive tick packet (0x360) to the server. Rate-limited by DAT_0135f6d0 interval check using timeGetTime(). Includes current timestamp in packet. If network logging is enabled (DAT_0171f100), appends timestamp to a linked list for latency tracking. |
| 0x00CF0070 | 18 | CEntity__get_sso_string_ptr | Returns pointer to SSO string data at entity offset 0x4DC. If string capacity > 15 (heap-allocated), returns the heap pointer; otherwise returns the inline buffer address. |
| 0x00D042F0 | 206 | CEntitySpawnData__zero_init_ctor | Default constructor that zero-initializes a ~0x7C byte record. Clears 28+ DWORD fields spanning offsets 0x04-0x78. No STL strings or complex types - pure POD initialization. Used as a blank template for data records. |
| 0x00D05570 | 248 | CEntityRecord__copy_assign | Copy-assigns a 0xb4-byte record containing 7 STL strings at offsets 0x04, 0x1c, 0x34, 0x4c, 0x64, 0x7c, 0x94 plus scalar fields at 0xac and 0xb0. First byte is a type flag. |
| 0x00D55AB0 | 2355 | CEntity__apply_status_effect_visual | Applies visual status effects to an entity. Handles effect timers, skill effects (including status bars), special entity palette changes, and dispatches through jump tables for effect-specific rendering. Manages effect lifecycle (creation/removal) based on timer expiry and effect type. |
| 0x00D591A0 | 3253 | CEntity__apply_status_effect_flags | Applies persistent status effect visual flags to an entity based on a bitfield (param_4). For player entities: checks each bit flag and creates/removes skill effects accordingly (hiding 0xa6, stone curse 0xcb, frozen 0xfe, etc). For the local player: additionally manages effect timers and can set entity coloring/transparency for effects like hiding/cloaking. |
| 0x00D5B030 | 902 | CEntity__handle_skill_use_on_target | Handles skill use on a target entity. Looks up source and target entities, processes skill animation and cast time, creates visual effects (including special effects for skill 0xA04/0x1479), dispatches through CMapEventDispatch for skill-specific logic, handles NPC/monster attack animations with speed scaling, and triggers skill effect callbacks. |
| 0x00D82303 | 5 | thunk_to_CEntity__create_skill_effect_00d82303 | Thunk that calls FUN_00cadd60 without returning |
| 0x00D8B340 | 151 | CItemSprite__ctor | CItemSprite constructor. Calls CSprite__ctor, sets vtable to PTR_FUN_011a3f90. Initializes string field at offset 0x158, sets visibility flags at 0xA4 to 0x101, scale at 0x50 to 1.0f (0x3f800000), color at 0x84 to 0xFFFFFF00. |
| 0x00D8B3E0 | 95 | CItemSprite__dtor | CItemSprite destructor. Sets vtable to PTR_FUN_011a3f90, destroys string field, then calls CSprite__dtor. |
| 0x00D8B440 | 119 | CItemSprite__scalar_deleting_dtor | CItemSprite scalar deleting destructor. Sets vtable, destroys string and CSprite base. If param_2 bit 0 set, frees 400 bytes of memory. |
| 0x00D8B5D0 | 255 | CItemSprite__update_gravity_animation | Updates item sprite gravity/drop animation. Calculates elapsed time from timeGetTime, applies parabolic trajectory (quadratic equation) to Y position. Checks ground collision via C3dAttr__GetInterpolatedHeight; clamps to ground level and clears gravity flag on impact. |
| 0x00D8B6D0 | 67 | CItemSprite__render | Renders item sprite if visible (offset 0xA0 flag). Draws shadow scaled by sprite scale * DAT_0112fd80, then renders full sprite. |
| 0x00D8B938 | 1061 | CEntity__load_item_sprite_and_create_effects | WARNING (jumptable): Unable to track spacebase fully for stack |
| 0x00D8BE00 | 532 | CItemSprite__add_to_quadtree | Adds item sprite to spatial quadtree for culling. Checks visibility flag at offset 0xA5. Lazily calculates near clip distance (DAT_01730448). Allocates 0x28-byte bounding box entry with min/max coords from param_2, expands to minimum near-clip size, then inserts via CQuadTreeNode__insert_object. Calls vtable method 0x18 (render setup). |
| 0x00D8C6A0 | 422 | CGroundItemEffect__ctor | CGroundItemEffect constructor. Extends CEffectPlayer. Sets vtable to PTR_FUN_011a3fd4. Initializes large buffer (0x2E7C bytes) at offset 0x4068 to zero. Sets timer to timeGetTime()+12000ms, stores DAT_016d3b08 flag then clears it. Initializes strings, counters, and render state fields. |
| 0x00D8C990 | 185 | CGroundItemEffect__dtor | CGroundItemEffect destructor. Sets vtable to PTR_FUN_011a3fd4, restores DAT_016d3b08 flag. Clears 0x14 vector, destroys string, clears two 0x80 vectors, destroys internal objects, then calls CEffectPlayer__dtor. |
| 0x00D8CC60 | 209 | CGroundItemEffect__scalar_deleting_dtor | CGroundItemEffect scalar deleting destructor. Runs full destructor chain, then frees 0x6F7C bytes if param_2 bit 0 set. |
| 0x00DA0DE0 | 115 | CItemSprite__ctor_with_textures | CItemSprite constructor with textures. Initializes from CSprite base, sets vtable to PTR_FUN_011a4750, loads texture and act resources. |
| 0x00DA0E60 | 804 | CEntityClone__ctor_from_entity | CEntityClone constructor. Clones an entity's visual state - copies sex, job, head, equipment, position, name. Loads sprite resources. Used for preview/shadow rendering. |
| 0x00DA1210 | 84 | CGroundItemSprite__ctor | CGroundItemSprite constructor. Initializes from CSprite, sets vtable for ground item display. |
| 0x00DA1270 | 508 | CEntityPreview__ctor_from_entity | CEntityPreview constructor from entity. Clones entity appearance including sex, job, equipment, position, head direction. Checks for alternate sprite resources. Sets identity/phantom flags. |
| 0x00DA1470 | 814 | CEntityPreview__ctor_extended | CEntityPreview constructor extended variant. Similar to ctor_from_entity but with additional sprite initialization. |
| 0x00DA17A0 | 843 | CEntityPreview__ctor_full | CEntityPreview full constructor. Most complete initialization variant with all entity fields. |
| 0x00DA1AF0 | 435 | CEntityPreview__ctor_with_name | CEntityPreview constructor with name. Initializes entity preview including character name string. |
| 0x00DA1CB0 | 94 | CEntityPreview__ctor_simple | CEntityPreview simple constructor. Minimal initialization variant. |
| 0x00DA1D10 | 156 | CEntityPreview__ctor_base | CEntityPreview base constructor. Core initialization shared by all CEntityPreview constructors. |
| 0x00DA1DB0 | 122 | CEntityPreview__ctor_base_extended | CEntityPreview base extended constructor variant. |
| 0x00DA1E30 | 216 | CEntityPreview__ctor_with_sprite | CEntityPreview constructor with sprite. Initializes preview with pre-existing sprite data. |
| 0x00DA1F10 | 71 | CItemSprite__dtor_00da1f10 | CItemSprite destructor. Resets vtable to PTR_FUN_011a4750, calls CSprite__dtor_base. |
| 0x00DA1F60 | 71 | CEntityClone__dtor | CEntityClone destructor. Resets vtable to PTR_FUN_011a47c8, calls CSkillUnit__dtor. |
| 0x00DA2000 | 132 | CGroundItemSprite__dtor | CGroundItemSprite destructor. Resets vtable, notifies game mode about removed ground item at position (fields 0x57, 0x58), calls CSprite__dtor. |
| 0x00DA2090 | 71 | CEntityPreview__dtor | CEntityPreview destructor. Resets vtable, calls cleanup via FUN_00da2220. |
| 0x00DA20E0 | 71 | CEntityPreview__dtor_variant | CEntityPreview destructor variant. Alternate cleanup path. |
| 0x00DA2130 | 71 | CEntityPreview__dtor_base | CEntityPreview base destructor. Minimal cleanup. |
| 0x00DA2180 | 71 | CEntityPreview__dtor_extended | CEntityPreview extended destructor. |
| 0x00DA21D0 | 71 | CEntityPreview__dtor_with_sprite | CEntityPreview destructor with sprite cleanup. |
| 0x00DA2220 | 146 | CEntityPreview__dtor_cleanup | CEntityPreview cleanup. Destroys STL strings and calls CSprite base destructor. |
| 0x00DA22C0 | 71 | CEntityPreview__dtor_full | CEntityPreview full destructor. Complete cleanup of all fields. |
| 0x00DA2310 | 95 | CEntityPreview__dtor_with_sprite_string | CEntityPreview destructor for the "with_sprite" variant. Sets vtable to PTR_011a4614 (matches ctor_with_sprite), destroys embedded STL string member, calls CSprite__dtor_base. |
| 0x00DA2370 | 99 | CItemSprite__scalar_deleting_dtor_00da2370 | CItemSprite scalar deleting destructor. Calls dtor, optionally frees memory (0x138 bytes) if flag bit 0 is set. |
| 0x00DA23E0 | 99 | CEntityClone__scalar_deleting_dtor | CEntityClone scalar deleting destructor. |
| 0x00DA24C0 | 156 | CGroundItemSprite__scalar_deleting_dtor | CGroundItemSprite scalar deleting destructor. Sets vtable to PTR_011a45d8 (matches CGroundItemSprite__ctor), notifies game mode of removed ground item at position fields 0x57/0x58, calls CSprite__dtor, frees 0x168 bytes if flag set. |
| 0x00DA26B0 | 99 | CEntityPreview__scalar_deleting_dtor_with_name | CEntityPreview scalar deleting destructor for the "with_name" variant. Sets vtable to PTR_011a4c40 (matches ctor_with_name), calls CEntityPreview__dtor_cleanup, frees 0x448 bytes if flag set. |
| 0x00DA2720 | 99 | CEntityPreview__scalar_deleting_dtor_simple | CEntityPreview scalar deleting destructor for the "simple" variant. Sets vtable to PTR_011a4bc8 (matches ctor_simple), calls CSprite__dtor_base, frees 0x140 bytes if flag set. |
| 0x00DA2790 | 38 | CEntityPreview__scalar_deleting_dtor_base | CEntityPreview scalar deleting destructor for the "base" variant. Sets vtable to PTR_011a4650 (matches ctor_base), calls CEntityPreview__dtor_cleanup, frees 0x440 bytes if flag set. |
| 0x00DA27C0 | 99 | CEntityPreview__scalar_deleting_dtor_base_extended | CEntityPreview scalar deleting destructor for the "base_extended" variant. Sets vtable to PTR_011a4c04 (matches ctor_base_extended), calls CSprite__dtor_base, frees 0x140 bytes if flag set. |
| 0x00DA2830 | 119 | CEntityPreview__scalar_deleting_dtor_with_sprite | CEntityPreview scalar deleting destructor for the "with_sprite" variant. Sets vtable to PTR_011a4614 (matches ctor_with_sprite), destroys STL string, calls CSprite__dtor_base, frees 0x170 bytes if flag set. |
| 0x00DA28B0 | 566 | CEntity__update_costume_headgear_effect | Updates costume headgear visual effect on entity. Checks if entity's job has a costume headgear entry in the tree. If headgear ID changed, removes old effect and creates new one. Adds effect to entity's effect list at +0x3b0. Handles headgear IDs < 6 differently (offset 0x24 vs 0x36). |
| 0x00DA2B00 | 51 | CEntity__get_movement_delta | Gets entity movement delta as (deltaX, deltaY). Computes difference between current position (+0x4ec,+0x4f0) and previous position (+0x4e4,+0x4e8). |
| 0x00DA2BF0 | 53 | CEntity__notify_renderer_position | Notifies renderer of entity position. Gets render interface via get_field4_if_mode1, then calls virtual method at vtable+0x3c with entity's sprite coordinates from +0x15c and +0x160. |
| 0x00DA2C80 | 67 | CEntity__unregister_ui_windows | Unregisters two UI windows from entity. Calls CUIWindowMgr__unregister_window for windows at offsets +0x42c and +0x430, then nulls the pointers. |
| 0x00DA2D20 | 31 | CEntity__start_animation_timer | Starts entity animation timer. Sets flag at +0xa0 to 1, clears +0xa4, and records current timeGetTime() at +0x8c. |
| 0x00DA2D40 | 41 | CEntity__reset_and_start_animation | Resets and starts entity animation. Sets +0xa0=1, +0x9c=1, clears +0x138 (animation state), records timeGetTime() at +0x8c. |
| 0x00DA2D80 | 31 | CEntity__start_animation_timer_00da2d80 | Starts entity animation timer variant. Sets +0xa0=1, clears +0xa4, records timeGetTime() at +0x8c. Identical to 00da2d20. |
| 0x00DA2DA0 | 31 | CEntity__start_animation_timer_00da2da0 | Starts entity animation timer variant. Sets +0xa0=1, clears +0xa4, records timeGetTime() at +0x8c. Identical to 00da2d20. |
| 0x00DA2DC0 | 31 | CEntity__start_animation_timer_00da2dc0 | Starts entity animation timer variant. Sets +0xa0=1, clears +0xa4, records timeGetTime() at +0x8c. Identical to 00da2d20. |
| 0x00DA2DE0 | 31 | CEntity__start_animation_timer_00da2de0 | Starts entity animation timer variant. Sets +0xa0=1, clears +0xa4, records timeGetTime() at +0x8c. Identical to 00da2d20. |
| 0x00DA2E10 | 77 | CEntity__init_ui_and_headgear_state | Initializes entity UI and headgear state. Clears UI window pointers (+0x42c, +0x430), resets timer state (+0x420), records timeGetTime at +0x424, clears headgear effect pointer (+0x434), sets headgear ID to 9999 (none). |
| 0x00DA2E90 | 102 | CEntity__init_sprite_display_params | Initializes entity sprite display parameters. Sets height to 100.0f (+0x150), scale to 1.0f (+0x15c), dimensions to 3x3 (+0x154/0x158), computes sqrt(18.0) for diagonal (+0x160), and sets timestamp to 4 seconds ago (+0x164). |
| 0x00DA2F00 | 146 | CEntity__update_animation_frame | Updates animation frame based on elapsed time. Calculates frame progress from timeGetTime delta, gets frame count from sprite, sets current frame index modulo total frames, plays animation sounds. Returns true if animation cycle is complete. |
| 0x00DA2FA0 | 99 | CEntity__check_map_flags_and_advance_timer | Checks map flags and advances entity timer. Looks up entity's map by ID, checks flag 0x10 in map data. If set, applies flag 0x10 to entity and sets value 0x2d at +0xf0. Then checks if animation counter exceeds threshold to advance state. |
| 0x00DA3010 | 152 | CEntity__update_death_fadeout_animation | Updates death fadeout animation. Calculates elapsed time, gets virtual frame offset, sets last frame. Applies fading alpha (decreasing over time) via CEntity__set_color_rgba_direct. Returns true while animation is still playing. |
| 0x00DA30B0 | 246 | CEntity__update_jump_animation | Updates entity jump animation. Calculates parabolic jump height from elapsed time. In first half, applies upward arc; in second half, applies downward arc with position offset. Uses renderer virtual call at vtable+0x3c for position updates. Returns 0 when jump duration exceeded. |
| 0x00DA31B0 | 125 | CEntity__update_hit_stun_timer | Updates hit stun timer for entity. Increments counter at +0x454. At count 0x6e, creates skill effect 0x319. After count 0x69, periodically (every 4th tick) subtracts animation threshold from timer at +0x98. Returns true if timer >= threshold at +0x444. |
| 0x00DA3240 | 105 | CEntity__check_map_flags_and_advance_counter | Checks map flags and advances entity movement counter. Similar to check_map_flags_and_advance_timer but increments counter at +0x50c. Checks map flag 0x10 for special movement type. Returns true if timer >= threshold at +0x4fc. |
| 0x00DA32B0 | 125 | CEntity__update_hit_stun_with_counter | Updates hit stun with movement counter at +0x50c. At count 0x6e, creates skill effect 0x319. After count 0x69, periodically subtracts threshold. Returns true if timer >= threshold at +0x4fc. |
| 0x00DA3360 | 1255 | CEntity__update_idle_state_main | Main idle state update for entities. Handles fade alpha, special job types (0x2d/0x8b skip, 0x68 homunculus periodic effects, 0x6f mercenary). Manages AI scripts (AI.lua / USER_AI), copies AI scripts on first use if custom AI enabled. Updates HP bar, costume headgear effects, overhead UI positions, and entity color based on state flags. |
| 0x00DA3980 | 220 | CEntity__update_skill_cast_animation | Updates skill casting animation. Calculates Y offset based on elapsed time, applies fading alpha. Handles scale adjustment with clamping to 1.0f minimum. Returns true while animation duration is within bounds. |
| 0x00DA3A60 | 588 | CEntity__update_approaching_target | Updates entity approaching a target. Calculates distance to camera target, computes movement direction, adjusts speed based on X/Y ratio. When close enough and timer interval elapsed, calls CAntiCheat__full_sweep with position delta for server-side validation. |
| 0x00DA3CB0 | 34 | CEntity__apply_state_color_override | Applies color override based on entity state type. For states 7-10, 13-14 (dead/sitting variants), checks game option 0x10a and applies either fixed alpha 0x3a or entity's stored alpha. Uses entity RGBA values at +0x98-0x9b. |
| 0x00DA3DF0 | 228 | CEntity__update_overhead_ui_and_hp_bar | Updates overhead UI window positions and HP bar. Positions two UI windows (+0x42c, +0x430) relative to entity's screen Y coordinate, applying camera-based scaling. Then calls CEntity__update_hp_bar_display. |
| 0x00DA3EE0 | 105 | CEntity__trigger_periodic_skill_effect | Triggers periodic skill visual effect for entity. Checks if interval (+0x294 seconds) has elapsed since last trigger (+0x424). When interval expires, resets timer and creates skill effect using ID at +0x174. |
| 0x00DA3F50 | 114 | CEntity__send_click_position_to_server | Sends entity's clicked position to server. Converts world coordinates (+0x10, +0x18) to cell coordinates via FUN_00cd5230. Skips sending for job IDs 0x2d (warp portal), 0x6f (mercenary), 0x8b. Calls server command 0xc with entity ID and cell coords. |
| 0x00DA3FD0 | 304 | CEntity__render_ground_skill_unit | Renders a ground-placed skill unit entity. Checks 3 visibility conditions (FUN_00df9880/99d0/9710). If visible and active, renders shadow (except for states 6/3), then renders as restricted sprite, skill effect with temp maps, or full sprite depending on flags. |
| 0x00DA4100 | 65 | CEntity__render_simple_with_shadow | Simple render function that draws shadow and full sprite. Only renders if entity is visible (+0xa0 != 0). Renders shadow with scale from +0x50, then full sprite with animation state from +0x138. |
| 0x00DA4160 | 346 | CEntity__render_npc_or_monster | Renders NPC or monster entity. Checks visibility, handles special job ID range 0x1781-0x179e (multi-layer skill sprites) differently with alpha check. For normal monsters/NPCs, renders shadow (except states 6/3) and sprite with monster/NPC flag from is_monster_or_npc_job_id. |
| 0x00DA42C0 | 126 | CEntity__render_skill_effect_unit | Renders a skill effect unit entity. Checks 3 visibility conditions, then if entity is visible and has sprite flag, renders via CSkillEffect__render_with_temp_maps. Otherwise falls back to screen position update only. |
| 0x00DA4340 | 368 | CEntity__render_ground_skill_unit_with_map_check | Renders ground skill unit with map flag check. Like render_ground_skill_unit but first checks map flags via CBGMManager for flag 0x10. Same visibility/rendering logic with restricted sprites and skill effects. |
| 0x00DA44B0 | 25 | CEntity__render_sprite_full_wrapper | Simple wrapper that calls CEntity__render_sprite_full with param, flag=1, extra=0. |
| 0x00DA44D0 | 515 | CEntity__render_entity_by_job_type | Renders entity based on job type. Handles warp portal (0x2d) with world-to-screen projection and shadow, mercenary (0x6f) with dimension-based bounds, homunculus/elemental (0x68/0x8b) as no-render. Default handles monster/NPC with death state check (0xb8), multi-layer skill sprites (0x1781-0x179e), and normal sprites. |
| 0x00DA4970 | 138 | CEntity__handle_spawn_action | Handles entity spawn action (type 0xe, subtype 0). Sets position from param_5, marks visible, sets color based on param_7/param_8 (red tint for nonzero), records timestamp. Otherwise delegates to null_stub_00cbf920. |
| 0x00DA4A00 | 89 | CSkillUnit__dispatch_action_with_table | Dispatches skill unit actions via jump table. For param_3==0 and param_2 < 4, uses jump table at DAT_00da4ac0. Otherwise delegates to CSkillUnit__dispatch_action. |
| 0x00DA4B10 | 213 | CEntity__handle_spawn_invisible | Handles entity spawn as initially invisible (type 0xe, subtype 0). Sets position, marks invisible (+0xa0=0), records timestamp, sets duration to 30 (+0x158=0x1e). Converts world coords to cell coords and halves them for +0x15c/+0x160. Otherwise delegates to CEntity__dispatch_action_by_type. |
| 0x00DA4BF0 | 89 | CEntity__dispatch_action_with_table | Dispatches entity actions via jump table. For param_3==0 and param_2 < 4, uses jump table at DAT_00da4cb0. Otherwise delegates to FUN_00da4ef0 (entity action dispatch). |
| 0x00DA4EF0 | 1774 | CEntity__handle_entity_action_dispatch | Main entity action dispatcher. For action type 4 (spawn entity data), calls CEntity__process_action_table_entry, handles state-dependent body sprite assignment, sets visibility via FUN_00dfbe10, and calls virtual method 0xc4. For action type 0x22, creates overhead UI widgets (multi-column or themed) based on entity state (7-14), sizes/positions them relative to entity screen coords. Otherwise delegates to process_action_table_entry. |
| 0x00DA5610 | 194 | CEntity__handle_skill_cast_spawn | Handles skill cast spawn action (type 0xe, subtype 0). Sets position from param_5, adjusts Y by subtracting DAT_010e9954, marks visible, clamps animation frame 0-9, stores scale as 5.0f. Ignores type 0x16 silently. Otherwise delegates to null_stub. |
| 0x00DA56E0 | 281 | CEntity__handle_approaching_target_spawn | Handles approaching target spawn action (type 0xe, subtype 0). Copies string from param_5+0x50, loads position/dimensions/scale from param_5 offsets, computes diagonal distance from width/height, allocates timer value. Otherwise delegates to null_stub. |
| 0x00DA5800 | 16 | CEntity__set_field_4e0 | Sets byte field at +0x4e0 on entity. |
| 0x00DA5810 | 16 | CEntity__set_field_4dc | Sets dword field at +0x4dc on entity. |
| 0x00DA5820 | 124 | CEntity__load_sprite_resources | Loads sprite and act resources for entity. Calls FUN_00cc2340 for sprite loading, FUN_00cc2da0 for act loading. Clears field +0x48, checks if job ID has override name via ret_zero_00dfa150 and if so copies name string. |
| 0x00DA58A0 | 271 | CEntity__load_body_sprite_by_job_id | Loads body sprite by job ID. Sets +0x10c to job ID if NPC or default monster. Gets scale from FUN_00de0a70. Formats sprite/act paths based on entity type: NPC, skill unit (0x1781-0x179e), homunculus (0x1771-0x17a4), or default monster. Loads both .spr and .act files. |
| 0x00DA59B0 | 261 | CEntity__set_entity_state | Main entity state setter. Handles all state transitions by job type. Warp portals (0x2d) set bounding box and create warp effect. Homunculus (0x68) adjusts Y position. Mercenary (0x6f) doubles dimensions. Default entities handle states: 0=idle with sitting check, 1=walking, 2=attacking with random variants, 3=dead, 4=skill use, 7=special states, 10=petrify. Updates animation frame offset and records timestamp. |
| 0x00DA6270 | 16 | CEntity__set_vtable_011a4f04 | Sets vtable pointer to PTR_FUN_011a4f04. |
| 0x00DA6280 | 16 | CEntity__set_vtable_011a4f20 | Sets vtable pointer to PTR_FUN_011a4f20. |
| 0x00DA6290 | 16 | CEntity__set_vtable_011a4f3c | Sets vtable pointer to PTR_FUN_011a4f3c. |
| 0x00DA62A0 | 16 | CEntity__set_vtable_011a4f58 | Sets vtable pointer to PTR_FUN_011a4f58. |
| 0x00DA62B0 | 16 | CEntity__set_vtable_011a4f74 | Sets vtable pointer to PTR_FUN_011a4f74. |
| 0x00DA62C0 | 16 | CEntity__set_vtable_011a4f90 | Sets vtable pointer to PTR_FUN_011a4f90. |
| 0x00DA62D0 | 16 | CEntity__set_vtable_011a4fac | Sets vtable pointer to PTR_FUN_011a4fac. |
| 0x00DA62E0 | 22 | CEntity__init_vtable_011a4fc8_with_field | Initializes object with vtable PTR_FUN_011a4fc8 and copies field +4 from this to param_2[1]. |
| 0x00DA6300 | 22 | CEntity__init_vtable_011a4fe4_with_field | Initializes object with vtable PTR_FUN_011a4fe4 and copies field +4 from this to param_2[1]. |
| 0x00DA6320 | 22 | CEntity__init_vtable_011a5000_with_field | Initializes object with vtable PTR_FUN_011a5000 and copies field +4 from this to param_2[1]. |
| 0x00DA6340 | 16 | CEntity__set_vtable_011a4e08 | Sets vtable pointer to PTR_FUN_011a4e08. |
| 0x00DA6350 | 22 | CEntity__init_vtable_011a501c_with_field | Initializes object with vtable PTR_FUN_011a501c and copies field +4 from this to param_2[1]. |
| 0x00DA6370 | 16 | CEntity__set_vtable_011a4e24 | Sets vtable pointer to PTR_FUN_011a4e24. |
| 0x00DA6380 | 16 | CEntity__set_vtable_011a4e40 | Sets vtable pointer to PTR_FUN_011a4e40. |
| 0x00DA6390 | 16 | CEntity__set_vtable_011a4e5c | Sets vtable pointer to PTR_FUN_011a4e5c. |
| 0x00DA63A0 | 16 | CEntity__set_vtable_011a4e78 | Sets vtable pointer to PTR_FUN_011a4e78. |
| 0x00DA63B0 | 16 | CEntity__set_vtable_011a4e94 | Sets vtable pointer to PTR_FUN_011a4e94. |
| 0x00DA63C0 | 16 | CEntity__set_vtable_011a4eb0 | Sets vtable pointer to PTR_FUN_011a4eb0. |
| 0x00DA63D0 | 16 | CEntity__set_vtable_011a4ecc | Sets vtable pointer to PTR_FUN_011a4ecc. |
| 0x00DA63E0 | 16 | CEntity__set_vtable_011a4ee8 | Sets vtable pointer to PTR_FUN_011a4ee8. |
| 0x00DA63F0 | 68 | CEntityState__scalar_deleting_dtor_00da63f0 | Scalar deleting destructor for entity state object (8 bytes). Frees memory if param_2 flag bit 0 is set. |
| 0x00DA6440 | 68 | CEntityState__scalar_deleting_dtor_00da6440 | Scalar deleting destructor for entity state object (8 bytes). Frees memory if param_2 flag bit 0 is set. |
| 0x00DA6490 | 68 | CEntityState__scalar_deleting_dtor_00da6490 | Scalar deleting destructor for entity state object (8 bytes). Frees memory if param_2 flag bit 0 is set. |
| 0x00DA64E0 | 68 | CEntityState__scalar_deleting_dtor_00da64e0 | Scalar deleting destructor for entity state object (8 bytes). Frees memory if param_2 flag bit 0 is set. |
| 0x00DA6530 | 68 | CEntityState__scalar_deleting_dtor_00da6530 | Scalar deleting destructor for entity state object (8 bytes). Frees memory if param_2 flag bit 0 is set. |
| 0x00DA6580 | 68 | CEntityState__scalar_deleting_dtor_00da6580 | Scalar deleting destructor for entity state object (8 bytes). Frees memory if param_2 flag bit 0 is set. |
| 0x00DA65D0 | 68 | CEntityState__scalar_deleting_dtor_00da65d0 | Scalar deleting destructor for entity state object (8 bytes). Frees memory if param_2 flag bit 0 is set. |
| 0x00DA6620 | 68 | CEntityState__scalar_deleting_dtor_00da6620 | Scalar deleting destructor for entity state object (8 bytes). Frees memory if param_2 flag bit 0 is set. |
| 0x00DA6670 | 68 | CEntityState__scalar_deleting_dtor_00da6670 | Scalar deleting destructor for entity state object (8 bytes). Frees memory if param_2 flag bit 0 is set. |
| 0x00DA66C0 | 68 | CEntityState__scalar_deleting_dtor_00da66c0 | Scalar deleting destructor for entity state object (8 bytes). Frees memory if param_2 flag bit 0 is set. |
| 0x00DA6710 | 68 | CEntityState__scalar_deleting_dtor_00da6710 | Scalar deleting destructor for entity state object (8 bytes). Frees memory if param_2 flag bit 0 is set. |
| 0x00DA6760 | 68 | CEntityState__scalar_deleting_dtor_00da6760 | Scalar deleting destructor for entity state object (8 bytes). Frees memory if param_2 flag bit 0 is set. |
| 0x00DA67B0 | 68 | CEntityState__scalar_deleting_dtor_00da67b0 | CEntityState scalar deleting destructor. Deletes 8-byte entity state object if flag is set. Referenced from CEntity vtable at 011a4e34. |
| 0x00DA6800 | 68 | CEntityState__scalar_deleting_dtor_00da6800 | CEntityState scalar deleting destructor. Deletes 8-byte entity state object if flag is set. |
| 0x00DA6850 | 68 | CEntityState__scalar_deleting_dtor_00da6850 | CEntityState scalar deleting destructor. Deletes 8-byte entity state object if flag is set. |
| 0x00DA68A0 | 68 | CEntityState__scalar_deleting_dtor_00da68a0 | CEntityState scalar deleting destructor. Deletes 8-byte entity state object if flag is set. |
| 0x00DA68F0 | 68 | CEntityState__scalar_deleting_dtor_00da68f0 | CEntityState scalar deleting destructor. Deletes 8-byte entity state object if flag is set. |
| 0x00DA6940 | 68 | CEntityState__scalar_deleting_dtor_00da6940 | CEntityState scalar deleting destructor. Deletes 8-byte entity state object if flag is set. |
| 0x00DA6990 | 68 | CEntityState__scalar_deleting_dtor_00da6990 | CEntityState scalar deleting destructor. Deletes 8-byte entity state object if flag is set. |
| 0x00DA69E0 | 68 | CEntityState__scalar_deleting_dtor_00da69e0 | CEntityState scalar deleting destructor. Deletes 8-byte entity state object if flag is set. |
| 0x00DA6CF0 | 16 | CEntity__set_vtable_011a4f04_00da6cf0 | CEntity vtable setter. Sets vtable pointer to 011a4f04. Duplicate of CEntity__set_vtable_011a4f04 for alternate inheritance path. |
| 0x00DA6D00 | 16 | CEntity__set_vtable_011a4f20_00da6d00 | CEntity vtable setter. Sets vtable pointer to 011a4f20. |
| 0x00DA6D10 | 16 | CEntity__set_vtable_011a4f3c_00da6d10 | CEntity vtable setter. Sets vtable pointer to 011a4f3c. |
| 0x00DA6D20 | 16 | CEntity__set_vtable_011a4f58_00da6d20 | CEntity vtable setter. Sets vtable pointer to 011a4f58. |
| 0x00DA6D30 | 16 | CEntity__set_vtable_011a4f74_00da6d30 | CEntity vtable setter. Sets vtable pointer to 011a4f74. |
| 0x00DA6D40 | 16 | CEntity__set_vtable_011a4f90_00da6d40 | CEntity vtable setter. Sets vtable pointer to 011a4f90. |
| 0x00DA6D50 | 16 | CEntity__set_vtable_011a4fac_00da6d50 | CEntity vtable setter. Sets vtable pointer to 011a4fac. |
| 0x00DA6D60 | 22 | CEntity__init_vtable_011a4fc8_with_field_00da6d60 | CEntity vtable init with field copy. Sets vtable to 011a4fc8 and copies field from this+4. |
| 0x00DA6D80 | 22 | CEntity__init_vtable_011a4fe4_with_field_00da6d80 | CEntity vtable init with field copy. Sets vtable to 011a4fe4 and copies field from this+4. |
| 0x00DA6DA0 | 22 | CEntity__init_vtable_011a5000_with_field_00da6da0 | CEntity vtable init with field copy. Sets vtable to 011a5000 and copies field from this+4. |
| 0x00DA6DC0 | 16 | CEntity__set_vtable_011a4e08_00da6dc0 | CEntity vtable setter. Sets vtable pointer to 011a4e08. |
| 0x00DA6DD0 | 22 | CEntity__init_vtable_011a501c_with_field_00da6dd0 | CEntity vtable init with field copy. Sets vtable to 011a501c and copies field from this+4. |
| 0x00DA6DF0 | 16 | CEntity__set_vtable_011a4e24_00da6df0 | CEntity vtable setter. Sets vtable pointer to 011a4e24. |
| 0x00DA6E00 | 16 | CEntity__set_vtable_011a4e40_00da6e00 | CEntity vtable setter. Sets vtable pointer to 011a4e40. |
| 0x00DA6E10 | 16 | CEntity__set_vtable_011a4e5c_00da6e10 | CEntity vtable setter. Sets vtable pointer to 011a4e5c. |
| 0x00DA6E20 | 16 | CEntity__set_vtable_011a4e78_00da6e20 | CEntity vtable setter. Sets vtable pointer to 011a4e78. |
| 0x00DA6E30 | 16 | CEntity__set_vtable_011a4e94_00da6e30 | CEntity vtable setter. Sets vtable pointer to 011a4e94. |
| 0x00DA7700 | 776 | CSkillUnit__ctor | CSkillUnit constructor. Initializes vtable (PTR_FUN_011a503c), two STL strings, a red-black tree (0x1c-byte nodes), two vectors of 9 int elements each, and various state fields. Represents a ground-placed skill unit (traps, AoE effects). |
| 0x00DA7BA0 | 253 | CSkillUnit__dtor | CSkillUnit destructor. Sets vtable to PTR_FUN_011a503c, releases 9 resource refs from two arrays (offsets 0x4b4 and 0x4c0), unregisters UI window at offset 0x490, destroys two stub containers, tree, two STL strings, and base class. |
| 0x00DA7DF0 | 284 | CSkillUnit__scalar_deleting_dtor | CSkillUnit scalar deleting destructor. Calls CSkillUnit__dtor then optionally frees 0x4f8 bytes of memory if param_2 bit 0 is set. |
| 0x00DA7F10 | 170 | CSkillUnit__push_back_effect_id | Adds an effect ID to the skill unit's linked list at offset 0x3b0. Allocates a 0xc-byte list node and inserts before the sentinel. Throws if list reaches 0x15555555 elements. |
| 0x00DA7FC0 | 73 | CSkillUnit__calc_anim_speed | Calculates animation speed for the skill unit. For skill IDs > 0x69, maps through FUN_00e19530. If skill is not 0xb (Sanctuary) and param_2 exceeds a global cap, clamps to the cap. Returns param_2 / global_divisor as float. |
| 0x00DA8010 | 363 | CSkillUnit__update_sprite_offset | Updates the skill unit's sprite rendering offset. Gets the skill tree node and detail entry, loads a resource, then computes relative sprite offsets (x,y) based on difference between two tree node positions. Stores results at offsets 0x4e4 and 0x4e8. |
| 0x00DA8180 | 89 | CSkillUnit__render_with_params | Renders the skill unit by calling FUN_00cc2da0 with param_2, then dispatches to virtual method at vtable+0x4c with numerous rendering parameters from the object's fields (position, scale, color, etc.). |
| 0x00DA8330 | 1432 | CSkillUnit__render_body_sprite | Renders the body sprite for a CSkillUnit. Checks rendering flags, gets sprite/palette resources based on job ID, loads action/sprite data, iterates through sprite frames, applies rendering offsets, color adjustments (opacity for flag 0x130), and submits to the render pipeline via FUN_00cb39a0 or FUN_00cb3f40. |
| 0x00DA88D0 | 943 | CSkillUnit__render_body_sprite_shadow | Renders the body sprite with shadow/overlay effects. Similar to CSkillUnit__render_body_sprite but uses different rendering mode (action type 3/dead or 0x5f+). Handles action overrides for special states, costume garment sprites (redirects to alternate resource at +0x510 offset), and submits with render mode 0x101. |
| 0x00DA8C80 | 749 | CSkillUnit__render_garment_sprite | Renders the garment sprite for a CSkillUnit. Similar to render_body_sprite_shadow but uses render mode 5, checks for second resource vector (offset 0x130), and handles garment-specific rendering. Null-checks DAT_01389638 before proceeding. |
| 0x00DA8F70 | 360 | CEntity__lua_draw_on_top_check | Calls Lua DrawOnTop/New_DrawOnTop function to determine if entity should be drawn on top. Passes entity job ID (with costume override check), animation frames, sprite index, and other state. Two code paths: new style (DAT_0173353c set) includes effective job ID parameter, old style uses basic draw format. Returns boolean from Lua result. |
| 0x00DA90E0 | 597 | CEntity__get_doram_action_override | Gets a Doram race action override for specific action/direction combinations. For actions 0x58-0x5f with directions 3-5, remaps the direction based on the action range and a left/right hand state flag at offset 0x260. Only applies to Doram-related job IDs (0xfce, 0xfcf, 0xfd0, 0x1081, etc.). |
| 0x00DA9410 | 405 | CEntity__apply_body_part_offset | Applies position offsets to body part rendering based on part type (1-5) and skill/item IDs. Uses Lua callback 'OffsetItemPos_GetUppingBottomIte...' to get custom offsets. Different offset constants per skill ID (0x411, 0x4d3, 0x526, 0x54a, 0x54e, 0x553, 0x5c6, 0x5cd, 0x5d0, 0x5db, 0x62e). Resolution-dependent offsets via DAT_0135f44c threshold. |
| 0x00DA99A0 | 2368 | CEntity__apply_render_effects | CEntity: apply render effects |
| 0x00DAA3C0 | 37 | CSkillUnit__get_resource_name | Gets the resource name string for a given index from the skill unit's resource vector at offset 0x4c0. Returns pointer to the resource name or a default empty string at DAT_010d4ee8. |
| 0x00DAA3F0 | 303 | CSkillUnit__get_all_resource_names | Builds a vector of 9 STL string resource names from the skill unit's resource array at offset 0x4c0. Allocates 0xd8 bytes (9 x 0x18-byte STL strings), populates each by looking up the resource name or defaulting to empty string. |
| 0x00DAA520 | 40 | CSkillUnit__get_resource_at_index | Returns the resource pointer at the given index from the vector at offset 0x4c0. Bounds-checks against vector size, returns 0 if out of range. |
| 0x00DAA550 | 152 | CEntity__get_action_index | Gets the current action index for the entity. Has several modes based on flags at offsets 0xd8, 0xd4, 0xdc, 0xc8: if in special state (0xd8), returns byte at 0xbb or offset byte; if in riding state (0xdc or 0xc8), returns byte at 0xc3 or 0xb5; otherwise calls virtual method 0xdc and either get_body_part_offset_for_action or FUN_00daad80. |
| 0x00DAA620 | 249 | CEntity__load_body_resource | Loads the body sprite resource for the entity based on job ID. Maps job IDs to body type codes (1-6, 0x60, 0x64, 0x113 for various classes/races), builds a path string via FUN_00dde340, and loads the resource via CResourceMgr. Job ID mapping covers all standard RO classes plus Doram, Star Emperor, Soul Reaper, etc. |
| 0x00DAA890 | 245 | CEntity__load_head_resource | Loads the head sprite resource for the entity. Same job-to-body-type mapping as CEntity__load_body_resource but uses FUN_00dde6b0 for the head path instead of FUN_00dde340. Loads and returns the resource via CResourceMgr. |
| 0x00DAABF0 | 116 | CEntity__update_action_frame | Updates the entity's current action frame. Checks various state flags (0xd8, 0xdc, 0xc8) and gets the action index either from get_body_part_offset_for_action or CEntity__get_action_count_for_job. Then updates the frame via virtual method 0x10 and gets the tree node count. |
| 0x00DAAC70 | 271 | CEntity__get_sprite_y_offset | Gets the Y-axis sprite rendering offset by comparing the entity's sprite resource tree nodes. Loads the resource by string path, gets two tree node entries, and returns the difference in their Y-coordinates (field+4). Returns 0 if any lookup fails. |
| 0x00DAAD80 | 213 | CEntity__get_action_count_for_job | Returns the action count/offset for the current entity's job class. Maps job IDs to sprite action counts: 0x20 for Alchemist/Sage/Doram classes, 0x10 for case 6, 0x28 for Star Emperor (0x107a-d/0x10d4) in case 8, 0x60 for most others in case 8, 0x50 for Star Emperor/Soul Reaper group, 0x60 default. Used for animation frame selection. |
| 0x00DAAFE0 | 37 | CEntity__get_head_resource_name | Gets the head resource name string for a given index from the entity's head resource vector at offset 0x4b4. Returns pointer to the resource name or a default empty string. |
| 0x00DAB010 | 303 | CEntity__get_all_head_resource_names | Builds a vector of 9 STL string head resource names from the entity's head resource array at offset 0x4b4. Same pattern as CSkillUnit__get_all_resource_names but for head sprites. |
| 0x00DAB140 | 19 | CEntity__get_head_resource_ptr | Returns the head resource pointer at the given index from offset 0x4b4 vector. No bounds check. |
| 0x00DAB170 | 159 | CEntity__lua_is_top_layer | Calls Lua function 'IsTopLayer' with the entity's skill ID (offset 0x49c) to determine if this entity renders on top. Returns the Lua result as a bool. |
| 0x00DAB210 | 58 | CEntity__has_alternate_body_sprite | Checks if the entity has an alternate body sprite. Returns true if the entity has a positive value from virtual method 0xdc, or if the job doesn't match FUN_00e3d350 but has a costume garment. |
| 0x00DAB250 | 108 | CEntity__is_in_special_state | Checks if the entity is in any special state: FUN_00df98e0 (frozen?), FUN_00df99a0 (stone?), FUN_00df9a30, FUN_00df9870, FUN_00df9900, or field 0x3dc==1. Returns 1 if any check passes. |
| 0x00DAB2C0 | 329 | CEntity__lua_check_riding_layer_priority | Checks riding state via Lua for layer priority. For action types 0, 8, 0x10, 0x40, calls 'IsIgnoredRidingState' and 'TB_Layer_Priority' Lua functions. Only applies when entity is not the current player (param_4==0 && param_2 != self). |
| 0x00DAB700 | 36 | CSkillUnit__unregister_window | Unregisters the CSkillUnit's UI window at offset 0x490 and zeroes the handle. |
| 0x00DABBE0 | 566 | CSkillUnit__update_per_frame | Per-frame update for CSkillUnit. Handles idle effects, damage queue, overhead UI, HP bar, hit flash, color adjustment, animation sounds, anti-cheat sweep. Also manages visual effect creation/destruction: if virtual method 0xdc returns >0 and no effect exists, creates one via FUN_00cda580 with type 0x2c; if entity enters special state (frozen/stone), destroys the effect. |
| 0x00DABFC0 | 105 | CSkillUnit__update_overhead_ui | Updates overhead UI position for CSkillUnit. Same as CSkillEffect version but uses window at offset 0x490. |
| 0x00DAC200 | 391 | CSkillUnit__process_state_machine | CSkillUnit state machine processor. Extended version of CSkillEffect__process_state_machine with additional states: 0x2d, 0x33(custom anim->sit transition), 0x3c-0x51(various special actions). States 0x3e-0x50 all just call virtual 0x20 (update frame). |
| 0x00DAD4D0 | 995 | CSkillUnit__render_restricted_sprite | Renders a CSkillUnit when in restricted rendering mode (CMessageStringTable__is_restricted_msg_id). Projects entity position to screen, loads body resource string, gets sprite frames from action/direction data, renders 2D sprite with action frame 0x78, submits quad via submit_sprite_quad_to_render_queue with render mode 0x101. Falls back to costume garment resource if available. |
| 0x00DAE890 | 193 | CSkillUnit__dispatch_action | Action dispatch for CSkillUnit. Extended version handling action IDs 3-137 through a jump table. Falls back to CEntity__process_action_table_entry with all 15 params for out-of-range actions. |
| 0x00DAFB60 | 665 | CSkillUnit__load_sprite_resource_for_slot | Loads a sprite resource for a specific slot in CSkillUnit. Releases existing resource, then loads a new one based on slot index (0=body, 5=head, 6=null), restricted message status, and weapon state (param_1[0x98]). After loading, updates sprite offset calculations for slot 1 (head). |
| 0x00DAFE10 | 59 | CSkillUnit__load_all_sprite_resources | Loads all 9 sprite resources for CSkillUnit by iterating through the resource name vector and calling CSkillUnit__load_sprite_resource_for_slot for each slot. |
| 0x00DAFFA0 | 90 | CSkillUnit__set_weapon_and_refresh | Sets the weapon ID for CSkillUnit (stored at offset 0x4d0) and optionally refreshes the visual appearance. If param_3 is nonzero, reloads the body sprite (via virtual 0x54), updates colors (virtual 0x60), and reloads all resources (virtual 0x80). Uses garment sprite ID for costume entities. |
| 0x00DB0000 | 53 | CSkillUnit__set_shield_and_refresh | Sets the shield ID for CSkillUnit. Stores param_2 at offset 0x48, translates through FUN_00e2f710 with job ID and weapon ID, stores result, then reloads all resources via virtual 0x80. |
| 0x00DB0040 | 409 | CSkillUnit__update_garment_path | Updates the garment sprite path for CSkillUnit. If shield ID (offset 0x48) is nonzero, builds a resource path based on job ID, weapon, shield, and sex. For costume garments (FUN_00ca9e20), uses a simpler format string with costume name. Stores the path string in the entity's name field (offset 0x1c). |
| 0x00DB01F0 | 134 | CEntity3D__reset_granny_animations | Resets all 20 Granny animation controls. Frees each control via granny_free_control, saves current state to +0xf3c, clears +0xf24. Then reads texture names for the current animation state using CRsmModel__ReadTextureNames with looping flag based on param_2==1 and state!=6. |
| 0x00DB0280 | 21 | CEntity3D__set_field_444_and_update | Sets field +0x444 (animation index) and calls virtual method at vtable+0x7c to update the entity's animation accordingly. |
| 0x00DB02A0 | 169 | CEntity__update_accessory_sprite_name | Updates accessory sprite name string based on headgear view ID. Gets effective job ID, looks up accessory name via FUN_00ddcef0, and copies result string to entity's name field at +0x460 if different. |
| 0x00DB0350 | 162 | CSkillUnit__update_accessory_path | Updates the accessory sprite path for CSkillUnit. Builds path via FUN_00ddcef0 using headgear ID (0x440), costume ID (0x4d4), sex (0x260), and accessory type (0x444). Stores result in entity string field at offset 0x478. |
| 0x00DB05E0 | 218 | CSkillUnit__update_body_string_path | Updates the body sprite string path for CSkillUnit. Similar to CSkillEffect version but stores at offset 0x418. For Doram-class jobs (0x10ce-0x10ea range) with costume flag, translates job ID via FUN_00e130a0 first. |
| 0x00DB0710 | 76 | CSkillUnit__set_anim_speed | Sets animation speed for CSkillUnit. Same as CSkillEffect version but uses skill ID at offset 0x448, with translation via FUN_00e19530 for IDs > 0x69. |
| 0x00DB0780 | 31 | CSkillUnit__set_palette_and_head_palette | Sets palette via virtual method 0xa0 and stores head palette ID at offset 0x434. |
| 0x00DB07C0 | 27 | CSkillUnit__set_sex_and_refresh_head | Sets the entity's sex byte at offset 0x2cc and refreshes the head sprite by calling virtual method 0x70 with the current head ID (offset 0x45c). |
| 0x00DB07F0 | 474 | CSkillUnit__set_headgear_bottom | Sets the bottom headgear for CSkillUnit. Stores headgear ID at offset 0x454, builds action/palette paths via FUN_00ddba70/FUN_00ddbae0, loads the sprite resource for slot 3 and palette resource. Also cleans up attached effects 0x2a6-0x2a8 if they exist. |
| 0x00DB09D0 | 16 | CSkillUnit__set_headgear_top_id | Sets the top headgear ID at offset 0x450 for CSkillUnit (simple setter, no resource loading). |
| 0x00DB09E0 | 338 | CSkillUnit__set_headgear_mid_and_load | Sets the mid headgear for CSkillUnit. Stores ID at offset 0x458, builds sprite/palette paths, loads sprite resource for slot 4 and palette at head resource vector index 4. |
| 0x00DB0B40 | 16 | CSkillUnit__set_skill_id | Sets the skill ID at offset 0x448 for CSkillUnit (simple setter). |
| 0x00DB0B50 | 338 | CSkillUnit__set_headgear_top_and_load | Sets the top headgear for CSkillUnit and loads resources. Stores ID at offset 0x450, builds sprite/palette paths, loads sprite resource for slot 2 and palette at head resource vector index 2. |
| 0x00DB0CB0 | 48 | CSkillUnit__render_with_bottom_headgear | Dispatches to virtual method 0x4c for rendering, passing bottom headgear ID (offset 0x454) along with the rendering parameters. |
| 0x00DB0CE0 | 727 | CEntity__setup_appearance_from_params | Sets up full entity appearance from spawn parameters. Stores job, gender, head, weapon, shield, headgear slots, garment, and robe data. Loads body sprite based on visibility state checks (transparent/invisible/etc), handles costume garments. Calls virtual methods for head, weapon, shield, headgear, garment, robe loading. Some job IDs (0xfdb, 0xc, 0xfad, 0xfc3, 0xfe1, etc) use special head ID calculation. |
| 0x00DB0FC0 | 1945 | CEntity3D__setup_granny_model_from_params | Sets up 3D Granny model from spawn parameters. Loads main model .gr2 resource, instantiates via GrannyInstantiateModel. Allocates mesh buffers per triangle count. Loads additional models by replacing extension: .hr2 (hair), .bd2 (body), .pt2 (pants), .le2 (legs). For each, allocates vertex/triangle buffers. Rebinds meshes and finds hair pivot. Gets system time for animation timing. |
| 0x00DB1760 | 507 | CEntity__setup_npc_appearance | Sets up NPC entity appearance. Similar to setup_appearance but for NPCs. Handles visibility state chain (transparent, etc) for body sprite selection (0x16-0x1e). Loads all sprite slots via virtual method chain. Calls virtual +0x84 for custom NPC handling. |
| 0x00DB1980 | 16 | CEntity__set_headgear_slot_id | Sets headgear slot ID at +0x434. |
| 0x00DB1990 | 300 | CEntity__load_headgear_mid_sprite | Loads middle headgear sprite. Sets +0x440, gets sprite path from FUN_00ddcd50, loads sprite for slot 1 via CSkillUnit__load_sprite_resource_for_slot. Gets act path from FUN_00ddcfe0, releases old resource, loads new resource. Handles restricted entity IDs. |
| 0x00DB1AC0 | 29 | CSkillUnit__set_scale_from_param | Sets the scale factor at offset 0x54 by calling FUN_00de0a70 to compute scale from param_2. |
| 0x00DB1AE0 | 1614 | CEntity__load_body_sprite_with_options | Loads body sprite with various state options. Handles mount toggle (job IDs 0x13/0x14 etc), gets scale. Prioritizes by visibility state: transparent=0x16, fading variants=0x1a-0x1e, then normal body by job/gender/costume. Special scaling for certain doram jobs (0xff6/0xff7/0x10b7/0x1010). Loads both sprite and act resources into slot 0. |
| 0x00DB2230 | 302 | CEntity__load_sprite_resource_for_slot | Loads a sprite resource into a specific slot. Releases old resource first. For restricted entity IDs, uses gender-specific replacement sprites for slots 0 (body) and 5 (shadow). Slot 6 is nulled for restricted. Otherwise loads from given path. Increments reference count on loaded resource. |
| 0x00DB23A0 | 690 | CEntity__load_headgear_robe_sprite | Loads headgear robe sprite. Calls Lua IsHelmRobe and TB_Layer_Priority functions. Depending on robe flag, resolves sprite/act paths via FUN_00ddba70/FUN_00ddbae0 with job ID, gender, headgear and palette info. Loads sprite into slot 8, loads act resource into slot +0x20. |
| 0x00DB2670 | 443 | CEntity__load_palette_sprite | Loads palette sprite resource. Sets +0x45c. If costume flag at +0x2cc is clear, gets palette path from FUN_00de0c50 using job/gender/palette/subpalette, loads into slot 7 and act resource into slot +0x1c. If costume flag set, loads empty resource for both slots. |
| 0x00DB2840 | 2239 | CEntity__load_weapon_sprites | Loads weapon sprites for entity. Handles weapon/shield IDs, clears slots 5/6 first. For invisible states, uses job ID from +0x135. Handles special job IDs (doram 0xff4-0x10b7 with Madogear string replacement). For dual-wield, calculates render priority. Loads sprite/act resources for primary (slot 5) and secondary (slot 6) weapons with fallback to default weapon type mapping. |
| 0x00DB3740 | 951 | CEntity__load_shield_sprites | Loads shield sprites. Sets +0x448/+0x44c for shield ID/type. Checks if shield should be displayed via FUN_00dfac70. If not, clears slots 5/6. Otherwise loads shield sprite/act via FUN_00e19370/FUN_00e194c0 with job/gender. For restricted entities, uses gender-specific replacement sprites. Uses jump table for weapon type-specific secondary slot loading. |
| 0x00DB3C30 | 164 | CEntity3D__set_entity_state | Sets 3D entity state with Granny model support. Handles states: 0=idle (with camera speed reset for certain mounts), 1=walk, 2=attack (with IsItemUsingArrow lua call), 6/8=special (with animation direction), 7=sitting (job-specific), 9=attack variant. Resets granny animations on death. Updates animation frame offset and timestamp. |
| 0x00DB4290 | 2185 | CPlayerEntity__set_entity_state | Sets player entity state. Extended version with mount/riding support. On death (state 3), reloads body sprite. Handles state 0 with mount camera speed caps. State 2 (attack) calls IsItemUsingArrow lua, with special attack range for specific skills. State 7 handles many job-specific sitting animations. State 9 handles attack with cast time adjustment for certain skills. |
| 0x00DB4C70 | 203 | CEntity__remap_attack_direction_for_job | Remaps attack direction for specific job classes. Sage/Alchemist/Monk types: remap dirs 8,6,7 to 2. Blacksmith types: remap dir 5 to 10. Sage/Bard with certain sub-jobs: remap dirs 8,7 to 2, and dir 6 to 1 for specific sub-jobs. Default passes through unchanged. |
| 0x00DB4E70 | 238 | CEntity__manage_riding_effect | Manages the riding/mount visual effect. If param_2 is true and entity is not in special state (frozen/stone), creates an effect via FUN_00cda580 with type 0x2c and stores at offset 0x414. If in special state, destroys the existing effect. |
| 0x00DB50C0 | 91 | CPlayerEntity__ctor | CPlayerEntity constructor. Derives from CSkillUnit, sets vtable to PTR_FUN_011a54b0 and calls FUN_00db5340 for additional player-specific initialization. |
| 0x00DB5120 | 71 | CPlayerEntity__dtor | CPlayerEntity destructor. Sets vtable to PTR_FUN_011a54b0 then calls CSkillUnit__dtor. |
| 0x00DB5170 | 99 | CPlayerEntity__scalar_deleting_dtor | CPlayerEntity scalar deleting destructor. Size is 0x548 bytes. Sets vtable, calls CSkillUnit__dtor, optionally frees memory. |
| 0x00DB5220 | 130 | CPlayerEntity__check_range_threshold | Checks if entity is within range threshold. Computes distance via FUN_00ca9700 and FUN_00db6820, compares against param_3 * 5 + constant. Returns 1 if within range. |
| 0x00DB5340 | 911 | CPlayerEntity__initialize_local_player | Initializes local player entity from global state. Converts cell position to world coordinates, gets interpolated height, sets up targeting/movement state, initializes all timer/counter fields. Loads appearance from saved params via virtual calls. Sends initial network commands (0x6e for battleground, 0x6d for skill effect 0xa4). Sets up movement style from global config. |
| 0x00DB5710 | 503 | CPlayerEntity__update_idle_state | Updates player entity idle state. Enables special movement, processes idle effects and damage queue, updates overhead UI. Handles hit flash timeout. Adjusts entity color. Checks position reporting timer for auto-movement. Calls auto-follow update. Manages riding effect based on mount state. Updates minimap window if needed. |
| 0x00DB5980 | 3166 | CPlayerEntity__update_auto_follow_target | Updates auto-follow target pathfinding. Handles 6 follow modes: 1/5=follow entity, 2=follow NPC, 3=attack entity, 4=attack ground cell, 6=interact with item. Calculates distance to target, finds walkable cells, sends movement/attack commands. Handles periodic idle re-pathing with cooldown timers. Different movement allowed states per job type (mounts/4th jobs allow more states). |
| 0x00DB6670 | 417 | CPlayerEntity__adjust_follow_offset_by_angle | Adjusts follow target cell offset based on angle between player and target. Gets move speed from entity, calculates atan2 angle, then adjusts destination cell X/Y by speed amount in the appropriate cardinal/diagonal direction based on 8-way angle buckets. |
| 0x00DB6820 | 143 | CPlayerEntity__get_adjusted_distance_to_target | Gets adjusted distance to target, subtracting target's radius. For riding mode (0xb8==1), subtracts fixed constant. For entities with move speed > 0, subtracts (speed+1)*constant. Returns max(0, adjusted distance). |
| 0x00DB68B0 | 9891 | CEntity__update_status_effect_visuals | Updates visual effects for entity status changes. 9K bytes. Called by recv_pet_status_update and FUN_00cbfc40. Manages skill effects (TetraVortex elements, orbit effects, footprints), creates/removes attached effects, dispatches effect by ID, and opens game windows as needed. |
| 0x00DB9A00 | 228 | CPlayerEntity__dispatch_player_action | Dispatches player action via jump table. For param_3==0 and param_2 < 0x96, uses lookup table at DAT_00dba52c to index into jump table at PTR_LAB_00dba4d4. Otherwise delegates to CSkillUnit__dispatch_action. |
| 0x00DBA5D0 | 231 | CPlayerEntity__set_state_with_death_handling | Sets player entity state with death handling. On non-walking transitions, resets target coords. If queued movement exists in idle state, sends walk command. On death (state 3), sends server notification (type 5), triggers camera shockwave at entity position, clears DAT_0138963c. Delegates to CPlayerEntity__set_entity_state. |
| 0x00DDB920 | 333 | CEntity__call_draw_on_top_lua | Calls the Lua 'DrawOnTop' or '_New_DrawOnTop' function for entity rendering. Passes entity rendering parameters including sprite ID, position, and draw flags. Uses the old-style 'DrawOnTop' when this+0xF04 is clear (format 'ddddd>b'), or the new-style '_New_DrawOnTop' (format 'ddddd>bd') when set, adding job tree mapping. |
| 0x00E1E690 | 16511 | CEntity__create_skill_visual_effects | Dispatches skill visual effects creation. Called by CEntity__process_skill_action. Creates ground effects, linked skill effects, and entity-attached effects based on skill type. Uses camera zoom, effect manager, and entity effect system. 16K bytes. |
| 0x00E4A1A0 | 265 | CEntitySprite__ctor | Constructor for CEntitySprite. Calls CSprite__ctor_base, sets vtable to CEntitySprite's vtable, zeroes out fields 0x4E-0x56 and copies initial position from base fields 4-6. Initializes various entity-specific fields including mounted flag and display state. |
| 0x00E4A550 | 382 | CItem3DSprite__ctor | Constructor for CItem3DSprite (3D item display sprite). Calls CSprite__ctor, sets vtable, initializes 3D rendering fields: scale to 1.0f (0x3F800000) for x/y/z axes, rotation to 0, render mode to 1, visibility flag to 1. Zeroes position, animation, and bounding box fields. |
| 0x00E4A850 | 71 | CEntitySprite__dtor | Destructor for CEntitySprite. Sets vtable to PTR_FUN_011ad3c4, then calls CSprite__dtor_base. |
| 0x00E4A8F0 | 100 | CEntity__dtor_00e4a8f0 | Destructor for CEntity. Sets vtable to PTR_FUN_011ad2bc. If attached sprite at this+0x44C is non-null, calls its virtual destructor. Then calls FUN_00e4aa30 (CGameMode dtor). |
| 0x00E4A9B0 | 128 | CItem3DSprite__dtor | Destructor for CItem3DSprite. Sets vtable to PTR_FUN_011ad43c. If parent object at this+0x15C is non-null, sends event (0x30) via its virtual method. Then calls CSprite__dtor. |
| 0x00E4AB10 | 99 | CEntitySprite__scalar_deleting_dtor | Scalar deleting destructor for CEntitySprite. Sets vtable, calls CSprite__dtor_base, frees 0x170 bytes if bit 0 of param_2 set. |
| 0x00E4ABF0 | 124 | CEntity__scalar_deleting_dtor_00e4abf0 | Scalar deleting destructor for CEntity. Sets vtable to PTR_FUN_011ad2bc, destroys attached sprite, calls CGameMode dtor, frees 0x560 bytes if bit 0 set. |
| 0x00E4AD40 | 152 | CItem3DSprite__scalar_deleting_dtor | Scalar deleting destructor for CItem3DSprite. Sets vtable to PTR_FUN_011ad43c, notifies parent object, calls CSprite__dtor, frees 0x1B8 bytes if bit 0 set. |
| 0x00E4B580 | 167 | CEntity__destroy_attached_3d_object | Destroys an entity's attached 3D object. Removes from quadtree, calls virtual destructor on the 3D object at this+0x41C, notifies parent at +0x420 with event 0x18, and cleans up associated effect/aura at +0x424/+0x428. Clears all attachment pointers. |
| 0x00E4B990 | 139 | CEntity__cleanup_effects_and_3d | Cleans up entity resources: unregisters UI window at offset 0x264, destroys attached 3D object, then iterates the effect vector at 0x430/0x434 dispatching effect updates (type 0x18) and clearing the vector. |
| 0x00E4BDE0 | 120 | CEntity__init_homunculus_state | Initializes homunculus entity state. Sets entity type at +0x418, calls CEntity__set_mounted_job_and_update_sprite(0x7E), sets action timeout to 36000, clears various state flags and pointers (+0xA5, +0xA1, +0x264, +0x41C-+0x42C), copies timer value from +0x430 to +0x434. |
| 0x00E4C1C0 | 66 | CEntity__is_within_animation_time | Checks if an entity is within its animation time frame. Computes elapsed time since this+0x8C, converts to float seconds using a global divisor, and compares against the animation duration at this+0x158. Returns true if within time. |
| 0x00E4C2F0 | 20 | CEntity__is_animation_active | Checks if an entity's animation is still active by comparing current time (timeGetTime) against the animation end time at this+0x164. Returns true if current time is within the animation window. |
| 0x00E50340 | 50 | CEntity__conditional_render_sprite | Conditionally renders an entity's sprite. For certain entity types (0xD-0x10, 0x15, 0x16, 0x72 at this+0x1A8), only renders if global flag cRam0135f718 is set. Also checks visibility flag at this+0x158 before calling CEntity__render_sprite_if_visible. |
| 0x00E50D10 | 145 | CEntity__handle_special_action | Handles special entity actions. For action 0x16 (talk/speech), stores text pointer at this+0x418. For action 0x75 (name display), copies name string to this+0x454, sets fields +0x444 and +0x448, calls virtual method at vtable+0xFC. All other actions are passed through to CEntity__process_action_table_entry. |
| 0x00E50DB0 | 117 | CEntity__dispatch_action_by_index | Dispatches entity actions by index via a jump table. For action indices 0xE-0x75 (when param_3 is 0), uses a byte lookup table at DAT_00e50eb6 to jump to specialized handlers. All other cases fall through to CEntity__dispatch_action_by_type. |
| 0x00E55100 | 542 | CEntity__register_clickable_bounds | Registers entity bounds in the quadtree for click detection. Allocates a 0x28-byte bounds structure, computes min/max from screen bounds param_2, stores entity ID and job ID, ensures minimum clickable size based on near clip distance. Inserts into quadtree via CQuadTreeNode__insert_object. Only processes if field 0xA5 (clickable flag) is set. Calls virtual function at vtable+0x18 afterwards. |
| 0x00E55320 | 489 | CEntity__attach_3d_model | Attaches a 3D RSM model to the entity. Loads the model resource, creates either CRsmNodeEx (for type 1 RSM) or CRsmAnimNode (for type 2 RSM), clones child parts, sets initial position from entity position, configures rendering properties (scale, color), and inserts into the quadtree. Destroys any previously attached 3D object first. |
No function here matches that. Search all 47,061 functions instead.