SSBM Decomp
Loading...
Searching...
No Matches
ftCo_0A01.c File Reference
#include "ftCo_0A01.h"
#include "ftpickupitem.h"
#include <placeholder.h>
#include <platform.h>
#include "cm/camera.h"
#include "ft/chara/ftPopo/ftPp_SpecialHi.h"
#include "ft/chara/ftPopo/ftPp_SpecialLw.h"
#include "ft/fighter.h"
#include "ft/ft_0877.h"
#include "ft/ftcpuattack.h"
#include "ft/ftlib.h"
#include "ft/inlines.h"
#include "ft/types.h"
#include "ftCommon/forward.h"
#include "ftDonkey/forward.h"
#include "ftKoopa/forward.h"
#include "ftMewtwo/forward.h"
#include "ftPopo/forward.h"
#include "ftSamus/forward.h"
#include "gm/gm_unsplit.h"
#include "gr/grbigblue.h"
#include "gr/grcastle.h"
#include "gr/grcorneria.h"
#include "gr/grgreatbay.h"
#include "gr/grinishie1.h"
#include "gr/grlib.h"
#include "gr/ground.h"
#include "gr/grrcruise.h"
#include "gr/grvenom.h"
#include "gr/stage.h"
#include "gr/types.h"
#include "it/inlines.h"
#include "it/item.h"
#include "it/types.h"
#include "lb/lb_00CE.h"
#include "lb/lbcollision.h"
#include "lb/lbvector.h"
#include "mp/mpisland.h"
#include "mp/mplib.h"
#include "mp/types.h"
#include "pl/player.h"
#include <math.h>
#include <math_ppc.h>
#include <dolphin/mtx.h>
#include <melee/ft/ftcmdscript.h>
#include <MetroTRK/intrinsics.h>

Data Structures

struct  ftCo_803C6594_t

Functions

static void ftCo_800B1DA0 (Fighter *fp)
void ftCo_800A0148 (Fighter *fp)
void ftCo_800A0384 (Fighter *fp)
void ftCo_800A0508 (Fighter *fp)
static void ftCo_800A0508_dontinline (Fighter *fp)
void ftCo_800A05F4 (Fighter *fp)
void ftCo_800A0798 (Fighter *fp)
void ftCo_800A08F0 (Fighter *fp)
void ftCo_800A0AF4 (Fighter *fp)
void ftCo_800A0C8C (Fighter *fp)
void ftCo_800A0CB0 (Fighter *fp)
void ftCo_800A0DA4 (Fighter *fp)
bool ftCo_800A0F00 (Fighter_GObj *gobj)
bool ftCo_800A0FB0 (Vec3 *vec_out, int *line_id_out, u32 *flags_out, Vec3 *normal_out, int arg4, int arg5, int arg6, float arg7, float arg8, float arg9, float arg10, float arg11)
void ftCo_800A101C (Fighter *arg0, int arg1, int arg2, int arg3)
float ftCo_800A17E4 (Fighter *fp)
static float inlineB0 (s8 val, float a, float b)
float ftCo_800A1874 (Fighter *fp)
float ftCo_800A1904 (Fighter *fp)
float ftCo_800A1948 (Fighter *fp)
HSD_Pad ftCo_800A198C (Fighter *fp)
float ftCo_800A1994 (Fighter *fp)
float ftCo_800A1A24 (Fighter *fp)
f32 ftCo_800A1AB4 (Fighter *fp0, Fighter *fp1)
 Compute 2D distance between two fighters.
bool ftCo_800A1B38_noinline (enum_t arg0)
bool ftCo_800A1B38 (enum_t arg0)
bool ftCo_800A1BA8 (Fighter *fp)
bool ftCo_800A1C44 (Fighter *fp)
static bool ftCo_800A1C44_dontinline (Fighter *fp)
bool ftCo_800A1CA8 (Fighter *fp)
static bool ftCo_800A1CC4_inline0 (Fighter *fp, ftCo_803C6594_t *var_r29, mp_UnkStruct0 *temp_r3)
static void ftCo_800A1CC4_inline1 (Fighter *fp, float x, float y)
static void ftCo_800A1CC4 (Fighter *fp, ftCo_803C6594_t *var_r29)
void ftCo_800A1F3C_noinline (Fighter *fp, float arg1, float arg2, float arg3)
void ftCo_800A1F3C_noinline2 (Fighter *fp, float arg1, float arg2, float arg3)
void ftCo_800A1F3C (Fighter *fp, float arg1, float arg2, float arg3)
bool ftCo_800A1F98 (int x, float y)
bool ftCo_800A2040 (Fighter *fp)
void ftCo_800A20A0 (Fighter *fp)
static void ftCo_800A20A0_dontinline (Fighter *fp)
bool ftCo_800A2170 (Fighter *fp0, Fighter *fp1)
bool ftCo_800A21FC (Fighter *fp)
s32 ftCo_800A229C (Fighter *fp, Vec3 *arg1)
static bool inlineL0 (mp_UnkStruct0 *arg0)
static bool inlineL1 (mp_UnkStruct0 *arg0)
bool ftCo_800A2718 (mp_UnkStruct0 *arg0)
static bool ftCo_800A2718_dontinline (mp_UnkStruct0 *arg0)
static bool ftCo_800A2718_dontinline2 (mp_UnkStruct0 *arg0)
static bool ftCo_800A2718_dontinline3 (mp_UnkStruct0 *arg0)
bool ftCo_800A28D0 (Fighter *fp, float arg1)
bool ftCo_800A2998 (Fighter *fp, float arg1)
float ftCo_800A2A70 (Fighter *fp, bool arg1)
bool ftCo_800A2BD4 (Fighter *fp)
bool ftCo_800A2C08 (Fighter *fp)
s32 ftCo_800A2C80 (Fighter *fp)
enum_t ftCo_800A3134 (Fighter *fp)
bool ftCo_IsGrabbing_dontinline (Fighter *fp)
bool ftCo_IsGrabbing (Fighter *fp)
bool ftCo_800A3200 (Fighter *fp)
bool ftCo_800A3234 (Fighter *fp)
static bool inlineC0 (Fighter *fp)
bool ftCo_800A3498 (Fighter *fp)
bool ftCo_800A3554 (Fighter *fp, float arg1)
static bool ftCo_800A2170_it (Fighter *fp, Item *ip)
 This appears to be similar to ftCo_800A2170, but for fighter/item args.
