Hud, Title, Map & Option Docs (#272)

* hud title and option docs

* hud docs

* aspMain vram comment

* more hud docs

* HUD docs

* Hud_ -> HUD_ consistency

* ActorMissileSeekModes

* fox_option docs

* more option docs

* more option docs

* more option docs

* fox_title docs

* more fox_title docs

* fox_map docs

* fix map TLUTs

* more fox_map docs

* jp1 explore

* explore us rev0

* SETUPDL comments

* format

* fox_map docs

* more fox_map docs
This commit is contained in:
Alejandro Asenjo Nitti
2024-09-13 00:59:33 -03:00
committed by GitHub
parent bfe2cd1c20
commit 53363d6619
140 changed files with 8764 additions and 6782 deletions
+2 -2
View File
@@ -312,8 +312,8 @@ extern s32 gLeftWingDebrisTimer[4];
extern s32 gBombCount[4];
extern s32 gVsPoints[4];
extern s32 gVsKills[4][10];
extern s32 gVsMatchOver;
extern s32 gVsMatchStart;
extern s32 gVsMatchWon;
extern bool gVsMatchStart;
extern bool gChangeTo360;
extern Vec3f gTeamArrowsViewPos[10];
extern f32 D_ctx_80177F20[65];
+58
View File
@@ -0,0 +1,58 @@
#ifndef FOX_HUD_H
#define FOX_HUD_H
typedef struct {
/* 0x00 */ u8* levelIdxTex;
/* 0x04 */ s32 width;
/* 0x08 */ s32 height;
/* 0x0C */ u8* titleCardTex;
/* 0x10 */ s32 titleCardWidth;
/* 0x14 */ s32 titleCardHeight;
} LevelTitleCard;
typedef enum LevelClearScreenState {
/* 0 */ LEVEL_CLEAR_STATE_0,
/* 1 */ LEVEL_CLEAR_STATE_1,
/* 2 */ LEVEL_CLEAR_STATE_2,
/* 3 */ LEVEL_CLEAR_STATE_3,
/* 4 */ LEVEL_CLEAR_STATE_4,
/* 5 */ LEVEL_CLEAR_STATE_5,
} LevelClearScreenState;
typedef enum BombCounterStates {
/* 0 */ BOMB_COUNTER_INIT,
/* 1 */ BOMB_COUNTER_STATE_1,
/* 2 */ BOMB_COUNTER_STATE_2,
/* 3 */ BOMB_COUNTER_STATE_3,
/* 4 */ BOMB_COUNTER_STATE_4,
/* 5 */ BOMB_COUNTER_STATE_5,
/* 6 */ BOMB_COUNTER_STATE_6,
/* 7 */ BOMB_COUNTER_STATE_7,
} BombCounterStates;
typedef enum RadarMarkTypes {
/* 0 */ RADARMARK_FOX,
/* 1 */ RADARMARK_FALCO,
/* 2 */ RADARMARK_SLIPPY,
/* 3 */ RADARMARK_PEPPY,
/* 4 */ RADARMARK_WOLF,
/* 5 */ RADARMARK_LEON,
/* 6 */ RADARMARK_PIGMA,
/* 7 */ RADARMARK_ANDREW,
/* 8 */ RADARMARK_KATT,
/* 100 */ RADARMARK_MISSILE = 100,
/* 101 */ RADARMARK_KA_SAUCERER,
/* 102 */ RADARMARK_BOSS,
/* 103 */ RADARMARK_SUPPIES,
/* 200 */ RADARMARK_ITEM_1 = 200,
/* 201 */ RADARMARK_ITEM_2,
/* 999 */ RADARMARK_NOTHING = 999
} RadarMarkTypes;
typedef enum ActorMissileSeekMode {
/* 0 */ MISSILE_SEEK_TEAMMATES,
/* 1 */ MISSILE_SEEK_PLAYER,
/* 2 */ MISSILE_SEEK_EITHER,
} ActorMissileSeekMode;
#endif
+31 -1
View File
@@ -29,7 +29,7 @@ typedef struct {
/* 0x18 */ s32 alpha;
} PlanetPath; // size = 0x1C
typedef enum {
typedef enum PlanetAnim {
/* 0 */ PL_ANIM_STATIC,
/* 1 */ PL_ANIM_BILLBOARD,
/* 2 */ PL_ANIM_ROTATE_Y,
@@ -63,4 +63,34 @@ typedef struct {
/* 0xC */ f32 xPos;
} TitleCard; // size = 0x10
typedef enum MapStates {
/* 0 */ MAP_PROLOGUE,
/* 1 */ MAP_LYLAT_CARD,
/* 2 */ MAP_ZOOM_PLANET,
/* 3 */ MAP_IDLE,
/* 4 */ MAP_LEVEL_START,
/* 5 */ MAP_ZOOM_PLANET_PATH, // After level ends
/* 6 */ MAP_PATH_CHANGE, // Path selection by the player
/* 7 */ MAP_GAME_OVER
} MapStates;
typedef enum PlanetStatus {
/* 0 */ PLANET_UNCLEARED,
/* 1 */ PLANET_CLEARED,
/* 2 */ PLANET_MEDAL
} PlanetStatus;
typedef enum PlanetExplosions {
/* 0 */ EXPLOSIONS_CORNERIA,
/* 1 */ EXPLOSIONS_KATINA,
/* 2 */ EXPLOSIONS_SECTOR_Y,
/* 3 */ EXPLOSIONS_MAX
} PlanetExplosions;
typedef enum PlanetSaveSlotTypes {
/* 0 */ SAVETYPE_PLAYED,
/* 1 */ SAVETYPE_MEDAL,
/* 2 */ SAVETYPE_CLEAR
} PlanetSaveSlotTypes;
#endif
+152 -154
View File
@@ -5,7 +5,7 @@
typedef struct {
/* 0x00 */ s32 type;
/* 0x04 */ s32 unk_04;
/* 0x04 */ s32 unk_04; // Always set to 0 and never used
/* 0x08 */ void* texture;
/* 0x0C */ u16* palette;
/* 0x10 */ s32 width;
@@ -18,7 +18,7 @@ typedef struct {
/* 0x2C */ s32 green;
/* 0x30 */ s32 blue;
/* 0x34 */ s32 alpha;
} OptionTexture; // size = 0x38
} OptionCardTexture; // size = 0x38
typedef struct {
/* 0x00 */ f32 x;
@@ -26,32 +26,32 @@ typedef struct {
/* 0x08 */ f32 z;
/* 0x0C */ f32 xScale;
/* 0x10 */ f32 yScale;
} MenuContext_38; // size = 0x14
} OptionCardFrame; // size = 0x14
typedef struct {
/* 0x0 */ f32 x;
/* 0x4 */ f32 y;
/* 0x8 */ f32 range;
} ArwingPosition; // size = 0xC
} ArwingCursorPos; // size = 0xC
typedef struct {
/* 0x00 */ OptionTexture unk_00;
/* 0x38 */ MenuContext_38 unk_38;
/* 0x4C */ ArwingPosition unk_4C;
/* 0x58 */ bool unk_58;
/* 0x5C */ bool unk_5C;
/* 0x00 */ OptionCardTexture tex;
/* 0x38 */ OptionCardFrame frame;
/* 0x4C */ ArwingCursorPos pos;
/* 0x58 */ bool drawTex;
/* 0x5C */ bool drawFrame;
} OptionEntry; // size = 0x60
typedef struct {
/* 0x0 */ PlanetId unk_0;
/* 0x4 */ PlanetId unk_4;
/* 0x8 */ s32 unk_8;
} UnkStruct_D_menu_801AED4C; // size = 0xC
/* 0x0 */ PlanetId start;
/* 0x4 */ PlanetId end;
/* 0x8 */ s32 color;
} RouteColoredLine; // size = 0xC
typedef struct {
s32 unk_0;
s32 unk_4;
} UnkStruct_D_menu_801B9250;
} StickInput;
typedef enum OptionId {
/* 1000 */ OPTION_MAIN_MENU = 1000,
@@ -63,163 +63,161 @@ typedef enum OptionId {
/* 4 */ OPTION_SOUND = 4,
/* 5 */ OPTION_DATA = 5,
/* 6 */ OPTION_EXPERT_SOUND = 6,
/* 10 */ OPTION_POINT_MATCH = 10,
/* 20 */ OPTION_BR_MATCH = 20,
/* 30 */ OPTION_TT_MATCH = 30,
/* 200 */ OPTION_NAME = 200,
/* 10 */ OPTION_POINT_MATCH = 10, // Point Match
/* 20 */ OPTION_BR_MATCH = 20, // Battle Royal Match
/* 30 */ OPTION_TT_MATCH = 30, // Time Trial Match
/* 200 */ OPTION_NAME_ENTRY = 200,
/* 300 */ OPTION_SCORE = 300,
/* 400 */ OPTION_INVOICE = 400,
/* 401 */ OPTION_MAX,
} OptionId;
#define OPTION_COUNT ARRAY_COUNT(sOptionCardList)
extern u8* gBSSMapPlanetTextures[9];
extern u8* gAssetMapPlanetTextures[9];
extern u8* D_menu_801B68B0[];
extern u8* D_menu_801B68D4[];
extern s32 D_menu_801B8220[]; // total hits ranking? see Option_80197DE4
extern s32 D_menu_801B827C; // engine
extern s32 D_menu_801B8280;
extern s32 D_menu_801B8284;
extern s32 D_menu_801B8288;
extern s32 gTotalHitsRanking[];
extern bool gGoToTitle; // engine
extern bool sLevelStartState;
extern s32 sWipeHeight;
extern s32 sTitleRankMaxRecords;
// Planet textures
extern u8 D_menu_801B9410[96 * 96];
extern u8 D_menu_801BB810[96 * 96];
extern u8 D_menu_801BDC10[96 * 96];
extern u8 D_menu_801C0010[96 * 96];
extern u8 D_menu_801C2410[96 * 96];
extern u8 D_menu_801C4810[96 * 96];
extern u8 D_menu_801C6C10[96 * 96];
extern u8 D_menu_801C9010[96 * 96];
extern u8 D_menu_801CB410[96 * 96];
extern u8 gMapVenomCloudTex[96 * 96];
extern u8 gMapCorneriaTex[96 * 96];
extern u8 gMapFortunaTex[96 * 96];
extern u8 gMapAquasTex[96 * 96];
extern u8 gMapVenomTex[96 * 96];
extern u8 gMapTitaniaTex[96 * 96];
extern u8 gMapKatinaTex[96 * 96];
extern u8 gMapMacbethTex[96 * 96];
extern u8 gMapZonessTex[96 * 96];
void Title_UpdateEntry(void);
s32 Title_80187ABC(void);
void Title_80187B00(void);
void Title_80187E28(void);
void Title_801888E8(void);
void Title_8018994C(void);
void Title_8018A644(void);
void Title_8018ACEC(void);
void Title_8018B5C4(void);
void Title_8018C644(void);
void Title_80187CA8(void);
s32 Title_80188010(void);
void Title_80189208(void);
void Title_8018A2F8(void);
void Title_8018A990(void);
void Title_8018B038(void);
void Title_8018C114(void);
void Title_8018CB90(void);
void Title_8018F680(void);
void Title_8018F77C(void);
void Title_8018F85C(void);
void Title_8018F8E4(void);
void Title_8018FC14(void);
void Title_8018FD08(void);
void Title_8018FF74(void);
s32 Title_CheckControllers(void);
void Title_Ranking_Update(void);
void Title_RankingData_Draw(void);
void Title_Screen_Update(void);
void Title_CsGreatFoxTraveling_Update(void);
void Title_CsTeamRunning_Update(void);
void Title_CsGreatFoxCloseUp_Update(void);
void Title_CsTakeOff_Update(void);
void Title_CsTakeOffSpace_Update(void);
void Title_Ranking_Draw(void);
s32 Title_GetRankTotalHits(void);
void Title_Screen_Draw(void);
void Title_CsGreatFoxTraveling_Draw(void);
void Title_CsTeamRunning_Draw(void);
void Title_CsGreatFoxCloseUp_Draw(void);
void Title_CsTakeOff_Draw(void);
void Title_CsTakeOffSpace_Draw(void);
void Title_StarfoxLogo_Draw(void);
void Title_64Logo_Draw(void);
void Title_CopyrightSymbol_Draw(void);
void Title_PressStart_Draw(void);
void Title_Copyright_Draw(void);
void Title_TeamName_Draw(void);
void Title_SunGlare_Draw(void);
void Option_UpdateEntry(void);
void Option_MapUpdate(void);
void Option_MainMenuUpdate(void);
void Option_TrainingUpdate(void);
void Option_MainMenuDraw(void);
void Option_VersusUpdate(void);
void Option_VersusDraw(void);
void Option_SoundInit(void);
void Option_SoundUpdate(void);
void Option_80194AEC(void);
void Option_80194BD0(void);
void Option_SoundDraw(void);
void Option_801952B4(void);
void Option_ExpertSoundInit(void);
void Option_ExpertSoundUpdate(void);
void Option_ExpertSoundDraw(void);
void Option_DataInit(void);
void Option_DataUpdate(void);
void Option_8019669C(void);
void Option_DataDraw(void);
void Option_RankingInit(void);
void Option_RankingUpdate(void);
void Option_RankingDraw(void);
void Option_80196FC4(void);
void Option_80197074(void);
void Option_8019715C(void);
void Option_RankingMenuDraw(void);
void Option_8019752C(void);
void Option_Entry_Update(void);
void Option_Map_Update(void);
void Option_MainMenu_Update(void);
void Option_Training_Update(void);
void Option_MainMenu_Draw(void);
void Option_Versus_Update(void);
void Option_Versus_Draw(void);
void Option_Sound_Setup(void);
void Option_Sound_Update(void);
void Option_Sound_SetSoundMode(void);
void Option_Sound_SetVolumeLevels(void);
void Option_Sound_Draw(void);
void Option_Sound_Speaker_Draw(void);
void Option_ExpertSound_Setup(void);
void Option_ExpertSound_Update(void);
void Option_ExpertSound_Draw(void);
void Option_Data_Setup(void);
void Option_Data_Update(void);
void Option_Data_Select(void);
void Option_Data_Draw(void);
void Option_Ranking_Setup(void);
void Option_Ranking_Update(void);
void Option_Ranking_Draw(void);
void Option_Ranking_Select(void);
void Option_Ranking_Cursor(void);
void Option_Ranking2_Cursor(void);
void Option_RankingMenu_Draw(void);
void Option_RankingMenu2_Draw(void);
void Option_80197914(void);
void Option_80197A3C(s32, s32, s32);
void Option_80197D30(s32, s32, s32);
void Option_80197DE4(s32, s32, s32);
void Option_80197F74(s32, s32, s32);
void Option_80198164(s32, f32, f32);
void Option_801982B0(s32, s32, f32, f32, s32);
void Option_801984D0(s32, s32, f32, f32);
void Option_80198608(s32, s32, f32, f32);
void Option_8019882C(s32, s32, f32, f32);
void Option_8019896C(s32, f32, s32);
void Option_80199198(f32 arg0, f32 arg1, f32 arg2);
s32 Option_80199284(PlanetId start, PlanetId end);
void Option_VersusMenuInit(void);
void Option_VersusMenuUpdate(void);
void Option_8019949C(void);
void Option_VersusMenuDraw(void);
void Option_80199820(s32);
void Option_80199EA8(void);
void Option_VersusStageInit(void);
void Option_OrdinalNumbers_Draw(s32, s32, s32);
void Option_RankingName_Draw(s32, s32, s32);
void Option_RankingTotalHits_Draw(s32, s32, s32);
void Option_RankingTeamAlive_Draw(s32, s32, s32);
void Option_RankingRoute_Draw(s32, f32, f32);
void Option_RankingRouteFrame_Draw(s32, s32, f32, f32, s32);
void Option_RankingHitCount_Draw(s32, s32, f32, f32);
void Option_RankingTeamPresence_Draw(s32, s32, f32, f32);
void Option_RankingPlanetName_Draw(s32, s32, f32, f32);
void Option_RankingPlanetRoute_Draw(s32, f32, s32);
void Option_RankingRouteMedal_Draw(f32 xPos, f32 yPos, f32 zPos);
s32 Option_GetRouteLineColor(PlanetId start, PlanetId end);
void Option_VersusMenu_Setup(void);
void Option_VersusMenu_Update(void);
void Option_VersusMenu_Cursor(void);
void Option_VersusMenu_Draw(void);
void Option_VS_HandicapSet_Draw(s32);
void Option_VS_N64Console_Draw(void);
void Option_VersusStage_Setup(void);
void Option_8019A080(void);
void Option_VersusStageUpdate(void);
void Option_8019A124(void);
void Option_8019A1A8(void);
void Option_8019A214(void);
void Option_8019A298(void);
void Option_8019A2E0(void);
void Option_8019A4DC(void);
void Option_8019A6DC(void);
void Option_8019A954(void);
void Option_VersusStageDraw(void);
void Option_8019AB30(void);
void Option_8019AD84(void);
void Option_8019AFFC(void);
void Option_8019B1F8(void);
void Option_8019B3DC(void);
void Option_8019B5AC(void);
void Option_8019B6D8(f32 xPos, f32 yPos, f32 offset, s32 r, s32 g, s32 b);
void Option_8019B7D4(void);
void Option_8019B8A0(s32 arg0);
void Option_8019B8C8(void);
void Option_VersusStage_Update(void);
void Option_Vs_PointMatch_Update(void);
void Option_Vs_BattleRoyal_Update(void);
void Option_Vs_TimeTrial_Update(void);
void Option_Vs_StartMatch(void);
void Option_Vs_Point_Selection(void);
void Option_VsTimeSelection(void);
void Option_VsStageSelection(void);
void Option_VsConfirmSelection(void);
void Option_VersusStage_Draw(void);
void Option_VsPointMatch_Draw(void);
void Option_VsTimeTrial_Draw(void);
void Option_VsStageSelect_Draw(void);
void Option_VsTimeTrialStageSelect_Draw(void);
void Option_VsStageSelect2_Draw(void);
void Option_VsOKConfirm_Draw(void);
void Option_VsSelectionArrows_Draw(f32 xPos, f32 yPos, f32 offset, s32 r, s32 g, s32 b);
void Option_AcceptCancel_Draw(void);
void Option_VsBackToSubMenu(OptionId menuEntryState);
void Option_VsMenuCard_Draw(void);
void Option_DrawMenuLabel(void);
void Option_DrawMenuCard(MenuContext_38 arg0);
void Option_DrawMenuArwing(ArwingPosition arwing);
void Option_DrawMenuCard(OptionCardFrame arg0);
void Option_DrawMenuArwing(ArwingCursorPos arwing);
void Option_DrawArwing(f32, f32, f32, f32, f32, f32);
void Option_8019BDF0(void);
void Option_8019BE7C(f32, f32, f32, f32*, f32*, f32*);
void Option_8019BF34(void);
void Option_8019C04C(void);
void Option_DrawCardLabel(OptionTexture tex);
bool Option_8019C418(s32* arg0, s32 arg1, bool arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7,
UnkStruct_D_menu_801B9250* arg8);
s32 Option_8019C5A0(s32*);
bool Option_8019C66C(f32* arg0, f32 arg1, f32 arg2, UnkStruct_D_menu_801B9250* arg3);
void Option_8019C824(f32*);
s32 Option_8019C8C4(void);
void Option_8019CAE0(void);
void Option_8019CBC0(void);
void Option_8019CD54(void);
void Option_8019D118(void);
void Option_8019D624(void);
void Option_8019DB20(s32, f32, f32, f32, f32, f32, f32, f32);
s32 Option_8019DCE8(s32 arg0);
void Option_8019DD44(void);
void Option_8019DE74(void);
void Option_8019DF64(void);
void Option_InvoiceUpdate(void);
void Option_Menu_Push(void);
void Option_SetMenuLightPos(f32, f32, f32, f32*, f32*, f32*);
void Option_CardLightning_Update(void);
void Option_CardLightning_Draw(void);
void Option_DrawCardLabel(OptionCardTexture tex);
bool Option_Input_MoveCursor_Y(s32* arg0, s32 arg1, bool arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 controllerNum,
StickInput* stickY);
s32 Option_Input_DataSelect_X(s32*);
bool Option_Input_Sound_X(f32* arg0, f32 arg1, f32 arg2, StickInput* arg3);
void Option_Color_FlashRed(f32*);
s32 Option_RankInPos_Check(void);
void Option_NameEntry_Update(void);
void Option_NameEntry_Setup(void);
void Option_NameEntry_Select(void);
void Option_NameEntry_Draw(void);
void Option_Ranking_SaveData(void);
void Option_3DFont_Draw(s32, f32, f32, f32, f32, f32, f32, f32);
s32 Option_GetCharIndex(s32 character);
void Option_Score_Update(void);
void Option_Score_Update2(void);
void Option_Score_Draw(void);
void Option_Invoice_Update(void);
void Option_InvoiceDraw(void);
void Map_Main(void);
void Map_801A07E8(u8*, u8*, f32*);
void Map_801AD7EC(s32, s32, s32);
void Map_801A9FD4(s32);
void Map_Texture_Sphere(u8*, u8*, f32*);
void Map_RemainingLives_Draw(s32, s32, s32);
void Map_801A9FD4(bool);
#endif
+40 -39
View File
@@ -5,6 +5,7 @@
#include "sf64object.h"
#include "sf64player.h"
#include "sf64mesg.h"
#include "fox_hud.h"
// fox_360
void AllRange_FortunaIntro(Player*);
@@ -376,54 +377,54 @@ void Effect_Effect399_Draw(Effect*);
void Wipe_Draw(WipeMode mode, s32 frame);
// fox_hud
void func_hud_80084B94(s32);
void func_hud_800857DC(f32, f32, f32, f32);
void func_hud_80085890(f32, f32, f32, f32);
void func_hud_80086110(f32, f32, s32);
void func_hud_80086664(f32, f32);
void func_hud_800869A0(f32, f32, s32, f32, s32, s32);
void func_hud_80087530(f32, f32, s32);
void func_hud_800884E4(void);
void func_hud_80088564(void);
void HUD_TeamDownWrench_Draw(s32);
void HUD_BoostGaugeOverheat_Draw(f32, f32, f32, f32);
void HUD_BoostGaugeCool_Draw(f32, f32, f32, f32);
void HUD_TeamShields_Draw(f32, f32, s32);
void HUD_TitleCard_Draw(f32, f32);
void HUD_Number_Draw(f32, f32, s32, f32, bool, s32);
void HUD_LivesCount2_Draw(f32, f32, s32);
void HUD_SetMissionTeamStatus(void);
void HUD_Bolse_Area6_SaveData(void);
void HUD_DrawStatusScreens(void);
s32 ActorMissileSeek_ModeCheck(s32);
s32 ActorMissileSeek_ModeCheck(ActorMissileSeekMode mode);
void HUD_RadioCharacterName_Draw(void);
void func_hud_8008B5B0(f32 x, f32 y);
s32 func_hud_8008B774(void);
void func_hud_8008BD00(u8*, s32, s32, u8);
void func_hud_8008C104(u16*, u16*);
void HUD_PlayerShieldGauge_Draw(f32 x, f32 y);
s32 HUD_RadioDamage_Type(void);
void HUD_Texture_Scroll(u8*, s32, s32, u8);
void HUD_Texture_Wave(u16*, u16*);
void HUD_DisplaySmallNumber(f32, f32, f32, s32);
void func_hud_8008C5C8(f32, f32, f32, s32);
void func_hud_8008C6F4(s32, s32);
s32 func_hud_8008BCBC(s32);
void HUD_DrawEdgeArrows(void);
s32 HUD_dummy_8008CB8C(void);
void func_hud_8008D0DC(f32, f32, f32, f32, f32);
void HUD_VsModePortraitTex_Draw(f32, f32, f32, s32);
void HUD_EdgeArrows_Draw(s32, bool);
s32 HUD_CountDigits(s32);
void HUD_EdgeArrows_Update(void);
s32 HUD_8008CB8C(void);
void HUD_VS_ShieldGaugeTex_Draw(f32, f32, f32, f32, f32);
void HUD_DrawBossHealth(void);
void HUD_DrawCountdown(s32* , f32);
void func_hud_8008E9EC(f32, f32);
void func_hud_8008EA14(f32, f32);
void HUD_Shield_GoldRings_HitPoints(f32, f32);
void HUD_BombCounter_Draw(f32, f32);
void HUD_Draw(void);
void HUD_FoBase_Draw(Boss*);
void func_hud_8008FFF0(Boss*, s32);
s32 HUD_FoBase_ExplodeCs(Boss* this);
bool func_hud_8009092C(Actor*);
void HUD_FoBase_Update(Boss*);
bool func_hud_800915FC(Actor*);
bool func_hud_800924E0(Actor*);
void FoBase_Draw(Boss*);
void FoBase_BurnEffects(Boss*, s32);
s32 FoBase_ExplodeCs(Boss* this);
bool ActorTeamBoss_SetTarget(Actor*);
void FoBase_Update(Boss*);
bool ActorTeamBoss_ObstacleCheck(Actor*);
bool ActorTeamBoss_SomerSault(Actor*);
void ActorTeamBoss_Init(Actor*);
void ActorTeamBoss_Update(Actor* this);
void func_hud_80093164(Actor*);
void HUD_AquasStart(Player*);
void func_hud_800953A0(Actor*, s32);
void func_hud_8009546C(Actor*, s32);
void func_hud_80095538(Actor*, s32);
void HUD_AquasComplete(Player*);
void Hud_Effect363_Update(Effect*);
void Hud_Effect363_Draw(Effect*);
void func_hud_80094D20(f32, f32);
void func_hud_80096A74(Player* player);
void Aquas_CsIntroActors_Update(Actor*);
void Aquas_CsLevelStart(Player*);
void Aquas_AqBump2_Setup(Actor*, s32);
void Aquas_AqCoralReef2_Setup(Actor*, s32);
void Aquas_AqRock_Setup(Actor*, s32);
void Aquas_CsLevelComplete(Player*);
void Aquas_Effect363_Update(Effect*);
void Aquas_Effect363_Draw(Effect*);
void HUD_Hitpoints_Draw(f32, f32);
void Venom1_LevelStart2(Player* player);
// fox_col1
void func_col1_80098860(PlaneF* plane, Vec3f* point, Vec3f* normal);
+19 -19
View File
@@ -118,8 +118,8 @@ void Lights_SetTwoLights(Gfx** dList, s32 dir1x, s32 dir1y, s32 dir1z, s32 dir2x
char* Graphics_ClearPrintBuffer(char *buf, s32 fill, s32 len);
s32 Graphics_Printf(const char *fmt, ...);
void Texture_Scroll(u16 *texture, s32 width, s32 height, u8 mode);
void Texture_Mottle(u16 *dst, u16 *src, u8 mode);
void Lib_Texture_Scroll(u16 *texture, s32 width, s32 height, u8 mode);
void Lib_Texture_Mottle(u16 *dst, u16 *src, u8 mode);
s32 Animation_GetLimbIndex(Limb* limb, Limb** skeleton);
void Animation_DrawLimb(s32 mode, Limb* limb, Limb* *skeleton, Vec3f* jointTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, void* data);
void Animation_DrawSkeleton(s32 mode, Limb** skeletonSegment, Vec3f* jointTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, void* data, Matrix* transform);
@@ -128,23 +128,23 @@ s32 Animation_GetFrameCount(Animation *animationSegment);
void Animation_FindBoundingBox(Gfx* dList, s32 len, Vec3f *min, Vec3f *max, s32 *vtxFound, s32 *vtxCount, Vtx* *vtxList);
void Animation_GetDListBoundingBox(Gfx *dList, s32 len, Vec3f *min, Vec3f *max);
void Animation_GetSkeletonBoundingBox(Limb** skeletonSegment, Animation *animationSegment, s32 frame, Vec3f *min, Vec3f* max);
void TextureRect_CI4(Gfx **gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_CI4_Flip(Gfx **gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_CI4_MirX(Gfx **gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_CI4_MirY(Gfx **gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_CI8(Gfx **gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_RGBA16(Gfx **gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_RGBA16_MirX(Gfx **gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_IA8(Gfx **gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_IA8_FlipMirX(Gfx **gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_IA8_FlipMirY(Gfx **gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_IA8_MirX(Gfx **gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_IA8_MirY(Gfx **gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_IA16(Gfx **gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_IA16_MirX(Gfx **gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_IA16_MirY(Gfx **gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_IA16_MirXY(Gfx **gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_RGBA32(Gfx **gfxPtr, u32* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_CI4(Gfx **gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_CI4_Flip(Gfx **gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_CI4_MirX(Gfx **gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_CI4_MirY(Gfx **gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_CI8(Gfx **gfxPtr, u8* texture, u16* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_RGBA16(Gfx **gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_RGBA16_MirX(Gfx **gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_IA8(Gfx **gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_IA8_FlipMirX(Gfx **gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_IA8_FlipMirY(Gfx **gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_IA8_MirX(Gfx **gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_IA8_MirY(Gfx **gfxPtr, u8* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_IA16(Gfx **gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_IA16_MirX(Gfx **gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_IA16_MirY(Gfx **gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_IA16_MirXY(Gfx **gfxPtr, u16* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Lib_TextureRect_RGBA32(Gfx **gfxPtr, u32* texture, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void Graphics_FillRectangle(Gfx **gfxPtr, s32 ulx, s32 uly, s32 lrx, s32 lry, u8 r, u8 g, u8 b, u8 a);
u16* Graphics_SetupTextureRender(Gfx **gfxPtr, u8 width, u8 height);
void Graphics_DisplayHUDNumber(s32 xPos, s32 yPos, s32 number);
+14 -14
View File
@@ -58,21 +58,21 @@ typedef enum {
} SfxChannelLayout;
typedef enum {
/* 0 */ AUDIOSPEC_0,
/* 1 */ AUDIOSPEC_1,
/* 2 */ AUDIOSPEC_2,
/* 3 */ AUDIOSPEC_3,
/* 4 */ AUDIOSPEC_4,
/* 5 */ AUDIOSPEC_5,
/* 0 */ AUDIOSPEC_CO,
/* 1 */ AUDIOSPEC_ME,
/* 2 */ AUDIOSPEC_TI,
/* 3 */ AUDIOSPEC_SX,
/* 4 */ AUDIOSPEC_ZO,
/* 5 */ AUDIOSPEC_A6,
/* 6 */ AUDIOSPEC_6,
/* 7 */ AUDIOSPEC_7,
/* 8 */ AUDIOSPEC_8,
/* 9 */ AUDIOSPEC_9,
/* 10 */ AUDIOSPEC_10,
/* 11 */ AUDIOSPEC_11,
/* 12 */ AUDIOSPEC_12,
/* 13 */ AUDIOSPEC_13,
/* 14 */ AUDIOSPEC_14,
/* 7 */ AUDIOSPEC_SY,
/* 8 */ AUDIOSPEC_FO,
/* 9 */ AUDIOSPEC_SO,
/* 10 */ AUDIOSPEC_BO,
/* 11 */ AUDIOSPEC_KA,
/* 12 */ AUDIOSPEC_AQ,
/* 13 */ AUDIOSPEC_SZ,
/* 14 */ AUDIOSPEC_MA,
/* 15 */ AUDIOSPEC_15,
/* 16 */ AUDIOSPEC_16,
/* 17 */ AUDIOSPEC_17,
+1 -1
View File
@@ -85,7 +85,7 @@ typedef struct {
} ObjectInit; // size = 0x14
typedef struct {
/* 0x00 */ u8 status;
/* 0x00 */ u8 enabled;
/* 0x02 */ u16 type;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 yRot;
+3 -3
View File
@@ -150,7 +150,7 @@ typedef struct ArwingInfo {
/* 0x2C */ u8 drawFace;
/* 0x30 */ f32 teamFaceXrot;
/* 0x34 */ f32 teamFaceYrot;
/* 0x38 */ f32 windshieldXrot;
/* 0x38 */ f32 cockpitGlassXrot;
} ArwingInfo; // size = 0x3C
typedef struct PlayerSfx {
@@ -246,8 +246,8 @@ typedef struct Player {
/* 0x184 */ f32 unk_184;
/* 0x188 */ f32 unk_188;
/* 0x18C */ f32 unk_18C;
/* 0x190 */ f32 unk_190;
/* 0x194 */ f32 unk_194;
/* 0x190 */ f32 unk_190; // Related to engine glow. Investigate
/* 0x194 */ f32 unk_194; // Related to engine glow. Investigate
/* 0x198 */ s32 savedAlternateView;
/* 0x19C */ s32 unk_19C; // used to indicate whether a U-turn is forced, whether to draw ground in TI intro, and to stop the landmaster
/* 0x1A0 */ s32 unk_1A0; // tank muzzle flash timer
+27 -18
View File
@@ -3,8 +3,17 @@
#include "PR/ultratypes.h"
#define RANKING_MAX (10) // Maximum number of entries in the ranking
#define ROUTE_MAX (7) // Maximum number of planets in a route
#define ENTRY_MAX (3) // Maximum number of letters for name entry
#define TEAMSTATUS_PEPPY (0x00FF0000)
#define TEAMSTATUS_SLIPPY (0x0000FF00)
#define TEAMSTATUS_FALCO (0x000000FF)
#define TEAMSTATUS_ALIVE (0x00FFFFFF)
typedef struct {
/* bit 0 */ u8 unk_0 : 3;
/* bit 0 */ u8 unk_0 : 3; // unused
/* bit 3 */ u8 expertMedal : 1;
/* bit 4 */ u8 expertClear : 1;
/* bit 5 */ u8 played : 1;
@@ -12,27 +21,27 @@ typedef struct {
/* bit 7 */ u8 normalClear : 1;
} PlanetData; // size = 0x1
typedef struct {
/* bit 0 */ u16 unk_0 : 8;
/* bit 8 */ u16 unk_8 : 4;
/* bit C */ u16 unk_C : 1;
/* bit D */ u16 unk_D : 1;
/* bit E */ u16 unk_E : 1;
/* bit F */ u16 unk_F : 1;
} Save_SubStruct_5E; // size = 0x10
typedef struct PlanetStats {
/* bit 0 */ u16 hitCount : 8;
/* bit 8 */ u16 planetId : 4;
/* bit C */ u16 unk_C : 1; // hitCount related
/* bit D */ u16 peppyAlive : 1;
/* bit E */ u16 falcoAlive : 1;
/* bit F */ u16 slippyAlive : 1;
} PlanetStats; // size = 0x10
typedef struct{
typedef struct SaveData {
/* 0x00 */ PlanetData planet[16];
/* 0x10 */ char pad10[0x4];
/* 0x14 */ u8 soundMode;
/* 0x15 */ u8 musicVolume;
/* 0x16 */ u8 voiceVolume;
/* 0x17 */ u8 sfxVolume;
/* 0x18 */ u8 unk_18[10][3];
/* 0x36 */ u8 unk_36[10];
/* 0x40 */ u8 unk_40[10];
/* 0x4A */ u16 unk_4A[10];
/* 0x5E */ Save_SubStruct_5E unk_5E[10][7];
/* 0x18 */ u8 rankNameEntry[RANKING_MAX][ENTRY_MAX]; // Name entries in the ranking
/* 0x36 */ u8 rankingRoute[RANKING_MAX]; // Maximum number of planets played in the current record
/* 0x40 */ u8 rankingLives[RANKING_MAX]; // Player lives left in the current record
/* 0x4A */ u16 rankingMedal[RANKING_MAX]; // Medals obtained in the current record
/* 0x5E */ PlanetStats stats[RANKING_MAX][ROUTE_MAX];
/* 0xEA */ u8 unk_EA;
/* 0xEB */ char padEB[0x3];
/* 0xEE */ char padEE[0x10];
@@ -40,9 +49,9 @@ typedef struct{
typedef struct {
/* 0x00 */ union {
u8 raw[sizeof(SaveData)];
SaveData data;
};
u8 raw[sizeof(SaveData)];
SaveData data;
};
/* 0xFE */ u16 checksum;
} Save; // size = 0x100
+1 -1
View File
@@ -185,7 +185,7 @@ extern f32 gRadioPortraitPosX;
extern f32 gRadioPortraitPosY;
// fox_versus
extern s32 D_versus_80178750;
extern bool gVsMatchOver;
extern s32 gVsMatchState;
extern s32 D_versus_80178758;
extern s32 sUnlockLandmaster; // sUnlockLandmaster