SSBM Decomp
Loading...
Searching...
No Matches
fighter.c File Reference
#include <platform.h>
#include "ftCommon/forward.h"
#include <dolphin/gx/forward.h>
#include "ft/fighter.h"
#include "ft_07C1.h"
#include "ft_07C6.h"
#include "ft_0819.h"
#include "ft_081B.h"
#include "ft_0852.h"
#include "ft_0877.h"
#include "ftaction.h"
#include "ftanim.h"
#include "ftcamera.h"
#include "ftcoll.h"
#include "ftcommon.h"
#include "ftdrawcommon.h"
#include "ftdynamics.h"
#include "ftlib.h"
#include "ftparts.h"
#include "cm/camera.h"
#include "db/db_2253.h"
#include "ef/efasync.h"
#include "ft/ft_0881.h"
#include "ft/ft_0892.h"
#include "ft/ft_0C31.h"
#include "ft/ft_0C88.h"
#include "ft/ft_0D14.h"
#include "ft/ftafterimage.h"
#include "ft/ftchangeparam.h"
#include "ft/ftcolanim.h"
#include "ft/ftdata.h"
#include "ft/ftdevice.h"
#include "ft/ftmaterial.h"
#include "ft/ftmetal.h"
#include "ft/types.h"
#include "ftCommon/ftCo_09F4.h"
#include "ftCommon/ftCo_0A01.h"
#include "ftCommon/ftCo_0C35.h"
#include "ftCommon/ftCo_Bury.h"
#include "ftCommon/ftCo_Damage.h"
#include "ftCommon/ftCo_DamageFall.h"
#include "ftCommon/ftCo_FallSpecial.h"
#include "ftCommon/ftCo_HammerWait.h"
#include "ftCommon/ftCo_ItemThrow.h"
#include "ftCommon/ftCo_Rebound.h"
#include "ftCommon/ftCo_ShieldBreakFly.h"
#include "ftCommon/ftCo_SpecialS.h"
#include "ftCrazyHand/ftCh_Init.h"
#include "ftKirby/ftKb_Init.h"
#include "ftMasterHand/ftMh_Wait1_0.h"
#include "ftPeach/types.h"
#include "gm/gm_1601.h"
#include "gm/gm_1A36.h"
#include "gr/stage.h"
#include "gr/types.h"
#include "if/ifmagnify.h"
#include "it/it_26B1.h"
#include "it/it_2725.h"
#include "it/item.h"
#include "lb/lb_00B0.h"
#include "lb/lb_00CE.h"
#include "lb/lbarchive.h"
#include "lb/lbmthp.h"
#include "lb/lbshadow.h"
#include "lb/types.h"
#include "mp/mpcoll.h"
#include "mp/mplib.h"
#include "pl/pl_0371.h"
#include "pl/player.h"
#include "un/un_2FC9.h"
#include <common_structs.h>
#include <dolphin/gx/types.h>
#include <dolphin/mtx.h>
#include <dolphin/mtx/vec.h>
#include <dolphin/os/OSError.h>
#include <baselib/controller.h>
#include <baselib/debug.h>
#include <baselib/gobj.h>
#include <baselib/gobjgxlink.h>
#include <baselib/gobjobject.h>
#include <baselib/gobjproc.h>
#include <baselib/gobjuserdata.h>
#include <baselib/jobj.h>
#include <baselib/lobj.h>
#include <baselib/mtx.h>
#include <baselib/random.h>
#include <MSL/math.h>
#include <MSL/math_ppc.h>
#include <MSL/trigf.h>

Macros

#define g_spawnNumCounter   Fighter_804D64F8
 
#define SET_STICKS(stickXPtr, stickYPtr, x, y)
 
#define VEC_CLEAR(vec)
 

Functions

void Fighter_800679B0 (void)
 
void Fighter_FirstInitialize_80067A84 (void)
 
void Fighter_LoadCommonData (void)
 
void Fighter_UpdateModelScale (Fighter_GObj *gobj)
 
void Fighter_UnkInitReset_80067C98 (Fighter *fp)
 
void Fighter_UnkProcessDeath_80068354 (Fighter_GObj *gobj)
 
void Fighter_UnkUpdateCostumeJoint_800686E4 (Fighter_GObj *gobj)
 
