![]() |
Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
|
Classes | |
| class | daE_YK_HIO_c |
| Shadow Keese Host Input Output class. More... | |
Functions | |
| static void | yk_disappear (e_yk_class *i_this) |
| Makes a Shadow Keese disappear with effects and item drops. | |
| static void | anm_init (e_yk_class *i_this, int i_resIdx, f32 i_morf, u8 i_attr, f32 i_rate) |
| Initializes animation parameters for the Shadow Keese. | |
| static int | daE_YK_Draw (e_yk_class *i_this) |
| Renders the Shadow Keese model with environmental lighting. | |
| static void * | shot_b_sub (void *i_actor, void *param_1) |
| Searches for a charged boomerang that can affect the Shadow Keese. | |
| static int | other_bg_check (e_yk_class *i_this, fopAc_ac_c *i_actorP) |
| Checks for line-of-sight obstruction between Shadow Keese and another actor. | |
| static int | pl_check (e_yk_class *i_this, f32 i_distance, s16 i_angle) |
| Checks if the Shadow Keese should target the player. | |
| static void | damage_check (e_yk_class *i_this) |
| Checks for and handles damage to the Shadow Keese. | |
| static int | path_check (e_yk_class *i_this) |
| Checks visibility and accessibility of path points for Shadow Keese navigation. | |
| static void | fly_move (e_yk_class *i_this) |
| Handles movement calculations for Shadow Keese flight. | |
| static void | e_yk_roof (e_yk_class *i_this) |
| Handles Shadow Keese behavior when perched on ceiling. | |
| static void | e_yk_fight_fly (e_yk_class *i_this) |
| Handles the Shadow Keese's behavior when flying towards the player to engage in combat. | |
| static void | e_yk_fight (e_yk_class *i_this) |
| Handles the Shadow Keese's combat behavior when circling around the player. | |
| static void | e_yk_attack (e_yk_class *i_this) |
| Handles Shadow Keese's attack behavior when targeting the player. | |
| static void | e_yk_fly (e_yk_class *i_this) |
| Handles Shadow Keese's normal flying behavior. | |
| static void | e_yk_return (e_yk_class *i_this) |
| Handles Shadow Keese returning to its home position. | |
| static void | e_yk_path_fly (e_yk_class *i_this) |
| Handles Shadow Keese's path-following behavior. | |
| static void | e_yk_chance (e_yk_class *i_this) |
| Handles Shadow Keese's stunned state after being shield-blocked. | |
| static void | e_yk_wolfbite (e_yk_class *i_this) |
| Handles Shadow Keese's behavior when caught and thrown by Wolf Link. | |
| static void | e_yk_wind (e_yk_class *i_this) |
| Handles Shadow Keese's behavior when caught in boomerang wind. | |
| static void | action (e_yk_class *i_this) |
| Main action handler for Shadow Keese - controls state transitions and updates. | |
| static int | daE_YK_Execute (e_yk_class *i_this) |
| Main execution function for the Shadow Keese actor. | |
| static int | daE_YK_IsDelete (e_yk_class *param_0) |
| Checks if the Shadow Keese actor should be deleted. | |
| static int | daE_YK_Delete (e_yk_class *i_this) |
| Handles cleanup when Shadow Keese actor is deleted. | |
| static int | useHeapInit (fopAc_ac_c *i_this) |
| Initializes heap resources for Shadow Keese actor. | |
| static int | daE_YK_Create (fopAc_ac_c *i_this) |
| Creates and initializes a new Shadow Keese actor instance. | |
Variables | |
| static u8 | data_80807EF8 |
| static daE_YK_HIO_c | l_HIO |
| static u8 | check_index [255] |
| static actor_method_class | l_daE_YK_Method |
| actor_process_profile_definition | g_profile_E_YK |
Enemy - Shadow Keese
|
static |
Main action handler for Shadow Keese - controls state transitions and updates.
| i_this | Pointer to the Shadow Keese actor instance |
Primary state machine controller that:
Also handles:
|
static |
Initializes animation parameters for the Shadow Keese.
| i_this | Pointer to the Shadow Keese instance |
| i_resIdx | Resource index for the animation transform data |
| i_morf | Animation morph rate |
| i_attr | Animation play mode |
| i_rate | Animation play speed |
Sets up a new animation on the Shadow Keese's morph model using the specified parameters. Updates the current resource index to track which animation is playing.
|
static |
Creates and initializes a new Shadow Keese actor instance.
| i_this | Pointer to the actor base class |
Initialization steps:
Special cases:
|
static |
Handles cleanup when Shadow Keese actor is deleted.
| i_this | Pointer to the Shadow Keese actor instance |
Performs cleanup:
|
static |
Renders the Shadow Keese model with environmental lighting.
| i_this | Pointer to the Shadow Keese actor instance |
Handles the rendering of the Shadow Keese by:
The function uses the following rendering pipeline:
|
static |
Main execution function for the Shadow Keese actor.
| i_this | Pointer to the Shadow Keese actor instance |
Handles the main per-frame updates for the Shadow Keese, including:
The function is skipped if Midna is currently talking.
State-specific behaviors:
|
static |
Checks if the Shadow Keese actor should be deleted.
| param_0 | Pointer to the Shadow Keese actor instance |
|
static |
Checks for and handles damage to the Shadow Keese.
| i_this | Pointer to the Shadow Keese actor instance |
Processes collision-based damage from various sources:
Special handling:
|
static |
Handles Shadow Keese's attack behavior when targeting the player.
| i_this | Pointer to the Shadow Keese actor instance |
State machine with phases:
Uses HIO-configured charge speed and interpolated movement.
|
static |
Handles Shadow Keese's stunned state after being shield-blocked.
| i_this | Pointer to the Shadow Keese actor instance |
State machine with phases:
Applies gravity and smooth rotation interpolation while stunned.
|
static |
Handles the Shadow Keese's combat behavior when circling around the player.
| i_this | Pointer to the Shadow Keese actor instance |
Controls the Shadow Keese's movement pattern during combat, making it circle around the player while maintaining a certain distance. The keese picks random positions around the player to fly to, creating an erratic flight pattern.
State transitions:
The keese will transition to:
Movement is smoothly interpolated using cLib_addCalc2 for position and angle updates. Random factors are used to create unpredictable but controlled movement patterns.
|
static |
Handles the Shadow Keese's behavior when flying towards the player to engage in combat.
| i_this | Pointer to the Shadow Keese actor instance |
Controls the Shadow Keese's movement when transitioning from passive to combat state. The keese will fly directly towards the player's position while playing appropriate animations.
State transitions:
Animation phases:
|
static |
Handles Shadow Keese's normal flying behavior.
| i_this | Pointer to the Shadow Keese actor instance |
State machine with phases:
Transitions to FIGHT_FLY if player comes within trigger range. Uses HIO-configured fly speed and cruise speed.
|
static |
Handles Shadow Keese's path-following behavior.
| i_this | Pointer to the Shadow Keese actor instance |
State machine with phases: 0/1. Path Navigation:
2/3. Point Movement:
Uses HIO-configured fly speed and handles multi-room paths.
|
static |
Handles Shadow Keese returning to its home position.
| i_this | Pointer to the Shadow Keese actor instance |
State machine with phases:
Uses HIO-configured fly speed and smooth movement interpolation.
|
static |
Handles Shadow Keese behavior when perched on ceiling.
| i_this | Pointer to the Shadow Keese actor instance |
State machine with two phases:
Will transition to FIGHT_FLY state if player comes within trigger range. Uses smooth interpolation to maintain position and prevent jittering.
|
static |
Handles Shadow Keese's behavior when caught in boomerang wind.
| i_this | Pointer to the Shadow Keese actor instance |
State machine with phases:
Continuously applies rotation around Y axis while in wind state.
|
static |
Handles Shadow Keese's behavior when caught and thrown by Wolf Link.
| i_this | Pointer to the Shadow Keese actor instance |
State machine with phases:
Maintains constant forward speed when bouncing on ground.
|
static |
Handles movement calculations for Shadow Keese flight.
| i_this | Pointer to the Shadow Keese actor instance |
Calculates and applies movement towards a target position (mPathPntPos):
Movement characteristics:
|
static |
Checks for line-of-sight obstruction between Shadow Keese and another actor.
| i_this | Pointer to the Shadow Keese actor instance |
| i_actorP | Pointer to the target actor to check against |
Performs a line collision check between:
Used to determine if background geometry (walls, terrain, etc.) is blocking the Shadow Keese's view of potential targets. This affects targeting and behavior decisions.
|
static |
Checks visibility and accessibility of path points for Shadow Keese navigation.
| i_this | Pointer to the Shadow Keese actor instance |
Performs two main checks:
Used for path-following behavior to ensure keese can navigate around obstacles and maintain valid flight paths.
|
static |
Checks if the Shadow Keese should target the player.
| i_this | Pointer to the Shadow Keese actor instance |
| i_distance | Maximum distance threshold for targeting |
| i_angle | Maximum angle difference threshold for targeting (1 means any angle) |
Determines if the Shadow Keese should target the player based on:
Used by various states to determine when to transition to combat behaviors.
|
static |
Searches for a charged boomerang that can affect the Shadow Keese.
| param_0 | Pointer to the actor being checked |
| param_1 | Unused parameter |
Checks if the given actor is:
Used by the Shadow Keese's wind state to determine if it should be affected by a charged boomerang's wind effect.
|
static |
Initializes heap resources for Shadow Keese actor.
| i_this | Pointer to the actor base class |
Creates and initializes the morphing model object (mpMorfSO):
|
static |
Makes a Shadow Keese disappear with effects and item drops.
| i_this | Pointer to the Shadow Keese actor instance |
Plays particle effects and sound when the Shadow Keese disappears. Creates an item drop and handles switch activation if specified in parameters.
|
static |
|
static |
|
extern |
|
static |
|
static |