bool ftCo_800A3710 (Fighter *fp)
bool ftCo_IsAlly (Fighter *fp0, Fighter *fp1)
static bool ftCo_IsAlly_dontinline (Fighter *fp0, Fighter *fp1)
bool ftCo_800A3908 (Fighter *fp, bool arg1)
bool ftCo_800A4038 (Fighter *fp, bool arg1)
static bool ftCo_800A4768_inline0 (Fighter *fp, Vec3 *p)
s32 ftCo_800A4768 (Fighter *fp, Vec3 *arg1)
void ftCo_800A49B4 (Fighter *fp)
static bool inlineD0 (Fighter *fp, Fighter *fp1)
static bool inlineD0_it (Fighter *fp, Item *it)
static bool inlineD1 (Fighter *fp)
FighterftCo_800A4A40 (Fighter *fp)
static bool ftCo_800A4E8C_inline0 (Fighter *fp)
static f32 ftCo_800A4BEC_inline0 (Fighter *fp, Fighter *arg1)
FighterftCo_800A4BEC (Fighter *fp)
FighterftCo_800A4E8C (Fighter *fp, Vec3 *arg1)
FighterftCo_800A50D4 (Fighter *fp)
 Returns the closest enemy fighter.
FighterftCo_800A5294 (Fighter *fp, int player_id)
static FighterftCo_800A5294_dontinline (Fighter *fp, int player_id)
FighterftCo_800A53DC (Fighter *fp)
FighterftCo_800A589C (Fighter *fp)
bool ftCo_800A5908 (Item *ip)
bool ftCo_800A5944 (Item *ip)
bool ftCo_800A5980_dontinline (Fighter *fp)
bool ftCo_800A5980 (Fighter *fp)
bool ftCo_800A59C0 (Item *ip)
bool ftCo_800A59E4 (Item *ip)
bool ftCo_800A5A28 (Item *ip)
bool ftCo_800A5A5C (Item *ip)
bool ftCo_800A5A90 (Fighter *fp)
bool ftCo_800A5ACC (Fighter *fp)
FighterftCo_800A5CE0 (Fighter *fp)
static float itemDist (Fighter *fp, Item *ip)
ItemftCo_800A5F4C (Fighter *fp, ItemKind arg1)
 Decide which common item to target.
static f32 ftCo_800A648C_inline0 (Fighter *fp, Item *ip)
ItemftCo_800A61D8 (Fighter *fp)
static bool ftCo_800A648C_inline1 (Item *ip)
HSD_GObjftCo_800A648C_inline2 ()
HSD_GObjftCo_800A648C_inline3 (HSD_GObj *cur)
int ftCo_800A648C (Fighter *fp)
static bool ftCo_800A6A98_inline0 (int line_id)
static bool ftCo_800A6700_inline0 (Fighter *fp, f32 x, f32 y)
bool ftCo_800A6700 (Fighter *fp, Vec3 *arg1, Vec3 *arg2)
s32 ftCo_800A6A98 (Fighter *fp, Vec3 *arg1)
s32 ftCo_800A6D2C (Fighter *fp, Vec3 *arg1)
bool ftCo_800A6FC4 (Fighter *fp, Vec3 *arg1, Vec3 *arg2)
void ftCo_800A75DC (Fighter *fp0, Fighter *fp1)
void ftCo_800A7AAC (Fighter *fp)
void ftCo_800A80E4 (Fighter *fp)
static void ftCo_800A80E4_dontinline (Fighter *fp)
void ftCo_800A8210 (Fighter *fp, Vec3 *arg1)
void ftCo_800A866C (Fighter *fp)
void ftCo_800A8940 (Fighter *fp)
void ftCo_800A8DE4_noinline (Fighter *fp)
void ftCo_800A8DE4 (Fighter *fp)
static int angle_x_units (float angle)
static int angle_y_units (float angle)
void ftCo_800A8EB0 (Fighter *fp)
 Ness recovery PK thunder logic.
