[MOD] Level Select & Sound Effects Jukebox (#76)

* level select mod

* map name

* move mod to c file

* Sfx Jukebox

* fix bank boundaries

* fix

* expert modes

* co-authored-by @petrie911

* add sfx
This commit is contained in:
Alejandro Asenjo Nitti 2024-01-12 14:11:40 -03:00 committed by GitHub
parent 410a5b017b
commit 921bceb967
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 331 additions and 129 deletions

View File

@ -235,7 +235,7 @@ void func_EBFBE0_80194BD0(void);
void func_EBFBE0_80194CE4(void); void func_EBFBE0_80194CE4(void);
void func_EBFBE0_801952B4(void); void func_EBFBE0_801952B4(void);
void func_EBFBE0_801958DC(void); void func_EBFBE0_801958DC(void);
void func_EBFBE0_80195944(void); void Option_ExpertSoundUpdate(void);
void func_EBFBE0_80195B74(void); void func_EBFBE0_80195B74(void);
void func_EBFBE0_80196260(void); void func_EBFBE0_80196260(void);
void func_EBFBE0_801962A4(void); void func_EBFBE0_801962A4(void);

View File

@ -71,7 +71,6 @@ extern s32 gLevelMode;
extern s32 gTeamShields[]; extern s32 gTeamShields[];
extern s32 D_801778BC; extern s32 D_801778BC;
extern s32 gVersusMode; extern s32 gVersusMode;
extern s32 D_80177B48;
extern s32 D_80177B50[]; extern s32 D_80177B50[];
extern s32 D_80177B70[]; extern s32 D_80177B70[];
extern s32 D_80177E7C; extern s32 D_80177E7C;

24
include/mods.h Normal file
View File

@ -0,0 +1,24 @@
#ifndef MODS_H
#define MODS_H
/**
* Level Select:
* Press left or right on the D-PAD to choose which level to play,
* useful for debugging and speedrunning training.
*/
#define MODS_LEVEL_SELECT 0
/**
* Sound Effects Jukebox:
* Ability to play sound effects inside the expert sound menu
*/
#define MODS_SFX_JUKEBOX 0
/* ************************* */
#if MODS_LEVEL_SELECT == 1
void Map_LevelSelect(void);
#endif
#endif

View File

@ -514,7 +514,7 @@ extern s32 gMainController;
extern s32 D_80177B00[4][4]; extern s32 D_80177B00[4][4];
extern s32 D_80177B40; extern s32 D_80177B40;
extern u8 D_Timer_80177B44; extern u8 D_Timer_80177B44;
extern s32 D_80177B48; extern s32 gCurrentPlanet; // D_80177B48
extern u8 D_80177B4C; extern u8 D_80177B4C;
extern s32 D_80177B50[7]; extern s32 D_80177B50[7];
extern u8 D_80177B6C; extern u8 D_80177B6C;

View File

@ -1,8 +1,10 @@
Option_ExpertSoundUpdate = 0x80195944;
planet = 0x801AF4A0; // type:Planet segment:ovl_menu size:0x38 planet = 0x801AF4A0; // type:Planet segment:ovl_menu size:0x38
sPlanetNames = 0x801AF9F4; // type:s32 segment:ovl_menu size:0xF sPlanetNames = 0x801AF9F4; // type:s32 segment:ovl_menu size:0xF
GetPlanetId = 0x801A6480; // force_migration:True segment:ovl_menu GetPlanetId = 0x801A6480; // force_migration:True segment:ovl_menu
D_EBFBE0_801AE638 = 0x801AE638; // type:MenuContext segment:ovl_menu size:0x240 D_EBFBE0_801AE638 = 0x801AE638; // type:MenuContext segment:ovl_menu size:0x240
D_EBFBE0_801AE99C = 0x801AE99C; // force_migration:True segment:ovl_menu D_EBFBE0_801AE99C = 0x801AE99C; // force_migration:True segment:ovl_menu
sPlanetList = 0x801AF7E8;
spectrumAnalizerMode = 0x801B9318; spectrumAnalizerMode = 0x801B9318;
D_EBFBE0_801B6E50 = 0x801B6E50; // force_migration:True segment:ovl_menu D_EBFBE0_801B6E50 = 0x801B6E50; // force_migration:True segment:ovl_menu
D_EBFBE0_801B7BA0 = 0x801B7BA0; D_EBFBE0_801B7BA0 = 0x801B7BA0;
@ -106,4 +108,5 @@ D_EBFBE0_801CCC10 = 0x801CCC10;
D_EBFBE0_801CCF10 = 0x801CCF10; D_EBFBE0_801CCF10 = 0x801CCF10;
D_EBFBE0_801CD210 = 0x801CD210; D_EBFBE0_801CD210 = 0x801CD210;
D_EBFBE0_801CD510 = 0x801CD510; D_EBFBE0_801CD510 = 0x801CD510;
sCurrentPlanetId = 0x801CD954;
// sPlanetsPositions = 0x801CE960; // force_migration:True segment:ovl_menu // sPlanetsPositions = 0x801CE960; // force_migration:True segment:ovl_menu

View File

@ -473,7 +473,7 @@ gMainController = 0x80177AF8;
D_80177B00 = 0x80177B00; D_80177B00 = 0x80177B00;
D_80177B40 = 0x80177B40; D_80177B40 = 0x80177B40;
D_Timer_80177B44 = 0x80177B44; D_Timer_80177B44 = 0x80177B44;
D_80177B48 = 0x80177B48; gCurrentPlanet = 0x80177B48;
D_80177B50 = 0x80177B50; D_80177B50 = 0x80177B50;
D_80177B70 = 0x80177B70; D_80177B70 = 0x80177B70;
D_80177B8C = 0x80177B8C; D_80177B8C = 0x80177B8C;

View File

@ -399,14 +399,14 @@ void func_800884E4(void) {
s32 var_v1; s32 var_v1;
s32 i; s32 i;
D_80177B70[D_80177B48] = gHitCount; D_80177B70[gCurrentPlanet] = gHitCount;
var_v1 = 0xFF0000; var_v1 = 0xFF0000;
for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) {
if (gTeamShields[3 - i] <= 0) { if (gTeamShields[3 - i] <= 0) {
D_80177B50[D_80177B48] ^= var_v1; D_80177B50[gCurrentPlanet] ^= var_v1;
} else { } else {
D_80177B50[D_80177B48] |= var_v1; D_80177B50[gCurrentPlanet] |= var_v1;
} }
var_v1 >>= 8; var_v1 >>= 8;
} }

36
src/mods/levelselect.c Normal file
View File

@ -0,0 +1,36 @@
#include "global.h"
#include "fox_map.h"
extern PlanetId sPlanetList[15];
extern s32 sCurrentPlanetId;
void Map_LevelSelect(void) {
static char* sLevelSelectPlanetNames[] = {
"CORNERIA", "METEO", "TITANIA", "SECTOR X", "AQUAS", "BOLSE", "VENOM", "FORTUNA",
"AREA 6", "MACBETH", "SECTOR Z", "ZONESS", "KATINA", "SECTOR Y", "SOLAR",
};
if (gControllerPress[0].button & L_JPAD) {
gCurrentPlanet--;
if (gCurrentPlanet < 0) {
gCurrentPlanet = 14;
}
sCurrentPlanetId = sPlanetList[gCurrentPlanet];
}
if (gControllerPress[0].button & R_JPAD) {
gCurrentPlanet++;
if (gCurrentPlanet > 14) {
gCurrentPlanet = 0;
}
sCurrentPlanetId = sPlanetList[gCurrentPlanet];
}
/* Draw */
RCP_SetupDL(&gMasterDisp, 0x53);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
Graphics_DisplaySmallText(20, 200, 1.0f, 1.0f, "PLANET:");
Graphics_DisplaySmallText(80, 200, 1.0f, 1.0f, sLevelSelectPlanetNames[gCurrentPlanet]);
}

