diff --git a/include/game/math.h b/include/game/math.h index 78af06f5e..574b4e7d0 100644 --- a/include/game/math.h +++ b/include/game/math.h @@ -43,7 +43,7 @@ u16 Random(void); // Returns a 32-bit pseudorandom number #define Random32() ((Random() << 16) | Random()) -#define ShuffleRngSeed() \ +#define SHUFFLE_RNG_SEED() \ ({ \ u32 rand1, rand2, rand3; \ rand1 ^= (Random() << 16); \ diff --git a/include/game/shared/stage/camera.h b/include/game/shared/stage/camera.h index d76144cd0..562d6be7d 100644 --- a/include/game/shared/stage/camera.h +++ b/include/game/shared/stage/camera.h @@ -30,83 +30,52 @@ typedef void (*BgUpdate)(s32, s32); // NOTE: This was copy-pasted from SA2. // There are type differences for members -typedef struct Camera { +typedef struct { /* 0x00|0x04 */ CamCoord x; // TODO: might this be unsigned actually? /* 0x02|0x04 */ CamCoord y; // TODO: might this be unsigned actually? -#if (GAME == GAME_SA1) - /* 0x04 */ s16 SA2_LABEL(unk8); - /* 0x06 */ s16 SA2_LABEL(unkC); + /* 0x04 */ CamCoord SA2_LABEL(unk8); + /* 0x06 */ CamCoord SA2_LABEL(unkC); /* 0x08 */ CamCoord SA2_LABEL(unk10); /* 0x0A */ CamCoord SA2_LABEL(unk14); - /* 0x0C */ s16 shiftX; - /* 0x0E */ s16 shiftY; - /* 0x10 */ s16 SA2_LABEL(unk20); - /* 0x12 */ s16 SA2_LABEL(unk24); - + /* 0x18 */ CamCoord shiftX; + /* 0x1C */ CamCoord shiftY; + /* 0x20 */ CamCoord SA2_LABEL(unk20); + /* 0x12 */ CamCoord SA2_LABEL(unk24); // TODO: Why are X/Y swapped? // Did they make this a matrix or sth.? // (Used to calc min/max cam pos in UpdateCamera()) - /* 0x14 */ s16 minY; - /* 0x16 */ s16 maxY; - /* 0x18 */ s16 minX; - /* 0x1A */ s16 maxX; + /* 0x28 */ CamCoord minY; + /* 0x2c */ CamCoord maxY; + /* 0x30 */ CamCoord minX; + /* 0x34 */ CamCoord maxX; +#if (GAME == GAME_SA2) + /* 0x38 */ CamCoord dx; + /* 0x3c */ CamCoord dy; +#endif /* 0x1C */ s16 SA2_LABEL(unk40); - /* 0x1E */ s16 SA2_LABEL(unk44); - /* 0x20 */ s16 SA2_LABEL(unk48); - /* 0x22 */ s16 SA2_LABEL(unk4C); + /* 0x1E */ CamCoord SA2_LABEL(unk44); + /* 0x20 */ CamCoord SA2_LABEL(unk48); + /* 0x22 */ CamCoord SA2_LABEL(unk4C); +#if (GAME == GAME_SA1) /* 0x24 */ u16 unk24; +#endif + // 0x4 = spectator + // mode /* 0x26 */ u16 SA2_LABEL(unk50); /* 0x28 */ u16 SA2_LABEL(unk52); /* 0x2A */ u16 SA2_LABEL(unk54); +#if (GAME == GAME_SA2) + /* 0x56 */ s16 unk56; +#endif /* 0x2C */ BgUpdate fnBgUpdate; /* 0x30 */ struct Task *movementTask; /* 0x34 */ s16 shakeOffsetX; /* 0x36 */ s16 shakeOffsetY; /* 0x38 */ s16 SA2_LABEL(unk64); /* 0x3A */ u8 spectatorTarget; - /* 0x3B */ u8 filler3B[0x2]; -#elif (GAME == GAME_SA2) - /* 0x08 */ s32 unk8; - /* 0x0C */ s32 unkC; - /* 0x10 */ s32 unk10; - /* 0x14 */ s32 unk14; - /* 0x18 */ s32 shiftX; - /* 0x1C */ s32 shiftY; - /* 0x20 */ s32 unk20; - /* 0x24 */ s32 unk24; - - // TODO: Why are X/Y swapped? - // Did they make this a matrix or sth.? - // (Used to calc min/max cam pos in UpdateCamera()) - /* 0x28 */ s32 minY; - /* 0x2c */ s32 maxY; - /* 0x30 */ s32 minX; - /* 0x34 */ s32 maxX; - - /* 0x38 */ s32 dx; - /* 0x3c */ s32 dy; - /* 0x40 */ s16 unk40; - /* 0x44 */ s32 unk44; - /* 0x48 */ s32 unk48; - /* 0x4c */ s32 unk4C; - - // 0x4 = spectator - // mode - /* 0x50 */ u16 unk50; - - /* 0x52 */ u16 SA2_LABEL(unk52); - /* 0x54 */ u16 SA2_LABEL(unk54); - /* 0x56 */ s16 SA2_LABEL(unk56); - /* 0x58 */ BgUpdate fnBgUpdate; - /* 0x5C */ struct Task *movementTask; - /* 0x60 */ s16 shakeOffsetX; - /* 0x62 */ s16 shakeOffsetY; - /* 0x64 */ s16 unk64; - /* 0x66 */ u8 spectatorTarget; -#endif } Camera; /* size 0x80(in SA2) */ -extern struct Camera gCamera; +extern Camera gCamera; // TODO: Merge all these into one! #define IS_OUT_OF_RANGE_2(x, y, radiusX, radiusY) \ @@ -157,12 +126,12 @@ extern struct Camera gCamera; #define CAM_SCREENBASE_MAP_BACK 56 #endif -struct Backgrounds { +typedef struct { Background unk0; Background unk40; Background unk80; Background unkC0; -}; +} StageBackgrounds; extern const Background gStageCameraBgTemplates[4]; @@ -180,12 +149,7 @@ void HBlankCB_BgUpdateZone5ActBoss(int_vcount vcount); void HBlankCB_BgUpdateZoneFinalActXX(int_vcount vcount); #endif -#if (GAME == GAME_SA1) -// TODO: should be included from terrain_collision.h -extern const Collision *gRefCollision; -#endif - extern const u16 gBossCameraYClamps[][2]; -extern struct Backgrounds gStageBackgroundsRam; +extern StageBackgrounds gStageBackgroundsRam; #endif // GUARD_GAME_STAGE_CAMERA_H diff --git a/src/game/sa1/menus/mp_mode_select.c b/src/game/sa1/menus/mp_mode_select.c index 9d9c2aa0b..04ae33bbd 100644 --- a/src/game/sa1/menus/mp_mode_select.c +++ b/src/game/sa1/menus/mp_mode_select.c @@ -28,7 +28,7 @@ typedef enum PakModes { PM_COUNT } PakModes; -typedef struct ModeSelect { +typedef struct { /* 0x00 */ Background bg; /* 0x40 */ Sprite s[3]; /* 0xD0 */ Sprite s4; diff --git a/src/game/sa1/menus/mp_mode_select_2.c b/src/game/sa1/menus/mp_mode_select_2.c index 6b2a81ca3..ae33b59a0 100644 --- a/src/game/sa1/menus/mp_mode_select_2.c +++ b/src/game/sa1/menus/mp_mode_select_2.c @@ -36,7 +36,7 @@ typedef enum PakModes { PM_COUNT } PakModes; -typedef struct ModeSelect { +typedef struct { /* 0x00 */ Background bg; /* 0x40 */ Sprite s[3]; /* 0xD0 */ Sprite s4; @@ -60,7 +60,7 @@ typedef struct ModeSelect { /* 0x219 */ u8 unk219; } ModeSelect; /* 0x21C */ -typedef struct SioMultiplayerScore { +typedef struct { u16 unk0; u8 unk2; u8 unk3; @@ -81,7 +81,7 @@ void Task_800F058(void); extern const VoidFn gUnknown_080BB3F8[9]; -void sa2__sub_80818B8(void) +void SA2_LABEL(sub_80818B8)(void) { u32 var_r1; u8 temp_r4_3; diff --git a/src/game/sa1/menus/options.c b/src/game/sa1/menus/options.c index 03a38897a..405a57ae8 100644 --- a/src/game/sa1/menus/options.c +++ b/src/game/sa1/menus/options.c @@ -16,7 +16,7 @@ #include "constants/sa1/songs.h" #include "constants/sa1/text.h" // for UILANG_COUNT -typedef struct OptionsMenu { +typedef struct { /* 0x000 */ Sprite s0; /* 0x030 */ Sprite sprites30[8]; /* 0x1B0 */ Sprite s1B0; diff --git a/src/game/sa1/menus/player_data.c b/src/game/sa1/menus/player_data.c index ba4458582..c70acc58e 100644 --- a/src/game/sa1/menus/player_data.c +++ b/src/game/sa1/menus/player_data.c @@ -21,7 +21,7 @@ typedef enum EPDM_Options { PDM_OPTION_COUNT } EPDM_Options; -typedef struct PlayerDataMenu { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ Sprite s2[PDM_OPTION_COUNT + 1]; /* 0xF0 */ StrcUi_805423C strcF0; diff --git a/src/game/sa1/menus/time_attack.c b/src/game/sa1/menus/time_attack.c index 38f85bf61..0ede9ff5b 100644 --- a/src/game/sa1/menus/time_attack.c +++ b/src/game/sa1/menus/time_attack.c @@ -11,7 +11,7 @@ #include "constants/sa1/songs.h" #include "constants/sa1/text.h" -typedef struct TimeAttackMenu { +typedef struct { StrcUi_805423C unk0; Sprite s; Sprite s2; diff --git a/src/game/sa1/menus/title_screen.c b/src/game/sa1/menus/title_screen.c index 2b1774ea0..eb596a83a 100644 --- a/src/game/sa1/menus/title_screen.c +++ b/src/game/sa1/menus/title_screen.c @@ -70,18 +70,18 @@ const u8 gUnknown_080BB327[] = { 0, 1, 3, 2, 0 }; const VoidFn sMainMenuSecondaryItems[NUM_MAIN_MENU_ITEMS - 1] = { CreateMultiplayerModeSelectScreen, CreateTimeAttackMenu, CreateOptionsMenu, LoadTinyChaoGarden }; -typedef struct SegaLogo { +typedef struct { u16 unk0; Background bg; } SegaLogo; /* 0x44 */ -typedef struct SonicTeamLogo { +typedef struct { u16 unk0; Background bg; s16 qFade; } SonicTeamLogo; /* 0x48 */ -typedef struct MainMenu { +typedef struct { /* 0x000 */ Sprite s; /* 0x030 */ Sprite items[NUM_MAIN_MENU_ITEMS]; /* 0x120 */ Background bg120; @@ -324,7 +324,7 @@ void Task_800D4B0(void) CreateTitleScreen(1); } -typedef struct TitleScreen { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ Sprite s2; /* 0x60 */ Background bg; @@ -514,7 +514,7 @@ void CreateMainMenu(u32 param0) s8 *temp_r0; struct Task *t; - struct MainMenu *menu; + MainMenu *menu; Sprite *s; Background *bg; diff --git a/src/game/sa1/multiplayer/chao_message.c b/src/game/sa1/multiplayer/chao_message.c index 709d65055..660b46ced 100644 --- a/src/game/sa1/multiplayer/chao_message.c +++ b/src/game/sa1/multiplayer/chao_message.c @@ -18,7 +18,7 @@ #define CM_BACKGROUND_COLOR RGB16_REV(0, 27, 30) -typedef struct ChaoMessage { +typedef struct { /* 0x00 */ Background bg; /* 0x40 */ u8 unk40[2][4]; /* 0x48 */ s16 unk48[4]; @@ -29,14 +29,14 @@ typedef struct ChaoMessage { /* 0x56 */ u8 unk56; } ChaoMessage; /* 0x58 */ -typedef struct ChaoMsgSprite { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ s16 unk30; /* 0x32 */ s16 unk32; /* 0x34 */ u8 unk34; } ChaoMsgSprite; /* 0x38 */ -typedef struct ChaoMsg68 { +typedef struct { GameOverB overBs[4]; s16 unk60; s16 unk62; diff --git a/src/game/sa1/special_stage/main.c b/src/game/sa1/special_stage/main.c index fcc8ca939..34d33c8da 100644 --- a/src/game/sa1/special_stage/main.c +++ b/src/game/sa1/special_stage/main.c @@ -20,7 +20,7 @@ extern struct MP2KSongHeader se_ring_copy; #include "constants/sa1/songs.h" #include "constants/sa1/zones.h" -typedef struct Strc_30055E0 { +typedef struct { u8 unk0; s16 unk2; u16 qBlend; @@ -28,7 +28,7 @@ typedef struct Strc_30055E0 { u8 fillerC[0x4]; } Strc_30055E0; /* 0x10 */ -typedef struct Strc_3005690 { +typedef struct { s32 unk0; s32 unk4; s32 unk8; @@ -76,7 +76,7 @@ typedef struct Strc_3005690 { u8 filler56[0xA]; } Strc_3005690; /* 0x60 */ -typedef struct Strc_3005780 { +typedef struct { s16 unk0; s16 unk2; s16 unk4; @@ -90,7 +90,7 @@ typedef struct Strc_3005780 { s8 unk13; } Strc_3005780; -typedef struct SpStage74 { +typedef struct { SpriteTransform tf; Sprite s; s32 unk3C; @@ -123,7 +123,7 @@ typedef struct SpStage74 { u8 filler72[2]; } SpStage74; -typedef struct SpStage8 { +typedef struct { u8 filler0[2]; u16 unk2; u16 unk4; @@ -131,14 +131,14 @@ typedef struct SpStage8 { } SpStage8; // Stage layouts? -typedef struct SpStageC { +typedef struct { s16 unk0; s16 unk2; s32 unk4; u16 unk8; } SpStageC; /* 0x0C */ -typedef struct SpStage40 { +typedef struct { SpriteTransform tf; Sprite s; void *mem; @@ -225,7 +225,7 @@ extern void sub_8068D0C(); extern void SetPlayerControls(bool32 flipFaceButtons); -typedef struct TfSprite { +typedef struct { SpriteTransform tf; Sprite s; } TfSprite; @@ -343,7 +343,7 @@ const Background gUnknown_084870F4 = { .prevScrollY = 0x7FFF, }; -typedef struct HitboxS16 { +typedef struct { s16 left; s16 top; s16 right; @@ -2014,7 +2014,7 @@ void sub_802C0CC(void) x = (strc5690->unkC - strc74->unk4C); y = (strc5690->unkE - strc74->unk4E); - theta = sa2__sub_8004418(y, x); + theta = SA2_LABEL(sub_8004418)(y, x); strc74->unk52 += 0x15; v0 = (strc74->unk52 * COS(theta)); v1 = (SIN(theta)); diff --git a/src/game/sa1/stage/backgrounds/zone_1.inc.c b/src/game/sa1/stage/backgrounds/zone_1.inc.c index 9aee8ca08..1d8f82dbe 100644 --- a/src/game/sa1/stage/backgrounds/zone_1.inc.c +++ b/src/game/sa1/stage/backgrounds/zone_1.inc.c @@ -6,7 +6,7 @@ void StageBgUpdate_Zone1Acts12(s32 x, s32 UNUSED y) { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; Background *bg; u16 *offsets; s32 i; diff --git a/src/game/sa1/stage/backgrounds/zone_3.inc.c b/src/game/sa1/stage/backgrounds/zone_3.inc.c index 5079d1e86..00d8fb2a7 100644 --- a/src/game/sa1/stage/backgrounds/zone_3.inc.c +++ b/src/game/sa1/stage/backgrounds/zone_3.inc.c @@ -36,7 +36,7 @@ void Task_UpdateFireworkAnimation(void) { CasinoParadiseFirework *firework = TASK_DATA(gCurTask); Sprite *s = &firework->s; - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; if (s->frameFlags & SPRITE_FLAG_MASK_ANIM_OVER) { TaskDestroy(gCurTask); @@ -66,7 +66,7 @@ void Task_UpdateFireworkAnimation(void) void StageBgUpdate_Zone3Acts12(s32 x, s32 y) { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; const Collision *collision; s32 xSub, ySub; s32 scanline; diff --git a/src/game/sa1/stage/backgrounds/zone_4.inc.c b/src/game/sa1/stage/backgrounds/zone_4.inc.c index fb065980c..5e172eaf1 100644 --- a/src/game/sa1/stage/backgrounds/zone_4.inc.c +++ b/src/game/sa1/stage/backgrounds/zone_4.inc.c @@ -7,7 +7,7 @@ void StageBgUpdate_Zone4Acts12(s32 x, s32 y) { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; Background *bg; u16 *offsets; const Collision *coll; diff --git a/src/game/sa1/stage/backgrounds/zone_6.inc.c b/src/game/sa1/stage/backgrounds/zone_6.inc.c index 98ade9aa0..7a5be3549 100644 --- a/src/game/sa1/stage/backgrounds/zone_6.inc.c +++ b/src/game/sa1/stage/backgrounds/zone_6.inc.c @@ -222,7 +222,7 @@ void StageBgUpdate_Zone6Act1(s32 x, s32 y) void StageBgUpdate_Zone6Act2(s32 x, s32 y) { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; const Collision *coll; #ifndef NON_MATCHING register s32 xSub asm("r9"); diff --git a/src/game/sa1/stage/backgrounds/zone_7_act_2.inc.c b/src/game/sa1/stage/backgrounds/zone_7_act_2.inc.c index 5267c152f..68ef2bf14 100644 --- a/src/game/sa1/stage/backgrounds/zone_7_act_2.inc.c +++ b/src/game/sa1/stage/backgrounds/zone_7_act_2.inc.c @@ -11,7 +11,7 @@ extern void VBlankCallback_803F920(void); void StageBgUpdate_Zone7Act2(s32 x, s32 y) { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; Background *bg = &gStageBackgroundsRam.unkC0; const Collision *collision; u32 *offsets; diff --git a/src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.c b/src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.c index aa98914b4..fe9cdde73 100644 --- a/src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.c +++ b/src/game/sa1/stage/enemies/boss_1_egg_hammer_tank.c @@ -16,7 +16,7 @@ #include "constants/sa1/anim_sizes.h" #include "constants/sa1/songs.h" -typedef struct EHTArm { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ SpriteTransform transform; /* 0x3C */ s16 unk3C; @@ -29,7 +29,7 @@ typedef struct EHTArm { /* 0x50 */ u8 unk50; } EHTArm; /* 0x54 */ -typedef struct EHTHammer { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ SpriteTransform transform; /* 0x3C */ s16 unk3C; @@ -43,7 +43,7 @@ typedef struct EHTHammer { /* 0x50 */ u8 unk50; } EHTHammer; /* 0x54 */ -typedef struct EggHammerTank { +typedef struct { /* 0x00 */ SpriteBase base; /* 0x0C */ Sprite s; /* 0x3C */ Hitbox reserved; @@ -1041,7 +1041,7 @@ void Task_80272D0(void) arm->qUnk48 += arm->qUnk4E; if (arm->qUnk4E > 0) { - s32 res = sa2__sub_801F100(arm->unk3E + I(arm->qUnk48), arm->unk3C + I(arm->qUnk44), 1, 8, sa2__sub_801EC3C); + s32 res = SA2_LABEL(sub_801F100)(arm->unk3E + I(arm->qUnk48), arm->unk3C + I(arm->qUnk44), 1, 8, SA2_LABEL(sub_801EC3C)); if (res < 0) { arm->qUnk48 = arm->qUnk48 + Q(res); arm->qUnk4E = (arm->qUnk4E >> 2) - arm->qUnk4E; @@ -1256,7 +1256,8 @@ void Task_8027714(void) hammer->qUnk48 += hammer->qUnk4E; if (hammer->qUnk4E > 0) { - s32 res = sa2__sub_801F100(hammer->unk3E + I(hammer->qUnk48), hammer->unk3C + I(hammer->qUnk44), 1, 8, sa2__sub_801EC3C); + s32 res + = SA2_LABEL(sub_801F100)(hammer->unk3E + I(hammer->qUnk48), hammer->unk3C + I(hammer->qUnk44), 1, 8, SA2_LABEL(sub_801EC3C)); if (res < 0) { hammer->qUnk48 = hammer->qUnk48 + Q(res); hammer->qUnk4E = (hammer->qUnk4E >> 2) - hammer->qUnk4E; diff --git a/src/game/sa1/stage/enemies/boss_2_egg_press.c b/src/game/sa1/stage/enemies/boss_2_egg_press.c index 68144e990..5f3fd4b1a 100644 --- a/src/game/sa1/stage/enemies/boss_2_egg_press.c +++ b/src/game/sa1/stage/enemies/boss_2_egg_press.c @@ -17,7 +17,7 @@ #include "constants/sa1/char_states.h" #include "constants/sa1/songs.h" -typedef struct EggPress { +typedef struct { /* 0x00 */ SpriteBase base; /* 0x0C */ Sprite s; /* 0x3C */ Hitbox reserved[2]; @@ -723,7 +723,7 @@ void Task_802EA8C(void) worldX = TO_WORLD_POS(boss->base.meX, boss->base.regionX) + I(boss->qUnk94); worldY = TO_WORLD_POS(me->y, boss->base.regionY) + I(boss->qUnk98); - res = sa2__sub_801F100(worldY + 0x10, worldX, 1, 8, &sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)(worldY + 0x10, worldX, 1, 8, &SA2_LABEL(sub_801EC3C)); if (res < 0) { boss->qUnk98 += Q(res); boss->qUnkB2 = (boss->qUnkB2 >> 2) - boss->qUnkB2; diff --git a/src/game/sa1/stage/enemies/boss_3_egg_ball.c b/src/game/sa1/stage/enemies/boss_3_egg_ball.c index 19b794cb7..fbcb7d0df 100644 --- a/src/game/sa1/stage/enemies/boss_3_egg_ball.c +++ b/src/game/sa1/stage/enemies/boss_3_egg_ball.c @@ -17,7 +17,7 @@ #include "constants/sa1/char_states.h" #include "constants/sa1/songs.h" -typedef struct EggBall { +typedef struct { /* 0x00 */ SpriteBase base; /* 0x0C */ Sprite s; /* 0x3C */ Sprite s2; @@ -40,7 +40,7 @@ typedef struct EggBall { /* 0x98 */ void *vram98; } EggBall; -typedef struct EggBall_44 { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ s32 qUnk30; /* 0x34 */ s32 qUnk34; @@ -50,7 +50,7 @@ typedef struct EggBall_44 { /* 0x42 */ u8 unk42; } EggBall_44; -typedef struct EggBall_Pipe { +typedef struct { /* 0x00 */ SpriteBase base; /* 0x0C */ Sprite s; s16 unk3C; @@ -621,7 +621,7 @@ void Task_802FC14(void) worldX = TO_WORLD_POS(boss->base.meX, boss->base.regionX) + I(boss->qUnk70); worldY = TO_WORLD_POS(me->y, boss->base.regionY) + I(boss->qUnk74); - res = sa2__sub_801F100(worldY + 0x18, worldX, 1, 8, &sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)(worldY + 0x18, worldX, 1, 8, &SA2_LABEL(sub_801EC3C)); if (res < 0) { boss->qUnk74 += Q(res); boss->qUnk90 = (boss->qUnk90 >> 2) - boss->qUnk90; @@ -862,7 +862,7 @@ void Task_8030414(void) s->y = worldY - gCamera.y; if (boss_44->qUnk3C > 0) { - s32 res = sa2__sub_801F100(worldY + 0x18, worldX, 1, 8, &sa2__sub_801EC3C); + s32 res = SA2_LABEL(sub_801F100)(worldY + 0x18, worldX, 1, 8, &SA2_LABEL(sub_801EC3C)); if (res < 0) { boss_44->qUnk34 += Q(res); diff --git a/src/game/sa1/stage/enemies/boss_4_egg_spider.c b/src/game/sa1/stage/enemies/boss_4_egg_spider.c index a947a0d37..68aa137e4 100644 --- a/src/game/sa1/stage/enemies/boss_4_egg_spider.c +++ b/src/game/sa1/stage/enemies/boss_4_egg_spider.c @@ -20,7 +20,7 @@ #include "constants/sa1/songs.h" #include "game/shared/stage/underwater_effects.h" -typedef struct EggSpider { +typedef struct { /* 0x00 */ SpriteBase base; /* 0x0C */ Sprite s; /* 0x3C */ Sprite s2; @@ -38,7 +38,7 @@ typedef struct EggSpider { /* 0x8A */ u8 unk8C; } EggSpider; /* 0x90 */ -typedef struct IciclePlatform { +typedef struct { /* 0x0C */ Sprite s; /* 0x30 */ u8 filler30[0x14]; /* 0x44 */ CamCoord worldX; @@ -568,7 +568,7 @@ void Task_8031480(void) worldX = TO_WORLD_POS(boss->base.meX, boss->base.regionX) + I(boss->qUnk6C); worldY = TO_WORLD_POS(me->y, boss->base.regionY) + I(boss->qUnk70); - res = sa2__sub_801F100(worldY + 0x38, worldX, 1, 8, &sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)(worldY + 0x38, worldX, 1, 8, &SA2_LABEL(sub_801EC3C)); if (boss->unk84 > 120) if (res < 0) { diff --git a/src/game/sa1/stage/enemies/boss_5_mecha_knuckles.c b/src/game/sa1/stage/enemies/boss_5_mecha_knuckles.c index 946fade33..e04cf0776 100644 --- a/src/game/sa1/stage/enemies/boss_5_mecha_knuckles.c +++ b/src/game/sa1/stage/enemies/boss_5_mecha_knuckles.c @@ -61,7 +61,7 @@ typedef enum { /* 25 */ MKSTATE_COUNT } MechaKnucklesStates; -typedef struct MechaKnuckles { +typedef struct { /* 0x00 */ SpriteBase base; /* 0x0C */ Sprite s; /* 0x3C */ Hitbox reserved; @@ -86,7 +86,7 @@ typedef struct MechaKnuckles { /* 0x9B */ s8 state2; } MechaKnuckles; /* 0x9C */ -typedef struct MechaKnucklesRocket { +typedef struct { /* 0x00 */ s32 unk0; /* 0x00 */ s32 unk4; /* 0x00 */ s16 unk8; @@ -99,7 +99,7 @@ typedef struct MechaKnucklesRocket { /* 0x44 */ SpriteTransform transform; } MechaKnucklesRocket; /* 0x50 */ -typedef struct MechaKnucklesParts { +typedef struct { /* 0x00 */ s32 unk0; /* 0x04 */ s32 unk4; /* 0x08 */ s16 unk8; @@ -116,7 +116,7 @@ typedef struct MechaKnucklesParts { typedef bool32 (*MechaKnuxPlayerFn)(MechaKnuckles *boss, Player *p); typedef void (*MechaKnuxFn)(MechaKnuckles *boss, Player *p); -typedef struct Unk { +typedef struct { s16 anim; u8 variant; u8 unk3; @@ -195,7 +195,7 @@ bool32 sub_804FCEC(MechaKnuckles *boss, Player *p); bool32 sub_804FD54(MechaKnuckles *boss, Player *p); MechaKnucklesStates sub_804ED80(MechaKnuckles *boss, Player *p); -typedef struct ProcDataBoss5 { +typedef struct { MechaKnuxPlayerFn knuxPlayerFn; MechaKnuxFn changeState; s16 unk8; @@ -810,7 +810,7 @@ void sub_804EB90(MechaKnuckles *boss) boss->flags88 &= ~1; - res = sa2__sub_801E4E4(temp_r6 + boss->unk99, temp_r7, 1, 8, NULL, sa2__sub_801EE64); + res = SA2_LABEL(sub_801E4E4)(temp_r6 + boss->unk99, temp_r7, 1, 8, NULL, SA2_LABEL(sub_801EE64)); if (boss->flags88 & 0x10) { if (res < 0) { boss->qUnk78 += res << 8; @@ -824,7 +824,7 @@ void sub_804EB90(MechaKnuckles *boss) boss->flags88 &= ~2; if (boss->unk7E < 0) { - res = sa2__sub_801E4E4(temp_r6 - boss->unk99, temp_r7, 1, -8, NULL, sa2__sub_801EE64); + res = SA2_LABEL(sub_801E4E4)(temp_r6 - boss->unk99, temp_r7, 1, -8, NULL, SA2_LABEL(sub_801EE64)); if (res < 0) { boss->qUnk78 -= Q(res); diff --git a/src/game/sa1/stage/enemies/boss_6_egg_snake.c b/src/game/sa1/stage/enemies/boss_6_egg_snake.c index b77157b7d..29819a2d7 100644 --- a/src/game/sa1/stage/enemies/boss_6_egg_snake.c +++ b/src/game/sa1/stage/enemies/boss_6_egg_snake.c @@ -17,7 +17,7 @@ #define NUM_SEGMENTS 9 -typedef struct EggSnakeSegment { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ u16 unk30; /* 0x32 */ u16 unk32; @@ -31,7 +31,7 @@ typedef struct EggSnakeSegment { /* 0x52 */ u8 unk52; } EggSnakeSegment; -typedef struct EggSnakeSegmentManager { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ struct Task *tasks[NUM_SEGMENTS]; /* 0x54 */ u8 unk54; @@ -45,7 +45,7 @@ typedef struct EggSnakeSegmentManager { s16 unk5E; } EggSnakeSegmentManager; /* 0x60 */ -typedef struct EggSnakeProjectile { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ Sprite s2; /* 0x60 */ u16 unk60; @@ -58,7 +58,7 @@ typedef struct EggSnakeProjectile { /* 0x72 */ CamCoord originY; } EggSnakeProjectile; /* 0x74 */ -typedef struct EggSnake { +typedef struct { /* 0x00 */ SpriteBase base; /* 0x0C */ Sprite s; /* 0x3C */ Hitbox reserved; @@ -88,7 +88,7 @@ typedef struct EggSnake { } EggSnake; /* 0xAC */ // static memory at 0x03005860 -typedef struct PlayerSpeedState { +typedef struct { /* 0x00 */ s32 qWorldX; /* 0x04 */ s32 qWorldY; /* 0x08 */ s16 qSpeedAirX; @@ -681,7 +681,7 @@ void Task_8032AF8(void) worldX = TO_WORLD_POS(boss->base.meX, boss->base.regionX) + I(boss->qUnk78); worldY = TO_WORLD_POS(me->y, boss->base.regionY) + I(boss->qUnk7C); - res = sa2__sub_801F100(worldY, worldX, 1, 8, &sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)(worldY, worldX, 1, 8, &SA2_LABEL(sub_801EC3C)); if (res < 0) { boss->unk98 = 60; @@ -1106,7 +1106,7 @@ void CreateProjectile() newProj->unk68 = Q(boss->unk92); temp_r3 = I(gPlayer.qWorldX) - (newProj->originX + I(newProj->unk64)); temp_r1 = I(gPlayer.qWorldY) - (newProj->originY + I(newProj->unk68)); - angle = sa2__sub_8004418(temp_r1 / 2, temp_r3 / 2); + angle = SA2_LABEL(sub_8004418)(temp_r1 / 2, temp_r3 / 2); newProj->unk6C = COS_24_8(angle); newProj->unk6E = SIN_24_8(angle); newProj->s.x = 0; diff --git a/src/game/sa1/stage/enemies/boss_x1_egg_wrecker.c b/src/game/sa1/stage/enemies/boss_x1_egg_wrecker.c index 35323d8ac..f8d866f09 100644 --- a/src/game/sa1/stage/enemies/boss_x1_egg_wrecker.c +++ b/src/game/sa1/stage/enemies/boss_x1_egg_wrecker.c @@ -39,7 +39,7 @@ typedef struct { /* 0x8D */ u8 unk8E; } EggWrecker; /* 0x90 */ -typedef struct EggWrecker_44 { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ u16 unk30; /* 0x30 */ s16 unk32; diff --git a/src/game/sa1/stage/enemies/boss_x2_egg_drillster.c b/src/game/sa1/stage/enemies/boss_x2_egg_drillster.c index d20d01146..09e787b80 100644 --- a/src/game/sa1/stage/enemies/boss_x2_egg_drillster.c +++ b/src/game/sa1/stage/enemies/boss_x2_egg_drillster.c @@ -17,7 +17,7 @@ #define NUM_WHEELS 4 -typedef struct EggDrillster { +typedef struct { /* 0x00 */ SpriteBase base; /* 0x0C */ Sprite s; /* 0x3C */ Sprite s2; @@ -39,7 +39,7 @@ typedef struct EggDrillster { /* 0x8D */ char filler8E[2]; } EggDrillster; /* size = 0x90 */ -typedef struct Component { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ u16 unk30; /* 0x32 */ s16 unk32; @@ -498,7 +498,7 @@ void Task_803623C() switch (boss->unk8D) { case 0: boss->unk84--; - res = sa2__sub_801F100(worldY + 20, worldX, 1, 8, sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)(worldY + 20, worldX, 1, 8, SA2_LABEL(sub_801EC3C)); if (res < 0) { boss->unk70 += Q(res); boss->unk78 = 0; @@ -684,7 +684,7 @@ void Task_8036810() component->unk38 += component->qUnk3E; worldX = component->worldX + I(component->unk34); worldY = component->worldY + I(component->unk38); - res = sa2__sub_801F100(worldY + 30, worldX, 1, 8, sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)(worldY + 30, worldX, 1, 8, SA2_LABEL(sub_801EC3C)); if (res < 0) { component->unk38 += Q(res); diff --git a/src/game/sa1/stage/enemies/boss_x3_egg_x.c b/src/game/sa1/stage/enemies/boss_x3_egg_x.c index fe89a9866..ef06e2de5 100644 --- a/src/game/sa1/stage/enemies/boss_x3_egg_x.c +++ b/src/game/sa1/stage/enemies/boss_x3_egg_x.c @@ -24,7 +24,7 @@ /* X-Zone Final Boss */ -typedef struct EggX_10 { +typedef struct { u16 unk0; u16 unk2; u16 unk4; @@ -36,7 +36,7 @@ typedef struct EggX_10 { u16 unkE; } EggX_10; -typedef struct EggX_48 { +typedef struct { Sprite s; u16 unk30; u8 filler32[0x2]; @@ -50,7 +50,7 @@ typedef struct EggX_48 { u8 filler46[0x2]; } EggX_48; -typedef struct EggX_Sparkle { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ SpriteTransform transform; /* 0x3C */ u16 unk3C; @@ -72,7 +72,7 @@ typedef struct EggX_Sparkle { /* 0x62 */ u8 unk62; } EggX_Sparkle; -typedef struct EggX_7C { +typedef struct { Sprite s; Sprite s2; s16 unk60; @@ -89,7 +89,7 @@ typedef struct EggX_7C { u8 unk7B; } EggX_7C; -typedef struct EggX { +typedef struct { /* 0x00 */ SpriteBase base; /* 0x0C */ Sprite s; /* 0x3C */ Hitbox reserved; @@ -1083,7 +1083,7 @@ void Task_8038154() switch (boss->unk99) { case 0: boss->unk92--; - res = sa2__sub_801F100(worldY + 20, worldX, 1, 8, sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)(worldY + 20, worldX, 1, 8, SA2_LABEL(sub_801EC3C)); if (res < 0) { boss->qUnk78 += Q(res); boss->qUnk80 = (boss->qUnk80 >> 2) - boss->qUnk80; @@ -1971,7 +1971,7 @@ void Task_80397A8(void) strc48->qUnk38 += strc48->qUnk3E; worldX = I(strc48->qUnk34) + strc48->unk40; worldY = I(strc48->qUnk38) + strc48->unk42; - res = sa2__sub_801F100(worldY + 8, worldX, 1, 8, sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)(worldY + 8, worldX, 1, 8, SA2_LABEL(sub_801EC3C)); if (res < 0) { s32 v16; s32 v; @@ -2152,7 +2152,7 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_x3__Task_8039A64.inc", vo worldX = ABS(worldX); - worldX = (u16)sa2__sub_8004418(worldY, worldX); + worldX = (u16)SA2_LABEL(sub_8004418)(worldY, worldX); if ((u32)((u32)((worldX - 225) + 0xFF1F0000) >> 0x10) < 0x11F) { worldX = 224; } @@ -2487,7 +2487,7 @@ void Task_803A46C() worldX = I(sparkle->unk54); worldY = I(sparkle->unk58); - res = SA2_LABEL(sub_801F100)(worldY + 8, worldX, 1, 8, sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)(worldY + 8, worldX, 1, 8, SA2_LABEL(sub_801EC3C)); if (res < 0) { sparkle->unk58 += Q(res); @@ -2587,7 +2587,7 @@ void sub_803A650(CamCoord worldX, CamCoord worldY) } // Belongs to sub_803A6EC, might be able to be removed once matched... -typedef struct Test { +typedef struct { Sprite *s; } Test; diff --git a/src/game/sa1/stage/enemies/boss_xtra_super_egg_robot.c b/src/game/sa1/stage/enemies/boss_xtra_super_egg_robot.c index a8dba0c6f..3834cf90e 100644 --- a/src/game/sa1/stage/enemies/boss_xtra_super_egg_robot.c +++ b/src/game/sa1/stage/enemies/boss_xtra_super_egg_robot.c @@ -261,11 +261,11 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc", s var_r3 = I(temp_r8->unk0.qUnk54); sinV = (SIN_24_8(temp_r1_2) << 0xC); temp_r6 = var_r3 + ((((COS_24_8(temp_r1_2) * Q(9)) - (sinV)) >> 0x10) + 6); - temp_sb = sa2__sub_801F100(temp_r6, var_r7 + 0x10, 1, 8, sa2__sub_801EC3C); + temp_sb = SA2_LABEL(sub_801F100)(temp_r6, var_r7 + 0x10, 1, 8, SA2_LABEL(sub_801EC3C)); temp_r4 = I(temp_r8->unk0.qUnk54); temp_r2 = sp8 >> 6; temp_r4 = (temp_r4 + (((((SIN_24_8(temp_r2)) * Q(21)) + (COS_24_8(temp_r2) << 0xB)) >> 0x10))) + 6; - var_sl = sa2__sub_801F100(temp_r4, var_r7 + 21, 1, 8, sa2__sub_801EC3C); + var_sl = SA2_LABEL(sub_801F100)(temp_r4, var_r7 + 21, 1, 8, SA2_LABEL(sub_801EC3C)); if (var_sl > temp_sb) { var_sl = temp_sb; } @@ -293,10 +293,10 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc", s var_r3 = I(temp_r8_2->unk0.qUnk54); sinV = ((SIN_24_8(temp_r5_2 >> 6)) << 0xC); temp_r5_3 = var_r3 + (((((COS_24_8(temp_r5_2 >> 6)) * Q(9)) - sinV) >> 0x10) + 6); - temp_sb_2 = sa2__sub_801F100(temp_r5_3, var_r7_2 + 16, 1, 8, sa2__sub_801EC3C); + temp_sb_2 = SA2_LABEL(sub_801F100)(temp_r5_3, var_r7_2 + 16, 1, 8, SA2_LABEL(sub_801EC3C)); temp_r4_2 = I(temp_r8_2->unk0.qUnk54); temp_r4_2 += ((((SIN_24_8(spC >> 6)) * Q(21)) + ((COS_24_8(spC >> 6)) << 0xB)) >> 0x10) + 6; - var_r6 = sa2__sub_801F100(temp_r4_2, var_r7_2 + 21, 1, 8, sa2__sub_801EC3C); + var_r6 = SA2_LABEL(sub_801F100)(temp_r4_2, var_r7_2 + 21, 1, 8, SA2_LABEL(sub_801EC3C)); if (var_r6 > temp_sb_2) { var_r6 = temp_sb_2; } @@ -322,7 +322,7 @@ NONMATCH("asm/non_matching/game/sa1/stage/enemies/boss_xtra__sub_8050194.inc", s var_r4 = Mod(var_r4 - 72, 0xA80) + 72; } - var_r0 = sa2__sub_801F100(temp_r7, var_r4, 1, 8, sa2__sub_801EC3C); + var_r0 = SA2_LABEL(sub_801F100)(temp_r7, var_r4, 1, 8, SA2_LABEL(sub_801EC3C)); var_r1 = var_r6; if (var_r1 > var_sl) { var_r1 = var_sl; @@ -537,7 +537,7 @@ void sub_8050888() s->frameFlags = (s->frameFlags & 0xFFFE7FFF) | 0x10000; UpdateSpriteAnimation_BG(s); DisplaySprite_BG(s); - sa2__sub_8003EE4((strc->unk70 >> 6), 0x100, 0x100, 0x7C, 0x80, screenX, screenY, gBgAffineRegs); + SA2_LABEL(sub_8003EE4)((strc->unk70 >> 6), 0x100, 0x100, 0x7C, 0x80, screenX, screenY, gBgAffineRegs); switch (boss->unk6E) { case 4: diff --git a/src/game/sa1/stage/enemies/bosses_egg_mobile.c b/src/game/sa1/stage/enemies/bosses_egg_mobile.c index aec51ac14..6de376bbc 100644 --- a/src/game/sa1/stage/enemies/bosses_egg_mobile.c +++ b/src/game/sa1/stage/enemies/bosses_egg_mobile.c @@ -15,7 +15,7 @@ /* TODO: Maybe inline this file into bosses_misc.c ? */ -typedef struct PostBossEggMobile { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ Sprite s2; /* 0x60 */ CamCoord worldX; diff --git a/src/game/sa1/stage/enemies/bosses_misc.c b/src/game/sa1/stage/enemies/bosses_misc.c index f8ab77ebc..592458234 100644 --- a/src/game/sa1/stage/enemies/bosses_misc.c +++ b/src/game/sa1/stage/enemies/bosses_misc.c @@ -19,7 +19,7 @@ #include "constants/sa1/vram_hardcoded.h" #include "constants/sa1/zones.h" -typedef struct BossCapsule { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ Sprite s2; /* 0x60 */ SpriteTransform transform; @@ -31,7 +31,7 @@ typedef struct BossCapsule { /* 0x74 */ u16 unk76; } BossCapsule; -typedef struct Strc_sub_801749C { +typedef struct { /* 0x00 */ s16 unk0; /* 0x02 */ s16 unk2; /* 0x04 */ s16 unk4; @@ -40,7 +40,7 @@ typedef struct Strc_sub_801749C { /* 0x0A */ u16 unkA; } Strc_sub_801749C; -typedef struct Strc_sub_8016D80 { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ s32 qUnk30; /* 0x30 */ s32 qUnk34; @@ -51,7 +51,7 @@ typedef struct Strc_sub_8016D80 { /* 0x38 */ s16 qUnk40; } Strc_sub_8016D80; -typedef struct Strc_sub_8016F44 { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ SpriteTransform transform; /* 0x3C */ s32 unk3C; @@ -66,14 +66,14 @@ typedef struct Strc_sub_8016F44 { /* 0x40 */ s16 unk52; } Strc_sub_8016F44; /* 0x54 */ -typedef struct CameraPanning { +typedef struct { /* 0x00 */ CamCoord unk0; /* 0x02 */ CamCoord unk2; /* 0x04 */ CamCoord unk4; /* 0x06 */ CamCoord unk6; } CameraPanning; -typedef struct Strc_sub_801766C { +typedef struct { /* 0x00 */ s16 unk0; /* 0x02 */ s16 unk2; /* 0x04 */ Player *p; @@ -215,7 +215,7 @@ void Task_801623C() return; } - res = sa2__sub_801F100(gCamera.y + s->y + 8, gCamera.x + s->x, 1, 8, sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)(gCamera.y + s->y + 8, gCamera.x + s->x, 1, 8, SA2_LABEL(sub_801EC3C)); if (res > 0) { return; } @@ -641,7 +641,7 @@ void sub_8016E54() strc->qUnk30 += strc->qUnk3E; if ((strc->qUnk3C > 0) - && (sa2__sub_801F100(strc->unk3A + I(strc->qUnk34), strc->unk38 + I(strc->qUnk30), 1, 8, sa2__sub_801EC3C) < 0)) { + && (SA2_LABEL(sub_801F100)(strc->unk3A + I(strc->qUnk34), strc->unk38 + I(strc->qUnk30), 1, 8, SA2_LABEL(sub_801EC3C)) < 0)) { strc->qUnk3C = strc->qUnk40; if ((I(strc->qUnk30) < -32) && (strc->qUnk3E < 0)) { @@ -909,7 +909,7 @@ void Task_8017400(void) } } -struct Task *sub_801749C(s16 worldX, s16 worldY) +struct Task *sub_801749C(CamCoord worldX, CamCoord worldY) { struct Task *t; Strc_sub_801749C *strc; diff --git a/src/game/sa1/stage/mp_hud.c b/src/game/sa1/stage/mp_hud.c index 3d7757b80..aa6260f21 100644 --- a/src/game/sa1/stage/mp_hud.c +++ b/src/game/sa1/stage/mp_hud.c @@ -13,7 +13,7 @@ /* Used by Chao Hunt and Collect Rings as HUD task */ -typedef struct ChaoHuntHUD { +typedef struct { Sprite s0; Sprite spritesA[11]; Sprite spritesB[11]; diff --git a/src/game/sa1/stage/mp_results.c b/src/game/sa1/stage/mp_results.c index b45cef209..bad4477b4 100644 --- a/src/game/sa1/stage/mp_results.c +++ b/src/game/sa1/stage/mp_results.c @@ -10,7 +10,7 @@ #include "constants/sa1/songs.h" #include "constants/sa1/text.h" -typedef struct MPResults { +typedef struct { /* 0x00 */ Background bg; /* 0x40 */ Sprite s; /* 0x70 */ Sprite s2; diff --git a/src/game/sa1/stage/mp_results_b.c b/src/game/sa1/stage/mp_results_b.c index aa28bf2e2..c2ddb9efe 100644 --- a/src/game/sa1/stage/mp_results_b.c +++ b/src/game/sa1/stage/mp_results_b.c @@ -12,7 +12,7 @@ #include "constants/sa1/songs.h" #include "constants/sa1/text.h" -typedef struct MPResultsB { +typedef struct { /* 0x00 */ Background bg; /* 0x40 */ Background bg2; /* 0x80 */ Sprite s; @@ -690,8 +690,8 @@ NONMATCH("asm/non_matching/game/sa1/stage/results_b__Task_80196FC.inc", void Tas return; } block_39: - sa2__sub_80064A8(0U, 0x74U, 0U, 0x7CU, 8U, 0xF0U); - sa2__sub_80064A8(0U, 0x7CU, 8U, 0x74U, 0x10U, 0xF0U); + SA2_LABEL(sub_80064A8)(0U, 0x74U, 0U, 0x7CU, 8U, 0xF0U); + SA2_LABEL(sub_80064A8)(0U, 0x7CU, 8U, 0x74U, 0x10U, 0xF0U); // TOOD #ifndef NON_MATCHING diff --git a/src/game/sa1/stage/mp_unk_1.c b/src/game/sa1/stage/mp_unk_1.c index 131f36cd2..222a7f2bb 100644 --- a/src/game/sa1/stage/mp_unk_1.c +++ b/src/game/sa1/stage/mp_unk_1.c @@ -19,12 +19,12 @@ #include "constants/sa1/tilemaps.h" #include "constants/sa1/ui_graphics.h" -typedef struct SpriteStrc { +typedef struct { Sprite s; u8 filler30[0x8]; } SpriteStrc; -typedef struct MPStrc1 { +typedef struct { /* 0x00 */ Background bg0; /* 0x40 */ u8 filler40[0x40]; /* 0x80 */ SpriteStrc sprites[4]; @@ -37,7 +37,7 @@ typedef struct MPStrc1 { /* 0x432 */ s16 unk432; } MPStrc1; /* 0x434 */ -typedef struct MPStrc2 { +typedef struct { /* 0x00 */ GameOverB overBs[4]; /* 0x60 */ u16 unk60; /* 0x60 */ u16 unk62; diff --git a/src/game/sa1/stage/player_amy.c b/src/game/sa1/stage/player_amy.c index 699a863f2..3c34db563 100644 --- a/src/game/sa1/stage/player_amy.c +++ b/src/game/sa1/stage/player_amy.c @@ -187,7 +187,7 @@ void Player_Amy_80495F0(Player *p) { Player_804726C(p); Player_8047280(p); - sa2__sub_80232D0(p); + SA2_LABEL(sub_80232D0)(p); Player_UpdatePosition(p); PlayerFn_Cmd_UpdateAirFallSpeed(p); Player_8047224(p); diff --git a/src/game/sa1/stage/player_knuckles.c b/src/game/sa1/stage/player_knuckles.c index fb332f2f0..1ebc7d422 100644 --- a/src/game/sa1/stage/player_knuckles.c +++ b/src/game/sa1/stage/player_knuckles.c @@ -195,7 +195,7 @@ NONMATCH("asm/non_matching/game/sa1/stage/Player__sub_8048230.inc", void sub_804 worldX = (I(p->qWorldX) + 1); worldX += p->spriteOffsetX; - if (SA2_LABEL(sub_801E4E4)(worldY, worldX, p->layer, +8, NULL, sa2__sub_801EE64) < 0) { + if (SA2_LABEL(sub_801E4E4)(worldY, worldX, p->layer, +8, NULL, SA2_LABEL(sub_801EE64)) < 0) { goto _08048450; } } @@ -929,7 +929,7 @@ void sub_8048E34(Player *p) } sub_8048980(p); - sa2__sub_80232D0(p); + SA2_LABEL(sub_80232D0)(p); Player_UpdatePosition(p); switch (p->SA2_LABEL(unk61)) { diff --git a/src/game/sa1/ui/character_select.c b/src/game/sa1/ui/character_select.c index 8a521bca5..7f75b8dce 100644 --- a/src/game/sa1/ui/character_select.c +++ b/src/game/sa1/ui/character_select.c @@ -23,20 +23,20 @@ #define CIDX_BLOCK 3 // appears when a character was chosen already in MP #define CIDX_COUNT 4 -typedef struct CharSelect_20 { +typedef struct { GameOverB overB; s32 unk18; u16 unk1C; s16 unk1E; } CharSelect_20; -typedef struct CharSelect_34 { +typedef struct { Sprite s; u16 unk30; u16 unk32; } CharSelect_34; -typedef struct CharSelect_3C { +typedef struct { StrcUi_805423C strc0; struct Task *taskC; // -> CharSelect_Chars struct Task *task10; // -> CharSelect_20 @@ -56,7 +56,7 @@ typedef struct CharSelect_3C { u8 unk39; } CharSelect_3C; -typedef struct CharSelect_44 { +typedef struct { GameOverB overB; GameOverB overB2; u32 unk30; @@ -66,7 +66,7 @@ typedef struct CharSelect_44 { s16 unk40; } CharSelect_44; -typedef struct CharSelect_Chars { +typedef struct { Sprite sprites[CIDX_COUNT]; u32 unkC0; s16 unkC4; diff --git a/src/game/sa1/ui/collect_chaos_emeralds_msg.c b/src/game/sa1/ui/collect_chaos_emeralds_msg.c index f320d3a57..d9b0bb98c 100644 --- a/src/game/sa1/ui/collect_chaos_emeralds_msg.c +++ b/src/game/sa1/ui/collect_chaos_emeralds_msg.c @@ -9,7 +9,7 @@ #include "constants/sa1/animations.h" -typedef struct CollectEmeraldsScreen { +typedef struct { Sprite sprites[3]; StrcUi_805423C strc90; u32 unk9C; diff --git a/src/game/sa1/ui/course_select.c b/src/game/sa1/ui/course_select.c index d4ba3c405..5f264e5ca 100644 --- a/src/game/sa1/ui/course_select.c +++ b/src/game/sa1/ui/course_select.c @@ -15,7 +15,7 @@ #include "constants/sa1/songs.h" #include "constants/sa1/ui_graphics.h" -typedef struct CourseSelectState { +typedef struct { StrcUi_805423C strc0; u8 fillerC[4]; struct Task *task10; @@ -33,7 +33,7 @@ typedef struct CourseSelectState { u8 unk59; } CourseSelectState; -typedef struct CourseSelect_54 { +typedef struct { Sprite s; u8 filler30[0x18]; u32 unk48; @@ -44,7 +44,7 @@ typedef struct CourseSelect_54 { u8 unk51; } CourseSelect_54; -typedef struct CourseSelect_2DC { +typedef struct { Sprite sprites[15]; u32 unk2D0; u16 unk2D4; @@ -64,7 +64,7 @@ extern u8 gUnknown_086A3DB4[]; extern u8 gUnknown_03005140; -typedef struct StaticTileInfo { +typedef struct { void *vram; u32 anim; u32 variant; diff --git a/src/game/sa1/ui/extra_stage_results.c b/src/game/sa1/ui/extra_stage_results.c index d84f263e4..ac2649292 100644 --- a/src/game/sa1/ui/extra_stage_results.c +++ b/src/game/sa1/ui/extra_stage_results.c @@ -15,7 +15,7 @@ #include "constants/sa1/songs.h" #include "constants/sa1/text.h" -typedef struct CongratulationsAnim_48 { +typedef struct { StrcUi_805423C strc0; struct Task *taskC; struct Task *task10; @@ -33,7 +33,7 @@ typedef struct CongratulationsAnim_48 { s16 unk46; } CongratulationsAnim_48; -typedef struct ExtraStageResults_64 { +typedef struct { Sprite s; SpriteTransform transform; u32 unk3C; @@ -45,7 +45,7 @@ typedef struct ExtraStageResults_64 { // TODO: // This might just have been struct ExtraStageResults_164 all along? -typedef struct ExtraStageResults_64_2 { +typedef struct { Sprite s; SpriteTransform transform; u16 unk3C; @@ -55,7 +55,7 @@ typedef struct ExtraStageResults_64_2 { s32 qUnk54[4]; } ExtraStageResults_64_2; -typedef struct ExtraStageResults_164 { +typedef struct { Sprite s; SpriteTransform transform; u16 unk3C; @@ -73,7 +73,7 @@ typedef struct ExtraStageResults_164 { u8 filler15E[0x7]; } ExtraStageResults_164; -typedef struct ExtraStageResultsState { +typedef struct { StrcUi_805423C strc0; // -> ExtraStageResults_64 struct Task *taskC; // -> ExtraStageResults_64 struct Task *task10; // -> ExtraStageResults_64 diff --git a/src/game/sa1/ui/game_2_0.c b/src/game/sa1/ui/game_2_0.c index bec4a835a..e94b27175 100644 --- a/src/game/sa1/ui/game_2_0.c +++ b/src/game/sa1/ui/game_2_0.c @@ -14,7 +14,7 @@ #include "constants/sa1/animations.h" -typedef struct Game_2_0_Sub { +typedef struct { union { // TODO: This union might actually be their shared global type? GameOverB overB; @@ -24,7 +24,7 @@ typedef struct Game_2_0_Sub { u16 unk1A; } Game_2_0_Sub; -typedef struct Game_2_0 { +typedef struct { s16 unk0; s16 unk2; s16 unk4; diff --git a/src/game/sa1/ui/game_2_1.c b/src/game/sa1/ui/game_2_1.c index e6d69065b..ed772311d 100644 --- a/src/game/sa1/ui/game_2_1.c +++ b/src/game/sa1/ui/game_2_1.c @@ -15,7 +15,7 @@ #include "constants/sa1/songs.h" #include "constants/sa1/zones.h" -typedef struct Game_2_1_2C { +typedef struct { u8 filler0[0xC]; struct Task *taskC; struct Task *task10; @@ -28,7 +28,7 @@ typedef struct Game_2_1_2C { u16 unk2A; } Game_2_1_2C; -typedef struct Game_2_1_34 { +typedef struct { union { // TODO: This union might actually be their shared global type? GameOverB overB; diff --git a/src/game/sa1/ui/game_2_3.c b/src/game/sa1/ui/game_2_3.c index 4dd7478a4..41911dc68 100644 --- a/src/game/sa1/ui/game_2_3.c +++ b/src/game/sa1/ui/game_2_3.c @@ -12,7 +12,7 @@ #include "constants/sa1/songs.h" #include "constants/sa1/zones.h" -typedef struct Game_2_3_54 { +typedef struct { u8 filler0[0x48]; s32 unk48; s16 unk4C; @@ -22,7 +22,7 @@ typedef struct Game_2_3_54 { u8 unk51; } Game_2_3_54; -typedef struct Game_2_3_5C { +typedef struct { StrcUi_805423C strc0; struct Task *taskC; // -> Game_2_3_54 struct Task *task10; // -> Game_2_3_2DC @@ -38,7 +38,7 @@ typedef struct Game_2_3_5C { u8 unk58; } Game_2_3_5C; -typedef struct Game_2_3_2DC { +typedef struct { Sprite sprites[5]; u8 fillerF0[0x1E0]; s32 unk2D0; @@ -66,7 +66,7 @@ extern u8 gUnknown_086A4FB4[]; extern u16 gUnknown_086A4DB4[256]; extern u8 gUnknown_086A5834[]; -typedef struct TileInfo32 { +typedef struct { void *vram; u32 anim; u32 variant; diff --git a/src/game/sa1/ui/intro_animation.c b/src/game/sa1/ui/intro_animation.c index a0bd05c9e..b98e348fa 100644 --- a/src/game/sa1/ui/intro_animation.c +++ b/src/game/sa1/ui/intro_animation.c @@ -18,7 +18,7 @@ #define EMERALD_START_X DISPLAY_CENTER_X #define EMERALD_START_Y -36 -typedef struct IntroSprite { +typedef struct { Sprite s; u16 unk30; u8 unk32; @@ -28,14 +28,14 @@ typedef struct IntroSprite { s32 qUnk40; } IntroSprite; /* 0x44 */ -typedef struct Intro_C8 { +typedef struct { Sprite sprites[3]; u8 filler60[0x24]; u16 unkB4; u8 fillerB6[0x12]; } Intro_C8; /* 0xC8 */ -typedef struct Intro_54 { +typedef struct { StrcUi_805423C strc0; struct Task *taskC; struct Task *beamTasks[INTRO_SPOTLIGHT_COUNT]; // -> SpotlightBeam @@ -110,7 +110,7 @@ const s16 gUnknown_0868B280[2] = { 0x5C, 0x5A }; const s16 gUnknown_0868B284[2] = { 0x58, 0x70 }; const s16 gUnknown_0868B288[2] = { 0x1C, 0x5A }; // TODO: This struct already appeared somewhere else. Merge them! -typedef struct LocalTileInfo { +typedef struct { u32 anim; u32 variant; void *vram; diff --git a/src/game/sa1/ui/multiplayer_continue_screen.c b/src/game/sa1/ui/multiplayer_continue_screen.c index a13366592..19171e01f 100644 --- a/src/game/sa1/ui/multiplayer_continue_screen.c +++ b/src/game/sa1/ui/multiplayer_continue_screen.c @@ -11,7 +11,7 @@ #include "constants/sa1/text.h" -typedef struct ContinueScreen { +typedef struct { Background bg; Sprite sprites[3]; Sprite sprD0; diff --git a/src/game/sa1/ui/sound_test.c b/src/game/sa1/ui/sound_test.c index 4421f8f66..800b39ef0 100644 --- a/src/game/sa1/ui/sound_test.c +++ b/src/game/sa1/ui/sound_test.c @@ -25,7 +25,7 @@ DisplaySprite(s); #endif -typedef struct SoundTestState { +typedef struct { StrcUi_805423C strc0; struct Task *taskC; // SoundTest114 struct Task *task10; // SoundTest114 @@ -41,7 +41,7 @@ typedef struct SoundTestState { u8 unk2C; } SoundTestState; /* 0x30 */ -typedef struct SoundTest114 { +typedef struct { Sprite s; SpriteTransform transform; Sprite s2; diff --git a/src/game/sa1/ui/special_stage_intro.c b/src/game/sa1/ui/special_stage_intro.c index 35c5352ee..ac8cbde4e 100644 --- a/src/game/sa1/ui/special_stage_intro.c +++ b/src/game/sa1/ui/special_stage_intro.c @@ -15,7 +15,7 @@ #define FRAME_RELAY_A 90 #define FRAME_RELAY_B 150 -typedef struct SpecialStageIntro44 { +typedef struct { Sprite s; u32 unk30; s32 qUnk34; @@ -25,7 +25,7 @@ typedef struct SpecialStageIntro44 { } SpecialStageIntro44; // TODO: Integrate SpecialStageIntro44 into this? -typedef struct SpecialStageIntroC4 { +typedef struct { Sprite s; u32 unk30; s32 qUnk34; @@ -37,7 +37,7 @@ typedef struct SpecialStageIntroC4 { } SpecialStageIntroC4; /* 0xC4 */ // TODO: Integrate SpecialStageIntro44 into this? -typedef struct SpecialStageIntro64 { +typedef struct { Sprite s; u32 unk30; s32 qUnk34; @@ -47,7 +47,7 @@ typedef struct SpecialStageIntro64 { s32 unk44[8]; } SpecialStageIntro64; /* 0xC4 */ -typedef struct SpecialStageIntro20 { +typedef struct { StrcUi_805423C strc0; struct Task *taskC; // SpecialStageIntro64 struct Task *task10; // SpecialStageIntro64 @@ -58,7 +58,7 @@ typedef struct SpecialStageIntro20 { s16 unk1E; } SpecialStageIntro20; -typedef struct SpecialStageIntro28 { +typedef struct { StrcUi_805423C strc0; struct Task *taskC; // SpecialStageIntro44 struct Task *task10; // SpecialStageIntro44 diff --git a/src/game/sa1/ui/staff_credits.c b/src/game/sa1/ui/staff_credits.c index 848cf1869..438458380 100644 --- a/src/game/sa1/ui/staff_credits.c +++ b/src/game/sa1/ui/staff_credits.c @@ -25,7 +25,7 @@ const ALIGNED(4) u16 gUnknown_086886A0[12] = { 322, 0, // }; -typedef struct StaffCredits { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ Sprite s2; /* 0x60 */ u8 unk60[8]; @@ -41,7 +41,7 @@ typedef struct StaffCredits { /* 0x7C */ u32 unk7C; } StaffCredits; -typedef struct Credits_18 { +typedef struct { /* 0x00 */ StrcUi_805423C strc; /* 0x0C */ struct Task *task1; // -> (StaffCredits *) /* 0x10 */ struct Task *task2; // -> (StaffCredits *) diff --git a/src/game/sa1/ui/stage_results.c b/src/game/sa1/ui/stage_results.c index eb4e697b2..61ea0f32e 100644 --- a/src/game/sa1/ui/stage_results.c +++ b/src/game/sa1/ui/stage_results.c @@ -17,12 +17,12 @@ #include "constants/sa1/songs.h" #include "constants/sa1/zones.h" -typedef struct VramPtrs { +typedef struct { /* 0x00 */ void *vram0; /* 0x04 */ void *vram4; } VramPtrs; -typedef struct StrcStgResults_34 { +typedef struct { /* 0x00 */ GameOverB unk0; /* 0x18 */ s32 unk18; /* 0x1C */ u16 unk1C; @@ -31,7 +31,7 @@ typedef struct StrcStgResults_34 { /* 0x30 */ s32 unk30; } StrcStgResults_34; /* 0x34 */ -typedef struct StrcStgResults_38 { +typedef struct { /* 0x00 */ u16 unk0; /* 0x02 */ u16 unk2; /* 0x04 */ u16 unk4; diff --git a/src/game/sa1/ui/time_attack_lobby.c b/src/game/sa1/ui/time_attack_lobby.c index f35f0e8c0..370f672bf 100644 --- a/src/game/sa1/ui/time_attack_lobby.c +++ b/src/game/sa1/ui/time_attack_lobby.c @@ -12,7 +12,7 @@ #include "constants/sa1/songs.h" #include "constants/sa1/text.h" -typedef struct TimeAttackLobby { +typedef struct { /* 0x000 */ Sprite sprites[4]; /* 0x0C0 */ Sprite s2; /* 0x0F0 */ Sprite s3; diff --git a/src/game/sa1/ui/time_attack_record.c b/src/game/sa1/ui/time_attack_record.c index 6e11ebd3b..6547ad960 100644 --- a/src/game/sa1/ui/time_attack_record.c +++ b/src/game/sa1/ui/time_attack_record.c @@ -11,7 +11,7 @@ #include "constants/sa1/songs.h" #include "constants/sa1/ui_graphics.h" -typedef struct TimeAttackRecord_58 { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ GameOverB overB; /* 0x48 */ s32 unk48; @@ -23,7 +23,7 @@ typedef struct TimeAttackRecord_58 { /* 0x54 */ u8 unk54; } TimeAttackRecord_58; -typedef struct TimeAttackRecord_E4 { +typedef struct { StrcUi_805423C strc0; Sprite s; Sprite s2; diff --git a/src/game/sa1/ui/time_attack_records.c b/src/game/sa1/ui/time_attack_records.c index 3ea45c4a5..de3eb26ab 100644 --- a/src/game/sa1/ui/time_attack_records.c +++ b/src/game/sa1/ui/time_attack_records.c @@ -17,14 +17,14 @@ /* These are the records appearing after selecting / before starting to play a stage */ -typedef struct CharacterCard { +typedef struct { const u8 *tiles; s32 tilesSize; const u16 *palette; const u8 *layout; } CharacterCard; -typedef struct TimeAttackRecords { +typedef struct { /* 0x00 */ Sprite sprites[3]; /* 0x90 */ Sprite s3; /* 0xC0 */ GameOverB overB; diff --git a/src/game/sa1/ui/time_attack_results.c b/src/game/sa1/ui/time_attack_results.c index 61dc6ab1a..20f120dd3 100644 --- a/src/game/sa1/ui/time_attack_results.c +++ b/src/game/sa1/ui/time_attack_results.c @@ -12,7 +12,7 @@ #include "constants/sa1/animations.h" -typedef struct Game2_5 { +typedef struct { /* 0x00 */ Sprite s; /* 0x30 */ Sprite s2; /* 0x60 */ GameOverB strc60; diff --git a/src/game/sa1/ui/time_over.c b/src/game/sa1/ui/time_over.c index 59a38a387..0fee8d8f8 100644 --- a/src/game/sa1/ui/time_over.c +++ b/src/game/sa1/ui/time_over.c @@ -10,14 +10,14 @@ #include "constants/sa1/animations.h" #include "constants/sa1/zones.h" -typedef struct TimeOverState { +typedef struct { StrcUi_805423C strc0; Sprite s; Sprite s2; s32 timer; } TimeOverState; -typedef struct TimeOverTimer { +typedef struct { struct Task *t; // -> TimeOverState s16 timer; } TimeOverTimer; diff --git a/src/game/sa1/ui/vs_record.c b/src/game/sa1/ui/vs_record.c index 6774c5ad1..64cc3fd9c 100644 --- a/src/game/sa1/ui/vs_record.c +++ b/src/game/sa1/ui/vs_record.c @@ -6,7 +6,7 @@ #include "game/sa1/save.h" #include "game/sa1/stage/stage_ui.h" -typedef struct VsRecord_10 { +typedef struct { s32 unk0; u8 unk4[8]; s8 unkC; @@ -15,7 +15,7 @@ typedef struct VsRecord_10 { u8 unkF; } VsRecord_10; -typedef struct VsRecord_48 { +typedef struct { /* 0x00 */ StrcUi_805423C strc; /* 0x0C */ Sprite s; /* 0x3C */ struct Task *task3C; @@ -23,7 +23,7 @@ typedef struct VsRecord_48 { /* 0x44 */ s32 unk44; } VsRecord_48; -typedef struct VsRecord_F0 { +typedef struct { /* 0x00 */ VsRecord_10 records[10]; /* 0xA0 */ GameOverB unkA0; /* 0xB8 */ Sprite s; diff --git a/src/game/sa2/options_screen.c b/src/game/sa2/options_screen.c index 7a756462d..a8fb6f6f3 100644 --- a/src/game/sa2/options_screen.c +++ b/src/game/sa2/options_screen.c @@ -1250,7 +1250,7 @@ void CreateNewProfileScreen(void) struct Task *t; struct LanguageScreen *languageScreen; - ShuffleRngSeed(); + SHUFFLE_RNG_SEED(); t = TaskCreate(Task_LanguageScreenFadeIn, sizeof(struct LanguageScreen), 0x2000, TASK_x0004, NULL); languageScreen = TASK_DATA(t); @@ -3420,7 +3420,7 @@ static void Task_ProfileNameScreenMain(void) ProfileNameScreenRenderUI(); - ShuffleRngSeed(); + SHUFFLE_RNG_SEED(); // Don't bother continuing if we take input // from any other functions @@ -5812,7 +5812,7 @@ static void Task_LanguageScreenFadeOutAndExit(void) TaskDestroy(gCurTask); } -static void ReseedRng(void) { ShuffleRngSeed(); } +static void ReseedRng(void) { SHUFFLE_RNG_SEED(); } static void LanguageScreenRenderUI(void) { diff --git a/src/game/sa2/stage/backgrounds/zone_1_boss.inc.c b/src/game/sa2/stage/backgrounds/zone_1_boss.inc.c index d8e405769..f8b7cebf1 100644 --- a/src/game/sa2/stage/backgrounds/zone_1_boss.inc.c +++ b/src/game/sa2/stage/backgrounds/zone_1_boss.inc.c @@ -4,7 +4,7 @@ void StageBgUpdate_Zone1ActBoss(UNUSED s32 x, UNUSED s32 y) { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; if (!PLAYER_IS_ALIVE) { gStageTime--; } diff --git a/src/game/shared/stage/amy_attack_heart_effect.c b/src/game/shared/stage/amy_attack_heart_effect.c index c821ca77f..68df1be34 100644 --- a/src/game/shared/stage/amy_attack_heart_effect.c +++ b/src/game/shared/stage/amy_attack_heart_effect.c @@ -196,7 +196,7 @@ static void Task_AmyAttackHeartEffect(void) } for (i = 0; i < ARRAY_COUNT(hearts->sprHearts); i++) { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; if (hearts->animFrames[i].count != 0) { Sprite *s; diff --git a/src/game/shared/stage/camera.c b/src/game/shared/stage/camera.c index 646c3365d..1a0691f71 100644 --- a/src/game/shared/stage/camera.c +++ b/src/game/shared/stage/camera.c @@ -66,13 +66,13 @@ #endif // Probably a array (as it's aligned 16) -struct Backgrounds ALIGNED(16) gStageBackgroundsRam = {}; +StageBackgrounds ALIGNED(16) gStageBackgroundsRam = {}; #ifndef COLLECT_RINGS_ROM UNUSED u32 unused_3005950[3] = {}; #endif -struct Camera ALIGNED(8) gCamera = {}; +Camera ALIGNED(8) gCamera = {}; static void RenderMetatileLayers(s32, s32); void Task_CallUpdateCamera(void); @@ -489,10 +489,10 @@ void InitCamera(u32 level) { u32 txtSize; - struct Backgrounds *bgs; + StageBackgrounds *bgs; const Background *bgTemplates; Player *player = &gPlayer; - struct Camera *camera = &gCamera; + Camera *camera = &gCamera; const s8 *bgDim = sStageBgDimensions[level]; gDispCnt = (DISPCNT_OBJ_ON | DISPCNT_WIN0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_1D_MAP); @@ -697,7 +697,7 @@ void InitCamera(u32 level) void UpdateCamera(void) { Player *player = &gPlayer; - struct Camera *camera = &gCamera; + Camera *camera = &gCamera; s32 newX, newY; #if DEBUG @@ -1131,7 +1131,7 @@ void HBlankCallback_803F92C(int_vcount line) UNUSED void SA2_LABEL(sub_801E3F0)(void) { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; if (gStageTime & 0x1) { cam->shiftY = ((u32)(PseudoRandom32() & 0x70000) >> 16) - 8; diff --git a/src/game/shared/stage/collision_1.c b/src/game/shared/stage/collision_1.c index bf54057b1..121bc8326 100644 --- a/src/game/shared/stage/collision_1.c +++ b/src/game/shared/stage/collision_1.c @@ -373,7 +373,7 @@ NONMATCH("asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc", if (sp40 == 0) { temp_r3_9 = sp3C + ((((worldY + (&sp10[0])[1]) - (&sp8[0])[3]) << 8) - (gPlayer.qWorldY & 0xFFFFFF00)); sp3C = temp_r3_9; - res = sa2__sub_801F100((temp_r3_9 >> 8) - gPlayer.spriteOffsetY, temp_r0_7, layer, -8, sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)((temp_r3_9 >> 8) - gPlayer.spriteOffsetY, temp_r0_7, layer, -8, SA2_LABEL(sub_801EC3C)); if (res < 0) { temp_r1_17 = gPlayer.moveState & ~4; gPlayer.moveState = temp_r1_17; @@ -402,7 +402,7 @@ NONMATCH("asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc", gPlayer.qWorldY = sp3C; } else { sp3C += (Q(worldY + sp10[3] - sp8[3]) - (gPlayer.qWorldY & 0xFFFFFF00)); - res = sa2__sub_801F100((sp3C >> 8) + gPlayer.spriteOffsetY, temp_r0_7, layer, 8, sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)((sp3C >> 8) + gPlayer.spriteOffsetY, temp_r0_7, layer, 8, SA2_LABEL(sub_801EC3C)); if (res < 0) { temp_r1_15 = gPlayer.moveState & ~4; gPlayer.moveState = temp_r1_15; @@ -450,7 +450,7 @@ NONMATCH("asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc", } block_80: if (sp40 == 0) { - res = sa2__sub_801F100(gPlayer.spriteOffsetY + I(gPlayer.qWorldY), temp_r0_7, layer, 8, sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)(gPlayer.spriteOffsetY + I(gPlayer.qWorldY), temp_r0_7, layer, 8, SA2_LABEL(sub_801EC3C)); if (res < 0) { gPlayer.moveState &= ~4; ; @@ -467,7 +467,7 @@ NONMATCH("asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc", } var_r1 = gPlayer.qSpeedAirY - qSpeedY; } else { - res = sa2__sub_801F100(I(gPlayer.qWorldY) - gPlayer.spriteOffsetY, temp_r0_7, layer, -8, sa2__sub_801EC3C); + res = SA2_LABEL(sub_801F100)(I(gPlayer.qWorldY) - gPlayer.spriteOffsetY, temp_r0_7, layer, -8, SA2_LABEL(sub_801EC3C)); if (res < 0) { temp_r1_5 = gPlayer.moveState & ~4; gPlayer.moveState = temp_r1_5; @@ -526,7 +526,8 @@ NONMATCH("asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc", asm(""); } } else if (p->qSpeedAirX != 0) { - res = sa2__sub_801F100(I(sp38), I(gPlayer.qWorldY) + p->spriteOffsetX, layer, -8, sa2__sub_801EB44); + res = SA2_LABEL(sub_801F100)(I(sp38), I(gPlayer.qWorldY) + p->spriteOffsetX, layer, -8, + SA2_LABEL(sub_801EB44)); if (res < 0) { p->moveState &= ~4; temp_r0_16 = &p->character; @@ -618,7 +619,8 @@ NONMATCH("asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc", p->qSpeedAirY = -Q(3.0); } } else if (p->qSpeedAirX != 0) { - res = sa2__sub_801F100(sp38 >> 8, p->spriteOffsetX + I(gPlayer.qWorldY), layer, +8, sa2__sub_801EB44); + res = SA2_LABEL(sub_801F100)(sp38 >> 8, p->spriteOffsetX + I(gPlayer.qWorldY), layer, +8, + SA2_LABEL(sub_801EB44)); if (res < 0) { temp_r1_10 = p->moveState & ~4; p->moveState = temp_r1_10; @@ -690,7 +692,7 @@ NONMATCH("asm/non_matching/game/shared/stage/collision__sa2__sub_800D0A0.inc", if (sp34 == 0) { block_70: - sa2__sub_8021BE0(&gPlayer); + SA2_LABEL(sub_8021BE0)(&gPlayer); gPlayer.qSpeedGround = (u16)gPlayer.qSpeedAirX; gPlayer.rotation = 0; } diff --git a/src/game/shared/stage/dust_effect_spindash.c b/src/game/shared/stage/dust_effect_spindash.c index 62836d88d..175ce81e4 100644 --- a/src/game/shared/stage/dust_effect_spindash.c +++ b/src/game/shared/stage/dust_effect_spindash.c @@ -49,7 +49,7 @@ struct Task *CreateSpindashDustEffect() void Task_SpindashDustEffect(void) { - struct Camera *cam; + Camera *cam; Player *p = &gPlayer; s32 offY; @@ -110,7 +110,7 @@ void Task_SpindashDustEffect(void) void Task_SpindashDustEffectBig(void) { - struct Camera *cam; + Camera *cam; Player *p = &gPlayer; s32 offY; diff --git a/src/game/shared/stage/grind_effect_1.c b/src/game/shared/stage/grind_effect_1.c index fa97a56dc..5e26630e7 100644 --- a/src/game/shared/stage/grind_effect_1.c +++ b/src/game/shared/stage/grind_effect_1.c @@ -62,7 +62,7 @@ void Task_GrindEffect(void) #endif GrindEffect *spark = TASK_DATA(gCurTask); Sprite *s = &spark->s; - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; s->x = I(p->qWorldX) - cam->x; s->y = (I(p->qWorldY) + p->spriteOffsetY) - cam->y; diff --git a/src/game/shared/stage/item_tasks.c b/src/game/shared/stage/item_tasks.c index 70781238d..e32b82f99 100644 --- a/src/game/shared/stage/item_tasks.c +++ b/src/game/shared/stage/item_tasks.c @@ -178,7 +178,7 @@ void Task_Item_Shield_Normal(void) s32 pid2; ItemTask *item = TASK_DATA(gCurTask); - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; Player *p; u32 itemEffect; #if (GAME == GAME_SA1) && !defined(NON_MATCHING) @@ -310,7 +310,7 @@ void Task_Item_Shield_Magnetic(void) s32 pid2; ItemTask *item = TASK_DATA(gCurTask); - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; Player *p; u32 itemEffect; #ifndef NON_MATCHING @@ -383,9 +383,9 @@ UNUSED void Task_802ABC8(void) // I'm not sure why tese were swapped :( #if (GAME == GAME_SA1) Sprite *s = &item->s; - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; #else - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; Sprite *s = &item->s; #endif s16 screenX, screenY; @@ -441,7 +441,7 @@ void Task_Item_Invincibility(void) s32 pid = ITEMTASK_GET_PLAYER_NUM(); ItemTask *item = TASK_DATA(gCurTask); - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; s16 screenX, screenY; u32 priority; bool32 b; @@ -540,7 +540,7 @@ void Task_Item_Confusion(void) Sprite *s = &item->s; u32 b; - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; if (IS_MULTI_PLAYER) { MultiplayerPlayer *mpp = TASK_DATA(gMultiplayerPlayerTasks[param]); diff --git a/src/game/shared/stage/mp_sprite_task.c b/src/game/shared/stage/mp_sprite_task.c index 2f4720ecc..4178d693e 100644 --- a/src/game/shared/stage/mp_sprite_task.c +++ b/src/game/shared/stage/mp_sprite_task.c @@ -117,14 +117,14 @@ void Task_UpdateMpSpriteTaskSprite(void) } { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; s->x = ts->x - cam->x; s->y = ts->y - cam->y; } } break; case 1: { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; #if (GAME == GAME_SA1) s->x = ts->x - cam->SA2_LABEL(unk52); s->y = ts->y - cam->SA2_LABEL(unk54); diff --git a/src/game/shared/stage/player.c b/src/game/shared/stage/player.c index 93d7f4517..91e69cccd 100644 --- a/src/game/shared/stage/player.c +++ b/src/game/shared/stage/player.c @@ -4826,7 +4826,7 @@ void Task_PlayerHandleDeath(void) } } -static inline bool32 DeadPlayerLeftScreen(Player *p, struct Camera *cam, s32 playerY) +static inline bool32 DeadPlayerLeftScreen(Player *p, Camera *cam, s32 playerY) { if (p->moveState & MOVESTATE_80000000) { return FALSE; @@ -4948,7 +4948,7 @@ void Task_PlayerMain(void) #endif if (p->moveState & MOVESTATE_DEAD) { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; gCurTask->main = Task_PlayerDied; p->charState = CHARSTATE_DEAD; p->qSpeedAirX = 0; @@ -6045,7 +6045,7 @@ void SA2_LABEL(sub_8024B10)(Player *p, PlayerSpriteInfo *inPsi) Sprite *s = &inPsi->s; PlayerSpriteInfo *psi = inPsi; - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; s16 camX = cam->x; s16 camY = cam->y; @@ -6497,7 +6497,7 @@ void SA2_LABEL(sub_8024F74)(Player *p, PlayerSpriteInfo *inPsi) Sprite *s = &inPsi->s; PlayerSpriteInfo *psi = inPsi; - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; s16 camX = cam->x; s16 camY = cam->y; @@ -9579,7 +9579,7 @@ void PlayerFn_Cmd_UpdateAirFallSpeed(Player *p) { PLAYERFN_UPDATE_AIR_FALL_SPEED bool32 SA2_LABEL(sub_8029DE8)(Player *p) { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; s32 playerY = p->qWorldY; #ifndef COLLECT_RINGS_ROM @@ -9615,7 +9615,7 @@ bool32 SA2_LABEL(sub_8029DE8)(Player *p) // Might've been an inline func, but doesn't match with it. UNUSED bool32 DeadPlayerLeftScreen_UnusedCopy(Player *p) { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; s32 playerY = p->qWorldY; #ifndef COLLECT_RINGS_ROM diff --git a/src/game/shared/stage/screen_shake.c b/src/game/shared/stage/screen_shake.c index 925adc891..4d50fd12d 100644 --- a/src/game/shared/stage/screen_shake.c +++ b/src/game/shared/stage/screen_shake.c @@ -31,7 +31,7 @@ void Task_ScreenShake(void) TaskDestroy(gCurTask); return; } else { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; if (shake->flags & SCREENSHAKE_RANDOM_VALUE) { factor = ((u32)(PseudoRandom32() << 15) >> 23) - 0xFF; @@ -89,7 +89,7 @@ static void TaskDestructor_ScreenShake(struct Task *t) { ScreenShake *shake = TASK_DATA(t); - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; if (shake->flags & SCREENSHAKE_HORIZONTAL) { cam->shakeOffsetX = 0; diff --git a/src/game/shared/stage/stage.c b/src/game/shared/stage/stage.c index df6940123..422bf672a 100644 --- a/src/game/shared/stage/stage.c +++ b/src/game/shared/stage/stage.c @@ -63,7 +63,7 @@ extern void CreateStageWaterTask(s32 waterLevel, u32 p1, u32 mask); extern struct Task *CreateMultiplayerChao(u8, u8); extern struct Task *sub_80550F8(void); // stage_ui_z.c -typedef struct Struct_sub_80550F8 { +typedef struct { u8 filler0[0x27]; bool8 screenBlank; } Struct_sub_80550F8; /* size: 0x28 */ diff --git a/src/game/shared/stage/underwater_effects.c b/src/game/shared/stage/underwater_effects.c index 0879f5cec..e603f2d4e 100644 --- a/src/game/shared/stage/underwater_effects.c +++ b/src/game/shared/stage/underwater_effects.c @@ -74,7 +74,7 @@ void Task_DrowningCountdown(void) struct Task *SpawnDrowningCountdownNum(Player *p, s32 countdown) { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; struct Task *t = CreateMultiplayerSpriteTask(0, 0, 0, 0, Task_DrowningCountdown, TaskDestructor_MultiplayerSpriteTask); MultiplayerSpriteTask *ts = TASK_DATA(t); Sprite *s; @@ -207,7 +207,7 @@ static void Task_SpawnAirBubbles(void) r1 += SIN((unk10 & 0xFF) * 4) >> 4; { - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; transform->x = I(r1) - cam->x; transform->y = I(r4) - cam->y; } diff --git a/src/game/shared/stage/water_effects.c b/src/game/shared/stage/water_effects.c index a1682bd5e..ce96c3192 100644 --- a/src/game/shared/stage/water_effects.c +++ b/src/game/shared/stage/water_effects.c @@ -218,7 +218,7 @@ void CreateStageWaterTask(s32 waterLevel, u32 p1, u32 mask) static void Task_StageWaterTask(void) { Water *water = &gWater; - struct Camera *cam = &gCamera; + Camera *cam = &gCamera; bool32 active; Sprite *s; diff --git a/src/platform/win32/opengl.c b/src/platform/win32/opengl.c index 4150e1e03..1a1d13735 100644 --- a/src/platform/win32/opengl.c +++ b/src/platform/win32/opengl.c @@ -30,7 +30,7 @@ typedef struct { Color *data; int width, height; } TextureBuffer; -static TextureBuffer sDynTextureBuffer = { 0 }; +TextureBuffer sDynTextureBuffer = { 0 }; // TODO: This can be removed once full 32bit RGBA works static Background *sActiveBackgrounds[4] = { 0 }; @@ -86,28 +86,28 @@ static void TempConvert4bppToRGBA8_DynTextureBuffer(const u8 *bitmap4bpp, int wi } } -typedef struct ChunkTileVertex { +typedef struct { u8 x, y; } ChunkTileVertex; -typedef struct ChunkGfx { +typedef struct { ChunkTileVertex *tileVerts; u8 *rgbaChunks; u16 count; u16 capacity; } ChunkGfx; -static ChunkGfx sChunkGfx = { 0 }; +ChunkGfx sChunkGfx = { 0 }; #define RENDERED_CHUNKS_W ((DISPLAY_WIDTH / 96) + 2) #define RENDERED_CHUNKS_H ((DISPLAY_HEIGHT / 96) + 2) #define RENDERED_CHUNKS (RENDERED_CHUNKS_W * RENDERED_CHUNKS_H) // Set of chunks that have to be drawn this frame -typedef struct ChunkSet { +typedef struct { MetatileIndexType *items; u16 count, capacity; } ChunkSet; -static ChunkSet sChunkSet = { 0 }; +ChunkSet sChunkSet = { 0 }; // TODO: minY should be from upper-left corner, not bottom-left! void OpenGL_RenderRGBABuffer(Color *buffer, u16 bufferWidth, u16 bufferHeight, float minX, float minY, float maxX, float maxY)