void ftCo_800A92CC (Fighter *fp)
 Pikachu/Pichu recovery logic.
static void ftCo_800A949C (Fighter *fp, bool unused)
 Zelda recovery logic.
static void ftCo_800A963C (Fighter *fp, bool unused)
 Samus recovery logic.
void ftCo_800A96B8 (Fighter *fp)
 Handles CPU recovery / up-B logic for each character.
static bool is_small (float x)
void ftCo_800A9904 (Fighter *fp)
static enum_t ftCo_800A9CB4_inline0 (Fighter *fp)
static bool ftCo_800A9CB4_inline1 (Fighter *fp)
void ftCo_800A9CB4 (Fighter *fp)
void ftCo_800AA320 (Fighter *fp, int *stick, int *clamp)
 Determine how much to move the stick based on CPU level.
static bool isInTeeter (Fighter *fp)
static int ftCo_800AA42C_inline0 (float clamp, float dist, float near, float far)
static bool isFacingDestination (Fighter *fp)
void ftCo_800AA42C (Fighter *fp)
void ftCo_800AA844 (Fighter *fp)
void ftCo_800AABC8 (Fighter *fp)
static void ftCo_800AABC8_dontinline (Fighter *fp)
void ftCo_800AACD0 (Fighter *fp)
bool ftCo_800AAF48 (Fighter *fp)
static void ftCo_800AD54C_inline0 (Fighter *fp)
void ftCo_800AB224 (Fighter *fp)
void ftCo_800ABA34 (Fighter *fp)
void ftCo_800ABBA8 (Fighter *fp)
static bool inlineG0 (Fighter *fp)
void ftCo_800AC30C_noinline (Fighter *fp)
void ftCo_800AC30C (Fighter *fp)
static enum_t inlineH0 (Fighter *fp)
static void inlineH1 (Fighter *fp, struct Fighter_x1A88_t *data)
void ftCo_800AC434 (Fighter *fp)
void ftCo_800AC5A0 (Fighter *fp)
void ftCo_800AC7D4 (Fighter *fp)
void ftCo_800ACB44 (Fighter *fp)
void ftCo_800ACD5C (Fighter *fp)
void ftCo_800AD42C (Fighter *fp)
void ftCo_800AD54C (Fighter *fp)
static bool is_capsule_egg_ball (ItemKind kind)
void ftCo_800AD7FC (Fighter *fp)
 CPU item throw behavior.
void ftCo_800ADC28 (Fighter *fp)
 Handle charging neutral-B.
void ftCo_800ADE48 (Fighter *fp)
void ftCo_800AE7AC (Fighter *fp, Vec3 *arg1, int arg2)
void ftCo_800AEA8C (Fighter *fp)
void ftCo_800AECF0 (Fighter *fp)
void ftCo_800AEFB8 (Fighter *fp)
void ftCo_800AF290 (Fighter *fp)
static bool inlineI1 (struct Fighter_x1A88_t *data)
static bool inlineI1_alt (Fighter *fp)
static void ftCo_800AF78C_inline0 (Fighter *fp)
void ftCo_800AF78C (Fighter *fp)
static void ftCo_800AFC40_inline0 (Fighter *fp)
void ftCo_800AFC40 (Fighter *fp)
void ftCo_800AFE3C (Fighter *fp, int arg1)
void ftCo_800B00F8 (Fighter *fp)
void ftCo_800B04DC (Fighter *fp)
static void inlineI0 (Fighter *fp, struct Fighter_x1A88_t *data)
static void inlineI3 (Fighter *fp, struct Fighter_x1A88_t *data)
void ftCo_800B0760 (Fighter *fp)
static void ftCo_800B0760_dontinline (Fighter *fp)
static u8 inlineM0 (float x)
void ftCo_800B0918 (Fighter *fp0, Fighter *fp1)
static bool inlineJ0 (Fighter *fp, Fighter *nana_fp)
void ftCo_800B0AF4 (Fighter *fp)
bool ftCo_800B0CA8 (Fighter *fp0, Fighter *fp1)
static bool inlineK0 (Fighter *fp0)
bool ftCo_800B0E98 (Fighter *fp0, Fighter *fp1)
static bool isPopoUpB (Fighter *fp)
static bool ftCo_800B101C_inline0 (Fighter *fp, Fighter *other)
void ftCo_800B101C (Fighter *fp)
void ftCo_800B126C (Fighter *fp)
void ftCo_800B1478 (Fighter *fp)
void ftCo_800B17D0 (Fighter *fp)
void ftCo_800B1AB8 (Fighter *fp)
void ftCo_800B1DA0_noinline (Fighter *fp)
void ftCo_800B1DA0_noinline2 (Fighter *fp)
void ftCo_800B1EF0 (Fighter *fp)
void ftCo_800B21C8 (Fighter *fp)
void ftCo_800B24B8 (Fighter *fp)
void ftCo_800B2790 (Fighter *fp)
void ftCo_800B2AFC (Fighter *fp)
void ftCo_800B33B0 (Fighter *fp)
void ftCo_800B3900 (Fighter_GObj *gobj)
bool ftCo_800B395C (Fighter_GObj *gobj, int arg1)