void Fighter_UnkUpdateVecFromBones_8006876C (Fighter *fp)
 
void Fighter_ResetInputData_80068854 (Fighter_GObj *gobj)
 
static void Fighter_UnkInitLoad_80068914_Inner1 (Fighter_GObj *gobj)
 
void Fighter_UnkInitLoad_80068914 (Fighter_GObj *gobj, struct S_TEMP1 *argdata)
 
u32 Fighter_NewSpawn_80068E40 (void)
 
void Fighter_80068E64 (Fighter_GObj *gobj)
 
static void Fighter_Create_Inline2 (Fighter_GObj *gobj)
 
Fighter_GObj * Fighter_Create (struct S_TEMP1 *input)
 
void Fighter_ChangeMotionState (Fighter_GObj *gobj, FtMotionId msid, MotionFlags flags, float anim_start, float anim_speed, float anim_blend, Fighter_GObj *arg3)
 
void Fighter_8006A1BC (Fighter_GObj *gobj)
 
void Fighter_8006A360 (Fighter_GObj *gobj)
 
void Fighter_8006ABA0 (Fighter_GObj *gobj)
 
void Fighter_UnkIncrementCounters_8006ABEC (Fighter_GObj *gobj)
 
static void Fighter_Spaghetti_8006AD10_Inner1 (Fighter *fp)
 
void Fighter_Spaghetti_8006AD10 (Fighter_GObj *gobj)
 
void Fighter_procUpdate (Fighter_GObj *gobj)
 
void Fighter_UnkApplyTransformation_8006C0F0 (Fighter_GObj *gobj)
 
static float Fighter_GetPosX (Fighter *fp)
 
static float Fighter_GetPosY (Fighter *fp)
 
void Fighter_8006C27C (Fighter_GObj *gobj)
 
void Fighter_8006C5F4 (Fighter_GObj *gobj)
 
void Fighter_CallAcessoryCallbacks_8006C624 (Fighter_GObj *gobj)
 
void Fighter_8006C80C (Fighter_GObj *gobj)
 
void Fighter_UnkProcessGrab_8006CA5C (Fighter_GObj *gobj)
 
void Fighter_8006CB94 (Fighter_GObj *gobj)
 
void Fighter_UnkTakeDamage_8006CC30 (Fighter *fp, float arg0)
 
void Fighter_TakeDamage_8006CC7C (Fighter *fp, float damage_amount)
 
void Fighter_8006CDA4 (Fighter *fp, s32 arg1, s32 arg2)
 https://decomp.me/scratch/9QvFG
 
void Fighter_8006CF5C (Fighter *fp, s32 arg1)
 
void Fighter_UnkSetFlag_8006CFBC (Fighter_GObj *gobj)
 
void Fighter_8006CFE0 (Fighter_GObj *gobj)
 
void setBit (Fighter_GObj *gobj)
 
void Fighter_UnkRecursiveFunc_8006D044 (Fighter_GObj *gobj)
 
static void Fighter_8006D10C_Inline2 (Fighter *fp)
 
static void Fighter_8006D10C_Inline1 (Fighter_GObj *gobj)
 
void Fighter_8006D10C (Fighter_GObj *gobj)
 
void Fighter_UnkProcessShieldHit_8006D1EC (Fighter_GObj *gobj)
 
void Fighter_8006D9AC (Fighter_GObj *gobj)
 
void Fighter_UnkCallCameraCallback_8006D9EC (Fighter_GObj *gobj)
 
void Fighter_8006DA4C (Fighter_GObj *gobj)
 
void Fighter_Unload_8006DABC (void *user_data)
 

Variables

struct UnkCostumeList CostumeListsForeachCharacter [FTKIND_MAX]
 
ftDatagFtDataList [FTKIND_MAX]
 
MotionState ftData_MotionStateList [ftCo_MS_Count]
 
MotionStateftData_CharacterStateTables [FTKIND_MAX]
 
StageInfo stage_info
 
const Vec3 Fighter_803B7488 = { 0.0f, 0.0f, 0.0f }
 
const Vec3 vec3_803B7494 = { 0.0f, 0.0f, 0.0f }
 
HSD_ObjAllocData fighter_alloc_data
 
HSD_ObjAllocData Fighter_80458FFC
 
HSD_ObjAllocData fighter_bones_alloc_data
 
