More docs and renames, fox_bg now mostly figured out (#220)

* lights fix

* names

* remove header

* so many names

* format
This commit is contained in:
petrie911 2024-04-22 21:51:20 -05:00 committed by GitHub
parent 6bdfd2845f
commit 81291a0c44
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
125 changed files with 3929 additions and 3983 deletions

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_AST_7_TI_1_7000000: D_AST_7_TI_1_7000000:
{ type: TEXTURE, ctype: u8, format: IA8, width: 96, height: 28, offset: 0x07000000, symbol: D_AST_7_TI_1_7000000, tlut: 0x07001108 } { type: TEXTURE, ctype: u8, format: IA8, width: 96, height: 28, offset: 0x07000000, symbol: D_AST_7_TI_1_7000000, tlut: 0x07001108 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_TI2_7003EE8: D_TI2_7003EE8:
{ type: SF64:ANIM, offset: 0x7003EE8, symbol: D_TI2_7003EE8 } { type: SF64:ANIM, offset: 0x7003EE8, symbol: D_TI2_7003EE8 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_TI_8000708: { type: SF64:ANIM, offset: 0x8000708, symbol: D_TI_8000708 } D_TI_8000708: { type: SF64:ANIM, offset: 0x8000708, symbol: D_TI_8000708 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_TI_9004288: D_TI_9004288:
{ type: SF64:ANIM, offset: 0x9004288, symbol: D_TI_9004288 } { type: SF64:ANIM, offset: 0x9004288, symbol: D_TI_9004288 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_TI_A000000: D_TI_A000000:
{type: GFX, offset: 0xA000000, symbol: D_TI_A000000} {type: GFX, offset: 0xA000000, symbol: D_TI_A000000}

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_D000000: D_D000000:
{ type: GFX, offset: 0xD000000, symbol: D_D000000 } { type: GFX, offset: 0xD000000, symbol: D_D000000 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_arwing_3000000: D_arwing_3000000:
{ type: TEXTURE, format: CI4, offset: 0x3000000, width: 16, height: 16, ctype: u8, tlut: 0x3000080, symbol: D_arwing_3000000 } { type: TEXTURE, format: CI4, offset: 0x3000000, width: 16, height: 16, ctype: u8, tlut: 0x3000080, symbol: D_arwing_3000000 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_BG_PLANET_2000000: D_BG_PLANET_2000000:
{ type: GFX, offset: 0x2000000, symbol: D_BG_PLANET_2000000 } { type: GFX, offset: 0x2000000, symbol: D_BG_PLANET_2000000 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_BG_SPACE_2000000: D_BG_SPACE_2000000:
{ type: GFX, offset: 0x2000000, symbol: D_BG_SPACE_2000000 } { type: GFX, offset: 0x2000000, symbol: D_BG_SPACE_2000000 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_blue_marine_3000000: D_blue_marine_3000000:
{ type: TEXTURE, ctype: u8, format: CI4, width: 16, height: 16, offset: 0x3000000, symbol: D_blue_marine_3000000, tlut: 0x3000080 } { type: TEXTURE, ctype: u8, format: CI4, width: 16, height: 16, offset: 0x3000000, symbol: D_blue_marine_3000000, tlut: 0x3000080 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_1000000: D_1000000:
{ type: TEXTURE, format: IA8, width: 64, height: 10, ctype: u8, offset: 0x1000000, symbol: D_1000000 } { type: TEXTURE, format: IA8, width: 64, height: 10, ctype: u8, offset: 0x1000000, symbol: D_1000000 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_END_7000000: { type: GFX, offset: 0x7000000, symbol: D_END_7000000} D_END_7000000: { type: GFX, offset: 0x7000000, symbol: D_END_7000000}

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
ending_award_back: ending_award_back:
{ type: TEXTURE, ctype: u16, format: RGBA16, width: 316, height: 270, offset: 0x8000000, symbol: gEndingAwardBack } { type: TEXTURE, ctype: u16, format: RGBA16, width: 316, height: 270, offset: 0x8000000, symbol: gEndingAwardBack }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
ending_award_front: ending_award_front:
{ type: TEXTURE, ctype: u16, format: RGBA16, width: 316, height: 240, offset: 0x8000000, symbol: gEndingAwardFront } { type: TEXTURE, ctype: u16, format: RGBA16, width: 316, height: 240, offset: 0x8000000, symbol: gEndingAwardFront }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
ending_expert_reward: ending_expert_reward:
{ type: TEXTURE, ctype: u16, format: RGBA16, width: 316, height: 240, offset: 0x8000000, symbol: gEndingExpertReward } { type: TEXTURE, ctype: u16, format: RGBA16, width: 316, height: 240, offset: 0x8000000, symbol: gEndingExpertReward }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
# Seems unused # Seems unused
D_ENMY_PLANET_4000290: D_ENMY_PLANET_4000290:

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_ENMY_SPACE_4000080: D_ENMY_SPACE_4000080:
{ type: SF64:ANIM, offset: 0x4000080, symbol: D_ENMY_SPACE_4000080 } { type: SF64:ANIM, offset: 0x4000080, symbol: D_ENMY_SPACE_4000080 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
# 0 (small) # 0 (small)
D_5000000: D_5000000:

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_FONT3D_9000000: D_FONT3D_9000000:
{ type: GFX, offset: 0x9000000, symbol: D_FONT3D_9000000 } { type: GFX, offset: 0x9000000, symbol: D_FONT3D_9000000 }

View File

@ -11,7 +11,6 @@
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'
- '#include "sf64audio_external.h"' - '#include "sf64audio_external.h"'
- '#include "structs.h"'
# Fortuna # Fortuna
# Former Defense Post # Former Defense Post

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
# Great Fox Model # Great Fox Model
D_GREAT_FOX_E000000: D_GREAT_FOX_E000000:

View File

@ -11,7 +11,6 @@
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'
- '#include "sf64audio_external.h"' - '#include "sf64audio_external.h"'
- '#include "structs.h"'
# Katina # Katina
# Frontline Base # Frontline Base

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_landmaster_3000000: D_landmaster_3000000:
{ type: TEXTURE, format: CI4, offset: 0x3000000, width: 16, height: 16, ctype: u8, tlut: 0x3000080, symbol: D_landmaster_3000000 } { type: TEXTURE, format: CI4, offset: 0x3000000, width: 16, height: 16, ctype: u8, tlut: 0x3000080, symbol: D_landmaster_3000000 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
nintendo_logo: nintendo_logo:
type: TEXTURE type: TEXTURE

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
# Restart Game (Game Over) # Restart Game (Game Over)
D_MAP_6000000: D_MAP_6000000:

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
# Invoice # Invoice
D_OPT_8000000: D_OPT_8000000:

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_STAR_WOLF_F000000: D_STAR_WOLF_F000000:
{ type: TEXTURE, ctype: u16, format: RGBA16, width: 44, height: 44, offset: 0x0F000000, symbol: D_STAR_WOLF_F000000 } { type: TEXTURE, ctype: u16, format: RGBA16, width: 44, height: 44, offset: 0x0F000000, symbol: D_STAR_WOLF_F000000 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
starfox_logo: { type: TEXTURE, ctype: u16, format: RGBA16, width: 236, height: 60, offset: 0x6000000, symbol: gTitleStarfoxLogo } starfox_logo: { type: TEXTURE, ctype: u16, format: RGBA16, width: 236, height: 60, offset: 0x6000000, symbol: gTitleStarfoxLogo }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_VE1_9000000: D_VE1_9000000:
{type: GFX, offset: 0x9000000, symbol: D_VE1_9000000} {type: GFX, offset: 0x9000000, symbol: D_VE1_9000000}

View File

@ -11,7 +11,6 @@
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'
- '#include "sf64audio_external.h"' - '#include "sf64audio_external.h"'
- '#include "structs.h"'
- '#include "sf64mesg.h"' - '#include "sf64mesg.h"'
D_VE1_6000000: D_VE1_6000000:

View File

@ -11,7 +11,6 @@
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'
- '#include "sf64audio_external.h"' - '#include "sf64audio_external.h"'
- '#include "structs.h"'
D_VE2_6000000: D_VE2_6000000:
{ type: TEXTURE, format: IA8, width: 96, height: 28, offset: 0x6000000, ctype: u8, symbol: D_VE2_6000000 } { type: TEXTURE, format: IA8, width: 96, height: 28, offset: 0x6000000, ctype: u8, symbol: D_VE2_6000000 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_VS_MENU_7000000: D_VS_MENU_7000000:
{ type: TEXTURE, ctype: u8, format: IA8, width: 16, height: 13, offset: 0x7000000, symbol: D_VS_MENU_7000000} { type: TEXTURE, ctype: u8, format: IA8, width: 16, height: 13, offset: 0x7000000, symbol: D_VS_MENU_7000000}

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
D_WZ_7000000: D_WZ_7000000:
{ type: GFX, offset: 0x7000000, symbol: D_WZ_7000000 } { type: GFX, offset: 0x7000000, symbol: D_WZ_7000000 }

View File

@ -7,7 +7,6 @@
header: header:
- '#include "gfx.h"' - '#include "gfx.h"'
- '#include "sf64object.h"' - '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"' - '#include "sf64level.h"'
- '#include "sf64event.h"' - '#include "sf64event.h"'
- '#include "sf64player.h"' - '#include "sf64player.h"'

View File

@ -6,8 +6,8 @@
#include "sf64object.h" #include "sf64object.h"
#include "sf64player.h" #include "sf64player.h"
extern s32 gOverlaySetup; extern s32 gSceneId;
extern s32 gOverlayStage; extern s32 gSceneSetup;
extern s32 D_ctx_80177824; // some sort of flag extern s32 D_ctx_80177824; // some sort of flag
extern s32 D_ctx_8017782C; // some sort of flag. all range related? extern s32 D_ctx_8017782C; // some sort of flag. all range related?
extern GameState gGameState; extern GameState gGameState;
@ -22,10 +22,10 @@ extern s32 gPlayerNum;
extern s32 gCamCount; extern s32 gCamCount;
extern s32 gTeamShields[6]; extern s32 gTeamShields[6];
extern s32 gSavedTeamShields[6]; extern s32 gSavedTeamShields[6];
extern UNK_TYPE gPrevPlanetSavedTeamShields[6]; extern s32 gPrevPlanetSavedTeamShields[6];
extern s32 gTeamDamage[6]; extern s32 gTeamDamage[6];
extern u8 gNextPlanetPath; // next planet path extern u8 gNextPlanetPath; // next planet path
extern f32 gGroundLevel; extern f32 gGroundHeight;
extern f32 D_ctx_80177950; extern f32 D_ctx_80177950;
extern f32 D_ctx_80177968; extern f32 D_ctx_80177968;
extern f32 D_ctx_80177970; extern f32 D_ctx_80177970;
@ -43,11 +43,11 @@ extern f32 D_ctx_80177A48[10];
extern s32 gCsFrameCount; extern s32 gCsFrameCount;
extern u8 D_ctx_80177A98; extern u8 D_ctx_80177A98;
extern u8 D_ctx_80177AB0; extern u8 D_ctx_80177AB0;
extern u8 D_ctx_80177AC8; extern u8 gAqDrawMode;
extern s32 D_ctx_80177AE0; extern s32 D_ctx_80177AE0;
extern s32 gMainController; extern s32 gMainController;
extern s32 D_ctx_80177B40; extern s32 D_ctx_80177B40;
extern PlanetId gCurrentPlanet; // D_ctx_80177B48 // Arrow pointer? extern PlanetId gMissionNumber; // D_ctx_80177B48 // Arrow pointer?
extern s32 D_ctx_80177B50[7]; extern s32 D_ctx_80177B50[7];
extern s32 D_ctx_80177B70[7]; extern s32 D_ctx_80177B70[7];
extern PlanetId D_ctx_80177B90[7]; extern PlanetId D_ctx_80177B90[7];
@ -55,7 +55,7 @@ extern s32 D_ctx_80177BB0[7];
extern s32 gPlanetPathStatus[]; // overruns D_ctx_80177C30? extern s32 gPlanetPathStatus[]; // overruns D_ctx_80177C30?
extern s32 gPrevPlanetTeamShields[6]; extern s32 gPrevPlanetTeamShields[6];
extern s32 D_ctx_80177C58[6]; extern s32 D_ctx_80177C58[6];
extern u8 gSoundMode; extern u8 gOptionSoundMode;
extern s32 gVolumeSettings[3]; extern s32 gVolumeSettings[3];
extern u16 gBgmSeqId; extern u16 gBgmSeqId;
extern u8 gLevelType; extern u8 gLevelType;
@ -83,7 +83,7 @@ extern Vec3f D_ctx_80177F10;
extern UNK_TYPE F_80178020; extern UNK_TYPE F_80178020;
extern s32 D_ctx_8017812C; extern s32 D_ctx_8017812C;
extern LevelId gCurrentLevel; extern LevelId gCurrentLevel;
extern s32 gLevelStage; extern s32 gLevelPhase;
extern s32 gBossActive; extern s32 gBossActive;
extern s32 D_ctx_8017828C; extern s32 D_ctx_8017828C;
extern s32 D_ctx_80178294; extern s32 D_ctx_80178294;
@ -112,31 +112,31 @@ extern s32 gFillScreenGreen; // green something
extern s32 gFillScreenBlue; // blue something extern s32 gFillScreenBlue; // blue something
extern s32 gFillScreenAlphaTarget; // alpha target extern s32 gFillScreenAlphaTarget; // alpha target
extern s32 gFillScreenAlphaStep; // alpha step extern s32 gFillScreenAlphaStep; // alpha step
extern s32 D_ctx_80178360; // 2 lights second color extern s32 gLight3R; // 2 lights second color
extern s32 D_ctx_80178364; extern s32 gLight3G;
extern s32 D_ctx_80178368; extern s32 gLight3B;
extern f32 D_ctx_8017836C; // 2 lights second color brightness extern f32 gLight3Brightness; // 2 lights second color brightness
extern f32 D_ctx_80178370; // Vec3f? extern f32 gLight3x; // Vec3f?
extern f32 D_ctx_80178374; extern f32 gLight3y;
extern f32 D_ctx_80178378; extern f32 gLight3z;
extern s32 D_ctx_8017837C; extern s32 gFadeoutType;
extern u32 gPlayerFillScreenAlphas[4]; // player alphas extern u32 gPlayerGlareAlphas[4]; // player alphas
extern s32 gPlayerFillScreenReds[4]; // player reds extern s32 gPlayerGlareReds[4]; // player reds
extern s32 gPlayerFillScreenGreens[4]; // player greens extern s32 gPlayerGlareGreens[4]; // player greens
extern s32 gPlayerFillScreenBlues[4]; // player blues extern s32 gPlayerGlareBlues[4]; // player blues
extern s32 D_ctx_801783C0[4]; extern s32 D_ctx_801783C0[4];
extern f32 D_ctx_801783D0; // something x translate extern f32 gSunViewX; // something x translate
extern f32 D_ctx_801783D4; // something y translate extern f32 gSunViewY; // something y translate
extern s32 gFogNear; //near extern s32 gFogNear; //near
extern s32 gFogFar; //far extern s32 gFogFar; //far
extern UNK_TYPE F_801783E0[12]; extern UNK_TYPE F_801783E0[12];
extern s32 D_ctx_80178410; extern s32 gStarCount;
extern f32 D_ctx_80178414; extern f32 gStarWarpDistortion;
extern f32 D_ctx_80178418; extern f32 D_ctx_80178418;
extern UNK_TYPE F_8017841C; extern UNK_TYPE F_8017841C;
extern f32 D_ctx_80178420; extern f32 gStarfieldX;
extern f32 D_ctx_80178424; extern f32 gStarfieldY;
extern f32 D_ctx_80178428; extern f32 gStarfieldRoll;
extern f32 D_ctx_8017842C; extern f32 D_ctx_8017842C;
extern f32 D_ctx_80178430; extern f32 D_ctx_80178430;
extern UNK_TYPE F_80178434; extern UNK_TYPE F_80178434;
@ -228,7 +228,7 @@ extern s16 gLifeCount[4];
extern LaserStrength gLaserStrength[4]; extern LaserStrength gLaserStrength[4];
extern s32 D_ctx_80161AB8; extern s32 D_ctx_80161AB8;
extern UNK_TYPE F_80161AC0[16]; extern UNK_TYPE F_80161AC0[16];
extern Object_80 gObjects80[50]; extern Scenery gScenery[50];
extern Sprite gSprites[40]; extern Sprite gSprites[40];
extern Actor gActors[60]; extern Actor gActors[60];
extern Boss gBosses[4]; extern Boss gBosses[4];
@ -246,13 +246,13 @@ extern f32 gActor194xRot[2][100];
extern f32 gActor194yRot[2][100]; extern f32 gActor194yRot[2][100];
extern f32 gActor194zRot[2][100]; extern f32 gActor194zRot[2][100];
extern u16 gEnemyShotSpeed; // enemy shot speed? extern u16 gEnemyShotSpeed; // enemy shot speed?
extern u8 D_ctx_80177830; // show level complete status overlay extern u8 gShowLevelClearStatusScreen; // show level complete status overlay
extern s32 gLevelStatusScreenTimer; // level clear related extern s32 gLevelStartStatusScreenTimer; // level clear related
extern s32 gLevelClearScreenTimer; // timer for mission accomplished scrren extern s32 gLevelClearScreenTimer; // timer for mission accomplished scrren
extern s32 gBossHealthBar; extern s32 gBossHealthBar;
extern s32 D_ctx_80177850; // bonus text related. set to 15 but never read extern s32 D_ctx_80177850; // bonus text related. set to 15 but never read
extern s32 D_ctx_80177858[4]; extern s32 D_ctx_80177858[4];
extern s32 D_ctx_80177870[4]; extern s32 gPlayerForms[4];
extern s32 gHandicap[4]; extern s32 gHandicap[4];
extern VsStage gVersusStage; extern VsStage gVersusStage;
extern s32 D_ctx_801778A4; extern s32 D_ctx_801778A4;
@ -279,15 +279,15 @@ extern s32 D_Timer_80177A38[4];
extern s32 D_Timer_80177A70[4]; extern s32 D_Timer_80177A70[4];
extern s32 D_Timer_80177A88[4]; extern s32 D_Timer_80177A88[4];
extern f32 D_ctx_80177AA0[4]; extern f32 D_ctx_80177AA0[4];
extern f32 D_ctx_80177AB8[4]; extern f32 gShieldAlpha[4];
extern s32 D_ctx_80177AD0[4]; extern s32 gHasShield[4];
extern s32 D_ctx_80177AE8[4]; extern s32 gShieldTimer[4];
extern s32 D_ctx_80177B00[4][4]; extern s32 gVsLockOnTimers[4][4];
extern u8 D_Timer_80177B44; extern u8 gStartAndrossFightTimer;
extern u8 D_ctx_80177B4C; extern u8 gSoShieldsEmpty;
extern u8 D_ctx_80177B6C; extern u8 gCoUturnCount;
extern u8 gGreatFoxIntact; extern u8 gGreatFoxIntact;
extern u8 D_ctx_80177BAC; extern u8 gTiStartLandmaster;
extern u16 gControllerRumbleTimers[4]; extern u16 gControllerRumbleTimers[4];
extern u16 D_ctx_80177C30[4]; extern u16 D_ctx_80177C30[4];
extern s32 D_ctx_80177C50; extern s32 D_ctx_80177C50;
@ -321,11 +321,11 @@ extern f32 D_ctx_80178028[65];
extern f32 D_ctx_80178130[65]; extern f32 D_ctx_80178130[65];
extern u8 D_ctx_80178238[65]; extern u8 D_ctx_80178238[65];
extern Player* gPlayer; extern Player* gPlayer;
extern f32* D_ctx_80178288; extern f32* gStarOffsetsX;
extern f32* D_ctx_80178290; extern f32* gStarOffsetsY;
extern u32* D_ctx_80178298; extern u32* gStarFillColors;
extern UNK_TYPE F_801782A0; extern UNK_TYPE F_801782A0;
extern Object_58* gObjects58; extern Scenery360* gScenery360;
extern UNK_TYPE F_801782B0; extern UNK_TYPE F_801782B0;
extern s32 D_ctx_801782B8; extern s32 D_ctx_801782B8;
extern s32 D_ctx_801782BC; extern s32 D_ctx_801782BC;

View File

@ -57,7 +57,7 @@ typedef struct {
} UnkStruct_D_menu_801B9250; } UnkStruct_D_menu_801B9250;
typedef enum OptionId { typedef enum OptionId {
OPTION_MAIN = 1000, OPTION_MAIN_MENU = 1000,
OPTION_VERSUS_STAGE = 2000, OPTION_VERSUS_STAGE = 2000,
OPTION_MAP = 0, OPTION_MAP = 0,
OPTION_TRAINING = 1, OPTION_TRAINING = 1,
@ -81,7 +81,7 @@ extern u8* D_menu_801B68B0[];
extern u8* D_menu_801B68D4[]; extern u8* D_menu_801B68D4[];
extern s32 D_menu_801B8220[]; // total hits ranking? see Option_80197DE4 extern s32 D_menu_801B8220[]; // total hits ranking? see Option_80197DE4
extern s32 D_menu_801B827C; extern s32 D_menu_801B827C; // engine
extern s32 D_menu_801B8280; extern s32 D_menu_801B8280;
extern s32 D_menu_801B8284; extern s32 D_menu_801B8284;
extern s32 D_menu_801B8288; extern s32 D_menu_801B8288;
@ -97,7 +97,7 @@ extern u8 D_menu_801C6C10[96 * 96];
extern u8 D_menu_801C9010[96 * 96]; extern u8 D_menu_801C9010[96 * 96];
extern u8 D_menu_801CB410[96 * 96]; extern u8 D_menu_801CB410[96 * 96];
void Title_801877F0(void); void Title_UpdateEntry(void);
s32 Title_80187ABC(void); s32 Title_80187ABC(void);
void Title_80187B00(void); void Title_80187B00(void);
void Title_80187E28(void); void Title_80187E28(void);
@ -219,7 +219,7 @@ void Option_8019DF64(void);
void Option_InvoiceUpdate(void); void Option_InvoiceUpdate(void);
void Option_InvoiceDraw(void); void Option_InvoiceDraw(void);
void Map_8019E8D0(void); void Map_Main(void);
void Map_801A07E8(u8*, u8*, f32*); void Map_801A07E8(u8*, u8*, f32*);
void Map_801AD7EC(s32, s32, s32); void Map_801AD7EC(s32, s32, s32);
void Map_801A9FD4(s32); void Map_801A9FD4(s32);

View File

@ -2,7 +2,6 @@
#define FUNCTIONS_H #define FUNCTIONS_H
#include "sys.h" #include "sys.h"
#include "structs.h"
#include "sf64object.h" #include "sf64object.h"
#include "sf64player.h" #include "sf64player.h"
#include "sf64mesg.h" #include "sf64mesg.h"
@ -42,13 +41,13 @@ void PlayerShot_Update(void);
void PlayerShot_Draw(void); void PlayerShot_Draw(void);
// fox_bg // fox_bg
void func_bg_8003DAF0(void); void Background_DrawStarfield(void);
void func_bg_8003DE68(s32, s32); void Background_DrawPartialStarfield(s32, s32);
void func_bg_8003E1E8(void); void Background_DrawBackdrop(void);
void func_bg_80040450(void); void Background_DrawSun(void);
void func_bg_80040954(void); void Background_DrawLensFlare(void);
void func_bg_80040CDC(void); void func_bg_80040CDC(void);
void func_bg_80040CE4(void); void Background_DrawGround(void);
void func_bg_80042D38(void); void func_bg_80042D38(void);
// fox_boss // fox_boss
@ -94,8 +93,8 @@ void func_display_80057814(Player*);
void Play_Draw(void); void Play_Draw(void);
// fox_edata // fox_edata
void func_edata_800594F0(Object_80*); void func_edata_800594F0(Scenery*);
void func_edata_800595D0(Object_80*); void func_edata_800595D0(Scenery*);
void func_edisplay_800596C0(void); void func_edisplay_800596C0(void);
void func_edata_800596B0(Actor*); void func_edata_800596B0(Actor*);
@ -104,14 +103,14 @@ void Graphics_SetScaleMtx(f32);
void Sprite168_Draw(Sprite*); void Sprite168_Draw(Sprite*);
void Actor201_Draw(Actor*); void Actor201_Draw(Actor*);
void Actor202_Draw(Actor*); void Actor202_Draw(Actor*);
void Obj39_Draw(Object_80*); void Obj39_Draw(Scenery*);
void func_edisplay_80059B20(Object_80*); void func_edisplay_80059B20(Scenery*);
void Obj42_Draw(Object_80*); void Obj42_Draw(Scenery*);
void Actor196_Draw(Actor*); void Actor196_Draw(Actor*);
void Sprite167_Draw(Sprite*); void Sprite167_Draw(Sprite*);
void FogShadow_Draw(Sprite*); void FogShadow_Draw(Sprite*);
void func_edisplay_80059F68(Object_80*); void func_edisplay_80059F68(Scenery*);
void func_edisplay_80059FDC(Object_80*); void func_edisplay_80059FDC(Scenery*);
void Actor189_Draw(Actor*); void Actor189_Draw(Actor*);
void Actor_DrawEngineAndContrails(Actor*); void Actor_DrawEngineAndContrails(Actor*);
void Actor_DrawEngineGlow(Actor*, s32); void Actor_DrawEngineGlow(Actor*, s32);
@ -133,7 +132,7 @@ void Object_ClampSfxSource(f32*);
void func_edisplay_8005F0E8(f32*, Vec3f*); void func_edisplay_8005F0E8(f32*, Vec3f*);
void func_edisplay_8005F1EC(f32*); void func_edisplay_8005F1EC(f32*);
void func_edisplay_8005F290(f32*, Vec3f*); void func_edisplay_8005F290(f32*, Vec3f*);
void func_edisplay_8005F670(Vec3f*); void Display_SetSecondLight(Vec3f*);
bool func_edisplay_8005F9DC(Vec3f*); bool func_edisplay_8005F9DC(Vec3f*);
// fox_enmy // fox_enmy
@ -145,7 +144,7 @@ void func_enmy_80060F30(f32* , u32 , s32 );
void Object_Kill(Object*, f32*); void Object_Kill(Object*, f32*);
bool func_enmy_80060FE4(Vec3f*, f32); bool func_enmy_80060FE4(Vec3f*, f32);
void Object_SetInfo(ObjectInfo* info, u32 objId); void Object_SetInfo(ObjectInfo* info, u32 objId);
void Object_80_Initialize(Object_80*); void Scenery_Initialize(Scenery*);
void Sprite_Initialize(Sprite*); void Sprite_Initialize(Sprite*);
void Actor_Initialize(Actor*); void Actor_Initialize(Actor*);
void Boss_Initialize(Boss*); void Boss_Initialize(Boss*);
@ -163,7 +162,7 @@ bool Object_CheckHitboxCollision(Vec3f* pos, f32* hitboxData, Object* obj, f32 x
bool Object_CheckSingleHitbox(Vec3f*, f32*, Vec3f*); bool Object_CheckSingleHitbox(Vec3f*, f32*, Vec3f*);
bool Object_CheckPolyCollision(Vec3f* , Vec3f* , ObjectId , Object* ); bool Object_CheckPolyCollision(Vec3f* , Vec3f* , ObjectId , Object* );
s32 Object_CheckCollision(s32 , Vec3f* , Vec3f* , s32 ); s32 Object_CheckCollision(s32 , Vec3f* , Vec3f* , s32 );
void func_enmy_800652CC(Object_80*); void func_enmy_800652CC(Scenery*);
void func_enmy_800654E4(Object*); void func_enmy_800654E4(Object*);
void func_enmy_800656D4(Actor*); void func_enmy_800656D4(Actor*);
void func_enmy_800660F0(Actor*); void func_enmy_800660F0(Actor*);
@ -172,10 +171,10 @@ void func_enmy_8006654C(Actor*);
void func_enmy_8006684C(Actor*); void func_enmy_8006684C(Actor*);
void func_enmy_800669A0(Actor*); void func_enmy_800669A0(Actor*);
void func_enmy_80066A80(Actor*); void func_enmy_80066A80(Actor*);
void func_enmy_80066C00(Object_80*); void func_enmy_80066C00(Scenery*);
void func_enmy_80066D5C(Object_80*); void func_enmy_80066D5C(Scenery*);
void Sprite167_Update(Sprite*); void Sprite167_Update(Sprite*);
void func_enmy_80066EA8(Object_80*); void func_enmy_80066EA8(Scenery*);
void func_enmy_80066EF0(Item*); void func_enmy_80066EF0(Item*);
void func_enmy_800671D0(Item*); void func_enmy_800671D0(Item*);
void func_enmy_800674B4(f32, f32, f32, f32, f32, f32, f32, f32); void func_enmy_800674B4(f32, f32, f32, f32, f32, f32, f32, f32);
@ -198,12 +197,12 @@ void Object_Dying(s32, ObjectId);
void Effect_Move(Effect*); void Effect_Move(Effect*);
void Actor_Move(Actor*); void Actor_Move(Actor*);
void Boss_Move(Boss*); void Boss_Move(Boss*);
void Object80_Move(Object_80*); void Scenery_Move(Scenery*);
void Sprite_Move(Sprite*); void Sprite_Move(Sprite*);
void Item_Move(Item*); void Item_Move(Item*);
void Actor_Update(Actor*); void Actor_Update(Actor*);
void Boss_Update(Boss*); void Boss_Update(Boss*);
void Object_80_Update(Object_80*); void Scenery_Update(Scenery*);
void Sprite_Update(Sprite*); void Sprite_Update(Sprite*);
void Item_Update(Item*); void Item_Update(Item*);
void Effect_Update(Effect*); void Effect_Update(Effect*);
@ -214,16 +213,16 @@ void Object_Update(void);
//fox_enmy2 //fox_enmy2
void Actor237_Update(Actor*); void Actor237_Update(Actor*);
void Actor237_Draw(Actor*); void Actor237_Draw(Actor*);
void Obj54_Update(Object_80*); void Obj54_Update(Scenery*);
void Actor201_Update(Actor*); void Actor201_Update(Actor*);
void Actor202_Update(Actor*); void Actor202_Update(Actor*);
void Actor194_Update(Actor*); void Actor194_Update(Actor*);
void Actor194_Init(Actor*); void Actor194_Init(Actor*);
void Actor194_Draw(Actor*); void Actor194_Draw(Actor*);
void Obj42_Update(Object_80*); void Obj42_Update(Scenery*);
void Actor196_Update(Actor*); void Actor196_Update(Actor*);
void Actor189_Update(Actor*); void Actor189_Update(Actor*);
void Obj39_Update(Object_80*); void Obj39_Update(Scenery*);
void func_enmy2_8006ECBC(PlayerShotId, PlayerShot*, s32, f32, f32, f32, f32, f32, f32, f32, f32, f32); void func_enmy2_8006ECBC(PlayerShotId, PlayerShot*, s32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
void func_enmy2_8006EEFC(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32); void func_enmy2_8006EEFC(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
void func_enmy2_8006EFA0(s32 unk0E4, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 xRot, f32 yRot, void func_enmy2_8006EFA0(s32 unk0E4, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 xRot, f32 yRot,
@ -231,7 +230,7 @@ void func_enmy2_8006EFA0(s32 unk0E4, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32
void ActorEvent_8006F0D8(f32 xPos, f32 yPos, f32 zPos, f32 scale1); void ActorEvent_8006F0D8(f32 xPos, f32 yPos, f32 zPos, f32 scale1);
void ActorEvent_8006F254(Actor*); void ActorEvent_8006F254(Actor*);
void ActorEvent_Update(Actor*); void ActorEvent_Update(Actor*);
s32 Obj111_Draw(Object_80*); s32 Obj111_Draw(Scenery*);
void ActorEvent_Draw(Actor*); void ActorEvent_Draw(Actor*);
void func_enmy2_800763A4(Actor*); void func_enmy2_800763A4(Actor*);
void ActorEvent_Dying(Actor*); void ActorEvent_Dying(Actor*);
@ -419,11 +418,11 @@ bool func_hud_800924E0(Actor*);
void ActorTeamBoss_Init(Actor*); void ActorTeamBoss_Init(Actor*);
void ActorTeamBoss_Update(Actor* this); void ActorTeamBoss_Update(Actor* this);
void func_hud_80093164(Actor*); void func_hud_80093164(Actor*);
void func_hud_800935E8(Player*); void HUD_AquasStart(Player*);
void func_hud_800953A0(Actor*, s32); void func_hud_800953A0(Actor*, s32);
void func_hud_8009546C(Actor*, s32); void func_hud_8009546C(Actor*, s32);
void func_hud_80095538(Actor*, s32); void func_hud_80095538(Actor*, s32);
void func_hud_80095604(Player*); void HUD_AquasComplete(Player*);
void func_hud_80094954(Effect*); void func_hud_80094954(Effect*);
void func_hud_80094BBC(Effect*); void func_hud_80094BBC(Effect*);
void func_hud_80094D20(f32, f32); void func_hud_80094D20(f32, f32);
@ -446,10 +445,10 @@ bool Play_CheckMedalStatus(u16);
void func_play_800A3FB0(void); void func_play_800A3FB0(void);
s32 Play_GetMaxShields(void); s32 Play_GetMaxShields(void);
void func_play_800A6028(f32*, u32); void func_play_800A6028(f32*, u32);
void func_play_800AC290(Player* player, PlayerShot* shot, f32 arg2, f32 arg3, PlayerShotId shotId, f32 arg5); void func_play_800AC290(Player* player, PlayerShot* shot, f32 arg2, f32 arg3, PlayerShotId shotId, f32 speed);
void Play_Setup(void); void Play_Setup(void);
void func_play_800A594C(void); void func_play_800A594C(void);
void func_play_800A5D6C(void); void Play_SetupStarfield(void);
void func_play_800A5EBC(void); void func_play_800A5EBC(void);
void func_play_800A5FA0(f32* , u32 , s32 ); void func_play_800A5FA0(f32* , u32 , s32 );
void func_play_800A6070(f32* , u32 ); void func_play_800A6070(f32* , u32 );
@ -491,22 +490,20 @@ void func_play_800A887C(Player* player);
s32 func_play_800A7974(Player* player, f32* hitboxData, s32* index, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, s32 func_play_800A7974(Player* player, f32* hitboxData, s32* index, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot,
f32 zRot, f32 arg9, f32 argA, f32 argB); f32 zRot, f32 arg9, f32 argA, f32 argB);
bool func_play_800A8054(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, Vec3f* arg7, Vec3f* arg8); bool func_play_800A8054(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, Vec3f* arg7, Vec3f* arg8);
void Object_58_Initialize(Object_58*); void Scenery360_Initialize(Scenery360*);
// fox_versus // fox_versus
s32 func_versus_800C1E9C(void); s32 func_versus_800C1E9C(void);
void func_versus_800C1ED4(void); void func_versus_800C1ED4(void);
void func_versus_800C20B0(void); void Versus_StartMatch(void);
void func_versus_800C2190(void); void func_versus_800C2190(void);
void func_versus_800C26C8(void); void func_versus_800C26C8(void);
void OvlMenu_CallFunction(u32, void*); void OvlMenu_CallFunction(u32, void*);
void Map_8019E8D0(void); void Map_Main(void);
void Venom1_80198414(void); void Ending_Main(void);
void Ending_Draw(void);
void Ending_8018A96C(void);
void Ending_8018AAC4(void);
// sf_i5_5 // sf_i5_5
bool Ground_801B49D0(Actor* actor); bool Ground_801B49D0(Actor* actor);

View File

@ -27,7 +27,6 @@ typedef enum OverlayCalls {
#include "functions.h" #include "functions.h"
#include "variables.h" #include "variables.h"
#include "context.h" #include "context.h"
#include "structs.h"
#include "sf64mesg.h" #include "sf64mesg.h"
#include "assets/ast_radio.h" #include "assets/ast_radio.h"
#include "sf64object.h" #include "sf64object.h"

View File

@ -2,7 +2,6 @@
#define I1_H #define I1_H
#include "libc/stdbool.h" #include "libc/stdbool.h"
#include "structs.h"
#include "sf64object.h" #include "sf64object.h"
#include "sf64thread.h" #include "sf64thread.h"
#include "sf64player.h" #include "sf64player.h"
@ -11,9 +10,9 @@
extern Gfx* D_VE1_8019A008[]; extern Gfx* D_VE1_8019A008[];
extern f32 D_VE1_8019A9B8[]; extern f32 D_VE1_8019A9B8[];
extern void Corneria_8018F880(Player*); extern void Corneria_LevelStart(Player*);
extern void Corneria_80191160(Player*); extern void Corneria_LevelComplete1(Player*);
extern void Venom1_801988B8(Player*); extern void Venom1_LevelStart(Player*);
void Corneria_801875A4(Sprite*); void Corneria_801875A4(Sprite*);
void Corneria_80189058(Boss*); void Corneria_80189058(Boss*);
@ -34,8 +33,8 @@ void Corneria_8018ECAC(Boss*);
void Corneria_8018ED78(Boss*); void Corneria_8018ED78(Boss*);
void Corneria_8018EE84(Boss*); void Corneria_8018EE84(Boss*);
void Corneria_8018EF90(Boss*); void Corneria_8018EF90(Boss*);
void Corneria_8018F044(Object_80*); void Corneria_8018F044(Scenery*);
void Corneria_8018F31C(Object_80*); void Corneria_8018F31C(Scenery*);
void Venom1_BossTrigger1_Update(Sprite*); void Venom1_BossTrigger1_Update(Sprite*);
void Venom1_BossTrigger2_Update(Sprite*); void Venom1_BossTrigger2_Update(Sprite*);
void Venom1_BossTrigger3_Update(Sprite*); void Venom1_BossTrigger3_Update(Sprite*);
@ -46,19 +45,19 @@ void Venom1_80192E2C(Actor*);
void Venom1_80192EB0(Actor*); void Venom1_80192EB0(Actor*);
void Venom1_801933DC(Actor*); void Venom1_801933DC(Actor*);
void Venom1_801934D0(Actor*); void Venom1_801934D0(Actor*);
void Venom1_80193540(Object_80*); void Venom1_80193540(Scenery*);
void Venom1_80194398(Boss*); void Venom1_80194398(Boss*);
void Venom1_801985E4(Boss*); void Venom1_801985E4(Boss*);
void Training_ItemRing_Update(Item*); void Training_ItemRing_Update(Item*);
void OvlI1_CallFunction(s32, void*); void OvlI1_CallFunction(s32, void*);
void Corneria_80187530(Object_80*); void Corneria_80187530(Scenery*);
void Corneria_8018753C(Object_80*); void Corneria_8018753C(Scenery*);
void Corneria_Boss292_Init(Boss *); void Corneria_Boss292_Init(Boss *);
void Corneria_8018B0B4(Actor *); void Corneria_8018B0B4(Actor *);
void Corneria_Boss293_Init(Boss *); void Corneria_Boss293_Init(Boss *);
void Corneria_8018ED78(Boss*); void Corneria_8018ED78(Boss*);
void Venom1_801924A8(Object_80* ); void Venom1_801924A8(Scenery* );
void Venom1_8019250C(Actor *); void Venom1_8019250C(Actor *);
void Venom1_80192CB0(Actor *); void Venom1_80192CB0(Actor *);
void Venom1_80192EA4(Actor *); void Venom1_80192EA4(Actor *);

View File

@ -2,17 +2,16 @@
#define I2_H #define I2_H
#include "libc/stdbool.h" #include "libc/stdbool.h"
#include "structs.h"
#include "sf64object.h" #include "sf64object.h"
#include "sf64thread.h" #include "sf64thread.h"
#include "sf64player.h" #include "sf64player.h"
#include "sf64mesg.h" #include "sf64mesg.h"
void Meteo_8018CD8C(Player*); void Meteo_LevelStart(Player*);
void Meteo_8018E084(Player*); void Meteo_LevelComplete(Player*);
void Meteo_8018ED9C(Actor*); void Meteo_8018ED9C(Actor*);
void SectorX_80193A30(Player*); void SectorX_LevelStart(Player*);
void SectorX_80194728(Player*); void SectorX_LevelComplete(Player*);
void OvlI2_CallFunction(s32, void*); void OvlI2_CallFunction(s32, void*);
void Meteo_80187B08(Actor *); void Meteo_80187B08(Actor *);

View File

@ -2,7 +2,6 @@
#define I3_H #define I3_H
#include "libc/stdbool.h" #include "libc/stdbool.h"
#include "structs.h"
#include "sf64object.h" #include "sf64object.h"
#include "sf64thread.h" #include "sf64thread.h"
#include "sf64player.h" #include "sf64player.h"
@ -22,8 +21,8 @@ void OvlI3_CallFunction(s32, void*);
void Area6_BossA6_Init(Boss *); void Area6_BossA6_Init(Boss *);
void Area6_80187944(Boss*); void Area6_80187944(Boss*);
void Area6_8018C54C(Boss*); void Area6_8018C54C(Boss*);
void Area6_8018DF74(Player *player); void Area6_LevelStart(Player *player);
void Area6_8018ED78(Player*); void Area6_LevelComplete(Player*);
void Zoness_801900FC(Vec3f*, Vec3f*, f32, f32, f32, s32, f32, s32, s32); void Zoness_801900FC(Vec3f*, Vec3f*, f32, f32, f32, s32, f32, s32, s32);
void Zoness_80190430(Actor* actor); void Zoness_80190430(Actor* actor);
@ -72,8 +71,8 @@ void Zoness_8019CE58(Actor* actor);
void Zoness_Actor247_Init(Actor* this); void Zoness_Actor247_Init(Actor* this);
void Zoness_8019D15C(Actor* actor); void Zoness_8019D15C(Actor* actor);
void Zoness_8019D3C4(Actor* actor); void Zoness_8019D3C4(Actor* actor);
void Zoness_8019D428(Player* player); void Zoness_LevelStart(Player* player);
void Zoness_8019D76C(Player* player); void Zoness_LevelComplete(Player* player);
void Solar_8019E8B8(f32, f32, f32, f32); void Solar_8019E8B8(f32, f32, f32, f32);
void Solar_8019E9F4(f32, f32, f32, f32, f32, f32, f32, s32); void Solar_8019E9F4(f32, f32, f32, f32, f32, f32, f32, s32);
@ -83,11 +82,11 @@ void Solar_8019F7AC(Actor*);
void Solar_801A003C(Actor*); void Solar_801A003C(Actor*);
void Solar_801A0120(Effect*); void Solar_801A0120(Effect*);
void Solar_801A0AF0(Effect*); void Solar_801A0AF0(Effect*);
void Solar_801A10F4(Player* player); void Solar_LevelStart(Player* player);
void Solar_801A5B3C(Boss*); void Solar_801A5B3C(Boss*);
void Solar_801A71B8(Boss*); void Solar_801A71B8(Boss*);
void Solar_801A8BE8(Actor*); void Solar_801A8BE8(Actor*);
void Solar_801A7930(Player* player); void Solar_LevelComplete(Player* player);
void Aquas_801A9824(void); void Aquas_801A9824(void);
void Aquas_801AA20C(void); void Aquas_801AA20C(void);
@ -142,7 +141,7 @@ void Aquas_801BD264(Actor*);
void Aquas_801BD54C(Actor*); void Aquas_801BD54C(Actor*);
void Aquas_801BDE6C(Actor*); void Aquas_801BDE6C(Actor*);
void Aquas_801BDF14(void); void Aquas_801BDF14(void);
void Aquas_801BE1FC(Object_80*); void Aquas_801BE1FC(Scenery*);
void Aquas_801BE3F8(Actor*); void Aquas_801BE3F8(Actor*);
void Aquas_801BEB1C(Actor*); void Aquas_801BEB1C(Actor*);
void Aquas_801BEC50(Boss*); void Aquas_801BEC50(Boss*);

View File

@ -2,7 +2,6 @@
#define I4_H #define I4_H
#include "libc/stdbool.h" #include "libc/stdbool.h"
#include "structs.h"
#include "sf64object.h" #include "sf64object.h"
#include "sf64thread.h" #include "sf64thread.h"
#include "sf64player.h" #include "sf64player.h"
@ -11,21 +10,21 @@
extern s32 D_BO_801A03DC; extern s32 D_BO_801A03DC;
extern Matrix D_BO_8019EE80; extern Matrix D_BO_8019EE80;
void Bolse_8018EF6C(Player*); void Bolse_LevelStart(Player*);
void Bolse_8018F94C(Player*); void Bolse_LevelComplete(Player*);
void Katina_80192E20(Player*); void Katina_LevelStart(Player*);
void Katina_80197290(Player*); void Katina_LevelComplete(Player*);
void Katina_80197F10(Actor*); void Katina_80197F10(Actor*);
void SectorZ_8019BA64(Player*); void SectorZ_LevelStart(Player*);
void SectorZ_8019C85C(Player*); void SectorZ_LevelComplete(Player*);
void SectorZ_8019DD20(Actor*); void SectorZ_8019DD20(Actor*);
void OvlI4_CallFunction(u32, void*); void OvlI4_CallFunction(u32, void*);
void Fortuna_80187960(Actor*); void Fortuna_80187960(Actor*);
void Fortuna_8018BA2C(void); void Fortuna_8018BA2C(void);
void Bolse_8018C158(Actor*); void Bolse_UpdateEventHandler(Actor*);
void Bolse_80191ED8(void); void Bolse_80191ED8(void);
void Bolse_80192264(void); void Bolse_DrawDynamicGround(void);
void Katina_Boss316_Init(Boss *); void Katina_Boss316_Init(Boss *);
void Katina_80198594(Actor*); void Katina_80198594(Actor*);
void Katina_80198930(void); void Katina_80198930(void);

View File

@ -2,7 +2,6 @@
#define I5_H #define I5_H
#include "libc/stdbool.h" #include "libc/stdbool.h"
#include "structs.h"
#include "sf64object.h" #include "sf64object.h"
#include "sf64thread.h" #include "sf64thread.h"
#include "sf64player.h" #include "sf64player.h"
@ -17,15 +16,15 @@ extern u8 D_MA_801BA1E8;
extern f32 D_MA_801BE250[40]; extern f32 D_MA_801BE250[40];
extern s16 D_MA_801BE2F0[9]; extern s16 D_MA_801BE2F0[9];
void Titania_8018769C(Player*); void Titania_LevelStart(Player*);
void Titania_801882CC(Player*); void Titania_LevelComplete(Player*);
void Macbeth_801AC754(Player*); void Macbeth_LevelStart(Player*);
void Macbeth_801AF8F4(Player*); void Macbeth_LevelComplete2(Player*);
void Macbeth_801B28BC(Actor*); void Macbeth_801B28BC(Actor*);
void Macbeth_801B3D04(Player*); void Macbeth_LevelComplete1(Player*);
void OvlI5_CallFunction(u32 mode, void* ptr); void OvlI5_CallFunction(u32 mode, void* ptr);
void Titania_8018769C(Player *); void Titania_LevelStart(Player *);
void Titania_80188F30(void); void Titania_80188F30(void);
void Titania_80189B80(Actor *); void Titania_80189B80(Actor *);
void Titania_8018ADC4(Actor *); void Titania_8018ADC4(Actor *);
@ -36,7 +35,7 @@ void Titania_8018E3B0(Actor *);
void Titania_8018E3CC(Actor *); void Titania_8018E3CC(Actor *);
void Titania_8018E5E8(Actor *); void Titania_8018E5E8(Actor *);
void Titania_8018EFF0(Sprite *); void Titania_8018EFF0(Sprite *);
void Titania_8018F0D8(Object_80 *); void Titania_8018F0D8(Scenery *);
void Titania_Boss306_Init(Boss *); void Titania_Boss306_Init(Boss *);
void Titania_801990DC(Boss *); void Titania_801990DC(Boss *);
void Macbeth_80199920(void); void Macbeth_80199920(void);
@ -46,7 +45,7 @@ void Macbeth_801A4660(Actor *);
void Macbeth_801A4AF8(Actor *); void Macbeth_801A4AF8(Actor *);
void Macbeth_801A5E2C(Actor *); void Macbeth_801A5E2C(Actor *);
void Macbeth_801A6134(Actor *); void Macbeth_801A6134(Actor *);
void Macbeth_801A65E0(Object_80 *); void Macbeth_801A65E0(Scenery *);
void Macbeth_801A7D98(Actor *); void Macbeth_801A7D98(Actor *);
void Macbeth_801ACFBC(void); void Macbeth_801ACFBC(void);
void Macbeth_801AD080(void); void Macbeth_801AD080(void);
@ -81,8 +80,8 @@ void Titania_8018E5B4(Actor*);
void Titania_8018E5F8(Actor*); void Titania_8018E5F8(Actor*);
void Titania_8018EF14(Actor*); void Titania_8018EF14(Actor*);
void Titania_Cactus_Update(Sprite*); void Titania_Cactus_Update(Sprite*);
void Titania_8018F4D8(Object_80*); void Titania_8018F4D8(Scenery*);
void Titania_8018F8B8(Object_80*); void Titania_8018F8B8(Scenery*);
void Titania_80197A94(Boss*); void Titania_80197A94(Boss*);
void Titania_801982A8(Boss*); void Titania_801982A8(Boss*);
void Macbeth_8019C778(Actor*); void Macbeth_8019C778(Actor*);
@ -92,13 +91,13 @@ void Macbeth_8019E410(Actor*);
void Macbeth_8019EA60(Actor*); void Macbeth_8019EA60(Actor*);
void Macbeth_8019EE68(Actor*); void Macbeth_8019EE68(Actor*);
void Macbeth_8019FF9C(Actor*); void Macbeth_8019FF9C(Actor*);
void Macbeth_801A0BD8(Object_80*); void Macbeth_801A0BD8(Scenery*);
void Macbeth_801A12C4(Actor*); void Macbeth_801A12C4(Actor*);
void Macbeth_801A23AC(Object_80*); void Macbeth_801A23AC(Scenery*);
void Macbeth_801A2A78(Object_80*); void Macbeth_801A2A78(Scenery*);
void Macbeth_801A2B24(Object_80*); void Macbeth_801A2B24(Scenery*);
void Macbeth_801A2DD8(Object_80*); void Macbeth_801A2DD8(Scenery*);
void Macbeth_801A3240(Object_80*); void Macbeth_801A3240(Scenery*);
void Macbeth_801A3E98(Actor*); void Macbeth_801A3E98(Actor*);
void Macbeth_801A43BC(Actor*); void Macbeth_801A43BC(Actor*);
void Macbeth_801A46A0(Actor*); void Macbeth_801A46A0(Actor*);
@ -115,7 +114,7 @@ void Macbeth_801A5FD0(Actor*);
void Macbeth_801A6100(Actor*); void Macbeth_801A6100(Actor*);
void Macbeth_801A6144(Actor*); void Macbeth_801A6144(Actor*);
void Macbeth_801A6540(Actor*); void Macbeth_801A6540(Actor*);
void Macbeth_801A6608(Object_80*); void Macbeth_801A6608(Scenery*);
void Macbeth_801A67C8(Actor*); void Macbeth_801A67C8(Actor*);
void Macbeth_801A68EC(Actor*); void Macbeth_801A68EC(Actor*);
void Macbeth_801A7E7C(Actor*); void Macbeth_801A7E7C(Actor*);

View File

@ -2,7 +2,6 @@
#define I6_H #define I6_H
#include "libc/stdbool.h" #include "libc/stdbool.h"
#include "structs.h"
#include "sf64object.h" #include "sf64object.h"
#include "sf64thread.h" #include "sf64thread.h"
#include "sf64player.h" #include "sf64player.h"
@ -17,9 +16,9 @@ extern f32 D_Andross_801A7F78;
void Andross_80187530(Actor*); void Andross_80187530(Actor*);
void Andross_80193C4C(Player*); void Andross_80193C4C(Player*);
void Andross_80195E44(Actor*); void Andross_80195E44(Actor*);
void Venom2_80196BF8(Player*); void Venom2_LevelStart(Player*);
void Venom2_80196D88(Player*); void Venom2_LevelComplete(Player*);
void SectorY_8019EE60(Player*); void SectorY_LevelComplete(Player*);
void SectorY_8019FF00(Actor*); void SectorY_8019FF00(Actor*);
void SectorY_801A0AC0(Player*); void SectorY_801A0AC0(Player*);
@ -57,17 +56,17 @@ void Andross_8018DBF0(Boss*);
void Andross_801928C8(Boss*); void Andross_801928C8(Boss*);
void Andross_80192E94(Actor*); void Andross_80192E94(Actor*);
void Andross_80193244(Actor*); void Andross_80193244(Actor*);
void Andross_80193380(Object_80*); void Andross_80193380(Scenery*);
void Andross_8019350C(Object_80*); void Andross_8019350C(Scenery*);
void Andross_8019356C(Object_80*); void Andross_8019356C(Scenery*);
void Andross_801935D4(Object_80*); void Andross_801935D4(Scenery*);
void Venom2_80196210(Boss*); void Venom2_80196210(Boss*);
void Venom2_80196288(Boss*); void Venom2_80196288(Boss*);
void SectorY_80197C64(Effect*); void SectorY_80197C64(Effect*);
void SectorY_80197CB8(Object_80*); void SectorY_80197CB8(Scenery*);
void SectorY_8019C888(Boss*); void SectorY_8019C888(Boss*);
void SectorY_8019E2C4(Boss*); void SectorY_8019E2C4(Boss*);
void SectorY_801A4E44(Object_80*); void SectorY_801A4E44(Scenery*);
void SectorY_801A52B8(Object_80*); void SectorY_801A52B8(Scenery*);
#endif #endif

View File

@ -5,11 +5,11 @@
// struct Dummy0 {int x;}; // struct Dummy0 {int x;};
// struct Dummy1 {int x;}; // struct Dummy1 {int x;};
// struct Dummy2 {int x;}; // struct Dummy2 {int x;};
// struct Dummy3 {int x;}; struct Dummy3 {int x;};
// struct Dummy4 {int x;}; struct Dummy4 {int x;};
// struct Dummy5 {int x;}; struct Dummy5 {int x;};
// struct Dummy6 {int x;}; struct Dummy6 {int x;};
// struct Dummy7 {int x;}; struct Dummy7 {int x;};
struct Dummy8 {int x;}; struct Dummy8 {int x;};
struct Dummy9 {int x;}; struct Dummy9 {int x;};
struct Dummy10 {int x;}; struct Dummy10 {int x;};

View File

@ -9,6 +9,12 @@
#define AUDIO_SET_SPEC(sfxLayout, spec) Audio_SetAudioSpec(0, ((sfxLayout) << 8) | (spec)) #define AUDIO_SET_SPEC(sfxLayout, spec) Audio_SetAudioSpec(0, ((sfxLayout) << 8) | (spec))
#define AUDIO_SET_SPEC_ALT(sfxLayout, spec) Audio_SetAudioSpec((sfxLayout), ((sfxLayout) << 8) | (spec)) #define AUDIO_SET_SPEC_ALT(sfxLayout, spec) Audio_SetAudioSpec((sfxLayout), ((sfxLayout) << 8) | (spec))
typedef enum AudioType {
/* 0 */ AUDIO_TYPE_MUSIC,
/* 1 */ AUDIO_TYPE_VOICE,
/* 2 */ AUDIO_TYPE_SFX,
} AudioType;
typedef enum { typedef enum {
/* 0 */ SFXCHAN_0, /* 0 */ SFXCHAN_0,
/* 1 */ SFXCHAN_1, /* 1 */ SFXCHAN_1,
@ -147,7 +153,7 @@ s32 Audio_GetCurrentVoice(void);
s32 Audio_GetCurrentVoiceStatus(void); s32 Audio_GetCurrentVoiceStatus(void);
void func_8001AF40(u8 unkVoiceParam); void func_8001AF40(u8 unkVoiceParam);
u8* Audio_UpdateFrequencyAnalysis(void); u8* Audio_UpdateFrequencyAnalysis(void);
void func_8001C8B8(u8 playerId); void Audio_StartPlayerNoise(u8 playerId);
void func_8001CA24(u8 playerId); void func_8001CA24(u8 playerId);
void func_8001CB80(u8 playerId, u8 arg1); void func_8001CB80(u8 playerId, u8 arg1);
void func_8001CCDC(u8 playerId, f32* sfxSource); void func_8001CCDC(u8 playerId, f32* sfxSource);
@ -168,7 +174,7 @@ void Audio_PlayFanfare(u16 seqId, u8 bgmVolume, u8 bgmFadeoutTime, u8 bgmFadeinT
void func_8001D520(void); void func_8001D520(void);
void func_8001D638(u8 arg0); void func_8001D638(u8 arg0);
void func_8001D6DC(u8 arg0); void func_8001D6DC(u8 arg0);
void func_8001D8A8(u8 audioType, u8 volume); void Audio_SetVolume(u8 audioType, u8 volume);
void Audio_PlaySoundTest(u8 enable); void Audio_PlaySoundTest(u8 enable);
void Audio_PlaySequenceDistorted(u8 seqPlayId, u16 seqId, u16 distortion, u8 fadeinTime, u8 unused); void Audio_PlaySequenceDistorted(u8 seqPlayId, u16 seqId, u16 distortion, u8 fadeinTime, u8 unused);
void Audio_PlaySoundTestTrack(u8 trackNumber); void Audio_PlaySoundTestTrack(u8 trackNumber);

View File

@ -64,8 +64,8 @@
#define SEGMENT_BSS_END(segment) (segment ## _BSS_END) #define SEGMENT_BSS_END(segment) (segment ## _BSS_END)
#define SEGMENT_BSS_SIZE(segment) ((uintptr_t)SEGMENT_BSS_END(segment) - (uintptr_t)SEGMENT_BSS_START(segment)) #define SEGMENT_BSS_SIZE(segment) ((uintptr_t)SEGMENT_BSS_END(segment) - (uintptr_t)SEGMENT_BSS_START(segment))
u8 Overlay_Load(u8, u8); u8 Load_SceneSetup(u8 sceneId, u8 sceneSetup);
void Overlay_InitDma(void); void Load_InitDmaAndMsg(void);
typedef struct { typedef struct {
/* 0x0 */ void* start; /* 0x0 */ void* start;
@ -82,7 +82,7 @@ typedef struct {
typedef struct { typedef struct {
/* 0x00 */ OverlayOffsets ovl; /* 0x00 */ OverlayOffsets ovl;
/* 0x20 */ SegmentOffset assets[15]; /* 0x20 */ SegmentOffset assets[15];
} OverlayInit; // size = 0x98 } Scene; // size = 0x98
typedef struct { typedef struct {
/* 0x0 */ void* vRomAddress; /* 0x0 */ void* vRomAddress;
@ -92,35 +92,6 @@ typedef struct {
extern DmaEntry gDmaTable[]; // 178A70 extern DmaEntry gDmaTable[]; // 178A70
extern OverlayInit sNoOvl_Logo[1]; // sets segment 15 with no overlay
extern OverlayInit sOvlending_Ending[6]; // overlay EF0260
extern OverlayInit sOvlmenu_Title[1]; // EBFBE0
extern OverlayInit sOvlmenu_Option[1]; // EBFBE0
extern OverlayInit sOvlmenu_Map[1]; // EBFBE0
extern OverlayInit sOvlmenu_GameOver[1]; // EBFBE0
extern OverlayInit sOvli1_Corneria[1]; // fox_i1
extern OverlayInit sOvli2_Meteo[2]; // fox_i2
extern OverlayInit sOvli5_Titania[6]; // E6A810
extern OverlayInit sOvli2_SectorX[2]; // fox_i2
extern OverlayInit sOvli4_SectorZ[1]; // i4
extern OverlayInit sOvli3_Aquas[1]; // i3
extern OverlayInit sOvli3_Area6[1]; // i3
extern OverlayInit sOvli4_Fortuna[2]; // i4
extern OverlayInit sOvli3_Unk4[1]; // i3
extern OverlayInit sOvli6_SectorY[1]; // E9F1D0
extern OverlayInit sOvli3_Solar[1]; // i3
extern OverlayInit sOvli3_Zoness[1]; // i3
extern OverlayInit sOvli1_Venom1[1]; // fox_i1
extern OverlayInit sOvli6_Andross[1]; // E9F1D0
extern OverlayInit sOvli6_Venom2[2]; // E9F1D0
extern OverlayInit sOvli2_Setup20[1]; // fox_i2
extern OverlayInit sOvli4_Bolse[1]; // i4
extern OverlayInit sOvli4_Katina[1]; // i4
extern OverlayInit sOvli5_Macbeth[2]; // E6A810
extern OverlayInit sOvli1_Training[1]; // fox_i1
extern OverlayInit sOvli2_Versus[2]; // fox_i2
extern OverlayInit sUnused_Overlay[1]; // EFFA40
DECLARE_SEGMENT(makerom); DECLARE_SEGMENT(makerom);
DECLARE_SEGMENT(main); DECLARE_SEGMENT(main);
DECLARE_SEGMENT(dma_table); DECLARE_SEGMENT(dma_table);

View File

@ -1,8 +1,6 @@
#ifndef SF64_LEVEL #ifndef SF64_LEVEL
#define SF64_LEVEL #define SF64_LEVEL
#include "structs.h"
#define SAVE_SLOT_SOLAR 13 #define SAVE_SLOT_SOLAR 13
#define SAVE_SLOT_VENOM_1 14 #define SAVE_SLOT_VENOM_1 14
#define SAVE_SLOT_VENOM_2 15 #define SAVE_SLOT_VENOM_2 15
@ -33,35 +31,35 @@ typedef struct {
/* 0x40 */ s32 ambB; /* 0x40 */ s32 ambB;
} EnvSettings; // size = 0x44 } EnvSettings; // size = 0x44
typedef enum { typedef enum SceneId {
/* 0 */ OVL_SETUP_TITLE, /* 0 */ SCENE_TITLE,
/* 1 */ OVL_SETUP_MENU, /* 1 */ SCENE_MENU,
/* 2 */ OVL_SETUP_MAP, /* 2 */ SCENE_MAP,
/* 3 */ OVL_SETUP_GAME_OVER, /* 3 */ SCENE_GAME_OVER,
/* 4 */ OVL_SETUP_CREDITS, /* 4 */ SCENE_CREDITS,
/* 5 */ OVL_SETUP_CORNERIA, /* 5 */ SCENE_CORNERIA,
/* 6 */ OVL_SETUP_METEO, /* 6 */ SCENE_METEO,
/* 7 */ OVL_SETUP_TITANIA, /* 7 */ SCENE_TITANIA,
/* 8 */ OVL_SETUP_SECTOR_X, /* 8 */ SCENE_SECTOR_X,
/* 9 */ OVL_SETUP_AQUAS, /* 9 */ SCENE_AQUAS,
/* 10 */ OVL_SETUP_AREA_6, /* 10 */ SCENE_AREA_6,
/* 11 */ OVL_SETUP_FORTUNA, /* 11 */ SCENE_FORTUNA,
/* 12 */ OVL_SETUP_UNK_4, /* 12 */ SCENE_UNK_4,
/* 13 */ OVL_SETUP_SECTOR_Y, /* 13 */ SCENE_SECTOR_Y,
/* 14 */ OVL_SETUP_SOLAR, /* 14 */ SCENE_SOLAR,
/* 15 */ OVL_SETUP_ZONESS, /* 15 */ SCENE_ZONESS,
/* 16 */ OVL_SETUP_VENOM_ANDROSS, /* 16 */ SCENE_VENOM_ANDROSS,
/* 17 */ OVL_SETUP_TRAINING, /* 17 */ SCENE_TRAINING,
/* 18 */ OVL_SETUP_VENOM_1, /* 18 */ SCENE_VENOM_1,
/* 19 */ OVL_SETUP_KATINA, /* 19 */ SCENE_KATINA,
/* 10 */ OVL_SETUP_20, /* 10 */ SCENE_20,
/* 11 */ OVL_SETUP_MACBETH, /* 11 */ SCENE_MACBETH,
/* 12 */ OVL_SETUP_BOLSE, /* 12 */ SCENE_BOLSE,
/* 13 */ OVL_SETUP_SECTOR_Z, /* 13 */ SCENE_SECTOR_Z,
/* 14 */ OVL_SETUP_VENOM_2, /* 14 */ SCENE_VENOM_2,
/* 50 */ OVL_SETUP_VERSUS = 50, /* 50 */ SCENE_VERSUS = 50,
/* 99 */ OVL_SETUP_LOGO = 99, /* 99 */ SCENE_LOGO = 99,
} OverlaySetups; } SceneId;
typedef enum LevelId { typedef enum LevelId {
/* -1 */ LEVEL_UNK_M1 = -1, /* -1 */ LEVEL_UNK_M1 = -1,

View File

@ -23,6 +23,11 @@ typedef struct {
/* 0x0C */ Vec3f rot; /* 0x0C */ Vec3f rot;
} PosRot; // size = 0x18 } PosRot; // size = 0x18
typedef struct {
/* 0x00 */ Vec3f eye;
/* 0x0C */ Vec3f at;
} CameraPoint; // size = 0x18
typedef struct { typedef struct {
/* 0x0 */ s16 vtx[3]; /* 0x0 */ s16 vtx[3];
} Triangle; // size = 0x6 } Triangle; // size = 0x6

View File

@ -42,12 +42,12 @@ typedef struct {
typedef enum { typedef enum {
/* 0 */ COL1_0, // OBJ_ACTOR_180 /* 0 */ COL1_0, // OBJ_ACTOR_180
/* 1 */ COL1_1, // OBJ_80_39 /* 1 */ COL1_1, // OBJ_SCENERY_39
/* 2 */ COL1_2, /* 2 */ COL1_2,
/* 3 */ COL1_3, // ACTOR_EVENT_ID /* 3 */ COL1_3, // ACTOR_EVENT_ID
/* 4 */ COL1_4, // OBJ_BOSS_308 /* 4 */ COL1_4, // OBJ_BOSS_308
/* 5 */ COL1_5, // OBJ_80_149 /* 5 */ COL1_5, // OBJ_SCENERY_149
/* 6 */ COL1_6, // OBJ_80_150 /* 6 */ COL1_6, // OBJ_SCENERY_150
/* 7 */ COL1_7, // OBJ_BOSS_309 /* 7 */ COL1_7, // OBJ_BOSS_309
/* 8 */ COL1_8, // OBJ_BOSS_313 /* 8 */ COL1_8, // OBJ_BOSS_313
/* 9 */ COL1_9, // OBJ_BOSS_312 /* 9 */ COL1_9, // OBJ_BOSS_312
@ -55,24 +55,24 @@ typedef enum {
typedef enum { typedef enum {
/* 0 */ COL2_0, // default /* 0 */ COL2_0, // default
/* 1 */ COL2_1, // OBJ_80_4, OBJ_80_5 /* 1 */ COL2_1, // OBJ_SCENERY_4, OBJ_SCENERY_5
/* 2 */ COL2_2, // OBJ_80_2 /* 2 */ COL2_2, // OBJ_SCENERY_2
/* 3 */ COL2_3, // OBJ_80_3, OBJ_80_69 /* 3 */ COL2_3, // OBJ_SCENERY_3, OBJ_SCENERY_69
/* 4 */ COL2_4, // OBJ_80_140 /* 4 */ COL2_4, // OBJ_SCENERY_140
/* 5 */ COL2_5, // PLAYERSHOT_7 ? /* 5 */ COL2_5, // PLAYERSHOT_7 ?
/* 6 */ COL2_6, // OBJ_80_141 /* 6 */ COL2_6, // OBJ_SCENERY_141
/* 7 */ COL2_7, // OBJ_80_47 /* 7 */ COL2_7, // OBJ_SCENERY_47
/* 8 */ COL2_8, // OBJ_80_70 /* 8 */ COL2_8, // OBJ_SCENERY_70
/* 9 */ COL2_9, // OBJ_80_72 /* 9 */ COL2_9, // OBJ_SCENERY_72
/* 10 */ COL2_10, // OBJ_80_71 /* 10 */ COL2_10, // OBJ_SCENERY_71
/* 11 */ COL2_11, // OBJ_80_73 /* 11 */ COL2_11, // OBJ_SCENERY_73
/* 12 */ COL2_12, // OBJ_80_67 /* 12 */ COL2_12, // OBJ_SCENERY_67
/* 13 */ COL2_13, // OBJ_80_74 /* 13 */ COL2_13, // OBJ_SCENERY_74
/* 14 */ COL2_14, // OBJ_80_117 /* 14 */ COL2_14, // OBJ_SCENERY_117
/* 15 */ COL2_15, // OBJ_80_124 /* 15 */ COL2_15, // OBJ_SCENERY_124
/* 16 */ COL2_16, // OBJ_80_126 /* 16 */ COL2_16, // OBJ_SCENERY_126
/* 17 */ COL2_17, // OBJ_80_143 /* 17 */ COL2_17, // OBJ_SCENERY_143
/* 18 */ COL2_18, // OBJ_80_120 /* 18 */ COL2_18, // OBJ_SCENERY_120
} CollisionId_2; } CollisionId_2;
typedef struct { typedef struct {
@ -85,18 +85,39 @@ typedef struct {
} ObjectInit; // size = 0x14 } ObjectInit; // size = 0x14
typedef struct { typedef struct {
/* 0x00 */ Gfx* dList; /* 0x00 */ u8 status;
/* 0x04 */ f32* hitbox; /* 0x02 */ u16 type;
/* 0x08 */ f32 scale; /* 0x04 */ Vec3f pos;
/* 0x0C */ f32 info_unk_10;
/* 0x10 */ f32 unk_10; /* 0x10 */ f32 unk_10;
/* 0x14 */ u8 info_unk_16; /* 0x14 */ char pad14[0x14];
/* 0x15 */ u8 info_unk_14; } RadarMark; // size = 0x28
/* 0x16 */ u8 sfx;
/* 0x17 */ u8 info_unk_19; typedef struct {
/* 0x18 */ f32 info_unk_1C; /* 0x00 */ u8 mode;
/* 0x1C */ u8 bonus; /* 0x02 */ u16 timer;
} UnkStruct_D003C; // size = 0x20 /* 0x04 */ Vec3f unk_04;
/* 0x10 */ Vec3f unk_10;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ f32 unk_28;
/* 0x2C */ u8 unk_2C; // possibly a color struct
/* 0x2D */ u8 unk_2D;
/* 0x2E */ u8 unk_2E;
/* 0x2F */ u8 unk_2F;
} TexturedLine; // size = 0x30
typedef struct {
/* 0x00 */ u8 hits;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x14 */ char pad14[0x4];
/* 0x18 */ u16 timer;
} BonusText; // size = 0x1C
#define BONUS_TEXT_FREE 0
#define BONUS_TEXT_GREAT 100
#define BONUS_TEXT_1UP 101
typedef enum ObjectStatus { typedef enum ObjectStatus {
/* 0 */ OBJ_FREE, /* 0 */ OBJ_FREE,
@ -127,8 +148,8 @@ typedef struct {
/* 0x16 */ s16 unk_16; // can be 0, 1, 2 /* 0x16 */ s16 unk_16; // can be 0, 1, 2
/* 0x18 */ u8 damage; /* 0x18 */ u8 damage;
/* 0x19 */ u8 unk_19; // can be 0, 1, 2 /* 0x19 */ u8 unk_19; // can be 0, 1, 2
/* 0x1C */ f32 unk_1C; // y offset of something /* 0x1C */ f32 unk_1C; // target lock y offset. 0.0f can't be targeted
/* 0x20 */ u8 bonus; /* 0x20 */ u8 bonus; // bonus hits when killed. 0 means no
} ObjectInfo; // size = 0x24 } ObjectInfo; // size = 0x24
typedef struct { typedef struct {
@ -138,7 +159,7 @@ typedef struct {
/* 0x41 */ char unk_41[7]; /* 0x41 */ char unk_41[7];
/* 0x48 */ f32 sfxSource[3]; /* 0x48 */ f32 sfxSource[3];
/* 0x54 */ f32 unk_54; /* 0x54 */ f32 unk_54;
} Object_58; // size = 0x58 } Scenery360; // size = 0x58
typedef struct { typedef struct {
/* 0x00 */ Object obj; /* 0x00 */ Object obj;
@ -155,7 +176,7 @@ typedef struct {
/* 0x64 */ Vec3f vel; /* 0x64 */ Vec3f vel;
/* 0x70 */ f32 sfxSource[3]; /* 0x70 */ f32 sfxSource[3];
/* 0x7C */ char pad7C[4]; /* 0x7C */ char pad7C[4];
} Object_80; // size = 0x80 } Scenery; // size = 0x80
typedef struct { typedef struct {
/* 0x00 */ Object obj; /* 0x00 */ Object obj;
@ -268,13 +289,13 @@ typedef struct {
/* 0x0C6 */ u16 timer_0C6; /* 0x0C6 */ u16 timer_0C6;
/* 0x0C8 */ u8 unk_0C8; /* 0x0C8 */ u8 unk_0C8;
/* 0x0C9 */ u8 unk_0C9; /* 0x0C9 */ u8 unk_0C9;
/* 0x0CA */ u8 timer_0CA[4]; /* 0x0CA */ u8 lockOnTimers[4];
/* 0x0CE */ s16 health; /* 0x0CE */ s16 health;
/* 0x0D0 */ s8 unk_0D0; /* 0x0D0 */ s8 unk_0D0;
/* 0x0D2 */ s16 unk_0D2; /* 0x0D2 */ s16 unk_0D2;
/* 0x0D4 */ s16 unk_0D4; /* 0x0D4 */ s16 unk_0D4;
/* 0x0D6 */ u16 damage; /* 0x0D6 */ u16 damage;
/* 0x0D8 */ Vec3f unk_0D8; /* 0x0D8 */ Vec3f hitPos;
/* 0x0E4 */ s16 aiType; /* 0x0E4 */ s16 aiType;
/* 0x0E6 */ s16 aiIndex; /* 0x0E6 */ s16 aiIndex;
/* 0x0E8 */ Vec3f vel; /* 0x0E8 */ Vec3f vel;
@ -288,167 +309,167 @@ typedef struct {
typedef enum ObjectId { typedef enum ObjectId {
/* -1 */ OBJ_INVALID=-1, /* -1 */ OBJ_INVALID=-1,
/* 0 */ OBJ_80_0, /* 0 */ OBJ_SCENERY_0,
/* 1 */ OBJ_80_1, /* 1 */ OBJ_SCENERY_1,
/* 2 */ OBJ_80_2, /* 2 */ OBJ_SCENERY_2,
/* 3 */ OBJ_80_3, /* 3 */ OBJ_SCENERY_3,
/* 4 */ OBJ_80_4, /* 4 */ OBJ_SCENERY_4,
/* 5 */ OBJ_80_5, /* 5 */ OBJ_SCENERY_5,
/* 6 */ OBJ_80_6, /* 6 */ OBJ_SCENERY_6,
/* 7 */ OBJ_80_7, /* 7 */ OBJ_SCENERY_7,
/* 8 */ OBJ_80_8, /* 8 */ OBJ_SCENERY_8,
/* 9 */ OBJ_80_9, /* 9 */ OBJ_SCENERY_9,
/* 10 */ OBJ_80_10, /* 10 */ OBJ_SCENERY_10,
/* 11 */ OBJ_80_11, /* 11 */ OBJ_SCENERY_11,
/* 12 */ OBJ_80_12, /* 12 */ OBJ_SCENERY_12,
/* 13 */ OBJ_80_13, /* 13 */ OBJ_SCENERY_13,
/* 14 */ OBJ_80_14, /* 14 */ OBJ_SCENERY_14,
/* 15 */ OBJ_80_15, /* 15 */ OBJ_SCENERY_15,
/* 16 */ OBJ_80_16, /* 16 */ OBJ_SCENERY_16,
/* 17 */ OBJ_80_17, /* 17 */ OBJ_SCENERY_17,
/* 18 */ OBJ_80_18, /* 18 */ OBJ_SCENERY_18,
/* 19 */ OBJ_80_19, /* 19 */ OBJ_SCENERY_19,
/* 20 */ OBJ_80_20, /* 20 */ OBJ_SCENERY_20,
/* 21 */ OBJ_80_21, /* 21 */ OBJ_SCENERY_21,
/* 22 */ OBJ_80_22, /* 22 */ OBJ_SCENERY_22,
/* 23 */ OBJ_80_23, /* 23 */ OBJ_SCENERY_23,
/* 24 */ OBJ_80_24, /* 24 */ OBJ_SCENERY_24,
/* 25 */ OBJ_80_25, /* 25 */ OBJ_SCENERY_25,
/* 26 */ OBJ_80_26, /* 26 */ OBJ_SCENERY_26,
/* 27 */ OBJ_80_27, /* 27 */ OBJ_SCENERY_27,
/* 28 */ OBJ_80_28, /* 28 */ OBJ_SCENERY_28,
/* 29 */ OBJ_80_29, /* 29 */ OBJ_SCENERY_29,
/* 30 */ OBJ_80_30, /* 30 */ OBJ_SCENERY_30,
/* 31 */ OBJ_80_31, /* 31 */ OBJ_SCENERY_31,
/* 32 */ OBJ_80_32, /* 32 */ OBJ_SCENERY_32,
/* 33 */ OBJ_80_33, /* 33 */ OBJ_SCENERY_33,
/* 34 */ OBJ_80_34, /* 34 */ OBJ_SCENERY_34,
/* 35 */ OBJ_80_35, /* 35 */ OBJ_SCENERY_35,
/* 36 */ OBJ_80_36, /* 36 */ OBJ_SCENERY_36,
/* 37 */ OBJ_80_37, /* 37 */ OBJ_SCENERY_37,
/* 38 */ OBJ_80_38, /* 38 */ OBJ_SCENERY_38,
/* 39 */ OBJ_80_39, /* 39 */ OBJ_SCENERY_39,
/* 40 */ OBJ_80_40, /* 40 */ OBJ_SCENERY_40,
/* 41 */ OBJ_80_41, /* 41 */ OBJ_SCENERY_41,
/* 42 */ OBJ_80_42, /* 42 */ OBJ_SCENERY_42,
/* 43 */ OBJ_80_43, /* 43 */ OBJ_SCENERY_43,
/* 44 */ OBJ_80_44, /* 44 */ OBJ_SCENERY_44,
/* 45 */ OBJ_80_45, /* 45 */ OBJ_SCENERY_45,
/* 46 */ OBJ_80_46, /* 46 */ OBJ_SCENERY_46,
/* 47 */ OBJ_80_47, /* 47 */ OBJ_SCENERY_47,
/* 48 */ OBJ_80_48, /* 48 */ OBJ_SCENERY_48,
/* 49 */ OBJ_80_49, /* 49 */ OBJ_SCENERY_49,
/* 50 */ OBJ_80_50, /* 50 */ OBJ_SCENERY_50,
/* 51 */ OBJ_80_51, /* 51 */ OBJ_SCENERY_51,
/* 52 */ OBJ_80_52, /* 52 */ OBJ_SCENERY_52,
/* 53 */ OBJ_80_53, /* 53 */ OBJ_SCENERY_53,
/* 54 */ OBJ_80_54, /* 54 */ OBJ_SCENERY_54,
/* 55 */ OBJ_80_55, /* 55 */ OBJ_SCENERY_55,
/* 56 */ OBJ_80_56, /* 56 */ OBJ_SCENERY_56,
/* 57 */ OBJ_80_57, /* 57 */ OBJ_SCENERY_57,
/* 58 */ OBJ_80_58, /* 58 */ OBJ_SCENERY_58,
/* 59 */ OBJ_80_59, /* 59 */ OBJ_SCENERY_59,
/* 60 */ OBJ_80_60, /* 60 */ OBJ_SCENERY_60,
/* 61 */ OBJ_80_61, /* 61 */ OBJ_SCENERY_61,
/* 62 */ OBJ_80_62, /* 62 */ OBJ_SCENERY_62,
/* 63 */ OBJ_80_63, /* 63 */ OBJ_SCENERY_63,
/* 64 */ OBJ_80_64, /* 64 */ OBJ_SCENERY_64,
/* 65 */ OBJ_80_65, /* 65 */ OBJ_SCENERY_65,
/* 66 */ OBJ_80_66, /* 66 */ OBJ_SCENERY_66,
/* 67 */ OBJ_80_67, /* 67 */ OBJ_SCENERY_67,
/* 68 */ OBJ_80_68, /* 68 */ OBJ_SCENERY_68,
/* 69 */ OBJ_80_69, /* 69 */ OBJ_SCENERY_69,
/* 70 */ OBJ_80_70, /* 70 */ OBJ_SCENERY_70,
/* 71 */ OBJ_80_71, /* 71 */ OBJ_SCENERY_71,
/* 72 */ OBJ_80_72, /* 72 */ OBJ_SCENERY_72,
/* 73 */ OBJ_80_73, /* 73 */ OBJ_SCENERY_73,
/* 74 */ OBJ_80_74, /* 74 */ OBJ_SCENERY_74,
/* 75 */ OBJ_80_75, /* 75 */ OBJ_SCENERY_75,
/* 76 */ OBJ_80_76, /* 76 */ OBJ_SCENERY_76,
/* 77 */ OBJ_80_77, /* 77 */ OBJ_SCENERY_77,
/* 78 */ OBJ_80_78, /* 78 */ OBJ_SCENERY_78,
/* 79 */ OBJ_80_79, /* 79 */ OBJ_SCENERY_79,
/* 80 */ OBJ_80_80, /* 80 */ OBJ_SCENERY_80,
/* 81 */ OBJ_80_81, /* 81 */ OBJ_SCENERY_81,
/* 82 */ OBJ_80_82, /* 82 */ OBJ_SCENERY_82,
/* 83 */ OBJ_80_83, /* 83 */ OBJ_SCENERY_83,
/* 84 */ OBJ_80_84, /* 84 */ OBJ_SCENERY_84,
/* 85 */ OBJ_80_85, /* 85 */ OBJ_SCENERY_85,
/* 86 */ OBJ_80_86, /* 86 */ OBJ_SCENERY_86,
/* 87 */ OBJ_80_87, /* 87 */ OBJ_SCENERY_87,
/* 88 */ OBJ_80_88, /* 88 */ OBJ_SCENERY_88,
/* 89 */ OBJ_80_89, /* 89 */ OBJ_SCENERY_89,
/* 90 */ OBJ_80_90, /* 90 */ OBJ_SCENERY_90,
/* 91 */ OBJ_80_91, /* 91 */ OBJ_SCENERY_91,
/* 92 */ OBJ_80_92, /* 92 */ OBJ_SCENERY_92,
/* 93 */ OBJ_80_93, /* 93 */ OBJ_SCENERY_93,
/* 94 */ OBJ_80_94, /* 94 */ OBJ_SCENERY_94,
/* 95 */ OBJ_80_95, /* 95 */ OBJ_SCENERY_95,
/* 96 */ OBJ_80_96, /* 96 */ OBJ_SCENERY_96,
/* 97 */ OBJ_80_97, /* 97 */ OBJ_SCENERY_97,
/* 98 */ OBJ_80_98, /* 98 */ OBJ_SCENERY_98,
/* 99 */ OBJ_80_99, /* 99 */ OBJ_SCENERY_99,
/* 100 */ OBJ_80_100, /* 100 */ OBJ_SCENERY_100,
/* 101 */ OBJ_80_101, /* 101 */ OBJ_SCENERY_101,
/* 102 */ OBJ_80_102, /* 102 */ OBJ_SCENERY_102,
/* 103 */ OBJ_80_103, /* 103 */ OBJ_SCENERY_103,
/* 104 */ OBJ_80_104, /* 104 */ OBJ_SCENERY_104,
/* 105 */ OBJ_80_105, /* 105 */ OBJ_SCENERY_105,
/* 106 */ OBJ_80_106, /* 106 */ OBJ_SCENERY_106,
/* 107 */ OBJ_80_107, /* 107 */ OBJ_SCENERY_107,
/* 108 */ OBJ_80_108, /* 108 */ OBJ_SCENERY_108,
/* 109 */ OBJ_80_109, /* 109 */ OBJ_SCENERY_109,
/* 110 */ OBJ_80_110, /* 110 */ OBJ_SCENERY_110,
/* 111 */ OBJ_80_111, /* 111 */ OBJ_SCENERY_111,
/* 112 */ OBJ_80_112, /* 112 */ OBJ_SCENERY_112,
/* 113 */ OBJ_80_113, /* 113 */ OBJ_SCENERY_113,
/* 114 */ OBJ_80_114, /* 114 */ OBJ_SCENERY_114,
/* 115 */ OBJ_80_115, /* 115 */ OBJ_SCENERY_115,
/* 116 */ OBJ_80_116, /* 116 */ OBJ_SCENERY_116,
/* 117 */ OBJ_80_117, /* 117 */ OBJ_SCENERY_117,
/* 118 */ OBJ_80_118, /* 118 */ OBJ_SCENERY_118,
/* 119 */ OBJ_80_119, /* 119 */ OBJ_SCENERY_119,
/* 120 */ OBJ_80_120, /* 120 */ OBJ_SCENERY_120,
/* 121 */ OBJ_80_121, /* 121 */ OBJ_SCENERY_121,
/* 122 */ OBJ_80_122, /* 122 */ OBJ_SCENERY_122,
/* 123 */ OBJ_80_123, /* 123 */ OBJ_SCENERY_123,
/* 124 */ OBJ_80_124, /* 124 */ OBJ_SCENERY_124,
/* 125 */ OBJ_80_125, /* 125 */ OBJ_SCENERY_125,
/* 126 */ OBJ_80_126, /* 126 */ OBJ_SCENERY_126,
/* 127 */ OBJ_80_127, /* 127 */ OBJ_SCENERY_127,
/* 128 */ OBJ_80_128, /* 128 */ OBJ_SCENERY_128,
/* 129 */ OBJ_80_129, /* 129 */ OBJ_SCENERY_129,
/* 130 */ OBJ_80_130, /* 130 */ OBJ_SCENERY_130,
/* 131 */ OBJ_80_131, /* 131 */ OBJ_SCENERY_131,
/* 132 */ OBJ_80_132, /* 132 */ OBJ_SCENERY_132,
/* 133 */ OBJ_80_133, /* 133 */ OBJ_SCENERY_133,
/* 134 */ OBJ_80_134, /* 134 */ OBJ_SCENERY_134,
/* 135 */ OBJ_80_135, /* 135 */ OBJ_SCENERY_135,
/* 136 */ OBJ_80_136, /* 136 */ OBJ_SCENERY_136,
/* 137 */ OBJ_80_137, /* 137 */ OBJ_SCENERY_137,
/* 138 */ OBJ_80_138, /* 138 */ OBJ_SCENERY_138,
/* 139 */ OBJ_80_139, /* 139 */ OBJ_SCENERY_139,
/* 140 */ OBJ_80_140, /* 140 */ OBJ_SCENERY_140,
/* 141 */ OBJ_80_141, /* 141 */ OBJ_SCENERY_141,
/* 142 */ OBJ_80_142, /* 142 */ OBJ_SCENERY_142,
/* 143 */ OBJ_80_143, /* 143 */ OBJ_SCENERY_143,
/* 144 */ OBJ_80_144, /* 144 */ OBJ_SCENERY_144,
/* 145 */ OBJ_80_145, /* 145 */ OBJ_SCENERY_145,
/* 146 */ OBJ_80_146, /* 146 */ OBJ_SCENERY_146,
/* 147 */ OBJ_80_147, /* 147 */ OBJ_SCENERY_147,
/* 148 */ OBJ_80_148, /* 148 */ OBJ_SCENERY_148,
/* 149 */ OBJ_80_149, /* 149 */ OBJ_SCENERY_149,
/* 150 */ OBJ_80_150, /* 150 */ OBJ_SCENERY_150,
/* 151 */ OBJ_80_151, /* 151 */ OBJ_SCENERY_151,
/* 152 */ OBJ_80_152, /* 152 */ OBJ_SCENERY_152,
/* 153 */ OBJ_80_153, /* 153 */ OBJ_SCENERY_153,
/* 154 */ OBJ_80_154, /* 154 */ OBJ_SCENERY_154,
/* 155 */ OBJ_80_155, /* 155 */ OBJ_SCENERY_155,
/* 156 */ OBJ_80_156, /* 156 */ OBJ_SCENERY_156,
/* 157 */ OBJ_80_157, /* 157 */ OBJ_SCENERY_157,
/* 158 */ OBJ_80_158, /* 158 */ OBJ_SCENERY_158,
/* 159 */ OBJ_80_159, /* 159 */ OBJ_SCENERY_159,
/* 160 */ OBJ_80_160, /* 160 */ OBJ_SCENERY_160,
/* 161 */ OBJ_SPRITE_CO_POLE, /* 161 */ OBJ_SPRITE_CO_POLE,
/* 162 */ OBJ_SPRITE_CO_TREE, /* 162 */ OBJ_SPRITE_CO_TREE,
/* 163 */ OBJ_SPRITE_FO_POLE, /* 163 */ OBJ_SPRITE_FO_POLE,
@ -903,167 +924,167 @@ typedef enum {
/* 50 */ LN_VWK_MAX, /* 50 */ LN_VWK_MAX,
} BossLNvwork; } BossLNvwork;
typedef Object_80 Object80_0; typedef Scenery Scenery_0;
typedef Object_80 Object80_1; typedef Scenery Scenery_1;
typedef Object_80 Object80_2; typedef Scenery Scenery_2;
typedef Object_80 Object80_3; typedef Scenery Scenery_3;
typedef Object_80 Object80_4; typedef Scenery Scenery_4;
typedef Object_80 Object80_5; typedef Scenery Scenery_5;
typedef Object_80 Object80_6; typedef Scenery Scenery_6;
typedef Object_80 Object80_7; typedef Scenery Scenery_7;
typedef Object_80 Object80_8; typedef Scenery Scenery_8;
typedef Object_80 Object80_9; typedef Scenery Scenery_9;
typedef Object_80 Object80_10; typedef Scenery Scenery_10;
typedef Object_80 Object80_11; typedef Scenery Scenery_11;
typedef Object_80 Object80_12; typedef Scenery Scenery_12;
typedef Object_80 Object80_13; typedef Scenery Scenery_13;
typedef Object_80 Object80_14; typedef Scenery Scenery_14;
typedef Object_80 Object80_15; typedef Scenery Scenery_15;
typedef Object_80 Object80_16; typedef Scenery Scenery_16;
typedef Object_80 Object80_17; typedef Scenery Scenery_17;
typedef Object_80 Object80_18; typedef Scenery Scenery_18;
typedef Object_80 Object80_19; typedef Scenery Scenery_19;
typedef Object_80 Object80_20; typedef Scenery Scenery_20;
typedef Object_80 Object80_21; typedef Scenery Scenery_21;
typedef Object_80 Object80_22; typedef Scenery Scenery_22;
typedef Object_80 Object80_23; typedef Scenery Scenery_23;
typedef Object_80 Object80_24; typedef Scenery Scenery_24;
typedef Object_80 Object80_25; typedef Scenery Scenery_25;
typedef Object_80 Object80_26; typedef Scenery Scenery_26;
typedef Object_80 Object80_27; typedef Scenery Scenery_27;
typedef Object_80 Object80_28; typedef Scenery Scenery_28;
typedef Object_80 Object80_29; typedef Scenery Scenery_29;
typedef Object_80 Object80_30; typedef Scenery Scenery_30;
typedef Object_80 Object80_31; typedef Scenery Scenery_31;
typedef Object_80 Object80_32; typedef Scenery Scenery_32;
typedef Object_80 Object80_33; typedef Scenery Scenery_33;
typedef Object_80 Object80_34; typedef Scenery Scenery_34;
typedef Object_80 Object80_35; typedef Scenery Scenery_35;
typedef Object_80 Object80_36; typedef Scenery Scenery_36;
typedef Object_80 Object80_37; typedef Scenery Scenery_37;
typedef Object_80 Object80_38; typedef Scenery Scenery_38;
typedef Object_80 Object80_39; typedef Scenery Scenery_39;
typedef Object_80 Object80_40; typedef Scenery Scenery_40;
typedef Object_80 Object80_41; typedef Scenery Scenery_41;
typedef Object_80 Object80_42; typedef Scenery Scenery_42;
typedef Object_80 Object80_43; typedef Scenery Scenery_43;
typedef Object_80 Object80_44; typedef Scenery Scenery_44;
typedef Object_80 Object80_45; typedef Scenery Scenery_45;
typedef Object_80 Object80_46; typedef Scenery Scenery_46;
typedef Object_80 Object80_47; typedef Scenery Scenery_47;
typedef Object_80 Object80_48; typedef Scenery Scenery_48;
typedef Object_80 Object80_49; typedef Scenery Scenery_49;
typedef Object_80 Object80_50; typedef Scenery Scenery_50;
typedef Object_80 Object80_51; typedef Scenery Scenery_51;
typedef Object_80 Object80_52; typedef Scenery Scenery_52;
typedef Object_80 Object80_53; typedef Scenery Scenery_53;
typedef Object_80 Object80_54; typedef Scenery Scenery_54;
typedef Object_80 Object80_55; typedef Scenery Scenery_55;
typedef Object_80 Object80_56; typedef Scenery Scenery_56;
typedef Object_80 Object80_57; typedef Scenery Scenery_57;
typedef Object_80 Object80_58; typedef Scenery Scenery_58;
typedef Object_80 Object80_59; typedef Scenery Scenery_59;
typedef Object_80 Object80_60; typedef Scenery Scenery_60;
typedef Object_80 Object80_61; typedef Scenery Scenery_61;
typedef Object_80 Object80_62; typedef Scenery Scenery_62;
typedef Object_80 Object80_63; typedef Scenery Scenery_63;
typedef Object_80 Object80_64; typedef Scenery Scenery_64;
typedef Object_80 Object80_65; typedef Scenery Scenery_65;
typedef Object_80 Object80_66; typedef Scenery Scenery_66;
typedef Object_80 Object80_67; typedef Scenery Scenery_67;
typedef Object_80 Object80_68; typedef Scenery Scenery_68;
typedef Object_80 Object80_69; typedef Scenery Scenery_69;
typedef Object_80 Object80_70; typedef Scenery Scenery_70;
typedef Object_80 Object80_71; typedef Scenery Scenery_71;
typedef Object_80 Object80_72; typedef Scenery Scenery_72;
typedef Object_80 Object80_73; typedef Scenery Scenery_73;
typedef Object_80 Object80_74; typedef Scenery Scenery_74;
typedef Object_80 Object80_75; typedef Scenery Scenery_75;
typedef Object_80 Object80_76; typedef Scenery Scenery_76;
typedef Object_80 Object80_77; typedef Scenery Scenery_77;
typedef Object_80 Object80_78; typedef Scenery Scenery_78;
typedef Object_80 Object80_79; typedef Scenery Scenery_79;
typedef Object_80 Object80_80; typedef Scenery Scenery_80;
typedef Object_80 Object80_81; typedef Scenery Scenery_81;
typedef Object_80 Object80_82; typedef Scenery Scenery_82;
typedef Object_80 Object80_83; typedef Scenery Scenery_83;
typedef Object_80 Object80_84; typedef Scenery Scenery_84;
typedef Object_80 Object80_85; typedef Scenery Scenery_85;
typedef Object_80 Object80_86; typedef Scenery Scenery_86;
typedef Object_80 Object80_87; typedef Scenery Scenery_87;
typedef Object_80 Object80_88; typedef Scenery Scenery_88;
typedef Object_80 Object80_89; typedef Scenery Scenery_89;
typedef Object_80 Object80_90; typedef Scenery Scenery_90;
typedef Object_80 Object80_91; typedef Scenery Scenery_91;
typedef Object_80 Object80_92; typedef Scenery Scenery_92;
typedef Object_80 Object80_93; typedef Scenery Scenery_93;
typedef Object_80 Object80_94; typedef Scenery Scenery_94;
typedef Object_80 Object80_95; typedef Scenery Scenery_95;
typedef Object_80 Object80_96; typedef Scenery Scenery_96;
typedef Object_80 Object80_97; typedef Scenery Scenery_97;
typedef Object_80 Object80_98; typedef Scenery Scenery_98;
typedef Object_80 Object80_99; typedef Scenery Scenery_99;
typedef Object_80 Object80_100; typedef Scenery Scenery_100;
typedef Object_80 Object80_101; typedef Scenery Scenery_101;
typedef Object_80 Object80_102; typedef Scenery Scenery_102;
typedef Object_80 Object80_103; typedef Scenery Scenery_103;
typedef Object_80 Object80_104; typedef Scenery Scenery_104;
typedef Object_80 Object80_105; typedef Scenery Scenery_105;
typedef Object_80 Object80_106; typedef Scenery Scenery_106;
typedef Object_80 Object80_107; typedef Scenery Scenery_107;
typedef Object_80 Object80_108; typedef Scenery Scenery_108;
typedef Object_80 Object80_109; typedef Scenery Scenery_109;
typedef Object_80 Object80_110; typedef Scenery Scenery_110;
typedef Object_80 Object80_111; typedef Scenery Scenery_111;
typedef Object_80 Object80_112; typedef Scenery Scenery_112;
typedef Object_80 Object80_113; typedef Scenery Scenery_113;
typedef Object_80 Object80_114; typedef Scenery Scenery_114;
typedef Object_80 Object80_115; typedef Scenery Scenery_115;
typedef Object_80 Object80_116; typedef Scenery Scenery_116;
typedef Object_80 Object80_117; typedef Scenery Scenery_117;
typedef Object_80 Object80_118; typedef Scenery Scenery_118;
typedef Object_80 Object80_119; typedef Scenery Scenery_119;
typedef Object_80 Object80_120; typedef Scenery Scenery_120;
typedef Object_80 Object80_121; typedef Scenery Scenery_121;
typedef Object_80 Object80_122; typedef Scenery Scenery_122;
typedef Object_80 Object80_123; typedef Scenery Scenery_123;
typedef Object_80 Object80_124; typedef Scenery Scenery_124;
typedef Object_80 Object80_125; typedef Scenery Scenery_125;
typedef Object_80 Object80_126; typedef Scenery Scenery_126;
typedef Object_80 Object80_127; typedef Scenery Scenery_127;
typedef Object_80 Object80_128; typedef Scenery Scenery_128;
typedef Object_80 Object80_129; typedef Scenery Scenery_129;
typedef Object_80 Object80_130; typedef Scenery Scenery_130;
typedef Object_80 Object80_131; typedef Scenery Scenery_131;
typedef Object_80 Object80_132; typedef Scenery Scenery_132;
typedef Object_80 Object80_133; typedef Scenery Scenery_133;
typedef Object_80 Object80_134; typedef Scenery Scenery_134;
typedef Object_80 Object80_135; typedef Scenery Scenery_135;
typedef Object_80 Object80_136; typedef Scenery Scenery_136;
typedef Object_80 Object80_137; typedef Scenery Scenery_137;
typedef Object_80 Object80_138; typedef Scenery Scenery_138;
typedef Object_80 Object80_139; typedef Scenery Scenery_139;
typedef Object_80 Object80_140; typedef Scenery Scenery_140;
typedef Object_80 Object80_141; typedef Scenery Scenery_141;
typedef Object_80 Object80_142; typedef Scenery Scenery_142;
typedef Object_80 Object80_143; typedef Scenery Scenery_143;
typedef Object_80 Object80_144; typedef Scenery Scenery_144;
typedef Object_80 Object80_145; typedef Scenery Scenery_145;
typedef Object_80 Object80_146; typedef Scenery Scenery_146;
typedef Object_80 Object80_147; typedef Scenery Scenery_147;
typedef Object_80 Object80_148; typedef Scenery Scenery_148;
typedef Object_80 Object80_149; typedef Scenery Scenery_149;
typedef Object_80 Object80_150; typedef Scenery Scenery_150;
typedef Object_80 Object80_151; typedef Scenery Scenery_151;
typedef Object_80 Object80_152; typedef Scenery Scenery_152;
typedef Object_80 Object80_153; typedef Scenery Scenery_153;
typedef Object_80 Object80_154; typedef Scenery Scenery_154;
typedef Object_80 Object80_155; typedef Scenery Scenery_155;
typedef Object_80 Object80_156; typedef Scenery Scenery_156;
typedef Object_80 Object80_157; typedef Scenery Scenery_157;
typedef Object_80 Object80_158; typedef Scenery Scenery_158;
typedef Object_80 Object80_159; typedef Scenery Scenery_159;
typedef Object_80 Object80_160; typedef Scenery Scenery_160;
typedef Sprite CoPole; typedef Sprite CoPole;
typedef Sprite CoTree; typedef Sprite CoTree;
typedef Sprite FoPole; typedef Sprite FoPole;

View File

@ -77,7 +77,7 @@ typedef enum {
/* 0 */ PLAYERSHOT_0, // single laser? /* 0 */ PLAYERSHOT_0, // single laser?
/* 1 */ PLAYERSHOT_1, // twin laser? /* 1 */ PLAYERSHOT_1, // twin laser?
/* 2 */ PLAYERSHOT_2, /* 2 */ PLAYERSHOT_2,
/* 3 */ PLAYERSHOT_3, // bomb? /* 3 */ PLAYERSHOT_BOMB, // bomb?
/* 4 */ PLAYERSHOT_4, /* 4 */ PLAYERSHOT_4,
/* 5 */ PLAYERSHOT_5, // landmaster shot /* 5 */ PLAYERSHOT_5, // landmaster shot
/* 6 */ PLAYERSHOT_6, // on-foot shot /* 6 */ PLAYERSHOT_6, // on-foot shot
@ -295,9 +295,9 @@ typedef struct Player {
/* 0x284 */ s32 unk_284; /* 0x284 */ s32 unk_284;
/* 0x288 */ s32 unk_288; /* 0x288 */ s32 unk_288;
/* 0x28C */ char pad28C[0x28]; /* 0x28C */ char pad28C[0x28];
/* 0x2B4 */ bool unk_2B4; /* 0x2B4 */ bool boostCooldown;
/* 0x2B8 */ bool unk_2B8; /* 0x2B8 */ bool boostActive;
/* 0x2BC */ f32 unk_2BC; /* 0x2BC */ f32 boostMeter;
/* 0x2C0 */ f32 unk_2C0; /* 0x2C0 */ f32 unk_2C0;
/* 0x2C4 */ s32 unk_2C4; /* 0x2C4 */ s32 unk_2C4;
/* 0x2C8 */ Vec3f hit2; /* 0x2C8 */ Vec3f hit2;

View File

@ -1,76 +0,0 @@
#ifndef STRUCTS_H
#define STRUCTS_H
#include "libultra/ultra64.h"
#include "sf64math.h"
typedef struct {
/* 0x00 */ u8 status;
/* 0x02 */ u16 type;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x14 */ char pad14[0x14];
} RadarMark; // size = 0x28
typedef struct {
/* 0x00 */ u8 mode;
/* 0x02 */ u16 timer;
/* 0x04 */ Vec3f unk_04;
/* 0x10 */ Vec3f unk_10;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ f32 unk_28;
/* 0x2C */ u8 unk_2C; // possibly a color struct
/* 0x2D */ u8 unk_2D;
/* 0x2E */ u8 unk_2E;
/* 0x2F */ u8 unk_2F;
} TexturedLine; // size = 0x30
typedef struct {
/* 0x00 */ u8 hits;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x14 */ char pad14[0x4];
/* 0x18 */ u16 timer;
} BonusText; // size = 0x1C
#define BONUS_TEXT_FREE 0
#define BONUS_TEXT_GREAT 100
#define BONUS_TEXT_1UP 101
typedef struct {
/* 0x00 */ Vec3f eye;
/* 0x0C */ Vec3f at;
} CameraPoint; // size = 0x18
typedef struct {
/* 0x00 */ f32 unk_00;
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ s16 unk_10;
} UnkStruct_D_i5_801B8E50; //size = 0x14
typedef struct {
/* 0x00 */ f32 unk_00;
/* 0x04 */ s16 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ s16 unk_10;
} UnkStruct_D_i5_801BA1EC; //size = 0x14
typedef enum OptionState {
OPTION_WAIT,
OPTION_SETUP,
OPTION_UPDATE
} OptionState;
typedef enum OptionSoundMode {
OPTIONSOUND_STEREO,
OPTIONSOUND_MONO,
OPTIONSOUND_HEADSET,
OPTIONSOUND_MAX,
} OptionSoundMode;
#endif

View File

@ -48,15 +48,28 @@ extern f32 D_game_80161A14;
extern s32 gPlayerInactive[4]; extern s32 gPlayerInactive[4];
extern s32 D_game_80161A28; extern s32 D_game_80161A28;
extern u8 gShowHud; extern u8 gShowHud;
extern u16 gNextLevelStage; extern u16 gNextLevelPhase;
extern u16 gNextLevel; extern u16 gNextLevel;
extern u16 gNextGameState; extern u16 gNextGameState;
extern u16 D_game_80161A34; extern u16 D_game_80161A34;
extern u16 gBgColor; extern u16 gBgColor;
extern u8 gBlurAlpha; extern u8 gBlurAlpha;
extern u8 D_game_80161A39; extern u8 gGameStandby;
extern f32 gFovY; extern f32 gFovY;
extern f32 gProjectNear; extern f32 gProjectNear;
extern f32 gProjectFar; extern f32 gProjectFar;
typedef enum OptionState {
OPTION_WAIT,
OPTION_SETUP,
OPTION_UPDATE
} OptionState;
typedef enum OptionSoundMode {
OPTIONSOUND_STEREO,
OPTIONSOUND_MONO,
OPTIONSOUND_HEADSET,
OPTIONSOUND_MAX,
} OptionSoundMode;
#endif #endif

View File

@ -2,7 +2,6 @@
#define VARIABLES_H #define VARIABLES_H
#include "sys.h" #include "sys.h"
#include "structs.h"
#include "sf64level.h" #include "sf64level.h"
#include "sf64object.h" #include "sf64object.h"
#include "sf64player.h" #include "sf64player.h"
@ -11,7 +10,7 @@
extern s32 D_360_800C9B4C; extern s32 D_360_800C9B4C;
// fox_bg // fox_bg
extern u16 D_bg_800C9C3C[16]; extern u16 gStarColors[16];
// fox_boss // fox_boss
extern s32 D_boss_800C9E90[]; extern s32 D_boss_800C9E90[];
@ -27,21 +26,21 @@ extern s32 gTeamHelpTimer;
// fox_edata // fox_edata
extern f32 gActor241Hitbox[]; extern f32 gActor241Hitbox[];
extern f32 gDefaultCubeHitbox100[]; extern f32 gCubeHitbox100[];
extern f32 gDefaultCubeHitbox150[]; extern f32 gCubeHitbox150[];
extern f32 gDefaultCubeHitbox200[]; extern f32 gCubeHitbox200[];
extern f32 gDefaultCubeHitbox300[]; extern f32 gCubeHitbox300[];
extern f32 gDefaultCubeHitbox400[]; extern f32 gCubeHitbox400[];
extern f32 gItemRingCheckHitbox[]; extern f32 gItemRingCheckHitbox[];
extern f32 gHitboxNone[]; extern f32 gNoHitbox[];
extern f32 gItemCheckpointHitbox[]; extern f32 gItemCheckpointHitbox[];
extern f32 gItemSupplyRingHitbox[]; extern f32 gItemSupplyRingHitbox[];
extern f32 gMeteoWarpHitbox[]; extern f32 gMeteoWarpHitbox[];
extern f32 D_edata_800CBF8C[]; extern f32 gItemPathChangeHitbox[];
extern f32 gItemLasersHitbox[]; extern f32 gItemLasersHitbox[];
extern f32 gItemBombHitbox[]; extern f32 gItemBombHitbox[];
extern f32 gActor190_191Hitbox[]; extern f32 gActor190_191Hitbox[];
extern f32 gActor194HItbox[]; extern f32 gActor194Hitbox[];
extern f32 gTeamHitbox[]; extern f32 gTeamHitbox[];
extern f32 gActorAllRangeHItbox[]; extern f32 gActorAllRangeHItbox[];
extern f32 gWarpZoneEvent94Hitbox[]; extern f32 gWarpZoneEvent94Hitbox[];
@ -89,7 +88,7 @@ extern CollisionHeader D_800D2B38[];
extern CollisionHeader2 D_800D2CA0[]; extern CollisionHeader2 D_800D2CA0[];
// fox_play // fox_play
extern u8 D_play_800D2F68; extern u8 gVenomHardClear;
extern u8 D_play_800D3180[30]; extern u8 D_play_800D3180[30];
// fox_radio // fox_radio
@ -114,9 +113,9 @@ extern s32 gAllRangeFrameCount;
extern f32 gAllRangeCountdownScale; extern f32 gAllRangeCountdownScale;
// fox_bg // fox_bg
extern f32 D_bg_800C9C30; extern f32 gAndrossUnkAlpha;
extern u16 D_bg_800C9C34; extern u16 gBolseDynamicGround;
extern f32 D_bg_8015F960; extern f32 gWarpZoneBgAlpha;
extern u8 D_bg_8015F964; extern u8 D_bg_8015F964;
extern f32 D_bg_8015F968; extern f32 D_bg_8015F968;
extern f32 D_bg_8015F96C; extern f32 D_bg_8015F96C;

View File

@ -128,7 +128,7 @@ Save_Checksum = 0x800C2FB0;
Save_Write = 0x800C3084; Save_Write = 0x800C3084;
Save_Read = 0x800C3194; Save_Read = 0x800C3194;
sUnused_Overlay = 0x800CBD3C; sOvlUnused_Unk = 0x800CBD3C;
// hardcoded address used in sys_rdram // hardcoded address used in sys_rdram
D_A0300000 = 0xA0300000; D_A0300000 = 0xA0300000;

View File

@ -7,7 +7,7 @@ sOptionCardList = 0x801AE638; // type:OptionEntry segment:ovl_menu size:0x240
D_menu_801AE99C = 0x801AE99C; // force_migration:True segment:ovl_menu D_menu_801AE99C = 0x801AE99C; // force_migration:True segment:ovl_menu
sTimeTrialMinuteTextures = 0x801AF28C; // force_migration:True segment:ovl_menu sTimeTrialMinuteTextures = 0x801AF28C; // force_migration:True segment:ovl_menu
sPlanetList = 0x801AF7E8;// segment:ovl_menu sPlanetList = 0x801AF7E8;// segment:ovl_menu
spectrumAnalizerMode = 0x801B9318;// segment:ovl_menu spectrumAnalyzerMode = 0x801B9318;// segment:ovl_menu
D_menu_801AE998 = 0x801AE998; //size:4 segment:ovl_menu D_menu_801AE998 = 0x801AE998; //size:4 segment:ovl_menu
sPaths = 0x801AFD18; // segment:ovl_menu sPaths = 0x801AFD18; // segment:ovl_menu
D_menu_801B6E50 = 0x801B6E50; // force_migration:True segment:ovl_menu D_menu_801B6E50 = 0x801B6E50; // force_migration:True segment:ovl_menu

View File

@ -467,7 +467,7 @@ Audio_ResetVoicesAndPlayers = 0x8001BC48;
Audio_ProcessPlaylist = 0x8001BD0C; Audio_ProcessPlaylist = 0x8001BD0C;
func_8001BFC0 = 0x8001BFC0; func_8001BFC0 = 0x8001BFC0;
Audio_UpdateFrequencyAnalysis = 0x8001C3EC; Audio_UpdateFrequencyAnalysis = 0x8001C3EC;
func_8001C8B8 = 0x8001C8B8; Audio_StartPlayerNoise = 0x8001C8B8;
func_8001CA24 = 0x8001CA24; func_8001CA24 = 0x8001CA24;
func_8001CB80 = 0x8001CB80; func_8001CB80 = 0x8001CB80;
func_8001CCDC = 0x8001CCDC; func_8001CCDC = 0x8001CCDC;
@ -490,7 +490,7 @@ func_8001D520 = 0x8001D520;
func_8001D638 = 0x8001D638; func_8001D638 = 0x8001D638;
func_8001D6DC = 0x8001D6DC; func_8001D6DC = 0x8001D6DC;
func_8001D780 = 0x8001D780; func_8001D780 = 0x8001D780;
func_8001D8A8 = 0x8001D8A8; Audio_SetVolume = 0x8001D8A8;
Audio_PlaySoundTest = 0x8001D8F4; Audio_PlaySoundTest = 0x8001D8F4;
Audio_PlaySequenceDistorted = 0x8001D9E0; Audio_PlaySequenceDistorted = 0x8001D9E0;
Audio_PlaySoundTestTrack = 0x8001DA90; Audio_PlaySoundTestTrack = 0x8001DA90;

View File

@ -150,10 +150,10 @@ Message_DisplayScrollingText = 0x800C2D3C;
Message_IsPrintingChar = 0x800C2F30; Message_IsPrintingChar = 0x800C2F30;
// fox_bg // fox_bg
D_bg_800C9DBC = 0x800C9DBC;//size:39 sKaSunColors = 0x800C9DBC;//size:39
D_bg_800C9D94 = 0x800C9D94;//size:39 sSunColors = 0x800C9D94;//size:39
D_bg_800C9CC4 = 0x800C9CC4; sSunShifts = 0x800C9CC4;
D_bg_800C9CF8 = 0x800C9CF8; sKaSunShifts = 0x800C9CF8;
// fox_boss // fox_boss
func_boss_8004319C = 0x8004319C; func_boss_8004319C = 0x8004319C;
@ -208,7 +208,7 @@ ItemMeteoWarp_Draw = 0x8005CDA8;
func_edisplay_8005D008 = 0x8005D008; func_edisplay_8005D008 = 0x8005D008;
func_edisplay_8005D1F0 = 0x8005D1F0; func_edisplay_8005D1F0 = 0x8005D1F0;
func_edisplay_8005D3CC = 0x8005D3CC; func_edisplay_8005D3CC = 0x8005D3CC;
Object_80_Draw = 0x8005D654; Scenery_Draw = 0x8005D654;
Sprite_Draw = 0x8005D8B8; Sprite_Draw = 0x8005D8B8;
Actor_DrawOnRails = 0x8005D954; Actor_DrawOnRails = 0x8005D954;
Actor_DrawAllRange = 0x8005DBC0; Actor_DrawAllRange = 0x8005DBC0;
@ -222,8 +222,8 @@ Object_ClampSfxSource = 0x8005F030;
func_edisplay_8005F0E8 = 0x8005F0E8; func_edisplay_8005F0E8 = 0x8005F0E8;
func_edisplay_8005F1EC = 0x8005F1EC; func_edisplay_8005F1EC = 0x8005F1EC;
func_edisplay_8005F290 = 0x8005F290; func_edisplay_8005F290 = 0x8005F290;
Object_58_Draw = 0x8005F2F4; Scenery360_Draw = 0x8005F2F4;
func_edisplay_8005F670 = 0x8005F670; Display_SetSecondLight = 0x8005F670;
func_edisplay_8005F9DC = 0x8005F9DC; func_edisplay_8005F9DC = 0x8005F9DC;
Object_DrawAll = 0x8005FB70; Object_DrawAll = 0x8005FB70;
Effect_DrawAll = 0x8006046C; Effect_DrawAll = 0x8006046C;
@ -257,13 +257,13 @@ Object_Kill = 0x80060FBC;
func_enmy_80060FE4 = 0x80060FE4; func_enmy_80060FE4 = 0x80060FE4;
func_enmy_80061148 = 0x80061148; func_enmy_80061148 = 0x80061148;
Object_SetInfo = 0x800612B8; Object_SetInfo = 0x800612B8;
Object_80_Initialize = 0x80061364; Scenery_Initialize = 0x80061364;
Sprite_Initialize = 0x80061394; Sprite_Initialize = 0x80061394;
Actor_Initialize = 0x800613C4; Actor_Initialize = 0x800613C4;
Boss_Initialize = 0x80061404; Boss_Initialize = 0x80061404;
Item_Initialize = 0x80061444; Item_Initialize = 0x80061444;
Effect_Initialize = 0x80061474; Effect_Initialize = 0x80061474;
Object_80_Load = 0x800614B4; Scenery_Load = 0x800614B4;
Sprite_Load = 0x800615A0; Sprite_Load = 0x800615A0;
Actor_Load = 0x8006168C; Actor_Load = 0x8006168C;
Boss_Load = 0x80061778; Boss_Load = 0x80061778;
@ -333,13 +333,13 @@ Sprite_UpdateDoodad = 0x80068FE0;
Object_Dying = 0x800690D0; Object_Dying = 0x800690D0;
Actor_Move = 0x800693E8; Actor_Move = 0x800693E8;
Boss_Move = 0x80069658; Boss_Move = 0x80069658;
Object80_Move = 0x800696F8; Scenery_Move = 0x800696F8;
Sprite_Move = 0x80069858; Sprite_Move = 0x80069858;
Effect_Move = 0x80069924; Effect_Move = 0x80069924;
Item_Move = 0x80069A10; Item_Move = 0x80069A10;
Actor_Update = 0x80069AAC; Actor_Update = 0x80069AAC;
Boss_Update = 0x80069CBC; Boss_Update = 0x80069CBC;
Object_80_Update = 0x80069DF4; Scenery_Update = 0x80069DF4;
Sprite_Update = 0x80069E88; Sprite_Update = 0x80069E88;
Item_Update = 0x80069F30; Item_Update = 0x80069F30;
Effect_Update = 0x80069FD4; Effect_Update = 0x80069FD4;
@ -356,13 +356,13 @@ D_game_80161A14 = 0x80161A14;
gPlayerInactive = 0x80161A18; //size:0x10 gPlayerInactive = 0x80161A18; //size:0x10
D_game_80161A28 = 0x80161A28; D_game_80161A28 = 0x80161A28;
gShowHud = 0x80161A2C; gShowHud = 0x80161A2C;
gNextLevelStage = 0x80161A2E; gNextLevelPhase = 0x80161A2E;
gNextLevel = 0x80161A30; gNextLevel = 0x80161A30;
gNextGameState = 0x80161A32; gNextGameState = 0x80161A32;
D_game_80161A34 = 0x80161A34; D_game_80161A34 = 0x80161A34;
gBgColor = 0x80161A36; gBgColor = 0x80161A36;
gBlurAlpha = 0x80161A38; gBlurAlpha = 0x80161A38;
D_game_80161A39 = 0x80161A39; gGameStandby = 0x80161A39;
gFovY = 0x80161A3C; gFovY = 0x80161A3C;
gProjectNear = 0x80161A40; gProjectNear = 0x80161A40;
gProjectFar = 0x80161A44; gProjectFar = 0x80161A44;
@ -372,17 +372,17 @@ sVsCameraULx = 0x800D2874;
sVsCameraLRx = 0x800D2884; sVsCameraLRx = 0x800D2884;
sVsCameraULy = 0x800D2894; sVsCameraULy = 0x800D2894;
sVsCameraLRy = 0x800D28A4; sVsCameraLRy = 0x800D28A4;
sOverlaySetups = 0x800D28B4; sLevelSceneIds = 0x800D28B4;
Game_Initialize = 0x800A18B0; Game_Initialize = 0x800A18B0;
Game_SetGameState = 0x800A1980; Game_SetGameState = 0x800A1980;
func_game_800A1B6C = 0x800A1B6C; Game_ChangeScene = 0x800A1B6C;
func_game_800A1C14 = 0x800A1C14; Game_InitMasterDL = 0x800A1C14;
func_game_800A1E68 = 0x800A1E68; Game_InitStandbyDL = 0x800A1E68;
func_game_800A1F44 = 0x800A1F44; Game_InitFullViewport = 0x800A1F44;
func_game_800A1FB0 = 0x800A1FB0; Game_InitViewport = 0x800A1FB0;
Game_Draw = 0x800A24DC; Game_Draw = 0x800A24DC;
func_game_800A25DC = 0x800A25DC; Game_SetScene = 0x800A25DC;
Game_Update = 0x800A26C0; Game_Update = 0x800A26C0;
func_game_800A3608 = 0x800A3608; func_game_800A3608 = 0x800A3608;
@ -404,7 +404,7 @@ gScreenFlashTimer = 0x80161A60;
gDropHitCountItem = 0x80161A62; gDropHitCountItem = 0x80161A62;
D_play_80161A64 = 0x80161A64; D_play_80161A64 = 0x80161A64;
sEnvSettings = 0x80161A68; sEnvSettings = 0x80161A68;
D_play_800D2F68 = 0x800D2F68; //type:u8 gVenomHardClear = 0x800D2F68; //type:u8
// fox_context // fox_context
D_ctx_80161A70 = 0x80161A70; D_ctx_80161A70 = 0x80161A70;
@ -421,7 +421,7 @@ gSavedHitCount = 0x80161A9C;
gLifeCount = 0x80161AA0; gLifeCount = 0x80161AA0;
gLaserStrength = 0x80161AA8;//size:0x10 gLaserStrength = 0x80161AA8;//size:0x10
D_ctx_80161AB8 = 0x80161AB8; D_ctx_80161AB8 = 0x80161AB8;
gObjects80 = 0x80161B00; //size:0x1900 gScenery = 0x80161B00; //size:0x1900
gSprites = 0x80163400; //size:0xBE0 gSprites = 0x80163400; //size:0xBE0
gActors = 0x80163FE0; //size:0xB130 gActors = 0x80163FE0; //size:0xB130
gBosses = 0x8016F110; //size:0x1020 gBosses = 0x8016F110; //size:0x1020
@ -437,15 +437,15 @@ gActor194yPos = 0x80176878;
gActor194zPos = 0x80176B98; gActor194zPos = 0x80176B98;
gActor194xRot = 0x80176EB8; gActor194xRot = 0x80176EB8;
gActor194yRot = 0x801771D8; gActor194yRot = 0x801771D8;
gOverlaySetup = 0x801774F8; gSceneId = 0x801774F8;
gActor194zRot = 0x80177500; gActor194zRot = 0x80177500;
gOverlayStage = 0x80177820; gSceneSetup = 0x80177820;
D_ctx_80177824 = 0x80177824; D_ctx_80177824 = 0x80177824;
gEnemyShotSpeed = 0x80177828; gEnemyShotSpeed = 0x80177828;
D_ctx_8017782C = 0x8017782C; D_ctx_8017782C = 0x8017782C;
D_ctx_80177830 = 0x80177830; gShowLevelClearStatusScreen = 0x80177830;
gGameState = 0x80177834; gGameState = 0x80177834;
gLevelStatusScreenTimer = 0x80177838; gLevelStartStatusScreenTimer = 0x80177838;
gNextGameStateTimer = 0x8017783C; gNextGameStateTimer = 0x8017783C;
gLevelClearScreenTimer = 0x80177840; gLevelClearScreenTimer = 0x80177840;
gOptionMenuStatus = 0x8017784C; //type:OptionState gOptionMenuStatus = 0x8017784C; //type:OptionState
@ -454,7 +454,7 @@ D_ctx_80177850 = 0x80177850;
gPlayState = 0x80177854; gPlayState = 0x80177854;
D_ctx_80177858 = 0x80177858; D_ctx_80177858 = 0x80177858;
D_ctx_80177868 = 0x80177868; D_ctx_80177868 = 0x80177868;
D_ctx_80177870 = 0x80177870; gPlayerForms = 0x80177870;
gLevelMode = 0x80177880; gLevelMode = 0x80177880;
gHandicap = 0x80177888; gHandicap = 0x80177888;
gDrawMode = 0x80177898; gDrawMode = 0x80177898;
@ -474,7 +474,7 @@ gTeamDamage = 0x80177910;
gBrakeButton = 0x80177928; gBrakeButton = 0x80177928;
gNextPlanetPath = 0x80177930; gNextPlanetPath = 0x80177930;
gShootButton = 0x80177938; gShootButton = 0x80177938;
gGroundLevel = 0x80177940; gGroundHeight = 0x80177940;
gBombButton = 0x80177948; gBombButton = 0x80177948;
D_ctx_80177950 = 0x80177950; D_ctx_80177950 = 0x80177950;
D_ctx_80177958 = 0x80177958; D_ctx_80177958 = 0x80177958;
@ -502,16 +502,16 @@ D_Timer_80177A88 = 0x80177A88;//size:0x10
D_ctx_80177A98 = 0x80177A98; D_ctx_80177A98 = 0x80177A98;
D_ctx_80177AA0 = 0x80177AA0; D_ctx_80177AA0 = 0x80177AA0;
D_ctx_80177AB0 = 0x80177AB0; D_ctx_80177AB0 = 0x80177AB0;
D_ctx_80177AB8 = 0x80177AB8; gShieldAlpha = 0x80177AB8;
D_ctx_80177AC8 = 0x80177AC8; gAqDrawMode = 0x80177AC8;
D_ctx_80177AD0 = 0x80177AD0; gHasShield = 0x80177AD0;
D_ctx_80177AE0 = 0x80177AE0; D_ctx_80177AE0 = 0x80177AE0;
D_ctx_80177AE8 = 0x80177AE8; gShieldTimer = 0x80177AE8;
gMainController = 0x80177AF8; gMainController = 0x80177AF8;
D_ctx_80177B00 = 0x80177B00; gVsLockOnTimers = 0x80177B00;
D_ctx_80177B40 = 0x80177B40; D_ctx_80177B40 = 0x80177B40;
D_Timer_80177B44 = 0x80177B44; gStartAndrossFightTimer = 0x80177B44;
gCurrentPlanet = 0x80177B48; gMissionNumber = 0x80177B48;
D_ctx_80177B50 = 0x80177B50; D_ctx_80177B50 = 0x80177B50;
D_ctx_80177B70 = 0x80177B70; D_ctx_80177B70 = 0x80177B70;
D_ctx_80177B90 = 0x80177B90; D_ctx_80177B90 = 0x80177B90;
@ -521,7 +521,7 @@ gPlanetPathStatus = 0x80177BD8;
D_ctx_80177C30 = 0x80177C30; D_ctx_80177C30 = 0x80177C30;
D_ctx_80177C50 = 0x80177C50; D_ctx_80177C50 = 0x80177C50;
D_ctx_80177C58 = 0x80177C58; D_ctx_80177C58 = 0x80177C58;
gSoundMode = 0x80177C74; gOptionSoundMode = 0x80177C74;
gVolumeSettings = 0x80177C80; gVolumeSettings = 0x80177C80;
gBgmSeqId = 0x80177C90; gBgmSeqId = 0x80177C90;
D_ctx_80177C94 = 0x80177C94; D_ctx_80177C94 = 0x80177C94;
@ -562,17 +562,17 @@ D_ctx_8017812C = 0x8017812C;
D_ctx_80178130 = 0x80178130; //size:0xF4 D_ctx_80178130 = 0x80178130; //size:0xF4
gCurrentLevel = 0x80178234; gCurrentLevel = 0x80178234;
D_ctx_80178238 = 0x80178238;//size:0x3D type:u8 D_ctx_80178238 = 0x80178238;//size:0x3D type:u8
gLevelStage = 0x8017827C; gLevelPhase = 0x8017827C;
gPlayer = 0x80178280; gPlayer = 0x80178280;
gBossActive = 0x80178284; gBossActive = 0x80178284;
D_ctx_80178288 = 0x80178288; gStarOffsetsX = 0x80178288;
D_ctx_8017828C = 0x8017828C; D_ctx_8017828C = 0x8017828C;
D_ctx_80178290 = 0x80178290; gStarOffsetsY = 0x80178290;
D_ctx_80178294 = 0x80178294; D_ctx_80178294 = 0x80178294;
D_ctx_80178298 = 0x80178298; gStarFillColors = 0x80178298;
gRadioState = 0x8017829C; gRadioState = 0x8017829C;
D_ctx_801782A4 = 0x801782A4; D_ctx_801782A4 = 0x801782A4;
gObjects58 = 0x801782A8; gScenery360 = 0x801782A8;
D_Timer_801782AC = 0x801782AC; D_Timer_801782AC = 0x801782AC;
D_Timer_801782B4 = 0x801782B4; D_Timer_801782B4 = 0x801782B4;
D_ctx_801782B8 = 0x801782B8; D_ctx_801782B8 = 0x801782B8;
@ -597,23 +597,23 @@ gFillScreenGreen = 0x80178350;
gFillScreenBlue = 0x80178354; gFillScreenBlue = 0x80178354;
gFillScreenAlphaTarget = 0x80178358; gFillScreenAlphaTarget = 0x80178358;
gFillScreenAlphaStep = 0x8017835C; gFillScreenAlphaStep = 0x8017835C;
D_ctx_80178360 = 0x80178360; gLight3R = 0x80178360;
D_ctx_80178364 = 0x80178364; gLight3G = 0x80178364;
D_ctx_80178368 = 0x80178368; gLight3B = 0x80178368;
D_ctx_8017836C = 0x8017836C; gLight3Brightness = 0x8017836C;
D_ctx_80178370 = 0x80178370; gLight3x = 0x80178370;
gPlayerFillScreenAlphas = 0x80178380; gPlayerGlareAlphas = 0x80178380;
gPlayerFillScreenReds = 0x80178390; gPlayerGlareReds = 0x80178390;
gPlayerFillScreenGreens = 0x801783A0; gPlayerGlareGreens = 0x801783A0;
gPlayerFillScreenBlues = 0x801783B0; gPlayerGlareBlues = 0x801783B0;
D_ctx_801783D0 = 0x801783D0; gSunViewX = 0x801783D0;
D_ctx_801783D4 = 0x801783D4; gSunViewY = 0x801783D4;
gFogNear = 0x801783D8; gFogNear = 0x801783D8;
gFogFar = 0x801783DC; gFogFar = 0x801783DC;
D_ctx_80178410 = 0x80178410; gStarCount = 0x80178410;
D_ctx_80178420 = 0x80178420; gStarfieldX = 0x80178420;
D_ctx_80178424 = 0x80178424; gStarfieldY = 0x80178424;
D_ctx_80178428 = 0x80178428; gStarfieldRoll = 0x80178428;
D_ctx_8017842C = 0x8017842C; D_ctx_8017842C = 0x8017842C;
D_ctx_80178430 = 0x80178430; D_ctx_80178430 = 0x80178430;
D_ctx_80178440 = 0x80178440; D_ctx_80178440 = 0x80178440;
@ -673,7 +673,7 @@ func_play_800A3FEC = 0x800A3FEC;
func_play_800A4460 = 0x800A4460; func_play_800A4460 = 0x800A4460;
func_play_800A46A0 = 0x800A46A0; func_play_800A46A0 = 0x800A46A0;
func_play_800A4C40 = 0x800A4C40; func_play_800A4C40 = 0x800A4C40;
Object_58_Initialize = 0x800A4F4C; Scenery360_Initialize = 0x800A4F4C;
func_play_800A4F7C = 0x800A4F7C; func_play_800A4F7C = 0x800A4F7C;
func_play_800A5330 = 0x800A5330; func_play_800A5330 = 0x800A5330;
func_play_800A5338 = 0x800A5338; func_play_800A5338 = 0x800A5338;
@ -681,7 +681,7 @@ func_play_800A55B0 = 0x800A55B0;
func_play_800A57E0 = 0x800A57E0; func_play_800A57E0 = 0x800A57E0;
Play_Setup = 0x800A5844; Play_Setup = 0x800A5844;
func_play_800A594C = 0x800A594C; func_play_800A594C = 0x800A594C;
func_play_800A5D6C = 0x800A5D6C; Play_SetupStarfield = 0x800A5D6C;
func_play_800A5EBC = 0x800A5EBC; func_play_800A5EBC = 0x800A5EBC;
func_play_800A5FA0 = 0x800A5FA0; func_play_800A5FA0 = 0x800A5FA0;
func_play_800A6028 = 0x800A6028; func_play_800A6028 = 0x800A6028;
@ -743,7 +743,7 @@ func_play_800B2C00 = 0x800B2C00;
func_play_800B3010 = 0x800B3010; func_play_800B3010 = 0x800B3010;
func_play_800B3314 = 0x800B3314; func_play_800B3314 = 0x800B3314;
func_play_800B39E0 = 0x800B39E0; func_play_800B39E0 = 0x800B39E0;
func_play_800B40AC = 0x800B40AC; Player_UpdateShields = 0x800B40AC;
func_play_800B415C = 0x800B415C; func_play_800B415C = 0x800B415C;
func_play_800B41E0 = 0x800B41E0; func_play_800B41E0 = 0x800B41E0;
func_play_800B41EC = 0x800B41EC; func_play_800B41EC = 0x800B41EC;
@ -768,7 +768,7 @@ func_play_800B86A4 = 0x800B86A4;
Play_Main = 0x800B86CC; Play_Main = 0x800B86CC;
D_tank_800C9F2C = 0x800C9F2C; D_tank_800C9F2C = 0x800C9F2C;
gHitboxNone = 0x800CBF34; gNoHitbox = 0x800CBF34;
D_bg_8015F970 = 0x8015F970; D_bg_8015F970 = 0x8015F970;
D_bg_8015F984 = 0x8015F984; D_bg_8015F984 = 0x8015F984;
D_ctx_8017796C = 0x8017796C; D_ctx_8017796C = 0x8017796C;

View File

@ -89,7 +89,7 @@ Zoness_8019B1F0 = 0x8019B1F0;//segment:ovl_i3
Zoness_8019B810 = 0x8019B810;//segment:ovl_i3 Zoness_8019B810 = 0x8019B810;//segment:ovl_i3
Zoness_8019C200 = 0x8019C200;//segment:ovl_i3 Zoness_8019C200 = 0x8019C200;//segment:ovl_i3
Zoness_Actor247_Init = 0x8019D060;//segment:ovl_i3 Zoness_Actor247_Init = 0x8019D060;//segment:ovl_i3
Solar_801A7930 = 0x801A7930;//segment:ovl_i3 Solar_LevelComplete = 0x801A7930;//segment:ovl_i3
Aquas_801A9448 = 0x801A9448;//segment:ovl_i3 Aquas_801A9448 = 0x801A9448;//segment:ovl_i3
Aquas_801A94EC = 0x801A94EC;//segment:ovl_i3 Aquas_801A94EC = 0x801A94EC;//segment:ovl_i3
Aquas_801A958C = 0x801A958C;//segment:ovl_i3 Aquas_801A958C = 0x801A958C;//segment:ovl_i3

View File

@ -2451,7 +2451,7 @@ u8* Audio_UpdateFrequencyAnalysis(void) {
return D_8014A958; return D_8014A958;
} }
void func_8001C8B8(u8 playerId) { void Audio_StartPlayerNoise(u8 playerId) {
u32 sfxId = 0x00000000; u32 sfxId = 0x00000000;
sPlayerNoise[playerId].form = gPlayer[playerId].sfx.form; sPlayerNoise[playerId].form = gPlayer[playerId].sfx.form;
@ -2743,7 +2743,7 @@ void func_8001D780(u8 audioType) {
} }
} }
void func_8001D8A8(u8 audioType, u8 volume) { void Audio_SetVolume(u8 audioType, u8 volume) {
if (volume > 99) { if (volume > 99) {
volume = 99; volume = 99;
} }

View File

@ -170,8 +170,8 @@ void AllRange_GreatFoxRepair(Player* player) {
gCsFrameCount++; gCsFrameCount++;
switch (player->unk_1D0) { switch (player->unk_1D0) {
case 0: case 0:
player->unk_1F4 = player->timer_498 = player->damage = player->unk_280 = player->unk_2BC = player->unk_2B4 = player->unk_1F4 = player->timer_498 = player->damage = player->unk_280 = player->boostMeter =
player->somersault = gCsFrameCount = 0; player->boostCooldown = player->somersault = gCsFrameCount = 0;
player->unk_130 = player->camRoll = player->unk_110 = player->unk_08C = player->unk_0D8.x = player->unk_130 = player->camRoll = player->unk_110 = player->unk_08C = player->unk_0D8.x =
player->unk_0D8.y = player->unk_0D8.z = player->unk_134 = player->unk_4D8 = 0.0f; player->unk_0D8.y = player->unk_0D8.z = player->unk_134 = player->unk_4D8 = 0.0f;
gCsCamEyeX = 1673.0f; gCsCamEyeX = 1673.0f;
@ -307,7 +307,7 @@ void AllRange_ClearRadio(void) {
void func_360_8002EE64(Actor* this) { void func_360_8002EE64(Actor* this) {
s32 i; s32 i;
s32 colId; s32 colId;
Object_58* obj58; Scenery360* scenery360;
Vec3f temp1; Vec3f temp1;
f32 temp4; f32 temp4;
f32 temp5; f32 temp5;
@ -324,16 +324,17 @@ void func_360_8002EE64(Actor* this) {
this->fwork[25] = this->fwork[26] = this->fwork[28] = this->fwork[27] = 0.0f; this->fwork[25] = this->fwork[26] = this->fwork[28] = this->fwork[27] = 0.0f;
if ((this->unk_0C9 != 0) && (gLevelMode == LEVELMODE_ALL_RANGE) && (gLevelType == LEVELTYPE_PLANET)) { if ((this->unk_0C9 != 0) && (gLevelMode == LEVELMODE_ALL_RANGE) && (gLevelType == LEVELTYPE_PLANET)) {
for (i = 0, obj58 = gObjects58; i < 200; i++, obj58++) { for (i = 0, scenery360 = gScenery360; i < 200; i++, scenery360++) {
if ((obj58->obj.status == OBJ_ACTIVE) && if ((scenery360->obj.status == OBJ_ACTIVE) &&
((obj58->obj.id == OBJ_80_150) || (obj58->obj.id == OBJ_80_149) || (obj58->obj.id == OBJ_80_148) || ((scenery360->obj.id == OBJ_SCENERY_150) || (scenery360->obj.id == OBJ_SCENERY_149) ||
(obj58->obj.id == OBJ_80_1) || (obj58->obj.id == OBJ_80_3)) && (scenery360->obj.id == OBJ_SCENERY_148) || (scenery360->obj.id == OBJ_SCENERY_1) ||
(fabsf(obj58->obj.pos.x - this->obj.pos.x) < 2500.0f) && (scenery360->obj.id == OBJ_SCENERY_3)) &&
(fabsf(obj58->obj.pos.z - this->obj.pos.z) < 2500.0f)) { (fabsf(scenery360->obj.pos.x - this->obj.pos.x) < 2500.0f) &&
temp1.x = obj58->obj.pos.x; (fabsf(scenery360->obj.pos.z - this->obj.pos.z) < 2500.0f)) {
temp1.y = obj58->obj.pos.y; temp1.x = scenery360->obj.pos.x;
temp1.z = obj58->obj.pos.z; temp1.y = scenery360->obj.pos.y;
temp4 = obj58->obj.rot.y; temp1.z = scenery360->obj.pos.z;
temp4 = scenery360->obj.rot.y;
Matrix_RotateY(gCalcMatrix, -temp4 * M_DTOR, MTXF_NEW); Matrix_RotateY(gCalcMatrix, -temp4 * M_DTOR, MTXF_NEW);
spE4.x = this->obj.pos.x - temp1.x; spE4.x = this->obj.pos.x - temp1.x;
@ -347,8 +348,8 @@ void func_360_8002EE64(Actor* this) {
spC0.z = temp1.z; // fake? weird ordering spC0.z = temp1.z; // fake? weird ordering
spCC.y = spD8.y + temp1.y; spCC.y = spD8.y + temp1.y;
spCC.z = spD8.z + temp1.z; spCC.z = spD8.z + temp1.z;
if ((obj58->obj.id == OBJ_80_149) || (obj58->obj.id == OBJ_80_150)) { if ((scenery360->obj.id == OBJ_SCENERY_149) || (scenery360->obj.id == OBJ_SCENERY_150)) {
if (obj58->obj.id == OBJ_80_149) { if (scenery360->obj.id == OBJ_SCENERY_149) {
colId = COL1_5; colId = COL1_5;
} else { } else {
colId = COL1_6; colId = COL1_6;
@ -361,7 +362,7 @@ void func_360_8002EE64(Actor* this) {
} }
} else { } else {
colId = COL2_0; colId = COL2_0;
if (obj58->obj.id == OBJ_80_3) { if (scenery360->obj.id == OBJ_SCENERY_3) {
colId = COL2_3; colId = COL2_3;
} }
if (func_col2_800A3690(&spCC, &spC0, colId, &spB4)) { if (func_col2_800A3690(&spCC, &spC0, colId, &spB4)) {
@ -706,7 +707,7 @@ void ActorAllRange_UpdateEvents(Actor* this) {
Katina_80198594(this); Katina_80198594(this);
break; break;
case LEVEL_BOLSE: case LEVEL_BOLSE:
Bolse_8018C158(this); Bolse_UpdateEventHandler(this);
break; break;
case LEVEL_SECTOR_Z: case LEVEL_SECTOR_Z:
SectorZ_8019AB8C(this); SectorZ_8019AB8C(this);
@ -734,11 +735,11 @@ s32 func_360_800301F4(Actor* actor) {
temp_ft4 = actor->fwork[9] * 10.0f + (sp1C * 650.0f); temp_ft4 = actor->fwork[9] * 10.0f + (sp1C * 650.0f);
temp_ft5 = actor->fwork[9] * 10.0f + (sp18 * 650.0f); temp_ft5 = actor->fwork[9] * 10.0f + (sp18 * 650.0f);
for (i = 0; i < 200; i++) { for (i = 0; i < 200; i++) {
if ((gObjects58[i].obj.status == OBJ_ACTIVE) && if ((gScenery360[i].obj.status == OBJ_ACTIVE) &&
(fabsf(gObjects58[i].obj.pos.x - (actor->obj.pos.x + temp_ft4)) < 1000.0f) && (fabsf(gScenery360[i].obj.pos.x - (actor->obj.pos.x + temp_ft4)) < 1000.0f) &&
(fabsf(gObjects58[i].obj.pos.z - (actor->obj.pos.z + temp_ft5)) < 1000.0f)) { (fabsf(gScenery360[i].obj.pos.z - (actor->obj.pos.z + temp_ft5)) < 1000.0f)) {
if (fabsf(gObjects58[i].obj.pos.y - actor->obj.pos.y) < 1000.0f) { if (fabsf(gScenery360[i].obj.pos.y - actor->obj.pos.y) < 1000.0f) {
if (gObjects58[i].obj.pos.y < actor->obj.pos.y) { if (gScenery360[i].obj.pos.y < actor->obj.pos.y) {
return 1; return 1;
} else { } else {
return -1; return -1;
@ -761,7 +762,7 @@ s32 func_360_800301F4(Actor* actor) {
} }
s32 func_360_8003049C(Actor* actor) { s32 func_360_8003049C(Actor* actor) {
Object_58* obj58; Scenery360* scenery360;
s32 i; s32 i;
f32 sp44; f32 sp44;
f32 sp40; f32 sp40;
@ -783,10 +784,11 @@ s32 func_360_8003049C(Actor* actor) {
temp_fa0 = actor->fwork[9] * 10.0f + (sp40 * 650.0f); temp_fa0 = actor->fwork[9] * 10.0f + (sp40 * 650.0f);
temp_ft4 = actor->fwork[9] * 10.0f + (sp3C * 650.0f); temp_ft4 = actor->fwork[9] * 10.0f + (sp3C * 650.0f);
if (gLevelMode == LEVELMODE_ALL_RANGE) { if (gLevelMode == LEVELMODE_ALL_RANGE) {
for (i = 0, obj58 = gObjects58; i < 200; i++, obj58++) { for (i = 0, scenery360 = gScenery360; i < 200; i++, scenery360++) {
if ((obj58->obj.status == OBJ_ACTIVE) && if ((scenery360->obj.status == OBJ_ACTIVE) &&
(fabsf(obj58->obj.pos.x - (actor->obj.pos.x + temp_fa0)) < 1200.0f) && (fabsf(scenery360->obj.pos.x - (actor->obj.pos.x + temp_fa0)) < 1200.0f) &&
(fabsf(obj58->obj.pos.z - (actor->obj.pos.z + temp_ft4)) < 1200.0f) && (actor->obj.pos.y < 650.0f)) { (fabsf(scenery360->obj.pos.z - (actor->obj.pos.z + temp_ft4)) < 1200.0f) &&
(actor->obj.pos.y < 650.0f)) {
return 1; return 1;
} }
} }
@ -1245,8 +1247,8 @@ void ActorAllRange_Update(Actor* this) {
this->iwork[16] = 0; this->iwork[16] = 0;
} }
} }
if ((this->timer_0CA[0] != 0) && (gCurrentLevel != LEVEL_VENOM_2) && (this->aiType < AI360_10) && if ((this->lockOnTimers[0] != 0) && (gCurrentLevel != LEVEL_VENOM_2) && (this->aiType < AI360_10) &&
(this->timer_0CA[0] < 5) && ((gGameFrameCount % 32) == 0)) { (this->lockOnTimers[0] < 5) && ((gGameFrameCount % 32) == 0)) {
this->iwork[16] = 10; this->iwork[16] = 10;
} }
if ((this->iwork[16] != 0) && (this->state < 7)) { if ((this->iwork[16] != 0) && (this->state < 7)) {
@ -1940,7 +1942,7 @@ void ActorAllRange_Update(Actor* this) {
if (spD8 < 0.0f) { if (spD8 < 0.0f) {
spD8 += 360.0f; spD8 += 360.0f;
} }
} else if ((this->obj.pos.y < (gGroundLevel + 50.0f)) && (spD8 > 180.0f)) { } else if ((this->obj.pos.y < (gGroundHeight + 50.0f)) && (spD8 > 180.0f)) {
spD8 = 0.0f; spD8 = 0.0f;
this->unk_0F4.x = 0.0f; this->unk_0F4.x = 0.0f;
} }
@ -1954,7 +1956,7 @@ void ActorAllRange_Update(Actor* this) {
} }
if ((this->fwork[7] > 0.01f) && (this->fwork[7] < 359.9f)) { if ((this->fwork[7] > 0.01f) && (this->fwork[7] < 359.9f)) {
if ((((gGameFrameCount + 15) % 32) == 0) && (gCurrentLevel != LEVEL_VENOM_2)) { if ((((gGameFrameCount + 15) % 32) == 0) && (gCurrentLevel != LEVEL_VENOM_2)) {
this->timer_0CA[0] = 0; this->lockOnTimers[0] = 0;
} }
} else { } else {
Math_SmoothStepToAngle(&this->obj.rot.z, spD0, 0.1f, 3.0f, 0.01f); Math_SmoothStepToAngle(&this->obj.rot.z, spD0, 0.1f, 3.0f, 0.01f);
@ -2003,8 +2005,8 @@ void ActorAllRange_Update(Actor* this) {
this->fwork[13] -= (this->fwork[13] * 0.1f); this->fwork[13] -= (this->fwork[13] * 0.1f);
this->fwork[14] -= (this->fwork[14] * 0.1f); this->fwork[14] -= (this->fwork[14] * 0.1f);
this->fwork[12] -= (this->fwork[12] * 0.1f); this->fwork[12] -= (this->fwork[12] * 0.1f);
if ((this->obj.pos.y < gGroundLevel + 40.0f) && (this->vel.y < 0.0f)) { if ((this->obj.pos.y < gGroundHeight + 40.0f) && (this->vel.y < 0.0f)) {
this->obj.pos.y = gGroundLevel + 40.0f; this->obj.pos.y = gGroundHeight + 40.0f;
this->vel.y = 0.0f; this->vel.y = 0.0f;
} }
if (this->iwork[0] != 0) { if (this->iwork[0] != 0) {
@ -2261,7 +2263,7 @@ void ActorAllRange_Draw(ActorAllRange* this) {
Actor_DrawEngineAndContrails(this); Actor_DrawEngineAndContrails(this);
break; break;
case AI360_GREAT_FOX: case AI360_GREAT_FOX:
func_edisplay_8005F670(&this->obj.pos); Display_SetSecondLight(&this->obj.pos);
this->unk_0B6 = 1; this->unk_0B6 = 1;
Actor195_Draw(this); Actor195_Draw(this);
break; break;

View File

@ -1,4 +1,3 @@
#include "structs.h"
#include "macros.h" #include "macros.h"
#include "variables.h" #include "variables.h"
#include "assets/ast_aquas.h" #include "assets/ast_aquas.h"

View File

@ -58,16 +58,16 @@ void func_beam_80035E78(PlayerShot* shot) {
shot->unk_58 = 150; shot->unk_58 = 150;
func_8001CE28(shot->playerNum, shot->sfxSource); func_8001CE28(shot->playerNum, shot->sfxSource);
gScreenFlashTimer = 4; gScreenFlashTimer = 4;
if (shot->obj.pos.y < (gGroundLevel + 450.0f)) { if (shot->obj.pos.y < (gGroundHeight + 450.0f)) {
gCameraShake = 15; gCameraShake = 15;
if (gGroundType == GROUNDTYPE_WATER) { if (gGroundType == GROUNDTYPE_WATER) {
func_effect_8007D9DC(shot->obj.pos.x, gGroundLevel + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f, func_effect_8007D9DC(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
shot->unk_48 * 3.0f, 0); shot->unk_48 * 3.0f, 0);
func_effect_8007D9DC(shot->obj.pos.x, gGroundLevel + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f, func_effect_8007D9DC(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
shot->unk_48 * 3.0f, 5); shot->unk_48 * 3.0f, 5);
func_effect_8007D9DC(shot->obj.pos.x, gGroundLevel + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f, func_effect_8007D9DC(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
shot->unk_48 * 3.0f, 10); shot->unk_48 * 3.0f, 10);
func_effect_8007ADF4(shot->obj.pos.x, gGroundLevel, shot->obj.pos.z, shot->unk_48 * 0.05f, func_effect_8007ADF4(shot->obj.pos.x, gGroundHeight, shot->obj.pos.z, shot->unk_48 * 0.05f,
shot->unk_48 * 0.5f); shot->unk_48 * 0.5f);
func_effect_8007A6F0(&shot->obj.pos, 0x19000014); func_effect_8007A6F0(&shot->obj.pos, 0x19000014);
} else { } else {
@ -83,8 +83,8 @@ void func_beam_80035E78(PlayerShot* shot) {
if (var_fv1 > 2.0f) { if (var_fv1 > 2.0f) {
var_fv1 = 2.0f; var_fv1 = 2.0f;
} }
func_effect_8007B550(shot->obj.pos.x, gGroundLevel + 6.0f, shot->obj.pos.z, shot->unk_48 * (1.5f + var_fv1), func_effect_8007B550(shot->obj.pos.x, gGroundHeight + 6.0f, shot->obj.pos.z,
var_fv0); shot->unk_48 * (1.5f + var_fv1), var_fv0);
} }
if (gVersusMode) { if (gVersusMode) {
@ -129,21 +129,21 @@ void func_beam_80036318(PlayerShot* shot) {
shot->obj.pos.z = D_ctx_80178498; // strange order on the globals shot->obj.pos.z = D_ctx_80178498; // strange order on the globals
shot->obj.pos.y = D_ctx_801784A0; shot->obj.pos.y = D_ctx_801784A0;
shot->obj.pos.x = D_ctx_8017849C; shot->obj.pos.x = D_ctx_8017849C;
if ((shot->obj.id == PLAYERSHOT_3) || if ((shot->obj.id == PLAYERSHOT_BOMB) ||
((gCurrentLevel != LEVEL_AQUAS) && (shot->obj.id == PLAYERSHOT_8) && (shot->unk_5C != 0))) { ((gCurrentLevel != LEVEL_AQUAS) && (shot->obj.id == PLAYERSHOT_8) && (shot->unk_5C != 0))) {
if (shot->obj.id == PLAYERSHOT_8) { if (shot->obj.id == PLAYERSHOT_8) {
shot->obj.id = PLAYERSHOT_3; shot->obj.id = PLAYERSHOT_BOMB;
shot->unk_5C = 0; shot->unk_5C = 0;
} }
func_beam_80035E78(shot); func_beam_80035E78(shot);
} else if (shot->obj.id == PLAYERSHOT_8) { } else if (shot->obj.id == PLAYERSHOT_8) {
shot->unk_44 = 7.5f; shot->unk_44 = 7.5f;
for (i = 0; i < ARRAY_COUNT(gActors); i++) { for (i = 0; i < ARRAY_COUNT(gActors); i++) {
gActors[i].timer_0CA[shot->playerNum] = 0; gActors[i].lockOnTimers[shot->playerNum] = 0;
} }
shot->vel.x = shot->vel.y = shot->vel.z = 0.0f; shot->vel.x = shot->vel.y = shot->vel.z = 0.0f;
if (gCurrentLevel == LEVEL_AQUAS) { if (gCurrentLevel == LEVEL_AQUAS) {
D_ctx_80178360 = D_ctx_80178364 = D_ctx_80178368 = 0; gLight3R = gLight3G = gLight3B = 0;
func_effect_8007B344(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 10.0f, 4); func_effect_8007B344(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 10.0f, 4);
func_effect_8007C120(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 0.0f, 0.0f, 0.0f, 0.3f, 30); func_effect_8007C120(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 0.0f, 0.0f, 0.0f, 0.3f, 30);
} else { } else {
@ -303,12 +303,13 @@ s32 func_beam_80036874(PlayerShot* shot, f32* hitboxData, Object* obj) {
Object_Kill(&shot->obj, shot->sfxSource); Object_Kill(&shot->obj, shot->sfxSource);
return 0; return 0;
} }
if ((obj->id < 176) || (obj->id >= 292)) { if ((obj->id <= OBJ_SPRITE_GFOX_TARGET) || (obj->id >= OBJ_BOSS_292)) {
func_beam_80036318(shot); func_beam_80036318(shot);
} }
if ((obj->id == 15) || ((obj->id == 22) && (i == 0)) || ((obj->id == 10) && (i == 0)) || if ((obj->id == OBJ_SCENERY_15) || ((obj->id == OBJ_SCENERY_22) && (i == 0)) ||
((obj->id == 13) && (i == 0)) || ((obj->id == 12) && (i < 3)) || (obj->id == 16) || ((obj->id == OBJ_SCENERY_10) && (i == 0)) || ((obj->id == OBJ_SCENERY_13) && (i == 0)) ||
(obj->id == 14)) { ((obj->id == OBJ_SCENERY_12) && (i < 3)) || (obj->id == OBJ_SCENERY_16) ||
(obj->id == OBJ_SCENERY_14)) {
if (shot->obj.pos.x - (obj->pos.x + hitbox->x.offset) < -hitbox->x.size) { if (shot->obj.pos.x - (obj->pos.x + hitbox->x.offset) < -hitbox->x.size) {
if (hitbox->z.size + (obj->pos.z + hitbox->z.offset) < shot->obj.pos.z) { if (hitbox->z.size + (obj->pos.z + hitbox->z.offset) < shot->obj.pos.z) {
shot->obj.pos.z = hitbox->z.size + (obj->pos.z + hitbox->z.offset) - 5.0f; shot->obj.pos.z = hitbox->z.size + (obj->pos.z + hitbox->z.offset) - 5.0f;
@ -335,7 +336,7 @@ s32 func_beam_80036874(PlayerShot* shot, f32* hitboxData, Object* obj) {
obj->pos.z, 0.0f, 0.0f, 0.0f, 2.0f, 1, 20); obj->pos.z, 0.0f, 0.0f, 0.0f, 2.0f, 1, 20);
return i + 1; return i + 1;
} }
if (obj->id < 161) { if (obj->id <= OBJ_SCENERY_160) {
func_effect_8007A6F0(&shot->obj.pos, 0x29121007); func_effect_8007A6F0(&shot->obj.pos, 0x29121007);
} }
return i + 1; return i + 1;
@ -485,7 +486,7 @@ bool func_beam_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) {
sp7C.z = obj->pos.z - shot->obj.pos.z; sp7C.z = obj->pos.z - shot->obj.pos.z;
// undefined behavior: if this check fails, the function returns no value // undefined behavior: if this check fails, the function returns no value
if (((fabsf(sp7C.x) < 1100.0f) && (fabsf(sp7C.z) < 1100.0f) && (shot->obj.pos.y < 900.0f)) || if (((fabsf(sp7C.x) < 1100.0f) && (fabsf(sp7C.z) < 1100.0f) && (shot->obj.pos.y < 900.0f)) ||
(objId == OBJ_BOSS_313) || (objId == ACTOR_EVENT_ID) || (objId == OBJ_80_39)) { (objId == OBJ_BOSS_313) || (objId == ACTOR_EVENT_ID) || (objId == OBJ_SCENERY_39)) {
Matrix_RotateY(gCalcMatrix, -obj->rot.y * M_DTOR, MTXF_NEW); Matrix_RotateY(gCalcMatrix, -obj->rot.y * M_DTOR, MTXF_NEW);
sp7C.x = shot->obj.pos.x - obj->pos.x; sp7C.x = shot->obj.pos.x - obj->pos.x;
sp7C.y = shot->obj.pos.y - obj->pos.y; sp7C.y = shot->obj.pos.y - obj->pos.y;
@ -506,15 +507,15 @@ bool func_beam_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) {
case OBJ_ACTOR_180: case OBJ_ACTOR_180:
objId = COL1_0; objId = COL1_0;
break; break;
case OBJ_80_4: case OBJ_SCENERY_4:
case OBJ_80_5: case OBJ_SCENERY_5:
objId = COL2_1; objId = COL2_1;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_149: case OBJ_SCENERY_149:
objId = COL1_5; objId = COL1_5;
break; break;
case OBJ_80_150: case OBJ_SCENERY_150:
objId = COL1_6; objId = COL1_6;
break; break;
case OBJ_BOSS_308: case OBJ_BOSS_308:
@ -532,71 +533,71 @@ bool func_beam_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) {
case OBJ_BOSS_313: case OBJ_BOSS_313:
objId = COL1_8; objId = COL1_8;
break; break;
case OBJ_80_39: case OBJ_SCENERY_39:
objId = COL1_1; objId = COL1_1;
break; break;
case OBJ_80_120: case OBJ_SCENERY_120:
objId = COL2_18; objId = COL2_18;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_143: case OBJ_SCENERY_143:
objId = COL2_17; objId = COL2_17;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_124: case OBJ_SCENERY_124:
objId = COL2_15; objId = COL2_15;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_126: case OBJ_SCENERY_126:
objId = COL2_16; objId = COL2_16;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_47: case OBJ_SCENERY_47:
objId = COL2_7; objId = COL2_7;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_2: case OBJ_SCENERY_2:
objId = COL2_2; objId = COL2_2;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_3: case OBJ_SCENERY_3:
case OBJ_80_69: case OBJ_SCENERY_69:
objId = COL2_3; objId = COL2_3;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_140: case OBJ_SCENERY_140:
objId = COL2_4; objId = COL2_4;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_141: case OBJ_SCENERY_141:
objId = COL2_6; objId = COL2_6;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_117: case OBJ_SCENERY_117:
objId = COL2_14; objId = COL2_14;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_70: case OBJ_SCENERY_70:
objId = COL2_8; objId = COL2_8;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_72: case OBJ_SCENERY_72:
objId = COL2_9; objId = COL2_9;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_71: case OBJ_SCENERY_71:
objId = COL2_10; objId = COL2_10;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_73: case OBJ_SCENERY_73:
objId = COL2_11; objId = COL2_11;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_67: case OBJ_SCENERY_67:
objId = COL2_12; objId = COL2_12;
useCol2 = true; useCol2 = true;
break; break;
case OBJ_80_74: case OBJ_SCENERY_74:
objId = COL2_13; objId = COL2_13;
useCol2 = true; useCol2 = true;
break; break;
@ -678,13 +679,13 @@ void func_beam_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) {
} else { } else {
actor->unk_0D0 = 2; actor->unk_0D0 = 2;
actor->damage = 30; actor->damage = 30;
actor->timer_0CA[shot->playerNum] = 0; actor->lockOnTimers[shot->playerNum] = 0;
} }
} }
actor->unk_0D4 = shot->playerNum + 1; actor->unk_0D4 = shot->playerNum + 1;
actor->unk_0D8.x = shot->obj.pos.x; actor->hitPos.x = shot->obj.pos.x;
actor->unk_0D8.y = shot->obj.pos.y; actor->hitPos.y = shot->obj.pos.y;
actor->unk_0D8.z = shot->obj.pos.z; actor->hitPos.z = shot->obj.pos.z;
if (((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0D2 == 0) && if (((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0D2 == 0) &&
((actor->unk_0B4 == EINFO_48) || (actor->unk_0B4 == EINFO_49) || (actor->unk_0B4 == EINFO_50))) || ((actor->unk_0B4 == EINFO_48) || (actor->unk_0B4 == EINFO_49) || (actor->unk_0B4 == EINFO_50))) ||
((actor->obj.id == OBJ_ACTOR_ALLRANGE) && (actor->fwork[23] > 1.0f)) || ((actor->obj.id == OBJ_ACTOR_ALLRANGE) && (actor->fwork[23] > 1.0f)) ||
@ -695,7 +696,7 @@ void func_beam_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) {
if ((actor->obj.id == OBJ_ACTOR_261) && (actor->state < 2)) { if ((actor->obj.id == OBJ_ACTOR_261) && (actor->state < 2)) {
actor->state = 2; actor->state = 2;
} }
if ((shot->obj.id == PLAYERSHOT_8) || (shot->obj.id == PLAYERSHOT_3)) { if ((shot->obj.id == PLAYERSHOT_8) || (shot->obj.id == PLAYERSHOT_BOMB)) {
func_beam_80036318(shot); func_beam_80036318(shot);
} else { } else {
shot->unk_64 = 25; shot->unk_64 = 25;
@ -730,9 +731,9 @@ void func_beam_80038140(PlayerShot* shot) {
Vec3f sp7C; Vec3f sp7C;
Actor* actor; Actor* actor;
Boss* boss; Boss* boss;
Object_58* obj58; Scenery360* scenery360;
Sprite* sprite; Sprite* sprite;
Object_80* obj80; Scenery* scenery;
Effect* effect; Effect* effect;
bool sp60; bool sp60;
Player* player; Player* player;
@ -898,32 +899,35 @@ void func_beam_80038140(PlayerShot* shot) {
} }
if ((gLevelMode == LEVELMODE_ALL_RANGE) && (shot->playerNum < 110)) { if ((gLevelMode == LEVELMODE_ALL_RANGE) && (shot->playerNum < 110)) {
for (i = 0, obj58 = gObjects58; i < 200; i++, obj58++) { for (i = 0, scenery360 = gScenery360; i < 200; i++, scenery360++) {
if (obj58->obj.status == OBJ_ACTIVE) { if (scenery360->obj.status == OBJ_ACTIVE) {
if ((obj58->obj.id == OBJ_80_117) || (obj58->obj.id == OBJ_80_141) || (obj58->obj.id == OBJ_80_149) || if ((scenery360->obj.id == OBJ_SCENERY_117) || (scenery360->obj.id == OBJ_SCENERY_141) ||
(obj58->obj.id == OBJ_80_150) || (obj58->obj.id == OBJ_80_148) || (obj58->obj.id == OBJ_80_143) || (scenery360->obj.id == OBJ_SCENERY_149) || (scenery360->obj.id == OBJ_SCENERY_150) ||
(obj58->obj.id == OBJ_80_160) || (obj58->obj.id == OBJ_80_1) || (obj58->obj.id == OBJ_80_3) || (scenery360->obj.id == OBJ_SCENERY_148) || (scenery360->obj.id == OBJ_SCENERY_143) ||
(obj58->obj.id == OBJ_80_140)) { (scenery360->obj.id == OBJ_SCENERY_160) || (scenery360->obj.id == OBJ_SCENERY_1) ||
func_beam_8003774C(shot, obj58->obj.id, &obj58->obj); (scenery360->obj.id == OBJ_SCENERY_3) || (scenery360->obj.id == OBJ_SCENERY_140)) {
func_beam_8003774C(shot, scenery360->obj.id, &scenery360->obj);
} else { } else {
func_beam_80036874(shot, obj58->info.hitbox, &obj58->obj); func_beam_80036874(shot, scenery360->info.hitbox, &scenery360->obj);
} }
} }
} }
} else { } else {
for (i = 0, obj80 = gObjects80; i < 50; i++, obj80++) { for (i = 0, scenery = gScenery; i < 50; i++, scenery++) {
if (obj80->obj.status == OBJ_ACTIVE) { if (scenery->obj.status == OBJ_ACTIVE) {
if ((obj80->obj.id == OBJ_80_1) || (obj80->obj.id == OBJ_80_39) || (obj80->obj.id == OBJ_80_4) || if ((scenery->obj.id == OBJ_SCENERY_1) || (scenery->obj.id == OBJ_SCENERY_39) ||
(obj80->obj.id == OBJ_80_5) || (obj80->obj.id == OBJ_80_120) || (obj80->obj.id == OBJ_80_124) || (scenery->obj.id == OBJ_SCENERY_4) || (scenery->obj.id == OBJ_SCENERY_5) ||
(obj80->obj.id == OBJ_80_126) || (obj80->obj.id == OBJ_80_47) || (obj80->obj.id == OBJ_80_2) || (scenery->obj.id == OBJ_SCENERY_120) || (scenery->obj.id == OBJ_SCENERY_124) ||
(obj80->obj.id == OBJ_80_3) || (obj80->obj.id == OBJ_80_67) || (obj80->obj.id == OBJ_80_74) || (scenery->obj.id == OBJ_SCENERY_126) || (scenery->obj.id == OBJ_SCENERY_47) ||
(obj80->obj.id == OBJ_80_3)) { (scenery->obj.id == OBJ_SCENERY_2) || (scenery->obj.id == OBJ_SCENERY_3) ||
func_beam_8003774C(shot, obj80->obj.id, &obj80->obj); (scenery->obj.id == OBJ_SCENERY_67) || (scenery->obj.id == OBJ_SCENERY_74) ||
(scenery->obj.id == OBJ_SCENERY_3)) {
func_beam_8003774C(shot, scenery->obj.id, &scenery->obj);
} else { } else {
temp_v0 = func_beam_80036874(shot, obj80->info.hitbox, &obj80->obj); temp_v0 = func_beam_80036874(shot, scenery->info.hitbox, &scenery->obj);
if (temp_v0 != 0) { if (temp_v0 != 0) {
obj80->dmgType = 1; scenery->dmgType = 1;
obj80->dmgPart = temp_v0 - 1; scenery->dmgPart = temp_v0 - 1;
} }
} }
} }
@ -987,7 +991,7 @@ void func_beam_80038140(PlayerShot* shot) {
break; break;
} }
boss->dmgType = DMG_BEAM; boss->dmgType = DMG_BEAM;
if (shot->obj.id == PLAYERSHOT_3) { if (shot->obj.id == PLAYERSHOT_BOMB) {
boss->dmgType = DMG_BOMB; boss->dmgType = DMG_BOMB;
boss->damage = 20; boss->damage = 20;
} else if (shot->obj.id == PLAYERSHOT_8) { } else if (shot->obj.id == PLAYERSHOT_8) {
@ -1224,7 +1228,7 @@ void func_beam_80039A50(PlayerShot* shot) {
} }
} }
if (!sp104) { if (!sp104) {
if ((shot->obj.id != PLAYERSHOT_3) && (shot->unk_64 < 10) && !gVersusMode) { if ((shot->obj.id != PLAYERSHOT_BOMB) && (shot->unk_64 < 10) && !gVersusMode) {
Object_Kill(&shot->obj, shot->sfxSource); Object_Kill(&shot->obj, shot->sfxSource);
} }
} else { } else {
@ -1236,7 +1240,7 @@ void func_beam_80039A50(PlayerShot* shot) {
Matrix_RotateY(gGfxMatrix, shot->obj.rot.y * M_DTOR, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, shot->obj.rot.y * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, shot->obj.rot.x * M_DTOR, MTXF_APPLY); Matrix_RotateX(gGfxMatrix, shot->obj.rot.x * M_DTOR, MTXF_APPLY);
Matrix_RotateZ(gGfxMatrix, shot->obj.rot.z * M_DTOR, MTXF_APPLY); Matrix_RotateZ(gGfxMatrix, shot->obj.rot.z * M_DTOR, MTXF_APPLY);
if ((shot->obj.id == PLAYERSHOT_3) && (shot->unk_5C == 0)) { if ((shot->obj.id == PLAYERSHOT_BOMB) && (shot->unk_5C == 0)) {
Matrix_RotateZ(gGfxMatrix, shot->unk_34 * M_DTOR, MTXF_APPLY); Matrix_RotateZ(gGfxMatrix, shot->unk_34 * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gGfxMatrix, shot->unk_30 * M_DTOR, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, shot->unk_30 * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, shot->unk_2C * M_DTOR, MTXF_APPLY); Matrix_RotateX(gGfxMatrix, shot->unk_2C * M_DTOR, MTXF_APPLY);
@ -1249,7 +1253,7 @@ void func_beam_80039A50(PlayerShot* shot) {
case PLAYERSHOT_1: case PLAYERSHOT_1:
func_beam_80039210(shot); func_beam_80039210(shot);
break; break;
case PLAYERSHOT_3: case PLAYERSHOT_BOMB:
if (shot->unk_5C == 0) { if (shot->unk_5C == 0) {
RCP_SetupDL(&gMasterDisp, 0x1D); RCP_SetupDL(&gMasterDisp, 0x1D);
gSPDisplayList(gMasterDisp++, D_10231A0); gSPDisplayList(gMasterDisp++, D_10231A0);
@ -1395,7 +1399,7 @@ void func_beam_80039A50(PlayerShot* shot) {
gSPDisplayList(gMasterDisp++, D_AQ_600DB80); gSPDisplayList(gMasterDisp++, D_AQ_600DB80);
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, shot->obj.pos.x, gGroundLevel, shot->obj.pos.z + D_ctx_80177D20, Matrix_Translate(gGfxMatrix, shot->obj.pos.x, gGroundHeight, shot->obj.pos.z + D_ctx_80177D20,
MTXF_APPLY); MTXF_APPLY);
Matrix_Scale(gGfxMatrix, shot->unk_2C, shot->unk_30, shot->unk_34, MTXF_APPLY); Matrix_Scale(gGfxMatrix, shot->unk_2C, shot->unk_30, shot->unk_34, MTXF_APPLY);
RCP_SetupDL(&gMasterDisp, 0x31); RCP_SetupDL(&gMasterDisp, 0x31);
@ -1538,9 +1542,9 @@ void func_beam_8003B00C(PlayerShot* shot, Player* player) {
Matrix_Push(&gCalcMatrix); Matrix_Push(&gCalcMatrix);
func_beam_80038140(shot); func_beam_80038140(shot);
Matrix_Pop(&gCalcMatrix); Matrix_Pop(&gCalcMatrix);
if (shot->obj.pos.y < gGroundLevel) { if (shot->obj.pos.y < gGroundHeight) {
shot->unk_5C = 0; shot->unk_5C = 0;
func_beam_80036770(shot->obj.pos.x, gGroundLevel + 2.0f, shot->obj.pos.z, shot->obj.rot.y, 2.0f); func_beam_80036770(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->obj.rot.y, 2.0f);
break; break;
} else if (shot->unk_5C == 2) { } else if (shot->unk_5C == 2) {
shot->unk_5C = 0; shot->unk_5C = 0;
@ -1579,9 +1583,9 @@ void func_beam_8003B00C(PlayerShot* shot, Player* player) {
Object_Kill(&shot->obj, shot->sfxSource); Object_Kill(&shot->obj, shot->sfxSource);
} }
if (shot->unk_5C == 1) { if (shot->unk_5C == 1) {
if (shot->obj.pos.y < gGroundLevel) { if (shot->obj.pos.y < gGroundHeight) {
func_beam_80036318(shot); func_beam_80036318(shot);
func_beam_80036770(shot->obj.pos.x, gGroundLevel + 2.0f, shot->obj.pos.z, shot->obj.rot.y, 2.0f); func_beam_80036770(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->obj.rot.y, 2.0f);
if (gCurrentLevel == LEVEL_FORTUNA) { if (gCurrentLevel == LEVEL_FORTUNA) {
func_effect_8007BC7C(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f); func_effect_8007BC7C(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
func_effect_8007BC7C(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f); func_effect_8007BC7C(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
@ -1596,13 +1600,13 @@ void func_beam_8003B55C(PlayerShot* shot, s32 index) {
Vec3f sp44; Vec3f sp44;
Vec3f sp38; Vec3f sp38;
if ((gGroundType == GROUNDTYPE_WATER) && (shot->obj.pos.y < (gGroundLevel + 50.0f)) && (index == 0)) { if ((gGroundType == GROUNDTYPE_WATER) && (shot->obj.pos.y < (gGroundHeight + 50.0f)) && (index == 0)) {
func_effect_8007ACE0(shot->obj.pos.x, gGroundLevel, shot->obj.pos.z, 0.1f, 1.5f, shot->obj.rot.y + 20.0f); func_effect_8007ACE0(shot->obj.pos.x, gGroundHeight, shot->obj.pos.z, 0.1f, 1.5f, shot->obj.rot.y + 20.0f);
func_effect_8007ACE0(shot->obj.pos.x, gGroundLevel, shot->obj.pos.z, 0.1f, 1.5f, shot->obj.rot.y - 20.0f); func_effect_8007ACE0(shot->obj.pos.x, gGroundHeight, shot->obj.pos.z, 0.1f, 1.5f, shot->obj.rot.y - 20.0f);
} }
if ((shot->obj.pos.y < gGroundLevel) && (D_ctx_801784AC != 4)) { if ((shot->obj.pos.y < gGroundHeight) && (D_ctx_801784AC != 4)) {
func_beam_80036318(shot); func_beam_80036318(shot);
shot->obj.pos.y = gGroundLevel + 2; shot->obj.pos.y = gGroundHeight + 2;
if (gCurrentLevel == LEVEL_BOLSE) { if (gCurrentLevel == LEVEL_BOLSE) {
func_effect_8007A6F0(&shot->obj.pos, 0x29121007); func_effect_8007A6F0(&shot->obj.pos, 0x29121007);
} }
@ -1615,14 +1619,14 @@ void func_beam_8003B55C(PlayerShot* shot, s32 index) {
sp44.y = sp44.z = 0.0f; sp44.y = sp44.z = 0.0f;
sp44.x = 40.0f; sp44.x = 40.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38); Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38);
func_beam_80036770(shot->obj.pos.x + sp38.x, gGroundLevel + 2.0f, shot->obj.pos.z + sp38.z, func_beam_80036770(shot->obj.pos.x + sp38.x, gGroundHeight + 2.0f, shot->obj.pos.z + sp38.z,
shot->obj.rot.y, 2.0f); shot->obj.rot.y, 2.0f);
sp44.x = -40.0f; sp44.x = -40.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38); Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38);
func_beam_80036770(shot->obj.pos.x + sp38.x, gGroundLevel + 2.0f, shot->obj.pos.z + sp38.z, func_beam_80036770(shot->obj.pos.x + sp38.x, gGroundHeight + 2.0f, shot->obj.pos.z + sp38.z,
shot->obj.rot.y, 2.0f); shot->obj.rot.y, 2.0f);
} else { } else {
func_beam_80036770(shot->obj.pos.x, gGroundLevel + 2.0f, shot->obj.pos.z, shot->obj.rot.y, 2.0f); func_beam_80036770(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->obj.rot.y, 2.0f);
} }
} }
if (gGroundType == GROUNDTYPE_WATER) { if (gGroundType == GROUNDTYPE_WATER) {
@ -1695,10 +1699,10 @@ bool func_beam_8003BB4C(PlayerShot* shot) {
} }
for (i = 0, actor = gActors; i < 60; i++, actor++) { for (i = 0, actor = gActors; i < 60; i++, actor++) {
if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.unk_1C != 0.0f) && if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.unk_1C != 0.0f) &&
((actor->timer_0CA[shot->playerNum] == 0) && (fabsf(shot->obj.pos.x - actor->obj.pos.x) <= var_fa0) && ((actor->lockOnTimers[shot->playerNum] == 0) && (fabsf(shot->obj.pos.x - actor->obj.pos.x) <= var_fa0) &&
(fabsf(shot->obj.pos.y - (actor->obj.pos.y + actor->info.unk_1C)) <= var_fa0) && (fabsf(shot->obj.pos.y - (actor->obj.pos.y + actor->info.unk_1C)) <= var_fa0) &&
(fabsf(shot->obj.pos.z - actor->obj.pos.z) <= var_fa0))) { (fabsf(shot->obj.pos.z - actor->obj.pos.z) <= var_fa0))) {
actor->timer_0CA[shot->playerNum] = 20; actor->lockOnTimers[shot->playerNum] = 20;
func_enmy_80060F30(gPlayer[shot->playerNum].sfxSource, 0x49008027, shot->playerNum); func_enmy_80060F30(gPlayer[shot->playerNum].sfxSource, 0x49008027, shot->playerNum);
for (j = 0; j < ARRAY_COUNT(gPlayerShots); j++) { for (j = 0; j < ARRAY_COUNT(gPlayerShots); j++) {
if (gPlayerShots[j].obj.id == PLAYERSHOT_4) { if (gPlayerShots[j].obj.id == PLAYERSHOT_4) {
@ -1713,13 +1717,13 @@ bool func_beam_8003BB4C(PlayerShot* shot) {
if (gVersusMode) { if (gVersusMode) {
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) { for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
if ((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) && !player->somersault && if ((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) && !player->somersault &&
(player->form != FORM_ON_FOOT) && (i != shot->playerNum) && (D_ctx_80177B00[i][shot->playerNum] == 0) && (player->form != FORM_ON_FOOT) && (i != shot->playerNum) &&
(fabsf(shot->obj.pos.x - player->pos.x) <= var_fa0) && (gVsLockOnTimers[i][shot->playerNum] == 0) && (fabsf(shot->obj.pos.x - player->pos.x) <= var_fa0) &&
(fabsf(shot->obj.pos.y - player->pos.y) <= var_fa0) && (fabsf(shot->obj.pos.y - player->pos.y) <= var_fa0) &&
(fabsf(shot->obj.pos.z - player->unk_138) <= var_fa0)) { (fabsf(shot->obj.pos.z - player->unk_138) <= var_fa0)) {
D_ctx_80177B00[0][shot->playerNum] = D_ctx_80177B00[1][shot->playerNum] = gVsLockOnTimers[0][shot->playerNum] = gVsLockOnTimers[1][shot->playerNum] =
D_ctx_80177B00[2][shot->playerNum] = D_ctx_80177B00[3][shot->playerNum] = 0; gVsLockOnTimers[2][shot->playerNum] = gVsLockOnTimers[3][shot->playerNum] = 0;
D_ctx_80177B00[i][shot->playerNum] = 20; gVsLockOnTimers[i][shot->playerNum] = 20;
func_enmy_80060F30(gPlayer[shot->playerNum].sfxSource, 0x49008027, shot->playerNum); func_enmy_80060F30(gPlayer[shot->playerNum].sfxSource, 0x49008027, shot->playerNum);
for (j = 0; j < ARRAY_COUNT(gPlayerShots); j++) { for (j = 0; j < ARRAY_COUNT(gPlayerShots); j++) {
if (gPlayerShots[j].obj.id == PLAYERSHOT_4) { if (gPlayerShots[j].obj.id == PLAYERSHOT_4) {
@ -1737,12 +1741,12 @@ bool func_beam_8003BB4C(PlayerShot* shot) {
void func_beam_8003BEF4(PlayerShot* shot) { void func_beam_8003BEF4(PlayerShot* shot) {
if (gVersusMode) { if (gVersusMode) {
if ((shot->obj.pos.y < gGroundLevel) || func_beam_8003BB4C(shot) || if ((shot->obj.pos.y < gGroundHeight) || func_beam_8003BB4C(shot) ||
!(gControllerHold[shot->playerNum].button & A_BUTTON) || (shot->unk_64 == 0)) { !(gControllerHold[shot->playerNum].button & A_BUTTON) || (shot->unk_64 == 0)) {
Object_Kill(&shot->obj, shot->sfxSource); Object_Kill(&shot->obj, shot->sfxSource);
} }
} else { } else {
if ((shot->obj.pos.y < gGroundLevel) || func_beam_8003BB4C(shot) || if ((shot->obj.pos.y < gGroundHeight) || func_beam_8003BB4C(shot) ||
!(gControllerHold[gMainController].button & A_BUTTON) || (shot->unk_64 == 0)) { !(gControllerHold[gMainController].button & A_BUTTON) || (shot->unk_64 == 0)) {
Object_Kill(&shot->obj, shot->sfxSource); Object_Kill(&shot->obj, shot->sfxSource);
} }
@ -1818,23 +1822,23 @@ void func_beam_8003C3D8(PlayerShot* shot) {
static u8 D_800C9C20[4] = { 32, 32, 32, 255 }; static u8 D_800C9C20[4] = { 32, 32, 32, 255 };
f32 var_fv0; f32 var_fv0;
D_ctx_80178370 = shot->obj.pos.x; gLight3x = shot->obj.pos.x;
D_ctx_80178374 = shot->obj.pos.y; gLight3y = shot->obj.pos.y;
D_ctx_80178378 = shot->obj.pos.z; gLight3z = shot->obj.pos.z;
if (gVersusMode) { if (gVersusMode) {
D_ctx_80178360 = D_800C9C18[shot->playerNum]; gLight3R = D_800C9C18[shot->playerNum];
D_ctx_80178364 = D_800C9C1C[shot->playerNum]; gLight3G = D_800C9C1C[shot->playerNum];
D_ctx_80178368 = D_800C9C20[shot->playerNum]; gLight3B = D_800C9C20[shot->playerNum];
} else { } else {
D_ctx_80178360 = 90; gLight3R = 90;
D_ctx_80178364 = 90; gLight3G = 90;
D_ctx_80178368 = 255; gLight3B = 255;
} }
var_fv0 = 0.7f; var_fv0 = 0.7f;
if (shot->unk_5C != 0) { if (shot->unk_5C != 0) {
var_fv0 = 1.0f; var_fv0 = 1.0f;
} }
Math_SmoothStepToF(&D_ctx_8017836C, var_fv0, 1.0f, 0.08f, 0.001f); Math_SmoothStepToF(&gLight3Brightness, var_fv0, 1.0f, 0.08f, 0.001f);
} }
void func_beam_8003C4D0(PlayerShot* shot, s32 damage) { void func_beam_8003C4D0(PlayerShot* shot, s32 damage) {
@ -1845,20 +1849,20 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) {
s32 pad[2]; s32 pad[2];
Actor* actor; Actor* actor;
Sprite* sprite; Sprite* sprite;
Object_80* obj80; Scenery* scenery;
Effect* effect; Effect* effect;
Player* player; Player* player;
f32 temp_fs2 = shot->unk_44 * 60.0f; f32 temp_fs2 = shot->unk_44 * 60.0f;
for (i = 0, obj80 = gObjects80; i < 50; i++, obj80++) { for (i = 0, scenery = gScenery; i < 50; i++, scenery++) {
if ((obj80->obj.status == OBJ_ACTIVE) && (obj80->obj.id == OBJ_80_56)) { if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id == OBJ_SCENERY_56)) {
sp68 = obj80->obj.pos.x - shot->obj.pos.x; sp68 = scenery->obj.pos.x - shot->obj.pos.x;
sp64 = obj80->obj.pos.y - shot->obj.pos.y; sp64 = scenery->obj.pos.y - shot->obj.pos.y;
sp60 = obj80->obj.pos.z - shot->obj.pos.z; sp60 = scenery->obj.pos.z - shot->obj.pos.z;
if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) { if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) {
obj80->dmgType = 2; scenery->dmgType = 2;
} }
obj80->dmgPart = 0; scenery->dmgPart = 0;
} }
} }
for (i = 0, sprite = gSprites; i < 40; i++, sprite++) { for (i = 0, sprite = gSprites; i < 40; i++, sprite++) {
@ -1886,9 +1890,9 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) {
if ((gLevelMode == 0) && (sp60 < 0.0f)) { if ((gLevelMode == 0) && (sp60 < 0.0f)) {
sp60 *= 0.6f; sp60 *= 0.6f;
} }
actor->unk_0D8.x = shot->obj.pos.x; actor->hitPos.x = shot->obj.pos.x;
actor->unk_0D8.y = shot->obj.pos.y; actor->hitPos.y = shot->obj.pos.y;
actor->unk_0D8.z = shot->obj.pos.z; actor->hitPos.z = shot->obj.pos.z;
if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) { if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) {
if ((actor->obj.id == OBJ_ACTOR_193) || (actor->obj.id == OBJ_ACTOR_186) || if ((actor->obj.id == OBJ_ACTOR_193) || (actor->obj.id == OBJ_ACTOR_186) ||
(actor->obj.id == OBJ_ACTOR_190) || (actor->obj.id == OBJ_ACTOR_202) || (actor->obj.id == OBJ_ACTOR_190) || (actor->obj.id == OBJ_ACTOR_202) ||
@ -1998,7 +2002,7 @@ void func_beam_8003CC08(PlayerShot* shot) {
func_beam_80035E78(shot); func_beam_80035E78(shot);
break; break;
} }
if ((shot->obj.pos.y < gGroundLevel) && (D_ctx_801784AC != 4)) { if ((shot->obj.pos.y < gGroundHeight) && (D_ctx_801784AC != 4)) {
func_beam_80035E78(shot); func_beam_80035E78(shot);
break; break;
} }
@ -2070,14 +2074,14 @@ void func_beam_8003CF90(PlayerShot* shot) {
Actor* actor; Actor* actor;
Player* player; Player* player;
if ((shot->obj.pos.y < gGroundLevel) || (shot->unk_64 == 1)) { if ((shot->obj.pos.y < gGroundHeight) || (shot->unk_64 == 1)) {
if ((gGroundType == GROUNDTYPE_WATER) && (shot->obj.pos.y < gGroundLevel)) { if ((gGroundType == GROUNDTYPE_WATER) && (shot->obj.pos.y < gGroundHeight)) {
shot->unk_48 = 10.0f; shot->unk_48 = 10.0f;
func_effect_8007D9DC(shot->obj.pos.x, gGroundLevel + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f, func_effect_8007D9DC(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
shot->unk_48 * 3.0f, 0); shot->unk_48 * 3.0f, 0);
func_effect_8007D9DC(shot->obj.pos.x, gGroundLevel + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f, func_effect_8007D9DC(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
shot->unk_48 * 3.0f, 5); shot->unk_48 * 3.0f, 5);
func_effect_8007ADF4(shot->obj.pos.x, gGroundLevel, shot->obj.pos.z, shot->unk_48 * 0.05f, func_effect_8007ADF4(shot->obj.pos.x, gGroundHeight, shot->obj.pos.z, shot->unk_48 * 0.05f,
shot->unk_48 * 0.5f); shot->unk_48 * 0.5f);
func_effect_8007A6F0(&shot->obj.pos, 0x19000014); func_effect_8007A6F0(&shot->obj.pos, 0x19000014);
} }
@ -2087,18 +2091,18 @@ void func_beam_8003CF90(PlayerShot* shot) {
if (shot->unk_60 == 0) { if (shot->unk_60 == 0) {
for (i = 0, actor = gActors; i < 60; i++, actor++) { for (i = 0, actor = gActors; i < 60; i++, actor++) {
if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.unk_1C != 0.0f) && if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.unk_1C != 0.0f) &&
(actor->timer_0CA[shot->playerNum] != 0)) { (actor->lockOnTimers[shot->playerNum] != 0)) {
var_a3 = 1; var_a3 = 1;
actor->timer_0CA[shot->playerNum] = 2; actor->lockOnTimers[shot->playerNum] = 2;
D_800C9C24 = actor->obj.pos; D_800C9C24 = actor->obj.pos;
D_800C9C24.y += actor->info.unk_1C; D_800C9C24.y += actor->info.unk_1C;
} }
} }
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) { for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
if (((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (player->state_1C8 == PLAYERSTATE_1C8_U_TURN)) && if (((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (player->state_1C8 == PLAYERSTATE_1C8_U_TURN)) &&
(D_ctx_80177B00[i][shot->playerNum] != 0)) { (gVsLockOnTimers[i][shot->playerNum] != 0)) {
var_a3 = 1; var_a3 = 1;
D_ctx_80177B00[i][shot->playerNum] = 2; gVsLockOnTimers[i][shot->playerNum] = 2;
D_800C9C24.x = player->pos.x; D_800C9C24.x = player->pos.x;
if (player->form == FORM_ARWING) { if (player->form == FORM_ARWING) {
D_800C9C24.y = player->pos.y; D_800C9C24.y = player->pos.y;
@ -2155,13 +2159,13 @@ void func_beam_8003CF90(PlayerShot* shot) {
shot->vel.z = sp38.z; shot->vel.z = sp38.z;
} }
func_beam_80038140(shot); func_beam_80038140(shot);
D_ctx_80178370 = shot->obj.pos.x; gLight3x = shot->obj.pos.x;
D_ctx_80178374 = shot->obj.pos.y; gLight3y = shot->obj.pos.y;
D_ctx_80178378 = shot->obj.pos.z; gLight3z = shot->obj.pos.z;
D_ctx_80178360 = 90; gLight3R = 90;
D_ctx_80178364 = 180; gLight3G = 180;
D_ctx_80178368 = 90; gLight3B = 90;
Math_SmoothStepToF(&D_ctx_8017836C, 0.6f, 1.0f, 0.08f, 0.001f); Math_SmoothStepToF(&gLight3Brightness, 0.6f, 1.0f, 0.08f, 0.001f);
} }
} }
@ -2183,7 +2187,7 @@ void func_beam_8003D54C(PlayerShot* shot, s32 index) {
case PLAYERSHOT_2: case PLAYERSHOT_2:
func_beam_8003B00C(shot, &gPlayer[shot->playerNum]); func_beam_8003B00C(shot, &gPlayer[shot->playerNum]);
break; break;
case PLAYERSHOT_3: case PLAYERSHOT_BOMB:
func_beam_8003CC08(shot); func_beam_8003CC08(shot);
break; break;
case PLAYERSHOT_4: case PLAYERSHOT_4:
@ -2286,7 +2290,7 @@ void func_beam_8003D854(PlayerShot* shot) {
void PlayerShot_Update(void) { void PlayerShot_Update(void) {
s32 i; s32 i;
for (i = 0; i < 16; i++) { for (i = 0; i < ARRAY_COUNT(gPlayerShots); i++) {
gPlayerShots[i].index = i; gPlayerShots[i].index = i;
func_beam_8003D854(&gPlayerShots[i]); func_beam_8003D854(&gPlayerShots[i]);
} }
@ -2295,7 +2299,7 @@ void PlayerShot_Update(void) {
void PlayerShot_Draw(void) { void PlayerShot_Draw(void) {
s32 i; s32 i;
for (i = 0; i < 16; i++) { for (i = 0; i < ARRAY_COUNT(gPlayerShots); i++) {
gPlayerShots[i].index = i; gPlayerShots[i].index = i;
if (gPlayerShots[i].obj.status != 0) { if (gPlayerShots[i].obj.status != 0) {
if (!((gReflectY < 0) && (gPlayerShots[i].obj.rot.x < -10.0f))) { if (!((gReflectY < 0) && (gPlayerShots[i].obj.rot.x < -10.0f))) {

View File

@ -24,142 +24,142 @@
#include "prevent_bss_reordering2.h" #include "prevent_bss_reordering2.h"
#include "prevent_bss_reordering3.h" #include "prevent_bss_reordering3.h"
f32 D_bg_8015F960; f32 gWarpZoneBgAlpha;
u8 D_bg_8015F964; u8 D_bg_8015F964; // related to water surfaces
f32 D_bg_8015F968; f32 D_bg_8015F968; // heat shimmer effect for SO and TI?
f32 D_bg_8015F96C; f32 D_bg_8015F96C; // unused. some sort of starfield motion blur for meteo?
f32 D_bg_8015F970; f32 D_bg_8015F970; // these next few vars seem to be related to aquas surface
s32 D_bg_8015F974; s32 D_bg_8015F974;
s32 D_bg_8015F978; s32 D_bg_8015F978;
s32 D_bg_8015F97C; s32 D_bg_8015F97C;
s32 D_bg_8015F980; s32 D_bg_8015F980;
f32 D_bg_8015F984; f32 D_bg_8015F984; // related to scale of venom in area 6
UNK_TYPE D_bg_8015F988[0x683]; // Unused? Close to being [13][0x80] UNK_TYPE D_bg_8015F988[0x683]; // Unused? Close to being [13][0x80]
f32 D_bg_80161394; // can be static f32 gAndrossUnkBrightness; // can be static
f32 D_bg_800C9C30 = 0.0f; f32 gAndrossUnkAlpha = 0.0f;
u16 D_bg_800C9C34 = 1; u16 gBolseDynamicGround = true;
s32 D_bg_800C9C38 = 0; // unused? s32 D_bg_800C9C38 = 0; // unused?
u16 D_bg_800C9C3C[16] = { u16 gStarColors[16] = {
0x108B, 0x108B, 0x1087, 0x1089, 0x39FF, 0x190D, 0x108B, 0x1089, 0x108B, 0x108B, 0x1087, 0x1089, 0x39FF, 0x190D, 0x108B, 0x1089,
0x294B, 0x18DF, 0x294B, 0x1085, 0x39FF, 0x108B, 0x18CD, 0x108B, 0x294B, 0x18DF, 0x294B, 0x1085, 0x39FF, 0x108B, 0x18CD, 0x108B,
}; };
Gfx* D_bg_800C9C5C[13] = { Gfx* sSunDLs[13] = {
D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_BG_PLANET_20112C0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_BG_PLANET_20112C0, D_102A8A0,
D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_BG_PLANET_20112C0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_BG_PLANET_20112C0, D_102A8A0,
}; };
Gfx* D_bg_800C9C90[13] = { Gfx* sKaSunDLs[13] = {
D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0,
D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0, D_102A8A0,
}; };
f32 D_bg_800C9CC4[13] = { f32 sSunShifts[13] = {
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f, 13.0f, 20.0f, 35.0f, 40.0f, 50.0f, 50.0f, 70.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f, 13.0f, 20.0f, 35.0f, 40.0f, 50.0f, 50.0f, 70.0f,
}; };
f32 D_bg_800C9CF8[13] = { f32 sKaSunShifts[13] = {
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 5.0f, 10.0f, 16.0f, 20.0f, 30.0f, 45.0f, 60.0f, 70.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 5.0f, 10.0f, 16.0f, 20.0f, 30.0f, 45.0f, 60.0f, 70.0f,
}; };
f32 D_bg_800C9D2C[13] = { f32 sSunScales[13] = {
0.7f, 1.0f, 1.2f, 1.4f, 1.8f, 2.0f, 0.4f, 0.6f, 0.8f, 1.7f, 0.8f, 4.0f, 2.0f, 0.7f, 1.0f, 1.2f, 1.4f, 1.8f, 2.0f, 0.4f, 0.6f, 0.8f, 1.7f, 0.8f, 4.0f, 2.0f,
}; };
f32 D_bg_800C9D60[13] = { f32 sKaSunScales[13] = {
0.525f, 0.75f, 0.90000004f, 1.05f, 1.3499999f, 0.15f, 0.25f, 0.35f, 1.0f, 0.6f, 0.35f, 0.9f, 1.0f, 0.525f, 0.75f, 0.90000004f, 1.05f, 1.3499999f, 0.15f, 0.25f, 0.35f, 1.0f, 0.6f, 0.35f, 0.9f, 1.0f,
}; };
Color_RGB8 D_bg_800C9D94[13] = { Color_RGB8 sSunColors[13] = {
{ 255, 255, 255 }, { 255, 255, 192 }, { 255, 255, 128 }, { 255, 255, 96 }, { 255, 255, 64 }, { 255, 255, 255 }, { 255, 255, 192 }, { 255, 255, 128 }, { 255, 255, 96 }, { 255, 255, 64 },
{ 255, 255, 64 }, { 255, 255, 64 }, { 255, 255, 64 }, { 255, 255, 64 }, { 255, 255, 64 }, { 255, 255, 64 }, { 255, 255, 64 }, { 255, 255, 64 }, { 255, 255, 64 }, { 255, 255, 64 },
{ 255, 255, 64 }, { 255, 255, 64 }, { 255, 255, 64 }, { 255, 255, 64 }, { 255, 255, 64 }, { 255, 255, 64 },
}; };
Color_RGB8 D_bg_800C9DBC[13] = { Color_RGB8 sKaSunColors[13] = {
{ 255, 128, 64 }, { 255, 128, 64 }, { 255, 128, 64 }, { 255, 128, 64 }, { 255, 128, 64 }, { 255, 128, 64 }, { 255, 128, 64 }, { 255, 128, 64 }, { 255, 128, 64 }, { 255, 128, 64 },
{ 255, 255, 64 }, { 255, 128, 64 }, { 255, 128, 64 }, { 255, 255, 64 }, { 128, 128, 128 }, { 255, 255, 64 }, { 255, 128, 64 }, { 255, 128, 64 }, { 255, 255, 64 }, { 128, 128, 128 },
{ 128, 128, 255 }, { 255, 255, 64 }, { 255, 128, 64 }, { 128, 128, 255 }, { 255, 255, 64 }, { 255, 128, 64 },
}; };
s32 D_bg_800C9DE4[13] = { s32 sSunAlphas[13] = {
255, 80, 64, 48, 32, 12, 32, 44, 32, 42, 36, 12, 38, 255, 80, 64, 48, 32, 12, 32, 44, 32, 42, 36, 12, 38,
}; };
s32 D_bg_800C9E18[13] = { s32 sKaSunAlphas[13] = {
80, 60, 40, 20, 10, 20, 30, 20, 15, 30, 20, 27, 20, 80, 60, 40, 20, 10, 20, 30, 20, 15, 30, 20, 27, 20,
}; };
s32 D_bg_800C9E4C[2] = { 10, 4 }; s32 sSunGlareAlphaStep[2] = { 10, 4 };
s32 D_bg_800C9E54[2] = { 140, 40 }; s32 sSunGlareMaxAlpha[2] = { 140, 40 };
f32 D_bg_800C9E5C[2] = { 1.2f, 0.5f }; f32 sLensFlareAlphaMod[2] = { 1.2f, 0.5f };
f32 D_bg_800C9E64[4] = { f32 sGroundPositions360x[4] = {
6000.0f, 6000.0f,
-6000.0f, -6000.0f,
6000.0f, 6000.0f,
-6000.0f, -6000.0f,
}; };
f32 D_bg_800C9E74[4] = { f32 sGroundPositions360z[4] = {
6000.0f, 6000.0f,
6000.0f, 6000.0f,
-6000.0f, -6000.0f,
-6000.0f, -6000.0f,
}; };
void func_bg_8003DAF0(void) { void Background_DrawStarfield(void) {
f32 var_fa0; f32 by;
f32 var_fv1; f32 bx;
s16 temp_ft0; s16 vy;
s16 temp_ft2; s16 vx;
s32 i; s32 i;
s32 var_s2; s32 starCount;
f32 sp70; f32 zCos;
f32 spf6C; f32 zSin;
f32 spf68; f32 xField;
f32 spf64; f32 yField;
f32* sp60; f32* xStar;
f32* sp5C; f32* yStar;
u32* sp58; u32* color;
gDPPipeSync(gMasterDisp++); gDPPipeSync(gMasterDisp++);
gDPSetCycleType(gMasterDisp++, G_CYC_FILL); gDPSetCycleType(gMasterDisp++, G_CYC_FILL);
gDPSetCombineMode(gMasterDisp++, G_CC_SHADE, G_CC_SHADE); gDPSetCombineMode(gMasterDisp++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(gMasterDisp++, G_RM_OPA_SURF, G_RM_OPA_SURF2); gDPSetRenderMode(gMasterDisp++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
var_s2 = D_ctx_80178410; starCount = gStarCount;
if (var_s2 != 0) { if (starCount != 0) {
if (D_ctx_80178420 >= 1.5f * SCREEN_WIDTH) { if (gStarfieldX >= 1.5f * SCREEN_WIDTH) {
D_ctx_80178420 -= 1.5f * SCREEN_WIDTH; gStarfieldX -= 1.5f * SCREEN_WIDTH;
} }
if (D_ctx_80178424 >= 1.5f * SCREEN_HEIGHT) { if (gStarfieldY >= 1.5f * SCREEN_HEIGHT) {
D_ctx_80178424 -= 1.5f * SCREEN_HEIGHT; gStarfieldY -= 1.5f * SCREEN_HEIGHT;
} }
if (D_ctx_80178420 < 0.0f) { if (gStarfieldX < 0.0f) {
D_ctx_80178420 += 1.5f * SCREEN_WIDTH; gStarfieldX += 1.5f * SCREEN_WIDTH;
} }
if (D_ctx_80178424 < 0.0f) { if (gStarfieldY < 0.0f) {
D_ctx_80178424 += 1.5f * SCREEN_HEIGHT; gStarfieldY += 1.5f * SCREEN_HEIGHT;
} }
spf68 = D_ctx_80178420; xField = gStarfieldX;
spf64 = D_ctx_80178424; yField = gStarfieldY;
sp60 = D_ctx_80178288; xStar = gStarOffsetsX;
sp5C = D_ctx_80178290; yStar = gStarOffsetsY;
sp58 = D_ctx_80178298; color = gStarFillColors;
if (gGameState != GSTATE_PLAY) { if (gGameState != GSTATE_PLAY) {
var_s2 = 1000; starCount = 1000;
} }
sp70 = __cosf(D_ctx_80178428); zCos = __cosf(gStarfieldRoll);
spf6C = __sinf(D_ctx_80178428); zSin = __sinf(gStarfieldRoll);
for (i = 0; i < var_s2; i++, sp5C++, sp60++, sp58++) { for (i = 0; i < starCount; i++, yStar++, xStar++, color++) {
var_fv1 = *sp60 + spf68; bx = *xStar + xField;
var_fa0 = *sp5C + spf64; by = *yStar + yField;
if (var_fv1 >= 1.25f * SCREEN_WIDTH) { if (bx >= 1.25f * SCREEN_WIDTH) {
var_fv1 -= 1.5f * SCREEN_WIDTH; bx -= 1.5f * SCREEN_WIDTH;
} }
var_fv1 -= SCREEN_WIDTH / 2.0f; bx -= SCREEN_WIDTH / 2.0f;
if (var_fa0 >= 1.25f * SCREEN_HEIGHT) { if (by >= 1.25f * SCREEN_HEIGHT) {
var_fa0 -= 1.5f * SCREEN_HEIGHT; by -= 1.5f * SCREEN_HEIGHT;
} }
var_fa0 -= SCREEN_HEIGHT / 2.0f; by -= SCREEN_HEIGHT / 2.0f;
temp_ft2 = (sp70 * var_fv1) + (spf6C * var_fa0) + SCREEN_WIDTH / 2.0f; vx = (zCos * bx) + (zSin * by) + SCREEN_WIDTH / 2.0f;
temp_ft0 = (-spf6C * var_fv1) + (sp70 * var_fa0) + SCREEN_HEIGHT / 2.0f; vy = (-zSin * bx) + (zCos * by) + SCREEN_HEIGHT / 2.0f;
if ((temp_ft2 >= 0) && (temp_ft2 < SCREEN_WIDTH) && (temp_ft0 > 0) && (temp_ft0 < SCREEN_HEIGHT)) { if ((vx >= 0) && (vx < SCREEN_WIDTH) && (vy > 0) && (vy < SCREEN_HEIGHT)) {
gDPPipeSync(gMasterDisp++); gDPPipeSync(gMasterDisp++);
gDPSetFillColor(gMasterDisp++, *sp58); gDPSetFillColor(gMasterDisp++, *color);
gDPFillRectangle(gMasterDisp++, temp_ft2, temp_ft0, temp_ft2, temp_ft0); gDPFillRectangle(gMasterDisp++, vx, vy, vx, vy);
} }
} }
} }
@ -167,15 +167,15 @@ void func_bg_8003DAF0(void) {
gDPSetColorDither(gMasterDisp++, G_CD_MAGICSQ); gDPSetColorDither(gMasterDisp++, G_CD_MAGICSQ);
} }
void func_bg_8003DE68(s32 arg0, s32 arg1) { void Background_DrawPartialStarfield(s32 yMin, s32 yMax) {
f32 var_fa0; // 8C f32 by; // 8C
f32 var_fv1; // 88 f32 bx; // 88
s16 temp_ft0; // 84 s16 vy; // 84
s16 temp_ft2; s16 vx;
s32 i; // 80 s32 i; // 80
s32 var_s2; // 7C s32 var_s2; // 7C
f32 sp70; // 78 f32 cos; // 78
f32 spf6C; // 74 f32 sin; // 74
f32 spf68; // 70 f32 spf68; // 70
f32 spf64; // 6C f32 spf64; // 6C
f32* sp60; // 68 f32* sp60; // 68
@ -187,47 +187,47 @@ void func_bg_8003DE68(s32 arg0, s32 arg1) {
gDPSetCombineMode(gMasterDisp++, G_CC_SHADE, G_CC_SHADE); gDPSetCombineMode(gMasterDisp++, G_CC_SHADE, G_CC_SHADE);
gDPSetRenderMode(gMasterDisp++, G_RM_OPA_SURF, G_RM_OPA_SURF2); gDPSetRenderMode(gMasterDisp++, G_RM_OPA_SURF, G_RM_OPA_SURF2);
if (D_ctx_80178420 >= 1.5f * SCREEN_WIDTH) { if (gStarfieldX >= 1.5f * SCREEN_WIDTH) {
D_ctx_80178420 -= 1.5f * SCREEN_WIDTH; gStarfieldX -= 1.5f * SCREEN_WIDTH;
} }
if (D_ctx_80178424 >= 1.5f * SCREEN_HEIGHT) { if (gStarfieldY >= 1.5f * SCREEN_HEIGHT) {
D_ctx_80178424 -= 1.5f * SCREEN_HEIGHT; gStarfieldY -= 1.5f * SCREEN_HEIGHT;
} }
if (D_ctx_80178420 < 0.0f) { if (gStarfieldX < 0.0f) {
D_ctx_80178420 += 1.5f * SCREEN_WIDTH; gStarfieldX += 1.5f * SCREEN_WIDTH;
} }
if (D_ctx_80178424 < 0.0f) { if (gStarfieldY < 0.0f) {
D_ctx_80178424 += 1.5f * SCREEN_HEIGHT; gStarfieldY += 1.5f * SCREEN_HEIGHT;
} }
spf68 = D_ctx_80178420; spf68 = gStarfieldX;
spf64 = D_ctx_80178424; spf64 = gStarfieldY;
sp60 = D_ctx_80178288; sp60 = gStarOffsetsX;
sp5C = D_ctx_80178290; sp5C = gStarOffsetsY;
sp58 = D_ctx_80178298; sp58 = gStarFillColors;
var_s2 = 500; var_s2 = 500;
sp70 = __cosf(D_ctx_80178428); cos = __cosf(gStarfieldRoll);
spf6C = __sinf(D_ctx_80178428); sin = __sinf(gStarfieldRoll);
for (i = 0; i < var_s2; i++, sp5C++, sp60++, sp58++) { for (i = 0; i < var_s2; i++, sp5C++, sp60++, sp58++) {
var_fv1 = *sp60 + spf68; bx = *sp60 + spf68;
var_fa0 = *sp5C + spf64; by = *sp5C + spf64;
if (var_fv1 >= SCREEN_WIDTH * 1.25f) { if (bx >= SCREEN_WIDTH * 1.25f) {
var_fv1 -= 1.5f * SCREEN_WIDTH; bx -= 1.5f * SCREEN_WIDTH;
} }
var_fv1 -= SCREEN_WIDTH / 2.0f; bx -= SCREEN_WIDTH / 2.0f;
if (var_fa0 >= SCREEN_HEIGHT * 1.25f) { if (by >= SCREEN_HEIGHT * 1.25f) {
var_fa0 -= 1.5f * SCREEN_HEIGHT; by -= 1.5f * SCREEN_HEIGHT;
} }
var_fa0 -= SCREEN_HEIGHT / 2.0f; by -= SCREEN_HEIGHT / 2.0f;
temp_ft2 = (sp70 * var_fv1) + (spf6C * var_fa0) + SCREEN_WIDTH / 2.0f; vx = (cos * bx) + (sin * by) + SCREEN_WIDTH / 2.0f;
temp_ft0 = (-spf6C * var_fv1) + (sp70 * var_fa0) + SCREEN_HEIGHT / 2.0f; vy = (-sin * bx) + (cos * by) + SCREEN_HEIGHT / 2.0f;
if ((temp_ft2 >= 0) && (temp_ft2 < SCREEN_WIDTH) && (arg0 < temp_ft0) && (temp_ft0 < arg1)) { if ((vx >= 0) && (vx < SCREEN_WIDTH) && (yMin < vy) && (vy < yMax)) {
gDPPipeSync(gMasterDisp++); gDPPipeSync(gMasterDisp++);
gDPSetFillColor(gMasterDisp++, *sp58); gDPSetFillColor(gMasterDisp++, *sp58);
gDPFillRectangle(gMasterDisp++, temp_ft2, temp_ft0, temp_ft2, temp_ft0); gDPFillRectangle(gMasterDisp++, vx, vy, vx, vy);
} }
} }
gDPPipeSync(gMasterDisp++); gDPPipeSync(gMasterDisp++);
@ -237,37 +237,38 @@ void func_bg_8003DE68(s32 arg0, s32 arg1) {
void func_bg_8003E1E0(void) { void func_bg_8003E1E0(void) {
} }
void func_bg_8003E1E8(void) { // TODO: use SCREEN_WIDTH and _HEIGHT
void Background_DrawBackdrop(void) {
f32 sp13C; f32 sp13C;
f32 sp138; f32 sp138;
f32 sp134; f32 sp134;
f32 sp130; f32 sp130;
f32 sp12C; f32 sp12C;
f32 sp128; f32 sp128;
s32 sp124; s32 i;
u8 var_s0; u8 levelType;
s32 sp11C; s32 levelId;
if (D_ctx_80177AB0 == 0) { if (D_ctx_80177AB0 == 0) {
return; return;
} }
var_s0 = gLevelType; levelType = gLevelType;
if ((gCurrentLevel == LEVEL_VERSUS) && (gVersusStage == VS_STAGE_SECTOR_Z)) { if ((gCurrentLevel == LEVEL_VERSUS) && (gVersusStage == VS_STAGE_SECTOR_Z)) {
var_s0 = LEVELTYPE_PLANET; levelType = LEVELTYPE_PLANET;
} }
if (gCurrentLevel == LEVEL_TRAINING) { if (gCurrentLevel == LEVEL_TRAINING) {
var_s0 = LEVELTYPE_SPACE; levelType = LEVELTYPE_SPACE;
} }
sp11C = gCurrentLevel; levelId = gCurrentLevel;
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
if (D_ctx_80177C70 == 2) { if (D_ctx_80177C70 == 2) {
Matrix_Scale(gGfxMatrix, 1.2f, 1.2f, 1.0f, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 1.2f, 1.2f, 1.0f, MTXF_APPLY);
} }
switch (var_s0) { switch (levelType) {
case LEVELTYPE_PLANET: case LEVELTYPE_PLANET:
RCP_SetupDL(&gMasterDisp, 0x11); RCP_SetupDL(&gMasterDisp, 0x11);
switch (sp11C) { switch (levelId) {
case LEVEL_FORTUNA: case LEVEL_FORTUNA:
case LEVEL_KATINA: case LEVEL_KATINA:
case LEVEL_VENOM_2: case LEVEL_VENOM_2:
@ -362,15 +363,15 @@ void func_bg_8003E1E8(void) {
RCP_SetupDL(&gMasterDisp, 0x3E); RCP_SetupDL(&gMasterDisp, 0x3E);
if (D_ctx_80177AB0 == 4) { if (D_ctx_80177AB0 == 4) {
if (!(gGameFrameCount & 8)) { if (!(gGameFrameCount & 8)) {
Math_SmoothStepToF(&D_bg_80161394, 0.0f, 1.0f, 30.0f, 0); Math_SmoothStepToF(&gAndrossUnkBrightness, 0.0f, 1.0f, 30.0f, 0);
} else { } else {
Math_SmoothStepToF(&D_bg_80161394, 120.0f, 1.0f, 30.0f, 0); Math_SmoothStepToF(&gAndrossUnkBrightness, 120.0f, 1.0f, 30.0f, 0);
} }
} else { } else {
D_bg_80161394 = 255.0f; gAndrossUnkBrightness = 255.0f;
} }
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, (s32) D_bg_80161394, (s32) D_bg_80161394, gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, (s32) gAndrossUnkBrightness,
(s32) D_bg_800C9C30); (s32) gAndrossUnkBrightness, (s32) gAndrossUnkAlpha);
sp134 = (gPlayer[gPlayerNum].camPitch * -6000.0f) - (gPlayer[gPlayerNum].cam.eye.y * 0.4f); sp134 = (gPlayer[gPlayerNum].camPitch * -6000.0f) - (gPlayer[gPlayerNum].cam.eye.y * 0.4f);
sp13C = Math_ModF(Math_RadToDeg(gPlayer[gPlayerNum].camYaw) * (-7280.0f / 360.0f) * 5.0f, sp13C = Math_ModF(Math_RadToDeg(gPlayer[gPlayerNum].camYaw) * (-7280.0f / 360.0f) * 5.0f,
@ -389,7 +390,7 @@ void func_bg_8003E1E8(void) {
if (D_ctx_80177AB0 == 5) { if (D_ctx_80177AB0 == 5) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 64); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 64);
} else { } else {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 255, 128, (s32) D_bg_800C9C30); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 255, 128, (s32) gAndrossUnkAlpha);
} }
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -290.0f, MTXF_APPLY); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -290.0f, MTXF_APPLY);
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
@ -508,24 +509,24 @@ void func_bg_8003E1E8(void) {
sp130 = Math_RadToDeg(gPlayer[0].camPitch); sp130 = Math_RadToDeg(gPlayer[0].camPitch);
if (((sp12C < 45.0f) || (sp12C > 315.0f)) && ((sp130 < 40.0f) || (sp130 > 325.0f))) { if (((sp12C < 45.0f) || (sp12C > 315.0f)) && ((sp130 < 40.0f) || (sp130 > 325.0f))) {
RCP_SetupDL_36(); RCP_SetupDL_36();
sp138 = D_ctx_80178420; sp138 = gStarfieldX;
sp134 = D_ctx_80178424; sp134 = gStarfieldY;
if (((gCurrentLevel == LEVEL_SECTOR_X) || (gCurrentLevel == LEVEL_METEO)) && (gLevelStage == 1)) { if (((gCurrentLevel == LEVEL_SECTOR_X) || (gCurrentLevel == LEVEL_METEO)) && (gLevelPhase == 1)) {
sp11C = LEVEL_WARP_ZONE; levelId = LEVEL_WARP_ZONE;
} }
if (sp11C == LEVEL_SECTOR_X) { if (levelId == LEVEL_SECTOR_X) {
sp138 = Math_ModF(sp138 + 60.0f, 480.0f); sp138 = Math_ModF(sp138 + 60.0f, 480.0f);
sp134 = Math_ModF(sp134 + 360.0f - 40.0f, 360.0f); sp134 = Math_ModF(sp134 + 360.0f - 40.0f, 360.0f);
} else if (sp11C == LEVEL_TRAINING) { } else if (levelId == LEVEL_TRAINING) {
sp138 = Math_ModF(sp138 - 30.0f, 480.0f); sp138 = Math_ModF(sp138 - 30.0f, 480.0f);
sp134 = Math_ModF(sp134 + 360.0f - 40.0f, 360.0f); sp134 = Math_ModF(sp134 + 360.0f - 40.0f, 360.0f);
} else if ((sp11C == LEVEL_SECTOR_Y) && (gLevelMode == LEVELMODE_ON_RAILS)) { } else if ((levelId == LEVEL_SECTOR_Y) && (gLevelMode == LEVELMODE_ON_RAILS)) {
sp138 = Math_ModF(sp138 + 480.0f - 60.0f, 480.0f); sp138 = Math_ModF(sp138 + 480.0f - 60.0f, 480.0f);
sp134 = Math_ModF(sp134, 360.0f); sp134 = Math_ModF(sp134, 360.0f);
} else if (sp11C == LEVEL_FORTUNA) { } else if (levelId == LEVEL_FORTUNA) {
sp138 = Math_ModF(sp138 - 34.5f, 480.0f); sp138 = Math_ModF(sp138 - 34.5f, 480.0f);
sp134 = Math_ModF(sp134 + 19.0f, 360.0f); sp134 = Math_ModF(sp134 + 19.0f, 360.0f);
} else if (sp11C == LEVEL_BOLSE) { } else if (levelId == LEVEL_BOLSE) {
if ((gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_COMPLETE) || (gPlayer[0].unk_1D0 < 10)) { if ((gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_COMPLETE) || (gPlayer[0].unk_1D0 < 10)) {
sp134 = Math_ModF(sp134 + 360.0f - 100.0f, 360.0f); sp134 = Math_ModF(sp134 + 360.0f - 100.0f, 360.0f);
} }
@ -539,12 +540,12 @@ void func_bg_8003E1E8(void) {
if ((sp130 > 180.0f) && (sp134 > 280.0f)) { if ((sp130 > 180.0f) && (sp134 > 280.0f)) {
sp134 = -(360.0f - sp134); sp134 = -(360.0f - sp134);
} }
Matrix_RotateZ(gGfxMatrix, D_ctx_80178428, MTXF_APPLY); Matrix_RotateZ(gGfxMatrix, gStarfieldRoll, MTXF_APPLY);
switch (sp11C) { switch (levelId) {
case LEVEL_WARP_ZONE: case LEVEL_WARP_ZONE:
if ((s32) D_bg_8015F960 != 0) { if ((s32) gWarpZoneBgAlpha != 0) {
RCP_SetupDL_62(); RCP_SetupDL_62();
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, (s32) D_bg_8015F960); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, (s32) gWarpZoneBgAlpha);
Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, MTXF_APPLY); Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, MTXF_APPLY);
Matrix_Scale(gGfxMatrix, 1.7f, 1.7f, 1.0f, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 1.7f, 1.7f, 1.0f, MTXF_APPLY);
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
@ -573,7 +574,7 @@ void func_bg_8003E1E8(void) {
} }
break; break;
case LEVEL_SECTOR_X: case LEVEL_SECTOR_X:
if (gOverlayStage == 0) { if (gSceneSetup == 0) {
Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, MTXF_APPLY); Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, MTXF_APPLY);
Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 1.0f, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 1.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
@ -647,27 +648,27 @@ void func_bg_8003E1E8(void) {
} }
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
} }
if (D_ctx_80178414 > 0.0f) { if (gStarWarpDistortion > 0.0f) {
f32* sp50 = D_ctx_80178288; f32* xStar = gStarOffsetsX;
f32* sp4C = D_ctx_80178290; f32* yStar = gStarOffsetsY;
f32 sp48; f32 zRot;
RCP_SetupDL_14(); RCP_SetupDL_14();
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 128, 128, 255, 255); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 128, 128, 255, 255);
sp124 = 0; i = 0;
sp48 = 0.0f; zRot = 0.0f;
for (sp124 = 0; sp124 < 300; sp124++, sp50++, sp4C++) { for (i = 0; i < 300; i++, xStar++, yStar++) {
*sp50 = RAND_FLOAT_SEEDED(480.0f) - 80.0f; *xStar = RAND_FLOAT_SEEDED(480.0f) - 80.0f;
*sp4C = RAND_FLOAT_SEEDED(360.0f) - 60.0f; *yStar = RAND_FLOAT_SEEDED(360.0f) - 60.0f;
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, (*sp50 - 160.0f) * 10.0f, (*sp4C - 120.0f) * 10.0f, -5000.0f, Matrix_Translate(gGfxMatrix, (*xStar - 160.0f) * 10.0f, (*yStar - 120.0f) * 10.0f, -5000.0f,
MTXF_APPLY); MTXF_APPLY);
Matrix_RotateZ(gGfxMatrix, sp48, MTXF_APPLY); Matrix_RotateZ(gGfxMatrix, zRot, MTXF_APPLY);
Matrix_Scale(gGfxMatrix, 10.0f, 1.0f, -D_ctx_80178414, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 10.0f, 1.0f, -gStarWarpDistortion, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_edisplay_800CFD80); gSPDisplayList(gMasterDisp++, D_edisplay_800CFD80);
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
sp48 += M_PI / 4; zRot += M_PI / 4;
} }
} }
break; break;
@ -675,13 +676,13 @@ void func_bg_8003E1E8(void) {
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
} }
void func_bg_80040450(void) { void Background_DrawSun(void) {
f32 sp44; f32 camYaw;
f32 var_fa0; f32 camPitch;
Color_RGB8* var_s1; Color_RGB8* sunColor;
s32* var_s2; s32* sunAlpha;
Gfx** var_s3; Gfx** sunDL;
f32* var_s4; f32* sunScale;
s32 i; s32 i;
s32 levelType = gLevelType; s32 levelType = gLevelType;
@ -689,119 +690,121 @@ void func_bg_80040450(void) {
(gCurrentLevel == LEVEL_SOLAR) || (gCurrentLevel == LEVEL_TRAINING) || gVersusMode) { (gCurrentLevel == LEVEL_SOLAR) || (gCurrentLevel == LEVEL_TRAINING) || gVersusMode) {
return; return;
} }
gPlayerFillScreenAlphas[gPlayerNum] -= D_bg_800C9E4C[levelType]; gPlayerGlareAlphas[gPlayerNum] -= sSunGlareAlphaStep[levelType];
if (gPlayerFillScreenAlphas[gPlayerNum] > 300) { if (gPlayerGlareAlphas[gPlayerNum] > 300) {
gPlayerFillScreenAlphas[gPlayerNum] = 0; gPlayerGlareAlphas[gPlayerNum] = 0;
} }
if (((gCurrentLevel == LEVEL_AQUAS) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO)) || if (((gCurrentLevel == LEVEL_AQUAS) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO)) ||
(((gPlayer[gPlayerNum].state_1C8 == PLAYERSTATE_1C8_U_TURN) || (gLevelMode == LEVELMODE_ALL_RANGE) || (((gPlayer[gPlayerNum].state_1C8 == PLAYERSTATE_1C8_U_TURN) || (gLevelMode == LEVELMODE_ALL_RANGE) ||
(gPlayer[gPlayerNum].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE)) && (gPlayer[gPlayerNum].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE)) &&
(gLevelType == LEVELTYPE_PLANET) && (gCurrentLevel != LEVEL_TITANIA) && (gCurrentLevel != LEVEL_AQUAS))) { (gLevelType == LEVELTYPE_PLANET) && (gCurrentLevel != LEVEL_TITANIA) && (gCurrentLevel != LEVEL_AQUAS))) {
gPlayerFillScreenReds[gPlayerNum] = 128; gPlayerGlareReds[gPlayerNum] = 128;
gPlayerFillScreenGreens[gPlayerNum] = 128; gPlayerGlareGreens[gPlayerNum] = 128;
gPlayerFillScreenBlues[gPlayerNum] = 128; gPlayerGlareBlues[gPlayerNum] = 128;
sp44 = Math_RadToDeg(gPlayer[gPlayerNum].camYaw); camYaw = Math_RadToDeg(gPlayer[gPlayerNum].camYaw);
var_fa0 = Math_RadToDeg(gPlayer[gPlayerNum].camPitch); camPitch = Math_RadToDeg(gPlayer[gPlayerNum].camPitch);
if (var_fa0 > 180.0f) { if (camPitch > 180.0f) {
var_fa0 -= 360.0f; camPitch -= 360.0f;
} }
sp44 -= 135.0f; camYaw -= 135.0f;
D_ctx_801783D0 = -sp44 * 3.2f; gSunViewX = -camYaw * 3.2f;
D_ctx_801783D4 = ((-var_fa0 * 3.2f) + 130.0f) - ((gPlayer[gPlayerNum].cam.eye.y - 350.0f) * 0.015f); gSunViewY = (-camPitch * 3.2f) + 130.0f - ((gPlayer[gPlayerNum].cam.eye.y - 350.0f) * 0.015f);
if (gCurrentLevel == LEVEL_KATINA) { if (gCurrentLevel == LEVEL_KATINA) {
D_ctx_801783D4 -= 80.0f; gSunViewY -= 80.0f;
} }
if ((gCurrentLevel == LEVEL_ZONESS) && (gPlayer[0].unk_1D0 >= 2) && !gMissedZoSearchlight) { if ((gCurrentLevel == LEVEL_ZONESS) && (gPlayer[0].unk_1D0 >= 2) && !gMissedZoSearchlight) {
D_ctx_801783D4 -= 60.0f; gSunViewY -= 60.0f;
D_ctx_801783D0 -= 480.0f; gSunViewX -= 480.0f;
} }
if ((D_ctx_801783D0 < 120.0f) && (D_ctx_801783D0 > -120.0f) && (D_ctx_801783D4 < 120.0f)) { if ((gSunViewX < 120.0f) && (gSunViewX > -120.0f) && (gSunViewY < 120.0f)) {
gPlayerFillScreenAlphas[gPlayerNum] += D_bg_800C9E4C[levelType] * 2; gPlayerGlareAlphas[gPlayerNum] += sSunGlareAlphaStep[levelType] * 2;
if (D_bg_800C9E54[levelType] < gPlayerFillScreenAlphas[gPlayerNum]) { if (sSunGlareMaxAlpha[levelType] < gPlayerGlareAlphas[gPlayerNum]) {
gPlayerFillScreenAlphas[gPlayerNum] = D_bg_800C9E54[levelType]; gPlayerGlareAlphas[gPlayerNum] = sSunGlareMaxAlpha[levelType];
} }
} }
} }
if (gPlayerFillScreenAlphas[gPlayerNum] != 0) { if (gPlayerGlareAlphas[gPlayerNum] != 0) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].camRoll * M_DTOR, MTXF_APPLY); Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].camRoll * M_DTOR, MTXF_APPLY);
Matrix_Translate(gGfxMatrix, D_ctx_801783D0, D_ctx_801783D4, -200.0f, MTXF_APPLY); Matrix_Translate(gGfxMatrix, gSunViewX, gSunViewY, -200.0f, MTXF_APPLY);
RCP_SetupDL_62(); RCP_SetupDL_62();
var_s1 = D_bg_800C9D94; sunColor = sSunColors;
var_s2 = D_bg_800C9DE4; sunAlpha = sSunAlphas;
var_s3 = D_bg_800C9C5C; sunDL = sSunDLs;
var_s4 = D_bg_800C9D2C; sunScale = sSunScales;
if (gCurrentLevel == LEVEL_KATINA) { if (gCurrentLevel == LEVEL_KATINA) {
var_s1 = D_bg_800C9DBC; sunColor = sKaSunColors;
var_s2 = D_bg_800C9E18; sunAlpha = sKaSunAlphas;
var_s3 = D_bg_800C9C90; sunDL = sKaSunDLs;
var_s4 = D_bg_800C9D60; sunScale = sKaSunScales;
} }
for (i = 0; i < 5; i++, var_s1++, var_s2++, var_s3++, var_s4++) { for (i = 0; i < 5; i++, sunColor++, sunAlpha++, sunDL++, sunScale++) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_Scale(gGfxMatrix, *var_s4, *var_s4, *var_s4, MTXF_APPLY); Matrix_Scale(gGfxMatrix, *sunScale, *sunScale, *sunScale, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, var_s1->r, var_s1->g, var_s1->b, *var_s2); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, sunColor->r, sunColor->g, sunColor->b, *sunAlpha);
gSPDisplayList(gMasterDisp++, *var_s3); gSPDisplayList(gMasterDisp++, *sunDL);
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
} }
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
} }
} }
void func_bg_80040954(void) { void Background_DrawLensFlare(void) {
s32 i; s32 i;
Color_RGB8* var_s1; Color_RGB8* lensFlareColor;
s32* var_s4; s32* lensFlareAlpha;
Gfx** var_s5; Gfx** lensFlareDL;
f32* var_s6; f32* lensFlareScale;
f32* var_s7; f32* lensFlareShift;
f32 temp_fs0; f32 lensFlareOffsetX;
f32 temp_fs1; f32 lensFlareOffsetY;
f32 var_fs2; f32 alphaMod;
f32 var_fv0; f32 alpha;
if ((gCurrentLevel == LEVEL_VENOM_ANDROSS) || (gLevelType == LEVELTYPE_SPACE) || if ((gCurrentLevel == LEVEL_VENOM_ANDROSS) || (gLevelType == LEVELTYPE_SPACE) ||
(gPlayerFillScreenAlphas[gPlayerNum] == 0)) { (gPlayerGlareAlphas[gPlayerNum] == 0)) {
return; return;
} }
var_fs2 = 1.0f; alphaMod = 1.0f;
if (gPlayerFillScreenAlphas[gPlayerNum] < 80) { if (gPlayerGlareAlphas[gPlayerNum] < 80) {
var_fs2 = gPlayerFillScreenAlphas[gPlayerNum] / 80.0f; alphaMod = gPlayerGlareAlphas[gPlayerNum] / 80.0f;
} }
var_fs2 *= D_bg_800C9E5C[gLevelType]; alphaMod *= sLensFlareAlphaMod[gLevelType];
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].camRoll * M_DTOR, MTXF_APPLY); Matrix_RotateZ(gGfxMatrix, gPlayer[gPlayerNum].camRoll * M_DTOR, MTXF_APPLY);
Matrix_Translate(gGfxMatrix, D_ctx_801783D0, D_ctx_801783D4, -200.0f, MTXF_APPLY); Matrix_Translate(gGfxMatrix, gSunViewX, gSunViewY, -200.0f, MTXF_APPLY);
RCP_SetupDL_62(); RCP_SetupDL_62();
temp_fs0 = D_ctx_801783D0 * -0.03f; lensFlareOffsetX = gSunViewX * -0.03f;
temp_fs1 = D_ctx_801783D4 * 0.03f; lensFlareOffsetY = gSunViewY * 0.03f;
var_s1 = &D_bg_800C9D94[5]; lensFlareColor = &sSunColors[5];
var_s4 = &D_bg_800C9DE4[5]; lensFlareAlpha = &sSunAlphas[5];
var_s5 = &D_bg_800C9C5C[5]; lensFlareDL = &sSunDLs[5];
var_s6 = &D_bg_800C9D2C[5]; lensFlareScale = &sSunScales[5];
var_s7 = &D_bg_800C9CC4[5]; lensFlareShift = &sSunShifts[5];
if (gCurrentLevel == LEVEL_KATINA) { if (gCurrentLevel == LEVEL_KATINA) {
var_s1 = &D_bg_800C9DBC[5]; lensFlareColor = &sKaSunColors[5];
var_s4 = &D_bg_800C9E18[5]; lensFlareAlpha = &sKaSunAlphas[5];
var_s5 = &D_bg_800C9C90[5]; lensFlareDL = &sKaSunDLs[5];
var_s6 = &D_bg_800C9D60[5]; lensFlareScale = &sKaSunScales[5];
var_s7 = &D_bg_800C9CF8[5]; lensFlareShift = &sKaSunShifts[5];
} }
for (i = 5; i < 13; i++, var_s1++, var_s4++, var_s5++, var_s6++, var_s7++) { for (i = 5; i < 13; i++, lensFlareColor++, lensFlareAlpha++, lensFlareDL++, lensFlareScale++, lensFlareShift++) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, *var_s7 * temp_fs0, *var_s7 * -temp_fs1, 0.0f, MTXF_APPLY); Matrix_Translate(gGfxMatrix, *lensFlareShift * lensFlareOffsetX, *lensFlareShift * -lensFlareOffsetY, 0.0f,
Matrix_Scale(gGfxMatrix, *var_s6, *var_s6, *var_s6, MTXF_APPLY); MTXF_APPLY);
Matrix_Scale(gGfxMatrix, *lensFlareScale, *lensFlareScale, *lensFlareScale, MTXF_APPLY);
if (((i == 5) || (i == 11)) && (gCurrentLevel != LEVEL_KATINA)) { if (((i == 5) || (i == 11)) && (gCurrentLevel != LEVEL_KATINA)) {
Matrix_RotateX(gGfxMatrix, M_PI / 2, MTXF_APPLY); Matrix_RotateX(gGfxMatrix, M_PI / 2, MTXF_APPLY);
} }
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
var_fv0 = *var_s4; alpha = *lensFlareAlpha;
if (i >= 5) { if (i >= 5) {
var_fv0 *= var_fs2; alpha *= alphaMod;
} }
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, var_s1->r, var_s1->g, var_s1->b, (s32) var_fv0); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, lensFlareColor->r, lensFlareColor->g, lensFlareColor->b,
gSPDisplayList(gMasterDisp++, *var_s5); (s32) alpha);
gSPDisplayList(gMasterDisp++, *lensFlareDL);
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
} }
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
@ -810,7 +813,7 @@ void func_bg_80040954(void) {
void func_bg_80040CDC(void) { void func_bg_80040CDC(void) {
} }
void func_bg_80040CE4(void) { void Background_DrawGround(void) {
f32 sp1D4; f32 sp1D4;
s32 i; s32 i;
u32 temp_fv0; u32 temp_fv0;
@ -821,8 +824,8 @@ void func_bg_80040CE4(void) {
if ((gCurrentLevel != LEVEL_VENOM_2) && ((gPlayer[0].cam.eye.y > 4000.0f) || (D_ctx_80177A98 == 0))) { if ((gCurrentLevel != LEVEL_VENOM_2) && ((gPlayer[0].cam.eye.y > 4000.0f) || (D_ctx_80177A98 == 0))) {
return; return;
} }
if ((gCurrentLevel == LEVEL_BOLSE) && (D_bg_800C9C34 != 0)) { if ((gCurrentLevel == LEVEL_BOLSE) && gBolseDynamicGround) {
Bolse_80192264(); Bolse_DrawDynamicGround();
return; return;
} }
sp1D4 = 0.0f; sp1D4 = 0.0f;
@ -890,7 +893,7 @@ void func_bg_80040CE4(void) {
} }
if (gLevelMode == LEVELMODE_ON_RAILS) { if (gLevelMode == LEVELMODE_ON_RAILS) {
gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_CO_601B6C0)); gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_CO_601B6C0));
temp_s0 = fabsf(Math_ModF(2.0f * (D_ctx_80177CE8 * 0.2133333f), 128.0f)); temp_s0 = fabsf(Math_ModF(2.0f * (D_ctx_80177CE8 * 0.2133333f), 128.0f)); // 0.64f / 3.0f
temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f); temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f);
gDPSetupTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, temp_fv0, temp_s0, gDPSetupTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, temp_fv0, temp_s0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD); G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
@ -925,7 +928,7 @@ void func_bg_80040CE4(void) {
gBgColor = 0x845; // 8, 8, 32 gBgColor = 0x845; // 8, 8, 32
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, D_bg_800C9E64[i], 0.0f, D_bg_800C9E74[i], MTXF_APPLY); Matrix_Translate(gGfxMatrix, sGroundPositions360x[i], 0.0f, sGroundPositions360z[i], MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_CO_601EAA0); gSPDisplayList(gMasterDisp++, D_CO_601EAA0);
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
@ -991,7 +994,7 @@ void func_bg_80040CE4(void) {
} else { } else {
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, D_bg_800C9E64[i], 0.0f, D_bg_800C9E74[i], MTXF_APPLY); Matrix_Translate(gGfxMatrix, sGroundPositions360x[i], 0.0f, sGroundPositions360z[i], MTXF_APPLY);
Matrix_Scale(gGfxMatrix, 1.5f, 1.0f, 1.0f, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 1.5f, 1.0f, 1.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_TR_6005880); gSPDisplayList(gMasterDisp++, D_TR_6005880);
@ -1003,7 +1006,7 @@ void func_bg_80040CE4(void) {
RCP_SetupDL(&gMasterDisp, 0x14); RCP_SetupDL(&gMasterDisp, 0x14);
sp1C0 = D_AQ_600AB10; sp1C0 = D_AQ_600AB10;
gSPFogPosition(gMasterDisp++, gFogNear, gFogFar); gSPFogPosition(gMasterDisp++, gFogNear, gFogFar);
if ((D_bg_8015F964 == 0) && ((D_ctx_80177AC8 == 0) || (D_ctx_80177AC8 == 2))) { if ((D_bg_8015F964 == 0) && ((gAqDrawMode == 0) || (gAqDrawMode == 2))) {
gDPLoadTileTexture(gMasterDisp++, SEGMENTED_TO_VIRTUAL(D_AQ_600AB68), G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, gDPLoadTileTexture(gMasterDisp++, SEGMENTED_TO_VIRTUAL(D_AQ_600AB68), G_IM_FMT_RGBA, G_IM_SIZ_16b, 32,
32); 32);
@ -1026,7 +1029,7 @@ void func_bg_80040CE4(void) {
gSPDisplayList(gMasterDisp++, sp1C0); gSPDisplayList(gMasterDisp++, sp1C0);
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
} }
if ((D_bg_8015F964 != 0) || (D_ctx_80177AC8 == 0)) { if ((D_bg_8015F964 != 0) || (gAqDrawMode == 0)) {
gDPLoadTileTexture(gMasterDisp++, SEGMENTED_TO_VIRTUAL(D_AQ_602ACC0), G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, gDPLoadTileTexture(gMasterDisp++, SEGMENTED_TO_VIRTUAL(D_AQ_602ACC0), G_IM_FMT_RGBA, G_IM_SIZ_16b, 32,
32); 32);
gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_AQ_602ACC0)); gDPSetTextureImage(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, SEGMENTED_TO_VIRTUAL(D_AQ_602ACC0));
@ -1034,7 +1037,7 @@ void func_bg_80040CE4(void) {
temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f); temp_fv0 = Math_ModF((10000.0f - gPlayer[gPlayerNum].unk_0AC) * 0.32f, 128.0f);
gDPSetupTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, temp_fv0, temp_s0, gDPSetupTile(gMasterDisp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, temp_fv0, temp_s0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD); G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
if (D_ctx_80177AC8 != 0) { if (gAqDrawMode != 0) {
RCP_SetupDL(&gMasterDisp, 0x2F); RCP_SetupDL(&gMasterDisp, 0x2F);
} else { } else {
RCP_SetupDL(&gMasterDisp, 0x25); RCP_SetupDL(&gMasterDisp, 0x25);
@ -1070,7 +1073,7 @@ void func_bg_80040CE4(void) {
} }
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, D_bg_800C9E64[i], 0.0f, D_bg_800C9E74[i], MTXF_APPLY); Matrix_Translate(gGfxMatrix, sGroundPositions360x[i], 0.0f, sGroundPositions360z[i], MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
if (gCurrentLevel == LEVEL_FORTUNA) { if (gCurrentLevel == LEVEL_FORTUNA) {
gSPDisplayList(gMasterDisp++, D_FO_6001360); gSPDisplayList(gMasterDisp++, D_FO_6001360);
@ -1092,7 +1095,7 @@ void func_bg_80040CE4(void) {
} }
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, D_bg_800C9E64[i], 0.0f, D_bg_800C9E74[i], MTXF_APPLY); Matrix_Translate(gGfxMatrix, sGroundPositions360x[i], 0.0f, sGroundPositions360z[i], MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
if (gVersusStage == VS_STAGE_CORNERIA) { if (gVersusStage == VS_STAGE_CORNERIA) {
gSPDisplayList(gMasterDisp++, D_versus_3018800); gSPDisplayList(gMasterDisp++, D_versus_3018800);

View File

@ -4,8 +4,8 @@
#include "sf64object.h" #include "sf64object.h"
#include "sf64player.h" #include "sf64player.h"
s32 gOverlaySetup; s32 gSceneId;
s32 gOverlayStage; s32 gSceneSetup;
s32 D_ctx_80177824; // some sort of flag s32 D_ctx_80177824; // some sort of flag
s32 D_ctx_8017782C; // some sort of flag. all range related? s32 D_ctx_8017782C; // some sort of flag. all range related?
GameState gGameState; GameState gGameState;
@ -23,7 +23,7 @@ s32 gSavedTeamShields[6];
s32 gPrevPlanetSavedTeamShields[6]; s32 gPrevPlanetSavedTeamShields[6];
s32 gTeamDamage[6]; s32 gTeamDamage[6];
u8 gNextPlanetPath; // next planet path u8 gNextPlanetPath; // next planet path
f32 gGroundLevel; f32 gGroundHeight;
f32 D_ctx_80177950; f32 D_ctx_80177950;
f32 D_ctx_80177968; f32 D_ctx_80177968;
f32 D_ctx_80177970; f32 D_ctx_80177970;
@ -41,11 +41,11 @@ f32 D_ctx_80177A48[10];
s32 gCsFrameCount; s32 gCsFrameCount;
u8 D_ctx_80177A98; u8 D_ctx_80177A98;
u8 D_ctx_80177AB0; u8 D_ctx_80177AB0;
u8 D_ctx_80177AC8; u8 gAqDrawMode;
s32 D_ctx_80177AE0; s32 D_ctx_80177AE0;
s32 gMainController; s32 gMainController;
s32 D_ctx_80177B40; s32 D_ctx_80177B40;
s32 gCurrentPlanet; // D_ctx_80177B48 // Arrow pointer? s32 gMissionNumber; // D_ctx_80177B48 // Arrow pointer?
s32 D_ctx_80177B50[7]; s32 D_ctx_80177B50[7];
s32 D_ctx_80177B70[7]; s32 D_ctx_80177B70[7];
PlanetId D_ctx_80177B90[7]; PlanetId D_ctx_80177B90[7];
@ -57,7 +57,7 @@ s32 gPlanetPathStatus[22]; // overruns gPrevPlanetTeamShields?
#endif #endif
s32 gPrevPlanetTeamShields[6]; s32 gPrevPlanetTeamShields[6];
s32 D_ctx_80177C58[6]; s32 D_ctx_80177C58[6];
u8 gSoundMode; u8 gOptionSoundMode;
s32 gVolumeSettings[3]; s32 gVolumeSettings[3];
u16 gBgmSeqId; u16 gBgmSeqId;
u8 gLevelType; u8 gLevelType;
@ -85,7 +85,7 @@ Vec3f D_ctx_80177F10;
UNK_TYPE F_80178020; UNK_TYPE F_80178020;
s32 D_ctx_8017812C; s32 D_ctx_8017812C;
LevelId gCurrentLevel; LevelId gCurrentLevel;
s32 gLevelStage; s32 gLevelPhase;
s32 gBossActive; s32 gBossActive;
s32 D_ctx_8017828C; s32 D_ctx_8017828C;
s32 D_ctx_80178294; s32 D_ctx_80178294;
@ -112,27 +112,27 @@ s32 gFogRed;
s32 gFogGreen; s32 gFogGreen;
s32 gFogBlue; s32 gFogBlue;
s32 gFogAlpha; s32 gFogAlpha;
s32 gFillScreenAlpha; // alpha something s32 gFillScreenAlpha;
s32 gFillScreenRed; // red something s32 gFillScreenRed;
s32 gFillScreenGreen; // green something s32 gFillScreenGreen;
s32 gFillScreenBlue; // blue something s32 gFillScreenBlue;
s32 gFillScreenAlphaTarget; // alpha target s32 gFillScreenAlphaTarget;
s32 gFillScreenAlphaStep; // alpha step s32 gFillScreenAlphaStep;
s32 D_ctx_80178360; // 2 lights second color s32 gLight3R; // 2 lights second color
s32 D_ctx_80178364; s32 gLight3G;
s32 D_ctx_80178368; s32 gLight3B;
f32 D_ctx_8017836C; // 2 lights second color brightness f32 gLight3Brightness; // 2 lights second color brightness
f32 D_ctx_80178370; // Vec3f? f32 gLight3x; // Vec3f?
f32 D_ctx_80178374; f32 gLight3y;
f32 D_ctx_80178378; f32 gLight3z;
s32 D_ctx_8017837C; s32 gFadeoutType;
u32 gPlayerFillScreenAlphas[4]; // player alphas u32 gPlayerGlareAlphas[4];
s32 gPlayerFillScreenReds[4]; // player reds s32 gPlayerGlareReds[4];
s32 gPlayerFillScreenGreens[4]; // player greens s32 gPlayerGlareGreens[4];
s32 gPlayerFillScreenBlues[4]; // player alphas s32 gPlayerGlareBlues[4];
UNK_TYPE D_ctx_801783C0[4]; UNK_TYPE D_ctx_801783C0[4]; // unused. player alpha targets?
f32 D_ctx_801783D0; // something x translate f32 gSunViewX; // something x translate
f32 D_ctx_801783D4; // something y translate f32 gSunViewY; // something y translate
s32 gFogNear; // near s32 gFogNear; // near
s32 gFogFar; // far s32 gFogFar; // far
UNK_TYPE F_801783E0; UNK_TYPE F_801783E0;
@ -147,13 +147,13 @@ UNK_TYPE F_80178400;
UNK_TYPE F_80178404; UNK_TYPE F_80178404;
UNK_TYPE F_80178408; UNK_TYPE F_80178408;
UNK_TYPE F_8017840C; UNK_TYPE F_8017840C;
s32 D_ctx_80178410; s32 gStarCount;
f32 D_ctx_80178414; f32 gStarWarpDistortion;
f32 D_ctx_80178418; f32 D_ctx_80178418;
UNK_TYPE F_8017841C; UNK_TYPE F_8017841C;
f32 D_ctx_80178420; f32 gStarfieldX;
f32 D_ctx_80178424; f32 gStarfieldY;
f32 D_ctx_80178428; f32 gStarfieldRoll;
f32 D_ctx_8017842C; f32 D_ctx_8017842C;
f32 D_ctx_80178430; f32 D_ctx_80178430;
UNK_TYPE F_80178434; UNK_TYPE F_80178434;
@ -250,7 +250,7 @@ UNK_TYPE F_80161AD0[4];
UNK_TYPE F_80161AE0[4]; UNK_TYPE F_80161AE0[4];
UNK_TYPE F_80161AF0[4]; UNK_TYPE F_80161AF0[4];
UNK_TYPE P_800D31A4 = 0; UNK_TYPE P_800D31A4 = 0;
Object_80 gObjects80[50]; Scenery gScenery[50];
Sprite gSprites[40]; Sprite gSprites[40];
Actor gActors[60]; Actor gActors[60];
Boss gBosses[4]; Boss gBosses[4];
@ -269,13 +269,13 @@ f32 gActor194yRot[2][100];
f32 gActor194zRot[2][100]; f32 gActor194zRot[2][100];
UNK_TYPE P_800D31A8 = 0; UNK_TYPE P_800D31A8 = 0;
u16 gEnemyShotSpeed; // enemy shot speed? u16 gEnemyShotSpeed; // enemy shot speed?
u8 D_ctx_80177830; // show level complete status overlay u8 gShowLevelClearStatusScreen;
s32 gLevelStatusScreenTimer; // level clear related s32 gLevelStartStatusScreenTimer;
s32 gLevelClearScreenTimer; // timer for mission accomplished scrren s32 gLevelClearScreenTimer; // timer for mission accomplished scrren
s32 gBossHealthBar; s32 gBossHealthBar;
s32 D_ctx_80177850; // bonus text related. set to 15 but never read s32 D_ctx_80177850; // bonus text related. set to 15 but never read
s32 D_ctx_80177858[4]; s32 D_ctx_80177858[4]; // set to 3 but never used
s32 D_ctx_80177870[4]; PlayerForm gPlayerForms[4];
s32 gHandicap[4]; s32 gHandicap[4];
VsStage gVersusStage; VsStage gVersusStage;
s32 D_ctx_801778A4; s32 D_ctx_801778A4;
@ -286,7 +286,7 @@ u16 gBoostButton[4];
u16 gBrakeButton[4]; u16 gBrakeButton[4];
u16 gShootButton[4]; u16 gShootButton[4];
u16 gBombButton[4]; u16 gBombButton[4];
f32 D_ctx_80177958[4]; f32 D_ctx_80177958[4]; // set to 1.0f but never used
s32 D_ctx_8017796C; s32 D_ctx_8017796C;
OSContPad* gInputHold; OSContPad* gInputHold;
OSContPad* gInputPress; OSContPad* gInputPress;
@ -302,15 +302,15 @@ s32 D_Timer_80177A38[4];
s32 D_Timer_80177A70[4]; s32 D_Timer_80177A70[4];
s32 D_Timer_80177A88[4]; s32 D_Timer_80177A88[4];
f32 D_ctx_80177AA0[4]; f32 D_ctx_80177AA0[4];
f32 D_ctx_80177AB8[4]; f32 gShieldAlpha[4];
s32 D_ctx_80177AD0[4]; s32 gHasShield[4];
s32 D_ctx_80177AE8[4]; s32 gShieldTimer[4];
s32 D_ctx_80177B00[4][4]; s32 gVsLockOnTimers[4][4];
u8 D_Timer_80177B44; u8 gStartAndrossFightTimer;
u8 D_ctx_80177B4C; u8 gSoShieldsEmpty;
u8 D_ctx_80177B6C; u8 gCoUturnCount;
u8 gGreatFoxIntact; u8 gGreatFoxIntact;
u8 D_ctx_80177BAC; u8 gTiStartLandmaster;
u16 gControllerRumbleTimers[4]; u16 gControllerRumbleTimers[4];
u16 D_ctx_80177C30[4]; u16 D_ctx_80177C30[4];
s32 D_ctx_80177C50; s32 D_ctx_80177C50;
@ -344,11 +344,11 @@ f32 D_ctx_80178028[65];
f32 D_ctx_80178130[65]; f32 D_ctx_80178130[65];
u8 D_ctx_80178238[65]; u8 D_ctx_80178238[65];
Player* gPlayer; Player* gPlayer;
f32* D_ctx_80178288; f32* gStarOffsetsX;
f32* D_ctx_80178290; f32* gStarOffsetsY;
u32* D_ctx_80178298; u32* gStarFillColors;
UNK_TYPE F_801782A0; UNK_TYPE F_801782A0;
Object_58* gObjects58; Scenery360* gScenery360;
UNK_TYPE F_801782B0; UNK_TYPE F_801782B0;
s32 D_ctx_801782B8; s32 D_ctx_801782B8;
s32 D_ctx_801782BC; s32 D_ctx_801782BC;

View File

@ -246,11 +246,11 @@ void Cutscene_WarpZoneComplete(Player* player) {
break; break;
case 200: case 200:
D_ctx_80177830 = 1; gShowLevelClearStatusScreen = 1;
break; break;
case 400: case 400:
D_ctx_80177830 = 0; gShowLevelClearStatusScreen = 0;
break; break;
case 420: case 420:
@ -290,7 +290,7 @@ void Cutscene_WarpZoneComplete(Player* player) {
if (gFillScreenAlpha == 255) { if (gFillScreenAlpha == 255) {
player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->state_1C8 = PLAYERSTATE_1C8_NEXT;
player->timer_1F8 = 0; player->timer_1F8 = 0;
D_ctx_8017837C = 4; gFadeoutType = 4;
if (gCurrentLevel == LEVEL_METEO) { if (gCurrentLevel == LEVEL_METEO) {
D_play_800D3180[LEVEL_METEO] = Play_CheckMedalStatus(200) + 1; D_play_800D3180[LEVEL_METEO] = Play_CheckMedalStatus(200) + 1;
} else { } else {
@ -477,9 +477,9 @@ void Cutscene_EnterWarpZone(Player* player) {
switch (player->unk_1D0) { switch (player->unk_1D0) {
case 0: case 0:
player->somersault = false; player->somersault = false;
D_ctx_80178414 = 100.0f; gStarWarpDistortion = 100.0f;
player->unk_1D0 = 1; player->unk_1D0 = 1;
D_ctx_80178410 = 1; gStarCount = 1;
gLoadLevelObjects = 0; gLoadLevelObjects = 0;
player->vel.x = 0.0f; player->vel.x = 0.0f;
player->vel.y = 0.0f; player->vel.y = 0.0f;
@ -503,7 +503,7 @@ void Cutscene_EnterWarpZone(Player* player) {
case 1: case 1:
Math_SmoothStepToF(&D_ctx_801779A8[player->num], 100.0f, 1.0f, 4.0f, 0.0f); Math_SmoothStepToF(&D_ctx_801779A8[player->num], 100.0f, 1.0f, 4.0f, 0.0f);
Math_SmoothStepToF(&player->camRoll, 0.0f, 0.1f, 3.0f, 0.0f); Math_SmoothStepToF(&player->camRoll, 0.0f, 0.1f, 3.0f, 0.0f);
D_ctx_80178414 *= 1.05f; gStarWarpDistortion *= 1.05f;
if (player->timer_1F8 == 0) { if (player->timer_1F8 == 0) {
player->unk_1D0 = 2; player->unk_1D0 = 2;
player->timer_1F8 = 150; player->timer_1F8 = 150;
@ -515,8 +515,8 @@ void Cutscene_EnterWarpZone(Player* player) {
case 2: case 2:
Math_SmoothStepToF(&D_ctx_801779A8[player->num], 100.0f, 1.0f, 3.0f, 0.0f); Math_SmoothStepToF(&D_ctx_801779A8[player->num], 100.0f, 1.0f, 3.0f, 0.0f);
if (D_ctx_80178414 < 20000.0f) { if (gStarWarpDistortion < 20000.0f) {
D_ctx_80178414 *= 1.01f; gStarWarpDistortion *= 1.01f;
} }
if (player->timer_1F8 <= 100) { if (player->timer_1F8 <= 100) {
@ -586,7 +586,7 @@ void Cutscene_EnterWarpZone(Player* player) {
player->timer_27C = gSavedHitCount = D_ctx_80177DC8 = D_ctx_80177CA0 = 0; player->timer_27C = gSavedHitCount = D_ctx_80177DC8 = D_ctx_80177CA0 = 0;
player->unk_234 = 1; player->unk_234 = 1;
gLevelStage = 1; gLevelPhase = 1;
D_display_800CA230 = 0.15f; D_display_800CA230 = 0.15f;
AUDIO_PLAY_SFX(0x11407079, gDefaultSfxSource, 0); AUDIO_PLAY_SFX(0x11407079, gDefaultSfxSource, 0);
func_play_800AB334(); func_play_800AB334();
@ -607,7 +607,7 @@ void Cutscene_EnterWarpZone(Player* player) {
break; break;
case 6: case 6:
Math_SmoothStepToF(&D_ctx_80178414, 0.0f, 0.2f, 1000.0f, 0.1f); Math_SmoothStepToF(&gStarWarpDistortion, 0.0f, 0.2f, 1000.0f, 0.1f);
Math_SmoothStepToF(&player->unk_08C, 0.0f, 0.2f, 500.0f, 0.1f); Math_SmoothStepToF(&player->unk_08C, 0.0f, 0.2f, 500.0f, 0.1f);
if (player->timer_1F8 < 30) { if (player->timer_1F8 < 30) {
for (var_v0 = 0; var_v0 < 3; var_v0++) { for (var_v0 = 0; var_v0 < 3; var_v0++) {
@ -616,13 +616,13 @@ void Cutscene_EnterWarpZone(Player* player) {
} }
if (player->timer_1F8 == 30) { if (player->timer_1F8 == 30) {
D_ctx_80178410 = 300; gStarCount = 300;
AUDIO_PLAY_BGM(SEQ_ID_WARP_ZONE | SEQ_FLAG); AUDIO_PLAY_BGM(SEQ_ID_WARP_ZONE | SEQ_FLAG);
} }
if (player->timer_1F8 == 0) { if (player->timer_1F8 == 0) {
D_bg_8015F960 = 0.0f; gWarpZoneBgAlpha = 0.0f;
D_ctx_80178414 = 0.0f; gStarWarpDistortion = 0.0f;
player->state_1C8 = PLAYERSTATE_1C8_ACTIVE; player->state_1C8 = PLAYERSTATE_1C8_ACTIVE;
player->unk_014 = 0.0f; player->unk_014 = 0.0f;
player->unk_018 = 0.0f; player->unk_018 = 0.0f;
@ -643,29 +643,29 @@ void Cutscene_LevelStart(Player* player) {
if (gLevelMode == LEVELMODE_ON_RAILS) { if (gLevelMode == LEVELMODE_ON_RAILS) {
switch (gCurrentLevel) { switch (gCurrentLevel) {
case LEVEL_CORNERIA: case LEVEL_CORNERIA:
Corneria_8018F880(player); Corneria_LevelStart(player);
func_play_800AA800(player); func_play_800AA800(player);
break; break;
case LEVEL_METEO: case LEVEL_METEO:
Meteo_8018CD8C(player); Meteo_LevelStart(player);
break; break;
case LEVEL_SECTOR_X: case LEVEL_SECTOR_X:
SectorX_80193A30(player); SectorX_LevelStart(player);
break; break;
case LEVEL_TITANIA: case LEVEL_TITANIA:
Titania_8018769C(player); Titania_LevelStart(player);
func_play_800AA800(player); func_play_800AA800(player);
break; break;
case LEVEL_ZONESS: case LEVEL_ZONESS:
Zoness_8019D428(player); Zoness_LevelStart(player);
break; break;
case LEVEL_MACBETH: case LEVEL_MACBETH:
Macbeth_801AC754(player); Macbeth_LevelStart(player);
break; break;
case LEVEL_SECTOR_Y: case LEVEL_SECTOR_Y:
@ -673,25 +673,24 @@ void Cutscene_LevelStart(Player* player) {
break; break;
case LEVEL_SOLAR: case LEVEL_SOLAR:
Solar_801A10F4(player); Solar_LevelStart(player);
break; break;
case LEVEL_VENOM_1: case LEVEL_VENOM_1:
Venom1_801988B8(player); Venom1_LevelStart(player);
func_play_800AA800(player); func_play_800AA800(player);
break; break;
case LEVEL_AQUAS: case LEVEL_AQUAS:
func_hud_800935E8(player); HUD_AquasStart(player);
break; break;
case LEVEL_AREA_6: case LEVEL_AREA_6:
Area6_8018DF74(player); Area6_LevelStart(player);
break; break;
} }
func_demo_8004990C(player); func_demo_8004990C(player);
return; } else {
}
switch (gCurrentLevel) { switch (gCurrentLevel) {
case LEVEL_FORTUNA: case LEVEL_FORTUNA:
AllRange_FortunaIntro(player); AllRange_FortunaIntro(player);
@ -699,26 +698,27 @@ void Cutscene_LevelStart(Player* player) {
break; break;
case LEVEL_VENOM_2: case LEVEL_VENOM_2:
Venom2_80196BF8(player); Venom2_LevelStart(player);
func_play_800AA800(player); func_play_800AA800(player);
break; break;
case LEVEL_BOLSE: case LEVEL_BOLSE:
Bolse_8018EF6C(player); Bolse_LevelStart(player);
func_play_800AA800(player); func_play_800AA800(player);
break; break;
case LEVEL_KATINA: case LEVEL_KATINA:
Katina_80192E20(player); Katina_LevelStart(player);
func_play_800AA800(player); func_play_800AA800(player);
break; break;
case LEVEL_SECTOR_Z: case LEVEL_SECTOR_Z:
SectorZ_8019BA64(player); SectorZ_LevelStart(player);
default: default:
break; break;
} }
}
} }
void func_demo_8004A700(Actor* actor, s32 arg1) { void func_demo_8004A700(Actor* actor, s32 arg1) {
@ -1288,7 +1288,7 @@ void Cutscene_CoComplete2(Player* player) {
if (player->timer_1F8 == 0) { if (player->timer_1F8 == 0) {
player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->state_1C8 = PLAYERSTATE_1C8_NEXT;
player->timer_1F8 = 0; player->timer_1F8 = 0;
D_ctx_8017837C = 4; gFadeoutType = 4;
Audio_FadeOutAll(10); Audio_FadeOutAll(10);
D_play_800D3180[gCurrentLevel] = Play_CheckMedalStatus(150) + 1; D_play_800D3180[gCurrentLevel] = Play_CheckMedalStatus(150) + 1;
} }
@ -1297,11 +1297,11 @@ void Cutscene_CoComplete2(Player* player) {
switch (gCsFrameCount) { switch (gCsFrameCount) {
case 961: case 961:
D_ctx_80177830 = 1; gShowLevelClearStatusScreen = 1;
break; break;
case 1161: case 1161:
D_ctx_80177830 = 0; gShowLevelClearStatusScreen = 0;
break; break;
case 1255: case 1255:
@ -1359,47 +1359,47 @@ void Cutscene_LevelComplete(Player* player) {
switch (player->form) { switch (player->form) {
case FORM_ARWING: case FORM_ARWING:
if ((gCurrentLevel == LEVEL_VENOM_ANDROSS) || ((gCurrentLevel == LEVEL_VENOM_2) && (gLevelStage == 1))) { if ((gCurrentLevel == LEVEL_VENOM_ANDROSS) || ((gCurrentLevel == LEVEL_VENOM_2) && (gLevelPhase == 1))) {
Andross_80193C4C(player); Andross_80193C4C(player);
} else if (gCurrentLevel == LEVEL_SECTOR_X) { } else if (gCurrentLevel == LEVEL_SECTOR_X) {
if (gLevelStage == 0) { if (gLevelPhase == 0) {
SectorX_80194728(player); SectorX_LevelComplete(player);
} else { } else {
Cutscene_WarpZoneComplete(player); Cutscene_WarpZoneComplete(player);
} }
} else if (gCurrentLevel == LEVEL_AREA_6) { } else if (gCurrentLevel == LEVEL_AREA_6) {
Area6_8018ED78(player); Area6_LevelComplete(player);
} else if (gCurrentLevel == LEVEL_FORTUNA) { } else if (gCurrentLevel == LEVEL_FORTUNA) {
Cutscene_FortunaComplete(player); Cutscene_FortunaComplete(player);
func_play_800AA800(player); func_play_800AA800(player);
} else if (gCurrentLevel == LEVEL_BOLSE) { } else if (gCurrentLevel == LEVEL_BOLSE) {
Bolse_8018F94C(player); Bolse_LevelComplete(player);
func_play_800AA800(player); func_play_800AA800(player);
} else if (gCurrentLevel == LEVEL_SECTOR_Z) { } else if (gCurrentLevel == LEVEL_SECTOR_Z) {
SectorZ_8019C85C(player); SectorZ_LevelComplete(player);
} else if (gCurrentLevel == LEVEL_KATINA) { } else if (gCurrentLevel == LEVEL_KATINA) {
Katina_80197290(player); Katina_LevelComplete(player);
func_play_800AA800(player); func_play_800AA800(player);
} else if (gCurrentLevel == LEVEL_SECTOR_Y) { } else if (gCurrentLevel == LEVEL_SECTOR_Y) {
SectorY_8019EE60(player); SectorY_LevelComplete(player);
func_play_800AA800(player); func_play_800AA800(player);
} else if (gCurrentLevel == LEVEL_SOLAR) { } else if (gCurrentLevel == LEVEL_SOLAR) {
Solar_801A7930(player); Solar_LevelComplete(player);
func_play_800AA800(player); func_play_800AA800(player);
} else if (gCurrentLevel == LEVEL_ZONESS) { } else if (gCurrentLevel == LEVEL_ZONESS) {
Zoness_8019D76C(player); Zoness_LevelComplete(player);
func_play_800AA800(player); func_play_800AA800(player);
} else if (gCurrentLevel == LEVEL_VENOM_2) { } else if (gCurrentLevel == LEVEL_VENOM_2) {
Venom2_80196D88(player); Venom2_LevelComplete(player);
func_play_800AA800(player); func_play_800AA800(player);
} else if (gCurrentLevel == LEVEL_METEO) { } else if (gCurrentLevel == LEVEL_METEO) {
if (gLevelStage == 0) { if (gLevelPhase == 0) {
Meteo_8018E084(player); Meteo_LevelComplete(player);
} else { } else {
Cutscene_WarpZoneComplete(player); Cutscene_WarpZoneComplete(player);
} }
} else if ((gCurrentLevel == LEVEL_CORNERIA) && (gLevelMode == LEVELMODE_ALL_RANGE)) { } else if ((gCurrentLevel == LEVEL_CORNERIA) && (gLevelMode == LEVELMODE_ALL_RANGE)) {
Corneria_80191160(player); Corneria_LevelComplete1(player);
func_play_800AA800(player); func_play_800AA800(player);
} else { } else {
if (gCsFrameCount == 170) { if (gCsFrameCount == 170) {
@ -1421,11 +1421,11 @@ void Cutscene_LevelComplete(Player* player) {
gInputPress->stick_x = btn; gInputPress->stick_x = btn;
if (gCurrentLevel == LEVEL_TITANIA) { if (gCurrentLevel == LEVEL_TITANIA) {
Titania_801882CC(player); Titania_LevelComplete(player);
} else if (gNextPlanetPath != 0) { } else if (gNextPlanetPath != 0) {
Macbeth_801AF8F4(player); Macbeth_LevelComplete2(player);
} else { } else {
Macbeth_801B3D04(player); Macbeth_LevelComplete1(player);
} }
func_tank_80046358(player); func_tank_80046358(player);
@ -1435,7 +1435,7 @@ void Cutscene_LevelComplete(Player* player) {
case FORM_BLUE_MARINE: case FORM_BLUE_MARINE:
if (gCurrentLevel == LEVEL_AQUAS) { if (gCurrentLevel == LEVEL_AQUAS) {
func_hud_80095604(player); HUD_AquasComplete(player);
} }
break; break;
} }
@ -1454,11 +1454,11 @@ void Cutscene_UTurn(Player* player) {
sp50.rot.z = player->unk_0D0; sp50.rot.z = player->unk_0D0;
sp58.x = Math_RadToDeg(Math_Atan2F(player->pos.x, player->unk_138)); sp58.x = Math_RadToDeg(Math_Atan2F(player->pos.x, player->unk_138));
player->unk_2B4 = 1; player->boostCooldown = 1;
player->unk_2BC += 1.0f; player->boostMeter += 1.0f;
if (player->unk_2BC > 90.0f) { if (player->boostMeter > 90.0f) {
player->unk_2BC = 90.0f; player->boostMeter = 90.0f;
} }
switch (player->unk_1D0) { switch (player->unk_1D0) {
@ -1616,7 +1616,7 @@ void Cutscene_KillPlayer(Player* player) {
player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->state_1C8 = PLAYERSTATE_1C8_NEXT;
player->timer_1F8 = 70; player->timer_1F8 = 70;
player->timer_224 = 20; player->timer_224 = 20;
D_ctx_8017837C = 7; gFadeoutType = 7;
if (player->unk_1D4 != 0) { if (player->unk_1D4 != 0) {
player->unk_284 = 0; player->unk_284 = 0;
@ -1857,7 +1857,7 @@ void func_demo_8004DEF8(Player* player) {
} else if ((((player->timer_220 > 0) || (player->pos.y < player->unk_0A4)) || (player->timer_1FC == 0)) && } else if ((((player->timer_220 > 0) || (player->pos.y < player->unk_0A4)) || (player->timer_1FC == 0)) &&
(player->timer_1F8 == 0)) { (player->timer_1F8 == 0)) {
if (player->pos.y < player->unk_0A4) { if (player->pos.y < player->unk_0A4) {
func_effect_8007C688(player->pos.x, gGroundLevel + 20.0f, player->unk_138 - (2.0f * player->vel.z), 3.0f, func_effect_8007C688(player->pos.x, gGroundHeight + 20.0f, player->unk_138 - (2.0f * player->vel.z), 3.0f,
800); 800);
func_enmy_80062C38(player->pos.x, player->pos.z); func_enmy_80062C38(player->pos.x, player->pos.z);
} }
@ -1884,8 +1884,8 @@ void func_demo_8004DEF8(Player* player) {
} }
if ((gGroundType == GROUNDTYPE_WATER) && (player->pos.y <= player->unk_0A4)) { if ((gGroundType == GROUNDTYPE_WATER) && (player->pos.y <= player->unk_0A4)) {
func_effect_8007D9DC(player->pos.x, gGroundLevel + 2.0f, player->unk_138, 3.0f, 20.0f, 0); func_effect_8007D9DC(player->pos.x, gGroundHeight + 2.0f, player->unk_138, 3.0f, 20.0f, 0);
func_effect_8007ADF4(player->pos.x, gGroundLevel, player->unk_138, 0.1f, 2.0f); func_effect_8007ADF4(player->pos.x, gGroundHeight, player->unk_138, 0.1f, 2.0f);
} }
} }
@ -2386,7 +2386,7 @@ void Actor195_Update(Actor* actor) {
break; break;
case LEVEL_METEO: case LEVEL_METEO:
if (gLevelStage == 0) { if (gLevelPhase == 0) {
Meteo_8018ED9C(actor); Meteo_8018ED9C(actor);
break; break;
} }
@ -2421,13 +2421,13 @@ void Actor195_Update(Actor* actor) {
actor->scale = 0.0f; actor->scale = 0.0f;
} }
D_ctx_8017836C = actor->iwork[0] / 255.0f; gLight3Brightness = actor->iwork[0] / 255.0f;
D_ctx_80178370 = gActors[0].obj.pos.x + 10.0f; gLight3x = gActors[0].obj.pos.x + 10.0f;
D_ctx_80178374 = gActors[0].obj.pos.y - 40.0f; gLight3y = gActors[0].obj.pos.y - 40.0f;
D_ctx_80178378 = gActors[0].obj.pos.z - 70.0f; gLight3z = gActors[0].obj.pos.z - 70.0f;
D_ctx_80178360 = 255; gLight3R = 255;
D_ctx_80178364 = 255; gLight3G = 255;
D_ctx_80178368 = 80; gLight3B = 80;
break; break;
} }
} }
@ -2443,7 +2443,7 @@ void Actor195_Update(Actor* actor) {
break; break;
case LEVEL_SECTOR_X: case LEVEL_SECTOR_X:
if (gLevelStage != 0) { if (gLevelPhase != 0) {
func_demo_80049630(actor); func_demo_80049630(actor);
break; break;
} }
@ -2611,7 +2611,7 @@ void Actor195_Draw(Actor* actor) {
break; break;
case 30: case 30:
func_edisplay_8005F670(&actor->obj.pos); Display_SetSecondLight(&actor->obj.pos);
if (actor->unk_046 != 0) { if (actor->unk_046 != 0) {
RCP_SetupDL(&gMasterDisp, 0x37); RCP_SetupDL(&gMasterDisp, 0x37);

View File

@ -845,15 +845,15 @@ void func_display_80054914(Player* player) {
} }
void func_display_80054CA4(Player* player) { void func_display_80054CA4(Player* player) {
if (D_ctx_80177AB8[player->num] > 1.0f) { if (gShieldAlpha[player->num] > 1.0f) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_Copy(gGfxMatrix, &D_display_80161418[player->num]); Matrix_Copy(gGfxMatrix, &D_display_80161418[player->num]);
Matrix_Translate(gGfxMatrix, 0.0f, -5.0f, 10.0f, MTXF_APPLY); Matrix_Translate(gGfxMatrix, 0.0f, -5.0f, 10.0f, MTXF_APPLY);
Matrix_Scale(gGfxMatrix, 2.5f, 1.6f, 2.5f, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 2.5f, 1.6f, 2.5f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
RCP_SetupDL(&gMasterDisp, 0x44); RCP_SetupDL(&gMasterDisp, 0x44);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 255, 255, (s32) D_ctx_80177AB8[player->num]); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 255, 255, (s32) gShieldAlpha[player->num]);
gDPSetEnvColor(gMasterDisp++, 255, 0, 255, (s32) D_ctx_80177AB8[player->num]); gDPSetEnvColor(gMasterDisp++, 255, 0, 255, (s32) gShieldAlpha[player->num]);
gSPDisplayList(gMasterDisp++, D_101CD70); gSPDisplayList(gMasterDisp++, D_101CD70);
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
Texture_Scroll(D_101D070, 32, 32, 3); Texture_Scroll(D_101D070, 32, 32, 3);
@ -1200,14 +1200,14 @@ void func_display_800564C0(Player* player, s32 arg1) {
player->unk_138 + player->unk_144, MTXF_APPLY); player->unk_138 + player->unk_144, MTXF_APPLY);
if (gVersusMode) { if (gVersusMode) {
for (i = 0; i < gCamCount; i++) { for (i = 0; i < gCamCount; i++) {
if (D_ctx_80177B00[player->num][i] != 0) { if (gVsLockOnTimers[player->num][i] != 0) {
Matrix_MultVec3f(gGfxMatrix, &sp50, &D_display_80161578[i]); Matrix_MultVec3f(gGfxMatrix, &sp50, &D_display_80161578[i]);
if ((i == gPlayerNum) && if ((i == gPlayerNum) &&
((D_display_80161578[i].z > 300.0f) || (D_display_80161578[i].z < -8000.0f) || ((D_display_80161578[i].z > 300.0f) || (D_display_80161578[i].z < -8000.0f) ||
(fabsf(D_display_80161578[i].x) > (fabsf(D_display_80161578[i].z * 0.5f) + 100.0f)) || (fabsf(D_display_80161578[i].x) > (fabsf(D_display_80161578[i].z * 0.5f) + 100.0f)) ||
(fabsf(D_display_80161578[i].y)) > (fabsf(D_display_80161578[i].z * 0.5f) + 100.0f))) { (fabsf(D_display_80161578[i].y)) > (fabsf(D_display_80161578[i].z * 0.5f) + 100.0f))) {
D_ctx_80177B00[player->num][i] = 0; gVsLockOnTimers[player->num][i] = 0;
} }
} }
} }
@ -1245,14 +1245,14 @@ void func_display_800564C0(Player* player, s32 arg1) {
Matrix_Translate(gGfxMatrix, player->pos.x, player->pos.y, player->unk_138 + player->unk_144, MTXF_APPLY); Matrix_Translate(gGfxMatrix, player->pos.x, player->pos.y, player->unk_138 + player->unk_144, MTXF_APPLY);
if (gVersusMode) { if (gVersusMode) {
for (i = 0; i < gCamCount; i++) { for (i = 0; i < gCamCount; i++) {
if (D_ctx_80177B00[player->num][i] != 0) { if (gVsLockOnTimers[player->num][i] != 0) {
Matrix_MultVec3f(gGfxMatrix, &sp50, &D_display_80161578[i]); Matrix_MultVec3f(gGfxMatrix, &sp50, &D_display_80161578[i]);
if ((i == gPlayerNum) && if ((i == gPlayerNum) &&
((D_display_80161578[i].z > 300.0f) || (D_display_80161578[i].z < -8000.0f) || ((D_display_80161578[i].z > 300.0f) || (D_display_80161578[i].z < -8000.0f) ||
(fabsf(D_display_80161578[i].x) > (fabsf(D_display_80161578[i].z * 0.5f) + 100.0f)) || (fabsf(D_display_80161578[i].x) > (fabsf(D_display_80161578[i].z * 0.5f) + 100.0f)) ||
(fabsf(D_display_80161578[i].y) > (fabsf(D_display_80161578[i].z * 0.5f) + 100.0f)))) { (fabsf(D_display_80161578[i].y) > (fabsf(D_display_80161578[i].z * 0.5f) + 100.0f)))) {
D_ctx_80177B00[player->num][i] = 0; gVsLockOnTimers[player->num][i] = 0;
} }
} }
} }
@ -1588,14 +1588,14 @@ void Play_Draw(void) {
tempVec.y = 100.0f; tempVec.y = 100.0f;
tempVec.z = 0.0f; tempVec.z = 0.0f;
Matrix_MultVec3f(gCalcMatrix, &tempVec, &playerCamUp); Matrix_MultVec3f(gCalcMatrix, &tempVec, &playerCamUp);
if (D_ctx_80178410 != 0) { if (gStarCount != 0) {
D_ctx_80178428 = DEG_TO_RAD(gPlayer[0].camRoll); gStarfieldRoll = DEG_TO_RAD(gPlayer[0].camRoll);
func_play_800B6F50(gPlayerCamEye.x, gPlayerCamEye.y, gPlayerCamEye.z, gPlayerCamAt.x, gPlayerCamAt.y, func_play_800B6F50(gPlayerCamEye.x, gPlayerCamEye.y, gPlayerCamEye.z, gPlayerCamAt.x, gPlayerCamAt.y,
gPlayerCamAt.z); gPlayerCamAt.z);
func_bg_8003DAF0(); Background_DrawStarfield();
} }
func_bg_8003E1E8(); Background_DrawBackdrop();
func_bg_80040450(); Background_DrawSun();
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_LookAt(gGfxMatrix, gPlayerCamEye.x, gPlayerCamEye.y, gPlayerCamEye.z, gPlayerCamAt.x, gPlayerCamAt.y, Matrix_LookAt(gGfxMatrix, gPlayerCamEye.x, gPlayerCamEye.y, gPlayerCamEye.z, gPlayerCamAt.x, gPlayerCamAt.y,
gPlayerCamAt.z, playerCamUp.x, playerCamUp.y, playerCamUp.z, MTXF_APPLY); gPlayerCamAt.z, playerCamUp.x, playerCamUp.y, playerCamUp.z, MTXF_APPLY);
@ -1609,8 +1609,8 @@ void Play_Draw(void) {
D_ctx_80177CC8 = 0.0f; D_ctx_80177CC8 = 0.0f;
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
} else if (gGroundType != GROUNDTYPE_WATER) { } else if (gGroundType != GROUNDTYPE_WATER) {
D_bg_8015F964 = 0; D_bg_8015F964 = false;
func_bg_80040CE4(); Background_DrawGround();
} }
} }
Lights_SetOneLight(&gMasterDisp, gLight2x, gLight2y, gLight2z, gLight2R, gLight2G, gLight2B, gAmbientR, gAmbientG, Lights_SetOneLight(&gMasterDisp, gLight2x, gLight2y, gLight2z, gLight2R, gLight2G, gLight2B, gAmbientR, gAmbientG,
@ -1619,7 +1619,7 @@ void Play_Draw(void) {
opponentPos.x = opponent->pos.x; opponentPos.x = opponent->pos.x;
opponentPos.y = opponent->pos.y; opponentPos.y = opponent->pos.y;
opponentPos.z = opponent->unk_138; opponentPos.z = opponent->unk_138;
func_edisplay_8005F670(&opponentPos); Display_SetSecondLight(&opponentPos);
func_display_800564C0(opponent, 0); func_display_800564C0(opponent, 0);
func_display_80057814(opponent); func_display_80057814(opponent);
} }
@ -1664,10 +1664,10 @@ void Play_Draw(void) {
if (gCurrentLevel == LEVEL_AQUAS) { if (gCurrentLevel == LEVEL_AQUAS) {
Effect_Draw(0); Effect_Draw(0);
} }
if ((gGroundType == GROUNDTYPE_WATER) || (D_ctx_80177AC8 != 0)) { if ((gGroundType == GROUNDTYPE_WATER) || (gAqDrawMode != 0)) {
D_bg_8015F964 = 1; D_bg_8015F964 = true;
Effect_Draw(1); Effect_Draw(1);
func_bg_80040CE4(); Background_DrawGround();
} }
if ((gCurrentLevel != LEVEL_AQUAS) && if ((gCurrentLevel != LEVEL_AQUAS) &&
(((gCurrentLevel != LEVEL_CORNERIA) && (gCurrentLevel != LEVEL_VENOM_ANDROSS)) || (((gCurrentLevel != LEVEL_CORNERIA) && (gCurrentLevel != LEVEL_VENOM_ANDROSS)) ||
@ -1713,7 +1713,7 @@ void Play_Draw(void) {
if ((gLevelMode == LEVELMODE_UNK_2) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE)) { if ((gLevelMode == LEVELMODE_UNK_2) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE)) {
Turret_801A6164(gPlayer); Turret_801A6164(gPlayer);
} }
func_bg_80040954(); Background_DrawLensFlare();
if ((gCamCount != 1) && if ((gCamCount != 1) &&
((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (player->state_1C8 == PLAYERSTATE_1C8_U_TURN))) { ((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (player->state_1C8 == PLAYERSTATE_1C8_U_TURN))) {
func_hud_8008FA84(); func_hud_8008FA84();

View File

@ -4,7 +4,7 @@
f32* D_edata_800CF964[] = { NULL }; f32* D_edata_800CF964[] = { NULL };
void func_edata_800594F0(Object_80* obj80) { void func_edata_800594F0(Scenery* scenery) {
RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
@ -12,7 +12,7 @@ void func_edata_800594F0(Object_80* obj80) {
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
} }
void func_edata_800595D0(Object_80* obj80) { void func_edata_800595D0(Scenery* scenery) {
RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);

View File

@ -25,26 +25,26 @@
f32 gActor241Hitbox[] = { f32 gActor241Hitbox[] = {
1.0f, 0.0f, 50.0f, 0.0f, 25.0f, 0.0f, 25.0f, 1.0f, 0.0f, 50.0f, 0.0f, 25.0f, 0.0f, 25.0f,
}; };
f32 gDefaultCubeHitbox100[] = { f32 gCubeHitbox100[] = {
1.0f, 0.0f, 50.0f, 0.0f, 50.0f, 0.0f, 50.0f, 1.0f, 0.0f, 50.0f, 0.0f, 50.0f, 0.0f, 50.0f,
}; };
f32 gDefaultCubeHitbox150[] = { f32 gCubeHitbox150[] = {
1.0f, 0.0f, 75.0f, 0.0f, 75.0f, 0.0f, 75.0f, 1.0f, 0.0f, 75.0f, 0.0f, 75.0f, 0.0f, 75.0f,
}; };
f32 gDefaultCubeHitbox200[] = { f32 gCubeHitbox200[] = {
1.0f, 0.0f, 100.0f, 0.0f, 100.0f, 0.0f, 100.0f, 1.0f, 0.0f, 100.0f, 0.0f, 100.0f, 0.0f, 100.0f,
}; };
f32 gDefaultCubeHitbox300[] = { f32 gCubeHitbox300[] = {
// unused // unused
1.0f, 0.0f, 150.0f, 0.0f, 150.0f, 0.0f, 150.0f, 1.0f, 0.0f, 150.0f, 0.0f, 150.0f, 0.0f, 150.0f,
}; };
f32 gDefaultCubeHitbox400[] = { f32 gCubeHitbox400[] = {
1.0f, 0.0f, 200.0f, 0.0f, 200.0f, 0.0f, 200.0f, 1.0f, 0.0f, 200.0f, 0.0f, 200.0f, 0.0f, 200.0f,
}; };
f32 gItemRingCheckHitbox[] = { f32 gItemRingCheckHitbox[] = {
1.0f, -113.0f, 61.0f, 98.0f, 100.0f, 0.0f, 219.0f, 1.0f, -113.0f, 61.0f, 98.0f, 100.0f, 0.0f, 219.0f,
}; };
f32 gHitboxNone[] = { f32 gNoHitbox[] = {
0.0f, 0.0f,
}; };
f32 gItemCheckpointHitbox[] = { f32 gItemCheckpointHitbox[] = {
@ -56,7 +56,7 @@ f32 gItemSupplyRingHitbox[] = {
f32 gMeteoWarpHitbox[] = { f32 gMeteoWarpHitbox[] = {
1.0f, -40.0f, 100.0f, 0.0f, 100.0f, 0.0f, 100.0f, 1.0f, -40.0f, 100.0f, 0.0f, 100.0f, 0.0f, 100.0f,
}; };
f32 D_edata_800CBF8C[] = { f32 gItemPathChangeHitbox[] = {
1.0f, 0.0f, 100.0f, 0.0f, 1200.0f, 0.0f, 1200.0f, 1.0f, 0.0f, 100.0f, 0.0f, 1200.0f, 0.0f, 1200.0f,
}; };
f32 gItemLasersHitbox[] = { f32 gItemLasersHitbox[] = {
@ -68,7 +68,7 @@ f32 gItemBombHitbox[] = {
f32 gActor190_191Hitbox[] = { f32 gActor190_191Hitbox[] = {
1.0f, 0.0f, 40.0f, 0.0f, 40.0f, 0.0f, 40.0f, 1.0f, 0.0f, 40.0f, 0.0f, 40.0f, 0.0f, 40.0f,
}; };
f32 gActor194HItbox[] = { f32 gActor194Hitbox[] = {
1.0f, 0.0f, 50.0f, 0.0f, 50.0f, 0.0f, 50.0f, 1.0f, 0.0f, 50.0f, 0.0f, 50.0f, 0.0f, 50.0f,
}; };
f32 gTeamHitbox[] = { f32 gTeamHitbox[] = {
@ -93,210 +93,210 @@ f32 gWarpZoneEvent93Hitbox[] = {
// clang-format off // clang-format off
ObjectInfo D_edata_800CC124[0x190] = { ObjectInfo D_edata_800CC124[0x190] = {
/* OBJ_80_0, */ {(void*) D_CO_6015F00, 0, (ObjectFunc) NULL, D_CO_603E3E0, 800.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_0, */ {(void*) D_CO_6015F00, 0, (ObjectFunc) NULL, D_CO_603E3E0, 800.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_1, */ {(void*) D_CO_602E9E0, 0, (ObjectFunc) NULL, gHitboxNone, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_1, */ {(void*) D_CO_602E9E0, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_2, */ {(void*) D_CO_601BEC0, 0, (ObjectFunc) NULL, gHitboxNone, 3000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_2, */ {(void*) D_CO_601BEC0, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_3, */ {(void*) D_CO_602E7A0, 0, (ObjectFunc) NULL, gHitboxNone, 3000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_3, */ {(void*) D_CO_602E7A0, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_4, */ {(void*) D_CO_60244A0, 0, (ObjectFunc) NULL, gHitboxNone, 3000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_4, */ {(void*) D_CO_60244A0, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_5, */ {(void*) D_CO_602E570, 0, (ObjectFunc) NULL, gHitboxNone, 3000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_5, */ {(void*) D_CO_602E570, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_6, */ {(void*) D_CO_60132B0, 0, (ObjectFunc) NULL, D_CO_603DCA4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_6, */ {(void*) D_CO_60132B0, 0, (ObjectFunc) NULL, D_CO_603DCA4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_7, */ {(void*) D_CO_602E080, 0, (ObjectFunc) NULL, D_CO_603DD40, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_7, */ {(void*) D_CO_602E080, 0, (ObjectFunc) NULL, D_CO_603DD40, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_8, */ {(void*) D_CO_60164F0, 0, (ObjectFunc) NULL, gHitboxNone, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_8, */ {(void*) D_CO_60164F0, 0, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_9, */ {(void*) D_CO_6014500, 0, (ObjectFunc) NULL, gHitboxNone, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_9, */ {(void*) D_CO_6014500, 0, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_10, */ {(void*) D_CO_602D5F0, 0, (ObjectFunc) NULL, D_CO_603DDF0, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_10, */ {(void*) D_CO_602D5F0, 0, (ObjectFunc) NULL, D_CO_603DDF0, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_11, */ {(void*) D_CO_601A7D0, 0, (ObjectFunc) NULL, D_CO_603DE8C, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_11, */ {(void*) D_CO_601A7D0, 0, (ObjectFunc) NULL, D_CO_603DE8C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_12, */ {(void*) D_CO_6014B50, 0, (ObjectFunc) NULL, D_CO_603DEF4, 500.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_12, */ {(void*) D_CO_6014B50, 0, (ObjectFunc) NULL, D_CO_603DEF4, 500.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_13, */ {(void*) D_CO_6016580, 0, (ObjectFunc) NULL, D_CO_603DF8C, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_13, */ {(void*) D_CO_6016580, 0, (ObjectFunc) NULL, D_CO_603DF8C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_14, */ {(void*) D_CO_601B560, 0, (ObjectFunc) func_enmy_80066EA8, D_CO_603DFDC, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_14, */ {(void*) D_CO_601B560, 0, (ObjectFunc) func_enmy_80066EA8, D_CO_603DFDC, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_15, */ {(void*) D_CO_60361F0, 0, (ObjectFunc) func_enmy_80066EA8, D_CO_603E014, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_15, */ {(void*) D_CO_60361F0, 0, (ObjectFunc) func_enmy_80066EA8, D_CO_603E014, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_16, */ {(void*) D_CO_6018E80, 0, (ObjectFunc) func_enmy_80066EA8, D_CO_603E030, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_16, */ {(void*) D_CO_6018E80, 0, (ObjectFunc) func_enmy_80066EA8, D_CO_603E030, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_17, */ {(void*) D_CO_6035F10, 0, (ObjectFunc) func_enmy_80066EA8, D_CO_603E09C, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_17, */ {(void*) D_CO_6035F10, 0, (ObjectFunc) func_enmy_80066EA8, D_CO_603E09C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_18, */ {(void*) Corneria_8018753C, 1, (ObjectFunc) Corneria_80187530, D_CO_603E98C, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_18, */ {(void*) Corneria_8018753C, 1, (ObjectFunc) Corneria_80187530, D_CO_603E98C, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_19, */ {(void*) D_CO_60153B0, 0, (ObjectFunc) NULL, D_CO_603E118, 100.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_19, */ {(void*) D_CO_60153B0, 0, (ObjectFunc) NULL, D_CO_603E118, 100.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_20, */ {(void*) D_CO_601F5A0, 0, (ObjectFunc) NULL, D_CO_603E14C, 500.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_20, */ {(void*) D_CO_601F5A0, 0, (ObjectFunc) NULL, D_CO_603E14C, 500.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_21, */ {(void*) D_CO_60137B0, 0, (ObjectFunc) NULL, D_CO_603E1B4, 400.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_21, */ {(void*) D_CO_60137B0, 0, (ObjectFunc) NULL, D_CO_603E1B4, 400.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_22, */ {(void*) D_CO_6006A80, 0, (ObjectFunc) NULL, D_CO_603E21C, 400.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_22, */ {(void*) D_CO_6006A80, 0, (ObjectFunc) NULL, D_CO_603E21C, 400.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_23, */ {(void*) D_CO_6016270, 0, (ObjectFunc) NULL, D_CO_603E4A0, 200.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_23, */ {(void*) D_CO_6016270, 0, (ObjectFunc) NULL, D_CO_603E4A0, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_24, */ {(void*) D_CO_6010E00, 0, (ObjectFunc) NULL, D_CO_603E9EC, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_24, */ {(void*) D_CO_6010E00, 0, (ObjectFunc) NULL, D_CO_603E9EC, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_25, */ {(void*) D_CO_6014670, 0, (ObjectFunc) NULL, D_CO_603EA08, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_25, */ {(void*) D_CO_6014670, 0, (ObjectFunc) NULL, D_CO_603EA08, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_26, */ {(void*) D_CO_6010A50, 0, (ObjectFunc) NULL, D_CO_603EA74, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_26, */ {(void*) D_CO_6010A50, 0, (ObjectFunc) NULL, D_CO_603EA74, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_27, */ {(void*) D_CO_60143E0, 0, (ObjectFunc) NULL, D_CO_603EAE0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_27, */ {(void*) D_CO_60143E0, 0, (ObjectFunc) NULL, D_CO_603EAE0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_28, */ {(void*) D_CO_6014A20, 0, (ObjectFunc) NULL, D_CO_603EB0C, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_28, */ {(void*) D_CO_6014A20, 0, (ObjectFunc) NULL, D_CO_603EB0C, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_29, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60064FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_29, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60064FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_30, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006518, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_30, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006518, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_31, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006564, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_31, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006564, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_32, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60065B0, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_32, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60065B0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_33, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60065FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_33, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60065FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_34, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006648, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_34, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006648, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_35, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006694, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_35, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006694, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_36, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60066E0, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_36, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_60066E0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_37, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_600672C, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_37, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_600672C, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_38, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006778, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_38, */ {(void*) func_edisplay_80059B20, 1, (ObjectFunc) func_enmy_800652CC, D_TI_6006778, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_39, */ {(void*) Obj39_Draw, 1, (ObjectFunc) Obj39_Update, gHitboxNone, 6000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_39, */ {(void*) Obj39_Draw, 1, (ObjectFunc) Obj39_Update, gNoHitbox, 6000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_40, */ {(void*) func_edisplay_80059F68, 1, (ObjectFunc) func_enmy_80066D5C, D_CO_603E4A4, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_40, */ {(void*) func_edisplay_80059F68, 1, (ObjectFunc) func_enmy_80066D5C, D_CO_603E4A4, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_41, */ {(void*) func_edisplay_80059FDC, 1, (ObjectFunc) func_enmy_80066EA8, D_CO_603E4DC, 300.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_41, */ {(void*) func_edisplay_80059FDC, 1, (ObjectFunc) func_enmy_80066EA8, D_CO_603E4DC, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_42, */ {(void*) Obj42_Draw, 1, (ObjectFunc) Obj42_Update, D_CO_603E514, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_42, */ {(void*) Obj42_Draw, 1, (ObjectFunc) Obj42_Update, D_CO_603E514, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_43, */ {(void*) D_ZO_6024AC0, 0, (ObjectFunc) NULL, D_ZO_602B9EC, 200.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_43, */ {(void*) D_ZO_6024AC0, 0, (ObjectFunc) NULL, D_ZO_602B9EC, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_44, */ {(void*) D_ZO_600F560, 0, (ObjectFunc) NULL, D_ZO_602BA20, 1500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_44, */ {(void*) D_ZO_600F560, 0, (ObjectFunc) NULL, D_ZO_602BA20, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_45, */ {(void*) D_ZO_600EC90, 0, (ObjectFunc) NULL, D_ZO_602BAE4, 1500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_45, */ {(void*) D_ZO_600EC90, 0, (ObjectFunc) NULL, D_ZO_602BAE4, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_46, */ {(void*) D_ZO_600E820, 0, (ObjectFunc) NULL, D_ZO_602BBD8, 1500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_46, */ {(void*) D_ZO_600E820, 0, (ObjectFunc) NULL, D_ZO_602BBD8, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_47, */ {(void*) D_ZO_601FCB0, 0, (ObjectFunc) NULL, D_ZO_602BC54, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_47, */ {(void*) D_ZO_601FCB0, 0, (ObjectFunc) NULL, D_ZO_602BC54, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_48, */ {(void*) func_edata_800594F0, 1, (ObjectFunc) NULL, D_VE1_601B4E0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_48, */ {(void*) func_edata_800594F0, 1, (ObjectFunc) NULL, D_VE1_601B4E0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_49, */ {(void*) func_edata_800595D0, 1, (ObjectFunc) NULL, D_VE1_601B4FC, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_49, */ {(void*) func_edata_800595D0, 1, (ObjectFunc) NULL, D_VE1_601B4FC, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_50, */ {(void*) D_VE1_6007410, 0, (ObjectFunc) NULL, D_VE1_601B518, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_50, */ {(void*) D_VE1_6007410, 0, (ObjectFunc) NULL, D_VE1_601B518, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_51, */ {(void*) D_VE1_6006F50, 0, (ObjectFunc) NULL, D_VE1_601B584, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_51, */ {(void*) D_VE1_6006F50, 0, (ObjectFunc) NULL, D_VE1_601B584, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_52, */ {(void*) D_VE1_6005780, 0, (ObjectFunc) Venom1_80193540, D_VE1_601B5F4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_52, */ {(void*) D_VE1_6005780, 0, (ObjectFunc) Venom1_80193540, D_VE1_601B5F4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_53, */ {(void*) D_VE1_6003610, 0, (ObjectFunc) NULL, D_VE1_601B644, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_53, */ {(void*) D_VE1_6003610, 0, (ObjectFunc) NULL, D_VE1_601B644, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_54, */ {(void*) D_CO_6000E00, 0, (ObjectFunc) Obj54_Update, D_CO_603E0EC, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_54, */ {(void*) D_CO_6000E00, 0, (ObjectFunc) Obj54_Update, D_CO_603E0EC, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_55, */ {(void*) D_CO_6013B50, 0, (ObjectFunc) NULL, D_CO_603E88C, 1000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_55, */ {(void*) D_CO_6013B50, 0, (ObjectFunc) NULL, D_CO_603E88C, 1000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_56, */ {(void*) Corneria_8018F31C, 2, (ObjectFunc) Corneria_8018F044, D_CO_603E8A8, 1000.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_56, */ {(void*) Corneria_8018F31C, 2, (ObjectFunc) Corneria_8018F044, D_CO_603E8A8, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_57, */ {(void*) Titania_8018F8B8, 1, (ObjectFunc) Titania_8018F4D8, D_TI_6006BF0, 800.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_57, */ {(void*) Titania_8018F8B8, 1, (ObjectFunc) Titania_8018F4D8, D_TI_6006BF0, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_58, */ {(void*) D_TI1_700BE00, 0, (ObjectFunc) NULL, D_TI_6006C44, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_58, */ {(void*) D_TI1_700BE00, 0, (ObjectFunc) NULL, D_TI_6006C44, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_59, */ {(void*) D_MA_6024010, 0, (ObjectFunc) NULL, D_MA_603626C, 300.0f, 0, 0, 5, 0, 0.0f, 0 }, /* OBJ_SCENERY_59, */ {(void*) D_MA_6024010, 0, (ObjectFunc) NULL, D_MA_603626C, 300.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_80_60, */ {(void*) D_MA_6027180, 0, (ObjectFunc) NULL, D_MA_6036288, 400.0f, 0, 0, 5, 0, 0.0f, 0 }, /* OBJ_SCENERY_60, */ {(void*) D_MA_6027180, 0, (ObjectFunc) NULL, D_MA_6036288, 400.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_80_61, */ {(void*) Macbeth_801A2A78, 1, (ObjectFunc) NULL, D_MA_60362A4, 200.0f, 0, 0, 5, 0, 0.0f, 0 }, /* OBJ_SCENERY_61, */ {(void*) Macbeth_801A2A78, 1, (ObjectFunc) NULL, D_MA_60362A4, 200.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_80_62, */ {(void*) D_MA_60270E0, 0, (ObjectFunc) NULL, gHitboxNone, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_62, */ {(void*) D_MA_60270E0, 0, (ObjectFunc) NULL, gNoHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_63, */ {(void*) D_MA_6013960, 0, (ObjectFunc) NULL, D_MA_6036894, 500.0f, 0, 0, 5, 0, 0.0f, 0 }, /* OBJ_SCENERY_63, */ {(void*) D_MA_6013960, 0, (ObjectFunc) NULL, D_MA_6036894, 500.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_80_64, */ {(void*) D_MA_600AF40, 0, (ObjectFunc) NULL, D_MA_60368E0, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_64, */ {(void*) D_MA_600AF40, 0, (ObjectFunc) NULL, D_MA_60368E0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_65, */ {(void*) Macbeth_801A6608, 1, (ObjectFunc) NULL, D_MA_6036724, 400.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_65, */ {(void*) Macbeth_801A6608, 1, (ObjectFunc) NULL, D_MA_6036724, 400.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_66, */ {(void*) D_MA_601F1D0, 0, (ObjectFunc) NULL, D_MA_60362D8, 2500.0f, 0, 0, 5, 0, 0.0f, 0 }, /* OBJ_SCENERY_66, */ {(void*) D_MA_601F1D0, 0, (ObjectFunc) NULL, D_MA_60362D8, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_80_67, */ {(void*) D_MA_60238F0, 0, (ObjectFunc) NULL, D_MA_6036328, 2000.0f, 0, 0, 5, 0, 0.0f, 0 }, /* OBJ_SCENERY_67, */ {(void*) D_MA_60238F0, 0, (ObjectFunc) NULL, D_MA_6036328, 2000.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_80_68, */ {(void*) D_MA_601B7C0, 0, (ObjectFunc) NULL, D_MA_60362F4, 2500.0f, 0, 0, 5, 0, 0.0f, 0 }, /* OBJ_SCENERY_68, */ {(void*) D_MA_601B7C0, 0, (ObjectFunc) NULL, D_MA_60362F4, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
/* OBJ_80_69, */ {(void*) D_MA_6030500, 0, (ObjectFunc) NULL, D_MA_6036370, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_69, */ {(void*) D_MA_6030500, 0, (ObjectFunc) NULL, D_MA_6036370, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_70, */ {(void*) D_MA_602DAE0, 0, (ObjectFunc) NULL, D_MA_603638C, 1900.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_70, */ {(void*) D_MA_602DAE0, 0, (ObjectFunc) NULL, D_MA_603638C, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_71, */ {(void*) D_MA_6027900, 0, (ObjectFunc) NULL, D_MA_60363B8, 1900.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_71, */ {(void*) D_MA_6027900, 0, (ObjectFunc) NULL, D_MA_60363B8, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_72, */ {(void*) D_MA_602DB80, 0, (ObjectFunc) NULL, D_MA_60363E4, 1100.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_72, */ {(void*) D_MA_602DB80, 0, (ObjectFunc) NULL, D_MA_60363E4, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_73, */ {(void*) D_MA_6030630, 0, (ObjectFunc) NULL, D_MA_6036410, 1100.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_73, */ {(void*) D_MA_6030630, 0, (ObjectFunc) NULL, D_MA_6036410, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_74, */ {(void*) D_MA_602DC20, 0, (ObjectFunc) NULL, D_MA_603643C, 1000.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_74, */ {(void*) D_MA_602DC20, 0, (ObjectFunc) NULL, D_MA_603643C, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_75, */ {(void*) D_MA_601B0D0, 0, (ObjectFunc) NULL, D_MA_6036760, 3000.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_75, */ {(void*) D_MA_601B0D0, 0, (ObjectFunc) NULL, D_MA_6036760, 3000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_76, */ {(void*) D_MA_60075D0, 0, (ObjectFunc) NULL, gHitboxNone, 1000.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_76, */ {(void*) D_MA_60075D0, 0, (ObjectFunc) NULL, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_77, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_MA_6036344, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_77, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, D_MA_6036344, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_78, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gHitboxNone, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_78, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_79, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gHitboxNone, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_79, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_80, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gHitboxNone, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_80, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_81, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gHitboxNone, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_81, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_82, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gHitboxNone, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_82, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_83, */ {(void*) Macbeth_801A3240, 1, (ObjectFunc) Macbeth_801A2DD8, gHitboxNone, 15000.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_83, */ {(void*) Macbeth_801A3240, 1, (ObjectFunc) Macbeth_801A2DD8, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_84, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gHitboxNone, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_84, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_85, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gHitboxNone, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_85, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_86, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gHitboxNone, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_86, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_87, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gHitboxNone, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_87, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_88, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gHitboxNone, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_88, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_89, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gHitboxNone, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_89, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_90, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gHitboxNone, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_90, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_91, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gHitboxNone, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_91, */ {(void*) Macbeth_801A2B24, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_92, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gHitboxNone, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_92, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_93, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gHitboxNone, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_93, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_94, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gHitboxNone, 15000.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_94, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_95, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gHitboxNone, 15000.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_95, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_96, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gHitboxNone, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_96, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_97, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gHitboxNone, 15000.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_97, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_98, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gHitboxNone, 15000.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_98, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_99, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gHitboxNone, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_99, */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_100 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gHitboxNone, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_100 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_101 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gHitboxNone, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_101 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_102 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gHitboxNone, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_102 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_103 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gHitboxNone, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_103 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_104 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) Macbeth_801A0BD8, D_MA_6036594, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_104 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) Macbeth_801A0BD8, D_MA_6036594, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_105 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_MA_6036204, 1300.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_105 */ {(void*) Macbeth_801A23AC, 1, (ObjectFunc) NULL, D_MA_6036204, 1300.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_106 */ {(void*) D_SY_60097E0, 0, (ObjectFunc) NULL, D_SY_6034478, 4000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_106 */ {(void*) D_SY_60097E0, 0, (ObjectFunc) NULL, D_SY_6034478, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_107 */ {(void*) D_SY_601D730, 0, (ObjectFunc) NULL, D_SY_603450C, 4000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_107 */ {(void*) D_SY_601D730, 0, (ObjectFunc) NULL, D_SY_603450C, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_108 */ {(void*) D_SY_60102C0, 0, (ObjectFunc) NULL, D_SY_6034588, 4000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_108 */ {(void*) D_SY_60102C0, 0, (ObjectFunc) NULL, D_SY_6034588, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_109 */ {(void*) D_SY_60036A0, 0, (ObjectFunc) SectorY_801A4E44, D_SY_6034664, 4000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_109 */ {(void*) D_SY_60036A0, 0, (ObjectFunc) SectorY_801A4E44, D_SY_6034664, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_110 */ {(void*) D_SY_6005360, 0, (ObjectFunc) NULL, D_SY_6034770, 4000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_110 */ {(void*) D_SY_6005360, 0, (ObjectFunc) NULL, D_SY_6034770, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_111 */ {(void*) Obj111_Draw, 1, (ObjectFunc) NULL, gHitboxNone, 2000.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_111 */ {(void*) Obj111_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_112 */ {(void*) D_SY_600F6C0, 0, (ObjectFunc) SectorY_801A52B8, D_SY_60347F0, 4000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_112 */ {(void*) D_SY_600F6C0, 0, (ObjectFunc) SectorY_801A52B8, D_SY_60347F0, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_113 */ {(void*) D_SY_601B610, 0, (ObjectFunc) NULL, gHitboxNone, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_113 */ {(void*) D_SY_601B610, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_114 */ {(void*) D_SY_601C6A0, 0, (ObjectFunc) NULL, gHitboxNone, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_114 */ {(void*) D_SY_601C6A0, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_115 */ {(void*) D_SY_60188D0, 0, (ObjectFunc) NULL, D_SY_603486C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_115 */ {(void*) D_SY_60188D0, 0, (ObjectFunc) NULL, D_SY_603486C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_116 */ {(void*) D_SY_60034D0, 0, (ObjectFunc) NULL, D_SY_60347D4, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_116 */ {(void*) D_SY_60034D0, 0, (ObjectFunc) NULL, D_SY_60347D4, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_117 */ {(void*) D_AQ_60231C0, 0, (ObjectFunc) NULL, D_AQ_6030C60, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_117 */ {(void*) D_AQ_60231C0, 0, (ObjectFunc) NULL, D_AQ_6030C60, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_118 */ {(void*) D_AQ_6011EE0, 0, (ObjectFunc) NULL, D_AQ_6030C7C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_118 */ {(void*) D_AQ_6011EE0, 0, (ObjectFunc) NULL, D_AQ_6030C7C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_119 */ {(void*) D_AQ_6015730, 0, (ObjectFunc) NULL, D_AQ_6030D74, 2000.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_SCENERY_119 */ {(void*) D_AQ_6015730, 0, (ObjectFunc) NULL, D_AQ_6030D74, 2000.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_80_120 */ {(void*) D_AQ_601DE60, 0, (ObjectFunc) NULL, D_AQ_6030DF8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_120 */ {(void*) D_AQ_601DE60, 0, (ObjectFunc) NULL, D_AQ_6030DF8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_121 */ {(void*) D_AQ_602B4C0, 0, (ObjectFunc) NULL, D_AQ_6030E14, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_121 */ {(void*) D_AQ_602B4C0, 0, (ObjectFunc) NULL, D_AQ_6030E14, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_122 */ {(void*) D_AQ_600EE10, 0, (ObjectFunc) NULL, D_AQ_6030E30_Hitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_122 */ {(void*) D_AQ_600EE10, 0, (ObjectFunc) NULL, D_AQ_6030E30_Hitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_123 */ {(void*) D_AQ_60120F0, 0, (ObjectFunc) NULL, D_AQ_6030E4C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_123 */ {(void*) D_AQ_60120F0, 0, (ObjectFunc) NULL, D_AQ_6030E4C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_124 */ {(void*) D_AQ_600EEF0, 0, (ObjectFunc) NULL, gHitboxNone, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_124 */ {(void*) D_AQ_600EEF0, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_125 */ {(void*) D_AQ_600BF80, 0, (ObjectFunc) NULL, D_AQ_6030E68, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_125 */ {(void*) D_AQ_600BF80, 0, (ObjectFunc) NULL, D_AQ_6030E68, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_126 */ {(void*) Aquas_801BE1FC, 1, (ObjectFunc) NULL, gHitboxNone, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_126 */ {(void*) Aquas_801BE1FC, 1, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_127 */ {(void*) D_VE1_9005C80, 0, (ObjectFunc) Venom1_801924A8, D_VE1_601B678, 1000.0f, 0, 0, 42, 0, 0.0f, 0 }, /* OBJ_SCENERY_127 */ {(void*) D_VE1_9005C80, 0, (ObjectFunc) Venom1_801924A8, D_VE1_601B678, 1000.0f, 0, 0, 42, 0, 0.0f, 0 },
/* OBJ_80_128 */ {(void*) D_VE1_9003F50, 0, (ObjectFunc) NULL, D_VE1_601B6C4, 3200.0f, 0, 0, 42, 0, 0.0f, 0 }, /* OBJ_SCENERY_128 */ {(void*) D_VE1_9003F50, 0, (ObjectFunc) NULL, D_VE1_601B6C4, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
/* OBJ_80_129 */ {(void*) D_VE1_900F060, 0, (ObjectFunc) NULL, D_VE1_601B710, 3200.0f, 0, 0, 42, 0, 0.0f, 0 }, /* OBJ_SCENERY_129 */ {(void*) D_VE1_900F060, 0, (ObjectFunc) NULL, D_VE1_601B710, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
/* OBJ_80_130 */ {(void*) D_VE1_900F1D0, 0, (ObjectFunc) NULL, D_VE1_601B75C, 3200.0f, 0, 0, 42, 0, 0.0f, 0 }, /* OBJ_SCENERY_130 */ {(void*) D_VE1_900F1D0, 0, (ObjectFunc) NULL, D_VE1_601B75C, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
/* OBJ_80_131 */ {(void*) Andross_801935D4, 1, (ObjectFunc) Andross_8019356C, D_ANDROSS_C038BD8, 500.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_131 */ {(void*) Andross_801935D4, 1, (ObjectFunc) Andross_8019356C, D_ANDROSS_C038BD8, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_132 */ {(void*) Andross_8019350C, 1, (ObjectFunc) Andross_80193380, D_ANDROSS_C038A48, 500.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_SCENERY_132 */ {(void*) Andross_8019350C, 1, (ObjectFunc) Andross_80193380, D_ANDROSS_C038A48, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
/* OBJ_80_133 */ {(void*) D_TR_60030F0, 0, (ObjectFunc) NULL, D_TR_6009CC4, 1000.0f, 0, 0, 20, 0, 0.0f, 0 }, /* OBJ_SCENERY_133 */ {(void*) D_TR_60030F0, 0, (ObjectFunc) NULL, D_TR_6009CC4, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
/* OBJ_80_134 */ {(void*) D_VE2_6003000, 0, (ObjectFunc) NULL, D_ANDROSS_C038BA4, 0.0f, 0, 0, 41, 1, 0.0f, 0 }, /* OBJ_SCENERY_134 */ {(void*) D_VE2_6003000, 0, (ObjectFunc) NULL, D_ANDROSS_C038BA4, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
/* OBJ_80_135 */ {(void*) D_TI_6006890, 0, (ObjectFunc) NULL, D_ANDROSS_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 }, /* OBJ_SCENERY_135 */ {(void*) D_TI_6006890, 0, (ObjectFunc) NULL, D_ANDROSS_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
/* OBJ_80_136 */ {(void*) D_VE2_6002990, 0, (ObjectFunc) NULL, D_ANDROSS_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 }, /* OBJ_SCENERY_136 */ {(void*) D_VE2_6002990, 0, (ObjectFunc) NULL, D_ANDROSS_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
/* OBJ_80_137 */ {(void*) D_VE2_6004170, 0, (ObjectFunc) NULL, gHitboxNone, 0.0f, 0, 0, 0, 1, 0.0f, 0 }, /* OBJ_SCENERY_137 */ {(void*) D_VE2_6004170, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 0, 1, 0.0f, 0 },
/* OBJ_80_138 */ {(void*) D_versus_3017600, 0, (ObjectFunc) NULL, D_versus_302EE64, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_138 */ {(void*) D_versus_3017600, 0, (ObjectFunc) NULL, D_versus_302EE64, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_139 */ {(void*) D_versus_3017600, 0, (ObjectFunc) NULL, D_versus_302EE80, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_139 */ {(void*) D_versus_3017600, 0, (ObjectFunc) NULL, D_versus_302EE80, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_140 */ {(void*) D_versus_30173C0, 0, (ObjectFunc) NULL, gHitboxNone, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_140 */ {(void*) D_versus_30173C0, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_141 */ {(void*) D_versus_30174E0, 0, (ObjectFunc) NULL, gHitboxNone, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_141 */ {(void*) D_versus_30174E0, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_142 */ {(void*) D_versus_301B080, 0, (ObjectFunc) NULL, D_versus_302EE9C, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_142 */ {(void*) D_versus_301B080, 0, (ObjectFunc) NULL, D_versus_302EE9C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_143 */ {(void*) D_versus_3016B00, 0, (ObjectFunc) NULL, D_versus_302EE00, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_143 */ {(void*) D_versus_3016B00, 0, (ObjectFunc) NULL, D_versus_302EE00, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_144 */ {(void*) D_versus_3013780, 0, (ObjectFunc) NULL, D_versus_302ED4C, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_144 */ {(void*) D_versus_3013780, 0, (ObjectFunc) NULL, D_versus_302ED4C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_145 */ {(void*) D_versus_3013580, 0, (ObjectFunc) NULL, D_versus_302ED98, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_145 */ {(void*) D_versus_3013580, 0, (ObjectFunc) NULL, D_versus_302ED98, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_146 */ {(void*) D_versus_3012ED0, 0, (ObjectFunc) NULL, D_versus_302EDB4, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_146 */ {(void*) D_versus_3012ED0, 0, (ObjectFunc) NULL, D_versus_302EDB4, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_147 */ {(void*) NULL, 0, (ObjectFunc) NULL, gHitboxNone, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SCENERY_147 */ {(void*) NULL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_80_148 */ {(void*) D_FO_60079B0, 0, (ObjectFunc) NULL, D_FO_600FF80, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_148 */ {(void*) D_FO_60079B0, 0, (ObjectFunc) NULL, D_FO_600FF80, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_149 */ {(void*) D_FO_6007D80, 0, (ObjectFunc) NULL, D_FO_600FFA0, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_149 */ {(void*) D_FO_6007D80, 0, (ObjectFunc) NULL, D_FO_600FFA0, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_150 */ {(void*) D_FO_6006310, 0, (ObjectFunc) NULL, D_FO_600FFC0, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_150 */ {(void*) D_FO_6006310, 0, (ObjectFunc) NULL, D_FO_600FFC0, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_151 */ {(void*) D_FO_60066E0, 0, (ObjectFunc) NULL, D_FO_600FEB8, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_151 */ {(void*) D_FO_60066E0, 0, (ObjectFunc) NULL, D_FO_600FEB8, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_152 */ {(void*) D_BO_600F4C0, 0, (ObjectFunc) NULL, D_BO_6011C10, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_152 */ {(void*) D_BO_600F4C0, 0, (ObjectFunc) NULL, D_BO_6011C10, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_153 */ {(void*) D_BO_600B8B0, 0, (ObjectFunc) NULL, D_BO_6011C48, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_153 */ {(void*) D_BO_600B8B0, 0, (ObjectFunc) NULL, D_BO_6011C48, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_154 */ {(void*) D_KA_600BAF0, 0, (ObjectFunc) NULL, D_KA_601115C, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_154 */ {(void*) D_KA_600BAF0, 0, (ObjectFunc) NULL, D_KA_601115C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_155 */ {(void*) NULL, 0, (ObjectFunc) NULL, gHitboxNone, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_155 */ {(void*) NULL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_156 */ {(void*) SectorY_80197CB8, 1, (ObjectFunc) NULL, D_SY_6034368, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_156 */ {(void*) SectorY_80197CB8, 1, (ObjectFunc) NULL, D_SY_6034368, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_157 */ {(void*) D_SZ_6001DA0, 0, (ObjectFunc) NULL, D_SZ_600924C, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_157 */ {(void*) D_SZ_6001DA0, 0, (ObjectFunc) NULL, D_SZ_600924C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_158 */ {(void*) D_SZ_6001360, 0, (ObjectFunc) NULL, D_SZ_60092E8, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_158 */ {(void*) D_SZ_6001360, 0, (ObjectFunc) NULL, D_SZ_60092E8, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_159 */ {(void*) D_VE2_6008370, 0, (ObjectFunc) NULL, D_VE2_601668C, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_159 */ {(void*) D_VE2_6008370, 0, (ObjectFunc) NULL, D_VE2_601668C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_80_160 */ {(void*) D_VE2_6010960, 0, (ObjectFunc) NULL, D_VE2_6016714, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SCENERY_160 */ {(void*) D_VE2_6010960, 0, (ObjectFunc) NULL, D_VE2_6016714, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_CO_POLE */ {(void*) D_CO_602F7C0, 0, (ObjectFunc) Sprite_UpdateDoodad, D_CO_603E468, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SPRITE_CO_POLE */ {(void*) D_CO_602F7C0, 0, (ObjectFunc) Sprite_UpdateDoodad, D_CO_603E468, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_CO_TREE */ {(void*) D_CO_601C9B0, 0, (ObjectFunc) Sprite_UpdateDoodad, D_CO_603E484, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SPRITE_CO_TREE */ {(void*) D_CO_601C9B0, 0, (ObjectFunc) Sprite_UpdateDoodad, D_CO_603E484, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_FO_POLE */ {(void*) D_FO_600A420, 0, (ObjectFunc) Sprite_UpdateDoodad, D_FO_600FE9C, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SPRITE_FO_POLE */ {(void*) D_FO_600A420, 0, (ObjectFunc) Sprite_UpdateDoodad, D_FO_600FE9C, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_FOG_SHADOW */ {(void*) FogShadow_Draw, 1, (ObjectFunc) NULL, gHitboxNone, 1800.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SPRITE_FOG_SHADOW */ {(void*) FogShadow_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 1800.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_CO_RUIN1 */ {(void*) D_CO_602DCA0, 0, (ObjectFunc) NULL, gHitboxNone, -100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SPRITE_CO_RUIN1 */ {(void*) D_CO_602DCA0, 0, (ObjectFunc) NULL, gNoHitbox, -100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_CO_RUIN2 */ {(void*) D_CO_601F500, 0, (ObjectFunc) NULL, gHitboxNone, -100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SPRITE_CO_RUIN2 */ {(void*) D_CO_601F500, 0, (ObjectFunc) NULL, gNoHitbox, -100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_167 */ {(void*) Sprite167_Draw, 1, (ObjectFunc) Sprite167_Update, gHitboxNone, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SPRITE_167 */ {(void*) Sprite167_Draw, 1, (ObjectFunc) Sprite167_Update, gNoHitbox, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_168 */ {(void*) Sprite168_Draw, 1, (ObjectFunc) NULL, gHitboxNone, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_SPRITE_168 */ {(void*) Sprite168_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_TI_CACTUS */ {(void*) D_TI_60023B0, 0, (ObjectFunc) Titania_Cactus_Update, D_TI_60068BC, 100.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SPRITE_TI_CACTUS */ {(void*) D_TI_60023B0, 0, (ObjectFunc) Titania_Cactus_Update, D_TI_60068BC, 100.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_CO_SMOKE */ {(void*) NULL, 1, (ObjectFunc) Corneria_801875A4, gHitboxNone, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SPRITE_CO_SMOKE */ {(void*) NULL, 1, (ObjectFunc) Corneria_801875A4, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_VE1_BOSS_TRIGGER1 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger1_Update, gHitboxNone, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SPRITE_VE1_BOSS_TRIGGER1 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger1_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_VE1_BOSS_TRIGGER2 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger2_Update, gHitboxNone, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SPRITE_VE1_BOSS_TRIGGER2 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger2_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_VE1_BOSS_TRIGGER3 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger3_Update, gHitboxNone, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SPRITE_VE1_BOSS_TRIGGER3 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger3_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_VE1_BOSS_TRIGGER4 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger4_Update, gHitboxNone, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SPRITE_VE1_BOSS_TRIGGER4 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger4_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_GFOX_TARGET */ {(void*) NULL, 1, (ObjectFunc) NULL, gHitboxNone, 1000.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_SPRITE_GFOX_TARGET */ {(void*) NULL, 1, (ObjectFunc) NULL, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ACTOR_176 */ {(void*) Corneria_8018BAAC, 2, (ObjectFunc) Corneria_8018AED0, D_CO_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 }, /* OBJ_ACTOR_176 */ {(void*) Corneria_8018BAAC, 2, (ObjectFunc) Corneria_8018AED0, D_CO_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
/* OBJ_ACTOR_177 */ {(void*) Corneria_8018BBA4, 2, (ObjectFunc) Corneria_8018B15C, D_CO_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 }, /* OBJ_ACTOR_177 */ {(void*) Corneria_8018BBA4, 2, (ObjectFunc) Corneria_8018B15C, D_CO_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
/* OBJ_ACTOR_178 */ {(void*) Corneria_8018BBF8, 2, (ObjectFunc) Corneria_8018B418, D_CO_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 }, /* OBJ_ACTOR_178 */ {(void*) Corneria_8018BBF8, 2, (ObjectFunc) Corneria_8018B418, D_CO_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
/* OBJ_ACTOR_179 */ {(void*) Corneria_8018BD7C, 2, (ObjectFunc) Corneria_8018B58C, D_CO_603E604, 500.0f, 0, 0, 39, 1, 0.0f, 1 }, /* OBJ_ACTOR_179 */ {(void*) Corneria_8018BD7C, 2, (ObjectFunc) Corneria_8018B58C, D_CO_603E604, 500.0f, 0, 0, 39, 1, 0.0f, 1 },
/* OBJ_ACTOR_180 */ {(void*) func_edisplay_8005B6A4, 1, (ObjectFunc) func_enmy_80066A80, gHitboxNone, 1000.0f, 0, 0, 39, 0, 0.0f, 1 }, /* OBJ_ACTOR_180 */ {(void*) func_edisplay_8005B6A4, 1, (ObjectFunc) func_enmy_80066A80, gNoHitbox, 1000.0f, 0, 0, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_181 */ {(void*) D_ME_6018C00, 0, (ObjectFunc) Meteo_8018756C, D_ME_602F6EC, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, /* OBJ_ACTOR_181 */ {(void*) D_ME_6018C00, 0, (ObjectFunc) Meteo_8018756C, D_ME_602F6EC, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_182 */ {(void*) func_edisplay_8005B71C, 1, (ObjectFunc) Meteo_80187650, D_ME_602F708, 100.0f, 0, 1, 39, 0, 1.0f, 1 }, /* OBJ_ACTOR_182 */ {(void*) func_edisplay_8005B71C, 1, (ObjectFunc) Meteo_80187650, D_ME_602F708, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_183 */ {(void*) Meteo_8018DA6C, 1, (ObjectFunc) Meteo_8018D9EC, gHitboxNone, 100.0f, 0, 1, 39, 0, 0.0f, 1 }, /* OBJ_ACTOR_183 */ {(void*) Meteo_8018DA6C, 1, (ObjectFunc) Meteo_8018D9EC, gNoHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_184 */ {(void*) Meteo_8018DAEC, 1, (ObjectFunc) Meteo_8018D9EC, gHitboxNone, 100.0f, 0, 1, 39, 0, 0.0f, 1 }, /* OBJ_ACTOR_184 */ {(void*) Meteo_8018DAEC, 1, (ObjectFunc) Meteo_8018D9EC, gNoHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_185 */ {(void*) Meteo_8018DB6C, 1, (ObjectFunc) Meteo_8018D9EC, gHitboxNone, 100.0f, 0, 1, 39, 0, 0.0f, 1 }, /* OBJ_ACTOR_185 */ {(void*) Meteo_8018DB6C, 1, (ObjectFunc) Meteo_8018D9EC, gNoHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_186 */ {(void*) func_edisplay_8005B7CC, 1, (ObjectFunc) Meteo_8018795C, D_ME_602F724, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, /* OBJ_ACTOR_186 */ {(void*) func_edisplay_8005B7CC, 1, (ObjectFunc) Meteo_8018795C, D_ME_602F724, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_187 */ {(void*) D_ME_6018450, 0, (ObjectFunc) Meteo_801877C4, D_ME_602F740, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, /* OBJ_ACTOR_187 */ {(void*) D_ME_6018450, 0, (ObjectFunc) Meteo_801877C4, D_ME_602F740, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_188 */ {(void*) Aquas_801BEC74, 1, (ObjectFunc) Aquas_801BEC68, D_AQ_6030BE0, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, /* OBJ_ACTOR_188 */ {(void*) Aquas_801BEC74, 1, (ObjectFunc) Aquas_801BEC68, D_AQ_6030BE0, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_189 */ {(void*) Actor189_Draw, 1, (ObjectFunc) Actor189_Update, gHitboxNone, 0.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_ACTOR_189 */ {(void*) Actor189_Draw, 1, (ObjectFunc) Actor189_Update, gNoHitbox, 0.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_ACTOR_190 */ {(void*) func_edisplay_8005B848, 1, (ObjectFunc) func_enmy_800656D4, gActor190_191Hitbox, 100.0f, 0, 1, 39, 0, 1.0f, 0 }, /* OBJ_ACTOR_190 */ {(void*) func_edisplay_8005B848, 1, (ObjectFunc) func_enmy_800656D4, gActor190_191Hitbox, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
/* OBJ_ACTOR_191 */ {(void*) func_edisplay_8005B848, 1, (ObjectFunc) func_enmy_800656D4, gActor190_191Hitbox, 100.0f, 0, 1, 39, 0, 1.0f, 0 }, /* OBJ_ACTOR_191 */ {(void*) func_edisplay_8005B848, 1, (ObjectFunc) func_enmy_800656D4, gActor190_191Hitbox, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
/* OBJ_ACTOR_192 */ {(void*) func_edisplay_8005B9A4, 1, (ObjectFunc) func_enmy_8006654C, D_CO_603E54C, 200.0f, 0, 1, 39, 0, 50.0f, 1 }, /* OBJ_ACTOR_192 */ {(void*) func_edisplay_8005B9A4, 1, (ObjectFunc) func_enmy_8006654C, D_CO_603E54C, 200.0f, 0, 1, 39, 0, 50.0f, 1 },
/* OBJ_ACTOR_193 */ {(void*) func_edisplay_8005BA30, 1, (ObjectFunc) func_enmy_800669A0, D_CO_603E598, 100.0f, 0, 1, 39, 0, 0.0f, 0 }, /* OBJ_ACTOR_193 */ {(void*) func_edisplay_8005BA30, 1, (ObjectFunc) func_enmy_800669A0, D_CO_603E598, 100.0f, 0, 1, 39, 0, 0.0f, 0 },
/* OBJ_ACTOR_194 */ {(void*) Actor194_Draw, 1, (ObjectFunc) Actor194_Update, gActor194HItbox, 200.0f, 0, 1, 39, 0, 0.0f, 1 }, /* OBJ_ACTOR_194 */ {(void*) Actor194_Draw, 1, (ObjectFunc) Actor194_Update, gActor194Hitbox, 200.0f, 0, 1, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_195 */ {(void*) Actor195_Draw, 1, (ObjectFunc) Actor195_Update, gHitboxNone, 20000.0f, 0, 1, 39, 0, 0.0f, 0 }, /* OBJ_ACTOR_195 */ {(void*) Actor195_Draw, 1, (ObjectFunc) Actor195_Update, gNoHitbox, 20000.0f, 0, 1, 39, 0, 0.0f, 0 },
/* OBJ_ACTOR_196 */ {(void*) Actor196_Draw, 1, (ObjectFunc) Actor196_Update, D_CO_603E5B4, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, /* OBJ_ACTOR_196 */ {(void*) Actor196_Draw, 1, (ObjectFunc) Actor196_Update, D_CO_603E5B4, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_ALLRANGE */ {(void*) ActorAllRange_Draw, 1, (ObjectFunc) ActorAllRange_Update, gActorAllRangeHItbox, 20000.0f, 0, 1, 39, 1, 1.0f, 1 }, /* OBJ_ACTOR_ALLRANGE */ {(void*) ActorAllRange_Draw, 1, (ObjectFunc) ActorAllRange_Update, gActorAllRangeHItbox, 20000.0f, 0, 1, 39, 1, 1.0f, 1 },
/* OBJ_ACTOR_TEAM_BOSS */ {(void*) ActorAllRange_Draw, 1, (ObjectFunc) ActorTeamBoss_Update, gTeamHitbox, 20000.0f, 0, 0, 39, 1, 0.0f, 0 }, /* OBJ_ACTOR_TEAM_BOSS */ {(void*) ActorAllRange_Draw, 1, (ObjectFunc) ActorTeamBoss_Update, gTeamHitbox, 20000.0f, 0, 0, 39, 1, 0.0f, 0 },
/* OBJ_ACTOR_199 */ {(void*) Andross_80188448, 1, (ObjectFunc) Andross_801880E4, gHitboxNone, 20000.0f, 0, 0, 39, 1, 0.0f, 0 }, /* OBJ_ACTOR_199 */ {(void*) Andross_80188448, 1, (ObjectFunc) Andross_801880E4, gNoHitbox, 20000.0f, 0, 0, 39, 1, 0.0f, 0 },
/* OBJ_ACTOR_EVENT */ {(void*) ActorEvent_Draw, 1, (ObjectFunc) ActorEvent_Update, gHitboxNone, 2000.0f, 0, 1, 39, 0, 0.0f, 1 }, /* OBJ_ACTOR_EVENT */ {(void*) ActorEvent_Draw, 1, (ObjectFunc) ActorEvent_Update, gNoHitbox, 2000.0f, 0, 1, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_201 */ {(void*) Actor201_Draw, 1, (ObjectFunc) Actor201_Update, D_ME_602F684, 100.0f, 0, 1, 39, 0, 1.0f, 1 }, /* OBJ_ACTOR_201 */ {(void*) Actor201_Draw, 1, (ObjectFunc) Actor201_Update, D_ME_602F684, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_202 */ {(void*) Actor202_Draw, 1, (ObjectFunc) Actor202_Update, D_ME_602F6A0, 100.0f, 0, 1, 39, 0, 180.0f, 1 }, /* OBJ_ACTOR_202 */ {(void*) Actor202_Draw, 1, (ObjectFunc) Actor202_Update, D_ME_602F6A0, 100.0f, 0, 1, 39, 0, 180.0f, 1 },
/* OBJ_ACTOR_SLIPPY_SX */ {(void*) SectorX_8018F884, 1, (ObjectFunc) SectorX_8018F330, gHitboxNone, 1000.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_ACTOR_SLIPPY_SX */ {(void*) SectorX_8018F884, 1, (ObjectFunc) SectorX_8018F330, gNoHitbox, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_ACTOR_204 */ {(void*) SectorY_Actor204_Draw, 1, (ObjectFunc) SectorY_Actor204_Update, D_SY_603405C, 1000.0f, 0, 0, 39, 0, 1.0f, 1 }, /* OBJ_ACTOR_204 */ {(void*) SectorY_Actor204_Draw, 1, (ObjectFunc) SectorY_Actor204_Update, D_SY_603405C, 1000.0f, 0, 0, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_205 */ {(void*) Macbeth_801A12C4, 1, (ObjectFunc) Macbeth_8019C778, D_MA_60359C8, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, /* OBJ_ACTOR_205 */ {(void*) Macbeth_801A12C4, 1, (ObjectFunc) Macbeth_8019C778, D_MA_60359C8, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_206 */ {(void*) Macbeth_801A12C4, 1, (ObjectFunc) Macbeth_801AC438, D_MA_6035A48, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, /* OBJ_ACTOR_206 */ {(void*) Macbeth_801A12C4, 1, (ObjectFunc) Macbeth_801AC438, D_MA_6035A48, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
@ -317,7 +317,7 @@ ObjectInfo D_edata_800CC124[0x190] = {
/* OBJ_ACTOR_221 */ {(void*) Macbeth_801AE2C0, 1, (ObjectFunc) Macbeth_801ADD68, D_MA_603694C, 300.0f, 0, 0, 40, 1, 1.0f, 0 }, /* OBJ_ACTOR_221 */ {(void*) Macbeth_801AE2C0, 1, (ObjectFunc) Macbeth_801ADD68, D_MA_603694C, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
/* OBJ_ACTOR_222 */ {(void*) Macbeth_801AEEFC, 1, (ObjectFunc) Macbeth_801AEC04, D_MA_6036968, 300.0f, 0, 0, 40, 1, 1.0f, 0 }, /* OBJ_ACTOR_222 */ {(void*) Macbeth_801AEEFC, 1, (ObjectFunc) Macbeth_801AEC04, D_MA_6036968, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
/* OBJ_ACTOR_223 */ {(void*) Macbeth_801A54E8, 1, (ObjectFunc) Macbeth_801A4B24, D_MA_60364DC, 300.0f, 0, 0, 40, 1, 0.0f, 0 }, /* OBJ_ACTOR_223 */ {(void*) Macbeth_801A54E8, 1, (ObjectFunc) Macbeth_801A4B24, D_MA_60364DC, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_224 */ {(void*) NULL, 1, (ObjectFunc) Titania_80189194, gHitboxNone, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_ACTOR_224 */ {(void*) NULL, 1, (ObjectFunc) Titania_80189194, gNoHitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_ACTOR_225 */ {(void*) D_TI1_700AB70, 0, (ObjectFunc) Titania_8018AB44, D_TI_60064AC, 50.0f, 0, 0, 39, 1, 1.0f, 0 }, /* OBJ_ACTOR_225 */ {(void*) D_TI1_700AB70, 0, (ObjectFunc) Titania_8018AB44, D_TI_60064AC, 50.0f, 0, 0, 39, 1, 1.0f, 0 },
/* OBJ_ACTOR_226 */ {(void*) Titania_80189AFC, 1, (ObjectFunc) Titania_801895B8, D_TI_60064C8, 300.0f, 0, 0, 39, 1, 70.0f, 1 }, /* OBJ_ACTOR_226 */ {(void*) Titania_80189AFC, 1, (ObjectFunc) Titania_801895B8, D_TI_60064C8, 300.0f, 0, 0, 39, 1, 70.0f, 1 },
/* OBJ_ACTOR_227 */ {(void*) Titania_8018E5B4, 1, (ObjectFunc) Titania_8018E54C, D_TI_60067C4, 0.0f, 0, 0, 39, 1, 0.0f, 0 }, /* OBJ_ACTOR_227 */ {(void*) Titania_8018E5B4, 1, (ObjectFunc) Titania_8018E54C, D_TI_60067C4, 0.0f, 0, 0, 39, 1, 0.0f, 0 },
@ -327,22 +327,22 @@ ObjectInfo D_edata_800CC124[0x190] = {
/* OBJ_ACTOR_231 */ {(void*) Titania_8018BE84, 1, (ObjectFunc) Titania_8018B9D0, D_TI_6006858, 0.0f, 0, 0, 39, 1, 0.0f, 1 }, /* OBJ_ACTOR_231 */ {(void*) Titania_8018BE84, 1, (ObjectFunc) Titania_8018B9D0, D_TI_6006858, 0.0f, 0, 0, 39, 1, 0.0f, 1 },
/* OBJ_ACTOR_232 */ {(void*) Titania_8018B6AC, 1, (ObjectFunc) Titania_8018B268, D_TI_6006890, 0.0f, 0, 0, 39, 1, 20.0f, 1 }, /* OBJ_ACTOR_232 */ {(void*) Titania_8018B6AC, 1, (ObjectFunc) Titania_8018B268, D_TI_6006890, 0.0f, 0, 0, 39, 1, 20.0f, 1 },
/* OBJ_ACTOR_233 */ {(void*) Titania_8018A1C0, 1, (ObjectFunc) Titania_80189CC8, D_TI_60068F0, 200.0f, 0, 0, 39, 1, 1.0f, 1 }, /* OBJ_ACTOR_233 */ {(void*) Titania_8018A1C0, 1, (ObjectFunc) Titania_80189CC8, D_TI_60068F0, 200.0f, 0, 0, 39, 1, 1.0f, 1 },
/* OBJ_ACTOR_234 */ {(void*) Actor234_Draw, 1, (ObjectFunc) Actor234_Update, gHitboxNone, 2000.0f, 0, 0, 39, 0, 0.0f, 5 }, /* OBJ_ACTOR_234 */ {(void*) Actor234_Draw, 1, (ObjectFunc) Actor234_Update, gNoHitbox, 2000.0f, 0, 0, 39, 0, 0.0f, 5 },
/* OBJ_ACTOR_235 */ {(void*) Zoness_80190430, 2, (ObjectFunc) Zoness_801904CC, D_ZO_602C294, 1000.0f, 0, 1, 40, 0, 1.0f, 1 }, /* OBJ_ACTOR_235 */ {(void*) Zoness_80190430, 2, (ObjectFunc) Zoness_801904CC, D_ZO_602C294, 1000.0f, 0, 1, 40, 0, 1.0f, 1 },
/* OBJ_ACTOR_236 */ {(void*) Zoness_80190F08, 1, (ObjectFunc) Zoness_80190A00, D_ZO_602BC58, 5000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_236 */ {(void*) Zoness_80190F08, 1, (ObjectFunc) Zoness_80190A00, D_ZO_602BC58, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_237 */ {(void*) Actor237_Draw, 1, (ObjectFunc) Actor237_Update, gHitboxNone, 200.0f, 0, 0, 40, 0, 0.0f, 2 }, /* OBJ_ACTOR_237 */ {(void*) Actor237_Draw, 1, (ObjectFunc) Actor237_Update, gNoHitbox, 200.0f, 0, 0, 40, 0, 0.0f, 2 },
/* OBJ_ACTOR_238 */ {(void*) Zoness_801914C4, 2, (ObjectFunc) Zoness_80191010, gDefaultCubeHitbox100, 200.0f, 0, 1, 40, 0, 1.0f, 1 }, /* OBJ_ACTOR_238 */ {(void*) Zoness_801914C4, 2, (ObjectFunc) Zoness_80191010, gCubeHitbox100, 200.0f, 0, 1, 40, 0, 1.0f, 1 },
/* OBJ_ACTOR_239 */ {(void*) NULL, 1, (ObjectFunc) NULL, gHitboxNone, 1000.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ACTOR_239 */ {(void*) NULL, 1, (ObjectFunc) NULL, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ACTOR_240 */ {(void*) Zoness_80191B4C, 1, (ObjectFunc) Zoness_80191680, gDefaultCubeHitbox100, 1500.0f, 0, 1, 40, 0, 20.0f, 0 }, /* OBJ_ACTOR_240 */ {(void*) Zoness_80191B4C, 1, (ObjectFunc) Zoness_80191680, gCubeHitbox100, 1500.0f, 0, 1, 40, 0, 20.0f, 0 },
/* OBJ_ACTOR_241 */ {(void*) Zoness_80191DB0, 1, (ObjectFunc) Zoness_80191BC4, gActor241Hitbox, 1500.0f, 0, 1, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_241 */ {(void*) Zoness_80191DB0, 1, (ObjectFunc) Zoness_80191BC4, gActor241Hitbox, 1500.0f, 0, 1, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_242 */ {(void*) Zoness_80191FFC, 2, (ObjectFunc) Zoness_80192094, D_ZO_602BE3C, 500.0f, 0, 0, 40, 0, 1.0f, 0 }, /* OBJ_ACTOR_242 */ {(void*) Zoness_80191FFC, 2, (ObjectFunc) Zoness_80192094, D_ZO_602BE3C, 500.0f, 0, 0, 40, 0, 1.0f, 0 },
/* OBJ_ACTOR_243 */ {(void*) Zoness_80192C18, 2, (ObjectFunc) Zoness_80192834, gDefaultCubeHitbox100, 0.0f, 0, 1, 40, 0, 1.0f, 1 }, /* OBJ_ACTOR_243 */ {(void*) Zoness_80192C18, 2, (ObjectFunc) Zoness_80192834, gCubeHitbox100, 0.0f, 0, 1, 40, 0, 1.0f, 1 },
/* OBJ_ACTOR_244 */ {(void*) Zoness_80193240, 2, (ObjectFunc) Zoness_80192E64, D_ZO_602BE58, 2000.0f, 0, 0, 40, 0, 50.0f, 0 }, /* OBJ_ACTOR_244 */ {(void*) Zoness_80193240, 2, (ObjectFunc) Zoness_80192E64, D_ZO_602BE58, 2000.0f, 0, 0, 40, 0, 50.0f, 0 },
/* OBJ_ACTOR_245 */ {(void*) Zoness_8019983C, 1, (ObjectFunc) Zoness_8019969C, gDefaultCubeHitbox100, 200.0f, 0, 0, 40, 0, 1.0f, 0 }, /* OBJ_ACTOR_245 */ {(void*) Zoness_8019983C, 1, (ObjectFunc) Zoness_8019969C, gCubeHitbox100, 200.0f, 0, 0, 40, 0, 1.0f, 0 },
/* OBJ_ACTOR_246 */ {(void*) Zoness_80199E24, 1, (ObjectFunc) Zoness_80199A28, gDefaultCubeHitbox100, 2000.0f, 0, 0, 40, 0, 1.0f, 0 }, /* OBJ_ACTOR_246 */ {(void*) Zoness_80199E24, 1, (ObjectFunc) Zoness_80199A28, gCubeHitbox100, 2000.0f, 0, 0, 40, 0, 1.0f, 0 },
/* OBJ_ACTOR_247 */ {(void*) Zoness_8019D3C4, 1, (ObjectFunc) Zoness_8019D15C, D_ZO_602BFC4, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_247 */ {(void*) Zoness_8019D3C4, 1, (ObjectFunc) Zoness_8019D15C, D_ZO_602BFC4, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_248 */ {(void*) Zoness_8019A1FC, 1, (ObjectFunc) Zoness_80199F10, gDefaultCubeHitbox150, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_248 */ {(void*) Zoness_8019A1FC, 1, (ObjectFunc) Zoness_80199F10, gCubeHitbox150, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_249 */ {(void*) Zoness_8019ACCC, 1, (ObjectFunc) Zoness_8019A5D4, gDefaultCubeHitbox200, 5000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_249 */ {(void*) Zoness_8019ACCC, 1, (ObjectFunc) Zoness_8019A5D4, gCubeHitbox200, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_250 */ {(void*) Zoness_8019B7DC, 1, (ObjectFunc) Zoness_8019B548, D_ZO_602C1D4, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_250 */ {(void*) Zoness_8019B7DC, 1, (ObjectFunc) Zoness_8019B548, D_ZO_602C1D4, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_251 */ {(void*) Zoness_8019BDE0, 2, (ObjectFunc) Zoness_8019B854, D_ZO_602C218, 1000.0f, 0, 0, 40, 0, 1.0f, 1 }, /* OBJ_ACTOR_251 */ {(void*) Zoness_8019BDE0, 2, (ObjectFunc) Zoness_8019B854, D_ZO_602C218, 1000.0f, 0, 0, 40, 0, 1.0f, 1 },
/* OBJ_ACTOR_252 */ {(void*) Zoness_8019C1CC, 1, (ObjectFunc) Zoness_8019BE48, D_ZO_602C234, 200.0f, 0, 0, 40, 0, 80.0f, 1 }, /* OBJ_ACTOR_252 */ {(void*) Zoness_8019C1CC, 1, (ObjectFunc) Zoness_8019BE48, D_ZO_602C234, 200.0f, 0, 0, 40, 0, 80.0f, 1 },
@ -351,13 +351,13 @@ ObjectInfo D_edata_800CC124[0x190] = {
/* OBJ_ACTOR_255 */ {(void*) Aquas_801AE168, 1, (ObjectFunc) Aquas_801AD6C0, D_AQ_6030BFC, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_255 */ {(void*) Aquas_801AE168, 1, (ObjectFunc) Aquas_801AD6C0, D_AQ_6030BFC, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_256 */ {(void*) Aquas_801AEB44, 1, (ObjectFunc) Aquas_801AE3D8, D_AQ_6030C18, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_256 */ {(void*) Aquas_801AEB44, 1, (ObjectFunc) Aquas_801AE3D8, D_AQ_6030C18, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_257 */ {(void*) Aquas_801B099C, 1, (ObjectFunc) Aquas_801AFA5C, D_AQ_6030C44, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_257 */ {(void*) Aquas_801B099C, 1, (ObjectFunc) Aquas_801AFA5C, D_AQ_6030C44, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_258 */ {(void*) Aquas_801B0EC0, 1, (ObjectFunc) Aquas_801B0B60, gDefaultCubeHitbox100, 200.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_258 */ {(void*) Aquas_801B0EC0, 1, (ObjectFunc) Aquas_801B0B60, gCubeHitbox100, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_259 */ {(void*) Aquas_801B619C, 2, (ObjectFunc) Aquas_801B638C, D_AQ_6031398, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_259 */ {(void*) Aquas_801B619C, 2, (ObjectFunc) Aquas_801B638C, D_AQ_6031398, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_260 */ {(void*) Aquas_801B90DC, 2, (ObjectFunc) Aquas_801B7C78, D_AQ_60313CC, 300.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_260 */ {(void*) Aquas_801B90DC, 2, (ObjectFunc) Aquas_801B7C78, D_AQ_60313CC, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_261 */ {(void*) Aquas_801B504C, 2, (ObjectFunc) Aquas_801B50E8, D_AQ_6031400, 300.0f, 0, 0, 40, 0, 0.0f, 1 }, /* OBJ_ACTOR_261 */ {(void*) Aquas_801B504C, 2, (ObjectFunc) Aquas_801B50E8, D_AQ_6031400, 300.0f, 0, 0, 40, 0, 0.0f, 1 },
/* OBJ_ACTOR_262 */ {(void*) Aquas_801B7A24, 2, (ObjectFunc) Aquas_801B6FF8, D_AQ_603144C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_262 */ {(void*) Aquas_801B7A24, 2, (ObjectFunc) Aquas_801B6FF8, D_AQ_603144C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_263 */ {(void*) Aquas_801BA108, 2, (ObjectFunc) Aquas_801B91A4, D_AQ_6031480, 200.0f, 0, 0, 40, 0, 0.0f, 1 }, /* OBJ_ACTOR_263 */ {(void*) Aquas_801BA108, 2, (ObjectFunc) Aquas_801B91A4, D_AQ_6031480, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
/* OBJ_ACTOR_264 */ {(void*) Aquas_801BA4E4, 1, (ObjectFunc) Aquas_801BA26C, gDefaultCubeHitbox100, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ACTOR_264 */ {(void*) Aquas_801BA4E4, 1, (ObjectFunc) Aquas_801BA26C, gCubeHitbox100, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ACTOR_265 */ {(void*) Aquas_801BAD7C, 1, (ObjectFunc) Aquas_801BA6A4, D_AQ_6031500, 200.0f, 0, 0, 40, 0, 0.0f, 1 }, /* OBJ_ACTOR_265 */ {(void*) Aquas_801BAD7C, 1, (ObjectFunc) Aquas_801BA6A4, D_AQ_6031500, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
/* OBJ_ACTOR_266 */ {(void*) Aquas_801BB204, 2, (ObjectFunc) Aquas_801BADF8, D_AQ_6031538, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ACTOR_266 */ {(void*) Aquas_801BB204, 2, (ObjectFunc) Aquas_801BADF8, D_AQ_6031538, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ACTOR_267 */ {(void*) Aquas_801BC930, 2, (ObjectFunc) Aquas_801BB79C, D_AQ_6031554, 800.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_267 */ {(void*) Aquas_801BC930, 2, (ObjectFunc) Aquas_801BB79C, D_AQ_6031554, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
@ -367,24 +367,24 @@ ObjectInfo D_edata_800CC124[0x190] = {
/* OBJ_ACTOR_271 */ {(void*) Actor271_Draw, 2, (ObjectFunc) Actor271_Update, D_BO_6011B24, 0.0f, 0, 0, 39, 0, 730.0f, 1 }, /* OBJ_ACTOR_271 */ {(void*) Actor271_Draw, 2, (ObjectFunc) Actor271_Update, D_BO_6011B24, 0.0f, 0, 0, 39, 0, 730.0f, 1 },
/* OBJ_ACTOR_272 */ {(void*) Actor272_Draw, 1, (ObjectFunc) Actor272_Update, D_BO_6011BF4, 0.0f, 0, 0, 39, 0, 150.0f, 1 }, /* OBJ_ACTOR_272 */ {(void*) Actor272_Draw, 1, (ObjectFunc) Actor272_Update, D_BO_6011BF4, 0.0f, 0, 0, 39, 0, 150.0f, 1 },
/* OBJ_ACTOR_273 */ {(void*) Fortuna_80188FE4, 2, (ObjectFunc) Fortuna_80188AD0, D_FO_600FF30, 0.0f, 0, 0, 39, 0, 220.0f, 1 }, /* OBJ_ACTOR_273 */ {(void*) Fortuna_80188FE4, 2, (ObjectFunc) Fortuna_80188AD0, D_FO_600FF30, 0.0f, 0, 0, 39, 0, 220.0f, 1 },
/* OBJ_ACTOR_274 */ {(void*) SectorZ_8019E3A8, 1, (ObjectFunc) SectorZ_8019E234, gDefaultCubeHitbox200, 0.0f, 0, 0, 39, 0, 1.0f, 0 }, /* OBJ_ACTOR_274 */ {(void*) SectorZ_8019E3A8, 1, (ObjectFunc) SectorZ_8019E234, gCubeHitbox200, 0.0f, 0, 0, 39, 0, 1.0f, 0 },
/* OBJ_ACTOR_275 */ {(void*) Solar_8019F7AC, 1, (ObjectFunc) Solar_8019F20C, gDefaultCubeHitbox100, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, /* OBJ_ACTOR_275 */ {(void*) Solar_8019F7AC, 1, (ObjectFunc) Solar_8019F20C, gCubeHitbox100, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_276 */ {(void*) Solar_8019F7AC, 1, (ObjectFunc) Solar_8019F20C, gDefaultCubeHitbox100, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, /* OBJ_ACTOR_276 */ {(void*) Solar_8019F7AC, 1, (ObjectFunc) Solar_8019F20C, gCubeHitbox100, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_277 */ {(void*) Solar_8019F7AC, 1, (ObjectFunc) Solar_8019F20C, gDefaultCubeHitbox200, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, /* OBJ_ACTOR_277 */ {(void*) Solar_8019F7AC, 1, (ObjectFunc) Solar_8019F20C, gCubeHitbox200, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_278 */ {(void*) NULL, 1, (ObjectFunc) Solar_8019EA7C, gHitboxNone, 200.0f, 0, 0, 0, 0, 0.0f, 1 }, /* OBJ_ACTOR_278 */ {(void*) NULL, 1, (ObjectFunc) Solar_8019EA7C, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 1 },
/* OBJ_ACTOR_279 */ {(void*) NULL, 1, (ObjectFunc) Solar_801A003C, gHitboxNone, 1000.0f, 0, 0, 0, 0, 0.0f, 1 }, /* OBJ_ACTOR_279 */ {(void*) NULL, 1, (ObjectFunc) Solar_801A003C, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 1 },
/* OBJ_ACTOR_280 */ {(void*) D_VE1_900DD20, 0, (ObjectFunc) Venom1_80192518, D_VE1_601B7F8, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, /* OBJ_ACTOR_280 */ {(void*) D_VE1_900DD20, 0, (ObjectFunc) Venom1_80192518, D_VE1_601B7F8, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_281 */ {(void*) Venom1_80192E2C, 1, (ObjectFunc) Venom1_80192CD4, D_VE1_601B830, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, /* OBJ_ACTOR_281 */ {(void*) Venom1_80192E2C, 1, (ObjectFunc) Venom1_80192CD4, D_VE1_601B830, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_282 */ {(void*) D_VE1_901DA50, 0, (ObjectFunc) Venom1_80192CD4, D_VE1_601B868, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, /* OBJ_ACTOR_282 */ {(void*) D_VE1_901DA50, 0, (ObjectFunc) Venom1_80192CD4, D_VE1_601B868, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_283 */ {(void*) D_VE1_9023AD0, 0, (ObjectFunc) Venom1_80192EB0, D_VE1_601B8A0, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, /* OBJ_ACTOR_283 */ {(void*) D_VE1_9023AD0, 0, (ObjectFunc) Venom1_80192EB0, D_VE1_601B8A0, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_284 */ {(void*) Venom1_801934D0, 1, (ObjectFunc) Venom1_801933DC, D_VE1_601B8D8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_ACTOR_284 */ {(void*) Venom1_801934D0, 1, (ObjectFunc) Venom1_801933DC, D_VE1_601B8D8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_285 */ {(void*) Andross_80193244, 1, (ObjectFunc) Andross_80192E94, gDefaultCubeHitbox100, 1000.0f, 0, 0, 20, 0, 1.0f, 1 }, /* OBJ_ACTOR_285 */ {(void*) Andross_80193244, 1, (ObjectFunc) Andross_80192E94, gCubeHitbox100, 1000.0f, 0, 0, 20, 0, 1.0f, 1 },
/* OBJ_ACTOR_286 */ {(void*) Andross_80188660, 1, (ObjectFunc) Andross_80188528, gDefaultCubeHitbox100, 1000.0f, 0, 0, 20, 0, 0.0f, 0 }, /* OBJ_ACTOR_286 */ {(void*) Andross_80188660, 1, (ObjectFunc) Andross_80188528, gCubeHitbox100, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
/* OBJ_ACTOR_287 */ {(void*) NULL, 1, (ObjectFunc) Andross_80189724, gHitboxNone, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, /* OBJ_ACTOR_287 */ {(void*) NULL, 1, (ObjectFunc) Andross_80189724, gNoHitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
/* OBJ_ACTOR_288 */ {(void*) NULL, 1, (ObjectFunc) Andross_801893B8, gHitboxNone, 1000.0f, 0, 0, 20, 1, 0.0f, 0 }, /* OBJ_ACTOR_288 */ {(void*) NULL, 1, (ObjectFunc) Andross_801893B8, gNoHitbox, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
/* OBJ_ACTOR_289 */ {(void*) func_edata_800596B0, 1, (ObjectFunc) Andross_80189470, gHitboxNone, 1000.0f, 0, 0, 20, 1, 0.0f, 0 }, /* OBJ_ACTOR_289 */ {(void*) func_edata_800596B0, 1, (ObjectFunc) Andross_80189470, gNoHitbox, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
/* OBJ_ACTOR_290 */ {(void*) NULL, 1, (ObjectFunc) Andross_8018933C, gHitboxNone, 1000.0f, 0, 0, 20, 0, 0.0f, 0 }, /* OBJ_ACTOR_290 */ {(void*) NULL, 1, (ObjectFunc) Andross_8018933C, gNoHitbox, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
/* OBJ_ACTOR_SUPPLIES */ {(void*) ActorSupplies_Draw, 1, (ObjectFunc) ActorSupplies_Update, gDefaultCubeHitbox150, 1000.0f, 0, 0, 0, 0, 1.0f, 0 }, /* OBJ_ACTOR_SUPPLIES */ {(void*) ActorSupplies_Draw, 1, (ObjectFunc) ActorSupplies_Update, gCubeHitbox150, 1000.0f, 0, 0, 0, 0, 1.0f, 0 },
/* OBJ_BOSS_292 */ {(void*) Corneria_8018AA74, 2, (ObjectFunc) Corneria_80189058, D_CO_603E620, 20000.0f, 0, 0, 40, 1, 0.0f, 10 }, /* OBJ_BOSS_292 */ {(void*) Corneria_8018AA74, 2, (ObjectFunc) Corneria_80189058, D_CO_603E620, 20000.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_293 */ {(void*) Corneria_8018ECAC, 1, (ObjectFunc) Corneria_8018C19C, D_CO_603E840, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_293 */ {(void*) Corneria_8018ECAC, 1, (ObjectFunc) Corneria_8018C19C, D_CO_603E840, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_294 */ {(void*) Corneria_8018ED78, 1, (ObjectFunc) Corneria_8018DDAC, D_CO_603E714, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_294 */ {(void*) Corneria_8018ED78, 1, (ObjectFunc) Corneria_8018DDAC, D_CO_603E714, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
@ -392,8 +392,8 @@ ObjectInfo D_edata_800CC124[0x190] = {
/* OBJ_BOSS_296 */ {(void*) Corneria_8018EF90, 1, (ObjectFunc) Corneria_8018E76C, D_CO_603E7C4, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_296 */ {(void*) Corneria_8018EF90, 1, (ObjectFunc) Corneria_8018E76C, D_CO_603E7C4, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_297 */ {(void*) Meteo_8018BACC, 1, (ObjectFunc) Meteo_8018978C, D_ME_602F75C, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_297 */ {(void*) Meteo_8018BACC, 1, (ObjectFunc) Meteo_8018978C, D_ME_602F75C, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_298 */ {(void*) Meteo_801887D0, 1, (ObjectFunc) Meteo_80188344, D_ME_602FA50, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_298 */ {(void*) Meteo_801887D0, 1, (ObjectFunc) Meteo_80188344, D_ME_602FA50, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_299 */ {(void*) Boss299_Draw, 2, (ObjectFunc) Boss299_Update, gHitboxNone, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_299 */ {(void*) Boss299_Draw, 2, (ObjectFunc) Boss299_Update, gNoHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_300 */ {(void*) Boss300_Draw, 1, (ObjectFunc) Boss300_Update, gHitboxNone, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_300 */ {(void*) Boss300_Draw, 1, (ObjectFunc) Boss300_Update, gNoHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_301 */ {(void*) Aquas_801BEC5C, 1, (ObjectFunc) Aquas_801BEC50, D_AQ_6030B10, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_301 */ {(void*) Aquas_801BEC5C, 1, (ObjectFunc) Aquas_801BEC50, D_AQ_6030B10, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_A6 */ {(void*) Area6_8018C54C, 1, (ObjectFunc) Area6_80187944, D_A6_6028454, 2000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_A6 */ {(void*) Area6_8018C54C, 1, (ObjectFunc) Area6_80187944, D_A6_6028454, 2000.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_303 */ {(void*) SectorX_80193434, 2, (ObjectFunc) SectorX_80190078, D_SX_6032550, 20000.0f, 0, 0, 20, 0, 0.0f, 10 }, /* OBJ_BOSS_303 */ {(void*) SectorX_80193434, 2, (ObjectFunc) SectorX_80190078, D_SX_6032550, 20000.0f, 0, 0, 20, 0, 0.0f, 10 },
@ -402,13 +402,13 @@ ObjectInfo D_edata_800CC124[0x190] = {
/* OBJ_BOSS_306 */ {(void*) Titania_801982A8, 1, (ObjectFunc) Titania_80197A94,D_TI_801B83A8, 1000.0f, 0, 0, 40, 1, 0.0f, 10 }, /* OBJ_BOSS_306 */ {(void*) Titania_801982A8, 1, (ObjectFunc) Titania_80197A94,D_TI_801B83A8, 1000.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_ZO */ {(void*) Zoness_801949DC, 2, (ObjectFunc) Zoness_80194A84, D_ZO_602C044, 1000.0f, 0, 0, 40, 0, 1.0f, 10 }, /* OBJ_BOSS_ZO */ {(void*) Zoness_801949DC, 2, (ObjectFunc) Zoness_80194A84, D_ZO_602C044, 1000.0f, 0, 0, 40, 0, 1.0f, 10 },
/* OBJ_BOSS_308 */ {(void*) func_hud_8008FE78, 1, (ObjectFunc) func_hud_800907C4, D_FO_600FFE0, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, /* OBJ_BOSS_308 */ {(void*) func_hud_8008FE78, 1, (ObjectFunc) func_hud_800907C4, D_FO_600FFE0, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_309 */ {(void*) Boss309_Draw, 1, (ObjectFunc) Boss309_Update, gHitboxNone, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, /* OBJ_BOSS_309 */ {(void*) Boss309_Draw, 1, (ObjectFunc) Boss309_Update, gNoHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_310 */ {(void*) Boss310_Draw, 1, (ObjectFunc) Boss310_Update, gHitboxNone, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, /* OBJ_BOSS_310 */ {(void*) Boss310_Draw, 1, (ObjectFunc) Boss310_Update, gNoHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_311 */ {(void*) Bolse_80191AFC, 2, (ObjectFunc) Bolse_801912FC, D_BO_6011C80, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, /* OBJ_BOSS_311 */ {(void*) Bolse_80191AFC, 2, (ObjectFunc) Bolse_801912FC, D_BO_6011C80, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_312 */ {(void*) Venom2_80196288, 2, (ObjectFunc) Venom2_80196210, D_VE2_60166F4, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, /* OBJ_BOSS_312 */ {(void*) Venom2_80196288, 2, (ObjectFunc) Venom2_80196210, D_VE2_60166F4, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_313 */ {(void*) SectorZ_8019E98C, 1, (ObjectFunc) SectorZ_8019E454, D_SZ_6009388, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_313 */ {(void*) SectorZ_8019E98C, 1, (ObjectFunc) SectorZ_8019E454, D_SZ_6009388, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_314 */ {(void*) SectorY_8019E2C4, 2, (ObjectFunc) SectorY_8019C888, gHitboxNone, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_314 */ {(void*) SectorY_8019E2C4, 2, (ObjectFunc) SectorY_8019C888, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_SO */ {(void*) Solar_801A71B8, 2, (ObjectFunc) Solar_801A5B3C, gHitboxNone, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_SO */ {(void*) Solar_801A71B8, 2, (ObjectFunc) Solar_801A5B3C, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_316 */ {(void*) Katina_801968F4, 1, (ObjectFunc) Katina_801946C4, D_KA_6011058, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_316 */ {(void*) Katina_801968F4, 1, (ObjectFunc) Katina_801946C4, D_KA_6011058, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
/* OBJ_BOSS_317 */ {(void*) Katina_80193B1C, 1, (ObjectFunc) Katina_80193718, D_KA_601115C, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, /* OBJ_BOSS_317 */ {(void*) Katina_80193B1C, 1, (ObjectFunc) Katina_80193718, D_KA_601115C, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
/* OBJ_BOSS_AQ */ {(void*) Aquas_801B4D84, 2, (ObjectFunc) Aquas_801B134C, D_AQ_6030F74, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_AQ */ {(void*) Aquas_801B4D84, 2, (ObjectFunc) Aquas_801B134C, D_AQ_6030F74, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
@ -421,14 +421,14 @@ ObjectInfo D_edata_800CC124[0x190] = {
/* OBJ_ITEM_SILVER_STAR */ {(void*) ItemSilverStar_Draw, 1, (ObjectFunc) ItemSilverStar_Update, gItemSupplyRingHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_SILVER_STAR */ {(void*) ItemSilverStar_Draw, 1, (ObjectFunc) ItemSilverStar_Update, gItemSupplyRingHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_METEO_WARP */ {(void*) ItemMeteoWarp_Draw, 1, (ObjectFunc) ItemMeteoWarp_Update, gMeteoWarpHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_METEO_WARP */ {(void*) ItemMeteoWarp_Draw, 1, (ObjectFunc) ItemMeteoWarp_Update, gMeteoWarpHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_BOMB */ {(void*) ItemBomb_Draw, 1, (ObjectFunc) ItemPickup_Update, gItemBombHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_BOMB */ {(void*) ItemBomb_Draw, 1, (ObjectFunc) ItemPickup_Update, gItemBombHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_PATH_SPLIT_X */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, D_edata_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_PATH_SPLIT_X */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, gItemPathChangeHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_PATH_TURN_LEFT */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, D_edata_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_PATH_TURN_LEFT */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, gItemPathChangeHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_PATH_TURN_RIGHT */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, D_edata_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_PATH_TURN_RIGHT */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, gItemPathChangeHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_PATH_SPLIT_Y */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, D_edata_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_PATH_SPLIT_Y */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, gItemPathChangeHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_PATH_TURN_UP */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, D_edata_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_PATH_TURN_UP */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, gItemPathChangeHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_PATH_TURN_DOWN */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, D_edata_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_PATH_TURN_DOWN */ {(void*) NULL, 1, (ObjectFunc) ItemPathChange_Update, gItemPathChangeHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_RING_CHECK */ {(void*) NULL, 1, (ObjectFunc) ItemRingCheck_Update, gItemRingCheckHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_RING_CHECK */ {(void*) NULL, 1, (ObjectFunc) ItemRingCheck_Update, gItemRingCheckHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_1UP */ {(void*) D_1022120, 0, (ObjectFunc) Item1up_Update, gDefaultCubeHitbox100, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_1UP */ {(void*) D_1022120, 0, (ObjectFunc) Item1up_Update, gCubeHitbox100, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_GOLD_RING */ {(void*) ItemGoldRing_Draw, 1, (ObjectFunc) ItemGoldRing_Update, gItemSupplyRingHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_GOLD_RING */ {(void*) ItemGoldRing_Draw, 1, (ObjectFunc) ItemGoldRing_Update, gItemSupplyRingHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_WING_REPAIR */ {(void*) D_arwing_3007650, 0, (ObjectFunc) ItemWingRepair_Update, gItemLasersHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_WING_REPAIR */ {(void*) D_arwing_3007650, 0, (ObjectFunc) ItemWingRepair_Update, gItemLasersHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_TRAINING_RING */ {(void*) gItemTrainingRingDL, 0, (ObjectFunc) Training_ItemRing_Update, D_TR_6009CFC, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_TRAINING_RING */ {(void*) gItemTrainingRingDL, 0, (ObjectFunc) Training_ItemRing_Update, D_TR_6009CFC, 700.0f, 0, 0, 0, 0, 0.0f, 0 },

View File

@ -98,15 +98,15 @@ void Actor202_Draw(Actor202* this) {
Animation_DrawSkeleton(1, D_ME_601E9D0, sp30, NULL, func_edisplay_800599A4, &this->index, &gIdentityMatrix); Animation_DrawSkeleton(1, D_ME_601E9D0, sp30, NULL, func_edisplay_800599A4, &this->index, &gIdentityMatrix);
} }
void Obj39_Draw(Object80_39* this) { void Obj39_Draw(Scenery_39* this) {
gSPDisplayList(gMasterDisp++, D_ME_601AE40); gSPDisplayList(gMasterDisp++, D_ME_601AE40);
} }
void func_edisplay_80059B20(Object_80* obj80) { void func_edisplay_80059B20(Scenery* scenery) {
if (obj80->obj.id == OBJ_80_29) { if (scenery->obj.id == OBJ_SCENERY_29) {
gSPDisplayList(gMasterDisp++, D_TI1_7007350); gSPDisplayList(gMasterDisp++, D_TI1_7007350);
} else { } else {
Graphics_SetScaleMtx(D_edisplay_800CF9B0[obj80->obj.id + 2]); Graphics_SetScaleMtx(D_edisplay_800CF9B0[scenery->obj.id + 2]);
gSPDisplayList(gMasterDisp++, D_TI1_700BB10); gSPDisplayList(gMasterDisp++, D_TI1_700BB10);
} }
} }
@ -114,7 +114,7 @@ void func_edisplay_80059B20(Object_80* obj80) {
void func_edisplay_80059BB0(void* arg0) { void func_edisplay_80059BB0(void* arg0) {
} }
void Obj42_Draw(Object80_42* this) { void Obj42_Draw(Scenery_42* this) {
gSPDisplayList(gMasterDisp++, D_CO_6023AC0); gSPDisplayList(gMasterDisp++, D_CO_6023AC0);
} }
@ -134,33 +134,33 @@ void FogShadow_Draw(FogShadow* this) {
RCP_SetupDL_47(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_47(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 180); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 180);
switch (this->unk_45) { switch (this->unk_45) {
case OBJ_80_0: case OBJ_SCENERY_0:
Matrix_Scale(gGfxMatrix, 2.0f, 1.0f, 0.7f, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 2.0f, 1.0f, 0.7f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_CO_6034B90); gSPDisplayList(gMasterDisp++, D_CO_6034B90);
break; break;
case OBJ_80_21: case OBJ_SCENERY_21:
Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.7f, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 0.7f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_CO_6034B90); gSPDisplayList(gMasterDisp++, D_CO_6034B90);
break; break;
case OBJ_80_6: case OBJ_SCENERY_6:
case OBJ_80_7: case OBJ_SCENERY_7:
Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 10.55f, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 10.55f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_Gfx_800DAC20); gSPDisplayList(gMasterDisp++, D_Gfx_800DAC20);
break; break;
case OBJ_80_56: case OBJ_SCENERY_56:
Matrix_Scale(gGfxMatrix, 1.6f, 1.0f, 1.0f, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 1.6f, 1.0f, 1.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_CO_6034B90); gSPDisplayList(gMasterDisp++, D_CO_6034B90);
break; break;
case OBJ_80_20: case OBJ_SCENERY_20:
Matrix_Scale(gGfxMatrix, 1.2f, 1.0f, 1.3f, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 1.2f, 1.0f, 1.3f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_CO_6034B90); gSPDisplayList(gMasterDisp++, D_CO_6034B90);
break; break;
case OBJ_80_22: case OBJ_SCENERY_22:
Matrix_Scale(gGfxMatrix, 2.2f, 1.0f, 1.4f, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 2.2f, 1.0f, 1.4f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_CO_6034B90); gSPDisplayList(gMasterDisp++, D_CO_6034B90);
@ -169,13 +169,13 @@ void FogShadow_Draw(FogShadow* this) {
RCP_SetupDL_60(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_60(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
} }
void func_edisplay_80059F68(Object_80* obj80) { void func_edisplay_80059F68(Scenery* scenery) {
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -95.0f, MTXF_APPLY); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -95.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_CO_602DA20); gSPDisplayList(gMasterDisp++, D_CO_602DA20);
} }
void func_edisplay_80059FDC(Object_80* obj80) { void func_edisplay_80059FDC(Scenery* scenery) {
gSPDisplayList(gMasterDisp++, D_CO_6035DA0); gSPDisplayList(gMasterDisp++, D_CO_6035DA0);
} }
@ -940,13 +940,13 @@ void func_edisplay_8005D3CC(Object* obj, f32 xRot, f32 yRot, f32 zRot, s32 drawT
} }
} }
void Object_80_Draw(Object_80* this, s32 arg1) { void Scenery_Draw(Scenery* this, s32 arg1) {
this->obj.pos.y += gCameraShakeY; this->obj.pos.y += gCameraShakeY;
func_edisplay_8005D008(&this->obj, this->info.drawType); func_edisplay_8005D008(&this->obj, this->info.drawType);
this->obj.pos.y -= gCameraShakeY; this->obj.pos.y -= gCameraShakeY;
if (this->info.drawType == 0) { if (this->info.drawType == 0) {
if ((this->obj.id == OBJ_80_19) || (this->obj.id == OBJ_80_55) || (this->obj.id == OBJ_80_9) || if ((this->obj.id == OBJ_SCENERY_19) || (this->obj.id == OBJ_SCENERY_55) || (this->obj.id == OBJ_SCENERY_9) ||
(this->obj.id == OBJ_80_50)) { (this->obj.id == OBJ_SCENERY_50)) {
RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
if (arg1 < 0) { if (arg1 < 0) {
@ -955,7 +955,7 @@ void Object_80_Draw(Object_80* this, s32 arg1) {
gSPDisplayList(gMasterDisp++, this->info.dList); gSPDisplayList(gMasterDisp++, this->info.dList);
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
} else { } else {
if (this->obj.id == OBJ_80_8) { if (this->obj.id == OBJ_SCENERY_8) {
if (arg1 < 0) { if (arg1 < 0) {
return; // weird control flow return; // weird control flow
} }
@ -966,7 +966,7 @@ void Object_80_Draw(Object_80* this, s32 arg1) {
func_edisplay_800596C0(); func_edisplay_800596C0();
} }
gSPDisplayList(gMasterDisp++, this->info.dList); gSPDisplayList(gMasterDisp++, this->info.dList);
if (this->obj.id == OBJ_80_8) { if (this->obj.id == OBJ_SCENERY_8) {
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
} }
} }
@ -1026,11 +1026,11 @@ void Actor_DrawOnRails(Actor* this) {
Matrix_MultVec3f(gGfxMatrix, &sp34, &gTeamArrowsViewPos[this->aiType]); Matrix_MultVec3f(gGfxMatrix, &sp34, &gTeamArrowsViewPos[this->aiType]);
} }
} }
if ((this->timer_0CA[0] != 0) && (gReflectY > 0)) { if ((this->lockOnTimers[0] != 0) && (gReflectY > 0)) {
sp34.y += this->info.unk_1C; sp34.y += this->info.unk_1C;
Matrix_MultVec3f(gGfxMatrix, &sp34, &D_display_80161578[0]); Matrix_MultVec3f(gGfxMatrix, &sp34, &D_display_80161578[0]);
if (D_display_80161578[0].z > -200.0f) { if (D_display_80161578[0].z > -200.0f) {
this->timer_0CA[0] = 0; this->lockOnTimers[0] = 0;
} }
} }
} }
@ -1113,17 +1113,17 @@ void Actor_DrawAllRange(Actor* this) {
} }
} }
if (D_edisplay_801615EC == 0) { if (D_edisplay_801615EC == 0) {
this->timer_0CA[gPlayerNum] = 0; this->lockOnTimers[gPlayerNum] = 0;
if ((this->obj.id == OBJ_ACTOR_189) || (this->obj.id == OBJ_ACTOR_286)) { if ((this->obj.id == OBJ_ACTOR_189) || (this->obj.id == OBJ_ACTOR_286)) {
Object_Kill(&this->obj, this->sfxSource); Object_Kill(&this->obj, this->sfxSource);
} }
} }
for (var_v1 = 0; var_v1 < gCamCount; var_v1++) { for (var_v1 = 0; var_v1 < gCamCount; var_v1++) {
if (this->timer_0CA[var_v1] != 0) { if (this->lockOnTimers[var_v1] != 0) {
D_display_80161578[var_v1] = D_edisplay_801615E0; D_display_80161578[var_v1] = D_edisplay_801615E0;
D_display_80161578[var_v1].y += this->info.unk_1C; D_display_80161578[var_v1].y += this->info.unk_1C;
if ((var_v1 == gPlayerNum) && (D_display_80161578[var_v1].z > -300.0f)) { if ((var_v1 == gPlayerNum) && (D_display_80161578[var_v1].z > -300.0f)) {
this->timer_0CA[var_v1] = 0; this->lockOnTimers[var_v1] = 0;
} }
} }
} }
@ -1171,7 +1171,7 @@ void Boss_Draw(Boss* this, s32 arg1) {
sp3C = 1.0f; sp3C = 1.0f;
if (this->obj.id != OBJ_BOSS_309) { if (this->obj.id != OBJ_BOSS_309) {
if (this->obj.id != OBJ_BOSS_316) { if (this->obj.id != OBJ_BOSS_316) {
func_edisplay_8005F670(&this->obj.pos); Display_SetSecondLight(&this->obj.pos);
} }
if (this->info.drawType != 2) { if (this->info.drawType != 2) {
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
@ -1187,7 +1187,7 @@ void Boss_Draw(Boss* this, s32 arg1) {
D_edisplay_801615D0.y = sp3C; D_edisplay_801615D0.y = sp3C;
if (this->obj.id == OBJ_BOSS_309) { if (this->obj.id == OBJ_BOSS_309) {
this->vwork[30] = D_edisplay_801615D0; this->vwork[30] = D_edisplay_801615D0;
func_edisplay_8005F670(&this->obj.pos); Display_SetSecondLight(&this->obj.pos);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
this->info.draw(&this->obj); this->info.draw(&this->obj);
} }
@ -1321,19 +1321,19 @@ void Object_DrawShadow(s32 index, Object* obj) {
} else { } else {
switch (obj->id) { switch (obj->id) {
case OBJ_ACTOR_230: case OBJ_ACTOR_230:
Matrix_Translate(gGfxMatrix, obj->pos.x, gGroundLevel + 2.0f + gActors[index].fwork[1], Matrix_Translate(gGfxMatrix, obj->pos.x, gGroundHeight + 2.0f + gActors[index].fwork[1],
obj->pos.z + D_ctx_80177D20, MTXF_APPLY); obj->pos.z + D_ctx_80177D20, MTXF_APPLY);
break; break;
case OBJ_ACTOR_229: case OBJ_ACTOR_229:
case OBJ_ACTOR_231: case OBJ_ACTOR_231:
Matrix_Translate(gGfxMatrix, obj->pos.x, gGroundLevel + 2.0f + gActors[index].fwork[0], Matrix_Translate(gGfxMatrix, obj->pos.x, gGroundHeight + 2.0f + gActors[index].fwork[0],
obj->pos.z + D_ctx_80177D20, MTXF_APPLY); obj->pos.z + D_ctx_80177D20, MTXF_APPLY);
break; break;
case OBJ_BOSS_316: case OBJ_BOSS_316:
Matrix_Translate(gGfxMatrix, obj->pos.x, gGroundLevel + 2.0f + gCameraShakeY, obj->pos.z, MTXF_APPLY); Matrix_Translate(gGfxMatrix, obj->pos.x, gGroundHeight + 2.0f + gCameraShakeY, obj->pos.z, MTXF_APPLY);
break; break;
default: default:
Matrix_Translate(gGfxMatrix, obj->pos.x, gGroundLevel + 2.0f, obj->pos.z + D_ctx_80177D20, MTXF_APPLY); Matrix_Translate(gGfxMatrix, obj->pos.x, gGroundHeight + 2.0f, obj->pos.z + D_ctx_80177D20, MTXF_APPLY);
break; break;
} }
if ((D_ctx_801784AC != 4) || (obj->id == OBJ_ACTOR_EVENT) || (obj->id == OBJ_ACTOR_195) || if ((D_ctx_801784AC != 4) || (obj->id == OBJ_ACTOR_EVENT) || (obj->id == OBJ_ACTOR_195) ||
@ -1419,7 +1419,7 @@ void func_edisplay_8005F290(f32* sfxSrc, Vec3f* pos) {
Object_ClampSfxSource(sfxSrc); Object_ClampSfxSource(sfxSrc);
} }
void Object_58_Draw(Object_58* this) { void Scenery360_Draw(Scenery360* this) {
Vec3f sp54 = { 0.0f, 0.0f, 0.0f }; Vec3f sp54 = { 0.0f, 0.0f, 0.0f };
Vec3f sp48; Vec3f sp48;
f32 sp44 = 1000.0f; f32 sp44 = 1000.0f;
@ -1427,14 +1427,14 @@ void Object_58_Draw(Object_58* this) {
f32 sp3C = 2000.0f; f32 sp3C = 2000.0f;
f32 sp38 = 0.5f; f32 sp38 = 0.5f;
if (this->obj.id == OBJ_80_156) { if (this->obj.id == OBJ_SCENERY_156) {
sp44 = 4000.0f; sp44 = 4000.0f;
sp40 = -13000.0f; sp40 = -13000.0f;
sp3C = 4500.0f; sp3C = 4500.0f;
} else if (gCurrentLevel == LEVEL_VENOM_ANDROSS) { } else if (gCurrentLevel == LEVEL_VENOM_ANDROSS) {
sp40 = -20000.0f; sp40 = -20000.0f;
sp38 = 0.4f; sp38 = 0.4f;
} else if (this->obj.id == OBJ_80_143) { } else if (this->obj.id == OBJ_SCENERY_143) {
sp44 = 6000.0f; sp44 = 6000.0f;
sp40 = -20000.0f; sp40 = -20000.0f;
sp3C = 6000.0f; sp3C = 6000.0f;
@ -1449,8 +1449,8 @@ void Object_58_Draw(Object_58* this) {
if ((sp48.z < sp44) && (sp40 < sp48.z)) { if ((sp48.z < sp44) && (sp40 < sp48.z)) {
if (fabsf(sp48.y) < (fabsf(sp48.z * sp38) + sp3C)) { if (fabsf(sp48.y) < (fabsf(sp48.z * sp38) + sp3C)) {
if (fabsf(sp48.x) < (fabsf(sp48.z * sp38) + sp3C)) { if (fabsf(sp48.x) < (fabsf(sp48.z * sp38) + sp3C)) {
func_edisplay_8005F670(&this->obj.pos); Display_SetSecondLight(&this->obj.pos);
if (this->obj.id == OBJ_80_131) { if (this->obj.id == OBJ_SCENERY_131) {
Matrix_RotateY(gGfxMatrix, this->obj.rot.y * M_DTOR, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, this->obj.rot.y * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, this->obj.rot.x * M_DTOR, MTXF_APPLY); Matrix_RotateX(gGfxMatrix, this->obj.rot.x * M_DTOR, MTXF_APPLY);
Matrix_RotateZ(gGfxMatrix, this->obj.rot.z * M_DTOR, MTXF_APPLY); Matrix_RotateZ(gGfxMatrix, this->obj.rot.z * M_DTOR, MTXF_APPLY);
@ -1468,7 +1468,7 @@ void Object_58_Draw(Object_58* this) {
} }
} }
void func_edisplay_8005F670(Vec3f* pos) { void Display_SetSecondLight(Vec3f* pos) {
Vec3f sp9C; Vec3f sp9C;
f32 sp98; f32 sp98;
f32 sp94; f32 sp94;
@ -1481,10 +1481,10 @@ void func_edisplay_8005F670(Vec3f* pos) {
f32 temp3; f32 temp3;
f32 pad; f32 pad;
if (D_ctx_8017836C > 0.01f) { if (gLight3Brightness > 0.01f) {
sp9C.x = pos->x - D_ctx_80178370; sp9C.x = pos->x - gLight3x;
sp9C.y = pos->y - D_ctx_80178374; sp9C.y = pos->y - gLight3y;
sp9C.z = pos->z - D_ctx_80178378; sp9C.z = pos->z - gLight3z;
temp_fv0 = VEC3F_MAG(&sp9C); temp_fv0 = VEC3F_MAG(&sp9C);
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) { if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) {
var_fs0 = 700.0f / temp_fv0; var_fs0 = 700.0f / temp_fv0;
@ -1509,9 +1509,9 @@ void func_edisplay_8005F670(Vec3f* pos) {
sp6C.z = -100.0f; sp6C.z = -100.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp6C, &sp84); Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp6C, &sp84);
Matrix_Pop(&gCalcMatrix); Matrix_Pop(&gCalcMatrix);
temp1 = D_ctx_80178360 * D_ctx_8017836C * var_fs0; temp1 = gLight3R * gLight3Brightness * var_fs0;
temp2 = D_ctx_80178364 * D_ctx_8017836C * var_fs0; temp2 = gLight3G * gLight3Brightness * var_fs0;
temp3 = D_ctx_80178368 * D_ctx_8017836C * var_fs0; temp3 = gLight3B * gLight3Brightness * var_fs0;
Lights_SetTwoLights(&gMasterDisp, gLight1x, gLight1y, gLight1z, sp84.x, sp84.y, sp84.z, gLight1R, gLight1G, Lights_SetTwoLights(&gMasterDisp, gLight1x, gLight1y, gLight1z, sp84.x, sp84.y, sp84.z, gLight1R, gLight1G,
gLight1B, temp1, temp2, temp3, gAmbientR, gAmbientG, gAmbientB); gLight1B, temp1, temp2, temp3, gAmbientR, gAmbientG, gAmbientB);
} }
@ -1544,40 +1544,40 @@ void Object_DrawAll(s32 arg0) {
Actor* actor; Actor* actor;
Boss* boss; Boss* boss;
Sprite* sprite; Sprite* sprite;
Object_58* obj58; Scenery360* scenery360;
Item* item; Item* item;
Object_80* obj80; Scenery* scenery;
if ((gLevelMode == LEVELMODE_ALL_RANGE) && (gCurrentLevel != LEVEL_KATINA)) { if ((gLevelMode == LEVELMODE_ALL_RANGE) && (gCurrentLevel != LEVEL_KATINA)) {
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
if (D_ctx_80177AB0 == 5) { if (D_ctx_80177AB0 == 5) {
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
} }
for (i = 0, obj58 = gObjects58; i < 200; i++, obj58++) { for (i = 0, scenery360 = gScenery360; i < 200; i++, scenery360++) {
if ((obj58->obj.status == OBJ_ACTIVE) && (obj58->obj.id != OBJ_80_147)) { if ((scenery360->obj.status == OBJ_ACTIVE) && (scenery360->obj.id != OBJ_SCENERY_147)) {
if (gCurrentLevel == LEVEL_BOLSE) { if (gCurrentLevel == LEVEL_BOLSE) {
spAC.x = obj58->sfxSource[0]; spAC.x = scenery360->sfxSource[0];
spAC.y = obj58->sfxSource[1]; spAC.y = scenery360->sfxSource[1];
spAC.z = obj58->sfxSource[2]; spAC.z = scenery360->sfxSource[2];
Matrix_MultVec3fNoTranslate(&D_BO_8019EE80, &spAC, &obj58->obj.pos); Matrix_MultVec3fNoTranslate(&D_BO_8019EE80, &spAC, &scenery360->obj.pos);
obj58->obj.rot.y = obj58->unk_54 + gBosses->obj.rot.y; scenery360->obj.rot.y = scenery360->unk_54 + gBosses->obj.rot.y;
} }
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Object_58_Draw(obj58); Scenery360_Draw(scenery360);
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
} }
} }
} else { } else {
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
for (i = 0, obj80 = gObjects80; i < ARRAY_COUNT(gObjects80); i++, obj80++) { for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) {
if (obj80->obj.status >= OBJ_ACTIVE) { if (scenery->obj.status >= OBJ_ACTIVE) {
if (arg0 > 0) { if (arg0 > 0) {
func_edisplay_8005F670(&obj80->obj.pos); Display_SetSecondLight(&scenery->obj.pos);
} }
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Object_80_Draw(obj80, arg0); Scenery_Draw(scenery, arg0);
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
func_edisplay_8005F1EC(obj80->sfxSource); func_edisplay_8005F1EC(scenery->sfxSource);
} }
} }
} }
@ -1636,7 +1636,7 @@ void Object_DrawAll(s32 arg0) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) || if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) ||
(gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE) || (gCurrentLevel == LEVEL_AQUAS)) { (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE) || (gCurrentLevel == LEVEL_AQUAS)) {
func_edisplay_8005F670(&actor->obj.pos); Display_SetSecondLight(&actor->obj.pos);
} }
func_edisplay_800597C0(arg0); func_edisplay_800597C0(arg0);
Actor_DrawOnRails(actor); Actor_DrawOnRails(actor);

View File

@ -663,14 +663,14 @@ void func_effect_80079618(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
void func_effect_8007968C(Effect* effect) { void func_effect_8007968C(Effect* effect) {
if ((gCurrentLevel != LEVEL_MACBETH) || (effect->unk_44 != 7)) { if ((gCurrentLevel != LEVEL_MACBETH) || (effect->unk_44 != 7)) {
if ((effect->timer_50 == 0) || (effect->obj.pos.y < gGroundLevel)) { if ((effect->timer_50 == 0) || (effect->obj.pos.y < gGroundHeight)) {
Object_Kill(&effect->obj, effect->sfxSource); Object_Kill(&effect->obj, effect->sfxSource);
} }
} else { } else {
if (((gGameFrameCount % 4) == 0)) { if (((gGameFrameCount % 4) == 0)) {
func_effect_8007D2C8(effect->obj.pos.x, effect->obj.pos.y + 550.0f, effect->obj.pos.z, 10.0f); func_effect_8007D2C8(effect->obj.pos.x, effect->obj.pos.y + 550.0f, effect->obj.pos.z, 10.0f);
} }
if ((effect->timer_50 == 0) || (effect->obj.pos.y < (gGroundLevel - 100.0f))) { if ((effect->timer_50 == 0) || (effect->obj.pos.y < (gGroundHeight - 100.0f))) {
Object_Kill(&effect->obj, effect->sfxSource); Object_Kill(&effect->obj, effect->sfxSource);
} }
} }
@ -712,7 +712,7 @@ void func_effect_800798F0(Effect* effect) {
Vec3f frameJointTable[50]; Vec3f frameJointTable[50];
if ((gCurrentLevel == LEVEL_BOLSE) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE)) { if ((gCurrentLevel == LEVEL_BOLSE) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE)) {
func_edisplay_8005F670(&effect->obj.pos); Display_SetSecondLight(&effect->obj.pos);
} }
RCP_SetupDL(&gMasterDisp, 0x1D); RCP_SetupDL(&gMasterDisp, 0x1D);
@ -1041,7 +1041,7 @@ void func_effect_8007A994(Effect* effect) {
effect->unk_4A++; effect->unk_4A++;
} }
static Gfx* D_800D178C[] = { D_TI_6003440, D_TI_60034E0, D_TI_6003580, D_TI_6003620, D_TI_60036C0, D_TR_6003760 }; static Gfx* D_800D178C[] = { D_TI_6003440, D_TI_60034E0, D_TI_6003580, D_TI_6003620, D_TI_60036C0, D_TI_6003760 };
void func_effect_8007AA60(Effect* effect) { void func_effect_8007AA60(Effect* effect) {
RCP_SetupDL(&gMasterDisp, 0x44); RCP_SetupDL(&gMasterDisp, 0x44);
@ -1076,7 +1076,7 @@ void func_effect_8007AC0C(Effect* effect, f32 xPos, f32 unused_posY, f32 zPos, f
effect->obj.id = OBJ_EFFECT_372; effect->obj.id = OBJ_EFFECT_372;
effect->obj.pos.x = xPos; effect->obj.pos.x = xPos;
effect->obj.pos.y = gGroundLevel; effect->obj.pos.y = gGroundHeight;
effect->obj.pos.z = zPos; effect->obj.pos.z = zPos;
effect->unk_44 = 180; effect->unk_44 = 180;
@ -1106,7 +1106,7 @@ void func_effect_8007AD58(Effect* effect, f32 xPos, f32 unused_posY, f32 zPos, f
effect->state = 1; effect->state = 1;
effect->obj.pos.x = xPos; effect->obj.pos.x = xPos;
effect->obj.pos.y = gGroundLevel; effect->obj.pos.y = gGroundHeight;
effect->obj.pos.z = zPos; effect->obj.pos.z = zPos;
effect->unk_44 = 180; effect->unk_44 = 180;
@ -2005,14 +2005,14 @@ void func_effect_8007D2F4(Effect* effect) {
} }
effect->unk_44 -= 15; effect->unk_44 -= 15;
} }
if (D_ctx_8017836C < effect->scale1) { if (gLight3Brightness < effect->scale1) {
D_ctx_8017836C = effect->scale1; gLight3Brightness = effect->scale1;
D_ctx_80178370 = effect->obj.pos.x; gLight3x = effect->obj.pos.x;
D_ctx_80178374 = effect->obj.pos.y; gLight3y = effect->obj.pos.y;
D_ctx_80178378 = effect->obj.pos.z; gLight3z = effect->obj.pos.z;
D_ctx_80178360 = 255; gLight3R = 255;
D_ctx_80178364 = 50; gLight3G = 50;
D_ctx_80178368 = 0; gLight3B = 0;
} }
Math_SmoothStepToF(&effect->scale1, 0.0f, 1.0f, 0.05f, 0.0f); Math_SmoothStepToF(&effect->scale1, 0.0f, 1.0f, 0.05f, 0.0f);
} }
@ -2093,14 +2093,14 @@ void func_effect_8007D748(Effect* effect) {
} }
effect->unk_44 -= 15; effect->unk_44 -= 15;
} }
if (D_ctx_8017836C < effect->scale1) { if (gLight3Brightness < effect->scale1) {
D_ctx_8017836C = effect->scale1; gLight3Brightness = effect->scale1;
D_ctx_80178370 = effect->obj.pos.x; gLight3x = effect->obj.pos.x;
D_ctx_80178374 = effect->obj.pos.y; gLight3y = effect->obj.pos.y;
D_ctx_80178378 = effect->obj.pos.z; gLight3z = effect->obj.pos.z;
D_ctx_80178360 = 255; gLight3R = 255;
D_ctx_80178364 = 50; gLight3G = 50;
D_ctx_80178368 = 0; gLight3B = 0;
} }
Math_SmoothStepToF(&effect->scale1, 0, 1.0f, 0.1f, 0.0f); Math_SmoothStepToF(&effect->scale1, 0, 1.0f, 0.1f, 0.0f);
} }
@ -2175,10 +2175,10 @@ void func_effect_8007DB70(Effect* effect) {
case 0: case 0:
effect->vel.y -= 0.5f; effect->vel.y -= 0.5f;
if ((effect->timer_50 == 0) && ((Object_CheckCollision(1000, &effect->obj.pos, &sp54, 1) != 0) || if ((effect->timer_50 == 0) && ((Object_CheckCollision(1000, &effect->obj.pos, &sp54, 1) != 0) ||
(effect->obj.pos.y < (gGroundLevel + 10.0f)))) { (effect->obj.pos.y < (gGroundHeight + 10.0f)))) {
effect->vel.y = 0.0f; effect->vel.y = 0.0f;
if (effect->obj.pos.y < (gGroundLevel + 10.0f)) { if (effect->obj.pos.y < (gGroundHeight + 10.0f)) {
effect->obj.pos.y = gGroundLevel; effect->obj.pos.y = gGroundHeight;
} }
effect->state = 1; effect->state = 1;
effect->timer_50 = 30; effect->timer_50 = 30;
@ -2189,7 +2189,7 @@ void func_effect_8007DB70(Effect* effect) {
func_effect_8007D0E0(effect->obj.pos.x, effect->obj.pos.y + 30.0f, effect->obj.pos.z, 7.0f); func_effect_8007D0E0(effect->obj.pos.x, effect->obj.pos.y + 30.0f, effect->obj.pos.z, 7.0f);
func_effect_8007BFFC(effect->obj.pos.x, effect->obj.pos.y + 30.0f, effect->obj.pos.z, 0.0f, 0.0f, 0.0f, func_effect_8007BFFC(effect->obj.pos.x, effect->obj.pos.y + 30.0f, effect->obj.pos.z, 0.0f, 0.0f, 0.0f,
4.0f, 5); 4.0f, 5);
if ((effect->obj.pos.y < (gGroundLevel + 10.0f)) || (gGroundType != GROUNDTYPE_WATER)) { if ((effect->obj.pos.y < (gGroundHeight + 10.0f)) || (gGroundType != GROUNDTYPE_WATER)) {
func_beam_800365E4(effect->obj.pos.x, 3.0f, effect->obj.pos.z, effect->obj.pos.x, effect->obj.pos.z, func_beam_800365E4(effect->obj.pos.x, 3.0f, effect->obj.pos.z, effect->obj.pos.x, effect->obj.pos.z,
0.0f, 0.0f, 90.0f, 5.0f, 0, 0); 0.0f, 0.0f, 90.0f, 5.0f, 0, 0);
break; break;
@ -2614,7 +2614,7 @@ void func_effect_8007F2FC(Effect* effect) {
Object_Kill(&effect->obj, effect->sfxSource); Object_Kill(&effect->obj, effect->sfxSource);
} }
if ((effect->obj.pos.y < gGroundLevel) && (gLevelType == LEVELTYPE_PLANET)) { if ((effect->obj.pos.y < gGroundHeight) && (gLevelType == LEVELTYPE_PLANET)) {
Object_Kill(&effect->obj, effect->sfxSource); Object_Kill(&effect->obj, effect->sfxSource);
} }
@ -2720,7 +2720,7 @@ void func_effect_8007F6B0(Effect* effect) {
temp = (i * 10.0f * M_DTOR) + randfloat; temp = (i * 10.0f * M_DTOR) + randfloat;
sin = __sinf(temp) * effect->scale2 * 8.0f; sin = __sinf(temp) * effect->scale2 * 8.0f;
cos = __cosf(temp) * effect->scale2 * 8.0f; cos = __cosf(temp) * effect->scale2 * 8.0f;
yPos = gGroundLevel + 40.0f; yPos = gGroundHeight + 40.0f;
if (D_ctx_801784AC == 4) { if (D_ctx_801784AC == 4) {
Ground_801B6E20(effect->obj.pos.x + sin, effect->obj.pos.z + cos + D_ctx_80177D20, &x, &y, &z); Ground_801B6E20(effect->obj.pos.x + sin, effect->obj.pos.z + cos + D_ctx_80177D20, &x, &y, &z);
@ -2767,7 +2767,7 @@ void func_effect_8007F958(Effect* effect) {
temp = (i * 72.0f * M_DTOR) + randFloat; temp = (i * 72.0f * M_DTOR) + randFloat;
sin = __sinf(temp) * effect->scale2 * 16.0f; sin = __sinf(temp) * effect->scale2 * 16.0f;
cos = __cosf(temp) * effect->scale2 * 16.0f; cos = __cosf(temp) * effect->scale2 * 16.0f;
yPos = gGroundLevel + 10.0f; yPos = gGroundHeight + 10.0f;
if (D_ctx_801784AC == 4) { if (D_ctx_801784AC == 4) {
Ground_801B6E20(effect->obj.pos.x + sin, effect->obj.pos.z + cos + D_ctx_80177D20, &x, &y, &z); Ground_801B6E20(effect->obj.pos.x + sin, effect->obj.pos.z + cos + D_ctx_80177D20, &x, &y, &z);
@ -2808,7 +2808,7 @@ void func_effect_8007FBE0(Effect* effect) {
temp = (i * 36.0f * M_DTOR) + randFloat; temp = (i * 36.0f * M_DTOR) + randFloat;
sin = __sinf(temp) * effect->scale2 * 16.0f; sin = __sinf(temp) * effect->scale2 * 16.0f;
cos = __cosf(temp) * effect->scale2 * 16.0f; cos = __cosf(temp) * effect->scale2 * 16.0f;
yPos = gGroundLevel + 10.0f; yPos = gGroundHeight + 10.0f;
func_effect_8007BC7C(effect->obj.pos.x + sin, yPos, effect->obj.pos.z + cos, 12.0f); func_effect_8007BC7C(effect->obj.pos.x + sin, yPos, effect->obj.pos.z + cos, 12.0f);
} }
} }
@ -2899,10 +2899,10 @@ void func_effect_8007FE88(Effect* effect) {
if (Ground_801B6AEC(effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z + D_ctx_80177D20) != 0) { if (Ground_801B6AEC(effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z + D_ctx_80177D20) != 0) {
Object_Kill(&effect->obj, effect->sfxSource); Object_Kill(&effect->obj, effect->sfxSource);
} }
} else if (effect->obj.pos.y < gGroundLevel) { } else if (effect->obj.pos.y < gGroundHeight) {
Object_Kill(&effect->obj, effect->sfxSource); Object_Kill(&effect->obj, effect->sfxSource);
if (gGroundType != GROUNDTYPE_WATER) { if (gGroundType != GROUNDTYPE_WATER) {
effect->obj.pos.y = gGroundLevel; effect->obj.pos.y = gGroundHeight;
func_effect_8007D074(effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z, 2.0f); func_effect_8007D074(effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z, 2.0f);
} }
} }
@ -3030,10 +3030,10 @@ void func_effect_8008040C(Effect* effect) {
0) { 0) {
Object_Kill(&effect->obj, effect->sfxSource); Object_Kill(&effect->obj, effect->sfxSource);
} }
} else if (effect->obj.pos.y < gGroundLevel) { } else if (effect->obj.pos.y < gGroundHeight) {
Object_Kill(&effect->obj, effect->sfxSource); Object_Kill(&effect->obj, effect->sfxSource);
if (gGroundType != GROUNDTYPE_WATER) { if (gGroundType != GROUNDTYPE_WATER) {
effect->obj.pos.y = gGroundLevel; effect->obj.pos.y = gGroundHeight;
func_effect_8007D074(effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z, 2.0f); func_effect_8007D074(effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z, 2.0f);
} }
} }
@ -3116,7 +3116,7 @@ void func_effect_80080ACC(Effect* effect) {
effect->obj.rot.x += effect->unk_60.x; effect->obj.rot.x += effect->unk_60.x;
effect->obj.rot.y += effect->unk_60.y; effect->obj.rot.y += effect->unk_60.y;
effect->obj.rot.z += effect->unk_60.z; effect->obj.rot.z += effect->unk_60.z;
if ((effect->unk_44 == 0) && (effect->obj.pos.y < gGroundLevel)) { if ((effect->unk_44 == 0) && (effect->obj.pos.y < gGroundHeight)) {
Object_Kill(&effect->obj, effect->sfxSource); Object_Kill(&effect->obj, effect->sfxSource);
} }
if (effect->unk_44 != 0) { if (effect->unk_44 != 0) {
@ -3624,7 +3624,7 @@ void func_effect_80081C5C(Effect* effect) {
effect->obj.rot.y += effect->unk_60.y; effect->obj.rot.y += effect->unk_60.y;
effect->obj.rot.z += effect->unk_60.z; effect->obj.rot.z += effect->unk_60.z;
effect->vel.y -= 0.5f; effect->vel.y -= 0.5f;
if ((effect->timer_50 == 0) || (effect->obj.pos.y < gGroundLevel)) { if ((effect->timer_50 == 0) || (effect->obj.pos.y < gGroundHeight)) {
Object_Kill(&effect->obj, effect->sfxSource); Object_Kill(&effect->obj, effect->sfxSource);
} }
break; break;

View File

@ -29,7 +29,7 @@ ObjectInit* gLevelObjectInits[] = {
D_FO_600EAD4, NULL, D_KA_6011044, D_BO_600FF74, D_SZ_6006EB4, D_VE2_6014D94, D_versus_302DE3C, D_FO_600EAD4, NULL, D_KA_6011044, D_BO_600FF74, D_SZ_6006EB4, D_VE2_6014D94, D_versus_302DE3C,
}; };
static s32 D_enmy_800CFDF4[] = { static s32 D_enmy_800CFDF4[] = {
/* 0 */ OBJ_80_0, /* 0 */ OBJ_SCENERY_0,
/* 1 */ OBJ_ITEM_SILVER_RING, /* 1 */ OBJ_ITEM_SILVER_RING,
/* 2 */ OBJ_ITEM_SILVER_RING, /* 2 */ OBJ_ITEM_SILVER_RING,
/* 3 */ OBJ_ITEM_SILVER_RING, /* 3 */ OBJ_ITEM_SILVER_RING,
@ -53,7 +53,7 @@ static s32 D_enmy_800CFDF4[] = {
/* 21 */ OBJ_ITEM_SILVER_RING, /* 21 */ OBJ_ITEM_SILVER_RING,
/* 22 */ OBJ_ITEM_SILVER_RING, /* 22 */ OBJ_ITEM_SILVER_RING,
/* 23 */ OBJ_ITEM_WING_REPAIR, /* 23 */ OBJ_ITEM_WING_REPAIR,
/* 24 */ OBJ_80_0, /* 24 */ OBJ_SCENERY_0,
/* 25 */ OBJ_ITEM_SILVER_STAR, /* 25 */ OBJ_ITEM_SILVER_STAR,
}; };
static f32 D_enmy_800CFE5C[] = { static f32 D_enmy_800CFE5C[] = {
@ -139,11 +139,11 @@ void Object_SetInfo(ObjectInfo* info, u32 objId) {
} }
} }
void Object_80_Initialize(Object_80* obj80) { void Scenery_Initialize(Scenery* scenery) {
s32 i; s32 i;
u8* ptr = (u8*) obj80; u8* ptr = (u8*) scenery;
for (i = 0; i < sizeof(Object_80); i++, ptr++) { for (i = 0; i < sizeof(Scenery); i++, ptr++) {
*ptr = 0; *ptr = 0;
} }
} }
@ -196,18 +196,18 @@ void Effect_Initialize(Effect* effect) {
effect->scale2 = 1.0f; effect->scale2 = 1.0f;
} }
void Object_80_Load(Object_80* obj80, ObjectInit* objInit) { void Scenery_Load(Scenery* scenery, ObjectInit* objInit) {
Object_80_Initialize(obj80); Scenery_Initialize(scenery);
obj80->obj.status = OBJ_INIT; scenery->obj.status = OBJ_INIT;
obj80->obj.pos.z = -objInit->zPos1; scenery->obj.pos.z = -objInit->zPos1;
obj80->obj.pos.z += -3000.0f + objInit->zPos2; scenery->obj.pos.z += -3000.0f + objInit->zPos2;
obj80->obj.pos.x = objInit->xPos; scenery->obj.pos.x = objInit->xPos;
obj80->obj.pos.y = objInit->yPos; scenery->obj.pos.y = objInit->yPos;
obj80->obj.rot.x = objInit->rot.x; scenery->obj.rot.x = objInit->rot.x;
obj80->obj.rot.y = objInit->rot.y; scenery->obj.rot.y = objInit->rot.y;
obj80->obj.rot.z = objInit->rot.z; scenery->obj.rot.z = objInit->rot.z;
obj80->obj.id = objInit->id; scenery->obj.id = objInit->id;
Object_SetInfo(&obj80->info, obj80->obj.id); Object_SetInfo(&scenery->info, scenery->obj.id);
} }
void Sprite_Load(Sprite* sprite, ObjectInit* objInit) { void Sprite_Load(Sprite* sprite, ObjectInit* objInit) {
@ -319,7 +319,7 @@ void func_enmy_80061B68(void) {
x = gPlayer[0].pos.x + RAND_FLOAT_CENTERED(2000.0f) + (5.0f * gPlayer[0].vel.x); x = gPlayer[0].pos.x + RAND_FLOAT_CENTERED(2000.0f) + (5.0f * gPlayer[0].vel.x);
y = 0; y = 0;
while (y <= gGroundLevel) { while (y <= gGroundHeight) {
y = gPlayer[0].pos.y + RAND_FLOAT_CENTERED(2000.0f) + (5.0f * gPlayer[0].vel.y); y = gPlayer[0].pos.y + RAND_FLOAT_CENTERED(2000.0f) + (5.0f * gPlayer[0].vel.y);
} }
z = -D_ctx_80177D20 - 3000.0f; z = -D_ctx_80177D20 - 3000.0f;
@ -411,9 +411,9 @@ void Object_Load(ObjectInit* objInit, f32 xMax, f32 xMin, f32 yMax, f32 yMin) {
if ((xMax > objInit->xPos - gPlayer[0].unk_0AC) && (objInit->xPos - gPlayer[0].unk_0AC > xMin) && if ((xMax > objInit->xPos - gPlayer[0].unk_0AC) && (objInit->xPos - gPlayer[0].unk_0AC > xMin) &&
(yMax > objInit->yPos - gPlayer[0].unk_0B0) && (objInit->yPos - gPlayer[0].unk_0B0 > yMin)) { (yMax > objInit->yPos - gPlayer[0].unk_0B0) && (objInit->yPos - gPlayer[0].unk_0B0 > yMin)) {
if (objInit->id < OBJ_SPRITE_CO_POLE) { if (objInit->id < OBJ_SPRITE_CO_POLE) {
for (i = 0; i < ARRAY_COUNT(gObjects80); i++) { for (i = 0; i < ARRAY_COUNT(gScenery); i++) {
if (gObjects80[i].obj.status == OBJ_FREE) { if (gScenery[i].obj.status == OBJ_FREE) {
Object_80_Load(&gObjects80[i], objInit); Scenery_Load(&gScenery[i], objInit);
break; break;
} }
} }
@ -526,13 +526,13 @@ void Object_LoadFromInit(void) {
s32 i; s32 i;
s32 j; s32 j;
if ((gCurrentLevel == LEVEL_METEO) && (gLevelStage == 1)) { if ((gCurrentLevel == LEVEL_METEO) && (gLevelPhase == 1)) {
gLevelObjects = SEGMENTED_TO_VIRTUAL(D_ME_602B148); gLevelObjects = SEGMENTED_TO_VIRTUAL(D_ME_602B148);
} else if ((gCurrentLevel == LEVEL_SECTOR_X) && (gLevelStage == 1)) { } else if ((gCurrentLevel == LEVEL_SECTOR_X) && (gLevelPhase == 1)) {
gLevelObjects = SEGMENTED_TO_VIRTUAL(D_SX_602F18C); gLevelObjects = SEGMENTED_TO_VIRTUAL(D_SX_602F18C);
} else if ((gCurrentLevel == LEVEL_VENOM_ANDROSS) && (gLevelStage == 1)) { } else if ((gCurrentLevel == LEVEL_VENOM_ANDROSS) && (gLevelPhase == 1)) {
gLevelObjects = SEGMENTED_TO_VIRTUAL(D_ANDROSS_C0356A4); gLevelObjects = SEGMENTED_TO_VIRTUAL(D_ANDROSS_C0356A4);
} else if ((gCurrentLevel == LEVEL_VENOM_1) && (gLevelStage == 1)) { } else if ((gCurrentLevel == LEVEL_VENOM_1) && (gLevelPhase == 1)) {
gLevelObjects = SEGMENTED_TO_VIRTUAL(D_VE1_6010088); gLevelObjects = SEGMENTED_TO_VIRTUAL(D_VE1_6010088);
} else { } else {
gLevelObjects = SEGMENTED_TO_VIRTUAL(gLevelObjectInits[gCurrentLevel]); gLevelObjects = SEGMENTED_TO_VIRTUAL(gLevelObjectInits[gCurrentLevel]);
@ -595,7 +595,7 @@ void func_enmy_80062B60(f32 xPos, f32 zPos, s32 state, f32 scale) {
gEffects[i].obj.status = OBJ_INIT; gEffects[i].obj.status = OBJ_INIT;
gEffects[i].obj.id = OBJ_EFFECT_348; gEffects[i].obj.id = OBJ_EFFECT_348;
gEffects[i].obj.pos.x = xPos; gEffects[i].obj.pos.x = xPos;
gEffects[i].obj.pos.y = gGroundLevel + 3.0f; gEffects[i].obj.pos.y = gGroundHeight + 3.0f;
gEffects[i].obj.pos.z = zPos; gEffects[i].obj.pos.z = zPos;
gEffects[i].scale2 = 10.0f; gEffects[i].scale2 = 10.0f;
gEffects[i].scale1 = scale; gEffects[i].scale1 = scale;
@ -618,7 +618,7 @@ void func_enmy_80062C38(f32 xPos, f32 yPos) {
gEffects[i].obj.status = OBJ_INIT; gEffects[i].obj.status = OBJ_INIT;
gEffects[i].obj.id = OBJ_EFFECT_349; gEffects[i].obj.id = OBJ_EFFECT_349;
gEffects[i].obj.pos.x = xPos; gEffects[i].obj.pos.x = xPos;
gEffects[i].obj.pos.y = gGroundLevel + 3.0f; gEffects[i].obj.pos.y = gGroundHeight + 3.0f;
gEffects[i].obj.pos.z = yPos; gEffects[i].obj.pos.z = yPos;
gEffects[i].scale2 = 1.0f; gEffects[i].scale2 = 1.0f;
gEffects[i].scale1 = 1.3f; gEffects[i].scale1 = 1.3f;
@ -639,7 +639,7 @@ void func_enmy_80062D04(f32 xPos, f32 yPos) {
gEffects[i].obj.status = OBJ_INIT; gEffects[i].obj.status = OBJ_INIT;
gEffects[i].obj.id = OBJ_EFFECT_350; gEffects[i].obj.id = OBJ_EFFECT_350;
gEffects[i].obj.pos.x = xPos; gEffects[i].obj.pos.x = xPos;
gEffects[i].obj.pos.y = gGroundLevel + 3.0f; gEffects[i].obj.pos.y = gGroundHeight + 3.0f;
gEffects[i].obj.pos.z = yPos; gEffects[i].obj.pos.z = yPos;
gEffects[i].scale2 = 3.0f; gEffects[i].scale2 = 3.0f;
gEffects[i].scale1 = 2.0f; gEffects[i].scale1 = 2.0f;
@ -745,21 +745,22 @@ bool Object_CheckPolyCollision(Vec3f* pos, Vec3f* vel, ObjectId objId, Object* o
objPos.x = obj->pos.x; objPos.x = obj->pos.x;
objPos.y = obj->pos.y; objPos.y = obj->pos.y;
objPos.z = obj->pos.z; objPos.z = obj->pos.z;
if ((objId == OBJ_ACTOR_180) || (objId == OBJ_80_149) || (objId == OBJ_80_150) || (objId == OBJ_BOSS_308) || if ((objId == OBJ_ACTOR_180) || (objId == OBJ_SCENERY_149) || (objId == OBJ_SCENERY_150) ||
(objId == OBJ_BOSS_313) || (objId == OBJ_BOSS_312) || (objId == OBJ_BOSS_309) || (objId == OBJ_80_39)) { (objId == OBJ_BOSS_308) || (objId == OBJ_BOSS_313) || (objId == OBJ_BOSS_312) || (objId == OBJ_BOSS_309) ||
(objId == OBJ_SCENERY_39)) {
colId = COL1_0; colId = COL1_0;
if (objId == OBJ_BOSS_312) { if (objId == OBJ_BOSS_312) {
colId = COL1_9; colId = COL1_9;
} }
if (objId == OBJ_80_39) { if (objId == OBJ_SCENERY_39) {
colId = COL1_1; colId = COL1_1;
} else if (objId == OBJ_BOSS_308) { } else if (objId == OBJ_BOSS_308) {
colId = COL1_4; colId = COL1_4;
} else if (objId == OBJ_BOSS_309) { } else if (objId == OBJ_BOSS_309) {
colId = COL1_7; colId = COL1_7;
} else if (objId == OBJ_80_149) { } else if (objId == OBJ_SCENERY_149) {
colId = COL1_5; colId = COL1_5;
} else if (objId == OBJ_80_150) { } else if (objId == OBJ_SCENERY_150) {
colId = COL1_6; colId = COL1_6;
} else if (objId == OBJ_BOSS_313) { } else if (objId == OBJ_BOSS_313) {
colId = COL1_8; colId = COL1_8;
@ -769,21 +770,21 @@ bool Object_CheckPolyCollision(Vec3f* pos, Vec3f* vel, ObjectId objId, Object* o
} }
} else { } else {
colId = COL2_0; colId = COL2_0;
if (objId == OBJ_80_2) { if (objId == OBJ_SCENERY_2) {
colId = COL2_2; colId = COL2_2;
} }
if (objId == OBJ_80_3) { if (objId == OBJ_SCENERY_3) {
colId = COL2_3; colId = COL2_3;
} }
if (objId == OBJ_80_140) { if (objId == OBJ_SCENERY_140) {
colId = COL2_4; colId = COL2_4;
} }
if (objId == OBJ_80_141) { if (objId == OBJ_SCENERY_141) {
colId = COL2_6; colId = COL2_6;
} }
if (objId == OBJ_80_117) { if (objId == OBJ_SCENERY_117) {
colId = COL2_14; colId = COL2_14;
} else if ((objId == OBJ_80_4) || (objId == OBJ_80_5)) { } else if ((objId == OBJ_SCENERY_4) || (objId == OBJ_SCENERY_5)) {
colId = COL2_1; colId = COL2_1;
} }
if (func_col2_800A3690(&relPos, &objPos, colId, &sp44)) { if (func_col2_800A3690(&relPos, &objPos, colId, &sp44)) {
@ -795,8 +796,8 @@ bool Object_CheckPolyCollision(Vec3f* pos, Vec3f* vel, ObjectId objId, Object* o
} }
s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) { s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
Object_58* obj58; Scenery360* scenery360;
Object_80* obj80; Scenery* scenery;
Sprite* sprite; Sprite* sprite;
Boss* boss; Boss* boss;
Actor* actor; Actor* actor;
@ -804,34 +805,37 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
s32 i; s32 i;
if ((gLevelMode == LEVELMODE_ALL_RANGE) && (gCurrentLevel != LEVEL_KATINA)) { if ((gLevelMode == LEVELMODE_ALL_RANGE) && (gCurrentLevel != LEVEL_KATINA)) {
obj58 = gObjects58; scenery360 = gScenery360;
for (i = 0; i < 200; i++, obj58++) { for (i = 0; i < 200; i++, scenery360++) {
if (obj58->obj.status == OBJ_ACTIVE) { if (scenery360->obj.status == OBJ_ACTIVE) {
if ((obj58->obj.id == OBJ_80_1) || (obj58->obj.id == OBJ_80_3) || (obj58->obj.id == OBJ_80_117) || if ((scenery360->obj.id == OBJ_SCENERY_1) || (scenery360->obj.id == OBJ_SCENERY_3) ||
(obj58->obj.id == OBJ_80_141) || (obj58->obj.id == OBJ_80_150) || (obj58->obj.id == OBJ_80_149) || (scenery360->obj.id == OBJ_SCENERY_117) || (scenery360->obj.id == OBJ_SCENERY_141) ||
(obj58->obj.id == OBJ_80_148) || (obj58->obj.id == OBJ_80_140)) { (scenery360->obj.id == OBJ_SCENERY_150) || (scenery360->obj.id == OBJ_SCENERY_149) ||
if (Object_CheckPolyCollision(pos, vel, obj58->obj.id, &obj58->obj)) { (scenery360->obj.id == OBJ_SCENERY_148) || (scenery360->obj.id == OBJ_SCENERY_140)) {
if (Object_CheckPolyCollision(pos, vel, scenery360->obj.id, &scenery360->obj)) {
return 999; return 999;
} }
} else if ((fabsf(pos->x - obj58->obj.pos.x) < 2000.0f) && } else if ((fabsf(pos->x - scenery360->obj.pos.x) < 2000.0f) &&
(fabsf(pos->z - obj58->obj.pos.z) < 2000.0f)) { (fabsf(pos->z - scenery360->obj.pos.z) < 2000.0f)) {
if (Object_CheckHitboxCollision(pos, obj58->info.hitbox, &obj58->obj, 0.0f, 0.0f, 0.0f)) { if (Object_CheckHitboxCollision(pos, scenery360->info.hitbox, &scenery360->obj, 0.0f, 0.0f, 0.0f)) {
return 2; return 2;
} }
} }
} }
} }
} }
obj80 = gObjects80; scenery = gScenery;
for (i = 0; (i < ARRAY_COUNT(gObjects80)) && (gLevelMode == LEVELMODE_ON_RAILS); i++, obj80++) { for (i = 0; (i < ARRAY_COUNT(gScenery)) && (gLevelMode == LEVELMODE_ON_RAILS); i++, scenery++) {
if (obj80->obj.status == OBJ_ACTIVE) { if (scenery->obj.status == OBJ_ACTIVE) {
if ((obj80->obj.id == OBJ_80_1) || (obj80->obj.id == OBJ_80_4) || (obj80->obj.id == OBJ_80_5) || if ((scenery->obj.id == OBJ_SCENERY_1) || (scenery->obj.id == OBJ_SCENERY_4) ||
(obj80->obj.id == OBJ_80_2) || (obj80->obj.id == OBJ_80_39) || (obj80->obj.id == OBJ_80_3)) { (scenery->obj.id == OBJ_SCENERY_5) || (scenery->obj.id == OBJ_SCENERY_2) ||
if (Object_CheckPolyCollision(pos, vel, obj80->obj.id, &obj80->obj)) { (scenery->obj.id == OBJ_SCENERY_39) || (scenery->obj.id == OBJ_SCENERY_3)) {
if (Object_CheckPolyCollision(pos, vel, scenery->obj.id, &scenery->obj)) {
return 2; return 2;
} }
} else if ((fabsf(pos->x - obj80->obj.pos.x) < 2000.0f) && (fabsf(pos->z - obj80->obj.pos.z) < 2000.0f)) { } else if ((fabsf(pos->x - scenery->obj.pos.x) < 2000.0f) &&
if (Object_CheckHitboxCollision(pos, obj80->info.hitbox, &obj80->obj, 0.0f, 0.0f, 0.0f)) { (fabsf(pos->z - scenery->obj.pos.z) < 2000.0f)) {
if (Object_CheckHitboxCollision(pos, scenery->info.hitbox, &scenery->obj, 0.0f, 0.0f, 0.0f)) {
return i + 10; return i + 10;
} }
} }
@ -901,9 +905,9 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
actor->unk_0D0 = 1; actor->unk_0D0 = 1;
actor->damage = 10; actor->damage = 10;
actor->unk_0D2 = -1; actor->unk_0D2 = -1;
actor->unk_0D8.x = pos->x; actor->hitPos.x = pos->x;
actor->unk_0D8.y = pos->y; actor->hitPos.y = pos->y;
actor->unk_0D8.z = pos->z; actor->hitPos.z = pos->z;
return 2; return 2;
} }
} else if ((mode != 2) && (mode != 3)) { } else if ((mode != 2) && (mode != 3)) {
@ -916,9 +920,9 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
((actor->aiType < AI360_10) || (actor->aiType >= AI360_GREAT_FOX))))) { ((actor->aiType < AI360_10) || (actor->aiType >= AI360_GREAT_FOX))))) {
actor->health = 0; actor->health = 0;
} }
actor->unk_0D8.x = pos->x; actor->hitPos.x = pos->x;
actor->unk_0D8.y = pos->y; actor->hitPos.y = pos->y;
actor->unk_0D8.z = pos->z; actor->hitPos.z = pos->z;
return 1; return 1;
} }
} }
@ -928,7 +932,7 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
return 0; return 0;
} }
void func_enmy_80063CAC(Object_80* obj80) { void func_enmy_80063CAC(Scenery* scenery) {
s32 i; s32 i;
for (i = 0; i < ARRAY_COUNT(gActors); i++) { for (i = 0; i < ARRAY_COUNT(gActors); i++) {
@ -936,9 +940,9 @@ void func_enmy_80063CAC(Object_80* obj80) {
Actor_Initialize(&gActors[i]); Actor_Initialize(&gActors[i]);
gActors[i].obj.status = OBJ_INIT; gActors[i].obj.status = OBJ_INIT;
gActors[i].obj.id = OBJ_ACTOR_193; gActors[i].obj.id = OBJ_ACTOR_193;
gActors[i].obj.pos.x = obj80->obj.pos.x; gActors[i].obj.pos.x = scenery->obj.pos.x;
gActors[i].obj.pos.y = obj80->obj.pos.y; gActors[i].obj.pos.y = scenery->obj.pos.y;
gActors[i].obj.pos.z = obj80->obj.pos.z; gActors[i].obj.pos.z = scenery->obj.pos.z;
gActors[i].obj.rot.y = RAND_FLOAT(360.0f); gActors[i].obj.rot.y = RAND_FLOAT(360.0f);
Object_SetInfo(&gActors[i].info, gActors[i].obj.id); Object_SetInfo(&gActors[i].info, gActors[i].obj.id);
break; break;
@ -946,23 +950,24 @@ void func_enmy_80063CAC(Object_80* obj80) {
} }
} }
void func_enmy_80063D58(Object_80* obj80) { void func_enmy_80063D58(Scenery* scenery) {
s32 i; s32 i;
obj80->obj.pos.y = gGroundLevel; scenery->obj.pos.y = gGroundHeight;
for (i = 0; i < ARRAY_COUNT(gSprites); i++) { for (i = 0; i < ARRAY_COUNT(gSprites); i++) {
if (gSprites[i].obj.status == OBJ_FREE) { if (gSprites[i].obj.status == OBJ_FREE) {
Sprite_Initialize(&gSprites[i]); Sprite_Initialize(&gSprites[i]);
gSprites[i].obj.status = OBJ_INIT; gSprites[i].obj.status = OBJ_INIT;
gSprites[i].obj.id = OBJ_SPRITE_FOG_SHADOW; gSprites[i].obj.id = OBJ_SPRITE_FOG_SHADOW;
gSprites[i].unk_45 = obj80->obj.id; gSprites[i].unk_45 = scenery->obj.id;
gSprites[i].obj.pos.x = obj80->obj.pos.x; gSprites[i].obj.pos.x = scenery->obj.pos.x;
gSprites[i].obj.pos.y = 5.0f; gSprites[i].obj.pos.y = 5.0f;
gSprites[i].obj.pos.z = obj80->obj.pos.z; gSprites[i].obj.pos.z = scenery->obj.pos.z;
if ((obj80->obj.id == OBJ_80_0) || (obj80->obj.id == OBJ_80_6) || (obj80->obj.id == OBJ_80_7) || if ((scenery->obj.id == OBJ_SCENERY_0) || (scenery->obj.id == OBJ_SCENERY_6) ||
(obj80->obj.id == OBJ_80_56) || (obj80->obj.id == OBJ_80_20) || (obj80->obj.id == OBJ_80_21) || (scenery->obj.id == OBJ_SCENERY_7) || (scenery->obj.id == OBJ_SCENERY_56) ||
(obj80->obj.id == OBJ_80_22)) { (scenery->obj.id == OBJ_SCENERY_20) || (scenery->obj.id == OBJ_SCENERY_21) ||
gSprites[i].obj.rot.y = obj80->obj.rot.y; (scenery->obj.id == OBJ_SCENERY_22)) {
gSprites[i].obj.rot.y = scenery->obj.rot.y;
} else { } else {
gSprites[i].obj.rot.y = 44.9f; gSprites[i].obj.rot.y = 44.9f;
} }
@ -972,7 +977,7 @@ void func_enmy_80063D58(Object_80* obj80) {
} }
} }
void func_enmy_80063E5C(Object_80* obj80, f32* hitboxData) { void func_enmy_80063E5C(Scenery* scenery, f32* hitboxData) {
s32 i; s32 i;
Item* item; Item* item;
@ -981,10 +986,10 @@ void func_enmy_80063E5C(Object_80* obj80, f32* hitboxData) {
Item_Initialize(&gItems[i]); Item_Initialize(&gItems[i]);
item->obj.status = OBJ_INIT; item->obj.status = OBJ_INIT;
item->obj.id = OBJ_ITEM_RING_CHECK; item->obj.id = OBJ_ITEM_RING_CHECK;
item->obj.pos.x = obj80->obj.pos.x; item->obj.pos.x = scenery->obj.pos.x;
item->obj.pos.y = obj80->obj.pos.y; item->obj.pos.y = scenery->obj.pos.y;
item->obj.pos.z = obj80->obj.pos.z; item->obj.pos.z = scenery->obj.pos.z;
item->obj.rot.y = obj80->obj.rot.y; item->obj.rot.y = scenery->obj.rot.y;
Object_SetInfo(&item->info, item->obj.id); Object_SetInfo(&item->info, item->obj.id);
item->info.hitbox = SEGMENTED_TO_VIRTUAL(hitboxData); item->info.hitbox = SEGMENTED_TO_VIRTUAL(hitboxData);
break; break;
@ -1018,8 +1023,8 @@ void Object_Init(s32 index, ObjectId objId) {
case OBJ_ACTOR_234: case OBJ_ACTOR_234:
AUDIO_PLAY_SFX(0x11030010, gActors[index].sfxSource, 0); AUDIO_PLAY_SFX(0x11030010, gActors[index].sfxSource, 0);
break; break;
case OBJ_80_54: case OBJ_SCENERY_54:
AUDIO_PLAY_SFX(0x11000000, gObjects80[index].sfxSource, 0); AUDIO_PLAY_SFX(0x11000000, gScenery[index].sfxSource, 0);
break; break;
case OBJ_ACTOR_TEAM_BOSS: case OBJ_ACTOR_TEAM_BOSS:
ActorTeamBoss_Init(&gActors[index]); ActorTeamBoss_Init(&gActors[index]);
@ -1041,35 +1046,35 @@ void Object_Init(s32 index, ObjectId objId) {
gEffects[index].obj.status = OBJ_FREE; gEffects[index].obj.status = OBJ_FREE;
} }
break; break;
case OBJ_80_30: case OBJ_SCENERY_30:
func_enmy_80063E5C(&gObjects80[index], D_TI_6006940); func_enmy_80063E5C(&gScenery[index], D_TI_6006940);
break; break;
case OBJ_80_31: case OBJ_SCENERY_31:
func_enmy_80063E5C(&gObjects80[index], D_TI_600695C); func_enmy_80063E5C(&gScenery[index], D_TI_600695C);
break; break;
case OBJ_80_32: case OBJ_SCENERY_32:
func_enmy_80063E5C(&gObjects80[index], D_TI_6006978); func_enmy_80063E5C(&gScenery[index], D_TI_6006978);
break; break;
case OBJ_80_33: case OBJ_SCENERY_33:
func_enmy_80063E5C(&gObjects80[index], D_TI_6006994); func_enmy_80063E5C(&gScenery[index], D_TI_6006994);
break; break;
case OBJ_80_34: case OBJ_SCENERY_34:
func_enmy_80063E5C(&gObjects80[index], D_TI_60069B0); func_enmy_80063E5C(&gScenery[index], D_TI_60069B0);
break; break;
case OBJ_80_35: case OBJ_SCENERY_35:
func_enmy_80063E5C(&gObjects80[index], D_TI_60069CC); func_enmy_80063E5C(&gScenery[index], D_TI_60069CC);
break; break;
case OBJ_80_36: case OBJ_SCENERY_36:
func_enmy_80063E5C(&gObjects80[index], D_TI_60069E8); func_enmy_80063E5C(&gScenery[index], D_TI_60069E8);
break; break;
case OBJ_80_37: case OBJ_SCENERY_37:
func_enmy_80063E5C(&gObjects80[index], D_TI_6006A04); func_enmy_80063E5C(&gScenery[index], D_TI_6006A04);
break; break;
case OBJ_80_38: case OBJ_SCENERY_38:
func_enmy_80063E5C(&gObjects80[index], D_TI_6006A20); func_enmy_80063E5C(&gScenery[index], D_TI_6006A20);
break; break;
case OBJ_80_23: case OBJ_SCENERY_23:
func_enmy_80063CAC(&gObjects80[index]); func_enmy_80063CAC(&gScenery[index]);
break; break;
case OBJ_ITEM_CHECKPOINT: case OBJ_ITEM_CHECKPOINT:
if (D_ctx_80177CA0 != 0) { if (D_ctx_80177CA0 != 0) {
@ -1098,16 +1103,16 @@ void Object_Init(s32 index, ObjectId objId) {
gItems[index].obj.status = OBJ_FREE; gItems[index].obj.status = OBJ_FREE;
} }
break; break;
case OBJ_80_0: case OBJ_SCENERY_0:
func_enmy_80063E5C(&gObjects80[index], gItemRingCheckHitbox); func_enmy_80063E5C(&gScenery[index], gItemRingCheckHitbox);
/* fallthrough */ /* fallthrough */
case OBJ_80_6: case OBJ_SCENERY_6:
case OBJ_80_7: case OBJ_SCENERY_7:
case OBJ_80_20: case OBJ_SCENERY_20:
case OBJ_80_21: case OBJ_SCENERY_21:
case OBJ_80_22: case OBJ_SCENERY_22:
case OBJ_80_56: case OBJ_SCENERY_56:
func_enmy_80063D58(&gObjects80[index]); func_enmy_80063D58(&gScenery[index]);
break; break;
case OBJ_ACTOR_187: case OBJ_ACTOR_187:
gActors[index].fwork[0] = gActors[index].obj.pos.x; gActors[index].fwork[0] = gActors[index].obj.pos.x;
@ -1217,8 +1222,8 @@ void Object_Init(s32 index, ObjectId objId) {
case OBJ_ACTOR_218: case OBJ_ACTOR_218:
Macbeth_801A6134(&gActors[index]); Macbeth_801A6134(&gActors[index]);
break; break;
case OBJ_80_65: case OBJ_SCENERY_65:
Macbeth_801A65E0(&gObjects80[index]); Macbeth_801A65E0(&gScenery[index]);
break; break;
case OBJ_ACTOR_177: case OBJ_ACTOR_177:
case OBJ_ACTOR_178: case OBJ_ACTOR_178:
@ -1309,8 +1314,8 @@ void Object_Init(s32 index, ObjectId objId) {
case OBJ_ACTOR_260: case OBJ_ACTOR_260:
Aquas_801B7AF0(&gActors[index]); Aquas_801B7AF0(&gActors[index]);
break; break;
case OBJ_80_57: case OBJ_SCENERY_57:
Titania_8018F0D8(&gObjects80[index]); Titania_8018F0D8(&gScenery[index]);
break; break;
case OBJ_BOSS_319: case OBJ_BOSS_319:
Venom1_Boss319_Init(&gBosses[index]); Venom1_Boss319_Init(&gBosses[index]);
@ -1337,17 +1342,17 @@ void Object_Init(s32 index, ObjectId objId) {
} }
} }
void func_enmy_800652CC(Object_80* obj80) { void func_enmy_800652CC(Scenery* scenery) {
f32 sp2C; f32 sp2C;
f32 sp28; f32 sp28;
f32 sp24; f32 sp24;
if ((D_ctx_801784AC == 4) && (obj80->state == 0)) { if ((D_ctx_801784AC == 4) && (scenery->state == 0)) {
Ground_801B6E20(obj80->obj.pos.x, obj80->obj.pos.z + D_ctx_80177D20, &sp2C, &sp24, &sp28); Ground_801B6E20(scenery->obj.pos.x, scenery->obj.pos.z + D_ctx_80177D20, &sp2C, &sp24, &sp28);
obj80->obj.pos.y = sp24 + 3.0f; scenery->obj.pos.y = sp24 + 3.0f;
obj80->obj.rot.x = RAD_TO_DEG(sp2C); scenery->obj.rot.x = RAD_TO_DEG(sp2C);
obj80->obj.rot.z = RAD_TO_DEG(sp28); scenery->obj.rot.z = RAD_TO_DEG(sp28);
obj80->state++; scenery->state++;
} }
} }
@ -1580,7 +1585,7 @@ void func_enmy_800656D4(Actor* actor) {
sp8C.y = actor->vel.y; sp8C.y = actor->vel.y;
sp8C.z = actor->vel.z; sp8C.z = actor->vel.z;
if ((Object_CheckCollision(actor->index, &actor->obj.pos, &sp8C, 1) != 0) || (actor->unk_0D0 != 0) || if ((Object_CheckCollision(actor->index, &actor->obj.pos, &sp8C, 1) != 0) || (actor->unk_0D0 != 0) ||
(actor->obj.pos.y < (gGroundLevel + 10.0f)) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE)) { (actor->obj.pos.y < (gGroundHeight + 10.0f)) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE)) {
func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 3.0f); func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 3.0f);
Object_Kill(&actor->obj, actor->sfxSource); Object_Kill(&actor->obj, actor->sfxSource);
if (actor->unk_0D0 != 0) { if (actor->unk_0D0 != 0) {
@ -1705,8 +1710,8 @@ void Actor_Despawn(Actor* actor) {
void func_enmy_8006654C(Actor* actor) { void func_enmy_8006654C(Actor* actor) {
actor->gravity = 0.4f; actor->gravity = 0.4f;
if (actor->obj.pos.y <= gGroundLevel + 130.0f) { if (actor->obj.pos.y <= gGroundHeight + 130.0f) {
actor->obj.pos.y = gGroundLevel + 130.0f; actor->obj.pos.y = gGroundHeight + 130.0f;
actor->vel.y = 0.0f; actor->vel.y = 0.0f;
} }
actor->vel.x = SIN_DEG(actor->obj.rot.y) * actor->fwork[0]; actor->vel.x = SIN_DEG(actor->obj.rot.y) * actor->fwork[0];
@ -1807,62 +1812,63 @@ void func_enmy_800669A0(Actor* actor) {
void func_enmy_80066A80(Actor* actor) { void func_enmy_80066A80(Actor* actor) {
} }
void func_enmy_80066A8C(Object_80* obj80) { void func_enmy_80066A8C(Scenery* scenery) {
Vec3f sp64; Vec3f sp64;
Vec3f sp58; Vec3f sp58;
f32 yf; f32 yf;
sp64.z = 0.0f; sp64.z = 0.0f;
sp64.x = -120.0f; sp64.x = -120.0f;
if (obj80->obj.rot.y > 90.0f) { if (scenery->obj.rot.y > 90.0f) {
sp64.x = 120.0f; sp64.x = 120.0f;
} }
for (yf = 0.0f; yf < 680.0f; yf += 100.0f) { for (yf = 0.0f; yf < 680.0f; yf += 100.0f) {
Matrix_RotateY(gCalcMatrix, obj80->obj.rot.y * M_DTOR, MTXF_NEW); Matrix_RotateY(gCalcMatrix, scenery->obj.rot.y * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, obj80->obj.rot.x * M_DTOR, MTXF_APPLY); Matrix_RotateX(gCalcMatrix, scenery->obj.rot.x * M_DTOR, MTXF_APPLY);
sp64.y = yf; sp64.y = yf;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp64, &sp58); Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp64, &sp58);
func_effect_8007D0E0(obj80->obj.pos.x + sp58.x, obj80->obj.pos.y + sp58.y, obj80->obj.pos.z + sp58.z, 4.0f); func_effect_8007D0E0(scenery->obj.pos.x + sp58.x, scenery->obj.pos.y + sp58.y, scenery->obj.pos.z + sp58.z,
4.0f);
} }
} }
void func_enmy_80066C00(Object_80* obj80) { void func_enmy_80066C00(Scenery* scenery) {
Vec3f sp64; Vec3f sp64;
Vec3f sp58; Vec3f sp58;
f32 zf; f32 zf;
sp64.y = 30.0f; sp64.y = 30.0f;
sp64.x = -100.0f; sp64.x = -100.0f;
if (obj80->obj.rot.y > 90.0f) { if (scenery->obj.rot.y > 90.0f) {
sp64.x = 100.0f; sp64.x = 100.0f;
} }
Matrix_RotateY(gCalcMatrix, obj80->obj.rot.y * M_DTOR, MTXF_NEW); Matrix_RotateY(gCalcMatrix, scenery->obj.rot.y * M_DTOR, MTXF_NEW);
for (zf = -180.0f; zf <= 0.0f; zf += 30.0f) { for (zf = -180.0f; zf <= 0.0f; zf += 30.0f) {
sp64.z = zf; sp64.z = zf;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp64, &sp58); Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp64, &sp58);
func_effect_8007D0E0(obj80->obj.pos.x + sp58.x, obj80->obj.pos.y + sp58.y, obj80->obj.pos.z + sp58.z, func_effect_8007D0E0(scenery->obj.pos.x + sp58.x, scenery->obj.pos.y + sp58.y, scenery->obj.pos.z + sp58.z,
RAND_FLOAT(1.0f) + 2.0f); RAND_FLOAT(1.0f) + 2.0f);
} }
} }
void func_enmy_80066D5C(Object_80* obj80) { void func_enmy_80066D5C(Scenery* scenery) {
switch (obj80->state) { switch (scenery->state) {
case 1: case 1:
func_enmy_80066C00(obj80); func_enmy_80066C00(scenery);
obj80->state++; scenery->state++;
AUDIO_PLAY_SFX(0x2900300F, obj80->sfxSource, 4); AUDIO_PLAY_SFX(0x2900300F, scenery->sfxSource, 4);
break; break;
case 2: case 2:
obj80->vel.x += 0.05f; scenery->vel.x += 0.05f;
obj80->obj.rot.x += obj80->vel.x; scenery->obj.rot.x += scenery->vel.x;
if (obj80->obj.rot.x >= 90.0f) { if (scenery->obj.rot.x >= 90.0f) {
obj80->obj.rot.x = 90.0f; scenery->obj.rot.x = 90.0f;
obj80->unk_44 = 40; scenery->unk_44 = 40;
func_enmy_80066A8C(obj80); func_enmy_80066A8C(scenery);
obj80->state = 0; scenery->state = 0;
gCameraShake = 25; gCameraShake = 25;
AUDIO_PLAY_SFX(0x19130003, obj80->sfxSource, 4); AUDIO_PLAY_SFX(0x19130003, scenery->sfxSource, 4);
} }
break; break;
case 0: case 0:
@ -1870,17 +1876,17 @@ void func_enmy_80066D5C(Object_80* obj80) {
} }
} }
void func_enmy_80066E80(Object_80* obj80) { void func_enmy_80066E80(Scenery* scenery) {
} }
void Sprite167_Update(Sprite167* this) { void Sprite167_Update(Sprite167* this) {
this->obj.rot.y += 0.2f; this->obj.rot.y += 0.2f;
} }
void func_enmy_80066EA8(Object_80* obj80) { void func_enmy_80066EA8(Scenery* scenery) {
obj80->obj.rot.y = 0.0f; scenery->obj.rot.y = 0.0f;
if (gPlayer[0].cam.eye.x < obj80->obj.pos.x) { if (gPlayer[0].cam.eye.x < scenery->obj.pos.x) {
obj80->obj.rot.y = 271.0f; scenery->obj.rot.y = 271.0f;
} }
} }
@ -1909,8 +1915,8 @@ void func_enmy_80066EF0(Item* item) {
Math_SmoothStepToF(&item->obj.pos.y, 650.0f, 0.1f, 10.0f, 0.01f); Math_SmoothStepToF(&item->obj.pos.y, 650.0f, 0.1f, 10.0f, 0.01f);
} }
if (gLevelType == LEVELTYPE_PLANET) { if (gLevelType == LEVELTYPE_PLANET) {
if (item->obj.pos.y < gGroundLevel + 70.0f) { if (item->obj.pos.y < gGroundHeight + 70.0f) {
Math_SmoothStepToF(&item->obj.pos.y, gGroundLevel + 70.0f, 0.1f, 5.0f, 0.01f); Math_SmoothStepToF(&item->obj.pos.y, gGroundHeight + 70.0f, 0.1f, 5.0f, 0.01f);
} }
if ((gCurrentLevel == LEVEL_AQUAS) && (gBossActive != 0)) { if ((gCurrentLevel == LEVEL_AQUAS) && (gBossActive != 0)) {
item->obj.pos.z += 20.0f; item->obj.pos.z += 20.0f;
@ -2347,7 +2353,7 @@ void ItemPathChange_Update(Item* this) {
gLastPathChange = this->obj.id; gLastPathChange = this->obj.id;
if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_ACTIVE) { if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_ACTIVE) {
Object_Kill(&this->obj, this->sfxSource); Object_Kill(&this->obj, this->sfxSource);
} else if (((gCurrentLevel == LEVEL_METEO) || (gCurrentLevel == LEVEL_SECTOR_X)) && (gLevelStage == 1)) { } else if (((gCurrentLevel == LEVEL_METEO) || (gCurrentLevel == LEVEL_SECTOR_X)) && (gLevelPhase == 1)) {
gPlayer[0].state_1C8 = PLAYERSTATE_1C8_LEVEL_COMPLETE; gPlayer[0].state_1C8 = PLAYERSTATE_1C8_LEVEL_COMPLETE;
gPlayer[0].unk_1D0 = 0; gPlayer[0].unk_1D0 = 0;
Object_Kill(&this->obj, this->sfxSource); Object_Kill(&this->obj, this->sfxSource);
@ -2540,17 +2546,17 @@ void Boss_Move(Boss* boss) {
} }
} }
void Object80_Move(Object_80* obj80) { void Scenery_Move(Scenery* scenery) {
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) { if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) {
obj80->obj.pos.z += obj80->unk_60; scenery->obj.pos.z += scenery->unk_60;
if (obj80->info.unk_10 < obj80->obj.pos.z) { if (scenery->info.unk_10 < scenery->obj.pos.z) {
Object_Kill(&obj80->obj, obj80->sfxSource); Object_Kill(&scenery->obj, scenery->sfxSource);
} }
} else if ((gLevelMode == LEVELMODE_ON_RAILS) && (gBossActive != 2)) { } else if ((gLevelMode == LEVELMODE_ON_RAILS) && (gBossActive != 2)) {
f32 temp_fv0 = fabsf(obj80->obj.pos.x - gPlayer[0].cam.eye.x); f32 temp_fv0 = fabsf(scenery->obj.pos.x - gPlayer[0].cam.eye.x);
f32 var_fa0 = 500.0f; f32 var_fa0 = 500.0f;
if ((obj80->obj.id == OBJ_80_6) || (obj80->obj.id == OBJ_80_7)) { if ((scenery->obj.id == OBJ_SCENERY_6) || (scenery->obj.id == OBJ_SCENERY_7)) {
var_fa0 = 1000.0f; var_fa0 = 1000.0f;
} }
temp_fv0 = ((temp_fv0 - var_fa0) < 0.0f) ? 0.0f : (temp_fv0 - var_fa0) * 1.7f; temp_fv0 = ((temp_fv0 - var_fa0) < 0.0f) ? 0.0f : (temp_fv0 - var_fa0) * 1.7f;
@ -2558,8 +2564,8 @@ void Object80_Move(Object_80* obj80) {
temp_fv0 = 0.0f; temp_fv0 = 0.0f;
} }
temp_fv0 -= gPlayer[0].cam.eye.z; temp_fv0 -= gPlayer[0].cam.eye.z;
if ((obj80->info.unk_10 - temp_fv0) < (obj80->obj.pos.z + D_ctx_80177D20)) { if ((scenery->info.unk_10 - temp_fv0) < (scenery->obj.pos.z + D_ctx_80177D20)) {
Object_Kill(&obj80->obj, obj80->sfxSource); Object_Kill(&scenery->obj, scenery->sfxSource);
} }
} }
} }
@ -2570,8 +2576,8 @@ void Sprite_Move(Sprite* sprite) {
f32 var_fa0 = 500.0f; f32 var_fa0 = 500.0f;
if (((sprite->obj.id == OBJ_SPRITE_FOG_SHADOW) && if (((sprite->obj.id == OBJ_SPRITE_FOG_SHADOW) &&
((sprite->unk_45 == OBJ_80_6) || (sprite->unk_45 == OBJ_80_7))) || ((sprite->unk_45 == OBJ_SCENERY_6) || (sprite->unk_45 == OBJ_SCENERY_7))) ||
(sprite->obj.id == OBJ_80_8)) { (sprite->obj.id == OBJ_SCENERY_8)) {
var_fa0 = 1000.0f; var_fa0 = 1000.0f;
} }
temp_fv0 = ((temp_fv0 - var_fa0) < 0.0f) ? 0.0f * 1.7f : (temp_fv0 - var_fa0) * 1.7f; temp_fv0 = ((temp_fv0 - var_fa0) < 0.0f) ? 0.0f * 1.7f : (temp_fv0 - var_fa0) * 1.7f;
@ -2629,16 +2635,16 @@ void Actor_Update(Actor* this) {
} }
if (gVersusMode) { if (gVersusMode) {
for (i = 0; i < gCamCount; i++) { for (i = 0; i < gCamCount; i++) {
if (this->timer_0CA[i] != 0) { if (this->lockOnTimers[i] != 0) {
if (!(gControllerHold[i].button & A_BUTTON)) { if (!(gControllerHold[i].button & A_BUTTON)) {
this->timer_0CA[i]--; this->lockOnTimers[i]--;
} }
gChargeTimers[i] = 0; gChargeTimers[i] = 0;
} }
} }
} else if (this->timer_0CA[0] != 0) { } else if (this->lockOnTimers[0] != 0) {
if (!(gControllerHold[gMainController].button & A_BUTTON)) { if (!(gControllerHold[gMainController].button & A_BUTTON)) {
this->timer_0CA[0]--; this->lockOnTimers[0]--;
} }
gChargeTimers[0] = 0; gChargeTimers[0] = 0;
} }
@ -2711,7 +2717,7 @@ void Boss_Update(Boss* this) {
} }
} }
void Object_80_Update(Object_80* this) { void Scenery_Update(Scenery* this) {
if (this->timer_4C != 0) { if (this->timer_4C != 0) {
this->timer_4C--; this->timer_4C--;
} }
@ -2719,10 +2725,10 @@ void Object_80_Update(Object_80* this) {
case OBJ_INIT: case OBJ_INIT:
this->obj.status = OBJ_ACTIVE; this->obj.status = OBJ_ACTIVE;
Object_Init(this->index, this->obj.id); Object_Init(this->index, this->obj.id);
Object80_Move(this); Scenery_Move(this);
break; break;
case OBJ_ACTIVE: case OBJ_ACTIVE:
Object80_Move(this); Scenery_Move(this);
if (this->info.action != NULL) { if (this->info.action != NULL) {
this->info.action(&this->obj); this->info.action(&this->obj);
} }
@ -2856,11 +2862,11 @@ void TexturedLine_UpdateAll(void) {
void Object_Update(void) { void Object_Update(void) {
s32 i; s32 i;
s32 pad; s32 pad;
Object_58* obj58; Scenery360* scenery360;
Actor* actor; Actor* actor;
Boss* boss; Boss* boss;
Sprite* sprite; Sprite* sprite;
Object_80* obj80; Scenery* scenery;
Item* item; Item* item;
Effect* effect; Effect* effect;
@ -2875,19 +2881,19 @@ void Object_Update(void) {
if ((gLoadLevelObjects != 0) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO)) { if ((gLoadLevelObjects != 0) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO)) {
Object_LoadFromInit(); Object_LoadFromInit();
} }
for (i = 0, obj80 = gObjects80; i < ARRAY_COUNT(gObjects80); i++, obj80++) { for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) {
if (obj80->obj.status != OBJ_FREE) { if (scenery->obj.status != OBJ_FREE) {
obj80->index = i; scenery->index = i;
Object_80_Update(obj80); Scenery_Update(scenery);
} }
} }
} else if (gVersusMode) { } else if (gVersusMode) {
for (i = 0, obj58 = gObjects58; i < 200; i++, obj58++) { for (i = 0, scenery360 = gScenery360; i < 200; i++, scenery360++) {
if ((obj58->obj.status != OBJ_FREE) && (obj58->obj.id == OBJ_80_146)) { if ((scenery360->obj.status != OBJ_FREE) && (scenery360->obj.id == OBJ_SCENERY_146)) {
if ((i % 2) != 0) { if ((i % 2) != 0) {
obj58->obj.rot.y += 0.5f; scenery360->obj.rot.y += 0.5f;
} else { } else {
obj58->obj.rot.y -= 0.5f; scenery360->obj.rot.y -= 0.5f;
} }
} }
} }

View File

@ -103,7 +103,7 @@ void Obj54_8006AA3C(f32 xPos, f32 yPos, f32 zPos) {
} }
} }
void Obj54_Update(Object80_54* this) { void Obj54_Update(Scenery_54* this) {
Vec3f sp24; Vec3f sp24;
Vec3f sp18; Vec3f sp18;
@ -307,11 +307,11 @@ void Actor194_8006B46C(Actor194* this, f32 xTrans, f32 yTrans, f32 zTrans, f32 x
if (arg7 != 1) { if (arg7 != 1) {
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
if ((arg7 == 0) && (this->timer_0CA[0] != 0)) { if ((arg7 == 0) && (this->lockOnTimers[0] != 0)) {
sp34.y += this->info.unk_1C; sp34.y += this->info.unk_1C;
Matrix_MultVec3f(gGfxMatrix, &sp34, D_display_80161578); Matrix_MultVec3f(gGfxMatrix, &sp34, D_display_80161578);
if (D_display_80161578->z > -500.0f) { if (D_display_80161578->z > -500.0f) {
this->timer_0CA[0] = 0; this->lockOnTimers[0] = 0;
} }
} }
} else { } else {
@ -341,7 +341,7 @@ void Actor194_Draw(Actor194* this) {
} }
} }
void Obj42_Update(Object80_42* this) { void Obj42_Update(Scenery_42* this) {
this->obj.pos.x += this->vel.x; this->obj.pos.x += this->vel.x;
this->obj.pos.y += this->vel.y; this->obj.pos.y += this->vel.y;
this->obj.pos.z += this->vel.z; this->obj.pos.z += this->vel.z;
@ -350,8 +350,8 @@ void Obj42_Update(Object80_42* this) {
case 0: case 0:
this->vel.y -= 1.0f; this->vel.y -= 1.0f;
if (this->obj.pos.y < gGroundLevel + 40.0f) { if (this->obj.pos.y < gGroundHeight + 40.0f) {
this->obj.pos.y = gGroundLevel + 40.0f; this->obj.pos.y = gGroundHeight + 40.0f;
AUDIO_PLAY_SFX(0x19130003, this->sfxSource, 0); AUDIO_PLAY_SFX(0x19130003, this->sfxSource, 0);
this->state = 2; this->state = 2;
this->vel.y = 0.0f; this->vel.y = 0.0f;
@ -451,8 +451,8 @@ void Actor196_Update(Actor196* this) {
if (this->vel.y < 12.0f) { if (this->vel.y < 12.0f) {
Math_SmoothStepToF(&this->obj.rot.x, 180.0f, 0.1f, 7.0f, 0.01f); Math_SmoothStepToF(&this->obj.rot.x, 180.0f, 0.1f, 7.0f, 0.01f);
} }
if (this->obj.pos.y < (gGroundLevel + 10.0f)) { if (this->obj.pos.y < (gGroundHeight + 10.0f)) {
this->obj.pos.y = gGroundLevel; this->obj.pos.y = gGroundHeight;
this->state = 4; this->state = 4;
this->unk_0B6 = 0; this->unk_0B6 = 0;
this->vel.y = 0.0f; this->vel.y = 0.0f;
@ -469,7 +469,7 @@ void Actor196_Update(Actor196* this) {
break; break;
} }
if ((this->obj.pos.y <= (gGroundLevel + 10.0f)) && ((gGameFrameCount % 8) == 0)) { if ((this->obj.pos.y <= (gGroundHeight + 10.0f)) && ((gGameFrameCount % 8) == 0)) {
func_enmy2_8006BB1C(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z); func_enmy2_8006BB1C(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z);
} }
@ -624,7 +624,7 @@ void Actor189_Update(Actor189* this) {
case 53: case 53:
case 55: case 55:
if (((this->timer_0BC == 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) || if (((this->timer_0BC == 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) ||
(this->obj.pos.y < (gGroundLevel + 10.0f))) && (this->obj.pos.y < (gGroundHeight + 10.0f))) &&
(this->timer_0BE == 0)) { (this->timer_0BE == 0)) {
func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 50.0f, this->scale * 10.0f); func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 50.0f, this->scale * 10.0f);
Object_Kill(&this->obj, this->sfxSource); Object_Kill(&this->obj, this->sfxSource);
@ -635,7 +635,7 @@ void Actor189_Update(Actor189* this) {
case 56: case 56:
Math_SmoothStepToF(&this->scale, 0.0f, 0.1f, 2.0f, 0.0001f); Math_SmoothStepToF(&this->scale, 0.0f, 0.1f, 2.0f, 0.0001f);
if (((this->timer_0BC == 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) || if (((this->timer_0BC == 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) ||
(this->obj.pos.y < (gGroundLevel + 10.0f))) && (this->obj.pos.y < (gGroundHeight + 10.0f))) &&
(this->timer_0BE == 0)) { (this->timer_0BE == 0)) {
func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 50.0f, this->scale * 10.0f); func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 50.0f, this->scale * 10.0f);
Object_Kill(&this->obj, this->sfxSource); Object_Kill(&this->obj, this->sfxSource);
@ -656,7 +656,7 @@ void Actor189_Update(Actor189* this) {
this->obj.rot.z += this->fwork[2]; this->obj.rot.z += this->fwork[2];
if (((this->timer_0BC == 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) || if (((this->timer_0BC == 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) ||
(this->obj.pos.y < (gGroundLevel + 10.0f))) && (this->obj.pos.y < (gGroundHeight + 10.0f))) &&
(this->timer_0BE == 0)) { (this->timer_0BE == 0)) {
func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 50.0f, this->scale * 10.0f); func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 50.0f, this->scale * 10.0f);
Object_Kill(&this->obj, this->sfxSource); Object_Kill(&this->obj, this->sfxSource);
@ -666,7 +666,7 @@ void Actor189_Update(Actor189* this) {
case 54: case 54:
if (((this->timer_0BC == 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) || if (((this->timer_0BC == 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) ||
(this->obj.pos.y < (gGroundLevel + 10.0f))) && (this->obj.pos.y < (gGroundHeight + 10.0f))) &&
(this->timer_0BE == 0)) { (this->timer_0BE == 0)) {
func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 70.0f, this->scale * 20.0f); func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 70.0f, this->scale * 20.0f);
func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 70.0f, this->scale * 20.0f); func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 70.0f, this->scale * 20.0f);
@ -686,7 +686,7 @@ void Actor189_Update(Actor189* this) {
if (Object_CheckCollision(this->index, &this->obj.pos, &D_tank_800C9F2C, 1) != 0) { if (Object_CheckCollision(this->index, &this->obj.pos, &D_tank_800C9F2C, 1) != 0) {
this->vel.x *= -0.7f; this->vel.x *= -0.7f;
} }
if (this->obj.pos.y < gGroundLevel) { if (this->obj.pos.y < gGroundHeight) {
Object_Kill(&this->obj, this->sfxSource); Object_Kill(&this->obj, this->sfxSource);
} }
break; break;
@ -700,7 +700,7 @@ void Actor189_Update(Actor189* this) {
this->vel.x *= -0.7f; this->vel.x *= -0.7f;
} }
if (this->obj.pos.y < gGroundLevel) { if (this->obj.pos.y < gGroundHeight) {
if (this->iwork[0] >= 3) { if (this->iwork[0] >= 3) {
this->vel.y = 0.0f; this->vel.y = 0.0f;
this->gravity = 0.0f; this->gravity = 0.0f;
@ -710,7 +710,7 @@ void Actor189_Update(Actor189* this) {
} else { } else {
this->iwork[0]++; this->iwork[0]++;
this->vel.y = -this->vel.y * 0.7f; this->vel.y = -this->vel.y * 0.7f;
this->obj.pos.y = gGroundLevel; this->obj.pos.y = gGroundHeight;
this->fwork[0] *= 0.5f; this->fwork[0] *= 0.5f;
this->fwork[1] *= 0.5f; this->fwork[1] *= 0.5f;
this->fwork[2] *= 0.5f; this->fwork[2] *= 0.5f;
@ -733,13 +733,13 @@ void Actor189_Update(Actor189* this) {
if (this->state == 70) { if (this->state == 70) {
if ((this->timer_0BC == 0) || if ((this->timer_0BC == 0) ||
(Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) ||
(this->obj.pos.y < (gGroundLevel + 10.0f))) { (this->obj.pos.y < (gGroundHeight + 10.0f))) {
Object_Kill(&this->obj, this->sfxSource); Object_Kill(&this->obj, this->sfxSource);
} }
} else if (this->state == 39) { } else if (this->state == 39) {
if (((this->timer_0BC == 0) || if (((this->timer_0BC == 0) ||
(Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) ||
(this->obj.pos.y < (gGroundLevel + 10.0f))) && (this->obj.pos.y < (gGroundHeight + 10.0f))) &&
(this->timer_0BE == 0)) { (this->timer_0BE == 0)) {
func_effect_8007D0E0(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 10.0f); func_effect_8007D0E0(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 10.0f);
Object_Kill(&this->obj, this->sfxSource); Object_Kill(&this->obj, this->sfxSource);
@ -763,7 +763,7 @@ void Actor189_Update(Actor189* this) {
} }
if (((this->timer_0BC == 0) || if (((this->timer_0BC == 0) ||
(Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) ||
(this->obj.pos.y < (gGroundLevel + 10.0f))) && (this->obj.pos.y < (gGroundHeight + 10.0f))) &&
(this->timer_0BE == 0)) { (this->timer_0BE == 0)) {
func_effect_8007BFFC(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, this->vel.x, this->vel.y, func_effect_8007BFFC(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, this->vel.x, this->vel.y,
this->vel.z, this->scale * 1.5f, 4); this->vel.z, this->scale * 1.5f, 4);
@ -775,7 +775,7 @@ void Actor189_Update(Actor189* this) {
func_effect_8007D0E0(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 1.5f); func_effect_8007D0E0(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 1.5f);
} }
if ((Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) || if ((Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) ||
(this->obj.pos.y < (gGroundLevel + 10.0f))) { (this->obj.pos.y < (gGroundHeight + 10.0f))) {
if (gLevelType == LEVELTYPE_SPACE) { if (gLevelType == LEVELTYPE_SPACE) {
func_effect_8007D0E0(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 2.0f); func_effect_8007D0E0(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 2.0f);
Object_Kill(&this->obj, this->sfxSource); Object_Kill(&this->obj, this->sfxSource);
@ -836,28 +836,28 @@ void func_enmy2_8006D0F4(Actor* this) {
D_ctx_80161A84 = 110; D_ctx_80161A84 = 110;
D_ctx_80178544 = 40; D_ctx_80178544 = 40;
for (i = 0; i < ARRAY_COUNT(gObjects80); i++) { for (i = 0; i < ARRAY_COUNT(gScenery); i++) {
if ((gObjects80[i].obj.status == OBJ_ACTIVE) && ((gPlayer[0].unk_138 - 3000.0f) < gObjects80[i].obj.pos.z)) { if ((gScenery[i].obj.status == OBJ_ACTIVE) && ((gPlayer[0].unk_138 - 3000.0f) < gScenery[i].obj.pos.z)) {
hitboxData = D_edata_800CF964[gObjects80[i].obj.id]; hitboxData = D_edata_800CF964[gScenery[i].obj.id];
count = *hitboxData; count = *hitboxData;
if (count != 0) { if (count != 0) {
Matrix_RotateY(gCalcMatrix, -gObjects80[i].obj.rot.y * M_DTOR, MTXF_NEW); Matrix_RotateY(gCalcMatrix, -gScenery[i].obj.rot.y * M_DTOR, MTXF_NEW);
spA8.x = this->obj.pos.x - gObjects80[i].obj.pos.x; spA8.x = this->obj.pos.x - gScenery[i].obj.pos.x;
spA8.y = this->obj.pos.y - gObjects80[i].obj.pos.y; spA8.y = this->obj.pos.y - gScenery[i].obj.pos.y;
spA8.z = this->obj.pos.z - gObjects80[i].obj.pos.z; spA8.z = this->obj.pos.z - gScenery[i].obj.pos.z;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C); Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C);
temp_fs0 = gObjects80[i].obj.pos.x + sp9C.x; temp_fs0 = gScenery[i].obj.pos.x + sp9C.x;
temp_fs1 = gObjects80[i].obj.pos.y + sp9C.y; temp_fs1 = gScenery[i].obj.pos.y + sp9C.y;
temp_fs2 = gObjects80[i].obj.pos.z + sp9C.z; temp_fs2 = gScenery[i].obj.pos.z + sp9C.z;
hitboxData++; hitboxData++;
for (j = 0; j < count; j++) { for (j = 0; j < count; j++) {
hitbox = (Hitbox*) hitboxData; hitbox = (Hitbox*) hitboxData;
if (func_play_800A78C4(hitbox, gObjects80[i].obj.pos.x, gObjects80[i].obj.pos.y, if (func_play_800A78C4(hitbox, gScenery[i].obj.pos.x, gScenery[i].obj.pos.y, gScenery[i].obj.pos.z,
gObjects80[i].obj.pos.z, temp_fs0, temp_fs1, temp_fs2)) { temp_fs0, temp_fs1, temp_fs2)) {
D_ctx_80161A7C = 10; D_ctx_80161A7C = 10;
D_ctx_80161A80 = 10; D_ctx_80161A80 = 10;
D_ctx_80161A84 = 10; D_ctx_80161A84 = 10;
@ -870,35 +870,49 @@ void func_enmy2_8006D0F4(Actor* this) {
} }
} }
void Obj39_Update(Object80_39* this) { void Obj39_Update(Scenery_39* this) {
this->obj.rot.z += 1.0f; this->obj.rot.z += 1.0f;
} }
typedef struct {
/* 0x00 */ Gfx* dList;
/* 0x04 */ f32* hitbox;
/* 0x08 */ f32 scale;
/* 0x0C */ f32 info_unk_10;
/* 0x10 */ f32 unk_10;
/* 0x14 */ u8 info_unk_16;
/* 0x15 */ u8 info_unk_14;
/* 0x16 */ u8 sfx;
/* 0x17 */ u8 info_unk_19;
/* 0x18 */ f32 info_unk_1C;
/* 0x1C */ u8 bonus;
} UnkStruct_D003C; // size = 0x20
static UnkStruct_D003C D_800D003C[108] = { static UnkStruct_D003C D_800D003C[108] = {
/* 0 */ { D_ENMY_PLANET_40068F0, gDefaultCubeHitbox100, 1.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 0 */ { D_ENMY_PLANET_40068F0, gCubeHitbox100, 1.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 1 */ { D_ENMY_PLANET_4006E90, gDefaultCubeHitbox100, 1.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 1 */ { D_ENMY_PLANET_4006E90, gCubeHitbox100, 1.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 2 */ { NULL, gDefaultCubeHitbox100, 1.0f, 20000.0f, 3000.0f, 1, 0, 2, 0, 0.0f, 0 }, /* 2 */ { NULL, gCubeHitbox100, 1.0f, 20000.0f, 3000.0f, 1, 0, 2, 0, 0.0f, 0 },
/* 3 */ { D_ENMY_PLANET_4009800, gDefaultCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 }, /* 3 */ { D_ENMY_PLANET_4009800, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 },
/* 4 */ { D_ENMY_PLANET_40073C0, gDefaultCubeHitbox100, 1.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 4 */ { D_ENMY_PLANET_40073C0, gCubeHitbox100, 1.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 5 */ { D_ENMY_PLANET_4007AF0, gDefaultCubeHitbox100, 1.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 5 */ { D_ENMY_PLANET_4007AF0, gCubeHitbox100, 1.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 6 */ { NULL, gDefaultCubeHitbox100, 1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 }, /* 6 */ { NULL, gCubeHitbox100, 1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 },
/* 7 */ { D_CO_6011F90, gDefaultCubeHitbox100, 1.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 0.0f, 1 }, /* 7 */ { D_CO_6011F90, gCubeHitbox100, 1.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 0.0f, 1 },
/* 8 */ { D_ENMY_PLANET_4000710, gDefaultCubeHitbox100, 1.0f, 100.0f, 3000.0f, 2, 0, 1, 1, 1.0f, 1 }, /* 8 */ { D_ENMY_PLANET_4000710, gCubeHitbox100, 1.0f, 100.0f, 3000.0f, 2, 0, 1, 1, 1.0f, 1 },
/* 9 */ { NULL, gDefaultCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 6, 0, 1.0f, 1 }, /* 9 */ { NULL, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 6, 0, 1.0f, 1 },
/* 10 */ { D_ENMY_SPACE_400BD20, gDefaultCubeHitbox200, 2.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 10 */ { D_ENMY_SPACE_400BD20, gCubeHitbox200, 2.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 11 */ { D_ENMY_SPACE_4001310, gDefaultCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 6, 0, 1.0f, 1 }, /* 11 */ { D_ENMY_SPACE_4001310, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 6, 0, 1.0f, 1 },
/* 12 */ { D_ENMY_SPACE_400B390, gDefaultCubeHitbox100, 2.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 12 */ { D_ENMY_SPACE_400B390, gCubeHitbox100, 2.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 13 */ { D_ME_6018C00, gDefaultCubeHitbox100, 2.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 13 */ { D_ME_6018C00, gCubeHitbox100, 2.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 14 */ { D_ME_601F2A0, gDefaultCubeHitbox400, 7.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 14 */ { D_ME_601F2A0, gCubeHitbox400, 7.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 15 */ { D_ENMY_SPACE_400AAE0, gDefaultCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 15 */ { D_ENMY_SPACE_400AAE0, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 16 */ { D_ENMY_SPACE_4000650, gDefaultCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 6, 0, 1.0f, 1 }, /* 16 */ { D_ENMY_SPACE_4000650, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 6, 0, 1.0f, 1 },
/* 17 */ { D_A6_6016190, D_A6_60282A0, -2.0f, 2100.0f, 3000.0f, 0, 0, 7, 0, 0.0f, 5 }, /* 17 */ { D_A6_6016190, D_A6_60282A0, -2.0f, 2100.0f, 3000.0f, 0, 0, 7, 0, 0.0f, 5 },
/* 18 */ { D_SX_6023500, gDefaultCubeHitbox200, 2.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 18 */ { D_SX_6023500, gCubeHitbox200, 2.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 19 */ { D_SX_6022DF0, gDefaultCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 19 */ { D_SX_6022DF0, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 20 */ { NULL, gDefaultCubeHitbox100, 1.0f, 100.0f, 3000.0f, 2, 1, 1, 0, 0.0f, 1 }, /* 20 */ { NULL, gCubeHitbox100, 1.0f, 100.0f, 3000.0f, 2, 1, 1, 0, 0.0f, 1 },
/* 21 */ { NULL, gDefaultCubeHitbox200, 2.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 0.0f, 1 }, /* 21 */ { NULL, gCubeHitbox200, 2.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 0.0f, 1 },
/* 22 */ { NULL, gDefaultCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 0.0f, 1 }, /* 22 */ { NULL, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 0.0f, 1 },
/* 23 */ { D_ENMY_SPACE_4008FA0, gDefaultCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 23 */ { D_ENMY_SPACE_4008FA0, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 24 */ { D_SX_60285F0, D_SX_603298C, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 24 */ { D_SX_60285F0, D_SX_603298C, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 25 */ { D_SX_600AF70, D_SX_6032904, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 25 */ { D_SX_600AF70, D_SX_6032904, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 26 */ { D_SX_6023E30, D_SX_6032970, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 26 */ { D_SX_6023E30, D_SX_6032970, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
@ -908,61 +922,61 @@ static UnkStruct_D003C D_800D003C[108] = {
/* 30 */ { D_A6_6012A40, D_A6_6028254, -2.0f, 2100.0f, 3001.0f, 0, 0, 7, 0, 0.0f, 2 }, /* 30 */ { D_A6_6012A40, D_A6_6028254, -2.0f, 2100.0f, 3001.0f, 0, 0, 7, 0, 0.0f, 2 },
/* 31 */ { NULL, D_A6_60280E0, -2.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 3 }, /* 31 */ { NULL, D_A6_60280E0, -2.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 3 },
/* 32 */ { D_SX_6009950, D_SX_6032878, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 32 */ { D_SX_6009950, D_SX_6032878, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 33 */ { NULL, gDefaultCubeHitbox200, 2.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 }, /* 33 */ { NULL, gCubeHitbox200, 2.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 },
/* 34 */ { D_SX_600B2B0, D_SX_6032894, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 34 */ { D_SX_600B2B0, D_SX_6032894, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 35 */ { D_SX_600A2E0, D_SX_60328B0, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 35 */ { D_SX_600A2E0, D_SX_60328B0, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 36 */ { NULL, gDefaultCubeHitbox400, 2.0f, 200.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 36 */ { NULL, gCubeHitbox400, 2.0f, 200.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 37 */ { D_SX_600B830, gDefaultCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 37 */ { D_SX_600B830, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 38 */ { NULL, D_SX_603238C, 1.0f, 500.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 }, /* 38 */ { NULL, D_SX_603238C, 1.0f, 500.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 },
/* 39 */ { D_SX_6020D20, D_SX_60328CC, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 39 */ { D_SX_6020D20, D_SX_60328CC, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 40 */ { NULL, gHitboxNone, 1.0f, 100.0f, 3001.0f, 2, 0, 0, 0, 0.0f, 1 }, /* 40 */ { NULL, gNoHitbox, 1.0f, 100.0f, 3001.0f, 2, 0, 0, 0, 0.0f, 1 },
/* 41 */ { D_SY_60097E0, D_SY_6034478, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 41 */ { D_SY_60097E0, D_SY_6034478, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 42 */ { D_SY_601D730, D_SY_603450C, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 42 */ { D_SY_601D730, D_SY_603450C, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 43 */ { NULL, gDefaultCubeHitbox100, 1.0f, 20000.0f, 3000.0f, 1, 0, 2, 0, 0.0f, 0 }, /* 43 */ { NULL, gCubeHitbox100, 1.0f, 20000.0f, 3000.0f, 1, 0, 2, 0, 0.0f, 0 },
/* 44 */ { D_SY_60102C0, D_SY_6034588, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 44 */ { D_SY_60102C0, D_SY_6034588, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 45 */ { D_ME_6017B60, gDefaultCubeHitbox200, -1.0f, 300.0f, 3001.0f, 0, 0, 0, 0, 1.0f, 1 }, /* 45 */ { D_ME_6017B60, gCubeHitbox200, -1.0f, 300.0f, 3001.0f, 0, 0, 0, 0, 1.0f, 1 },
/* 46 */ { D_ZO_6004D00, gDefaultCubeHitbox200, 1.0f, 100.0f, 3000.0f, 1, 0, 4, 0, 1.0f, 1 }, /* 46 */ { D_ZO_6004D00, gCubeHitbox200, 1.0f, 100.0f, 3000.0f, 1, 0, 4, 0, 1.0f, 1 },
/* 47 */ { D_ME_601A880, gDefaultCubeHitbox100, -1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 }, /* 47 */ { D_ME_601A880, gCubeHitbox100, -1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 },
/* 48 */ { NULL, D_SY_603405C, 0.3f, 100.0f, 3000.0f, 0, 0, 1, 0, 1.0f, 1 }, /* 48 */ { NULL, D_SY_603405C, 0.3f, 100.0f, 3000.0f, 0, 0, 1, 0, 1.0f, 1 },
/* 49 */ { NULL, D_SY_603405C, 0.3f, 100.0f, 3000.0f, 0, 0, 1, 0, 1.0f, 1 }, /* 49 */ { NULL, D_SY_603405C, 0.3f, 100.0f, 3000.0f, 0, 0, 1, 0, 1.0f, 1 },
/* 50 */ { NULL, D_SY_603405C, 0.3f, 100.0f, 3000.0f, 0, 0, 1, 0, 1.0f, 1 }, /* 50 */ { NULL, D_SY_603405C, 0.3f, 100.0f, 3000.0f, 0, 0, 1, 0, 1.0f, 1 },
/* 51 */ { D_SY_6015D60, D_SY_6034124, 2.0f, 100.0f, 3000.0f, 0, 0, 1, 0, 1.0f, 1 }, /* 51 */ { D_SY_6015D60, D_SY_6034124, 2.0f, 100.0f, 3000.0f, 0, 0, 1, 0, 1.0f, 1 },
/* 52 */ { NULL, D_ZO_602C1A0, -1.0f, 1000.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 52 */ { NULL, D_ZO_602C1A0, -1.0f, 1000.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 53 */ { D_SX_600B540, D_SX_60328E8, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 53 */ { D_SX_600B540, D_SX_60328E8, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 54 */ { D_ENMY_SPACE_4000EC0, gDefaultCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 54 */ { D_ENMY_SPACE_4000EC0, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 55 */ { D_ENMY_SPACE_4008D50, gDefaultCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 55 */ { D_ENMY_SPACE_4008D50, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 56 */ { NULL, gHitboxNone, -1.0f, 2000.0f, 3000.0f, 0, 0, 3, 0, 0.0f, 1 }, /* 56 */ { NULL, gNoHitbox, -1.0f, 2000.0f, 3000.0f, 0, 0, 3, 0, 0.0f, 1 },
/* 57 */ { D_SY_60102C0, gHitboxNone, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 57 */ { D_SY_60102C0, gNoHitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 58 */ { D_SY_601F3D0, gHitboxNone, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 58 */ { D_SY_601F3D0, gNoHitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 59 */ { D_SY_6022B10, gHitboxNone, 2.0f, 100.0f, 3000.0f, 0, 0, 1, 0, 0.0f, 1 }, /* 59 */ { D_SY_6022B10, gNoHitbox, 2.0f, 100.0f, 3000.0f, 0, 0, 1, 0, 0.0f, 1 },
/* 60 */ { D_SY_60209F0, gHitboxNone, 2.0f, 100.0f, 3000.0f, 0, 0, 1, 0, 0.0f, 1 }, /* 60 */ { D_SY_60209F0, gNoHitbox, 2.0f, 100.0f, 3000.0f, 0, 0, 1, 0, 0.0f, 1 },
/* 61 */ { D_ME_6019430, gDefaultCubeHitbox200, 2.5f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 }, /* 61 */ { D_ME_6019430, gCubeHitbox200, 2.5f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 },
/* 62 */ { D_ME_6018960, gDefaultCubeHitbox100, 2.5f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 }, /* 62 */ { D_ME_6018960, gCubeHitbox100, 2.5f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 },
/* 63 */ { D_ME_6009F50, gHitboxNone, -1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 }, /* 63 */ { D_ME_6009F50, gNoHitbox, -1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 },
/* 64 */ { NULL, gDefaultCubeHitbox200, 3.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 }, /* 64 */ { NULL, gCubeHitbox200, 3.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 },
/* 65 */ { D_ME_600C2A0, gDefaultCubeHitbox200, -1.0f, 100.0f, 8000.0f, 1, 0, 0, 0, 0.0f, 1 }, /* 65 */ { D_ME_600C2A0, gCubeHitbox200, -1.0f, 100.0f, 8000.0f, 1, 0, 0, 0, 0.0f, 1 },
/* 66 */ { D_ME_600BD40, gDefaultCubeHitbox100, -1.0f, 100.0f, 8000.0f, 1, 0, 0, 0, 0.0f, 1 }, /* 66 */ { D_ME_600BD40, gCubeHitbox100, -1.0f, 100.0f, 8000.0f, 1, 0, 0, 0, 0.0f, 1 },
/* 67 */ { NULL, D_ME_602F604, 3.0f, 100.0f, 3000.0f, 2, 0, 1, 0, 1.0f, 1 }, /* 67 */ { NULL, D_ME_602F604, 3.0f, 100.0f, 3000.0f, 2, 0, 1, 0, 1.0f, 1 },
/* 68 */ { D_SY_60205D0, D_SY_603445C, 3.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 }, /* 68 */ { D_SY_60205D0, D_SY_603445C, 3.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 },
/* 69 */ { D_SY_60036A0, D_SY_6034664, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 69 */ { D_SY_60036A0, D_SY_6034664, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 70 */ { D_SY_601AD70, gHitboxNone, 4.0f, 100.0f, 3000.0f, 0, 0, 1, 0, 0.0f, 1 }, /* 70 */ { D_SY_601AD70, gNoHitbox, 4.0f, 100.0f, 3000.0f, 0, 0, 1, 0, 0.0f, 1 },
/* 71 */ { D_arwing_3007650, gHitboxNone, 1.0f, 100.0f, 3000.0f, 2, 0, 5, 0, 0.0f, 1 }, /* 71 */ { D_arwing_3007650, gNoHitbox, 1.0f, 100.0f, 3000.0f, 2, 0, 5, 0, 0.0f, 1 },
/* 72 */ { D_SY_60034D0, D_SY_60347D4, 3.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 }, /* 72 */ { D_SY_60034D0, D_SY_60347D4, 3.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 },
/* 73 */ { D_SY_6005360, D_SY_6034770, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 73 */ { D_SY_6005360, D_SY_6034770, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 74 */ { D_SY_600F6C0, D_SY_60347F0, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 74 */ { D_SY_600F6C0, D_SY_60347F0, -1.0f, 10000.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 75 */ { D_SY_601B610, gHitboxNone, -1.0f, 10000.0f, 3001.0f, 0, 0, 1, 0, 0.0f, 1 }, /* 75 */ { D_SY_601B610, gNoHitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, 1, 0, 0.0f, 1 },
/* 76 */ { D_SY_601C6A0, gHitboxNone, -1.0f, 10000.0f, 3001.0f, 0, 0, 1, 0, 0.0f, 1 }, /* 76 */ { D_SY_601C6A0, gNoHitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, 1, 0, 0.0f, 1 },
/* 77 */ { D_SY_60188D0, D_SY_603486C, 3.0f, 100.0f, 3001.0f, 0, 0, 1, 0, 0.0f, 1 }, /* 77 */ { D_SY_60188D0, D_SY_603486C, 3.0f, 100.0f, 3001.0f, 0, 0, 1, 0, 0.0f, 1 },
/* 78 */ { NULL, gDefaultCubeHitbox150, 1.0f, 100.0f, 3000.0f, 2, 0, 0, 0, 1.0f, 0 }, /* 78 */ { NULL, gCubeHitbox150, 1.0f, 100.0f, 3000.0f, 2, 0, 0, 0, 1.0f, 0 },
/* 79 */ { NULL, D_ZO_602C294, 1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 1.0f, 1 }, /* 79 */ { NULL, D_ZO_602C294, 1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 1.0f, 1 },
/* 80 */ { NULL, D_VE1_601B474, -1.0f, 100.0f, 3000.0f, 2, 0, 0, 0, 0.0f, 1 }, /* 80 */ { NULL, D_VE1_601B474, -1.0f, 100.0f, 3000.0f, 2, 0, 0, 0, 0.0f, 1 },
/* 81 */ { NULL, gHitboxNone, -1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 81 */ { NULL, gNoHitbox, -1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 82 */ { NULL, gDefaultCubeHitbox100, 2.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 }, /* 82 */ { NULL, gCubeHitbox100, 2.0f, 100.0f, 3000.0f, 1, 0, 1, 0, 1.0f, 1 },
/* 83 */ { NULL, D_AQ_6030B4C, 1.0f, 100.0f, 3000.0f, 2, 0, 0, 0, 60.0f, 1 }, /* 83 */ { NULL, D_AQ_6030B4C, 1.0f, 100.0f, 3000.0f, 2, 0, 0, 0, 60.0f, 1 },
/* 84 */ { D_VE1_9012180, D_VE1_601B43C, -1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 84 */ { D_VE1_9012180, D_VE1_601B43C, -1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 85 */ { NULL, gDefaultCubeHitbox100, 1.0f, 20000.0f, 3000.0f, 1, 0, 2, 0, 0.0f, 0 }, /* 85 */ { NULL, gCubeHitbox100, 1.0f, 20000.0f, 3000.0f, 1, 0, 2, 0, 0.0f, 0 },
/* 86 */ { NULL, gDefaultCubeHitbox100, 1.0f, 20000.0f, 3000.0f, 1, 0, 2, 0, 0.0f, 0 }, /* 86 */ { NULL, gCubeHitbox100, 1.0f, 20000.0f, 3000.0f, 1, 0, 2, 0, 0.0f, 0 },
/* 87 */ { D_VE1_900EFC0, gHitboxNone, 1.0f, 100.0f, 3000.0f, 1, 1, 0, 0, 0.0f, 1 }, /* 87 */ { D_VE1_900EFC0, gNoHitbox, 1.0f, 100.0f, 3000.0f, 1, 1, 0, 0, 0.0f, 1 },
/* 88 */ { NULL, D_AQ_6030B30, 1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 }, /* 88 */ { NULL, D_AQ_6030B30, 1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 },
/* 89 */ { NULL, D_AQ_6030B14_f32, 1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 }, /* 89 */ { NULL, D_AQ_6030B14_f32, 1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 },
/* 90 */ { D_MA_601C520, D_MA_60368FC, 1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 }, /* 90 */ { D_MA_601C520, D_MA_60368FC, 1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 },
@ -970,18 +984,18 @@ static UnkStruct_D003C D_800D003C[108] = {
/* 92 */ { D_WZ_7000C40, gWarpZoneEvent92Hitbox, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 92 */ { D_WZ_7000C40, gWarpZoneEvent92Hitbox, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 93 */ { D_WZ_70010E0, gWarpZoneEvent93Hitbox, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 93 */ { D_WZ_70010E0, gWarpZoneEvent93Hitbox, -1.0f, 2100.0f, 3001.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 94 */ { D_WZ_7000E80, gWarpZoneEvent94Hitbox, 2.5f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 }, /* 94 */ { D_WZ_7000E80, gWarpZoneEvent94Hitbox, 2.5f, 100.0f, 3000.0f, 1, 0, 0, 0, 1.0f, 1 },
/* 95 */ { D_WZ_70008F0, gDefaultCubeHitbox100, -1.0f, 100.0f, 8000.0f, 1, 0, 0, 0, 0.0f, 0 }, /* 95 */ { D_WZ_70008F0, gCubeHitbox100, -1.0f, 100.0f, 8000.0f, 1, 0, 0, 0, 0.0f, 0 },
/* 96 */ { D_WZ_7000280, gWarpZoneEvent96Hitbox, -1.0f, 1000.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 0 }, /* 96 */ { D_WZ_7000280, gWarpZoneEvent96Hitbox, -1.0f, 1000.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 0 },
/* 97 */ { D_ME_600AC70, gDefaultCubeHitbox100, -1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 }, /* 97 */ { D_ME_600AC70, gCubeHitbox100, -1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 },
/* 98 */ { D_MA_601A2B0, D_MA_60364C0, 1.0f, 100.0f, 3000.0f, 1, 1, 0, 0, 0.0f, 1 }, /* 98 */ { D_MA_601A2B0, D_MA_60364C0, 1.0f, 100.0f, 3000.0f, 1, 1, 0, 0, 0.0f, 1 },
/* 99 */ { D_VE1_6002500, D_VE1_601B944, -1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 99 */ { D_VE1_6002500, D_VE1_601B944, -1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 100 */ { D_VE1_60043F0, gHitboxNone, -1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 100 */ { D_VE1_60043F0, gNoHitbox, -1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 101 */ { D_VE1_6004310, gHitboxNone, -1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 101 */ { D_VE1_6004310, gNoHitbox, -1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 102 */ { D_TR_6002740, D_TR_6009D18, -1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 }, /* 102 */ { D_TR_6002740, D_TR_6009D18, -1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 1 },
/* 103 */ { NULL, gHitboxNone, -1.0f, 500.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 0 }, /* 103 */ { NULL, gNoHitbox, -1.0f, 500.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* 104 */ { NULL, gHitboxNone, -1.0f, 500.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 0 }, /* 104 */ { NULL, gNoHitbox, -1.0f, 500.0f, 3000.0f, 0, 0, 0, 0, 0.0f, 0 },
/* 105 */ { NULL, gDefaultCubeHitbox200, 1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 1.0f, 1 }, /* 105 */ { NULL, gCubeHitbox200, 1.0f, 100.0f, 3000.0f, 0, 0, 0, 0, 1.0f, 1 },
/* 106 */ { NULL, gDefaultCubeHitbox100, 1.0f, 100.0f, 3000.0f, 0, 0, 6, 0, 0.0f, 0 }, /* 106 */ { NULL, gCubeHitbox100, 1.0f, 100.0f, 3000.0f, 0, 0, 6, 0, 0.0f, 0 },
/* 107 */ { D_MA_6002890, D_MA_60368E0, -1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 }, /* 107 */ { D_MA_6002890, D_MA_60368E0, -1.0f, 100.0f, 3000.0f, 1, 0, 0, 0, 0.0f, 1 },
}; };
static u8 D_800D0DBC[6][4] = { static u8 D_800D0DBC[6][4] = {
@ -1079,7 +1093,7 @@ void ActorEvent_ProcessScript(ActorEvent* this) {
if ((this->unk_0B4 >= EINFO_200) && (this->unk_0B4 < EINFO_300)) { if ((this->unk_0B4 >= EINFO_200) && (this->unk_0B4 < EINFO_300)) {
this->unk_046 = 100; this->unk_046 = 100;
this->info.hitbox = gDefaultCubeHitbox200; this->info.hitbox = gCubeHitbox200;
this->info.unk_1C = 1.0f; this->info.unk_1C = 1.0f;
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
@ -1224,7 +1238,7 @@ void ActorEvent_ProcessScript(ActorEvent* this) {
} }
if (actorScript[this->aiIndex + 1] == EVACT_ME_AS_CLOSE) { if (actorScript[this->aiIndex + 1] == EVACT_ME_AS_CLOSE) {
this->info.hitbox = SEGMENTED_TO_VIRTUAL(gDefaultCubeHitbox200); this->info.hitbox = SEGMENTED_TO_VIRTUAL(gCubeHitbox200);
this->state = EVSTATE_ME_AS_CLOSE; this->state = EVSTATE_ME_AS_CLOSE;
this->aiIndex += 2; this->aiIndex += 2;
break; break;
@ -2091,7 +2105,7 @@ void ActorEvent_800701E0(ActorEvent* this) {
this->timer_04C = RAND_INT(2.9f); this->timer_04C = RAND_INT(2.9f);
if (this->unk_0B4 == EINFO_2) { if (this->unk_0B4 == EINFO_2) {
this->timer_04C = 1; this->timer_04C = 1;
if (this->obj.pos.x < this->unk_0D8.x) { if (this->obj.pos.x < this->hitPos.x) {
func_play_800A69F8(1, this->obj.pos.x + 20.0f, this->obj.pos.y, this->obj.pos.z); func_play_800A69F8(1, this->obj.pos.x + 20.0f, this->obj.pos.y, this->obj.pos.z);
this->fwork[17] = 777.0f; this->fwork[17] = 777.0f;
} else { } else {
@ -2172,7 +2186,7 @@ void ActorEvent_800701E0(ActorEvent* this) {
if (((gLevelMode == LEVELMODE_ALL_RANGE) || (gLevelMode == LEVELMODE_UNK_2)) && if (((gLevelMode == LEVELMODE_ALL_RANGE) || (gLevelMode == LEVELMODE_UNK_2)) &&
(this->unk_0B4 != EINFO_21) && (this->unk_0B4 != EINFO_23)) { (this->unk_0B4 != EINFO_21) && (this->unk_0B4 != EINFO_23)) {
this->fwork[13] = 20.0f; this->fwork[13] = 20.0f;
if (this->obj.pos.x < this->unk_0D8.x) { if (this->obj.pos.x < this->hitPos.x) {
this->fwork[13] *= -1.0f; this->fwork[13] *= -1.0f;
} }
} }
@ -2222,7 +2236,7 @@ void ActorEvent_800701E0(ActorEvent* this) {
sp3C.z = this->vel.z; sp3C.z = this->vel.z;
if ((Object_CheckCollision(this->index, &this->obj.pos, &sp3C, 0) != 0) || if ((Object_CheckCollision(this->index, &this->obj.pos, &sp3C, 0) != 0) ||
(this->obj.pos.y < (gGroundLevel + 20.0f))) { (this->obj.pos.y < (gGroundHeight + 20.0f))) {
this->obj.status = OBJ_DYING; this->obj.status = OBJ_DYING;
this->obj.pos.z -= this->vel.z; this->obj.pos.z -= this->vel.z;
this->unk_0D0 = 1; this->unk_0D0 = 1;
@ -2243,8 +2257,8 @@ void ActorEvent_80070BA8(ActorEvent* this) {
this->unk_0D0 = 0; this->unk_0D0 = 0;
if ((this->unk_0B4 != EINFO_17) || ((this->unk_0B4 == EINFO_17) && (this->unk_0D2 == 0))) { if ((this->unk_0B4 != EINFO_17) || ((this->unk_0B4 == EINFO_17) && (this->unk_0D2 == 0))) {
this->timer_0C6 = 10; this->timer_0C6 = 10;
func_effect_8007C120(this->unk_0D8.x, this->unk_0D8.y, this->unk_0D8.z, this->vel.x, this->vel.y, func_effect_8007C120(this->hitPos.x, this->hitPos.y, this->hitPos.z, this->vel.x, this->vel.y, this->vel.z,
this->vel.z, 0.2f, 10); 0.2f, 10);
this->health -= this->damage; this->health -= this->damage;
AUDIO_PLAY_SFX(0x29033064, this->sfxSource, 4); AUDIO_PLAY_SFX(0x29033064, this->sfxSource, 4);
if (this->health <= 0) { if (this->health <= 0) {
@ -3776,7 +3790,7 @@ bool ActorEvent_OverrideLimbDraw3(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f*
return false; return false;
} }
s32 Obj111_Draw(Object80_111* this) { s32 Obj111_Draw(Scenery_111* this) {
RCP_SetupDL(&gMasterDisp, 0x3C); RCP_SetupDL(&gMasterDisp, 0x3C);
gSPDisplayList(gMasterDisp++, D_SY_601AD70); gSPDisplayList(gMasterDisp++, D_SY_601AD70);
RCP_SetupDL(&gMasterDisp, 0x40); RCP_SetupDL(&gMasterDisp, 0x40);
@ -4216,7 +4230,7 @@ void func_enmy2_800763A4(Actor* actor) {
sp60 = Object_CheckCollision(actor->index, &actor->obj.pos, &sp4C, 0); sp60 = Object_CheckCollision(actor->index, &actor->obj.pos, &sp4C, 0);
if ((sp60 != 0) || (actor->obj.pos.y < (gGroundLevel + 30.0f))) { if ((sp60 != 0) || (actor->obj.pos.y < (gGroundHeight + 30.0f))) {
if ((Rand_ZeroOne() < 0.5f) && (actor->timer_04C < 3) && (gLevelType == LEVELTYPE_PLANET) && if ((Rand_ZeroOne() < 0.5f) && (actor->timer_04C < 3) && (gLevelType == LEVELTYPE_PLANET) &&
(sp60 != 999) && (gGroundType != GROUNDTYPE_WATER) && (sp60 != 999) && (gGroundType != GROUNDTYPE_WATER) &&
((actor->vel.z < -20.0f) || (actor->vel.z > 0.0f))) { ((actor->vel.z < -20.0f) || (actor->vel.z > 0.0f))) {
@ -4254,16 +4268,16 @@ void func_enmy2_800763A4(Actor* actor) {
} }
} }
} else { } else {
if ((actor->obj.pos.y < (gGroundLevel + 30.0f)) && (gLevelType == LEVELTYPE_PLANET)) { if ((actor->obj.pos.y < (gGroundHeight + 30.0f)) && (gLevelType == LEVELTYPE_PLANET)) {
actor->vel.z = 0.0f; actor->vel.z = 0.0f;
if (gGroundType == GROUNDTYPE_WATER) { if (gGroundType == GROUNDTYPE_WATER) {
func_effect_8007D9DC(actor->obj.pos.x, gGroundLevel + 2.0f, actor->obj.pos.z, 3.0f, 20.0f, func_effect_8007D9DC(actor->obj.pos.x, gGroundHeight + 2.0f, actor->obj.pos.z, 3.0f, 20.0f,
0); 0);
func_effect_8007D9DC(actor->obj.pos.x, gGroundLevel + 2.0f, actor->obj.pos.z, 3.0f, 20.0f, func_effect_8007D9DC(actor->obj.pos.x, gGroundHeight + 2.0f, actor->obj.pos.z, 3.0f, 20.0f,
10); 10);
func_effect_8007D9DC(actor->obj.pos.x, gGroundLevel + 2.0f, actor->obj.pos.z, 3.0f, 20.0f, func_effect_8007D9DC(actor->obj.pos.x, gGroundHeight + 2.0f, actor->obj.pos.z, 3.0f, 20.0f,
20); 20);
func_effect_8007ADF4(actor->obj.pos.x, gGroundLevel, actor->obj.pos.z, 0.1f, 3.0f); func_effect_8007ADF4(actor->obj.pos.x, gGroundHeight, actor->obj.pos.z, 0.1f, 3.0f);
} else { } else {
func_beam_800365E4(actor->obj.pos.x, 3.0f, actor->obj.pos.z, actor->obj.pos.x, func_beam_800365E4(actor->obj.pos.x, 3.0f, actor->obj.pos.z, actor->obj.pos.x,
actor->obj.pos.z, 0.0f, 0.0f, 90.0f, 6.5f, 0, 0); actor->obj.pos.z, 0.0f, 0.0f, 90.0f, 6.5f, 0, 0);
@ -4271,7 +4285,7 @@ void func_enmy2_800763A4(Actor* actor) {
func_effect_8007C120(actor->obj.pos.x, 20.0f, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, func_effect_8007C120(actor->obj.pos.x, 20.0f, actor->obj.pos.z, 0.0f, 0.0f, 0.0f,
actor->scale * 0.05f, 30); actor->scale * 0.05f, 30);
if ((gCurrentLevel == LEVEL_FORTUNA) || (gCurrentLevel == LEVEL_VENOM_2)) { if ((gCurrentLevel == LEVEL_FORTUNA) || (gCurrentLevel == LEVEL_VENOM_2)) {
func_effect_8007C688(actor->obj.pos.x, gGroundLevel + 30.0f, actor->obj.pos.z, 3.0f, 60); func_effect_8007C688(actor->obj.pos.x, gGroundHeight + 30.0f, actor->obj.pos.z, 3.0f, 60);
if (gCurrentLevel == LEVEL_FORTUNA) { if (gCurrentLevel == LEVEL_FORTUNA) {
func_enmy_80062C38(actor->obj.pos.x, actor->obj.pos.z); func_enmy_80062C38(actor->obj.pos.x, actor->obj.pos.z);
} }

View File

@ -8,13 +8,13 @@ f32 D_game_80161A14;
s32 gPlayerInactive[4]; s32 gPlayerInactive[4];
s32 D_game_80161A28; s32 D_game_80161A28;
u8 gShowHud; u8 gShowHud;
u16 gNextLevelStage; u16 gNextLevelPhase;
u16 gNextLevel; u16 gNextLevel;
u16 gNextGameState; u16 gNextGameState;
u16 D_game_80161A34; u16 D_game_80161A34;
u16 gBgColor; u16 gBgColor;
u8 gBlurAlpha; u8 gBlurAlpha;
u8 D_game_80161A39; u8 gGameStandby;
f32 gFovY; f32 gFovY;
f32 gProjectNear; f32 gProjectNear;
f32 gProjectFar; f32 gProjectFar;
@ -25,28 +25,28 @@ static s32 sVsCameraULx[] = { 0, SCREEN_WIDTH / 2, 0, SCREEN_WIDTH / 2 };
static s32 sVsCameraLRx[] = { SCREEN_WIDTH / 2 - 1, SCREEN_WIDTH - 1, SCREEN_WIDTH / 2 - 1, SCREEN_WIDTH - 1 }; static s32 sVsCameraLRx[] = { SCREEN_WIDTH / 2 - 1, SCREEN_WIDTH - 1, SCREEN_WIDTH / 2 - 1, SCREEN_WIDTH - 1 };
static s32 sVsCameraULy[] = { 0, 0, SCREEN_HEIGHT / 2, SCREEN_HEIGHT / 2 }; static s32 sVsCameraULy[] = { 0, 0, SCREEN_HEIGHT / 2, SCREEN_HEIGHT / 2 };
static s32 sVsCameraLRy[] = { SCREEN_HEIGHT / 2 - 1, SCREEN_HEIGHT / 2 - 1, SCREEN_HEIGHT - 1, SCREEN_HEIGHT - 1 }; static s32 sVsCameraLRy[] = { SCREEN_HEIGHT / 2 - 1, SCREEN_HEIGHT / 2 - 1, SCREEN_HEIGHT - 1, SCREEN_HEIGHT - 1 };
static s32 sOverlaySetups[] = { static s32 sLevelSceneIds[] = {
/* LEVEL_CORNERIA */ OVL_SETUP_CORNERIA, /* LEVEL_CORNERIA */ SCENE_CORNERIA,
/* LEVEL_METEO */ OVL_SETUP_METEO, /* LEVEL_METEO */ SCENE_METEO,
/* LEVEL_SECTOR_X */ OVL_SETUP_SECTOR_X, /* LEVEL_SECTOR_X */ SCENE_SECTOR_X,
/* LEVEL_AREA_6 */ OVL_SETUP_AREA_6, /* LEVEL_AREA_6 */ SCENE_AREA_6,
/* LEVEL_UNK_4 */ OVL_SETUP_UNK_4, /* LEVEL_UNK_4 */ SCENE_UNK_4,
/* LEVEL_SECTOR_Y */ OVL_SETUP_SECTOR_Y, /* LEVEL_SECTOR_Y */ SCENE_SECTOR_Y,
/* LEVEL_VENOM_1 */ OVL_SETUP_VENOM_1, /* LEVEL_VENOM_1 */ SCENE_VENOM_1,
/* LEVEL_SOLAR */ OVL_SETUP_SOLAR, /* LEVEL_SOLAR */ SCENE_SOLAR,
/* LEVEL_ZONESS */ OVL_SETUP_ZONESS, /* LEVEL_ZONESS */ SCENE_ZONESS,
/* LEVEL_VENOM_ANDROSS */ OVL_SETUP_VENOM_ANDROSS, /* LEVEL_VENOM_ANDROSS */ SCENE_VENOM_ANDROSS,
/* LEVEL_TRAINING */ OVL_SETUP_TRAINING, /* LEVEL_TRAINING */ SCENE_TRAINING,
/* LEVEL_MACBETH */ OVL_SETUP_MACBETH, /* LEVEL_MACBETH */ SCENE_MACBETH,
/* LEVEL_TITANIA */ OVL_SETUP_TITANIA, /* LEVEL_TITANIA */ SCENE_TITANIA,
/* LEVEL_AQUAS */ OVL_SETUP_AQUAS, /* LEVEL_AQUAS */ SCENE_AQUAS,
/* LEVEL_FORTUNA */ OVL_SETUP_FORTUNA, /* LEVEL_FORTUNA */ SCENE_FORTUNA,
/* LEVEL_UNK_15 */ OVL_SETUP_TITLE, /* LEVEL_UNK_15 */ SCENE_TITLE,
/* LEVEL_KATINA */ OVL_SETUP_KATINA, /* LEVEL_KATINA */ SCENE_KATINA,
/* LEVEL_BOLSE */ OVL_SETUP_BOLSE, /* LEVEL_BOLSE */ SCENE_BOLSE,
/* LEVEL_SECTOR_Z */ OVL_SETUP_SECTOR_Z, /* LEVEL_SECTOR_Z */ SCENE_SECTOR_Z,
/* LEVEL_VENOM_2 */ OVL_SETUP_VENOM_2, /* LEVEL_VENOM_2 */ SCENE_VENOM_2,
/* LEVEL_VERSUS */ OVL_SETUP_VERSUS, /* LEVEL_VERSUS */ SCENE_VERSUS,
}; };
void Game_Initialize(void) { void Game_Initialize(void) {
@ -61,10 +61,10 @@ void Game_Initialize(void) {
gProjectNear = 10.0f; gProjectNear = 10.0f;
gProjectFar = 12800.0f; gProjectFar = 12800.0f;
D_game_80161A10 = D_game_80161A14 = 0.0f; D_game_80161A10 = D_game_80161A14 = 0.0f;
gOverlaySetup = OVL_SETUP_LOGO; gSceneId = SCENE_LOGO;
gOverlayStage = 0; gSceneSetup = 0;
Overlay_InitDma(); Load_InitDmaAndMsg();
D_game_80161A39 = true; gGameStandby = true;
} }
void Game_SetGameState(void) { void Game_SetGameState(void) {
@ -79,9 +79,9 @@ void Game_SetGameState(void) {
gCurrentLevel = gNextLevel; gCurrentLevel = gNextLevel;
Play_Setup(); Play_Setup();
gPlayState = PLAY_STANDBY; gPlayState = PLAY_STANDBY;
gLevelStage = gNextLevelStage; gLevelPhase = gNextLevelPhase;
gNextLevelStage = 0; gNextLevelPhase = 0;
if ((gLevelStage != 0) && (gCurrentLevel != LEVEL_VENOM_ANDROSS)) { if ((gLevelPhase != 0) && (gCurrentLevel != LEVEL_VENOM_ANDROSS)) {
D_ctx_8017782C = 0; D_ctx_8017782C = 0;
} }
break; break;
@ -98,10 +98,10 @@ void Game_SetGameState(void) {
gNextGameStateTimer = 3; gNextGameStateTimer = 3;
gAllRangeCheckpoint = 0; gAllRangeCheckpoint = 0;
gNextGameState = GSTATE_NONE; gNextGameState = GSTATE_NONE;
gOverlayStage = 0; gSceneSetup = 0;
gFillScreenColor = gBgColor = 0; gFillScreenColor = gBgColor = 0;
D_ctx_80177D20 = 0.0f; D_ctx_80177D20 = 0.0f;
if ((gCurrentLevel == LEVEL_VENOM_2) && (gLevelStage == 2)) { if ((gCurrentLevel == LEVEL_VENOM_2) && (gLevelPhase == 2)) {
gFillScreenColor = gBgColor = 0xFFFF; // 248, 248, 248 gFillScreenColor = gBgColor = 0xFFFF; // 248, 248, 248
gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 255; gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 255;
} else { } else {
@ -109,30 +109,30 @@ void Game_SetGameState(void) {
Audio_FadeOutAll(1); Audio_FadeOutAll(1);
} }
gFillScreenAlpha = 255; gFillScreenAlpha = 255;
gPlayerFillScreenAlphas[0] = 0; gPlayerGlareAlphas[0] = 0;
gRadioState = 0; gRadioState = 0;
D_ctx_80178428 = 0.0f; gStarfieldRoll = 0.0f;
gBlurAlpha = 255; gBlurAlpha = 255;
gDrawMode = DRAW_NONE; gDrawMode = DRAW_NONE;
Audio_ClearVoice(); Audio_ClearVoice();
Audio_SetBaseSfxReverb(0); Audio_SetBaseSfxReverb(0);
} }
bool func_game_800A1B6C(void) { bool Game_ChangeScene(void) {
static u8 sHoldTimer = 0; static u8 sHoldTimer = 0;
static u8 sOverlaySelect = 99; static u8 sSceneSelect = SCENE_LOGO;
static u8 sCurrentOverlay = 99; static u8 sCurrentSceneId = SCENE_LOGO;
static u8 sCurrentStage = 99; static u8 sCurrentSetup = SCENE_LOGO;
if (gOverlaySetup != sCurrentOverlay) { if (gSceneId != sCurrentSceneId) {
sHoldTimer = 2; sHoldTimer = 2;
sCurrentOverlay = gOverlaySetup; sCurrentSceneId = gSceneId;
} }
if (sHoldTimer == 0) { if (sHoldTimer == 0) {
sOverlaySelect = sCurrentOverlay; sSceneSelect = sCurrentSceneId;
sCurrentStage = gOverlayStage; sCurrentSetup = gSceneSetup;
} }
Overlay_Load(sOverlaySelect, sCurrentStage); Load_SceneSetup(sSceneSelect, sCurrentSetup);
if (sHoldTimer) { if (sHoldTimer) {
sHoldTimer--; sHoldTimer--;
@ -141,7 +141,7 @@ bool func_game_800A1B6C(void) {
return false; return false;
} }
void func_game_800A1C14(Gfx** dList) { void Game_InitMasterDL(Gfx** dList) {
gSPDisplayList((*dList)++, gRcpInitDL); gSPDisplayList((*dList)++, gRcpInitDL);
gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN, gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT - SCREEN_MARGIN); SCREEN_HEIGHT - SCREEN_MARGIN);
@ -168,26 +168,26 @@ void func_game_800A1C14(Gfx** dList) {
gDPSetColorDither((*dList)++, G_CD_MAGICSQ); gDPSetColorDither((*dList)++, G_CD_MAGICSQ);
} }
void func_game_800A1E68(Gfx** arg0) { void Game_InitStandbyDL(Gfx** dList) {
gSPDisplayList((*arg0)++, gRcpInitDL); gSPDisplayList((*dList)++, gRcpInitDL);
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT * 3); gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT * 3);
gDPSetFillColor((*arg0)++, FILL_COLOR(0x0001)); gDPSetFillColor((*dList)++, FILL_COLOR(0x0001));
gDPSetColorImage((*arg0)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, gFrameBuffers[0].data); gDPSetColorImage((*dList)++, G_IM_FMT_RGBA, G_IM_SIZ_16b, SCREEN_WIDTH, gFrameBuffers[0].data);
gDPFillRectangle((*arg0)++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT * 3 - 1); gDPFillRectangle((*dList)++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT * 3 - 1);
gDPPipeSync((*arg0)++); gDPPipeSync((*dList)++);
gDPSetColorDither((*arg0)++, G_CD_MAGICSQ); gDPSetColorDither((*dList)++, G_CD_MAGICSQ);
} }
void func_game_800A1F44(void) { void Game_InitFullViewport(void) {
gViewport->vp.vscale[0] = gViewport->vp.vtrans[0] = SCREEN_WIDTH * 2; gViewport->vp.vscale[0] = gViewport->vp.vtrans[0] = SCREEN_WIDTH * 2;
gViewport->vp.vscale[1] = gViewport->vp.vtrans[1] = SCREEN_HEIGHT * 2; gViewport->vp.vscale[1] = gViewport->vp.vtrans[1] = SCREEN_HEIGHT * 2;
gViewport->vp.vscale[2] = gViewport->vp.vtrans[2] = G_MAXZ / 2; gViewport->vp.vscale[2] = gViewport->vp.vtrans[2] = G_MAXZ / 2;
gViewport->vp.vscale[3] = gViewport->vp.vtrans[3] = 0; gViewport->vp.vscale[3] = gViewport->vp.vtrans[3] = 0;
} }
void func_game_800A1FB0(Gfx** arg0, u8 arg1, u8 arg2) { void Game_InitViewport(Gfx** dList, u8 camCount, u8 camIndex) {
if ((arg1 != 1) && (arg1 == 4)) { if ((camCount != 1) && (camCount == 4)) {
switch (arg2) { switch (camIndex) {
case 0: case 0:
gViewport->vp.vscale[0] = SCREEN_WIDTH * (D_game_80161A14 - 1.0f) * 2; gViewport->vp.vscale[0] = SCREEN_WIDTH * (D_game_80161A14 - 1.0f) * 2;
gViewport->vp.vscale[1] = SCREEN_HEIGHT * (D_game_80161A14 - 1.0f) * 2; gViewport->vp.vscale[1] = SCREEN_HEIGHT * (D_game_80161A14 - 1.0f) * 2;
@ -197,7 +197,7 @@ void func_game_800A1FB0(Gfx** arg0, u8 arg1, u8 arg2) {
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * (2.0f - D_game_80161A14) * 2; gViewport->vp.vtrans[1] = SCREEN_HEIGHT * (2.0f - D_game_80161A14) * 2;
gViewport->vp.vtrans[2] = G_MAXZ / 2; gViewport->vp.vtrans[2] = G_MAXZ / 2;
gViewport->vp.vtrans[3] = 0; gViewport->vp.vtrans[3] = 0;
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH / 2, gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH / 2,
SCREEN_HEIGHT / 2); SCREEN_HEIGHT / 2);
break; break;
case 1: case 1:
@ -209,7 +209,7 @@ void func_game_800A1FB0(Gfx** arg0, u8 arg1, u8 arg2) {
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * (2.0f - D_game_80161A14) * 2; gViewport->vp.vtrans[1] = SCREEN_HEIGHT * (2.0f - D_game_80161A14) * 2;
gViewport->vp.vtrans[2] = G_MAXZ / 2; gViewport->vp.vtrans[2] = G_MAXZ / 2;
gViewport->vp.vtrans[3] = 0; gViewport->vp.vtrans[3] = 0;
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, SCREEN_MARGIN, gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, SCREEN_MARGIN,
SCREEN_WIDTH - SCREEN_MARGIN, SCREEN_HEIGHT / 2); SCREEN_WIDTH - SCREEN_MARGIN, SCREEN_HEIGHT / 2);
break; break;
case 2: case 2:
@ -221,7 +221,7 @@ void func_game_800A1FB0(Gfx** arg0, u8 arg1, u8 arg2) {
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * D_game_80161A14 * 2; gViewport->vp.vtrans[1] = SCREEN_HEIGHT * D_game_80161A14 * 2;
gViewport->vp.vtrans[2] = G_MAXZ / 2; gViewport->vp.vtrans[2] = G_MAXZ / 2;
gViewport->vp.vtrans[3] = 0; gViewport->vp.vtrans[3] = 0;
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_HEIGHT / 2, SCREEN_WIDTH / 2, gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_HEIGHT / 2, SCREEN_WIDTH / 2,
SCREEN_HEIGHT - SCREEN_MARGIN); SCREEN_HEIGHT - SCREEN_MARGIN);
break; break;
case 3: case 3:
@ -233,18 +233,18 @@ void func_game_800A1FB0(Gfx** arg0, u8 arg1, u8 arg2) {
gViewport->vp.vtrans[1] = SCREEN_HEIGHT * D_game_80161A14 * 2; gViewport->vp.vtrans[1] = SCREEN_HEIGHT * D_game_80161A14 * 2;
gViewport->vp.vtrans[2] = G_MAXZ / 2; gViewport->vp.vtrans[2] = G_MAXZ / 2;
gViewport->vp.vtrans[3] = 0; gViewport->vp.vtrans[3] = 0;
gDPSetScissor((*arg0)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, gDPSetScissor((*dList)++, G_SC_NON_INTERLACE, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2,
SCREEN_WIDTH - SCREEN_MARGIN, SCREEN_HEIGHT - SCREEN_MARGIN); SCREEN_WIDTH - SCREEN_MARGIN, SCREEN_HEIGHT - SCREEN_MARGIN);
break; break;
default: default:
func_game_800A1F44(); Game_InitFullViewport();
break; break;
} }
} else { } else {
func_game_800A1F44(); Game_InitFullViewport();
if (1) {} if (1) {}
} }
gSPViewport((*arg0)++, gViewport++); gSPViewport((*dList)++, gViewport++);
} }
void Game_Draw(s32 playerNum) { void Game_Draw(s32 playerNum) {
@ -252,23 +252,23 @@ void Game_Draw(s32 playerNum) {
case DRAW_NONE: case DRAW_NONE:
break; break;
case DRAW_TITLE: case DRAW_TITLE:
func_bg_8003DAF0(); Background_DrawStarfield();
OvlMenu_CallFunction(OVLCALL_TITLE_DRAW, NULL); OvlMenu_CallFunction(OVLCALL_TITLE_DRAW, NULL);
break; break;
case DRAW_OPTION: case DRAW_OPTION:
func_bg_8003DAF0(); Background_DrawStarfield();
OvlMenu_CallFunction(OVLCALL_OPTION_DRAW, NULL); OvlMenu_CallFunction(OVLCALL_OPTION_DRAW, NULL);
break; break;
case DRAW_MAP: case DRAW_MAP:
func_bg_8003DAF0(); Background_DrawStarfield();
OvlMenu_CallFunction(OVLCALL_MAP_DRAW, NULL); OvlMenu_CallFunction(OVLCALL_MAP_DRAW, NULL);
break; break;
case DRAW_PLAY: case DRAW_PLAY:
gPlayerNum = playerNum; gPlayerNum = playerNum;
Play_Draw(); Play_Draw();
break; break;
case DRAW_UNK_MAP: case DRAW_UNK_MAP: // likely game over
func_bg_8003DAF0(); Background_DrawStarfield();
OvlMenu_CallFunction(OVLCALL_UNKMAP_DRAW, NULL); OvlMenu_CallFunction(OVLCALL_UNKMAP_DRAW, NULL);
break; break;
case DRAW_UNK_VS: case DRAW_UNK_VS:
@ -279,63 +279,63 @@ void Game_Draw(s32 playerNum) {
func_800A3CA0(); func_800A3CA0();
break; break;
case DRAW_ENDING: case DRAW_ENDING:
func_bg_8003DAF0(); Background_DrawStarfield();
gPlayerNum = playerNum; gPlayerNum = playerNum;
Ending_8018AAC4(); Ending_Draw();
break; break;
} }
} }
void func_game_800A25DC(void) { void Game_SetScene(void) {
switch (gGameState) { switch (gGameState) {
case GSTATE_INIT: case GSTATE_INIT:
gOverlaySetup = OVL_SETUP_TITLE; gSceneId = SCENE_TITLE;
gOverlayStage = 0; gSceneSetup = 0;
break; break;
case GSTATE_TITLE: case GSTATE_TITLE:
gOverlaySetup = OVL_SETUP_TITLE; gSceneId = SCENE_TITLE;
gOverlayStage = 0; gSceneSetup = 0;
break; break;
case GSTATE_MENU: case GSTATE_MENU:
gOverlaySetup = OVL_SETUP_MENU; gSceneId = SCENE_MENU;
gOverlayStage = 0; gSceneSetup = 0;
break; break;
case GSTATE_MAP: case GSTATE_MAP:
gOverlaySetup = OVL_SETUP_MAP; gSceneId = SCENE_MAP;
gOverlayStage = 0; gSceneSetup = 0;
return; return;
case GSTATE_VS_INIT: case GSTATE_VS_INIT:
gOverlaySetup = OVL_SETUP_VERSUS; gSceneId = SCENE_VERSUS;
break; break;
case GSTATE_PLAY: case GSTATE_PLAY:
gOverlaySetup = sOverlaySetups[gCurrentLevel]; gSceneId = sLevelSceneIds[gCurrentLevel];
break; break;
case GSTATE_GAME_OVER: case GSTATE_GAME_OVER:
gOverlaySetup = OVL_SETUP_GAME_OVER; gSceneId = SCENE_GAME_OVER;
gOverlayStage = 0; gSceneSetup = 0;
break; break;
case GSTATE_ENDING: case GSTATE_ENDING:
gOverlaySetup = OVL_SETUP_CREDITS; gSceneId = SCENE_CREDITS;
break; break;
} }
} }
void Game_Update(void) { void Game_Update(void) {
s32 i; s32 i;
u8 spBB; u8 partialFill;
u8 var_v0_3; u8 soundMode;
Game_SetGameState(); Game_SetGameState();
if (D_game_80161A39) { if (gGameStandby) {
func_game_800A1E68(&gUnkDisp1); Game_InitStandbyDL(&gUnkDisp1);
D_game_80161A39 = false; gGameStandby = false;
return; return;
} }
func_game_800A1C14(&gUnkDisp1); Game_InitMasterDL(&gUnkDisp1);
func_game_800A25DC(); Game_SetScene();
if (func_game_800A1B6C() != true) { if (Game_ChangeScene() != true) {
Lib_InitPerspective(&gUnkDisp1); Lib_InitPerspective(&gUnkDisp1);
func_game_800A1FB0(&gUnkDisp1, gCamCount, 0); Game_InitViewport(&gUnkDisp1, gCamCount, 0);
if (gNextGameStateTimer != 0) { if (gNextGameStateTimer != 0) {
gNextGameStateTimer--; gNextGameStateTimer--;
} }
@ -378,8 +378,8 @@ void Game_Update(void) {
break; break;
case GSTATE_START: case GSTATE_START:
gGameState = GSTATE_INIT; gGameState = GSTATE_INIT;
gOverlaySetup = OVL_SETUP_TITLE; gSceneId = SCENE_TITLE;
gOverlayStage = 0; gSceneSetup = 0;
break; break;
case GSTATE_INIT: case GSTATE_INIT:
gGameState = GSTATE_TITLE; gGameState = GSTATE_TITLE;
@ -390,9 +390,10 @@ void Game_Update(void) {
gCamCount = 1; gCamCount = 1;
gLifeCount[0] = 2; gLifeCount[0] = 2;
D_ctx_80177D20 = 0.0f; D_ctx_80177D20 = 0.0f;
D_hud_8016170C = gCsFrameCount = D_ctx_80177830 = gLevelStatusScreenTimer = gLevelClearScreenTimer = D_hud_8016170C = gCsFrameCount = gShowLevelClearStatusScreen = gLevelStartStatusScreenTimer =
D_versus_80178754 = gVersusMode = D_ctx_80177AE0 = D_ctx_80178410 = D_ctx_80177B40 = gPlayState = gLevelClearScreenTimer = D_versus_80178754 = gVersusMode = D_ctx_80177AE0 = gStarCount =
gOptionMenuStatus = gDrawMode = gShowBossHealth = gShowHud = gBgColor = gFillScreenAlpha = 0; D_ctx_80177B40 = gPlayState = gOptionMenuStatus = gDrawMode = gShowBossHealth = gShowHud =
gBgColor = gFillScreenAlpha = 0;
gNextGameState = D_ctx_80177C94 = D_ctx_80177CAC = D_ctx_80177CB4 = D_ctx_80177CBC = D_ctx_80177CC4 = gNextGameState = D_ctx_80177C94 = D_ctx_80177CAC = D_ctx_80177CB4 = D_ctx_80177CBC = D_ctx_80177CC4 =
D_ctx_80177C9C = D_ctx_80177CA4 = D_play_80161A5C = D_game_80161A34 = 0; D_ctx_80177C9C = D_ctx_80177CA4 = D_play_80161A5C = D_game_80161A34 = 0;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
@ -404,9 +405,9 @@ void Game_Update(void) {
D_ctx_80177958[i] = 1.0f; D_ctx_80177958[i] = 1.0f;
D_ctx_80177858[i] = 3; D_ctx_80177858[i] = 3;
D_ctx_80177870[i] = 0; gPlayerForms[i] = FORM_ARWING;
gShowCrosshairs[i] = true; gShowCrosshairs[i] = true;
gPlayerFillScreenAlphas[i] = 0; gPlayerGlareAlphas[i] = 0;
} }
gVersusStage = 0; gVersusStage = 0;
D_ctx_801778A4 = 3; D_ctx_801778A4 = 3;
@ -415,23 +416,23 @@ void Game_Update(void) {
D_play_800D3180[i] = 0; D_play_800D3180[i] = 0;
} }
gExpertMode = false; gExpertMode = false;
gSoundMode = gSaveFile.save.data.soundMode; gOptionSoundMode = gSaveFile.save.data.soundMode;
switch (gSoundMode) { switch (gOptionSoundMode) {
case OPTIONSOUND_STEREO: case OPTIONSOUND_STEREO:
var_v0_3 = SOUNDMODE_STEREO; soundMode = SOUNDMODE_STEREO;
break; break;
case OPTIONSOUND_MONO: case OPTIONSOUND_MONO:
var_v0_3 = SOUNDMODE_MONO; soundMode = SOUNDMODE_MONO;
break; break;
case OPTIONSOUND_HEADSET: case OPTIONSOUND_HEADSET:
var_v0_3 = SOUNDMODE_HEADSET; soundMode = SOUNDMODE_HEADSET;
break; break;
default: default:
gSoundMode = OPTIONSOUND_STEREO; gOptionSoundMode = OPTIONSOUND_STEREO;
var_v0_3 = SOUNDMODE_STEREO; soundMode = SOUNDMODE_STEREO;
break; break;
} }
SEQCMD_SET_SOUND_MODE(var_v0_3); SEQCMD_SET_SOUND_MODE(soundMode);
gVolumeSettings[0] = gSaveFile.save.data.musicVolume; gVolumeSettings[0] = gSaveFile.save.data.musicVolume;
gVolumeSettings[1] = gSaveFile.save.data.voiceVolume; gVolumeSettings[1] = gSaveFile.save.data.voiceVolume;
gVolumeSettings[2] = gSaveFile.save.data.sfxVolume; gVolumeSettings[2] = gSaveFile.save.data.sfxVolume;
@ -444,9 +445,9 @@ void Game_Update(void) {
if (gVolumeSettings[2] > 99) { if (gVolumeSettings[2] > 99) {
gVolumeSettings[2] = 99; gVolumeSettings[2] = 99;
} }
func_8001D8A8(0, gVolumeSettings[0]); Audio_SetVolume(0, gVolumeSettings[0]);
func_8001D8A8(1, gVolumeSettings[1]); Audio_SetVolume(1, gVolumeSettings[1]);
func_8001D8A8(2, gVolumeSettings[2]); Audio_SetVolume(2, gVolumeSettings[2]);
break; break;
case GSTATE_TITLE: case GSTATE_TITLE:
OvlMenu_CallFunction(OVLCALL_TITLE_UPDATE, NULL); OvlMenu_CallFunction(OVLCALL_TITLE_UPDATE, NULL);
@ -455,10 +456,10 @@ void Game_Update(void) {
OvlMenu_CallFunction(OVLCALL_OPTION_UPDATE, NULL); OvlMenu_CallFunction(OVLCALL_OPTION_UPDATE, NULL);
break; break;
case GSTATE_MAP: case GSTATE_MAP:
Map_8019E8D0(); Map_Main();
break; break;
case GSTATE_VS_INIT: case GSTATE_VS_INIT:
func_versus_800C20B0(); Versus_StartMatch();
break; break;
case GSTATE_PLAY: case GSTATE_PLAY:
Play_Main(); Play_Main();
@ -468,24 +469,24 @@ void Game_Update(void) {
break; break;
case GSTATE_ENDING: case GSTATE_ENDING:
gDrawMode = DRAW_ENDING; gDrawMode = DRAW_ENDING;
Ending_8018A96C(); Ending_Main();
break; break;
default: default:
break; break;
} }
Game_Draw(0); Game_Draw(0);
if (gCamCount == 2) { if (gCamCount == 2) {
func_game_800A1FB0(&gMasterDisp, gCamCount, 1); Game_InitViewport(&gMasterDisp, gCamCount, 1);
Game_Draw(1); Game_Draw(1);
gDPPipeSync(gMasterDisp++); gDPPipeSync(gMasterDisp++);
gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN, gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN,
SCREEN_HEIGHT - SCREEN_MARGIN); SCREEN_HEIGHT - SCREEN_MARGIN);
} else if ((gCamCount == 4) && (gDrawMode != DRAW_NONE)) { } else if ((gCamCount == 4) && (gDrawMode != DRAW_NONE)) {
func_game_800A1FB0(&gMasterDisp, gCamCount, 3); Game_InitViewport(&gMasterDisp, gCamCount, 3);
Game_Draw(3); Game_Draw(3);
func_game_800A1FB0(&gMasterDisp, gCamCount, 2); Game_InitViewport(&gMasterDisp, gCamCount, 2);
Game_Draw(2); Game_Draw(2);
func_game_800A1FB0(&gMasterDisp, gCamCount, 1); Game_InitViewport(&gMasterDisp, gCamCount, 1);
Game_Draw(1); Game_Draw(1);
gDPPipeSync(gMasterDisp++); gDPPipeSync(gMasterDisp++);
gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN, gDPSetScissor(gMasterDisp++, G_SC_NON_INTERLACE, SCREEN_MARGIN, SCREEN_MARGIN, SCREEN_WIDTH - SCREEN_MARGIN,
@ -513,13 +514,13 @@ void Game_Update(void) {
func_hud_8008CB8C(); func_hud_8008CB8C();
} }
spBB = 0; partialFill = false;
if (gCamCount == 1) { if (gCamCount == 1) {
Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, gPlayerFillScreenReds[0], Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, gPlayerGlareReds[0],
gPlayerFillScreenGreens[0], gPlayerFillScreenBlues[0], gPlayerFillScreenAlphas[0]); gPlayerGlareGreens[0], gPlayerGlareBlues[0], gPlayerGlareAlphas[0]);
if ((gDrawMode == DRAW_PLAY) || (gDrawMode == DRAW_ENDING)) { if ((gDrawMode == DRAW_PLAY) || (gDrawMode == DRAW_ENDING)) {
func_radio_800BB5D0(); func_radio_800BB5D0();
if (gShowHud != 0) { if (gShowHud) {
func_hud_8008FA84(); func_hud_8008FA84();
func_hud_8008CA44(); func_hud_8008CA44();
} }
@ -532,11 +533,11 @@ void Game_Update(void) {
Graphics_FillRectangle(&gMasterDisp, sVsCameraULx[i], sVsCameraULy[i], sVsCameraLRx[i], Graphics_FillRectangle(&gMasterDisp, sVsCameraULx[i], sVsCameraULy[i], sVsCameraLRx[i],
sVsCameraLRy[i], gFillScreenRed, gFillScreenGreen, gFillScreenBlue, sVsCameraLRy[i], gFillScreenRed, gFillScreenGreen, gFillScreenBlue,
gFillScreenAlpha); gFillScreenAlpha);
spBB = 1; partialFill = true;
} else { } else {
Graphics_FillRectangle(&gMasterDisp, sVsCameraULx[i], sVsCameraULy[i], sVsCameraLRx[i], Graphics_FillRectangle(&gMasterDisp, sVsCameraULx[i], sVsCameraULy[i], sVsCameraLRx[i],
sVsCameraLRy[i], gPlayerFillScreenReds[i], gPlayerFillScreenGreens[i], sVsCameraLRy[i], gPlayerGlareReds[i], gPlayerGlareGreens[i],
gPlayerFillScreenBlues[i], gPlayerFillScreenAlphas[i]); gPlayerGlareBlues[i], gPlayerGlareAlphas[i]);
} }
} }
} }
@ -547,7 +548,7 @@ void Game_Update(void) {
func_versus_800C1ED4(); func_versus_800C1ED4();
} }
func_fade_80084688(0, D_ctx_80177C50); func_fade_80084688(0, D_ctx_80177C50);
if (spBB == 0) { if (!partialFill) {
Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, gFillScreenRed, Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, gFillScreenRed,
gFillScreenGreen, gFillScreenBlue, gFillScreenAlpha); gFillScreenGreen, gFillScreenBlue, gFillScreenAlpha);
} }

View File

@ -92,8 +92,7 @@ void func_hud_80087788(void);
s16 D_hud_800D1970 = 0; s16 D_hud_800D1970 = 0;
// unused UNK_TYPE D_800D1974[14] = { 0 }; // unused
UNK_TYPE D_800D1974[14] = { 0 };
f32 D_800D19AC[] = { 255.0f, 255.0f, 255.0f, 255.0f, 255.0f }; f32 D_800D19AC[] = { 255.0f, 255.0f, 255.0f, 255.0f, 255.0f };
@ -465,7 +464,7 @@ void func_hud_80086110(f32 arg0, f32 arg1, s32 arg2) {
} }
if ((arg2 <= 0) && (arg2 != -2) && if ((arg2 <= 0) && (arg2 != -2) &&
((gPlayState == PLAY_PAUSE) || (D_ctx_80177830 == 1) || (gLevelStatusScreenTimer != 0))) { ((gPlayState == PLAY_PAUSE) || (gShowLevelClearStatusScreen == 1) || (gLevelStartStatusScreenTimer != 0))) {
RCP_SetupDL(&gMasterDisp, 0x4C); RCP_SetupDL(&gMasterDisp, 0x4C);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
if ((arg2 == 0) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE)) { if ((arg2 == 0) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE)) {
@ -723,11 +722,11 @@ void func_hud_80086CC8(void) {
f32 sp18; f32 sp18;
f32 temp; f32 temp;
if ((gPlayState != PLAY_PAUSE) && (gLevelStatusScreenTimer != 0)) { if ((gPlayState != PLAY_PAUSE) && (gLevelStartStatusScreenTimer != 0)) {
gLevelStatusScreenTimer -= 1; gLevelStartStatusScreenTimer -= 1;
} }
if (gLevelStatusScreenTimer == 1) { if (gLevelStartStatusScreenTimer == 1) {
D_80161718 = 30; D_80161718 = 30;
D_8016171C = 0; D_8016171C = 0;
} }
@ -735,7 +734,7 @@ void func_hud_80086CC8(void) {
temp = 108.0f; temp = 108.0f;
sp18 = 81.0f; sp18 = 81.0f;
if (gLevelStatusScreenTimer != 0) { if (gLevelStartStatusScreenTimer != 0) {
func_hud_80086C08(temp - 4.5f - 32.0f, sp18 - 24.0f - 4.0f, 7.4f, 3.9f); func_hud_80086C08(temp - 4.5f - 32.0f, sp18 - 24.0f - 4.0f, 7.4f, 3.9f);
if (gCurrentLevel != LEVEL_TRAINING) { if (gCurrentLevel != LEVEL_TRAINING) {
@ -1052,12 +1051,12 @@ void func_hud_80087B5C(void) {
f32 y5; f32 y5;
f32 y6; f32 y6;
if (D_ctx_80177830 == 0) { if (gShowLevelClearStatusScreen == 0) {
Audio_KillSfxById(0x41007012); Audio_KillSfxById(0x41007012);
D_801617C0[0] = 0; D_801617C0[0] = 0;
} }
if ((gPlayState != PLAY_PAUSE) && (D_ctx_80177830 == 1) && (!D_801617E8[0])) { if ((gPlayState != PLAY_PAUSE) && (gShowLevelClearStatusScreen == 1) && (!D_801617E8[0])) {
switch (D_801617C0[0]) { switch (D_801617C0[0]) {
case 0: case 0:
D_801617C0[5] = gHitCount; D_801617C0[5] = gHitCount;
@ -1175,7 +1174,7 @@ void func_hud_80087B5C(void) {
D_801617C0[6]--; D_801617C0[6]--;
} }
if (D_ctx_80177830 == 1) { if (gShowLevelClearStatusScreen == 1) {
x0 = 128.0f; x0 = 128.0f;
y0 = 30.0f; y0 = 30.0f;
@ -1259,14 +1258,14 @@ void func_hud_800884E4(void) {
s32 mask; s32 mask;
s32 i; s32 i;
D_ctx_80177B70[gCurrentPlanet] = gHitCount; D_ctx_80177B70[gMissionNumber] = gHitCount;
mask = 0x00FF0000; mask = 0x00FF0000;
for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) {
if (gTeamShields[3 - i] <= 0) { if (gTeamShields[3 - i] <= 0) {
D_ctx_80177B50[gCurrentPlanet] ^= mask; D_ctx_80177B50[gMissionNumber] ^= mask;
} else { } else {
D_ctx_80177B50[gCurrentPlanet] |= mask; D_ctx_80177B50[gMissionNumber] |= mask;
} }
mask >>= 8; mask >>= 8;
} }
@ -1291,7 +1290,7 @@ void func_hud_80088564(void) {
} }
if (D_play_800D3180[gCurrentLevel] == 2) { if (D_play_800D3180[gCurrentLevel] == 2) {
D_ctx_80177BB0[gCurrentPlanet] = 1; D_ctx_80177BB0[gMissionNumber] = 1;
if (gExpertMode) { if (gExpertMode) {
gSaveFile.save.data.planet[planetId].expertMedal = 1; gSaveFile.save.data.planet[planetId].expertMedal = 1;
@ -1300,7 +1299,7 @@ void func_hud_80088564(void) {
} }
} }
gCurrentPlanet++; gMissionNumber++;
gHitCount = 0; gHitCount = 0;
Save_Write(); Save_Write();
@ -1415,7 +1414,7 @@ void func_hud_80088970(void) {
player = &gPlayer[gPlayerNum]; player = &gPlayer[gPlayerNum];
if ((gPlayState == PLAY_PAUSE) && !gLevelStatusScreenTimer && !gVersusMode) { if ((gPlayState == PLAY_PAUSE) && !gLevelStartStatusScreenTimer && !gVersusMode) {
switch (D_80161810[0]) { switch (D_80161810[0]) {
case 0: case 0:
D_80161838[0] = 0; D_80161838[0] = 0;
@ -1491,7 +1490,7 @@ void func_hud_80088970(void) {
gOptionMenuStatus = OPTION_WAIT; gOptionMenuStatus = OPTION_WAIT;
gDrawMode = DRAW_NONE; gDrawMode = DRAW_NONE;
D_game_80161A34 = 7; D_game_80161A34 = 7;
D_ctx_80178410 = 0; gStarCount = 0;
break; break;
} else { } else {
if (gFillScreenAlpha == 0) { if (gFillScreenAlpha == 0) {
@ -1570,7 +1569,7 @@ void func_hud_80088970(void) {
gScreenFlashTimer = 0; gScreenFlashTimer = 0;
gPlayer[0].timer_1F8 = 0; gPlayer[0].timer_1F8 = 0;
gFillScreenAlpha = gFillScreenAlphaTarget = 255; gFillScreenAlpha = gFillScreenAlphaTarget = 255;
D_ctx_8017837C = 7; gFadeoutType = 7;
gDrawMode = DRAW_PLAY; gDrawMode = DRAW_PLAY;
gPlayState = PLAY_UPDATE; gPlayState = PLAY_UPDATE;
@ -1584,7 +1583,7 @@ void func_hud_80088970(void) {
} }
} }
if ((D_80161810[3] == 0) && (gPlayState == PLAY_PAUSE) && !gVersusMode && (gLevelStatusScreenTimer == 0)) { if ((D_80161810[3] == 0) && (gPlayState == PLAY_PAUSE) && !gVersusMode && (gLevelStartStatusScreenTimer == 0)) {
switch (D_80161810[0]) { switch (D_80161810[0]) {
case 0: case 0:
case 1: case 1:
@ -2014,7 +2013,7 @@ s32 func_hud_8008A4DC(void) {
return 0; return 0;
} }
if (gLevelStatusScreenTimer) { if (gLevelStartStatusScreenTimer) {
D_800D1E10 = 60.0f; D_800D1E10 = 60.0f;
} else { } else {
Math_SmoothStepToF(&D_800D1E10, 0.0f, 0.3f, 10.0f, 0.1f); Math_SmoothStepToF(&D_800D1E10, 0.0f, 0.3f, 10.0f, 0.1f);
@ -2101,9 +2100,9 @@ s32 func_hud_8008A4DC(void) {
break; break;
case LEVEL_SECTOR_Y: case LEVEL_SECTOR_Y:
if ((fabsf(gObjects58[0].obj.pos.x) < temp2 + 1000.0f) && if ((fabsf(gScenery360[0].obj.pos.x) < temp2 + 1000.0f) &&
(fabsf(gObjects58[0].obj.pos.z) < temp2 + 1000.0f)) { (fabsf(gScenery360[0].obj.pos.z) < temp2 + 1000.0f)) {
temp = 150.0f + ((12500.0f + gObjects58[0].obj.pos.z) / 446.42f); temp = 150.0f + ((12500.0f + gScenery360[0].obj.pos.z) / 446.42f);
if ((y < 150.0f) || (y > 206.0f)) { if ((y < 150.0f) || (y > 206.0f)) {
break; break;
@ -2851,7 +2850,7 @@ void func_hud_8008CBE4(void) {
D_80161748[gPlayerNum] = i + 1; D_80161748[gPlayerNum] = i + 1;
} }
if ((D_80161748[gPlayerNum] == (i + 1)) && (D_80161738[gPlayerNum])) { if ((D_80161748[gPlayerNum] == (i + 1)) && (D_80161738[gPlayerNum] != 0)) {
D_80161738[gPlayerNum]--; D_80161738[gPlayerNum]--;
if (D_80161738[gPlayerNum] & 4) { if (D_80161738[gPlayerNum] & 4) {
continue; continue;
@ -2948,12 +2947,12 @@ void func_hud_8008D4F0(f32 arg0, f32 arg1) {
D_800D211C[var_v1] = arg1; D_800D211C[var_v1] = arg1;
} }
temp_fs0 = gPlayer[gPlayerNum].unk_2BC * (1.0f / 90.0f); temp_fs0 = gPlayer[gPlayerNum].boostMeter * (1.0f / 90.0f);
temp_fv0 = 1.0f - temp_fs0; temp_fv0 = 1.0f - temp_fs0;
temp2 = sp68 * temp_fs0; temp2 = sp68 * temp_fs0;
if (!gPlayer[gPlayerNum].unk_2B4) { if (!gPlayer[gPlayerNum].boostCooldown) {
Math_SmoothStepToF(&D_800D19AC[var_v1], 255.0f, 0.4f, 100.0f, 0.01f); Math_SmoothStepToF(&D_800D19AC[var_v1], 255.0f, 0.4f, 100.0f, 0.01f);
} else { } else {
Math_SmoothStepToF(&D_800D19AC[var_v1], 100.0f, 0.4f, 100.0f, 0.01f); Math_SmoothStepToF(&D_800D19AC[var_v1], 100.0f, 0.4f, 100.0f, 0.01f);
@ -4159,22 +4158,22 @@ bool func_hud_800915FC(Actor* actor) {
f32 y; f32 y;
Vec3f vec; Vec3f vec;
Boss* boss; Boss* boss;
Object_58* obj58; Scenery360* scenery360;
bool ret = false; bool ret = false;
Math_Vec3fFromAngles(&vec, 0.0f, actor->unk_0F4.y, 650.0f + actor->fwork[9] * 10.0f); Math_Vec3fFromAngles(&vec, 0.0f, actor->unk_0F4.y, 650.0f + actor->fwork[9] * 10.0f);
if (gLevelMode == LEVELMODE_ALL_RANGE) { if (gLevelMode == LEVELMODE_ALL_RANGE) {
for (i = 0, obj58 = &gObjects58[0]; i < 200; i++, obj58++) { for (i = 0, scenery360 = &gScenery360[0]; i < 200; i++, scenery360++) {
if (obj58->obj.status != OBJ_ACTIVE) { if (scenery360->obj.status != OBJ_ACTIVE) {
continue; continue;
} }
if (fabsf(obj58->obj.pos.x - (actor->obj.pos.x + vec.x)) > 1200.0f) { if (fabsf(scenery360->obj.pos.x - (actor->obj.pos.x + vec.x)) > 1200.0f) {
continue; continue;
} }
if (fabsf(obj58->obj.pos.z - (actor->obj.pos.z + vec.z)) > 1200.0f) { if (fabsf(scenery360->obj.pos.z - (actor->obj.pos.z + vec.z)) > 1200.0f) {
continue; continue;
} }
@ -4229,7 +4228,8 @@ bool func_hud_80091864(Actor* actor) {
sp44 += 40.0f; sp44 += 40.0f;
if (sp44 >= 360.0f) { if (sp44 >= 360.0f) {
sp44 -= 360.0f; sp44 -= 360.0f;
} else if ((actor->obj.pos.y < (gGroundLevel + 50.0f)) && (gLevelType == LEVELTYPE_PLANET) && (sp44 > 180.0f)) { } else if ((actor->obj.pos.y < (gGroundHeight + 50.0f)) && (gLevelType == LEVELTYPE_PLANET) &&
(sp44 > 180.0f)) {
sp44 = 0.0f; sp44 = 0.0f;
} }
actor->iwork[0] = 0; actor->iwork[0] = 0;
@ -4286,8 +4286,8 @@ bool func_hud_80091B90(Actor* actor) {
actor->fwork[14] -= actor->fwork[14] * 0.1f; actor->fwork[14] -= actor->fwork[14] * 0.1f;
actor->fwork[12] -= actor->fwork[12] * 0.1f; actor->fwork[12] -= actor->fwork[12] * 0.1f;
if ((actor->obj.pos.y < gGroundLevel + 40.0f) && (actor->vel.y < 0.0f) && (gLevelType == LEVELTYPE_PLANET)) { if ((actor->obj.pos.y < gGroundHeight + 40.0f) && (actor->vel.y < 0.0f) && (gLevelType == LEVELTYPE_PLANET)) {
actor->obj.pos.y = gGroundLevel + 40.0f; actor->obj.pos.y = gGroundHeight + 40.0f;
actor->vel.y = 0.0f; actor->vel.y = 0.0f;
} }
actor->vel.z -= D_ctx_80177D08; actor->vel.z -= D_ctx_80177D08;
@ -4514,8 +4514,8 @@ bool func_hud_800924E0(Actor* actor) {
actor->vel.y = dest.y; actor->vel.y = dest.y;
actor->vel.z = dest.z; actor->vel.z = dest.z;
if (actor->obj.pos.y < gGroundLevel + 50.0f) { if (actor->obj.pos.y < gGroundHeight + 50.0f) {
actor->obj.pos.y = gGroundLevel + 50.0f; actor->obj.pos.y = gGroundHeight + 50.0f;
actor->vel.y = 0.0f; actor->vel.y = 0.0f;
} }
} }
@ -4888,7 +4888,7 @@ f32 D_800D22CC = 260.0f;
s32 D_800D22D0 = 50; s32 D_800D22D0 = 50;
s32 D_800D22D4 = 2; s32 D_800D22D4 = 2;
void func_hud_800935E8(Player* player) { void HUD_AquasStart(Player* player) {
Vec3f D_800D22D8[] = { { -1730.0f, 1600.0f, -6690.0f }, Vec3f D_800D22D8[] = { { -1730.0f, 1600.0f, -6690.0f },
{ -830.0f, 1600.0f, -7380.0f }, { -830.0f, 1600.0f, -7380.0f },
{ 0.0f, 1600.0f, -7380.0f } }; { 0.0f, 1600.0f, -7380.0f } };
@ -4923,7 +4923,7 @@ void func_hud_800935E8(Player* player) {
func_hud_80093310(); func_hud_80093310();
gCsFrameCount = 0; gCsFrameCount = 0;
D_ctx_80177AB0 = 1; D_ctx_80177AB0 = 1;
D_ctx_80177AC8 = 1; gAqDrawMode = 1;
player->unk_234 = 0; player->unk_234 = 0;
player->unk_1D0 = 1; player->unk_1D0 = 1;
player->unk_208 = 0; player->unk_208 = 0;
@ -5058,7 +5058,7 @@ void func_hud_800935E8(Player* player) {
break; break;
case 2: case 2:
gPlayerFillScreenAlphas[0] = 0; gPlayerGlareAlphas[0] = 0;
D_ctx_80177A10[0] = gLight1R; D_ctx_80177A10[0] = gLight1R;
D_ctx_80177A10[1] = gLight1G; D_ctx_80177A10[1] = gLight1G;
@ -5189,7 +5189,7 @@ void func_hud_800935E8(Player* player) {
if (player->timer_1F8 < 736) { if (player->timer_1F8 < 736) {
player->unk_1D0 = 4; player->unk_1D0 = 4;
D_ctx_80177AC8 = 1; gAqDrawMode = 1;
gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 255; gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 255;
gFillScreenAlphaTarget = 255; gFillScreenAlphaTarget = 255;
} }
@ -5226,7 +5226,7 @@ void func_hud_800935E8(Player* player) {
player->timer_1F8 = 1000; player->timer_1F8 = 1000;
D_ctx_80177AC8 = 0; gAqDrawMode = 0;
gFillScreenAlphaTarget = 0; gFillScreenAlphaTarget = 0;
Object_Kill(&actor->obj, actor->sfxSource); Object_Kill(&actor->obj, actor->sfxSource);
@ -5260,7 +5260,7 @@ void func_hud_800935E8(Player* player) {
} }
if (player->timer_1F8 <= 900) { if (player->timer_1F8 <= 900) {
gLevelStatusScreenTimer = 50; gLevelStartStatusScreenTimer = 50;
player->state_1C8 = PLAYERSTATE_1C8_ACTIVE; player->state_1C8 = PLAYERSTATE_1C8_ACTIVE;
player->unk_1D0 = 0; player->unk_1D0 = 0;
@ -5580,7 +5580,7 @@ void func_hud_80095538(Actor* actor, s32 arg1) {
actor->unk_0B6 = 47; actor->unk_0B6 = 47;
Object_SetInfo(&actor->info, actor->obj.id); Object_SetInfo(&actor->info, actor->obj.id);
} }
void func_hud_80095604(Player* player) { void HUD_AquasComplete(Player* player) {
s32 i; s32 i;
s32 j; s32 j;
Actor* actor; Actor* actor;
@ -5722,7 +5722,7 @@ void func_hud_80095604(Player* player) {
case 10: case 10:
player->unk_234 = 1; player->unk_234 = 1;
D_ctx_80177AC8 = 2; gAqDrawMode = 2;
player->unk_1D0 = 11; player->unk_1D0 = 11;
player->unk_0F8 = player->unk_0EC = player->unk_12C = player->unk_130 = 0.0f; player->unk_0F8 = player->unk_0EC = player->unk_12C = player->unk_130 = 0.0f;
@ -5865,7 +5865,7 @@ void func_hud_80095604(Player* player) {
player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->state_1C8 = PLAYERSTATE_1C8_NEXT;
player->timer_1F8 = 0; player->timer_1F8 = 0;
Audio_FadeOutAll(10); Audio_FadeOutAll(10);
D_ctx_8017837C = 4; gFadeoutType = 4;
} }
} }
@ -5925,11 +5925,11 @@ void func_hud_80095604(Player* player) {
break; break;
case 1000: case 1000:
D_ctx_80177830 = 1; gShowLevelClearStatusScreen = 1;
break; break;
case 1200: case 1200:
D_ctx_80177830 = 0; gShowLevelClearStatusScreen = 0;
break; break;
} }
@ -6066,7 +6066,7 @@ void func_hud_80096A74(Player* player) {
button = gControllerHold[player->num].button; button = gControllerHold[player->num].button;
gControllerHold[player->num].button = gBoostButton[player->num]; gControllerHold[player->num].button = gBoostButton[player->num];
player->unk_2BC = 1; player->boostMeter = 1;
player->timer_1F8 = 60; player->timer_1F8 = 60;
func_play_800B2574(player); func_play_800B2574(player);
@ -6084,7 +6084,7 @@ void func_hud_80096A74(Player* player) {
if (gCsFrameCount == 300) { if (gCsFrameCount == 300) {
D_ctx_80177CE8 = 0; D_ctx_80177CE8 = 0;
gLevelStatusScreenTimer = 50; gLevelStartStatusScreenTimer = 50;
player->state_1C8 = PLAYERSTATE_1C8_ACTIVE; player->state_1C8 = PLAYERSTATE_1C8_ACTIVE;
player->unk_0D0 = D_play_80161A54; player->unk_0D0 = D_play_80161A54;
player->unk_1D0 = 0; player->unk_1D0 = 0;

View File

@ -7,7 +7,7 @@ u8 sFillTimer = 3;
#include "fox_load_inits.c" #include "fox_load_inits.c"
OverlayInit sCurrentOverlay = { Scene sCurrentScene = {
NO_OVERLAY, NO_OVERLAY,
{ /* 0x1 */ NO_SEGMENT, { /* 0x1 */ NO_SEGMENT,
/* 0x2 */ NO_SEGMENT, /* 0x2 */ NO_SEGMENT,
@ -26,7 +26,7 @@ OverlayInit sCurrentOverlay = {
/* 0xF */ NO_SEGMENT }, /* 0xF */ NO_SEGMENT },
}; };
void Overlay_LoadSegment(void* vRomAddress, void* dest, ptrdiff_t size) { void Load_RomFile(void* vRomAddress, void* dest, ptrdiff_t size) {
s32 i; s32 i;
for (i = 0; gDmaTable[i].pRom.end != NULL; i++) { for (i = 0; gDmaTable[i].pRom.end != NULL; i++) {
@ -36,7 +36,7 @@ void Overlay_LoadSegment(void* vRomAddress, void* dest, ptrdiff_t size) {
} else { } else {
Lib_FillScreen(true); Lib_FillScreen(true);
sFillTimer = 3; sFillTimer = 3;
D_game_80161A39 = true; gGameStandby = true;
Lib_DmaRead(gDmaTable[i].pRom.start, gFrameBuffers, SEGMENT_SIZE(gDmaTable[i].pRom)); Lib_DmaRead(gDmaTable[i].pRom.start, gFrameBuffers, SEGMENT_SIZE(gDmaTable[i].pRom));
Mio0_Decompress(gFrameBuffers, dest); Mio0_Decompress(gFrameBuffers, dest);
} }
@ -45,43 +45,43 @@ void Overlay_LoadSegment(void* vRomAddress, void* dest, ptrdiff_t size) {
} }
} }
u8 Overlay_Init(OverlayInit* ovlInit) { u8 Load_SceneFiles(Scene* scene) {
u8* ramPtr = SEGMENT_VRAM_START(ovl_i1); u8* ramPtr = SEGMENT_VRAM_START(ovl_i1);
u8 segment; u8 segment;
u8 changeOvl = false; u8 changeScene = false;
if (ovlInit->ovl.rom.start == (0, sCurrentOverlay.ovl.rom.start)) { // fake because D_800CBDD4 is probably 2D array if (scene->ovl.rom.start == (0, sCurrentScene.ovl.rom.start)) { // fake because D_800CBDD4 is probably 2D array
ramPtr = ramPtr + SEGMENT_SIZE(ovlInit->ovl.rom); ramPtr = ramPtr + SEGMENT_SIZE(scene->ovl.rom);
ramPtr = ramPtr + SEGMENT_SIZE(ovlInit->ovl.bss); ramPtr = ramPtr + SEGMENT_SIZE(scene->ovl.bss);
} else { } else {
sCurrentOverlay.ovl.rom.start = ovlInit->ovl.rom.start; sCurrentScene.ovl.rom.start = scene->ovl.rom.start;
sCurrentOverlay.ovl.rom.end = ramPtr; sCurrentScene.ovl.rom.end = ramPtr;
if (ovlInit->ovl.rom.start != 0) { if (scene->ovl.rom.start != 0) {
changeOvl = true; changeScene = true;
Overlay_LoadSegment(ovlInit->ovl.rom.start, ramPtr, SEGMENT_SIZE(ovlInit->ovl.rom)); Load_RomFile(scene->ovl.rom.start, ramPtr, SEGMENT_SIZE(scene->ovl.rom));
ramPtr = ramPtr + SEGMENT_SIZE(ovlInit->ovl.rom); ramPtr = ramPtr + SEGMENT_SIZE(scene->ovl.rom);
bzero(ovlInit->ovl.bss.start, SEGMENT_SIZE(ovlInit->ovl.bss)); bzero(scene->ovl.bss.start, SEGMENT_SIZE(scene->ovl.bss));
ramPtr = ramPtr + SEGMENT_SIZE(ovlInit->ovl.bss); ramPtr = ramPtr + SEGMENT_SIZE(scene->ovl.bss);
} }
} }
segment = 0; segment = 0;
while ((segment < 15) && (ovlInit->assets[segment].start == sCurrentOverlay.assets[segment].start) && while ((segment < 15) && (scene->assets[segment].start == sCurrentScene.assets[segment].start) &&
changeOvl == 0) { (changeScene == false)) {
if (ovlInit->assets[segment].start != 0) { if (scene->assets[segment].start != 0) {
gSegments[segment + 1] = K0_TO_PHYS(ramPtr); gSegments[segment + 1] = K0_TO_PHYS(ramPtr);
gSPSegment(gUnkDisp1++, segment + 1, K0_TO_PHYS(ramPtr)); gSPSegment(gUnkDisp1++, segment + 1, K0_TO_PHYS(ramPtr));
ramPtr = ramPtr + SEGMENT_SIZE(ovlInit->assets[segment]); ramPtr = ramPtr + SEGMENT_SIZE(scene->assets[segment]);
} }
segment += 1; segment += 1;
} }
for (segment; segment < 15; segment += 1) { for (segment; segment < 15; segment += 1) {
sCurrentOverlay.assets[segment].start = ovlInit->assets[segment].start; sCurrentScene.assets[segment].start = scene->assets[segment].start;
sCurrentOverlay.assets[segment].end = ramPtr; sCurrentScene.assets[segment].end = ramPtr;
if (ovlInit->assets[segment].start != 0) { if (scene->assets[segment].start != 0) {
gSegments[segment + 1] = K0_TO_PHYS(ramPtr); gSegments[segment + 1] = K0_TO_PHYS(ramPtr);
gSPSegment(gUnkDisp1++, segment + 1, K0_TO_PHYS(ramPtr)); gSPSegment(gUnkDisp1++, segment + 1, K0_TO_PHYS(ramPtr));
Overlay_LoadSegment(ovlInit->assets[segment].start, ramPtr, SEGMENT_SIZE(ovlInit->assets[segment])); Load_RomFile(scene->assets[segment].start, ramPtr, SEGMENT_SIZE(scene->assets[segment]));
ramPtr = ramPtr + SEGMENT_SIZE(ovlInit->assets[segment]); ramPtr = ramPtr + SEGMENT_SIZE(scene->assets[segment]);
} }
} }
@ -90,112 +90,112 @@ u8 Overlay_Init(OverlayInit* ovlInit) {
} else if (gStartNMI == 0) { } else if (gStartNMI == 0) {
Lib_FillScreen(false); Lib_FillScreen(false);
} }
return changeOvl; return changeScene;
} }
u8 Overlay_Load(u8 ovlSetup, u8 ovlStage) { u8 Load_SceneSetup(u8 sceneId, u8 sceneSetup) {
u8 changeOvl; u8 changeScene;
switch (ovlSetup) { switch (sceneId) {
case OVL_SETUP_TITLE: case SCENE_TITLE:
changeOvl = Overlay_Init(&sOvlmenu_Title[ovlStage]); changeScene = Load_SceneFiles(&sOvlmenu_Title[sceneSetup]);
if (changeOvl == true) { if (changeScene == true) {
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_22); AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_22);
} }
break; break;
case OVL_SETUP_MENU: case SCENE_MENU:
changeOvl = Overlay_Init(&sOvlmenu_Option[ovlStage]); changeScene = Load_SceneFiles(&sOvlmenu_Option[sceneSetup]);
break; break;
case OVL_SETUP_MAP: case SCENE_MAP:
changeOvl = Overlay_Init(&sOvlmenu_Map[ovlStage]); changeScene = Load_SceneFiles(&sOvlmenu_Map[sceneSetup]);
break; break;
case OVL_SETUP_GAME_OVER: case SCENE_GAME_OVER:
changeOvl = Overlay_Init(&sOvlmenu_GameOver[ovlStage]); changeScene = Load_SceneFiles(&sOvlmenu_GameOver[sceneSetup]);
break; break;
case OVL_SETUP_CORNERIA: case SCENE_CORNERIA:
changeOvl = Overlay_Init(&sOvli1_Corneria[ovlStage]); changeScene = Load_SceneFiles(&sOvli1_Corneria[sceneSetup]);
break; break;
case OVL_SETUP_METEO: case SCENE_METEO:
changeOvl = Overlay_Init(&sOvli2_Meteo[ovlStage]); changeScene = Load_SceneFiles(&sOvli2_Meteo[sceneSetup]);
break; break;
case OVL_SETUP_TITANIA: case SCENE_TITANIA:
changeOvl = Overlay_Init(&sOvli5_Titania[ovlStage]); changeScene = Load_SceneFiles(&sOvli5_Titania[sceneSetup]);
break; break;
case OVL_SETUP_SECTOR_X: case SCENE_SECTOR_X:
changeOvl = Overlay_Init(&sOvli2_SectorX[ovlStage]); changeScene = Load_SceneFiles(&sOvli2_SectorX[sceneSetup]);
break; break;
case OVL_SETUP_SECTOR_Z: case SCENE_SECTOR_Z:
changeOvl = Overlay_Init(&sOvli4_SectorZ[ovlStage]); changeScene = Load_SceneFiles(&sOvli4_SectorZ[sceneSetup]);
break; break;
case OVL_SETUP_AQUAS: case SCENE_AQUAS:
changeOvl = Overlay_Init(&sOvli3_Aquas[ovlStage]); changeScene = Load_SceneFiles(&sOvli3_Aquas[sceneSetup]);
break; break;
case OVL_SETUP_AREA_6: case SCENE_AREA_6:
changeOvl = Overlay_Init(&sOvli3_Area6[ovlStage]); changeScene = Load_SceneFiles(&sOvli3_Area6[sceneSetup]);
break; break;
case OVL_SETUP_FORTUNA: case SCENE_FORTUNA:
changeOvl = Overlay_Init(&sOvli4_Fortuna[ovlStage]); changeScene = Load_SceneFiles(&sOvli4_Fortuna[sceneSetup]);
break; break;
case OVL_SETUP_UNK_4: case SCENE_UNK_4:
changeOvl = Overlay_Init(&sOvli3_Unk4[ovlStage]); changeScene = Load_SceneFiles(&sOvli3_Unk4[sceneSetup]);
break; break;
case OVL_SETUP_SECTOR_Y: case SCENE_SECTOR_Y:
changeOvl = Overlay_Init(&sOvli6_SectorY[ovlStage]); changeScene = Load_SceneFiles(&sOvli6_SectorY[sceneSetup]);
break; break;
case OVL_SETUP_SOLAR: case SCENE_SOLAR:
changeOvl = Overlay_Init(&sOvli3_Solar[ovlStage]); changeScene = Load_SceneFiles(&sOvli3_Solar[sceneSetup]);
break; break;
case OVL_SETUP_ZONESS: case SCENE_ZONESS:
changeOvl = Overlay_Init(&sOvli3_Zoness[ovlStage]); changeScene = Load_SceneFiles(&sOvli3_Zoness[sceneSetup]);
break; break;
case OVL_SETUP_VENOM_ANDROSS: case SCENE_VENOM_ANDROSS:
changeOvl = Overlay_Init(&sOvli6_Andross[ovlStage]); changeScene = Load_SceneFiles(&sOvli6_Andross[sceneSetup]);
break; break;
case OVL_SETUP_TRAINING: case SCENE_TRAINING:
changeOvl = Overlay_Init(&sOvli1_Training[ovlStage]); changeScene = Load_SceneFiles(&sOvli1_Training[sceneSetup]);
break; break;
case OVL_SETUP_VENOM_1: case SCENE_VENOM_1:
changeOvl = Overlay_Init(&sOvli1_Venom1[ovlStage]); changeScene = Load_SceneFiles(&sOvli1_Venom1[sceneSetup]);
break; break;
case OVL_SETUP_VENOM_2: case SCENE_VENOM_2:
changeOvl = Overlay_Init(&sOvli6_Venom2[ovlStage]); changeScene = Load_SceneFiles(&sOvli6_Venom2[sceneSetup]);
break; break;
case OVL_SETUP_20: case SCENE_20:
changeOvl = Overlay_Init(&sOvli2_Setup20[ovlStage]); changeScene = Load_SceneFiles(&sOvli2_Setup20[sceneSetup]);
break; break;
case OVL_SETUP_BOLSE: case SCENE_BOLSE:
changeOvl = Overlay_Init(&sOvli4_Bolse[ovlStage]); changeScene = Load_SceneFiles(&sOvli4_Bolse[sceneSetup]);
break; break;
case OVL_SETUP_KATINA: case SCENE_KATINA:
changeOvl = Overlay_Init(&sOvli4_Katina[ovlStage]); changeScene = Load_SceneFiles(&sOvli4_Katina[sceneSetup]);
break; break;
case OVL_SETUP_MACBETH: case SCENE_MACBETH:
changeOvl = Overlay_Init(&sOvli5_Macbeth[ovlStage]); changeScene = Load_SceneFiles(&sOvli5_Macbeth[sceneSetup]);
break; break;
case OVL_SETUP_VERSUS: case SCENE_VERSUS:
changeOvl = Overlay_Init(&sOvli2_Versus[ovlStage]); changeScene = Load_SceneFiles(&sOvli2_Versus[sceneSetup]);
if (changeOvl == true) { if (changeScene == true) {
AUDIO_SET_SPEC_ALT(SFXCHAN_3, AUDIOSPEC_16); AUDIO_SET_SPEC_ALT(SFXCHAN_3, AUDIOSPEC_16);
} }
break; break;
case OVL_SETUP_LOGO: case SCENE_LOGO:
changeOvl = Overlay_Init(&sNoOvl_Logo[ovlStage]); // Logo does not load an overlay file changeScene = Load_SceneFiles(&sNoOvl_Logo[sceneSetup]); // Logo does not load an overlay file
if (changeOvl == true) { if (changeScene == true) {
AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_14); AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_14);
} }
break; break;
case OVL_SETUP_CREDITS: case SCENE_CREDITS:
changeOvl = Overlay_Init(&sOvlending_Ending[ovlStage]); changeScene = Load_SceneFiles(&sOvlending_Ending[sceneSetup]);
break; break;
default: default:
(void) "DMA MODE ERROR %d\n"; (void) "DMA MODE ERROR %d\n";
changeOvl = false; changeScene = false;
break; break;
} }
return changeOvl; return changeScene;
} }
void Overlay_InitDma(void) { void Load_InitDmaAndMsg(void) {
Lib_DmaRead(SEGMENT_ROM_START(dma_table), SEGMENT_VRAM_START(dma_table), SEGMENT_ROM_SIZE(dma_table)); Lib_DmaRead(SEGMENT_ROM_START(dma_table), SEGMENT_VRAM_START(dma_table), SEGMENT_ROM_SIZE(dma_table));
Overlay_LoadSegment(SEGMENT_ROM_START(ast_radio), SEGMENT_VRAM_START(ast_radio), SEGMENT_ROM_SIZE(ast_radio)); Load_RomFile(SEGMENT_ROM_START(ast_radio), SEGMENT_VRAM_START(ast_radio), SEGMENT_ROM_SIZE(ast_radio));
} }

View File

@ -21,7 +21,7 @@
#define ROM_SEGMENT(file) \ #define ROM_SEGMENT(file) \
{ SEGMENT_ROM_START(file), SEGMENT_ROM_END(file) } { SEGMENT_ROM_START(file), SEGMENT_ROM_END(file) }
OverlayInit sNoOvl_Logo[1] = { Scene sNoOvl_Logo[1] = {
{ NO_OVERLAY, { NO_OVERLAY,
{ /* 0x1 */ NO_SEGMENT, { /* 0x1 */ NO_SEGMENT,
/* 0x2 */ NO_SEGMENT, /* 0x2 */ NO_SEGMENT,
@ -40,7 +40,7 @@ OverlayInit sNoOvl_Logo[1] = {
/* 0xF */ ROM_SEGMENT(ast_logo) } }, /* 0xF */ ROM_SEGMENT(ast_logo) } },
}; };
OverlayInit sOvlending_Ending[6] = { Scene sOvlending_Ending[6] = {
{ OVERLAY_OFFSETS(ovl_ending), { OVERLAY_OFFSETS(ovl_ending),
{ /* 0x1 */ NO_SEGMENT, { /* 0x1 */ NO_SEGMENT,
/* 0x2 */ NO_SEGMENT, /* 0x2 */ NO_SEGMENT,
@ -139,7 +139,7 @@ OverlayInit sOvlending_Ending[6] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvlmenu_Title[1] = { Scene sOvlmenu_Title[1] = {
{ OVERLAY_OFFSETS(ovl_menu), { OVERLAY_OFFSETS(ovl_menu),
{ /* 0x1 */ NO_SEGMENT, { /* 0x1 */ NO_SEGMENT,
/* 0x2 */ NO_SEGMENT, /* 0x2 */ NO_SEGMENT,
@ -158,7 +158,7 @@ OverlayInit sOvlmenu_Title[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvlmenu_Option[1] = { Scene sOvlmenu_Option[1] = {
{ OVERLAY_OFFSETS(ovl_menu), { OVERLAY_OFFSETS(ovl_menu),
{ /* 0x1 */ NO_SEGMENT, { /* 0x1 */ NO_SEGMENT,
/* 0x2 */ NO_SEGMENT, /* 0x2 */ NO_SEGMENT,
@ -177,7 +177,7 @@ OverlayInit sOvlmenu_Option[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvlmenu_Map[1] = { Scene sOvlmenu_Map[1] = {
{ OVERLAY_OFFSETS(ovl_menu), { OVERLAY_OFFSETS(ovl_menu),
{ /* 0x1 */ NO_SEGMENT, { /* 0x1 */ NO_SEGMENT,
/* 0x2 */ NO_SEGMENT, /* 0x2 */ NO_SEGMENT,
@ -196,7 +196,7 @@ OverlayInit sOvlmenu_Map[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvlmenu_GameOver[1] = { Scene sOvlmenu_GameOver[1] = {
{ OVERLAY_OFFSETS(ovl_menu), { OVERLAY_OFFSETS(ovl_menu),
{ /* 0x1 */ NO_SEGMENT, { /* 0x1 */ NO_SEGMENT,
/* 0x2 */ NO_SEGMENT, /* 0x2 */ NO_SEGMENT,
@ -215,7 +215,7 @@ OverlayInit sOvlmenu_GameOver[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli1_Corneria[1] = { Scene sOvli1_Corneria[1] = {
{ OVERLAY_OFFSETS(ovl_i1), { OVERLAY_OFFSETS(ovl_i1),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -234,7 +234,7 @@ OverlayInit sOvli1_Corneria[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli2_Meteo[2] = { Scene sOvli2_Meteo[2] = {
{ OVERLAY_OFFSETS(ovl_i2), { OVERLAY_OFFSETS(ovl_i2),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_space), /* 0x2 */ ROM_SEGMENT(ast_bg_space),
@ -269,7 +269,7 @@ OverlayInit sOvli2_Meteo[2] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli5_Titania[6] = { Scene sOvli5_Titania[6] = {
{ OVERLAY_OFFSETS(ovl_i5), { OVERLAY_OFFSETS(ovl_i5),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -368,7 +368,7 @@ OverlayInit sOvli5_Titania[6] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli2_SectorX[2] = { Scene sOvli2_SectorX[2] = {
{ OVERLAY_OFFSETS(ovl_i2), { OVERLAY_OFFSETS(ovl_i2),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_space), /* 0x2 */ ROM_SEGMENT(ast_bg_space),
@ -403,7 +403,7 @@ OverlayInit sOvli2_SectorX[2] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli4_SectorZ[1] = { Scene sOvli4_SectorZ[1] = {
{ OVERLAY_OFFSETS(ovl_i4), { OVERLAY_OFFSETS(ovl_i4),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_space), /* 0x2 */ ROM_SEGMENT(ast_bg_space),
@ -422,7 +422,7 @@ OverlayInit sOvli4_SectorZ[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli3_Aquas[1] = { Scene sOvli3_Aquas[1] = {
{ OVERLAY_OFFSETS(ovl_i3), { OVERLAY_OFFSETS(ovl_i3),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -441,7 +441,7 @@ OverlayInit sOvli3_Aquas[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli3_Area6[1] = { Scene sOvli3_Area6[1] = {
{ OVERLAY_OFFSETS(ovl_i3), { OVERLAY_OFFSETS(ovl_i3),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_space), /* 0x2 */ ROM_SEGMENT(ast_bg_space),
@ -460,7 +460,7 @@ OverlayInit sOvli3_Area6[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli4_Fortuna[2] = { Scene sOvli4_Fortuna[2] = {
{ OVERLAY_OFFSETS(ovl_i4), { OVERLAY_OFFSETS(ovl_i4),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -495,7 +495,7 @@ OverlayInit sOvli4_Fortuna[2] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli3_Unk4[1] = { Scene sOvli3_Unk4[1] = {
{ OVERLAY_OFFSETS(ovl_i3), { OVERLAY_OFFSETS(ovl_i3),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_space), /* 0x2 */ ROM_SEGMENT(ast_bg_space),
@ -514,7 +514,7 @@ OverlayInit sOvli3_Unk4[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli6_SectorY[1] = { Scene sOvli6_SectorY[1] = {
{ OVERLAY_OFFSETS(ovl_i6), { OVERLAY_OFFSETS(ovl_i6),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_space), /* 0x2 */ ROM_SEGMENT(ast_bg_space),
@ -533,7 +533,7 @@ OverlayInit sOvli6_SectorY[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli3_Solar[1] = { Scene sOvli3_Solar[1] = {
{ OVERLAY_OFFSETS(ovl_i3), { OVERLAY_OFFSETS(ovl_i3),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -552,7 +552,7 @@ OverlayInit sOvli3_Solar[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli3_Zoness[1] = { Scene sOvli3_Zoness[1] = {
{ OVERLAY_OFFSETS(ovl_i3), { OVERLAY_OFFSETS(ovl_i3),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -571,7 +571,7 @@ OverlayInit sOvli3_Zoness[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli1_Venom1[1] = { Scene sOvli1_Venom1[1] = {
{ OVERLAY_OFFSETS(ovl_i1), { OVERLAY_OFFSETS(ovl_i1),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -590,7 +590,7 @@ OverlayInit sOvli1_Venom1[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli6_Andross[1] = { Scene sOvli6_Andross[1] = {
{ OVERLAY_OFFSETS(ovl_i6), { OVERLAY_OFFSETS(ovl_i6),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -609,7 +609,7 @@ OverlayInit sOvli6_Andross[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli6_Venom2[2] = { Scene sOvli6_Venom2[2] = {
{ OVERLAY_OFFSETS(ovl_i6), { OVERLAY_OFFSETS(ovl_i6),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -644,7 +644,7 @@ OverlayInit sOvli6_Venom2[2] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli2_Setup20[1] = { Scene sOvli2_Setup20[1] = {
{ OVERLAY_OFFSETS(ovl_i2), { OVERLAY_OFFSETS(ovl_i2),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -663,7 +663,7 @@ OverlayInit sOvli2_Setup20[1] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli4_Bolse[1] = { Scene sOvli4_Bolse[1] = {
{ OVERLAY_OFFSETS(ovl_i4), { OVERLAY_OFFSETS(ovl_i4),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_space), /* 0x2 */ ROM_SEGMENT(ast_bg_space),
@ -682,7 +682,7 @@ OverlayInit sOvli4_Bolse[1] = {
/* 0xF */ ROM_SEGMENT(ast_star_wolf) } }, /* 0xF */ ROM_SEGMENT(ast_star_wolf) } },
}; };
OverlayInit sOvli4_Katina[1] = { Scene sOvli4_Katina[1] = {
{ OVERLAY_OFFSETS(ovl_i4), { OVERLAY_OFFSETS(ovl_i4),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -701,7 +701,7 @@ OverlayInit sOvli4_Katina[1] = {
/* 0xF */ ROM_SEGMENT(ast_star_wolf) } }, /* 0xF */ ROM_SEGMENT(ast_star_wolf) } },
}; };
OverlayInit sOvli5_Macbeth[2] = { Scene sOvli5_Macbeth[2] = {
{ OVERLAY_OFFSETS(ovl_i5), { OVERLAY_OFFSETS(ovl_i5),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -736,7 +736,7 @@ OverlayInit sOvli5_Macbeth[2] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sOvli1_Training[1] = { Scene sOvli1_Training[1] = {
{ OVERLAY_OFFSETS(ovl_i1), { OVERLAY_OFFSETS(ovl_i1),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -755,7 +755,7 @@ OverlayInit sOvli1_Training[1] = {
/* 0xF */ ROM_SEGMENT(ast_star_wolf) } }, /* 0xF */ ROM_SEGMENT(ast_star_wolf) } },
}; };
OverlayInit sOvli2_Versus[2] = { Scene sOvli2_Versus[2] = {
{ OVERLAY_OFFSETS(ovl_i2), { OVERLAY_OFFSETS(ovl_i2),
{ /* 0x1 */ ROM_SEGMENT(ast_common), { /* 0x1 */ ROM_SEGMENT(ast_common),
/* 0x2 */ ROM_SEGMENT(ast_bg_planet), /* 0x2 */ ROM_SEGMENT(ast_bg_planet),
@ -790,7 +790,7 @@ OverlayInit sOvli2_Versus[2] = {
/* 0xF */ NO_SEGMENT } }, /* 0xF */ NO_SEGMENT } },
}; };
OverlayInit sUnused_Overlay[1] = { Scene sOvlUnused_Unk[1] = {
{ OVERLAY_OFFSETS(ovl_unused), { OVERLAY_OFFSETS(ovl_unused),
{ /* 0x1 */ NO_SEGMENT, { /* 0x1 */ NO_SEGMENT,
/* 0x2 */ NO_SEGMENT, /* 0x2 */ NO_SEGMENT,

File diff suppressed because it is too large Load Diff

View File

@ -176,7 +176,7 @@ void Animation_DrawLimb(s32 mode, Limb* limb, Limb** skeleton, Vec3f* jointTable
if (mode >= 2) { if (mode >= 2) {
Matrix_MultVec3f(gCalcMatrix, &origin, &pos); Matrix_MultVec3f(gCalcMatrix, &origin, &pos);
if (mode != 5) { if (mode != 5) {
func_edisplay_8005F670(&pos); Display_SetSecondLight(&pos);
} }
} }
Matrix_Mult(gGfxMatrix, gCalcMatrix, MTXF_APPLY); Matrix_Mult(gGfxMatrix, gCalcMatrix, MTXF_APPLY);

View File

@ -281,14 +281,14 @@ void func_tank_800441C8(Player* player, f32* hitboxData, f32 xPos, f32 yPos, f32
} }
void func_tank_800443DC(Player* player) { void func_tank_800443DC(Player* player) {
Object_80* obj80; Scenery* scenery;
s32 i; s32 i;
for (i = 0, obj80 = gObjects80; i < ARRAY_COUNT(gObjects80); i++, obj80++) { for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) {
if ((obj80->obj.status == OBJ_ACTIVE) && (obj80->obj.id == OBJ_80_58) && if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id == OBJ_SCENERY_58) &&
((player->unk_138 - 2000.0f) < obj80->obj.pos.z)) { ((player->unk_138 - 2000.0f) < scenery->obj.pos.z)) {
func_tank_800441C8(player, obj80->info.hitbox, obj80->obj.pos.x, obj80->obj.pos.y, obj80->obj.pos.z, func_tank_800441C8(player, scenery->info.hitbox, scenery->obj.pos.x, scenery->obj.pos.y, scenery->obj.pos.z,
obj80->obj.rot.x, obj80->obj.rot.y, obj80->obj.rot.z); scenery->obj.rot.x, scenery->obj.rot.y, scenery->obj.rot.z);
} }
} }
} }
@ -307,12 +307,12 @@ void func_tank_800444BC(Player* player) {
sp30 = 0.0f; sp30 = 0.0f;
} }
sp40 = sp3C = 0.0f; sp40 = sp3C = 0.0f;
sp38 = gGroundLevel; sp38 = gGroundHeight;
if (D_ctx_801784AC == 4) { if (D_ctx_801784AC == 4) {
Ground_801B6E20(player->pos.x, player->unk_138 + player->unk_144, &sp40, &sp38, &sp3C); Ground_801B6E20(player->pos.x, player->unk_138 + player->unk_144, &sp40, &sp38, &sp3C);
} }
if (gCurrentLevel == LEVEL_MACBETH) { if (gCurrentLevel == LEVEL_MACBETH) {
D_MA_801BE250[27] = gGroundLevel; D_MA_801BE250[27] = gGroundHeight;
D_MA_801BE250[28] = D_MA_801BE250[29] = 0.0f; D_MA_801BE250[28] = D_MA_801BE250[29] = 0.0f;
D_800C9F10 = 0.0f; D_800C9F10 = 0.0f;
func_tank_80047754(player); func_tank_80047754(player);
@ -328,10 +328,10 @@ void func_tank_800444BC(Player* player) {
if (player->vel.y < -20.0f) { if (player->vel.y < -20.0f) {
player->unk_1F4 = 20; player->unk_1F4 = 20;
} }
if (D_ctx_80177BAC != 0) { if (gTiStartLandmaster != 0) {
D_ctx_80177BAC = 0; gTiStartLandmaster = 0;
AUDIO_PLAY_BGM(SEQ_ID_TITANIA | SEQ_FLAG); AUDIO_PLAY_BGM(SEQ_ID_TITANIA | SEQ_FLAG);
func_8001C8B8(0); Audio_StartPlayerNoise(0);
} }
player->pos.y = sp38 - 3.0f; player->pos.y = sp38 - 3.0f;
@ -508,7 +508,7 @@ void func_tank_80045130(Player* player) {
Math_SmoothStepToF(&player->unk_16C, 0.0f, 1.0f, 0.2f, 0.0f); Math_SmoothStepToF(&player->unk_16C, 0.0f, 1.0f, 0.2f, 0.0f);
if (gInputPress->button & Z_TRIG) { if (gInputPress->button & Z_TRIG) {
player->sfx.bank = 1; player->sfx.bank = 1;
if ((player->timer_1E0 != 0) && (player->unk_12C > 0.0f) && (player->unk_2BC < 10.0f)) { if ((player->timer_1E0 != 0) && (player->unk_12C > 0.0f) && (player->boostMeter < 10.0f)) {
player->unk_1DC = 1; player->unk_1DC = 1;
player->timer_1E8 = 15; player->timer_1E8 = 15;
player->unk_1F0 = 20; player->unk_1F0 = 20;
@ -521,7 +521,7 @@ void func_tank_80045130(Player* player) {
} }
if (gInputPress->button & R_TRIG) { if (gInputPress->button & R_TRIG) {
player->sfx.bank = 1; player->sfx.bank = 1;
if ((player->timer_1E4 != 0) && (player->unk_12C < 0.0f) && (player->unk_2BC < 10.0f)) { if ((player->timer_1E4 != 0) && (player->unk_12C < 0.0f) && (player->boostMeter < 10.0f)) {
player->unk_1DC = 1; player->unk_1DC = 1;
player->timer_1E8 = 15; player->timer_1E8 = 15;
player->unk_1F0 = -20; player->unk_1F0 = -20;
@ -546,7 +546,7 @@ void func_tank_80045348(Player* player) {
s16 sp2E = false; s16 sp2E = false;
if (player->unk_19C >= 0) { if (player->unk_19C >= 0) {
if ((gBoostButton[player->num] & gInputHold->button) && !player->unk_2B4) { if ((gBoostButton[player->num] & gInputHold->button) && !player->boostCooldown) {
D_800C9F14++; D_800C9F14++;
sp2E = true; sp2E = true;
if (D_800C9F24 == 0.0f) { if (D_800C9F24 == 0.0f) {
@ -569,7 +569,7 @@ void func_tank_80045348(Player* player) {
} else { } else {
D_800C9F24 = 0.0f; D_800C9F24 = 0.0f;
} }
if ((gBrakeButton[player->num] & gInputHold->button) && !player->unk_2B4 && !sp2E) { if ((gBrakeButton[player->num] & gInputHold->button) && !player->boostCooldown && !sp2E) {
D_800C9F14++; D_800C9F14++;
sp44 = 5.0f; sp44 = 5.0f;
sp40 = 100.0f; sp40 = 100.0f;
@ -596,7 +596,7 @@ void func_tank_80045678(Player* player) {
Audio_KillSfxBySourceAndId(player->sfxSource, 0x01008016); Audio_KillSfxBySourceAndId(player->sfxSource, 0x01008016);
Audio_KillSfxBySourceAndId(player->sfxSource, 0x1100000A); Audio_KillSfxBySourceAndId(player->sfxSource, 0x1100000A);
} }
if ((gInputHold->button & Z_TRIG) && !player->unk_2B4) { if ((gInputHold->button & Z_TRIG) && !player->boostCooldown) {
D_800C9F14++; D_800C9F14++;
if (D_800C9F20 == 0.0f) { if (D_800C9F20 == 0.0f) {
AUDIO_PLAY_SFX(0x01004024, player->sfxSource, 0); AUDIO_PLAY_SFX(0x01004024, player->sfxSource, 0);
@ -626,7 +626,7 @@ void func_tank_80045678(Player* player) {
Audio_KillSfxBySourceAndId(player->sfxSource, 0x01008016); Audio_KillSfxBySourceAndId(player->sfxSource, 0x01008016);
Audio_KillSfxBySourceAndId(player->sfxSource, 0x1100000A); Audio_KillSfxBySourceAndId(player->sfxSource, 0x1100000A);
} }
if ((gInputHold->button & R_TRIG) && !player->unk_2B4) { if ((gInputHold->button & R_TRIG) && !player->boostCooldown) {
D_800C9F14++; D_800C9F14++;
if (player->unk_2C0 == 0.0f) { if (player->unk_2C0 == 0.0f) {
AUDIO_PLAY_SFX(0x01004024, player->sfxSource, 0); AUDIO_PLAY_SFX(0x01004024, player->sfxSource, 0);
@ -785,14 +785,14 @@ void func_tank_800460E0(Player* player, f32* hitboxData, f32 arg2, f32 arg3, f32
} }
void func_tank_80046260(Player* player) { void func_tank_80046260(Player* player) {
Object_80* obj80; Scenery* scenery;
s32 i; s32 i;
for (i = 0, obj80 = gObjects80; i < ARRAY_COUNT(gObjects80); i++, obj80++) { for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) {
if ((obj80->obj.status == OBJ_ACTIVE) && (obj80->obj.id == OBJ_80_58) && if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id == OBJ_SCENERY_58) &&
((player->unk_138 - 2000.0f) < obj80->obj.pos.z) && (obj80->obj.pos.y < player->pos.y)) { ((player->unk_138 - 2000.0f) < scenery->obj.pos.z) && (scenery->obj.pos.y < player->pos.y)) {
func_tank_800460E0(player, obj80->info.hitbox, obj80->obj.pos.x, obj80->obj.pos.y, obj80->obj.pos.z, func_tank_800460E0(player, scenery->info.hitbox, scenery->obj.pos.x, scenery->obj.pos.y, scenery->obj.pos.z,
obj80->obj.rot.x, obj80->obj.rot.y, obj80->obj.rot.z); scenery->obj.rot.x, scenery->obj.rot.y, scenery->obj.rot.z);
} }
} }
} }
@ -808,7 +808,7 @@ void func_tank_80046358(Player* player) {
player->unk_064 = player->pos.x; player->unk_064 = player->pos.x;
player->unk_06C = player->unk_138 + -20.0f; player->unk_06C = player->unk_138 + -20.0f;
player->unk_068 = gGroundLevel + 3.0f; player->unk_068 = gGroundHeight + 3.0f;
player->unk_248 = 0.0f; player->unk_248 = 0.0f;
player->unk_24C = 0.0f; player->unk_24C = 0.0f;
player->unk_070 = 0.0f; player->unk_070 = 0.0f;
@ -844,14 +844,14 @@ void func_tank_8004641C(Player* player, s32 arg1, f32 arg2, f32 arg3, f32 arg4,
if (func_play_800A8054(arg1, arg2, arg3, arg4, sp84, sp80, sp7C, &sp58, &sp4C)) { if (func_play_800A8054(arg1, arg2, arg3, arg4, sp84, sp80, sp7C, &sp58, &sp4C)) {
if (D_MA_801BE250[27] < arg3 + sp58.y) { if (D_MA_801BE250[27] < arg3 + sp58.y) {
D_MA_801BE250[27] = arg3 + sp58.y; D_MA_801BE250[27] = arg3 + sp58.y;
if (arg1 == OBJ_80_67) { if (arg1 == OBJ_SCENERY_67) {
player->unk_1DC = 0; player->unk_1DC = 0;
D_800C9F04 = 1; D_800C9F04 = 1;
} }
} }
D_MA_801BE250[28] = sp58.x; D_MA_801BE250[28] = sp58.x;
D_MA_801BE250[29] = sp58.z; D_MA_801BE250[29] = sp58.z;
} else if ((arg1 == OBJ_80_67) && (D_MA_801BE250[27] == 0.0f) && } else if ((arg1 == OBJ_SCENERY_67) && (D_MA_801BE250[27] == 0.0f) &&
func_play_800A8054(arg1, arg2 + 20.0f, arg3, arg4, sp84, sp80, sp7C, &sp58, &sp4C)) { func_play_800A8054(arg1, arg2 + 20.0f, arg3, arg4, sp84, sp80, sp7C, &sp58, &sp4C)) {
player->unk_1DC = 9; player->unk_1DC = 9;
player->timer_1E8 = 15; player->timer_1E8 = 15;
@ -875,7 +875,7 @@ static f32 D_800C9F4C[5] = { 0.0f, -1.0f, 1.0f, 0.5f, -0.5f };
void func_tank_80046704(Player* player) { void func_tank_80046704(Player* player) {
s32 pad[7]; s32 pad[7];
s16 i; s16 i;
Object_80* obj80; Scenery* scenery;
f32 temp1; f32 temp1;
f32 temp2; f32 temp2;
@ -883,35 +883,39 @@ void func_tank_80046704(Player* player) {
D_800C9F00--; D_800C9F00--;
} }
if (1) {} if (1) {}
for (i = 0, obj80 = gObjects80; i < ARRAY_COUNT(gObjects80); i++, obj80++) { for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) {
if ((obj80->obj.status == OBJ_ACTIVE) && ((player->unk_138 - 2000.0f) < obj80->obj.pos.z)) { if ((scenery->obj.status == OBJ_ACTIVE) && ((player->unk_138 - 2000.0f) < scenery->obj.pos.z)) {
if ((obj80->obj.id == OBJ_80_69) || (obj80->obj.id == OBJ_80_70) || (obj80->obj.id == OBJ_80_71) || if ((scenery->obj.id == OBJ_SCENERY_69) || (scenery->obj.id == OBJ_SCENERY_70) ||
(obj80->obj.id == OBJ_80_72) || (obj80->obj.id == OBJ_80_73) || (obj80->obj.id == OBJ_80_67)) { (scenery->obj.id == OBJ_SCENERY_71) || (scenery->obj.id == OBJ_SCENERY_72) ||
temp1 = obj80->obj.pos.x - player->pos.x; (scenery->obj.id == OBJ_SCENERY_73) || (scenery->obj.id == OBJ_SCENERY_67)) {
temp2 = obj80->obj.pos.z - player->unk_138; temp1 = scenery->obj.pos.x - player->pos.x;
temp2 = scenery->obj.pos.z - player->unk_138;
if (sqrtf(SQ(temp1) + SQ(temp2)) < 2000.0f) { if (sqrtf(SQ(temp1) + SQ(temp2)) < 2000.0f) {
func_tank_8004641C(player, obj80->obj.id, obj80->obj.pos.x, obj80->obj.pos.y, obj80->obj.pos.z, func_tank_8004641C(player, scenery->obj.id, scenery->obj.pos.x, scenery->obj.pos.y,
obj80->obj.rot.x, obj80->obj.rot.y, obj80->obj.rot.z); scenery->obj.pos.z, scenery->obj.rot.x, scenery->obj.rot.y, scenery->obj.rot.z);
} }
} else if (obj80->obj.id == OBJ_80_74) { } else if (scenery->obj.id == OBJ_SCENERY_74) {
if (((player->pos.x - 820.0f) <= obj80->obj.pos.x) && (obj80->obj.pos.x <= (player->pos.x + 820.0f)) && if (((player->pos.x - 820.0f) <= scenery->obj.pos.x) &&
((player->pos.y - 50.0f) <= obj80->obj.pos.y) && (obj80->obj.pos.y <= (player->pos.y + 50.0f)) && (scenery->obj.pos.x <= (player->pos.x + 820.0f)) &&
(player->unk_138 <= obj80->obj.pos.z) && (obj80->obj.pos.z <= (player->unk_138 + 960.0f))) { ((player->pos.y - 50.0f) <= scenery->obj.pos.y) &&
D_MA_801BE250[27] = obj80->obj.pos.y; (scenery->obj.pos.y <= (player->pos.y + 50.0f)) && (player->unk_138 <= scenery->obj.pos.z) &&
(scenery->obj.pos.z <= (player->unk_138 + 960.0f))) {
D_MA_801BE250[27] = scenery->obj.pos.y;
player->unk_064 = player->pos.x; player->unk_064 = player->pos.x;
player->unk_068 = D_MA_801BE250[27] - 3.0f; player->unk_068 = D_MA_801BE250[27] - 3.0f;
} }
} }
if ((obj80->obj.id == OBJ_80_59) || (obj80->obj.id == OBJ_80_60) || (obj80->obj.id == OBJ_80_61) || if ((scenery->obj.id == OBJ_SCENERY_59) || (scenery->obj.id == OBJ_SCENERY_60) ||
(obj80->obj.id == OBJ_80_63) || (obj80->obj.id == OBJ_80_105) || (obj80->obj.id == OBJ_80_66) || (scenery->obj.id == OBJ_SCENERY_61) || (scenery->obj.id == OBJ_SCENERY_63) ||
(obj80->obj.id == OBJ_80_67) || (obj80->obj.id == OBJ_80_68)) { (scenery->obj.id == OBJ_SCENERY_105) || (scenery->obj.id == OBJ_SCENERY_66) ||
(scenery->obj.id == OBJ_SCENERY_67) || (scenery->obj.id == OBJ_SCENERY_68)) {
s32 temp_v0; s32 temp_v0;
s32 sp94; s32 sp94;
temp_v0 = func_tank_80046E40(player, obj80->info.hitbox, &sp94, obj80->obj.pos.x, obj80->obj.pos.y, temp_v0 = func_tank_80046E40(player, scenery->info.hitbox, &sp94, scenery->obj.pos.x,
obj80->obj.pos.z, obj80->obj.rot.x, obj80->obj.rot.y, obj80->obj.rot.z, scenery->obj.pos.y, scenery->obj.pos.z, scenery->obj.rot.x,
0.0f, 0.0f, 0.0f); scenery->obj.rot.y, scenery->obj.rot.z, 0.0f, 0.0f, 0.0f);
switch (temp_v0) { switch (temp_v0) {
case 0: case 0:
break; break;
@ -929,9 +933,9 @@ void func_tank_80046704(Player* player) {
player->pos.x += (D_800C9F4C[temp_v0] * 5.0f); player->pos.x += (D_800C9F4C[temp_v0] * 5.0f);
break; break;
case 3: case 3:
if ((obj80->obj.id == OBJ_80_59) || (obj80->obj.id == OBJ_80_60) || if ((scenery->obj.id == OBJ_SCENERY_59) || (scenery->obj.id == OBJ_SCENERY_60) ||
(obj80->obj.id == OBJ_80_63) || (obj80->obj.id == OBJ_80_66) || (scenery->obj.id == OBJ_SCENERY_63) || (scenery->obj.id == OBJ_SCENERY_66) ||
(obj80->obj.id == OBJ_80_68)) { (scenery->obj.id == OBJ_SCENERY_68)) {
Player_ApplyDamage(player, temp_v0, 5); Player_ApplyDamage(player, temp_v0, 5);
} }
player->unk_0D0 = -(D_800C9F00 * 1.5f); player->unk_0D0 = -(D_800C9F00 * 1.5f);
@ -940,37 +944,37 @@ void func_tank_80046704(Player* player) {
AUDIO_PLAY_SFX(0x09008015, player->sfxSource, 0); AUDIO_PLAY_SFX(0x09008015, player->sfxSource, 0);
break; break;
} }
if (obj80->obj.id == OBJ_80_59) { if (scenery->obj.id == OBJ_SCENERY_59) {
if (((player->pos.x - 230.0f) <= obj80->obj.pos.x) && if (((player->pos.x - 230.0f) <= scenery->obj.pos.x) &&
(obj80->obj.pos.x <= (player->pos.x + 230.0f)) && (scenery->obj.pos.x <= (player->pos.x + 230.0f)) &&
((80.0f <= player->pos.y - obj80->obj.pos.y)) && ((80.0f <= player->pos.y - scenery->obj.pos.y)) &&
((player->pos.y - obj80->obj.pos.y) < 210.0f) && ((player->pos.y - scenery->obj.pos.y) < 210.0f) &&
((player->unk_138 - 220.0f) <= obj80->obj.pos.z) && ((player->unk_138 - 220.0f) <= scenery->obj.pos.z) &&
(obj80->obj.pos.z <= (player->unk_138 + 220.0f))) { (scenery->obj.pos.z <= (player->unk_138 + 220.0f))) {
if (!(((player->pos.x - 210.0f) <= obj80->obj.pos.x) && if (!(((player->pos.x - 210.0f) <= scenery->obj.pos.x) &&
(obj80->obj.pos.x <= (player->pos.x + 210.0f))) && (scenery->obj.pos.x <= (player->pos.x + 210.0f))) &&
(D_MA_801BE250[27] == 0.f) && (player->vel.y < 0.f)) { (D_MA_801BE250[27] == 0.f) && (player->vel.y < 0.f)) {
player->unk_1DC = 9; player->unk_1DC = 9;
player->timer_1E8 = 15; player->timer_1E8 = 15;
if ((player->pos.x - 200.0f) <= obj80->obj.pos.x) { if ((player->pos.x - 200.0f) <= scenery->obj.pos.x) {
player->unk_1EC = player->unk_1F0 = 20; player->unk_1EC = player->unk_1F0 = 20;
} else { } else {
player->unk_1EC = player->unk_1F0 = -20; player->unk_1EC = player->unk_1F0 = -20;
} }
} else { } else {
D_800C9F04 = 1; D_800C9F04 = 1;
D_MA_801BE250[27] = obj80->obj.pos.y + 206.0f; D_MA_801BE250[27] = scenery->obj.pos.y + 206.0f;
player->unk_1DC = 0; player->unk_1DC = 0;
} }
} }
if (((player->pos.x - 220.0f) <= obj80->obj.pos.x) && if (((player->pos.x - 220.0f) <= scenery->obj.pos.x) &&
(obj80->obj.pos.x <= (player->pos.x + 220.0f)) && (scenery->obj.pos.x <= (player->pos.x + 220.0f)) &&
((player->unk_138 - 220.0f) <= obj80->obj.pos.z) && ((player->unk_138 - 220.0f) <= scenery->obj.pos.z) &&
(obj80->obj.pos.z <= (player->unk_138 + 220.0f)) && (player->pos.y >= 200.0f)) { (scenery->obj.pos.z <= (player->unk_138 + 220.0f)) && (player->pos.y >= 200.0f)) {
player->unk_068 = obj80->obj.pos.y + 204.0f; player->unk_068 = scenery->obj.pos.y + 204.0f;
} }
} else if ((obj80->obj.id == OBJ_80_105) && Macbeth_801A3C20(player->unk_138)) { } else if ((scenery->obj.id == OBJ_SCENERY_105) && Macbeth_801A3C20(player->unk_138)) {
if (((player->pos.x - 200.0f) < D_MA_801BE250[21]) && if (((player->pos.x - 200.0f) < D_MA_801BE250[21]) &&
(D_MA_801BE250[21] < (player->pos.x + 200.0f))) { (D_MA_801BE250[21] < (player->pos.x + 200.0f))) {
player->unk_068 = D_MA_801BE250[22] - 1.0f; player->unk_068 = D_MA_801BE250[22] - 1.0f;
@ -1106,31 +1110,31 @@ void func_tank_80047504(Player* player) {
D_800C9F14 = 0; D_800C9F14 = 0;
func_tank_80045678(player); func_tank_80045678(player);
func_tank_80045348(player); func_tank_80045348(player);
if (!player->unk_2B4) { if (!player->boostCooldown) {
if (D_800C9F14 != 0) { if (D_800C9F14 != 0) {
if (D_800C9F14 >= 2) { if (D_800C9F14 >= 2) {
player->unk_2BC += 2.0f; player->boostMeter += 2.0f;
} else { } else {
player->unk_2BC += 1.0f; player->boostMeter += 1.0f;
} }
if (player->unk_2BC > 90.0f) { if (player->boostMeter > 90.0f) {
player->unk_2BC = 90.0f; player->boostMeter = 90.0f;
player->unk_2B4 = true; player->boostCooldown = true;
Audio_KillSfxBySourceAndId(player->sfxSource, 0x01004024); Audio_KillSfxBySourceAndId(player->sfxSource, 0x01004024);
Audio_KillSfxBySourceAndId(player->sfxSource, 0x01008016); Audio_KillSfxBySourceAndId(player->sfxSource, 0x01008016);
} }
} else { } else {
if (player->unk_2BC > 0.0f) { if (player->boostMeter > 0.0f) {
player->unk_2B4 = true; player->boostCooldown = true;
Audio_KillSfxBySourceAndId(player->sfxSource, 0x01004024); Audio_KillSfxBySourceAndId(player->sfxSource, 0x01004024);
Audio_KillSfxBySourceAndId(player->sfxSource, 0x01008016); Audio_KillSfxBySourceAndId(player->sfxSource, 0x01008016);
} }
} }
} else { } else {
player->unk_2BC -= 1.0f; player->boostMeter -= 1.0f;
if (player->unk_2BC <= 0.0f) { if (player->boostMeter <= 0.0f) {
player->unk_2B4 = false; player->boostCooldown = false;
player->unk_2BC = 0.0f; player->boostMeter = 0.0f;
} }
} }
func_play_800B41E0(player); func_play_800B41E0(player);
@ -1144,7 +1148,7 @@ void func_tank_80047504(Player* player) {
} else { } else {
player->unk_064 = player->pos.x; player->unk_064 = player->pos.x;
player->unk_06C = player->unk_138 + -10.0f; player->unk_06C = player->unk_138 + -10.0f;
player->unk_068 = gGroundLevel - 4.0f; player->unk_068 = gGroundHeight - 4.0f;
player->unk_248 = 0.0f; player->unk_248 = 0.0f;
player->unk_24C = 0.0f; player->unk_24C = 0.0f;
player->unk_070 = 0.0f; player->unk_070 = 0.0f;
@ -1329,7 +1333,7 @@ void func_tank_800481F4(Player* player) {
Actor* actor; Actor* actor;
Boss* boss; Boss* boss;
Sprite* sprite; Sprite* sprite;
Object_80* obj80; Scenery* scenery;
s32 sp98; s32 sp98;
s32 pad2; s32 pad2;
f32 var_fv1; f32 var_fv1;
@ -1337,20 +1341,22 @@ void func_tank_800481F4(Player* player) {
func_play_800A887C(player); func_play_800A887C(player);
func_tank_800444BC(player); func_tank_800444BC(player);
if (player->timer_498 == 0) { if (player->timer_498 == 0) {
for (i = 0, obj80 = gObjects80; i < ARRAY_COUNT(gObjects80); i++, obj80++) { for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) {
if ((obj80->obj.status == OBJ_ACTIVE) && (obj80->obj.id != OBJ_80_58) && (obj80->obj.id != OBJ_80_105) && if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id != OBJ_SCENERY_58) &&
(obj80->obj.id != OBJ_80_59) && (obj80->obj.id != OBJ_80_60) && (obj80->obj.id != OBJ_80_63) && (scenery->obj.id != OBJ_SCENERY_105) && (scenery->obj.id != OBJ_SCENERY_59) &&
(obj80->obj.id != OBJ_80_66) && (obj80->obj.id != OBJ_80_67) && (obj80->obj.id != OBJ_80_68) && (scenery->obj.id != OBJ_SCENERY_60) && (scenery->obj.id != OBJ_SCENERY_63) &&
(obj80->obj.id != OBJ_80_70) && (obj80->obj.id != OBJ_80_72) && (obj80->obj.id != OBJ_80_71) && (scenery->obj.id != OBJ_SCENERY_66) && (scenery->obj.id != OBJ_SCENERY_67) &&
(obj80->obj.id != OBJ_80_73) && (obj80->obj.id != OBJ_80_74) && (obj80->obj.id != OBJ_80_69) && (scenery->obj.id != OBJ_SCENERY_68) && (scenery->obj.id != OBJ_SCENERY_70) &&
((player->unk_138 - 2000.0f) < obj80->obj.pos.z)) { (scenery->obj.id != OBJ_SCENERY_72) && (scenery->obj.id != OBJ_SCENERY_71) &&
var_fv1 = obj80->obj.rot.y; (scenery->obj.id != OBJ_SCENERY_73) && (scenery->obj.id != OBJ_SCENERY_74) &&
if (obj80->info.action == (ObjectFunc) func_enmy_80066EA8) { (scenery->obj.id != OBJ_SCENERY_69) && ((player->unk_138 - 2000.0f) < scenery->obj.pos.z)) {
var_fv1 = scenery->obj.rot.y;
if (scenery->info.action == (ObjectFunc) func_enmy_80066EA8) {
var_fv1 = 0.0f; var_fv1 = 0.0f;
} }
temp_v0 = temp_v0 = func_play_800A7974(player, scenery->info.hitbox, &sp98, scenery->obj.pos.x,
func_play_800A7974(player, obj80->info.hitbox, &sp98, obj80->obj.pos.x, obj80->obj.pos.y, scenery->obj.pos.y, scenery->obj.pos.z, scenery->obj.rot.x, var_fv1,
obj80->obj.pos.z, obj80->obj.rot.x, var_fv1, obj80->obj.rot.z, 0.0f, 0.0f, 0.0f); scenery->obj.rot.z, 0.0f, 0.0f, 0.0f);
if (temp_v0 != 0) { if (temp_v0 != 0) {
if (temp_v0 < 0) { if (temp_v0 < 0) {
if (temp_v0 == -1) { if (temp_v0 == -1) {
@ -1370,7 +1376,7 @@ void func_tank_800481F4(Player* player) {
AUDIO_PLAY_SFX(0x19000001, player->sfxSource, 0); AUDIO_PLAY_SFX(0x19000001, player->sfxSource, 0);
} }
} else { } else {
Player_ApplyDamage(player, temp_v0, obj80->info.damage); Player_ApplyDamage(player, temp_v0, scenery->info.damage);
} }
} }
} }

View File

@ -68,11 +68,11 @@ void func_versus_800BC760(void) {
gOptionMenuStatus = OPTION_WAIT; gOptionMenuStatus = OPTION_WAIT;
D_ctx_80177B40 = 0; D_ctx_80177B40 = 0;
gBgColor = 0; gBgColor = 0;
gPlayerFillScreenAlphas[0] = 0; gPlayerGlareAlphas[0] = 0;
gPlayerFillScreenAlphas[1] = 0; gPlayerGlareAlphas[1] = 0;
gPlayerFillScreenAlphas[2] = 0; gPlayerGlareAlphas[2] = 0;
gPlayerFillScreenAlphas[3] = 0; gPlayerGlareAlphas[3] = 0;
gOverlayStage = 0; gSceneSetup = 0;
gRadioState = 0; gRadioState = 0;
gVersusMode = 0; gVersusMode = 0;
gFillScreenAlphaTarget = 0; gFillScreenAlphaTarget = 0;
@ -441,7 +441,7 @@ s32 func_versus_800BE564(void) {
continue; continue;
} }
D_80178780[i] = 1; D_80178780[i] = 1;
D_ctx_80177870[i] = 0; gPlayerForms[i] = FORM_ARWING;
ret++; ret++;
} }
return ret; return ret;
@ -461,16 +461,16 @@ s32 func_versus_800BE564(void) {
} }
} }
if (D_801787F8[i]) { if (D_801787F8[i] != 0) {
D_801787F8[i]--; D_801787F8[i]--;
} }
if ((sUnlockLandmaster) && (D_80178780[i] == 0) && (gControllerPress[i].button & B_BUTTON)) { if (sUnlockLandmaster && (D_80178780[i] == 0) && (gControllerPress[i].button & B_BUTTON)) {
AUDIO_PLAY_SFX(0x49000003, gDefaultSfxSource, 4); AUDIO_PLAY_SFX(0x49000003, gDefaultSfxSource, 4);
D_80178780[i] = 2; D_80178780[i] = 2;
} }
if ((sUnlockOnFoot) && (D_80178780[i] == 0) && if (sUnlockOnFoot && (D_80178780[i] == 0) &&
((gControllerPress[i].button & L_CBUTTONS) || (gControllerPress[i].button & D_CBUTTONS) || ((gControllerPress[i].button & L_CBUTTONS) || (gControllerPress[i].button & D_CBUTTONS) ||
(gControllerPress[i].button & U_CBUTTONS) || (gControllerPress[i].button & R_CBUTTONS))) { (gControllerPress[i].button & U_CBUTTONS) || (gControllerPress[i].button & R_CBUTTONS))) {
AUDIO_PLAY_SFX(0x49000003, gDefaultSfxSource, 4); AUDIO_PLAY_SFX(0x49000003, gDefaultSfxSource, 4);
@ -482,19 +482,19 @@ s32 func_versus_800BE564(void) {
D_80178780[i] = 1; D_80178780[i] = 1;
} }
if (D_80178780[i]) { if (D_80178780[i] != 0) {
switch (D_80178780[i]) { switch (D_80178780[i]) {
case 1: case 1:
D_ctx_80177870[i] = 0; gPlayerForms[i] = FORM_ARWING;
break; break;
case 2: case 2:
D_ctx_80177870[i] = 1; gPlayerForms[i] = FORM_LANDMASTER;
break; break;
case 3: case 3:
D_ctx_80177870[i] = 3; gPlayerForms[i] = FORM_ON_FOOT;
break; break;
default: default:
D_ctx_80177870[i] = 0; gPlayerForms[i] = FORM_ARWING;
break; break;
} }
ret++; ret++;
@ -664,7 +664,7 @@ s32 func_versus_800BF17C(void) {
} else { } else {
D_80178780[i] = 0; D_80178780[i] = 0;
gPlayer[i].unk_1D0 = 0; gPlayer[i].unk_1D0 = 0;
if ((!D_80178780[i]) && (D_801787F8[i] == 0)) { if ((D_80178780[i] == 0) && (D_801787F8[i] == 0)) {
if (sUnlockLandmaster && sUnlockOnFoot) { if (sUnlockLandmaster && sUnlockOnFoot) {
D_80178780[i] = RAND_INT(3.0f) + 1; D_80178780[i] = RAND_INT(3.0f) + 1;
} }
@ -699,19 +699,19 @@ s32 func_versus_800BF17C(void) {
if (D_80178780[i] != 0) { if (D_80178780[i] != 0) {
switch (D_80178780[i]) { switch (D_80178780[i]) {
case 1: case 1:
D_ctx_80177870[i] = 0; gPlayerForms[i] = FORM_ARWING;
break; break;
case 2: case 2:
D_ctx_80177870[i] = 1; gPlayerForms[i] = FORM_LANDMASTER;
break; break;
case 3: case 3:
D_ctx_80177870[i] = 3; gPlayerForms[i] = FORM_ON_FOOT;
break; break;
default: default:
D_ctx_80177870[i] = 0; gPlayerForms[i] = FORM_ARWING;
break; break;
} }
@ -771,7 +771,7 @@ void func_versus_800BF750(void) {
continue; continue;
} }
for (j = 0, temp = 0; j < 4; j++) { for (j = 0, temp = 0; j < 4; j++) {
if ((D_ctx_80177B00[i][j] != 0) && (gGameFrameCount & 4)) { if ((gVsLockOnTimers[i][j] != 0) && (gGameFrameCount & 4)) {
gDPSetPrimColor(gMasterDisp++, 0, 0, D_800D4C3C[j], D_800D4C4C[j], D_800D4C5C[j], 255); gDPSetPrimColor(gMasterDisp++, 0, 0, D_800D4C3C[j], D_800D4C4C[j], D_800D4C5C[j], 255);
func_versus_800BDA54(D_800D4C1C[i] + temp * 9.0f, D_800D4C2C[i]); func_versus_800BDA54(D_800D4C1C[i] + temp * 9.0f, D_800D4C2C[i]);
temp++; temp++;
@ -1806,12 +1806,12 @@ void func_versus_800C1ED4(void) {
func_fade_80084688(2, var_a1); func_fade_80084688(2, var_a1);
} }
void func_versus_800C20B0(void) { void Versus_StartMatch(void) {
switch (gOptionMenuStatus) { switch (gOptionMenuStatus) {
case 0: case 0:
if (gNextGameStateTimer == 0) { if (gNextGameStateTimer == 0) {
gOptionMenuStatus = OPTION_SETUP; gOptionMenuStatus = OPTION_SETUP;
D_ctx_80178410 = 0; gStarCount = 0;
} }
break; break;
@ -1824,7 +1824,7 @@ void func_versus_800C20B0(void) {
Play_Setup(); Play_Setup();
if (gVersusStage == VS_STAGE_SECTOR_Z) { if (gVersusStage == VS_STAGE_SECTOR_Z) {
gOverlayStage = 1; gSceneSetup = 1;
} }
gCurrentLevel = LEVEL_VERSUS; gCurrentLevel = LEVEL_VERSUS;
@ -1919,7 +1919,7 @@ void func_versus_800C2244(Actor* actor) {
x3 += 360.0f; x3 += 360.0f;
} }
} else if (actor->obj.pos.y < gGroundLevel + 50.0f) { } else if (actor->obj.pos.y < gGroundHeight + 50.0f) {
if (x3 > 180.0f) { if (x3 > 180.0f) {
x3 = 0.0f; x3 = 0.0f;
actor->unk_0F4.x = 0.0f; actor->unk_0F4.x = 0.0f;
@ -1955,8 +1955,8 @@ void func_versus_800C2244(Actor* actor) {
actor->fwork[14] -= actor->fwork[14] * 0.1f; actor->fwork[14] -= actor->fwork[14] * 0.1f;
actor->fwork[12] -= actor->fwork[12] * 0.1f; actor->fwork[12] -= actor->fwork[12] * 0.1f;
if ((actor->obj.pos.y < gGroundLevel + 40.0f) && (actor->vel.y < 0.0f)) { if ((actor->obj.pos.y < gGroundHeight + 40.0f) && (actor->vel.y < 0.0f)) {
actor->obj.pos.y = gGroundLevel + 40.0f; actor->obj.pos.y = gGroundHeight + 40.0f;
actor->vel.y = 0.0f; actor->vel.y = 0.0f;
} }

View File

@ -2,7 +2,7 @@
#include "fox_map.h" #include "fox_map.h"
#include "fox_option.h" #include "fox_option.h"
extern s32 spectrumAnalizerMode; extern s32 spectrumAnalyzerMode;
extern bool D_menu_801B9320; extern bool D_menu_801B9320;
extern s32 D_menu_801B9244; extern s32 D_menu_801B9244;
extern OptionId D_menu_801B9124; extern OptionId D_menu_801B9124;
@ -108,11 +108,11 @@ void Option_ExpertSoundUpdate(void) {
} }
} }
// Spectrum Analizer mode selector // Spectrum Analyzer mode selector
if (gControllerPress[gMainController].button & R_CBUTTONS) { if (gControllerPress[gMainController].button & R_CBUTTONS) {
spectrumAnalizerMode++; spectrumAnalyzerMode++;
if (spectrumAnalizerMode > 2) { if (spectrumAnalyzerMode > 2) {
spectrumAnalizerMode = 0; spectrumAnalyzerMode = 0;
} }
} }

View File

@ -942,7 +942,7 @@ void Ending_8018A570(void) {
D_ending_8019858C = 0; D_ending_8019858C = 0;
D_ending_80196F8C = 4; D_ending_80196F8C = 4;
gCsFrameCount = 0; gCsFrameCount = 0;
gOverlayStage = 1; gSceneSetup = 1;
break; break;
case 4: case 4:
@ -955,7 +955,7 @@ void Ending_8018A570(void) {
D_ending_8019858C = 0; D_ending_8019858C = 0;
D_ending_80196F8C = 6; D_ending_80196F8C = 6;
gCsFrameCount = 0; gCsFrameCount = 0;
gOverlayStage = 4; gSceneSetup = 4;
break; break;
case 6: case 6:
@ -1028,7 +1028,7 @@ void Ending_8018A8FC(void) {
gFillScreenAlphaStep = 16; gFillScreenAlphaStep = 16;
} }
void Ending_8018A96C(void) { void Ending_Main(void) {
gCsFrameCount++; gCsFrameCount++;
gGameFrameCount++; gGameFrameCount++;
@ -1036,7 +1036,7 @@ void Ending_8018A96C(void) {
case 0: case 0:
gRadioState = 0; gRadioState = 0;
gGameFrameCount = 0; gGameFrameCount = 0;
gOverlayStage = 0; gSceneSetup = 0;
gCsCamEyeX = gCsCamEyeY = gCsCamEyeZ = 0.0f; gCsCamEyeX = gCsCamEyeY = gCsCamEyeZ = 0.0f;
gCsCamAtX = gCsCamAtY = 0.0f; gCsCamAtX = gCsCamAtY = 0.0f;
gCsCamAtZ = -100.0f; gCsCamAtZ = -100.0f;
@ -1056,7 +1056,7 @@ void Ending_8018A96C(void) {
break; break;
} }
case 4: case 4:
gOverlayStage = 2; gSceneSetup = 2;
D_ending_80196D00 = 5; D_ending_80196D00 = 5;
break; break;
@ -1076,7 +1076,7 @@ void Ending_8018A96C(void) {
Ending_8018ABE8(); Ending_8018ABE8();
} }
void Ending_8018AAC4(void) { void Ending_Draw(void) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_LookAt(gGfxMatrix, gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ, 0.0f, 100.0f, 0.0f, Matrix_LookAt(gGfxMatrix, gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ, 0.0f, 100.0f, 0.0f,
MTXF_NEW); MTXF_NEW);
@ -1517,7 +1517,7 @@ void Ending_8018B860(void) {
D_ctx_80177A10[0] = 0; D_ctx_80177A10[0] = 0;
D_ending_8019858C = 0; D_ending_8019858C = 0;
gBgColor = 0x4AE5; // 72, 88, 144 gBgColor = 0x4AE5; // 72, 88, 144
D_ctx_80178410 = 0; gStarCount = 0;
} }
void Ending_8018BAD0(void) { void Ending_8018BAD0(void) {
@ -1554,7 +1554,7 @@ void Ending_8018BAD0(void) {
D_ctx_80177A10[0] = 1; D_ctx_80177A10[0] = 1;
D_ending_8019858C = 0; D_ending_8019858C = 0;
gBgColor = 0x4AE5; // 72, 88, 144 gBgColor = 0x4AE5; // 72, 88, 144
D_ctx_80178410 = 0; gStarCount = 0;
} }
f32 D_ending_80192DF0[8] = { f32 D_ending_80192DF0[8] = {

View File

@ -31,9 +31,9 @@ void Ending_8018CE20(u32 arg0) {
D_ending_80192E74[i].unk_13; D_ending_80192E74[i].unk_13;
} }
if ((D_ending_80192E74[i].unk_11 == 0) || (D_play_800D2F68 == true)) { if ((D_ending_80192E74[i].unk_11 == 0) || (gVenomHardClear == 1)) {
if (D_ending_80192E74[i].unk_10 == 1) { if (D_ending_80192E74[i].unk_10 == 1) {
xPos = (320 - Graphics_GetLargeTextWidth(D_ending_80192E74[i].unk_00)) / 2; xPos = (SCREEN_WIDTH - Graphics_GetLargeTextWidth(D_ending_80192E74[i].unk_00)) / 2;
RCP_SetupDL(&gMasterDisp, 0x53); RCP_SetupDL(&gMasterDisp, 0x53);
gDPSetTextureFilter(gMasterDisp++, G_TF_POINT); gDPSetTextureFilter(gMasterDisp++, G_TF_POINT);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, alpha); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, alpha);
@ -71,9 +71,9 @@ void Ending_8018CE20(u32 arg0) {
} }
void Ending_8018D250(u32 arg0, AssetInfo* asset) { void Ending_8018D250(u32 arg0, AssetInfo* asset) {
gOverlayStage = asset->unk_08; gSceneSetup = asset->unk_08;
gVIsPerFrame = asset->unk_70; gVIsPerFrame = asset->unk_70;
D_ctx_80178410 = asset->unk_14; gStarCount = asset->unk_14;
} }
void Ending_8018D28C(s32 arg0, AssetInfo* asset) { void Ending_8018D28C(s32 arg0, AssetInfo* asset) {
@ -157,7 +157,7 @@ void Ending_8018D638(u32 arg0, AssetInfo* asset) {
if (gExpertMode != 0) { if (gExpertMode != 0) {
for (i = 0; i < 240; i += 4) { for (i = 0; i < 240; i += 4) {
if (!D_play_800D2F68) { if (gVenomHardClear == 0) {
TextureRect_16bRGBA(&gMasterDisp, gEndingNormalReward + 316 * i, 316, 4, 0.0f, i, 1.0f, 1.0f); TextureRect_16bRGBA(&gMasterDisp, gEndingNormalReward + 316 * i, 316, 4, 0.0f, i, 1.0f, 1.0f);
} else { } else {
TextureRect_16bRGBA(&gMasterDisp, gEndingExpertReward + 316 * i, 316, 4, 0.0f, i, 1.0f, 1.0f); TextureRect_16bRGBA(&gMasterDisp, gEndingExpertReward + 316 * i, 316, 4, 0.0f, i, 1.0f, 1.0f);
@ -240,7 +240,7 @@ bool Ending_8018DCB4(void) {
s32 unk_5E[10][7]; s32 unk_5E[10][7];
s32 unk40[10]; s32 unk40[10];
for (i = 0; i < gCurrentPlanet + 1; i++) { for (i = 0; i < gMissionNumber + 1; i++) {
temp2 += ((D_ctx_80177B50[i] & 0x00FF0000) >> 16) & 1; temp2 += ((D_ctx_80177B50[i] & 0x00FF0000) >> 16) & 1;
temp2 += ((D_ctx_80177B50[i] & 0x0000FF00) >> 8) & 1; temp2 += ((D_ctx_80177B50[i] & 0x0000FF00) >> 8) & 1;
temp2 += (D_ctx_80177B50[i] & 0x000000FF) & 1; temp2 += (D_ctx_80177B50[i] & 0x000000FF) & 1;
@ -430,7 +430,7 @@ void Ending_8018E7B8(u32 arg0, AssetInfo* asset) {
void Ending_8018EDB8(u32 arg0, AssetInfo* asset) { void Ending_8018EDB8(u32 arg0, AssetInfo* asset) {
f32 temp; f32 temp;
D_ctx_80178410 = 0; gStarCount = 0;
RCP_SetupDL(&gMasterDisp, asset->unk_08); RCP_SetupDL(&gMasterDisp, asset->unk_08);
@ -740,7 +740,7 @@ void Ending_80190CF0(u32 arg0, AssetInfo* asset) {
u8 alpha = 255; u8 alpha = 255;
f32 temp; f32 temp;
if (D_play_800D2F68 == true) { if (gVenomHardClear == 1) {
return; return;
} }
@ -810,7 +810,7 @@ void Ending_80191234(s32 arg0, s32 arg1) {
gOptionMenuStatus = OPTION_WAIT; gOptionMenuStatus = OPTION_WAIT;
gDrawMode = DRAW_NONE; gDrawMode = DRAW_NONE;
gBgColor = 0; gBgColor = 0;
D_ctx_80178410 = 0; gStarCount = 0;
gControllerLock = 10; gControllerLock = 10;
} }

View File

@ -12,10 +12,10 @@
u8 D_i1_8019B6D0; u8 D_i1_8019B6D0;
f32 D_i1_8019B6D8[68]; f32 D_i1_8019B6D8[68];
void Corneria_80187530(Object_80* obj80) { void Corneria_80187530(Scenery* scenery) {
} }
void Corneria_8018753C(Object_80* obj80) { void Corneria_8018753C(Scenery* scenery) {
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
gSPDisplayList(gMasterDisp++, D_CO_60199D0); gSPDisplayList(gMasterDisp++, D_CO_60199D0);
@ -439,7 +439,7 @@ void Corneria_80188A18(Boss* boss) {
} }
} }
if ((gBossFrameCount > 800) && ((gBossFrameCount % 512) == 0)) { if ((gBossFrameCount > 800) && ((gBossFrameCount % 512) == 0)) {
if (D_ctx_80177B6C < 2) { if (gCoUturnCount < 2) {
Radio_PlayMessage(gMsg_ID_20237, RCID_PEPPY); Radio_PlayMessage(gMsg_ID_20237, RCID_PEPPY);
} else if (D_edisplay_801615D0.z > 0.0f) { } else if (D_edisplay_801615D0.z > 0.0f) {
Radio_PlayMessage(gMsg_ID_2233, RCID_FALCO); Radio_PlayMessage(gMsg_ID_2233, RCID_FALCO);
@ -1116,7 +1116,8 @@ s32 Corneria_8018AB64(Actor* actor) {
sp7C.z = sp50[i] + actor->obj.pos.z; sp7C.z = sp50[i] + actor->obj.pos.z;
temp_v0 = Object_CheckCollision(actor->index, &sp7C, &sp70, 1); temp_v0 = Object_CheckCollision(actor->index, &sp7C, &sp70, 1);
if ((temp_v0 != 0) && (temp_v0 >= 10)) { if ((temp_v0 != 0) && (temp_v0 >= 10)) {
if ((gObjects80[temp_v0 - 10].obj.status == OBJ_ACTIVE) && (gObjects80[temp_v0 - 10].obj.id == OBJ_80_40)) { if ((gScenery[temp_v0 - 10].obj.status == OBJ_ACTIVE) &&
(gScenery[temp_v0 - 10].obj.id == OBJ_SCENERY_40)) {
return temp_v0 - 9; return temp_v0 - 9;
} }
} }
@ -1139,7 +1140,7 @@ void Corneria_8018ACE0(Actor* actor) {
Object_SetInfo(&actor->info, actor->obj.id); Object_SetInfo(&actor->info, actor->obj.id);
actor->state = 100; actor->state = 100;
actor->timer_0BC = 10; actor->timer_0BC = 10;
actor->timer_0CA[0] = 0; actor->lockOnTimers[0] = 0;
actor->vel.x = actor->vel.y = actor->vel.z = 0.0f; actor->vel.x = actor->vel.y = actor->vel.z = 0.0f;
} }
} }
@ -1186,7 +1187,7 @@ void Corneria_8018AED0(Actor* actor) {
actor->fwork[1] += 20.0f; actor->fwork[1] += 20.0f;
actor->fwork[0] = 0.0f; actor->fwork[0] = 0.0f;
if (actor->unk_0B6 == 50) { if (actor->unk_0B6 == 50) {
gObjects80[actor->iwork[0] - 1].state = 1; gScenery[actor->iwork[0] - 1].state = 1;
} }
if (actor->unk_0B6 >= Animation_GetFrameCount(&D_CO_602991C)) { if (actor->unk_0B6 >= Animation_GetFrameCount(&D_CO_602991C)) {
actor->state++; actor->state++;
@ -1203,15 +1204,15 @@ void Corneria_8018B0B4(Actor* actor) {
s32 i; s32 i;
for (i = 0; i < 50; i++) { for (i = 0; i < 50; i++) {
if (gObjects80[i].obj.status == OBJ_FREE) { if (gScenery[i].obj.status == OBJ_FREE) {
Object_80_Initialize(&gObjects80[i]); Scenery_Initialize(&gScenery[i]);
gObjects80[i].obj.status = OBJ_INIT; gScenery[i].obj.status = OBJ_INIT;
gObjects80[i].obj.id = OBJ_80_42; gScenery[i].obj.id = OBJ_SCENERY_42;
gObjects80[i].obj.pos.x = actor->obj.pos.x; gScenery[i].obj.pos.x = actor->obj.pos.x;
gObjects80[i].obj.pos.y = actor->obj.pos.y; gScenery[i].obj.pos.y = actor->obj.pos.y;
gObjects80[i].obj.pos.z = actor->obj.pos.z; gScenery[i].obj.pos.z = actor->obj.pos.z;
gObjects80[i].obj.rot.y = actor->obj.rot.y; gScenery[i].obj.rot.y = actor->obj.rot.y;
Object_SetInfo(&gObjects80[i].info, gObjects80[i].obj.id); Object_SetInfo(&gScenery[i].info, gScenery[i].obj.id);
actor->iwork[0] = i; actor->iwork[0] = i;
return; return;
} }
@ -1222,13 +1223,13 @@ void Corneria_8018B15C(Actor* actor) {
Vec3f sp60[20]; Vec3f sp60[20];
Vec3f sp54; Vec3f sp54;
Vec3f sp48; Vec3f sp48;
Object_80* obj80; Scenery* scenery;
f32 temp_sin; f32 temp_sin;
f32 temp_cos; f32 temp_cos;
Corneria_8018ACE0(actor); Corneria_8018ACE0(actor);
obj80 = &gObjects80[actor->iwork[0]]; scenery = &gScenery[actor->iwork[0]];
temp_sin = SIN_DEG(actor->obj.rot.y); temp_sin = SIN_DEG(actor->obj.rot.y);
actor->vel.x = actor->fwork[0] * temp_sin; actor->vel.x = actor->fwork[0] * temp_sin;
temp_cos = COS_DEG(actor->obj.rot.y); temp_cos = COS_DEG(actor->obj.rot.y);
@ -1265,25 +1266,25 @@ void Corneria_8018B15C(Actor* actor) {
} }
if (actor->unk_0B6 == (Animation_GetFrameCount(&D_CO_602AA04) - actor->iwork[2])) { if (actor->unk_0B6 == (Animation_GetFrameCount(&D_CO_602AA04) - actor->iwork[2])) {
actor->iwork[1] = 1; actor->iwork[1] = 1;
obj80->state = 1; scenery->state = 1;
sp54.x = 0.0f; sp54.x = 0.0f;
sp54.y = 0.0f; sp54.y = 0.0f;
sp54.z = 30.0f; sp54.z = 30.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp54, &sp48); Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp54, &sp48);
obj80->vel.x = sp48.x; scenery->vel.x = sp48.x;
obj80->vel.y = sp48.y; scenery->vel.y = sp48.y;
obj80->vel.z = sp48.z; scenery->vel.z = sp48.z;
AUDIO_PLAY_SFX(0x2902401C, actor->sfxSource, 4); AUDIO_PLAY_SFX(0x2902401C, actor->sfxSource, 4);
} }
break; break;
} }
if (actor->iwork[1] == 0) { if (actor->iwork[1] == 0) {
obj80->obj.pos.x = actor->fwork[2]; scenery->obj.pos.x = actor->fwork[2];
obj80->obj.pos.y = actor->fwork[6]; scenery->obj.pos.y = actor->fwork[6];
obj80->obj.pos.z = actor->fwork[10]; scenery->obj.pos.z = actor->fwork[10];
obj80->obj.rot.y = actor->obj.rot.y; scenery->obj.rot.y = actor->obj.rot.y;
obj80->vel.y = 0.0f; scenery->vel.y = 0.0f;
} }
Math_SmoothStepToVec3fArray(sp60, actor->vwork, 0, Animation_GetFrameData(&D_CO_602AA04, actor->unk_0B6, sp60), Math_SmoothStepToVec3fArray(sp60, actor->vwork, 0, Animation_GetFrameData(&D_CO_602AA04, actor->unk_0B6, sp60),
@ -1293,7 +1294,7 @@ void Corneria_8018B15C(Actor* actor) {
void Corneria_8018B418(Actor* actor) { void Corneria_8018B418(Actor* actor) {
s32 pad; s32 pad;
Vec3f sp54[20]; Vec3f sp54[20];
Object_80* temp_v0_2; Scenery* temp_v0_2;
f32 temp_sin; f32 temp_sin;
f32 temp_cos; f32 temp_cos;
s32 pad2[4]; s32 pad2[4];
@ -1322,7 +1323,7 @@ void Corneria_8018B418(Actor* actor) {
} }
if (actor->iwork[1] == 0) { if (actor->iwork[1] == 0) {
temp_v0_2 = &gObjects80[actor->iwork[0]]; temp_v0_2 = &gScenery[actor->iwork[0]];
temp_v0_2->obj.pos.x = actor->fwork[2]; temp_v0_2->obj.pos.x = actor->fwork[2];
temp_v0_2->obj.pos.y = actor->fwork[6]; temp_v0_2->obj.pos.y = actor->fwork[6];
temp_v0_2->obj.pos.z = actor->fwork[10]; temp_v0_2->obj.pos.z = actor->fwork[10];
@ -1405,7 +1406,7 @@ void Corneria_8018BAFC(s32 limbIndex, Vec3f* rot, void* data) {
actor->fwork[6] = sp1C.y; actor->fwork[6] = sp1C.y;
actor->fwork[10] = sp1C.z; actor->fwork[10] = sp1C.z;
if (actor->iwork[1] == 0) { if (actor->iwork[1] == 0) {
gObjects80[actor->iwork[0]].obj.rot.x = -rot->y; gScenery[actor->iwork[0]].obj.rot.x = -rot->y;
} }
} }
} }
@ -1518,10 +1519,10 @@ void Corneria_Boss293_Init(Boss293* this) {
} }
void Corneria_8018C0B0(Boss* boss) { void Corneria_8018C0B0(Boss* boss) {
func_effect_8007D9DC(boss->obj.pos.x, gGroundLevel + 2.0f, boss->obj.pos.z, 5.0f, 100.0f, 0); func_effect_8007D9DC(boss->obj.pos.x, gGroundHeight + 2.0f, boss->obj.pos.z, 5.0f, 100.0f, 0);
func_effect_8007D9DC(boss->obj.pos.x, gGroundLevel + 2.0f, boss->obj.pos.z, 5.0f, 100.0f, 5); func_effect_8007D9DC(boss->obj.pos.x, gGroundHeight + 2.0f, boss->obj.pos.z, 5.0f, 100.0f, 5);
func_effect_8007D9DC(boss->obj.pos.x, gGroundLevel + 2.0f, boss->obj.pos.z, 5.0f, 100.0f, 10); func_effect_8007D9DC(boss->obj.pos.x, gGroundHeight + 2.0f, boss->obj.pos.z, 5.0f, 100.0f, 10);
func_effect_8007ADF4(boss->obj.pos.x, gGroundLevel, boss->obj.pos.z, 1.0f, 10.0f); func_effect_8007ADF4(boss->obj.pos.x, gGroundHeight, boss->obj.pos.z, 1.0f, 10.0f);
} }
static Vec3f D_i1_801998CC = { 442.0f, 5.0f, 360.0f }; static Vec3f D_i1_801998CC = { 442.0f, 5.0f, 360.0f };
@ -1987,7 +1988,7 @@ void Corneria_8018C19C(Boss* boss) {
Math_SmoothStepToF(&boss->vel.z, 0.0f, 0.1f, 2.0f, 0.00001f); Math_SmoothStepToF(&boss->vel.z, 0.0f, 0.1f, 2.0f, 0.00001f);
boss->obj.rot.z -= 2.0f; boss->obj.rot.z -= 2.0f;
boss->gravity = 1.0f; boss->gravity = 1.0f;
if (boss->obj.pos.y < (gGroundLevel + 150.0f)) { if (boss->obj.pos.y < (gGroundHeight + 150.0f)) {
gCameraShake = 100; gCameraShake = 100;
func_effect_80081A8C(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, 40.0f, 12); func_effect_80081A8C(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, 40.0f, 12);
boss->timer_050 = 20; boss->timer_050 = 20;
@ -2126,7 +2127,7 @@ void Corneria_8018DDAC(Boss* boss) {
boss->vel.x, boss->vel.y, boss->vel.z, 0.2f, 10); boss->vel.x, boss->vel.y, boss->vel.z, 0.2f, 10);
} }
if (boss->obj.pos.y < (gGroundLevel + 150.0f)) { if (boss->obj.pos.y < (gGroundHeight + 150.0f)) {
if (boss->swork[0] == 0) { if (boss->swork[0] == 0) {
boss->vel.y = -5.0f; boss->vel.y = -5.0f;
boss->swork[0] = 1; boss->swork[0] = 1;
@ -2218,7 +2219,7 @@ void Corneria_8018E290(Boss* boss) {
boss->vel.x, boss->vel.y, boss->vel.z, 0.2f, 10); boss->vel.x, boss->vel.y, boss->vel.z, 0.2f, 10);
} }
if (boss->obj.pos.y < (gGroundLevel + 150.0f)) { if (boss->obj.pos.y < (gGroundHeight + 150.0f)) {
if (boss->swork[0] == 0) { if (boss->swork[0] == 0) {
boss->vel.y = -5.0f; boss->vel.y = -5.0f;
boss->swork[0] = 1; boss->swork[0] = 1;
@ -2310,7 +2311,7 @@ void Corneria_8018E76C(Boss* boss) {
func_effect_8007C120(boss->obj.pos.x + sp4C.x, boss->obj.pos.y + sp4C.y, boss->obj.pos.z + sp4C.z, func_effect_8007C120(boss->obj.pos.x + sp4C.x, boss->obj.pos.y + sp4C.y, boss->obj.pos.z + sp4C.z,
boss->vel.x, boss->vel.y, boss->vel.z, 0.2f, 10); boss->vel.x, boss->vel.y, boss->vel.z, 0.2f, 10);
} }
if (boss->obj.pos.y < (gGroundLevel + 150.0f)) { if (boss->obj.pos.y < (gGroundHeight + 150.0f)) {
if (boss->swork[0] == 0) { if (boss->swork[0] == 0) {
boss->vel.y = -5.0f; boss->vel.y = -5.0f;
boss->swork[0] = 1; boss->swork[0] = 1;
@ -2396,48 +2397,48 @@ void Corneria_8018EF90(Boss* boss) {
Animation_DrawSkeleton(1, D_CO_602D5AC, boss->vwork, Corneria_8018EF38, NULL, &boss->index, &gIdentityMatrix); Animation_DrawSkeleton(1, D_CO_602D5AC, boss->vwork, Corneria_8018EF38, NULL, &boss->index, &gIdentityMatrix);
} }
void Corneria_8018F044(Object_80* obj80) { void Corneria_8018F044(Scenery* scenery) {
switch (obj80->state) { switch (scenery->state) {
case 0: case 0:
if (obj80->dmgType != 0) { if (scenery->dmgType != 0) {
obj80->dmgType = 0; scenery->dmgType = 0;
if (obj80->dmgPart < 2) { if (scenery->dmgPart < 2) {
obj80->unk_44++; scenery->unk_44++;
obj80->timer_4C = 5; scenery->timer_4C = 5;
obj80->vel.x += 2.0f; scenery->vel.x += 2.0f;
obj80->vel.y += 2.0f; scenery->vel.y += 2.0f;
if (obj80->unk_44 >= 3) { if (scenery->unk_44 >= 3) {
obj80->state = 1; scenery->state = 1;
obj80->info.hitbox = SEGMENTED_TO_VIRTUAL(&D_CO_603E924); scenery->info.hitbox = SEGMENTED_TO_VIRTUAL(&D_CO_603E924);
AUDIO_PLAY_SFX(0x1900000D, obj80->sfxSource, 0); AUDIO_PLAY_SFX(0x1900000D, scenery->sfxSource, 0);
return; return;
} }
AUDIO_PLAY_SFX(0x2903300E, obj80->sfxSource, 0); AUDIO_PLAY_SFX(0x2903300E, scenery->sfxSource, 0);
} }
} }
break; break;
case 1: case 1:
Math_SmoothStepToF(&obj80->vel.x, 80.0f, 0.2f, 10.0f, 0.0f); Math_SmoothStepToF(&scenery->vel.x, 80.0f, 0.2f, 10.0f, 0.0f);
Math_SmoothStepToF(&obj80->vel.y, 80.0f, 0.2f, 10.0f, 0.0f); Math_SmoothStepToF(&scenery->vel.y, 80.0f, 0.2f, 10.0f, 0.0f);
break; break;
} }
} }
bool Corneria_8018F1C8(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* data) { bool Corneria_8018F1C8(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* data) {
Object_80* obj80 = (Object_80*) data; Scenery* scenery = (Scenery*) data;
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
switch (limbIndex) { switch (limbIndex) {
case 1: case 1:
rot->y -= obj80->vel.x; rot->y -= scenery->vel.x;
if ((obj80->timer_4C % 2) != 0) { if ((scenery->timer_4C % 2) != 0) {
RCP_SetupDL_60(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_60(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
} }
break; break;
case 2: case 2:
rot->y += obj80->vel.y; rot->y += scenery->vel.y;
if ((obj80->timer_4C % 2) != 0) { if ((scenery->timer_4C % 2) != 0) {
RCP_SetupDL_60(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_60(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
} }
break; break;
@ -2445,28 +2446,28 @@ bool Corneria_8018F1C8(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void*
return 0; return 0;
} }
void Corneria_8018F31C(Object_80* obj80) { void Corneria_8018F31C(Scenery* scenery) {
Vec3f sp28[10]; Vec3f sp28[10];
Animation_GetFrameData(&D_CO_602AA7C, 0, sp28); Animation_GetFrameData(&D_CO_602AA7C, 0, sp28);
Animation_DrawSkeleton(3, D_CO_602AB48, sp28, Corneria_8018F1C8, NULL, obj80, gCalcMatrix); Animation_DrawSkeleton(3, D_CO_602AB48, sp28, Corneria_8018F1C8, NULL, scenery, gCalcMatrix);
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
} }
void Corneria_8018F3BC(Object_80* obj80, f32 arg1) { void Corneria_8018F3BC(Scenery* scenery, f32 arg1) {
Object_80_Initialize(obj80); Scenery_Initialize(scenery);
obj80->obj.status = OBJ_INIT; scenery->obj.status = OBJ_INIT;
obj80->obj.pos.x = RAND_FLOAT_CENTERED(1000.0f) + arg1; scenery->obj.pos.x = RAND_FLOAT_CENTERED(1000.0f) + arg1;
obj80->obj.rot.y = RAND_FLOAT(90.0f) + 45.0f; scenery->obj.rot.y = RAND_FLOAT(90.0f) + 45.0f;
if (arg1 > 0.0f) { if (arg1 > 0.0f) {
obj80->obj.rot.y *= -1.0f; scenery->obj.rot.y *= -1.0f;
} }
obj80->obj.pos.y = 0.0f; scenery->obj.pos.y = 0.0f;
obj80->obj.id = OBJ_80_1; scenery->obj.id = OBJ_SCENERY_1;
obj80->unk_60 = 60.0f; scenery->unk_60 = 60.0f;
Object_SetInfo(&obj80->info, obj80->obj.id); Object_SetInfo(&scenery->info, scenery->obj.id);
obj80->obj.pos.z = -2000.0f; scenery->obj.pos.z = -2000.0f;
obj80->info.unk_10 = 15000.0f; scenery->info.unk_10 = 15000.0f;
} }
void Corneria_8018F4A4(void) { void Corneria_8018F4A4(void) {
@ -2474,15 +2475,15 @@ void Corneria_8018F4A4(void) {
if (((gGameFrameCount % 16) == 0) && !(gPlayer[0].unk_1D0 < 4)) { if (((gGameFrameCount % 16) == 0) && !(gPlayer[0].unk_1D0 < 4)) {
for (i = 0; i < 50; i++) { for (i = 0; i < 50; i++) {
if (gObjects80[i].obj.status == OBJ_FREE) { if (gScenery[i].obj.status == OBJ_FREE) {
Corneria_8018F3BC(&gObjects80[i], 4000.0f); Corneria_8018F3BC(&gScenery[i], 4000.0f);
break; break;
} }
} }
for (i = 0; i < ARRAY_COUNT(gObjects80); i++) { for (i = 0; i < ARRAY_COUNT(gScenery); i++) {
if (gObjects80[i].obj.status == OBJ_FREE) { if (gScenery[i].obj.status == OBJ_FREE) {
Corneria_8018F3BC(&gObjects80[i], -4000.0f); Corneria_8018F3BC(&gScenery[i], -4000.0f);
break; break;
} }
} }
@ -2550,7 +2551,7 @@ void Corneria_8018F6F8(Actor* actor, s32 arg1) {
AUDIO_PLAY_SFX(0x3100000C, actor->sfxSource, 4); AUDIO_PLAY_SFX(0x3100000C, actor->sfxSource, 4);
} }
void Corneria_8018F880(Player* player) { void Corneria_LevelStart(Player* player) {
s32 i; s32 i;
Actor* actor0 = &gActors[0]; Actor* actor0 = &gActors[0];
Actor* actor1 = &gActors[1]; Actor* actor1 = &gActors[1];
@ -2924,7 +2925,7 @@ void Corneria_8018F880(Player* player) {
Object_Kill(&actor1->obj, actor1->sfxSource); Object_Kill(&actor1->obj, actor1->sfxSource);
Object_Kill(&actor2->obj, actor2->sfxSource); Object_Kill(&actor2->obj, actor2->sfxSource);
gLevelStatusScreenTimer = 80; gLevelStartStatusScreenTimer = 80;
player->pos.y = 350.0f; player->pos.y = 350.0f;
player->cam.eye.x = player->pos.x; player->cam.eye.x = player->pos.x;
player->cam.eye.y = (player->pos.y * player->unk_148) + 50.0f; player->cam.eye.y = (player->pos.y * player->unk_148) + 50.0f;
@ -2935,8 +2936,7 @@ void Corneria_8018F880(Player* player) {
player->cam.at.y = (player->pos.y * player->unk_148) + 20.0f; player->cam.at.y = (player->pos.y * player->unk_148) + 20.0f;
player->cam.at.z = player->unk_138; player->cam.at.z = player->unk_138;
D_ctx_80177950 = 1.0f; D_ctx_80177950 = 1.0f;
gPlayerFillScreenAlphas[0] = gPlayerFillScreenAlphas[1] = gPlayerFillScreenAlphas[2] = gPlayerGlareAlphas[0] = gPlayerGlareAlphas[1] = gPlayerGlareAlphas[2] = gPlayerGlareAlphas[3] = 0;
gPlayerFillScreenAlphas[3] = 0;
gLoadLevelObjects = 1; gLoadLevelObjects = 1;
gFillScreenAlphaTarget = 0; gFillScreenAlphaTarget = 0;
player->timer_1F8 = 15; player->timer_1F8 = 15;
@ -3016,7 +3016,7 @@ void Corneria_80190F74(Actor* actor, s32 arg1) {
AUDIO_PLAY_SFX(0x3100000C, actor->sfxSource, 4); AUDIO_PLAY_SFX(0x3100000C, actor->sfxSource, 4);
} }
void Corneria_80191160(Player* player) { void Corneria_LevelComplete1(Player* player) {
Vec3f sp64; Vec3f sp64;
Vec3f sp58; Vec3f sp58;
f32 sp54; f32 sp54;
@ -3167,7 +3167,7 @@ void Corneria_80191160(Player* player) {
if (gFillScreenAlpha == 255) { if (gFillScreenAlpha == 255) {
player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->state_1C8 = PLAYERSTATE_1C8_NEXT;
player->timer_1F8 = 0; player->timer_1F8 = 0;
D_ctx_8017837C = 4; gFadeoutType = 4;
D_play_800D3180[gCurrentLevel] = Play_CheckMedalStatus(150) + 1; D_play_800D3180[gCurrentLevel] = Play_CheckMedalStatus(150) + 1;
} }
} }
@ -3176,10 +3176,10 @@ void Corneria_80191160(Player* player) {
switch (gCsFrameCount) { switch (gCsFrameCount) {
case 981: case 981:
D_ctx_80177830 = 1; gShowLevelClearStatusScreen = 1;
break; break;
case 1181: case 1181:
D_ctx_80177830 = 0; gShowLevelClearStatusScreen = 0;
break; break;
case 240: case 240:
AUDIO_PLAY_BGM(SEQ_ID_GOOD_END); AUDIO_PLAY_BGM(SEQ_ID_GOOD_END);

View File

@ -8,25 +8,25 @@
#include "assets/ast_training.h" #include "assets/ast_training.h"
void Training_80198C50(void) { void Training_80198C50(void) {
Object_58* obj58; Scenery360* scenery360;
s32 i; s32 i;
gLevelObjects = SEGMENTED_TO_VIRTUAL(D_TR_6008EF8); gLevelObjects = SEGMENTED_TO_VIRTUAL(D_TR_6008EF8);
Rand_SetSeed(1, 29000, 9876); Rand_SetSeed(1, 29000, 9876);
obj58 = gObjects58; scenery360 = gScenery360;
for (i = 0; i < 1000; i++) { for (i = 0; i < 1000; i++) {
if (gLevelObjects[i].id >= 0) { if (gLevelObjects[i].id >= 0) {
if (gLevelObjects[i].id <= 160) { if (gLevelObjects[i].id <= 160) {
Object_58_Initialize(obj58); Scenery360_Initialize(scenery360);
obj58->obj.status = OBJ_ACTIVE; scenery360->obj.status = OBJ_ACTIVE;
obj58->obj.id = gLevelObjects[i].id; scenery360->obj.id = gLevelObjects[i].id;
obj58->obj.pos.x = gLevelObjects[i].xPos; scenery360->obj.pos.x = gLevelObjects[i].xPos;
obj58->obj.pos.z = -gLevelObjects[i].zPos1; scenery360->obj.pos.z = -gLevelObjects[i].zPos1;
obj58->obj.pos.y = gLevelObjects[i].yPos - RAND_FLOAT_SEEDED(300.0f); scenery360->obj.pos.y = gLevelObjects[i].yPos - RAND_FLOAT_SEEDED(300.0f);
obj58->obj.rot.y = gLevelObjects[i].rot.y; scenery360->obj.rot.y = gLevelObjects[i].rot.y;
Object_SetInfo(&obj58->info, obj58->obj.id); Object_SetInfo(&scenery360->info, scenery360->obj.id);
obj58++; scenery360++;
} }
} else { } else {
break; break;
@ -35,38 +35,38 @@ void Training_80198C50(void) {
} }
bool Training_80198DCC(Actor* actor, f32 x, f32 z) { bool Training_80198DCC(Actor* actor, f32 x, f32 z) {
Object_58* obj58; Scenery360* scenery360;
s32 i; s32 i;
for (i = 0, obj58 = gObjects58; i < 200;) { for (i = 0, scenery360 = gScenery360; i < 200;) {
if ((obj58->obj.status == OBJ_ACTIVE) && if ((scenery360->obj.status == OBJ_ACTIVE) &&
(fabsf(obj58->obj.pos.x - (actor->obj.pos.x + ((x * 650.0f) + 350.0f))) < 1200.0f) && (fabsf(scenery360->obj.pos.x - (actor->obj.pos.x + ((x * 650.0f) + 350.0f))) < 1200.0f) &&
(fabsf(obj58->obj.pos.z - (actor->obj.pos.z + ((z * 650.0f) + 350.0f))) < 1200.0f) && (fabsf(scenery360->obj.pos.z - (actor->obj.pos.z + ((z * 650.0f) + 350.0f))) < 1200.0f) &&
(actor->obj.pos.y < 650.0f)) { (actor->obj.pos.y < 650.0f)) {
return true; return true;
} }
obj58++; scenery360++;
if ((obj58->obj.status == OBJ_ACTIVE) && if ((scenery360->obj.status == OBJ_ACTIVE) &&
(fabsf(obj58->obj.pos.x - (actor->obj.pos.x + ((x * 650.0f) + 350.0f))) < 1200.0f) && (fabsf(scenery360->obj.pos.x - (actor->obj.pos.x + ((x * 650.0f) + 350.0f))) < 1200.0f) &&
(fabsf(obj58->obj.pos.z - (actor->obj.pos.z + ((z * 650.0f) + 350.0f))) < 1200.0f) && (fabsf(scenery360->obj.pos.z - (actor->obj.pos.z + ((z * 650.0f) + 350.0f))) < 1200.0f) &&
(actor->obj.pos.y < 650.0f)) { (actor->obj.pos.y < 650.0f)) {
return true; return true;
} }
obj58++; scenery360++;
if ((obj58->obj.status == OBJ_ACTIVE) && if ((scenery360->obj.status == OBJ_ACTIVE) &&
(fabsf(obj58->obj.pos.x - (actor->obj.pos.x + ((x * 650.0f) + 350.0f))) < 1200.0f) && (fabsf(scenery360->obj.pos.x - (actor->obj.pos.x + ((x * 650.0f) + 350.0f))) < 1200.0f) &&
(fabsf(obj58->obj.pos.z - (actor->obj.pos.z + ((z * 650.0f) + 350.0f))) < 1200.0f) && (fabsf(scenery360->obj.pos.z - (actor->obj.pos.z + ((z * 650.0f) + 350.0f))) < 1200.0f) &&
(actor->obj.pos.y < 650.0f)) { (actor->obj.pos.y < 650.0f)) {
return true; return true;
} }
obj58++; scenery360++;
if ((obj58->obj.status == OBJ_ACTIVE) && if ((scenery360->obj.status == OBJ_ACTIVE) &&
(fabsf(obj58->obj.pos.x - (actor->obj.pos.x + ((x * 650.0f) + 350.0f))) < 1200.0f) && (fabsf(scenery360->obj.pos.x - (actor->obj.pos.x + ((x * 650.0f) + 350.0f))) < 1200.0f) &&
(fabsf(obj58->obj.pos.z - (actor->obj.pos.z + ((z * 650.0f) + 350.0f))) < 1200.0f) && (fabsf(scenery360->obj.pos.z - (actor->obj.pos.z + ((z * 650.0f) + 350.0f))) < 1200.0f) &&
(actor->obj.pos.y < 650.0f)) { (actor->obj.pos.y < 650.0f)) {
return true; return true;
} }
obj58++; scenery360++;
i += 4; i += 4;
} }
@ -120,7 +120,7 @@ void Training_80199024(Actor* actor) {
if (var_fv0 < 0.0f) { if (var_fv0 < 0.0f) {
var_fv0 += 360.0f; var_fv0 += 360.0f;
} }
} else if ((actor->obj.pos.y < (gGroundLevel + 50.0f)) && (var_fv0 > 180.0f)) { } else if ((actor->obj.pos.y < (gGroundHeight + 50.0f)) && (var_fv0 > 180.0f)) {
var_fv0 = 0.0f; var_fv0 = 0.0f;
actor->unk_0F4.x = 0.0f; actor->unk_0F4.x = 0.0f;
} }
@ -143,8 +143,8 @@ void Training_80199024(Actor* actor) {
actor->fwork[13] -= (actor->fwork[13] * 0.1f); actor->fwork[13] -= (actor->fwork[13] * 0.1f);
actor->fwork[14] -= (actor->fwork[14] * 0.1f); actor->fwork[14] -= (actor->fwork[14] * 0.1f);
actor->fwork[12] -= (actor->fwork[12] * 0.1f); actor->fwork[12] -= (actor->fwork[12] * 0.1f);
if ((actor->obj.pos.y < gGroundLevel + 40.0f) && (actor->vel.y < 0.0f)) { if ((actor->obj.pos.y < gGroundHeight + 40.0f) && (actor->vel.y < 0.0f)) {
actor->obj.pos.y = gGroundLevel + 40.0f; actor->obj.pos.y = gGroundHeight + 40.0f;
actor->vel.y = 0.0f; actor->vel.y = 0.0f;
} }
ActorAllRange_ApplyDamage(actor); ActorAllRange_ApplyDamage(actor);

Some files were not shown because too many files have changed in this diff Show More