Variables

int ftCo_803C5A68 []
 Priority table, mapping ItemKind to priority number, for which items the CPU should prefer to target.
ftCo_803C6594_tftCo_803C6594 []

Function Documentation

◆ ftCo_800B1DA0()

void ftCo_800B1DA0 ( Fighter * fp)
static

◆ ftCo_800A0148()

void ftCo_800A0148 ( Fighter * fp)
Todo
Static functions belong in #ftCo_0A01.c

◆ ftCo_800A0384()

void ftCo_800A0384 ( Fighter * fp)

◆ ftCo_800A0508()

void ftCo_800A0508 ( Fighter * fp)

◆ ftCo_800A0508_dontinline()

void ftCo_800A0508_dontinline ( Fighter * fp)
inlinestatic

◆ ftCo_800A05F4()

void ftCo_800A05F4 ( Fighter * fp)

◆ ftCo_800A0798()

void ftCo_800A0798 ( Fighter * fp)

◆ ftCo_800A08F0()

void ftCo_800A08F0 ( Fighter * fp)

◆ ftCo_800A0AF4()

void ftCo_800A0AF4 ( Fighter * fp)

◆ ftCo_800A0C8C()

void ftCo_800A0C8C ( Fighter * fp)

◆ ftCo_800A0CB0()

void ftCo_800A0CB0 ( Fighter * fp)

◆ ftCo_800A0DA4()

void ftCo_800A0DA4 ( Fighter * fp)

◆ ftCo_800A0F00()

bool ftCo_800A0F00 ( Fighter_GObj * gobj)

◆ ftCo_800A0FB0()

bool ftCo_800A0FB0 ( Vec3 * vec_out,
int * line_id_out,
u32 * flags_out,
Vec3 * normal_out,
int arg4,
int arg5,
int arg6,
float arg7,
float arg8,
float arg9,
float arg10,
float arg11 )

◆ ftCo_800A101C()

void ftCo_800A101C ( Fighter * arg0,
int arg1,
int arg2,
int arg3 )

◆ ftCo_800A17E4()

float ftCo_800A17E4 ( Fighter * fp)

◆ inlineB0()

float inlineB0 ( s8 val,
float a,
float b )
inlinestatic

◆ ftCo_800A1874()

float ftCo_800A1874 ( Fighter * fp)

◆ ftCo_800A1904()

float ftCo_800A1904 ( Fighter * fp)

◆ ftCo_800A1948()

float ftCo_800A1948 ( Fighter * fp)

◆ ftCo_800A198C()

HSD_Pad ftCo_800A198C ( Fighter * fp)

◆ ftCo_800A1994()

float ftCo_800A1994 ( Fighter * fp)

◆ ftCo_800A1A24()

float ftCo_800A1A24 ( Fighter * fp)

◆ ftCo_800A1AB4()

f32 ftCo_800A1AB4 ( Fighter * fp0,
Fighter * fp1 )

Compute 2D distance between two fighters.

◆ ftCo_800A1B38_noinline()

bool ftCo_800A1B38_noinline ( enum_t arg0)

◆ ftCo_800A1B38()

bool ftCo_800A1B38 ( enum_t arg0)

◆ ftCo_800A1BA8()

bool ftCo_800A1BA8 ( Fighter * fp)

◆ ftCo_800A1C44()

bool ftCo_800A1C44 ( Fighter * fp)

◆ ftCo_800A1C44_dontinline()

bool ftCo_800A1C44_dontinline ( Fighter * fp)
inlinestatic

◆ ftCo_800A1CA8()

bool ftCo_800A1CA8 ( Fighter * fp)

◆ ftCo_800A1CC4_inline0()

bool ftCo_800A1CC4_inline0 ( Fighter * fp,
ftCo_803C6594_t * var_r29,
mp_UnkStruct0 * temp_r3 )
inlinestatic

◆ ftCo_800A1CC4_inline1()

void ftCo_800A1CC4_inline1 ( Fighter * fp,
float x,
float y )
inlinestatic

◆ ftCo_800A1CC4()

void ftCo_800A1CC4 ( Fighter * fp,
ftCo_803C6594_t * var_r29 )
static

◆ ftCo_800A1F3C_noinline()

void ftCo_800A1F3C_noinline ( Fighter * fp,
float arg1,
float arg2,
float arg3 )

◆ ftCo_800A1F3C_noinline2()