HSD_ObjAllocData Fighter_80459054
 
HSD_ObjAllocData Fighter_80459080
 
HSD_ObjAllocData Fighter_804590AC
 
u32 Fighter_804D64F8 = 0
 
UNK_T Fighter_804D64FC = NULL
 
UNK_T Fighter_804D6500 = NULL
 
HSD_JointFighter_804D6504 = NULL
 
UNK_T Fighter_804D6508 = NULL
 
int * Fighter_804D650C = NULL
 
UNK_T Fighter_804D6510 = NULL
 
UNK_T Fighter_804D6514 = NULL
 
UNK_T Fighter_804D6518 = NULL
 
UNK_T Fighter_804D651C = NULL
 
UNK_T Fighter_804D6520 = NULL
 
float * Fighter_804D6524 = NULL
 
UNK_T Fighter_804D6528 = NULL
 
UNK_T Fighter_804D652C = NULL
 
Vec2 ** Fighter_804D6530 = NULL
 
UNK_T Fighter_804D6534 = NULL
 
struct Fighter_804D653C_tFighter_804D6538 = NULL
 
struct Fighter_804D653C_tFighter_804D653C = NULL
 
int ** Fighter_804D6540 = NULL
 
FighterPartsTable ** ftPartsTable = NULL
 
UNK_T Fighter_804D6548 = NULL
 
UNK_T Fighter_804D654C = NULL
 
int ** Fighter_804D6550 = NULL
 
ftCommonDatap_ftCommonData
 

Macro Definition Documentation

◆ g_spawnNumCounter

#define g_spawnNumCounter   Fighter_804D64F8

◆ SET_STICKS

#define SET_STICKS (   stickXPtr,
  stickYPtr,
  x,
 
)
Value:
do { \
float* stickX = (float*) &stickXPtr; \
float* stickY = (float*) &stickYPtr; \
*stickX = x; \
*stickY = y; \
} while (0)

◆ VEC_CLEAR

#define VEC_CLEAR (   vec)
Value:
do { \
Vec3* vecLocal = (void*) &vec; \
float c = 0; \
vecLocal->x = vecLocal->y = vecLocal->z = c; \
} while (0)
Definition types.h:13
f32 x
The x component.
Definition types.h:14
f32 z
The z component.
Definition types.h:14
f32 y
The y component.
Definition types.h:14
int c
Definition tev.c:18

Function Documentation

◆ Fighter_800679B0()

void Fighter_800679B0 ( void  )
Warning
don't hardcode the allocation sizes

◆ Fighter_FirstInitialize_80067A84()

void Fighter_FirstInitialize_80067A84 ( void  )

◆ Fighter_LoadCommonData()

void Fighter_LoadCommonData ( void  )

◆ Fighter_UpdateModelScale()

void Fighter_UpdateModelScale ( Fighter_GObj *  gobj)

◆ Fighter_UnkInitReset_80067C98()

void Fighter_UnkInitReset_80067C98 ( Fighter fp)

◆ Fighter_UnkProcessDeath_80068354()

void Fighter_UnkProcessDeath_80068354 ( Fighter_GObj *  gobj)

◆ Fighter_UnkUpdateCostumeJoint_800686E4()

void Fighter_UnkUpdateCostumeJoint_800686E4 ( Fighter_GObj *  gobj)

◆ Fighter_UnkUpdateVecFromBones_8006876C()

void Fighter_UnkUpdateVecFromBones_8006876C ( Fighter fp)

◆ Fighter_ResetInputData_80068854()

void Fighter_ResetInputData_80068854 ( Fighter_GObj *  gobj)

◆ Fighter_UnkInitLoad_80068914_Inner1()

static void Fighter_UnkInitLoad_80068914_Inner1 ( Fighter_GObj *  gobj)
static

◆ Fighter_UnkInitLoad_80068914()

void Fighter_UnkInitLoad_80068914 ( Fighter_GObj *  gobj,
struct S_TEMP1 argdata 
)

◆ Fighter_NewSpawn_80068E40()

u32 Fighter_NewSpawn_80068E40 ( void  )

◆ Fighter_80068E64()

void Fighter_80068E64 ( Fighter_GObj *  gobj)

◆ Fighter_Create_Inline2()

static void Fighter_Create_Inline2 ( Fighter_GObj *  gobj)
static