119
src/mods/sfxjukebox.c Normal file
View File

@ -0,0 +1,119 @@
#include "global.h"
#include "fox_map.h"
u32 prevSfx = 0;
u32 sfx = 0x09000000;
s32 sfxId = 0;
s32 sfxBank = 0;
int holdTimer = 0;
void decimalToHex(int num, char* hexString, size_t hexStringLength) {
int i;
// Define hexadecimal digits
char hexDigits[] = "0123456789ABCDEF";
// Check for null pointer or insufficient buffer size
if (hexString == NULL || hexStringLength < 9) {
// You might need to adjust the buffer size based on the maximum expected length
return;
}
// Ensure the buffer is null-terminated
hexString[8] = '\0';
// Iterate through each hex digit
for (i = 7; i >= 0; --i) {
// Extract the 4 bits representing one hex digit
int hexValue = (num >> (i * 4)) & 0xF;
// Convert the 4-bit value to its corresponding hex character
hexString[7 - i] = hexDigits[hexValue];
}
}
void Option_ExpertSoundUpdate(void) {
char hexString[9]; // Buffer to store the hexadecimal string
if ((gControllerPress[gMainController].button & R_TRIG) && (sfxBank < 4)) {
sfxBank++;
} else if ((gControllerPress[gMainController].button & L_TRIG) && (sfxBank > 0)) {
sfxBank--;
}
sfx &= 0x0FFFFFFF;
sfx |= (sfxBank << 28);
if (gControllerHold[gMainController].button & (U_JPAD | D_JPAD)) {
holdTimer++;
} else {
holdTimer = 0;
}
if (((gControllerHold[gMainController].button & U_JPAD) && (holdTimer > 15)) ||
(gControllerPress[gMainController].button & U_JPAD)) {
sfxId++;
} else if (((gControllerHold[gMainController].button & D_JPAD) && (holdTimer > 15)) ||
(gControllerPress[gMainController].button & D_JPAD)) {
sfxId--;
} else if (gControllerPress[gMainController].button & L_JPAD) {
sfxId -= 0x10;
} else if (gControllerPress[gMainController].button & R_JPAD) {
sfxId += 0x10;
}
if (((sfxBank == 0) || (sfxBank == 4)) && (sfxId > 0x3F)) {
sfxId = 0x3F;
} else if (((sfxBank == 2) || (sfxBank == 3)) && (sfxId > 0xA7)) {
sfxId = 0xA7;
} else if ((sfxBank == 1) && (sfxId > 0x8F)) {
sfxId = 0x8F;
} else if (sfxId < 0) {
sfxId = 0;
}
sfx &= 0xFFFFFF00;
sfx |= sfxId & 0xFF;
if (prevSfx != sfx) {
Audio_PlaySfx(0x49000002, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
prevSfx = sfx;
}
decimalToHex(sfx, hexString, sizeof(hexString));
if (gControllerPress[gMainController].button & A_BUTTON) {
func_800182F4(0x100100FF);
func_800182F4(0x110100FF);
Audio_PlaySfx(sfx, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
D_EBFBE0_801B9320 = true;
}
if (gControllerPress[gMainController].button & B_BUTTON) {
if (!D_EBFBE0_801B9320) {
func_8001D444(0, 36, 0, 255);
gDrawMode = DRAWMODE_0;
D_EBFBE0_801B9124 = 1000;
D_EBFBE0_801B912C = 0;
D_EBFBE0_801B9244 = 1;
} else {
Audio_PlaySfx(0x4900101D, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
Audio_KillSfx(&D_800C5D28);
func_800182F4(0x100100FF);
func_800182F4(0x110100FF);
D_EBFBE0_801B9320 = false;
}
}
// Spectrum Analizer mode selector
if (gControllerPress[gMainController].button & R_CBUTTONS) {
spectrumAnalizerMode++;
if (spectrumAnalizerMode > 2) {
spectrumAnalizerMode = 0;
}
}
/* Draw */
RCP_SetupDL(&gMasterDisp, 0x53);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
Graphics_DisplaySmallText(20, 50, 1.0f, 1.0f, "SFX ID:");
Graphics_DisplaySmallText(80, 50, 1.0f, 1.0f, hexString);
}

View File

@ -4,7 +4,9 @@
* Description: Starfox Map Handler * Description: Starfox Map Handler
*/ */
//#include "prevent_bss_reordering2.h" #include "mods.h"
// #include "prevent_bss_reordering2.h"
#include "global.h" #include "global.h"
#include "fox_map.h" #include "fox_map.h"
#include "sf64level.h" #include "sf64level.h"
@ -41,7 +43,7 @@ s32 D_EBFBE0_801CD944; // mapState
s32 D_EBFBE0_801CD948; s32 D_EBFBE0_801CD948;
s32 D_EBFBE0_801CD94C; s32 D_EBFBE0_801CD94C;
s32 D_EBFBE0_801CD950; s32 D_EBFBE0_801CD950;
s32 D_EBFBE0_801CD954; // sCurrentPlanetId s32 sCurrentPlanetId; // sCurrentPlanetId
s32 D_EBFBE0_801CD958; s32 D_EBFBE0_801CD958;
s32 D_EBFBE0_801CD95C; s32 D_EBFBE0_801CD95C;
s32 D_EBFBE0_801CD960; s32 D_EBFBE0_801CD960;
@ -215,7 +217,7 @@ extern s32 D_EBFBE0_801CD944; // mapState
extern s32 D_EBFBE0_801CD948; extern s32 D_EBFBE0_801CD948;
extern s32 D_EBFBE0_801CD94C; extern s32 D_EBFBE0_801CD94C;
extern s32 D_EBFBE0_801CD950; extern s32 D_EBFBE0_801CD950;
extern s32 D_EBFBE0_801CD954; // sCurrentPlanetId extern s32 sCurrentPlanetId; // sCurrentPlanetId
extern s32 D_EBFBE0_801CD958; extern s32 D_EBFBE0_801CD958;
extern s32 D_EBFBE0_801CD95C; extern s32 D_EBFBE0_801CD95C;
extern s32 D_EBFBE0_801CD960; extern s32 D_EBFBE0_801CD960;
@ -419,7 +421,7 @@ Planet planet[PLANET_MAX] = {
}; };
// unused // unused
PlanetId D_EBFBE0_801AF7E8[] = { PlanetId sPlanetList[] = {
PLANET_CORNERIA, PLANET_METEO, PLANET_TITANIA, PLANET_SECTOR_X, PLANET_AQUAS, PLANET_CORNERIA, PLANET_METEO, PLANET_TITANIA, PLANET_SECTOR_X, PLANET_AQUAS,
PLANET_BOLSE, PLANET_VENOM, PLANET_FORTUNA, PLANET_AREA_6, PLANET_MACBETH, PLANET_BOLSE, PLANET_VENOM, PLANET_FORTUNA, PLANET_AREA_6, PLANET_MACBETH,
PLANET_SECTOR_Z, PLANET_ZONESS, PLANET_KATINA, PLANET_SECTOR_Y, PLANET_SOLAR, PLANET_SECTOR_Z, PLANET_ZONESS, PLANET_KATINA, PLANET_SECTOR_Y, PLANET_SOLAR,
@ -1533,9 +1535,9 @@ void func_EBFBE0_8019F164(void) {
D_EBFBE0_801CD93C = D_80177930; D_EBFBE0_801CD93C = D_80177930;
D_EBFBE0_801CD954 = GetPlanetId(gCurrentLevel); sCurrentPlanetId = GetPlanetId(gCurrentLevel);
D_EBFBE0_801CD950 = D_EBFBE0_801CD954; D_EBFBE0_801CD950 = sCurrentPlanetId;
D_EBFBE0_801CD980 = func_EBFBE0_8019FD1C(gCurrentLevel, 0); D_EBFBE0_801CD980 = func_EBFBE0_8019FD1C(gCurrentLevel, 0);
@ -1543,7 +1545,7 @@ void func_EBFBE0_8019F164(void) {
if (D_800D3180[gCurrentLevel] == 2) { if (D_800D3180[gCurrentLevel] == 2) {
D_EBFBE0_801CD98C = 1; D_EBFBE0_801CD98C = 1;
D_80177BB0[D_80177B48] = 1; D_80177BB0[gCurrentPlanet] = 1;
func_EBFBE0_8019FD1C(gCurrentLevel, 1); func_EBFBE0_8019FD1C(gCurrentLevel, 1);
} }
@ -1557,19 +1559,19 @@ void func_EBFBE0_8019F164(void) {
switch (D_EBFBE0_801CD93C) { switch (D_EBFBE0_801CD93C) {
case 0: case 0:
D_EBFBE0_801CD958 = planet[D_EBFBE0_801CD954].unk_2C; D_EBFBE0_801CD958 = planet[sCurrentPlanetId].unk_2C;
break; break;
case 1: case 1:
D_EBFBE0_801CD958 = planet[D_EBFBE0_801CD954].unk_30; D_EBFBE0_801CD958 = planet[sCurrentPlanetId].unk_30;
break; break;
case 2: case 2:
D_EBFBE0_801CD958 = planet[D_EBFBE0_801CD954].unk_34; D_EBFBE0_801CD958 = planet[sCurrentPlanetId].unk_34;
break; break;
} }
D_80177B48++; gCurrentPlanet++;
func_EBFBE0_8019FC04(); func_EBFBE0_8019FC04();
@ -1600,9 +1602,9 @@ void func_EBFBE0_8019F42C(void) {
gLifeCount[gPlayerNum] = 0; gLifeCount[gPlayerNum] = 0;
D_EBFBE0_801CD974 = 1; D_EBFBE0_801CD974 = 1;
D_EBFBE0_801CD954 = GetPlanetId(gCurrentLevel); sCurrentPlanetId = GetPlanetId(gCurrentLevel);
D_80177B70[D_80177B48] = gHitCount; D_80177B70[gCurrentPlanet] = gHitCount;
func_EBFBE0_8019F910(); func_EBFBE0_8019F910();
func_EBFBE0_8019FD1C(gCurrentLevel, 0); func_EBFBE0_8019FD1C(gCurrentLevel, 0);
@ -1613,8 +1615,8 @@ void func_EBFBE0_8019F42C(void) {
D_EBFBE0_801CD8E0[i] = 0; D_EBFBE0_801CD8E0[i] = 0;
} }
if (D_80177B48 != 0) { if (gCurrentPlanet != 0) {
for (i = 0; i < D_80177B48; i++) { for (i = 0; i < gCurrentPlanet; i++) {
D_EBFBE0_801CD8E0[i] = func_EBFBE0_801A655C(D_80177B90[i], D_80177B90[i + 1]); D_EBFBE0_801CD8E0[i] = func_EBFBE0_801A655C(D_80177B90[i], D_80177B90[i + 1]);
} }
} }
@ -1688,17 +1690,17 @@ void func_EBFBE0_8019F600(void) {
D_EBFBE0_801AFD18[i].unk_18 = 255; D_EBFBE0_801AFD18[i].unk_18 = 255;
} }
D_80177B48 = 0; gCurrentPlanet = 0;
gCurrentLevel = 0; gCurrentLevel = 0;
D_EBFBE0_801CD954 = 9; sCurrentPlanetId = 9;
D_EBFBE0_801CEA9C = 0.0f; D_EBFBE0_801CEA9C = 0.0f;
D_EBFBE0_801CD9B0 = 0.002f; D_EBFBE0_801CD9B0 = 0.002f;
D_EBFBE0_801CD9B4 = 0.01f; D_EBFBE0_801CD9B4 = 0.01f;
D_EBFBE0_801CD944 = 0; D_EBFBE0_801CD944 = 0;
sp18 = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_2C); sp18 = func_EBFBE0_801A655C(sCurrentPlanetId, planet[sCurrentPlanetId].unk_2C);
temp_t4 = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_30); temp_t4 = func_EBFBE0_801A655C(sCurrentPlanetId, planet[sCurrentPlanetId].unk_30);
D_80177BD8[sp18] = 1; D_80177BD8[sp18] = 1;
D_80177BD8[temp_t4] = 1; D_80177BD8[temp_t4] = 1;
} }
@ -1728,28 +1730,28 @@ void func_EBFBE0_8019F910(void) {
for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) {
if (gTeamShields[3 - i] <= 0) { if (gTeamShields[3 - i] <= 0) {
D_80177B50[D_80177B48] ^= mask; D_80177B50[gCurrentPlanet] ^= mask;
} else { } else {
D_80177B50[D_80177B48] |= mask; D_80177B50[gCurrentPlanet] |= mask;
} }
mask >>= 8; mask >>= 8;
} }
} }
void func_EBFBE0_8019F97C(void) { void func_EBFBE0_8019F97C(void) {
D_EBFBE0_801CEA54 = func_EBFBE0_801A25C8(D_EBFBE0_801CD954); D_EBFBE0_801CEA54 = func_EBFBE0_801A25C8(sCurrentPlanetId);
D_EBFBE0_801CD9F4 = D_EBFBE0_801CDA00 = planet[D_EBFBE0_801CD954].posX; D_EBFBE0_801CD9F4 = D_EBFBE0_801CDA00 = planet[sCurrentPlanetId].posX;
D_EBFBE0_801CD9F8 = D_EBFBE0_801CDA04 = planet[D_EBFBE0_801CD954].posY; D_EBFBE0_801CD9F8 = D_EBFBE0_801CDA04 = planet[sCurrentPlanetId].posY;
D_EBFBE0_801CDA08 = planet[D_EBFBE0_801CD954].posZ; D_EBFBE0_801CDA08 = planet[sCurrentPlanetId].posZ;
D_EBFBE0_801CD9FC = planet[D_EBFBE0_801CD954].posZ + D_EBFBE0_801CEA54; D_EBFBE0_801CD9FC = planet[sCurrentPlanetId].posZ + D_EBFBE0_801CEA54;
} }
void func_EBFBE0_8019FA1C(void) { void func_EBFBE0_8019FA1C(void) {
PlanetId planetId; PlanetId planetId;
for (planetId = 0; planetId < PLANET_MAX; planetId++) { for (planetId = 0; planetId < PLANET_MAX; planetId++) {
if (planetId == D_EBFBE0_801CD954) { if (planetId == sCurrentPlanetId) {
if ((planetId == PLANET_SECTOR_Z) || (planetId == PLANET_SECTOR_X) || (planetId == PLANET_SECTOR_Y)) { if ((planetId == PLANET_SECTOR_Z) || (planetId == PLANET_SECTOR_X) || (planetId == PLANET_SECTOR_Y)) {
planet[planetId].alpha = 144; planet[planetId].alpha = 144;
} else { } else {
@ -1764,7 +1766,7 @@ void func_EBFBE0_8019FA1C(void) {
void func_EBFBE0_8019FC04(void) { void func_EBFBE0_8019FC04(void) {
s32 i; s32 i;
if (D_80177B48 != 0) { if (gCurrentPlanet != 0) {
D_EBFBE0_801CEB48[1] = 1; D_EBFBE0_801CEB48[1] = 1;
D_EBFBE0_801CEB48[2] = 1; D_EBFBE0_801CEB48[2] = 1;
} }
@ -1952,6 +1954,9 @@ void func_EBFBE0_8019FF48(void) {
D_EBFBE0_801CDA08); D_EBFBE0_801CDA08);
} }
gFrameCount++; gFrameCount++;
#if MODS_LEVEL_SELECT == true
Map_LevelSelect();
#endif
} }
void func_EBFBE0_801A01A8(void) { void func_EBFBE0_801A01A8(void) {
@ -2469,14 +2474,14 @@ void func_EBFBE0_801A1AE8(void) {
D_EBFBE0_801CEA64 = 0.04f; D_EBFBE0_801CEA64 = 0.04f;
D_EBFBE0_801CEA54 = func_EBFBE0_801A25C8(D_EBFBE0_801CD954); D_EBFBE0_801CEA54 = func_EBFBE0_801A25C8(sCurrentPlanetId);
D_EBFBE0_801CDA40.x = planet[D_EBFBE0_801CD954].posX; D_EBFBE0_801CDA40.x = planet[sCurrentPlanetId].posX;
D_EBFBE0_801CDA40.y = planet[D_EBFBE0_801CD954].posY; D_EBFBE0_801CDA40.y = planet[sCurrentPlanetId].posY;
D_EBFBE0_801CDA40.z = planet[D_EBFBE0_801CD954].posZ; D_EBFBE0_801CDA40.z = planet[sCurrentPlanetId].posZ;
D_EBFBE0_801CDA50.x = planet[D_EBFBE0_801CD954].posX; D_EBFBE0_801CDA50.x = planet[sCurrentPlanetId].posX;
D_EBFBE0_801CDA50.y = planet[D_EBFBE0_801CD954].posY; D_EBFBE0_801CDA50.y = planet[sCurrentPlanetId].posY;
D_EBFBE0_801CDA50.z = D_EBFBE0_801CDA40.z + D_EBFBE0_801CEA54; D_EBFBE0_801CDA50.z = D_EBFBE0_801CDA40.z + D_EBFBE0_801CEA54;
D_EBFBE0_801CDA2C = D_EBFBE0_801CDA00; D_EBFBE0_801CDA2C = D_EBFBE0_801CDA00;
@ -2516,7 +2521,7 @@ void func_EBFBE0_801A1C14(void) {
D_EBFBE0_801CD95C = 10; D_EBFBE0_801CD95C = 10;
D_EBFBE0_801CD97C = 0; D_EBFBE0_801CD97C = 0;
if (D_EBFBE0_801CD954 == PLANET_CORNERIA) { if (sCurrentPlanetId == PLANET_CORNERIA) {
D_EBFBE0_801CD95C = 5; D_EBFBE0_801CD95C = 5;
} }
@ -2540,7 +2545,7 @@ void func_EBFBE0_801A1C14(void) {
case 1: case 1:
if (D_EBFBE0_801CD95C == 0) { if (D_EBFBE0_801CD95C == 0) {
if (D_EBFBE0_801CD954 == PLANET_CORNERIA) { if (sCurrentPlanetId == PLANET_CORNERIA) {
D_80178340 = 0; D_80178340 = 0;
D_EBFBE0_801CD948 = 10; D_EBFBE0_801CD948 = 10;
Audio_PlaySfx(0x0940A00BU, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); Audio_PlaySfx(0x0940A00BU, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
@ -2549,7 +2554,7 @@ void func_EBFBE0_801A1C14(void) {
D_EBFBE0_801CD948++; D_EBFBE0_801CD948++;
} }
} else { } else {
if (D_EBFBE0_801CD954 == PLANET_CORNERIA) { if (sCurrentPlanetId == PLANET_CORNERIA) {
D_80178340 ^= 0xFF; D_80178340 ^= 0xFF;
if (D_EBFBE0_801CD95C == 2) { if (D_EBFBE0_801CD95C == 2) {
D_EBFBE0_801CEB34 = 0; D_EBFBE0_801CEB34 = 0;
@ -2571,7 +2576,7 @@ void func_EBFBE0_801A1C14(void) {
if ((D_EBFBE0_801CD9FC == D_EBFBE0_801CDA50.z) && (D_EBFBE0_801CD9D8 == 0)) { if ((D_EBFBE0_801CD9FC == D_EBFBE0_801CDA50.z) && (D_EBFBE0_801CD9D8 == 0)) {
Audio_PlaySfx(0x19004013U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); Audio_PlaySfx(0x19004013U, &D_800C5D28, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
D_EBFBE0_801CD9D8 = 1; D_EBFBE0_801CD9D8 = 1;
if (D_EBFBE0_801CD954 == PLANET_CORNERIA) { if (sCurrentPlanetId == PLANET_CORNERIA) {
D_EBFBE0_801CEB48[0] = 1; D_EBFBE0_801CEB48[0] = 1;
for (i = 0; i < 10; i++) { for (i = 0; i < 10; i++) {
D_EBFBE0_801CEB58[0][i] = Rand_ZeroOne() * 3.0f; D_EBFBE0_801CEB58[0][i] = Rand_ZeroOne() * 3.0f;
@ -2772,7 +2777,7 @@ void func_EBFBE0_801A2674(void) {
D_EBFBE0_801CD900[i] = 0; D_EBFBE0_801CD900[i] = 0;
} }
if (i == D_EBFBE0_801CD954) { if (i == sCurrentPlanetId) {
continue; continue;
} }
@ -2795,11 +2800,11 @@ void func_EBFBE0_801A2674(void) {
} }
} }
if (D_EBFBE0_801CD954 == 2) { if (sCurrentPlanetId == 2) {
Math_SmoothStepToF(&D_EBFBE0_801AFFF8, 20.0f, 0.05f, 100.0f, 0.1f); Math_SmoothStepToF(&D_EBFBE0_801AFFF8, 20.0f, 0.05f, 100.0f, 0.1f);
} }
if (D_EBFBE0_801CD954 == 1) { if (sCurrentPlanetId == 1) {
Math_SmoothStepToF(&D_EBFBE0_801B0000, 15.0f, 0.05f, 100.0f, 0.1f); Math_SmoothStepToF(&D_EBFBE0_801B0000, 15.0f, 0.05f, 100.0f, 0.1f);
} }
@ -2866,7 +2871,7 @@ void func_EBFBE0_801A281C(void) {
D_EBFBE0_801CEEE8[7].y = D_EBFBE0_801CEEE8[6].y; D_EBFBE0_801CEEE8[7].y = D_EBFBE0_801CEEE8[6].y;
D_EBFBE0_801CEEE8[7].z = D_EBFBE0_801CEEE8[6].z; D_EBFBE0_801CEEE8[7].z = D_EBFBE0_801CEEE8[6].z;
D_EBFBE0_801CEECC = func_EBFBE0_801A655C(D_EBFBE0_801CD954, D_EBFBE0_801CD958); D_EBFBE0_801CEECC = func_EBFBE0_801A655C(sCurrentPlanetId, D_EBFBE0_801CD958);
if (D_EBFBE0_801CD93C == 2) { if (D_EBFBE0_801CD93C == 2) {
D_80177BD8[D_EBFBE0_801CEECC] = 5; D_80177BD8[D_EBFBE0_801CEECC] = 5;
@ -3010,8 +3015,8 @@ void func_EBFBE0_801A2EB8(void) {
func_EBFBE0_801A3440(D_EBFBE0_801CEEE0); func_EBFBE0_801A3440(D_EBFBE0_801CEEE0);
if (D_EBFBE0_801CD9C4 == 80) { if (D_EBFBE0_801CD9C4 == 80) {
D_EBFBE0_801CD954 = D_EBFBE0_801CD958; sCurrentPlanetId = D_EBFBE0_801CD958;
D_80177B90[D_80177B48] = D_EBFBE0_801CD954; D_80177B90[gCurrentPlanet] = sCurrentPlanetId;
func_EBFBE0_801A6368(); func_EBFBE0_801A6368();
} }
@ -3050,7 +3055,7 @@ void func_EBFBE0_801A2EB8(void) {
#define PLANET_ID i #define PLANET_ID i
for (PLANET_ID = 0; PLANET_ID < PLANET_MAX; PLANET_ID++) { for (PLANET_ID = 0; PLANET_ID < PLANET_MAX; PLANET_ID++) {
if ((PLANET_ID == D_EBFBE0_801CD954) || (PLANET_ID == D_EBFBE0_801CD958)) { if ((PLANET_ID == sCurrentPlanetId) || (PLANET_ID == D_EBFBE0_801CD958)) {
continue; continue;
} }
@ -3429,7 +3434,7 @@ void func_EBFBE0_801A4394(void) {
switch (D_EBFBE0_801CD94C) { switch (D_EBFBE0_801CD94C) {
case 0: case 0:
if (D_80177B48 == 0) { if (gCurrentPlanet == 0) {
D_EBFBE0_801CD9C0 = 45; D_EBFBE0_801CD9C0 = 45;
D_EBFBE0_801CD94C = 3; D_EBFBE0_801CD94C = 3;
} else { } else {
@ -3438,7 +3443,7 @@ void func_EBFBE0_801A4394(void) {
break; break;
case 1: case 1:
if (D_80177B48 == D_EBFBE0_801CD9AC) { if (gCurrentPlanet == D_EBFBE0_801CD9AC) {
D_EBFBE0_801CD94C = 3; D_EBFBE0_801CD94C = 3;
D_EBFBE0_801CD9C0 = 45; D_EBFBE0_801CD9C0 = 45;
break; break;
@ -3726,20 +3731,20 @@ void func_EBFBE0_801A4FC4(void) {
gLaserStrength[gPlayerNum] = 0; gLaserStrength[gPlayerNum] = 0;
gBombCount[gPlayerNum] = 3; gBombCount[gPlayerNum] = 3;
if (planet[D_EBFBE0_801CD954].unk_2C != -1) { if (planet[sCurrentPlanetId].unk_2C != -1) {
temp2 = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_2C); temp2 = func_EBFBE0_801A655C(sCurrentPlanetId, planet[sCurrentPlanetId].unk_2C);
D_80177BD8[temp2] = 0; D_80177BD8[temp2] = 0;
D_EBFBE0_801AFD18[temp2].unk_18 = 0; D_EBFBE0_801AFD18[temp2].unk_18 = 0;
} }
if (planet[D_EBFBE0_801CD954].unk_30 != -1) { if (planet[sCurrentPlanetId].unk_30 != -1) {
temp = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_30); temp = func_EBFBE0_801A655C(sCurrentPlanetId, planet[sCurrentPlanetId].unk_30);
D_80177BD8[temp] = 0; D_80177BD8[temp] = 0;
D_EBFBE0_801AFD18[temp].unk_18 = 0; D_EBFBE0_801AFD18[temp].unk_18 = 0;
} }
if (planet[D_EBFBE0_801CD954].unk_34 != -1) { if (planet[sCurrentPlanetId].unk_34 != -1) {
temp = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_34); temp = func_EBFBE0_801A655C(sCurrentPlanetId, planet[sCurrentPlanetId].unk_34);
D_80177BD8[temp] = 0; D_80177BD8[temp] = 0;
D_EBFBE0_801AFD18[temp].unk_18 = 0; D_EBFBE0_801AFD18[temp].unk_18 = 0;
} }
@ -3750,32 +3755,32 @@ void func_EBFBE0_801A4FC4(void) {
D_EBFBE0_801CEEA8 = 255; D_EBFBE0_801CEEA8 = 255;
D_EBFBE0_801CEEAC = 255; D_EBFBE0_801CEEAC = 255;
gTotalHits -= D_80177B70[D_80177B48 - 1]; gTotalHits -= D_80177B70[gCurrentPlanet - 1];
D_80177B90[D_80177B48] = -1; D_80177B90[gCurrentPlanet] = -1;
D_80177B70[D_80177B48 - 1] = 0; D_80177B70[gCurrentPlanet - 1] = 0;
D_80177BB0[D_80177B48 - 1] = 0; D_80177BB0[gCurrentPlanet - 1] = 0;
D_80177B50[D_80177B48 - 1] = 0x00FFFFFF; D_80177B50[gCurrentPlanet - 1] = 0x00FFFFFF;
gHitCount = 0; gHitCount = 0;
D_80177B48--; gCurrentPlanet--;
D_EBFBE0_801CD83C = func_EBFBE0_801A05B4(); D_EBFBE0_801CD83C = func_EBFBE0_801A05B4();
D_EBFBE0_801CD954 = D_EBFBE0_801CD950; sCurrentPlanetId = D_EBFBE0_801CD950;
if (planet[D_EBFBE0_801CD954].unk_2C != -1) { if (planet[sCurrentPlanetId].unk_2C != -1) {
temp2 = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_2C); temp2 = func_EBFBE0_801A655C(sCurrentPlanetId, planet[sCurrentPlanetId].unk_2C);
D_80177BD8[temp2] = 1; D_80177BD8[temp2] = 1;
D_EBFBE0_801AFD18[temp2].unk_18 = 255; D_EBFBE0_801AFD18[temp2].unk_18 = 255;
} }
if (planet[D_EBFBE0_801CD954].unk_30 != -1) { if (planet[sCurrentPlanetId].unk_30 != -1) {
temp = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_30); temp = func_EBFBE0_801A655C(sCurrentPlanetId, planet[sCurrentPlanetId].unk_30);
D_80177BD8[temp] = 1; D_80177BD8[temp] = 1;
D_EBFBE0_801AFD18[temp].unk_18 = 255; D_EBFBE0_801AFD18[temp].unk_18 = 255;
} }
if (planet[D_EBFBE0_801CD954].unk_34 != -1) { if (planet[sCurrentPlanetId].unk_34 != -1) {
temp = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_34); temp = func_EBFBE0_801A655C(sCurrentPlanetId, planet[sCurrentPlanetId].unk_34);
D_80177BD8[temp] = 0; D_80177BD8[temp] = 0;
D_EBFBE0_801AFD18[temp].unk_18 = 0; D_EBFBE0_801AFD18[temp].unk_18 = 0;
} }
@ -3789,14 +3794,14 @@ void func_EBFBE0_801A53C8(void) {
D_EBFBE0_801CEFD8 ^= 1; D_EBFBE0_801CEFD8 ^= 1;
if (planet[D_EBFBE0_801CD954].unk_2C != -1) { if (planet[sCurrentPlanetId].unk_2C != -1) {
temp2 = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_2C); temp2 = func_EBFBE0_801A655C(sCurrentPlanetId, planet[sCurrentPlanetId].unk_2C);
D_80177BD8[temp2] = 0; D_80177BD8[temp2] = 0;
D_EBFBE0_801AFD18[temp2].unk_18 = 0; D_EBFBE0_801AFD18[temp2].unk_18 = 0;
} }
if (planet[D_EBFBE0_801CD954].unk_30 != -1) { if (planet[sCurrentPlanetId].unk_30 != -1) {
temp = func_EBFBE0_801A655C(D_EBFBE0_801CD954, planet[D_EBFBE0_801CD954].unk_30); temp = func_EBFBE0_801A655C(sCurrentPlanetId, planet[sCurrentPlanetId].unk_30);
D_80177BD8[temp] = 0; D_80177BD8[temp] = 0;
D_EBFBE0_801AFD18[temp].unk_18 = 0; D_EBFBE0_801AFD18[temp].unk_18 = 0;
} }
@ -3806,23 +3811,23 @@ void func_EBFBE0_801A53C8(void) {
D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_18 = 0; D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_18 = 0;
D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_14 = 0; D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_14 = 0;
D_EBFBE0_801CD954 = D_EBFBE0_801CD950; sCurrentPlanetId = D_EBFBE0_801CD950;
if (!D_EBFBE0_801CEFD8) { if (!D_EBFBE0_801CEFD8) {
D_EBFBE0_801CD958 = planet[D_EBFBE0_801CD954].unk_2C; D_EBFBE0_801CD958 = planet[sCurrentPlanetId].unk_2C;
} else if (D_EBFBE0_801CD93C != 2) { } else if (D_EBFBE0_801CD93C != 2) {
if (planet[D_EBFBE0_801CD954].unk_30 != -1) { if (planet[sCurrentPlanetId].unk_30 != -1) {
D_EBFBE0_801CD958 = planet[D_EBFBE0_801CD954].unk_30; D_EBFBE0_801CD958 = planet[sCurrentPlanetId].unk_30;
} else { } else {
D_EBFBE0_801CD958 = planet[D_EBFBE0_801CD954].unk_2C; D_EBFBE0_801CD958 = planet[sCurrentPlanetId].unk_2C;
} }
} else if (planet[D_EBFBE0_801CD954].unk_34 != -1) { } else if (planet[sCurrentPlanetId].unk_34 != -1) {
D_EBFBE0_801CD958 = planet[D_EBFBE0_801CD954].unk_34; D_EBFBE0_801CD958 = planet[sCurrentPlanetId].unk_34;
} else { } else {
D_EBFBE0_801CD958 = planet[D_EBFBE0_801CD954].unk_2C; D_EBFBE0_801CD958 = planet[sCurrentPlanetId].unk_2C;
} }
D_EBFBE0_801CEECC = func_EBFBE0_801A655C(D_EBFBE0_801CD954, D_EBFBE0_801CD958); D_EBFBE0_801CEECC = func_EBFBE0_801A655C(sCurrentPlanetId, D_EBFBE0_801CD958);
D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_18 = 255; D_EBFBE0_801AFD18[D_EBFBE0_801CEECC].unk_18 = 255;
@ -3840,8 +3845,8 @@ void func_EBFBE0_801A53C8(void) {
D_EBFBE0_801CEEA8 = 255; D_EBFBE0_801CEEA8 = 255;
D_EBFBE0_801CEEAC = 255; D_EBFBE0_801CEEAC = 255;
D_EBFBE0_801CD954 = D_EBFBE0_801CD958; sCurrentPlanetId = D_EBFBE0_801CD958;
D_80177B90[D_80177B48] = D_EBFBE0_801CD954; D_80177B90[gCurrentPlanet] = sCurrentPlanetId;
func_EBFBE0_801A6368(); func_EBFBE0_801A6368();
@ -4030,7 +4035,7 @@ void func_EBFBE0_801A5E80(void) {
D_EBFBE0_801B8284 = 0; D_EBFBE0_801B8284 = 0;
D_EBFBE0_801CD9A0 = 1; D_EBFBE0_801CD9A0 = 1;
func_EBFBE0_801A6368(); func_EBFBE0_801A6368();
D_EBFBE0_801CD9A8 = func_EBFBE0_801A62FC(D_EBFBE0_801CD954); D_EBFBE0_801CD9A8 = func_EBFBE0_801A62FC(sCurrentPlanetId);
func_EBFBE0_801AB284(); func_EBFBE0_801AB284();
D_EBFBE0_801B8280++; D_EBFBE0_801B8280++;
break; break;
@ -4068,7 +4073,7 @@ void func_EBFBE0_801A5E80(void) {
if (D_EBFBE0_801B8284 < 120) { if (D_EBFBE0_801B8284 < 120) {
D_EBFBE0_801B8284 += 15; D_EBFBE0_801B8284 += 15;
if (D_EBFBE0_801CD954 == PLANET_CORNERIA) { if (sCurrentPlanetId == PLANET_CORNERIA) {
*D_EBFBE0_801CEB48 = 0; *D_EBFBE0_801CEB48 = 0;
} }
} else { } else {
@ -4201,7 +4206,7 @@ bool func_EBFBE0_801A62FC(PlanetId planet) {
} }
void func_EBFBE0_801A6368(void) { void func_EBFBE0_801A6368(void) {
switch (D_EBFBE0_801CD954) { switch (sCurrentPlanetId) {
case PLANET_CORNERIA: case PLANET_CORNERIA:
gCurrentLevel = LEVEL_CORNERIA; gCurrentLevel = LEVEL_CORNERIA;
break; break;
@ -4351,7 +4356,7 @@ void func_EBFBE0_801A659C(void) {
func_8001A838(0x1100004C); func_8001A838(0x1100004C);
func_8001A838(0x1100204C); func_8001A838(0x1100204C);
if (D_EBFBE0_801CD954 != 9) { if (sCurrentPlanetId != 9) {
Audio_PlaySfx(0x49000003, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); Audio_PlaySfx(0x49000003, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
} }
@ -4460,11 +4465,11 @@ void func_EBFBE0_801A6A98(PlanetId planetId) {
s32 mask; s32 mask;
s32 temp; s32 temp;
if ((planet[planetId].alpha == 0) && (planetId != D_EBFBE0_801CD954)) { if ((planet[planetId].alpha == 0) && (planetId != sCurrentPlanetId)) {
return; return;
} }
if ((planetId == D_EBFBE0_801CD954) && (D_EBFBE0_801CD944 == 2) && (D_EBFBE0_801CD95C != 0)) { if ((planetId == sCurrentPlanetId) && (D_EBFBE0_801CD944 == 2) && (D_EBFBE0_801CD95C != 0)) {
mask = 0x00000001; mask = 0x00000001;
} else { } else {
mask = 0xFFFFFFFF; mask = 0xFFFFFFFF;
@ -4655,7 +4660,7 @@ void func_EBFBE0_801A6EC0(PlanetId planetId) {
void func_EBFBE0_801A7230(PlanetId planetId) { void func_EBFBE0_801A7230(PlanetId planetId) {
switch (planet[planetId].unk_28) { switch (planet[planetId].unk_28) {
case 0: case 0:
if ((D_EBFBE0_801CD944 == 3 || planetId == D_EBFBE0_801CD954 || planetId == D_EBFBE0_801CD958) && if ((D_EBFBE0_801CD944 == 3 || planetId == sCurrentPlanetId || planetId == D_EBFBE0_801CD958) &&
D_EBFBE0_801CD944 != 1 && D_EBFBE0_801CD944 != 7) { D_EBFBE0_801CD944 != 1 && D_EBFBE0_801CD944 != 7) {
RCP_SetupDL(&gMasterDisp, 0x35); RCP_SetupDL(&gMasterDisp, 0x35);
} else { } else {
@ -4665,7 +4670,7 @@ void func_EBFBE0_801A7230(PlanetId planetId) {
break; break;
case 2: case 2:
if ((D_EBFBE0_801CD944 == 3 || planetId == D_EBFBE0_801CD954 || planetId == D_EBFBE0_801CD958) && if ((D_EBFBE0_801CD944 == 3 || planetId == sCurrentPlanetId || planetId == D_EBFBE0_801CD958) &&
D_EBFBE0_801CD944 != 1 && D_EBFBE0_801CD944 != 7) { D_EBFBE0_801CD944 != 1 && D_EBFBE0_801CD944 != 7) {
RCP_SetupDL(&gMasterDisp, 0x17); RCP_SetupDL(&gMasterDisp, 0x17);
} else { } else {
@ -5209,7 +5214,7 @@ void func_EBFBE0_801A8F40(void) {
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
Matrix_Mult(gGfxMatrix, &D_EBFBE0_801CDA60[D_EBFBE0_801CD954], 1); Matrix_Mult(gGfxMatrix, &D_EBFBE0_801CDA60[sCurrentPlanetId], 1);
Matrix_Translate(gGfxMatrix, 0.0f, D_EBFBE0_801CEAA8, 0.0f, 1); Matrix_Translate(gGfxMatrix, 0.0f, D_EBFBE0_801CEAA8, 0.0f, 1);
Matrix_RotateY(gGfxMatrix, M_DTOR * D_EBFBE0_801B6A7C, 1); Matrix_RotateY(gGfxMatrix, M_DTOR * D_EBFBE0_801B6A7C, 1);
Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 3.0f, 1); Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 3.0f, 1);
@ -5227,31 +5232,31 @@ void func_EBFBE0_801A8F40(void) {
void func_EBFBE0_801A914C(void) { void func_EBFBE0_801A914C(void) {
D_EBFBE0_801CEAA8 = 140.0f; D_EBFBE0_801CEAA8 = 140.0f;
if (D_EBFBE0_801CD954 == 9) { if (sCurrentPlanetId == 9) {
D_EBFBE0_801CEAA8 = 230.0f; D_EBFBE0_801CEAA8 = 230.0f;
} }
if (D_EBFBE0_801CD954 == 1) { if (sCurrentPlanetId == 1) {
D_EBFBE0_801CEAA8 = 210.0f; D_EBFBE0_801CEAA8 = 210.0f;
} }
if (D_EBFBE0_801CD954 == 0xE) { if (sCurrentPlanetId == 0xE) {
D_EBFBE0_801CEAA8 = 250.0f; D_EBFBE0_801CEAA8 = 250.0f;
} }
if (D_EBFBE0_801CD954 == 4) { if (sCurrentPlanetId == 4) {
D_EBFBE0_801CEAA8 = 150.0f; D_EBFBE0_801CEAA8 = 150.0f;
} }
if (D_EBFBE0_801CD954 == 5) { if (sCurrentPlanetId == 5) {
D_EBFBE0_801CEAA8 = 150.0f; D_EBFBE0_801CEAA8 = 150.0f;
} }
if (D_EBFBE0_801CD954 == 3) { if (sCurrentPlanetId == 3) {
D_EBFBE0_801CEAA8 = 150.0f; D_EBFBE0_801CEAA8 = 150.0f;
} }
if (D_EBFBE0_801CD954 == 0xD) { if (sCurrentPlanetId == 0xD) {
D_EBFBE0_801CEAA8 = 300.0f; D_EBFBE0_801CEAA8 = 300.0f;
} }
@ -5263,14 +5268,14 @@ void func_EBFBE0_801A9224(void) {
s32 i; s32 i;
s32 mask; s32 mask;
if ((planet[PLANET_METEO].alpha != 0) || (D_EBFBE0_801CD954 == 0)) { if ((planet[PLANET_METEO].alpha != 0) || (sCurrentPlanetId == 0)) {
if ((D_EBFBE0_801CD954 == 0) && (D_EBFBE0_801CD944 == 2) && (D_EBFBE0_801CD95C != 0)) { if ((sCurrentPlanetId == 0) && (D_EBFBE0_801CD944 == 2) && (D_EBFBE0_801CD95C != 0)) {
mask = 0x00000001; mask = 0x00000001;
} else { } else {
mask = 0xFFFFFFFF; mask = 0xFFFFFFFF;
} }
if ((D_EBFBE0_801CD944 == 3) || ((D_EBFBE0_801CD954 == 0) && (D_EBFBE0_801CD944 != 7))) { if ((D_EBFBE0_801CD944 == 3) || ((sCurrentPlanetId == 0) && (D_EBFBE0_801CD944 != 7))) {
RCP_SetupDL(&gMasterDisp, 0x35); RCP_SetupDL(&gMasterDisp, 0x35);
} else { } else {
RCP_SetupDL(&gMasterDisp, 0x40); RCP_SetupDL(&gMasterDisp, 0x40);
@ -5312,17 +5317,17 @@ void func_EBFBE0_801A9448(void) {
s32 mask; s32 mask;
static f32 D_EBFBE0_801B6A80 = -22.0f; static f32 D_EBFBE0_801B6A80 = -22.0f;
if ((planet[PLANET_AREA_6].alpha == 0) && (D_EBFBE0_801CD954 != PLANET_AREA_6)) { if ((planet[PLANET_AREA_6].alpha == 0) && (sCurrentPlanetId != PLANET_AREA_6)) {
return; return;
} }
if ((D_EBFBE0_801CD954 == PLANET_AREA_6) && (D_EBFBE0_801CD944 == 2) && (D_EBFBE0_801CD95C != 0)) { if ((sCurrentPlanetId == PLANET_AREA_6) && (D_EBFBE0_801CD944 == 2) && (D_EBFBE0_801CD95C != 0)) {
mask = 0x00000001; mask = 0x00000001;
} else { } else {
mask = 0xFFFFFFFF; mask = 0xFFFFFFFF;
} }
if ((D_EBFBE0_801CD944 == 3) || (D_EBFBE0_801CD954 == PLANET_AREA_6)) { if ((D_EBFBE0_801CD944 == 3) || (sCurrentPlanetId == PLANET_AREA_6)) {
RCP_SetupDL(&gMasterDisp, 0x17); RCP_SetupDL(&gMasterDisp, 0x17);
} else { } else {
RCP_SetupDL(&gMasterDisp, 0x2E); RCP_SetupDL(&gMasterDisp, 0x2E);
@ -5390,7 +5395,7 @@ void func_EBFBE0_801A9814(void) {
void func_EBFBE0_801A9910(void) { void func_EBFBE0_801A9910(void) {
static s32 D_EBFBE0_801B6A84[] = { 1, 13, 12, 11, 6, 2, 4, 10, 8, 0, 9, 5, 3, 7, 7 }; static s32 D_EBFBE0_801B6A84[] = { 1, 13, 12, 11, 6, 2, 4, 10, 8, 0, 9, 5, 3, 7, 7 };
s32 i; s32 i;
s32 var_s0 = D_EBFBE0_801B6A84[D_EBFBE0_801CD954]; s32 var_s0 = D_EBFBE0_801B6A84[sCurrentPlanetId];
RCP_SetupDL(&gMasterDisp, 0x53); RCP_SetupDL(&gMasterDisp, 0x53);
@ -5551,10 +5556,10 @@ void func_EBFBE0_801A9FD4(s32 arg0) {
f32 temp = 16.0f; f32 temp = 16.0f;
if (arg0) { if (arg0) {
var_s3 = D_80177B48; var_s3 = gCurrentPlanet;
} else { } else {
if ((D_80161A34 == 7) || (D_80161A34 == 8)) { if ((D_80161A34 == 7) || (D_80161A34 == 8)) {
var_s3 = D_80177B48; var_s3 = gCurrentPlanet;
} }
if (D_80161A34 == 5) { if (D_80161A34 == 5) {
var_s3 = D_EBFBE0_801CD9AC; var_s3 = D_EBFBE0_801CD9AC;
@ -5656,10 +5661,10 @@ void func_EBFBE0_801AA434(s32 arg0, f32 x, f32 y, s32 idx) {
D_80177B70[arg0]); D_80177B70[arg0]);
if (D_80161A34 == 7) { if (D_80161A34 == 7) {
temp = D_80177B48; temp = gCurrentPlanet;
} }
if ((D_80161A34 == 5) || (D_80161A34 == 8)) { if ((D_80161A34 == 5) || (D_80161A34 == 8)) {
temp = D_80177B48 + 1; temp = gCurrentPlanet + 1;
} }
if (arg0 < temp) { if (arg0 < temp) {
@ -5682,7 +5687,7 @@ void func_EBFBE0_801AA778(s32 arg0, f32 x, f32 y, PlanetId planetId) {
s32 mask = 0xFFFFFFFF; s32 mask = 0xFFFFFFFF;
if (gGameState == GSTATE_MAP) { if (gGameState == GSTATE_MAP) {
if (planetId == D_EBFBE0_801CD954) { if (planetId == sCurrentPlanetId) {
mask = 0x00000010; mask = 0x00000010;
} }
} }
@ -5867,7 +5872,7 @@ void func_EBFBE0_801AB17C(f32 x, f32 y, f32 z) {
void func_EBFBE0_801AB284(void) { void func_EBFBE0_801AB284(void) {
D_EBFBE0_801CD940 = 0; D_EBFBE0_801CD940 = 0;
D_80178308 = D_EBFBE0_801AF428[D_EBFBE0_801CD954][D_EBFBE0_801CD940]; D_80178308 = D_EBFBE0_801AF428[sCurrentPlanetId][D_EBFBE0_801CD940];
D_80177D68 = D_EBFBE0_801AF420[D_EBFBE0_801CD940]; D_80177D68 = D_EBFBE0_801AF420[D_EBFBE0_801CD940];
D_EBFBE0_801CF018 = 100; D_EBFBE0_801CF018 = 100;
D_80178728 = 78; D_80178728 = 78;
@ -5907,7 +5912,7 @@ void func_EBFBE0_801AB300(void) {
} }
D_EBFBE0_801CD940 = 1; D_EBFBE0_801CD940 = 1;
D_80178308 = D_EBFBE0_801AF428[D_EBFBE0_801CD954][D_EBFBE0_801CD940]; D_80178308 = D_EBFBE0_801AF428[sCurrentPlanetId][D_EBFBE0_801CD940];
func_8001ACDC(Message_IdFromPtr(D_80178308)); func_8001ACDC(Message_IdFromPtr(D_80178308));
@ -5985,7 +5990,7 @@ void func_EBFBE0_801AB300(void) {
break; break;
} else { } else {
D_EBFBE0_801CD940 = 1; D_EBFBE0_801CD940 = 1;
D_80178308 = D_EBFBE0_801AF428[D_EBFBE0_801CD954][D_EBFBE0_801CD940]; D_80178308 = D_EBFBE0_801AF428[sCurrentPlanetId][D_EBFBE0_801CD940];
func_8001ACDC(Message_IdFromPtr(D_80178308)); func_8001ACDC(Message_IdFromPtr(D_80178308));
D_80177D68 = D_EBFBE0_801AF420[D_EBFBE0_801CD940]; D_80177D68 = D_EBFBE0_801AF420[D_EBFBE0_801CD940];
D_801782A4 = D_80177D68; D_801782A4 = D_80177D68;
@ -6982,3 +6987,7 @@ void func_EBFBE0_801AD7EC(s32 xPos, s32 yPos, s32 number) {
Graphics_DisplaySmallNumber(xPos + 33.0f, yPos + 8.0f, number); Graphics_DisplaySmallNumber(xPos + 33.0f, yPos + 8.0f, number);
} }
} }
#if MODS_LEVEL_SELECT == 1
#include "../../mods/levelselect.c"
#endif

View File

@ -4,6 +4,8 @@
* Description: Starfox Option Menu Handler * Description: Starfox Option Menu Handler
*/ */
#include "mods.h"
#include "global.h" #include "global.h"
#include "fox_option.h" #include "fox_option.h"
@ -339,7 +341,7 @@ UnkStruct_D_EBFBE0_801B9250 D_EBFBE0_801B9408;
#endif #endif
void func_EBFBE0_80191B20(void) { void func_EBFBE0_80191B20(void) {
s32 var_a1_2; bool enableExpertModes;
bool var_v0_2; bool var_v0_2;
s32 i; s32 i;
@ -357,18 +359,24 @@ void func_EBFBE0_80191B20(void) {
D_EBFBE0_801AE5D0[i] = D_EBFBE0_801AE5A0[i]; D_EBFBE0_801AE5D0[i] = D_EBFBE0_801AE5A0[i];
} }
var_a1_2 = 1; enableExpertModes = true;
for (i = 0; i < 16; i++) { for (i = 0; i < 16; i++) {
if (i == SAVE_SLOT_VENOM_1) { if (i == SAVE_SLOT_VENOM_1) {
continue; continue;
} }
if (!(gSaveFile.save.data.planet[i].normalMedal & 1)) { if (!(gSaveFile.save.data.planet[i].normalMedal & 1)) {
var_a1_2 = 0; #if MODS_LEVEL_SELECT == 1
enableExpertModes = true;
#elif MODS_SFX_JUKEBOX == 1
enableExpertModes = true;
#else
enableExpertModes = false;
#endif
break; break;
} }
} }
D_EBFBE0_801B91C8 = var_a1_2; D_EBFBE0_801B91C8 = enableExpertModes;
D_80178348 = 0; D_80178348 = 0;
D_80178350 = 0; D_80178350 = 0;
D_80178354 = 0; D_80178354 = 0;
@ -399,7 +407,7 @@ void func_EBFBE0_80191B20(void) {
if ((D_80161A34 == 5) || (D_80161A34 == 8)) { if ((D_80161A34 == 5) || (D_80161A34 == 8)) {
if (D_80161A34 == 8) { if (D_80161A34 == 8) {
D_80177B90[D_80177B48] = 13; D_80177B90[gCurrentPlanet] = 13;
if (D_800D3180[9] == 1) { if (D_800D3180[9] == 1) {
gSaveFile.save.data.planet[SAVE_SLOT_VENOM_1].played = 1; gSaveFile.save.data.planet[SAVE_SLOT_VENOM_1].played = 1;
if (var_v0_2 != 0) { if (var_v0_2 != 0) {
@ -409,7 +417,7 @@ void func_EBFBE0_80191B20(void) {
} }
Save_Write(); Save_Write();
} else if (D_800D3180[9] == 2) { } else if (D_800D3180[9] == 2) {
D_80177BB0[D_80177B48] = 1; D_80177BB0[gCurrentPlanet] = 1;
gSaveFile.save.data.planet[SAVE_SLOT_VENOM_2].played = 1; gSaveFile.save.data.planet[SAVE_SLOT_VENOM_2].played = 1;
if (var_v0_2) { if (var_v0_2) {
gSaveFile.save.data.planet[SAVE_SLOT_VENOM_2].expertClear = 1; gSaveFile.save.data.planet[SAVE_SLOT_VENOM_2].expertClear = 1;
@ -577,7 +585,7 @@ void func_EBFBE0_80192190(void) {
case 6: case 6:
// Expert Sound Options // Expert Sound Options
func_EBFBE0_80195944(); Option_ExpertSoundUpdate();
break; break;
case 2000: case 2000:
@ -1627,7 +1635,10 @@ void func_EBFBE0_801958DC(void) {
} }
// Expert Sound Options // Expert Sound Options
void func_EBFBE0_80195944(void) { #if MODS_SFX_JUKEBOX == 1
#include "../../mods/sfxjukebox.c"
#else
void Option_ExpertSoundUpdate(void) {
s32 pad; s32 pad;
f32 sp28 = D_EBFBE0_801B931C; f32 sp28 = D_EBFBE0_801B931C;
@ -1665,6 +1676,7 @@ void func_EBFBE0_80195944(void) {
} }
} }
} }
#endif
void func_EBFBE0_80195B74(void) { void func_EBFBE0_80195B74(void) {
u8* temp_v0_4; u8* temp_v0_4;
@ -3851,7 +3863,7 @@ s32 func_EBFBE0_8019C8C4(void) {
s32 var_a0 = 0; s32 var_a0 = 0;
s32 temp[10]; s32 temp[10];
for (i = 0; i < D_80177B48 + 1; i++) { for (i = 0; i < gCurrentPlanet + 1; i++) {
var_v0 += ((D_80177B50[i] & 0x00FF0000) >> 16) & 1; var_v0 += ((D_80177B50[i] & 0x00FF0000) >> 16) & 1;
var_v0 += ((D_80177B50[i] & 0x0000FF00) >> 8) & 1; var_v0 += ((D_80177B50[i] & 0x0000FF00) >> 8) & 1;
var_v0 += (D_80177B50[i] & 0x000000FF) & 1; var_v0 += (D_80177B50[i] & 0x000000FF) & 1;
@ -4165,7 +4177,7 @@ void func_EBFBE0_8019D624(void) {
sp142[10][1] = D_EBFBE0_801B9150[1][0]; sp142[10][1] = D_EBFBE0_801B9150[1][0];
sp142[10][2] = D_EBFBE0_801B9150[2][0]; sp142[10][2] = D_EBFBE0_801B9150[2][0];
sp122[10] = D_80177B48 + 1; sp122[10] = gCurrentPlanet + 1;
sp116[10] = gLifeCount[0]; sp116[10] = gLifeCount[0];