void ftCo_800A1F3C_noinline2 ( Fighter * fp,
float arg1,
float arg2,
float arg3 )

◆ ftCo_800A1F3C()

void ftCo_800A1F3C ( Fighter * fp,
float arg1,
float arg2,
float arg3 )

◆ ftCo_800A1F98()

bool ftCo_800A1F98 ( int x,
float y )

◆ ftCo_800A2040()

bool ftCo_800A2040 ( Fighter * fp)

◆ ftCo_800A20A0()

void ftCo_800A20A0 ( Fighter * fp)

◆ ftCo_800A20A0_dontinline()

void ftCo_800A20A0_dontinline ( Fighter * fp)
inlinestatic

◆ ftCo_800A2170()

bool ftCo_800A2170 ( Fighter * fp0,
Fighter * fp1 )

◆ ftCo_800A21FC()

bool ftCo_800A21FC ( Fighter * fp)

◆ ftCo_800A229C()

s32 ftCo_800A229C ( Fighter * fp,
Vec3 * arg1 )

◆ inlineL0()

bool inlineL0 ( mp_UnkStruct0 * arg0)
inlinestatic

◆ inlineL1()

bool inlineL1 ( mp_UnkStruct0 * arg0)
inlinestatic

◆ ftCo_800A2718()

bool ftCo_800A2718 ( mp_UnkStruct0 * arg0)

◆ ftCo_800A2718_dontinline()

bool ftCo_800A2718_dontinline ( mp_UnkStruct0 * arg0)
inlinestatic

◆ ftCo_800A2718_dontinline2()

bool ftCo_800A2718_dontinline2 ( mp_UnkStruct0 * arg0)
inlinestatic

◆ ftCo_800A2718_dontinline3()

bool ftCo_800A2718_dontinline3 ( mp_UnkStruct0 * arg0)
inlinestatic

◆ ftCo_800A28D0()

bool ftCo_800A28D0 ( Fighter * fp,
float arg1 )

◆ ftCo_800A2998()

bool ftCo_800A2998 ( Fighter * fp,
float arg1 )

◆ ftCo_800A2A70()

float ftCo_800A2A70 ( Fighter * fp,
bool arg1 )

◆ ftCo_800A2BD4()

bool ftCo_800A2BD4 ( Fighter * fp)

◆ ftCo_800A2C08()

bool ftCo_800A2C08 ( Fighter * fp)

◆ ftCo_800A2C80()

s32 ftCo_800A2C80 ( Fighter * fp)

◆ ftCo_800A3134()

enum_t ftCo_800A3134 ( Fighter * fp)

◆ ftCo_IsGrabbing_dontinline()

bool ftCo_IsGrabbing_dontinline ( Fighter * fp)

◆ ftCo_IsGrabbing()

bool ftCo_IsGrabbing ( Fighter * fp)

◆ ftCo_800A3200()

bool ftCo_800A3200 ( Fighter * fp)

◆ ftCo_800A3234()

bool ftCo_800A3234 ( Fighter * fp)

◆ inlineC0()

bool inlineC0 ( Fighter * fp)
inlinestatic

◆ ftCo_800A3498()

bool ftCo_800A3498 ( Fighter * fp)

◆ ftCo_800A3554()

bool ftCo_800A3554 ( Fighter * fp,
float arg1 )

◆ ftCo_800A2170_it()

bool ftCo_800A2170_it ( Fighter * fp,
Item * ip )
inlinestatic

This appears to be similar to ftCo_800A2170, but for fighter/item args.

◆ ftCo_800A3710()

bool ftCo_800A3710 ( Fighter * fp)

◆ ftCo_IsAlly()

bool ftCo_IsAlly ( Fighter * fp0,
Fighter * fp1 )

◆ ftCo_IsAlly_dontinline()

bool ftCo_IsAlly_dontinline ( Fighter * fp0,
Fighter * fp1 )
inlinestatic

◆ ftCo_800A3908()

bool ftCo_800A3908 ( Fighter * fp,
bool arg1 )

◆ ftCo_800A4038()

bool ftCo_800A4038 ( Fighter * fp,
bool arg1 )

◆ ftCo_800A4768_inline0()

bool ftCo_800A4768_inline0 ( Fighter * fp,
Vec3 * p )
inlinestatic

◆ ftCo_800A4768()

s32 ftCo_800A4768 ( Fighter * fp,
Vec3 * arg1 )

◆ ftCo_800A49B4()

void ftCo_800A49B4 ( Fighter * fp)

◆ inlineD0()

bool inlineD0 ( Fighter * fp,
Fighter * fp1 )
inlinestatic

◆ inlineD0_it()

bool inlineD0_it ( Fighter * fp,
Item * it )
inlinestatic

◆ inlineD1()

bool inlineD1 ( Fighter * fp)
inlinestatic

◆ ftCo_800A4A40()

Fighter * ftCo_800A4A40 ( Fighter * fp)

◆ ftCo_800A4E8C_inline0()

bool ftCo_800A4E8C_inline0 ( Fighter * fp)
inlinestatic