◆ Fighter_Create()

Fighter_GObj * Fighter_Create ( struct S_TEMP1 input)

◆ Fighter_ChangeMotionState()

void Fighter_ChangeMotionState ( Fighter_GObj *  gobj,
FtMotionId  msid,
MotionFlags  flags,
float  anim_start,
float  anim_speed,
float  anim_blend,
Fighter_GObj *  arg3 
)

◆ Fighter_8006A1BC()

void Fighter_8006A1BC ( Fighter_GObj *  gobj)

◆ Fighter_8006A360()

void Fighter_8006A360 ( Fighter_GObj *  gobj)

◆ Fighter_8006ABA0()

void Fighter_8006ABA0 ( Fighter_GObj *  gobj)

◆ Fighter_UnkIncrementCounters_8006ABEC()

void Fighter_UnkIncrementCounters_8006ABEC ( Fighter_GObj *  gobj)

◆ Fighter_Spaghetti_8006AD10_Inner1()

static void Fighter_Spaghetti_8006AD10_Inner1 ( Fighter fp)
static

◆ Fighter_Spaghetti_8006AD10()

void Fighter_Spaghetti_8006AD10 ( Fighter_GObj *  gobj)

◆ Fighter_procUpdate()

void Fighter_procUpdate ( Fighter_GObj *  gobj)
Bug:
IN THE MELEE CODE THAT CAUSES THE INVISIBLE CEILING GLITCH The next line should be 'pAtkShieldKB->y = 0', but instead it is:
Todo:
incompatible-pointer-types because bad headers
Todo:
We set this velocity to 0 after applying it. Is this SDI or ASDI?

◆ Fighter_UnkApplyTransformation_8006C0F0()

void Fighter_UnkApplyTransformation_8006C0F0 ( Fighter_GObj *  gobj)

◆ Fighter_GetPosX()

static float Fighter_GetPosX ( Fighter fp)
inlinestatic

◆ Fighter_GetPosY()

static float Fighter_GetPosY ( Fighter fp)
inlinestatic

◆ Fighter_8006C27C()

void Fighter_8006C27C ( Fighter_GObj *  gobj)

◆ Fighter_8006C5F4()

void Fighter_8006C5F4 ( Fighter_GObj *  gobj)

◆ Fighter_CallAcessoryCallbacks_8006C624()

void Fighter_CallAcessoryCallbacks_8006C624 ( Fighter_GObj *  gobj)

◆ Fighter_8006C80C()

void Fighter_8006C80C ( Fighter_GObj *  gobj)

◆ Fighter_UnkProcessGrab_8006CA5C()

void Fighter_UnkProcessGrab_8006CA5C ( Fighter_GObj *  gobj)

◆ Fighter_8006CB94()

void Fighter_8006CB94 ( Fighter_GObj *  gobj)

◆ Fighter_UnkTakeDamage_8006CC30()

void Fighter_UnkTakeDamage_8006CC30 ( Fighter fp,
float  arg0 
)

◆ Fighter_TakeDamage_8006CC7C()

void Fighter_TakeDamage_8006CC7C ( Fighter fp,
float  damage_amount 
)

◆ Fighter_8006CDA4()

void Fighter_8006CDA4 ( Fighter fp,
s32  arg1,
s32  arg2 
)

◆ Fighter_8006CF5C()

void Fighter_8006CF5C ( Fighter fp,
s32  arg1 
)

◆ Fighter_UnkSetFlag_8006CFBC()

void Fighter_UnkSetFlag_8006CFBC ( Fighter_GObj *  gobj)

◆ Fighter_8006CFE0()

void Fighter_8006CFE0 ( Fighter_GObj *  gobj)

◆ setBit()

void setBit ( Fighter_GObj *  gobj)
inline

◆ Fighter_UnkRecursiveFunc_8006D044()

void Fighter_UnkRecursiveFunc_8006D044 ( Fighter_GObj *  gobj)

◆ Fighter_8006D10C_Inline2()

static void Fighter_8006D10C_Inline2 ( Fighter fp)
static

◆ Fighter_8006D10C_Inline1()

static void Fighter_8006D10C_Inline1 ( Fighter_GObj *  gobj)
static

◆ Fighter_8006D10C()