◆ ftCo_800A4BEC_inline0()

f32 ftCo_800A4BEC_inline0 ( Fighter * fp,
Fighter * arg1 )
inlinestatic

◆ ftCo_800A4BEC()

Fighter * ftCo_800A4BEC ( Fighter * fp)

◆ ftCo_800A4E8C()

Fighter * ftCo_800A4E8C ( Fighter * fp,
Vec3 * arg1 )

◆ ftCo_800A50D4()

Fighter * ftCo_800A50D4 ( Fighter * fp)

Returns the closest enemy fighter.

◆ ftCo_800A5294()

Fighter * ftCo_800A5294 ( Fighter * fp,
int player_id )

◆ ftCo_800A5294_dontinline()

Fighter * ftCo_800A5294_dontinline ( Fighter * fp,
int player_id )
inlinestatic

◆ ftCo_800A53DC()

Fighter * ftCo_800A53DC ( Fighter * fp)

◆ ftCo_800A589C()

Fighter * ftCo_800A589C ( Fighter * fp)

◆ ftCo_800A5908()

bool ftCo_800A5908 ( Item * ip)

◆ ftCo_800A5944()

bool ftCo_800A5944 ( Item * ip)

◆ ftCo_800A5980_dontinline()

bool ftCo_800A5980_dontinline ( Fighter * fp)

◆ ftCo_800A5980()

bool ftCo_800A5980 ( Fighter * fp)

◆ ftCo_800A59C0()

bool ftCo_800A59C0 ( Item * ip)

◆ ftCo_800A59E4()

bool ftCo_800A59E4 ( Item * ip)

◆ ftCo_800A5A28()

bool ftCo_800A5A28 ( Item * ip)

◆ ftCo_800A5A5C()

bool ftCo_800A5A5C ( Item * ip)

◆ ftCo_800A5A90()

bool ftCo_800A5A90 ( Fighter * fp)

◆ ftCo_800A5ACC()

bool ftCo_800A5ACC ( Fighter * fp)

◆ ftCo_800A5CE0()

Fighter * ftCo_800A5CE0 ( Fighter * fp)

◆ itemDist()

float itemDist ( Fighter * fp,
Item * ip )
inlinestatic

◆ ftCo_800A5F4C()

Item * ftCo_800A5F4C ( Fighter * fp,
ItemKind arg1 )

Decide which common item to target.

Todo
stupid stack padding hack

Passing It_Kind_L_Gun_Ray means to target any common item

If we don't have a target yet, just pick the first item, and remember its distance.

Skip items with lower priority than the current one

◆ ftCo_800A648C_inline0()

f32 ftCo_800A648C_inline0 ( Fighter * fp,
Item * ip )
inlinestatic

◆ ftCo_800A61D8()

Item * ftCo_800A61D8 ( Fighter * fp)

◆ ftCo_800A648C_inline1()

bool ftCo_800A648C_inline1 ( Item * ip)
inlinestatic

◆ ftCo_800A648C_inline2()

HSD_GObj * ftCo_800A648C_inline2 ( )
inline

◆ ftCo_800A648C_inline3()

HSD_GObj * ftCo_800A648C_inline3 ( HSD_GObj * cur)
inline

◆ ftCo_800A648C()

int ftCo_800A648C ( Fighter * fp)

◆ ftCo_800A6A98_inline0()

bool ftCo_800A6A98_inline0 ( int line_id)
inlinestatic

◆ ftCo_800A6700_inline0()

bool ftCo_800A6700_inline0 ( Fighter * fp,
f32 x,
f32 y )
inlinestatic

◆ ftCo_800A6700()

bool ftCo_800A6700 ( Fighter * fp,
Vec3 * arg1,
Vec3 * arg2 )

◆ ftCo_800A6A98()

s32 ftCo_800A6A98 ( Fighter * fp,
Vec3 * arg1 )

◆ ftCo_800A6D2C()

s32 ftCo_800A6D2C ( Fighter * fp,
Vec3 * arg1 )

◆ ftCo_800A6FC4()

bool ftCo_800A6FC4 ( Fighter * fp,
Vec3 * arg1,
Vec3 * arg2 )

◆ ftCo_800A75DC()

void ftCo_800A75DC ( Fighter * fp0,
Fighter * fp1 )

◆ ftCo_800A7AAC()

void ftCo_800A7AAC ( Fighter * fp)

◆ ftCo_800A80E4()

void ftCo_800A80E4 ( Fighter * fp)

◆ ftCo_800A80E4_dontinline()

void ftCo_800A80E4_dontinline ( Fighter * fp)
inlinestatic

◆ ftCo_800A8210()

void ftCo_800A8210 ( Fighter * fp,
Vec3 * arg1 )

◆ ftCo_800A866C()

void ftCo_800A866C ( Fighter * fp)

◆ ftCo_800A8940()

void ftCo_800A8940 ( Fighter * fp)

◆ ftCo_800A8DE4_noinline()

void ftCo_800A8DE4_noinline ( Fighter * fp)

◆ ftCo_800A8DE4()

void ftCo_800A8DE4 ( Fighter * fp)

◆ angle_x_units()

int angle_x_units ( float angle)
inlinestatic

◆ angle_y_units()

int angle_y_units ( float angle)
inlinestatic

◆ ftCo_800A8EB0()

void ftCo_800A8EB0 ( Fighter * fp)

Ness recovery PK thunder logic.

◆ ftCo_800A92CC()

void ftCo_800A92CC ( Fighter * fp)

Pikachu/Pichu recovery logic.

◆ ftCo_800A949C()

void ftCo_800A949C ( Fighter * fp,
bool unused )
static

Zelda recovery logic.

If we're far from the stage horizontally, up-B diagonally, otherwise go straight up.

◆ ftCo_800A963C()

void ftCo_800A963C ( Fighter * fp,
bool unused )
static

Samus recovery logic.

◆ ftCo_800A96B8()

void ftCo_800A96B8 ( Fighter * fp)

Handles CPU recovery / up-B logic for each character.

◆ is_small()

bool is_small ( float x)
inlinestatic

◆ ftCo_800A9904()

void ftCo_800A9904 ( Fighter * fp)

◆ ftCo_800A9CB4_inline0()

enum_t ftCo_800A9CB4_inline0 ( Fighter * fp)
inlinestatic

◆ ftCo_800A9CB4_inline1()

bool ftCo_800A9CB4_inline1 ( Fighter * fp)
inlinestatic

◆ ftCo_800A9CB4()

void ftCo_800A9CB4 ( Fighter * fp)

◆ ftCo_800AA320()

void ftCo_800AA320 ( Fighter * fp,
int * stick,
int * clamp )

Determine how much to move the stick based on CPU level.

◆ isInTeeter()

bool isInTeeter ( Fighter * fp)
inlinestatic

◆ ftCo_800AA42C_inline0()

int ftCo_800AA42C_inline0 ( float clamp,
float dist,
float near,
float far )
inlinestatic

◆ isFacingDestination()

bool isFacingDestination ( Fighter * fp)
inlinestatic

◆ ftCo_800AA42C()

void ftCo_800AA42C ( Fighter * fp)

◆ ftCo_800AA844()

void ftCo_800AA844 ( Fighter * fp)

◆ ftCo_800AABC8()

void ftCo_800AABC8 ( Fighter * fp)

◆ ftCo_800AABC8_dontinline()

void ftCo_800AABC8_dontinline ( Fighter * fp)
inlinestatic

◆ ftCo_800AACD0()

void ftCo_800AACD0 ( Fighter * fp)

◆ ftCo_800AAF48()

bool ftCo_800AAF48 ( Fighter * fp)

◆ ftCo_800AD54C_inline0()

void ftCo_800AD54C_inline0 ( Fighter * fp)
inlinestatic

◆ ftCo_800AB224()

void ftCo_800AB224 ( Fighter * fp)

◆ ftCo_800ABA34()

void ftCo_800ABA34 ( Fighter * fp)

◆ ftCo_800ABBA8()

void ftCo_800ABBA8 ( Fighter * fp)

◆ inlineG0()

bool inlineG0 ( Fighter * fp)
inlinestatic

◆ ftCo_800AC30C_noinline()

void ftCo_800AC30C_noinline ( Fighter * fp)

◆ ftCo_800AC30C()

void ftCo_800AC30C ( Fighter * fp)

◆ inlineH0()

enum_t inlineH0 ( Fighter * fp)
inlinestatic

◆ inlineH1()

void inlineH1 ( Fighter * fp,
struct Fighter_x1A88_t * data )
inlinestatic

◆ ftCo_800AC434()

void ftCo_800AC434 ( Fighter * fp)

◆ ftCo_800AC5A0()

void ftCo_800AC5A0 ( Fighter * fp)

◆ ftCo_800AC7D4()

void ftCo_800AC7D4 ( Fighter * fp)

◆ ftCo_800ACB44()

void ftCo_800ACB44 ( Fighter * fp)

◆ ftCo_800ACD5C()

void ftCo_800ACD5C ( Fighter * fp)

◆ ftCo_800AD42C()

void ftCo_800AD42C ( Fighter * fp)

◆ ftCo_800AD54C()

void ftCo_800AD54C ( Fighter * fp)

◆ is_capsule_egg_ball()

bool is_capsule_egg_ball ( ItemKind kind)
inlinestatic

◆ ftCo_800AD7FC()

void ftCo_800AD7FC ( Fighter * fp)

CPU item throw behavior.

◆ ftCo_800ADC28()

void ftCo_800ADC28 ( Fighter * fp)

Handle charging neutral-B.

◆ ftCo_800ADE48()

void ftCo_800ADE48 ( Fighter * fp)

◆ ftCo_800AE7AC()

void ftCo_800AE7AC ( Fighter * fp,
Vec3 * arg1,
int arg2 )

◆ ftCo_800AEA8C()