void Fighter_8006D10C ( Fighter_GObj *  gobj)

◆ Fighter_UnkProcessShieldHit_8006D1EC()

void Fighter_UnkProcessShieldHit_8006D1EC ( Fighter_GObj *  gobj)

this function is called when shield is broken

◆ Fighter_8006D9AC()

void Fighter_8006D9AC ( Fighter_GObj *  gobj)

◆ Fighter_UnkCallCameraCallback_8006D9EC()

void Fighter_UnkCallCameraCallback_8006D9EC ( Fighter_GObj *  gobj)

◆ Fighter_8006DA4C()

void Fighter_8006DA4C ( Fighter_GObj *  gobj)

◆ Fighter_Unload_8006DABC()

void Fighter_Unload_8006DABC ( void *  user_data)
Remarks
This doesn't use GET_FIGHTER, but since it appears to pass it directly it's probably just written directly.

Variable Documentation

◆ CostumeListsForeachCharacter

struct UnkCostumeList CostumeListsForeachCharacter[FTKIND_MAX]
extern

◆ gFtDataList

ftData* gFtDataList[FTKIND_MAX]
extern

◆ ftData_MotionStateList

MotionState ftData_MotionStateList[ftCo_MS_Count]
extern

◆ ftData_CharacterStateTables

MotionState* ftData_CharacterStateTables[FTKIND_MAX]
extern

◆ stage_info

StageInfo stage_info
extern

◆ Fighter_803B7488

const Vec3 Fighter_803B7488 = { 0.0f, 0.0f, 0.0f }

◆ vec3_803B7494

const Vec3 vec3_803B7494 = { 0.0f, 0.0f, 0.0f }

◆ fighter_alloc_data

HSD_ObjAllocData fighter_alloc_data

◆ Fighter_80458FFC

HSD_ObjAllocData Fighter_80458FFC

◆ fighter_bones_alloc_data

HSD_ObjAllocData fighter_bones_alloc_data

◆ Fighter_80459054

HSD_ObjAllocData Fighter_80459054

◆ Fighter_80459080

HSD_ObjAllocData Fighter_80459080

◆ Fighter_804590AC

HSD_ObjAllocData Fighter_804590AC

◆ Fighter_804D64F8

u32 Fighter_804D64F8 = 0

◆ Fighter_804D64FC

UNK_T Fighter_804D64FC = NULL
Todo:
Fighter_804D64FC..Fighter_804D6550 are initialized to 0 in Fighter_LoadCommonData, probably all pointers

◆ Fighter_804D6500

UNK_T Fighter_804D6500 = NULL

◆ Fighter_804D6504

HSD_Joint* Fighter_804D6504 = NULL

◆ Fighter_804D6508

UNK_T Fighter_804D6508 = NULL

◆ Fighter_804D650C

int* Fighter_804D650C = NULL

◆ Fighter_804D6510

UNK_T Fighter_804D6510 = NULL

◆ Fighter_804D6514

UNK_T Fighter_804D6514 = NULL

◆ Fighter_804D6518

UNK_T Fighter_804D6518 = NULL

◆ Fighter_804D651C

UNK_T Fighter_804D651C = NULL

◆ Fighter_804D6520

UNK_T Fighter_804D6520 = NULL

◆ Fighter_804D6524

float* Fighter_804D6524 = NULL

◆ Fighter_804D6528

UNK_T Fighter_804D6528 = NULL

◆ Fighter_804D652C

UNK_T Fighter_804D652C = NULL

◆ Fighter_804D6530

Vec2** Fighter_804D6530 = NULL

◆ Fighter_804D6534

UNK_T Fighter_804D6534 = NULL

◆ Fighter_804D6538

struct Fighter_804D653C_t* Fighter_804D6538 = NULL

◆ Fighter_804D653C

struct Fighter_804D653C_t* Fighter_804D653C = NULL

◆ Fighter_804D6540

int** Fighter_804D6540 = NULL

◆ ftPartsTable

FighterPartsTable** ftPartsTable = NULL

◆ Fighter_804D6548

UNK_T Fighter_804D6548 = NULL

◆ Fighter_804D654C

UNK_T Fighter_804D654C = NULL

◆ Fighter_804D6550

int** Fighter_804D6550 = NULL

◆ p_ftCommonData

ftCommonData* p_ftCommonData