void ftCo_800AEA8C ( Fighter * fp)

◆ ftCo_800AECF0()

void ftCo_800AECF0 ( Fighter * fp)

◆ ftCo_800AEFB8()

void ftCo_800AEFB8 ( Fighter * fp)

◆ ftCo_800AF290()

void ftCo_800AF290 ( Fighter * fp)

◆ inlineI1()

bool inlineI1 ( struct Fighter_x1A88_t * data)
inlinestatic

◆ inlineI1_alt()

bool inlineI1_alt ( Fighter * fp)
inlinestatic

◆ ftCo_800AF78C_inline0()

void ftCo_800AF78C_inline0 ( Fighter * fp)
inlinestatic

◆ ftCo_800AF78C()

void ftCo_800AF78C ( Fighter * fp)

◆ ftCo_800AFC40_inline0()

void ftCo_800AFC40_inline0 ( Fighter * fp)
inlinestatic

◆ ftCo_800AFC40()

void ftCo_800AFC40 ( Fighter * fp)

◆ ftCo_800AFE3C()

void ftCo_800AFE3C ( Fighter * fp,
int arg1 )

◆ ftCo_800B00F8()

void ftCo_800B00F8 ( Fighter * fp)

◆ ftCo_800B04DC()

void ftCo_800B04DC ( Fighter * fp)

◆ inlineI0()

void inlineI0 ( Fighter * fp,
struct Fighter_x1A88_t * data )
inlinestatic

◆ inlineI3()

void inlineI3 ( Fighter * fp,
struct Fighter_x1A88_t * data )
inlinestatic

◆ ftCo_800B0760()

void ftCo_800B0760 ( Fighter * fp)

◆ ftCo_800B0760_dontinline()

void ftCo_800B0760_dontinline ( Fighter * fp)
inlinestatic

◆ inlineM0()

u8 inlineM0 ( float x)
inlinestatic
Todo
Maybe a macro?

◆ ftCo_800B0918()

void ftCo_800B0918 ( Fighter * fp0,
Fighter * fp1 )

◆ inlineJ0()

bool inlineJ0 ( Fighter * fp,
Fighter * nana_fp )
inlinestatic

◆ ftCo_800B0AF4()

void ftCo_800B0AF4 ( Fighter * fp)

◆ ftCo_800B0CA8()

bool ftCo_800B0CA8 ( Fighter * fp0,
Fighter * fp1 )
Todo
fakematched control flow

◆ inlineK0()

bool inlineK0 ( Fighter * fp0)
inlinestatic

◆ ftCo_800B0E98()

bool ftCo_800B0E98 ( Fighter * fp0,
Fighter * fp1 )

◆ isPopoUpB()

bool isPopoUpB ( Fighter * fp)
inlinestatic

◆ ftCo_800B101C_inline0()

bool ftCo_800B101C_inline0 ( Fighter * fp,
Fighter * other )
inlinestatic

◆ ftCo_800B101C()

void ftCo_800B101C ( Fighter * fp)

◆ ftCo_800B126C()

void ftCo_800B126C ( Fighter * fp)

◆ ftCo_800B1478()

void ftCo_800B1478 ( Fighter * fp)

◆ ftCo_800B17D0()

void ftCo_800B17D0 ( Fighter * fp)

◆ ftCo_800B1AB8()

void ftCo_800B1AB8 ( Fighter * fp)

◆ ftCo_800B1DA0_noinline()

void ftCo_800B1DA0_noinline ( Fighter * fp)

◆ ftCo_800B1DA0_noinline2()

void ftCo_800B1DA0_noinline2 ( Fighter * fp)

◆ ftCo_800B1EF0()

void ftCo_800B1EF0 ( Fighter * fp)

◆ ftCo_800B21C8()

void ftCo_800B21C8 ( Fighter * fp)

◆ ftCo_800B24B8()

void ftCo_800B24B8 ( Fighter * fp)

◆ ftCo_800B2790()

void ftCo_800B2790 ( Fighter * fp)

◆ ftCo_800B2AFC()

void ftCo_800B2AFC ( Fighter * fp)

◆ ftCo_800B33B0()

void ftCo_800B33B0 ( Fighter * fp)

◆ ftCo_800B3900()

void ftCo_800B3900 ( Fighter_GObj * gobj)

◆ ftCo_800B395C()

bool ftCo_800B395C ( Fighter_GObj * gobj,
int arg1 )

Variable Documentation

◆ ftCo_803C5A68

int ftCo_803C5A68[]
Initial value:
= {
1, 0, 0, 1, 0, 0, 0, 1, 7, 6, 5, 4, 4, 3, 1, 1, 2, 1,
5, 2, 2, 2, 3, 3, 3, 4, 0, 0, 8, 4, 1, 4, 4, 5, 5,
}

Priority table, mapping ItemKind to priority number, for which items the CPU should prefer to target.

Higher numbers are preferred.

◆ ftCo_803C6594

ftCo_803C6594_t* ftCo_803C6594[]
extern