Restore separated staff roll option
This commit is contained in:
parent
82cd4176a3
commit
76df190de1
|
@ -48,8 +48,8 @@
|
||||||
|
|
||||||
#include "engine/level_script.h"
|
#include "engine/level_script.h"
|
||||||
|
|
||||||
#define MENU_LEVEL_MIN 1
|
#define MENU_LEVEL_MIN 0
|
||||||
#define MENU_LEVEL_MAX 18
|
#define MENU_LEVEL_MAX 17
|
||||||
|
|
||||||
struct SavedWarpValues gReceiveWarp = { 0 };
|
struct SavedWarpValues gReceiveWarp = { 0 };
|
||||||
extern s8 sReceivedLoadedActNum;
|
extern s8 sReceivedLoadedActNum;
|
||||||
|
@ -1258,7 +1258,7 @@ s32 play_mode_normal(void) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (gDjuiInMainMenu &&
|
if (gDjuiInMainMenu &&
|
||||||
!gMenuStaffRoll &&
|
!configMenuStaffRoll &&
|
||||||
gCurrDemoInput == NULL &&
|
gCurrDemoInput == NULL &&
|
||||||
configMenuDemos &&
|
configMenuDemos &&
|
||||||
!gInPlayerMenu &&
|
!gInPlayerMenu &&
|
||||||
|
@ -1479,30 +1479,30 @@ void update_menu_level(void) {
|
||||||
// figure out level
|
// figure out level
|
||||||
s32 curLevel = 0;
|
s32 curLevel = 0;
|
||||||
switch (configMenuLevel) {
|
switch (configMenuLevel) {
|
||||||
case 1: curLevel = LEVEL_CASTLE_GROUNDS; break;
|
case 0: curLevel = LEVEL_CASTLE_GROUNDS; break;
|
||||||
case 2: curLevel = LEVEL_BOB; break;
|
case 1: curLevel = LEVEL_BOB; break;
|
||||||
case 3: curLevel = LEVEL_WF; break;
|
case 2: curLevel = LEVEL_WF; break;
|
||||||
case 4: curLevel = LEVEL_WMOTR; break;
|
case 3: curLevel = LEVEL_WMOTR; break;
|
||||||
case 5: curLevel = LEVEL_JRB; break;
|
case 4: curLevel = LEVEL_JRB; break;
|
||||||
case 6: curLevel = LEVEL_SSL; break;
|
case 5: curLevel = LEVEL_SSL; break;
|
||||||
case 7: curLevel = LEVEL_TTM; break;
|
case 6: curLevel = LEVEL_TTM; break;
|
||||||
case 8: curLevel = LEVEL_SL; break;
|
case 7: curLevel = LEVEL_SL; break;
|
||||||
case 9: curLevel = LEVEL_BBH; break;
|
case 8: curLevel = LEVEL_BBH; break;
|
||||||
case 10: curLevel = LEVEL_LLL; break;
|
case 9: curLevel = LEVEL_LLL; break;
|
||||||
case 11: curLevel = LEVEL_THI; break;
|
case 10: curLevel = LEVEL_THI; break;
|
||||||
case 12: curLevel = LEVEL_HMC; break;
|
case 11: curLevel = LEVEL_HMC; break;
|
||||||
case 13: curLevel = LEVEL_CCM; break;
|
case 12: curLevel = LEVEL_CCM; break;
|
||||||
case 14: curLevel = LEVEL_RR; break;
|
case 13: curLevel = LEVEL_RR; break;
|
||||||
case 15: curLevel = LEVEL_BITDW; break;
|
case 14: curLevel = LEVEL_BITDW; break;
|
||||||
case 16: curLevel = LEVEL_PSS; break;
|
case 15: curLevel = LEVEL_PSS; break;
|
||||||
case 17: curLevel = LEVEL_TTC; break;
|
case 16: curLevel = LEVEL_TTC; break;
|
||||||
case 18: curLevel = LEVEL_WDW; break;
|
case 17: curLevel = LEVEL_WDW; break;
|
||||||
default: curLevel = LEVEL_CASTLE_GROUNDS; break;
|
default: curLevel = LEVEL_CASTLE_GROUNDS; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// figure out music
|
// figure out music
|
||||||
stop_cap_music();
|
stop_cap_music();
|
||||||
if (!configMenuSound || gMenuStaffRoll || curLevel == LEVEL_CASTLE_GROUNDS) {
|
if (!configMenuSound || configMenuStaffRoll || curLevel == LEVEL_CASTLE_GROUNDS) {
|
||||||
reset_volume();
|
reset_volume();
|
||||||
disable_background_sound();
|
disable_background_sound();
|
||||||
set_background_music(0, SEQ_MENU_FILE_SELECT, 0);
|
set_background_music(0, SEQ_MENU_FILE_SELECT, 0);
|
||||||
|
@ -1512,7 +1512,7 @@ void update_menu_level(void) {
|
||||||
set_background_music(gCurrentArea->musicParam, gCurrentArea->musicParam2, 0);
|
set_background_music(gCurrentArea->musicParam, gCurrentArea->musicParam2, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gMenuStaffRoll) {
|
if (configMenuStaffRoll) {
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
gCurrCreditsEntry = NULL;
|
gCurrCreditsEntry = NULL;
|
||||||
|
@ -1652,9 +1652,7 @@ void update_menu_level(void) {
|
||||||
gLakituState.skipCameraInterpolationTimestamp = gGlobalTimer;
|
gLakituState.skipCameraInterpolationTimestamp = gGlobalTimer;
|
||||||
extern s32 gCamSkipInterp;
|
extern s32 gCamSkipInterp;
|
||||||
gCamSkipInterp = 1;
|
gCamSkipInterp = 1;
|
||||||
if (gCurrentArea != NULL) {
|
vec3f_copy(gCurrentArea->camera->pos, gLakituState.curPos);
|
||||||
vec3f_copy(gCurrentArea->camera->pos, gLakituState.curPos);
|
|
||||||
}
|
|
||||||
vec3f_copy(gLakituState.pos, gLakituState.curPos);
|
vec3f_copy(gLakituState.pos, gLakituState.curPos);
|
||||||
vec3f_copy(gLakituState.goalPos, gLakituState.curPos);
|
vec3f_copy(gLakituState.goalPos, gLakituState.curPos);
|
||||||
|
|
||||||
|
@ -1796,13 +1794,13 @@ s32 init_level(void) {
|
||||||
configMenuLevel = randLevel;
|
configMenuLevel = randLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gMenuStaffRoll) {
|
if (configMenuStaffRoll) {
|
||||||
gMarioState->marioObj->header.gfx.node.flags &= ~GRAPH_RENDER_ACTIVE;
|
gMarioState->marioObj->header.gfx.node.flags &= ~GRAPH_RENDER_ACTIVE;
|
||||||
warp_credits();
|
warp_credits();
|
||||||
level_trigger_warp(gMarioState, WARP_OP_CREDITS_NEXT);
|
level_trigger_warp(gMarioState, WARP_OP_CREDITS_NEXT);
|
||||||
sFirstCastleGroundsMenu = false;
|
sFirstCastleGroundsMenu = false;
|
||||||
} else {
|
} else {
|
||||||
if (configMenuLevel == 1 && sFirstCastleGroundsMenu) {
|
if (configMenuLevel == 0 && sFirstCastleGroundsMenu) {
|
||||||
set_mario_action(gMarioState, ACT_INTRO_CUTSCENE, 7);
|
set_mario_action(gMarioState, ACT_INTRO_CUTSCENE, 7);
|
||||||
sFirstCastleGroundsMenu = false;
|
sFirstCastleGroundsMenu = false;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -99,9 +99,6 @@ extern s16 gChangeLevel;
|
||||||
extern s16 gChangeActNum;
|
extern s16 gChangeActNum;
|
||||||
extern s16 gDelayedInitSound;
|
extern s16 gDelayedInitSound;
|
||||||
|
|
||||||
extern bool gInPlayerMenu;
|
|
||||||
#define gMenuStaffRoll configMenuLevel == 0
|
|
||||||
|
|
||||||
struct WarpDest {
|
struct WarpDest {
|
||||||
u8 type;
|
u8 type;
|
||||||
s16 levelNum;
|
s16 levelNum;
|
||||||
|
@ -148,6 +145,8 @@ extern bool gNeverEnteredCastle;
|
||||||
extern u32 gControlTimerStartNat;
|
extern u32 gControlTimerStartNat;
|
||||||
extern u32 gControlTimerStopNat;
|
extern u32 gControlTimerStopNat;
|
||||||
|
|
||||||
|
extern bool gInPlayerMenu;
|
||||||
|
|
||||||
enum HUDDisplayFlag {
|
enum HUDDisplayFlag {
|
||||||
HUD_DISPLAY_FLAG_LIVES = 0x0001,
|
HUD_DISPLAY_FLAG_LIVES = 0x0001,
|
||||||
HUD_DISPLAY_FLAG_COIN_COUNT = 0x0002,
|
HUD_DISPLAY_FLAG_COIN_COUNT = 0x0002,
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
#include "debuglog.h"
|
#include "debuglog.h"
|
||||||
#include "djui/djui_hud_utils.h"
|
#include "djui/djui_hud_utils.h"
|
||||||
#include "game/save_file.h"
|
#include "game/save_file.h"
|
||||||
#include "game/level_update.h"
|
|
||||||
|
|
||||||
#define ARRAY_LEN(arr) (sizeof(arr) / sizeof(arr[0]))
|
#define ARRAY_LEN(arr) (sizeof(arr) / sizeof(arr[0]))
|
||||||
|
|
||||||
|
@ -163,6 +162,7 @@ bool configNametags = true;
|
||||||
unsigned int configBouncyLevelBounds = 0;
|
unsigned int configBouncyLevelBounds = 0;
|
||||||
bool configSkipIntro = 0;
|
bool configSkipIntro = 0;
|
||||||
bool configPauseAnywhere = false;
|
bool configPauseAnywhere = false;
|
||||||
|
bool configMenuStaffRoll = true;
|
||||||
unsigned int configMenuLevel = 0;
|
unsigned int configMenuLevel = 0;
|
||||||
bool configMenuSound = false;
|
bool configMenuSound = false;
|
||||||
bool configMenuRandom = false;
|
bool configMenuRandom = false;
|
||||||
|
@ -282,6 +282,7 @@ static const struct ConfigOption options[] = {
|
||||||
{.name = "coop_bouncy_bounds", .type = CONFIG_TYPE_UINT, .uintValue = &configBouncyLevelBounds},
|
{.name = "coop_bouncy_bounds", .type = CONFIG_TYPE_UINT, .uintValue = &configBouncyLevelBounds},
|
||||||
{.name = "skip_intro", .type = CONFIG_TYPE_BOOL, .boolValue = &configSkipIntro},
|
{.name = "skip_intro", .type = CONFIG_TYPE_BOOL, .boolValue = &configSkipIntro},
|
||||||
{.name = "pause_anywhere", .type = CONFIG_TYPE_BOOL, .boolValue = &configPauseAnywhere},
|
{.name = "pause_anywhere", .type = CONFIG_TYPE_BOOL, .boolValue = &configPauseAnywhere},
|
||||||
|
{.name = "coop_menu_staff_roll", .type = CONFIG_TYPE_BOOL, .boolValue = &configMenuStaffRoll},
|
||||||
{.name = "coop_menu_level", .type = CONFIG_TYPE_UINT, .uintValue = &configMenuLevel},
|
{.name = "coop_menu_level", .type = CONFIG_TYPE_UINT, .uintValue = &configMenuLevel},
|
||||||
{.name = "coop_menu_sound", .type = CONFIG_TYPE_BOOL, .boolValue = &configMenuSound},
|
{.name = "coop_menu_sound", .type = CONFIG_TYPE_BOOL, .boolValue = &configMenuSound},
|
||||||
{.name = "coop_menu_random", .type = CONFIG_TYPE_BOOL, .boolValue = &configMenuRandom},
|
{.name = "coop_menu_random", .type = CONFIG_TYPE_BOOL, .boolValue = &configMenuRandom},
|
||||||
|
|
|
@ -113,6 +113,7 @@ extern bool configNametags;
|
||||||
extern unsigned int configBouncyLevelBounds;
|
extern unsigned int configBouncyLevelBounds;
|
||||||
extern bool configSkipIntro;
|
extern bool configSkipIntro;
|
||||||
extern bool configPauseAnywhere;
|
extern bool configPauseAnywhere;
|
||||||
|
extern bool configMenuStaffRoll;
|
||||||
extern unsigned int configMenuLevel;
|
extern unsigned int configMenuLevel;
|
||||||
extern bool configMenuSound;
|
extern bool configMenuSound;
|
||||||
extern bool configMenuRandom;
|
extern bool configMenuRandom;
|
||||||
|
|
|
@ -10,17 +10,19 @@
|
||||||
#include "pc/configfile.h"
|
#include "pc/configfile.h"
|
||||||
#include "game/level_update.h"
|
#include "game/level_update.h"
|
||||||
|
|
||||||
|
static struct DjuiSelectionbox* sLevelBox = NULL;
|
||||||
static struct DjuiCheckbox* sUseStageMusicCheckbox = NULL;
|
static struct DjuiCheckbox* sUseStageMusicCheckbox = NULL;
|
||||||
static struct DjuiCheckbox* sRandomStageCheckbox = NULL;
|
static struct DjuiCheckbox* sRandomStageCheckbox = NULL;
|
||||||
static struct DjuiCheckbox* sVanillaDemosCheckbox = NULL;
|
static struct DjuiCheckbox* sVanillaDemosCheckbox = NULL;
|
||||||
|
|
||||||
void djui_panel_main_menu_create(struct DjuiBase* caller);
|
void djui_panel_main_menu_create(struct DjuiBase* caller);
|
||||||
|
|
||||||
static void djui_panel_menu_options_level_menu(UNUSED struct DjuiBase* caller) {
|
static void djui_panel_level_menu(UNUSED struct DjuiBase* caller) {
|
||||||
djui_base_set_enabled(&sUseStageMusicCheckbox->base, !gMenuStaffRoll);
|
djui_base_set_enabled(&sLevelBox->base, !(configMenuRandom || configMenuStaffRoll));
|
||||||
djui_base_set_enabled(&sRandomStageCheckbox->base, !gMenuStaffRoll);
|
djui_base_set_enabled(&sUseStageMusicCheckbox->base, !configMenuStaffRoll);
|
||||||
djui_base_set_enabled(&sVanillaDemosCheckbox->base, !gMenuStaffRoll);
|
djui_base_set_enabled(&sRandomStageCheckbox->base, !configMenuStaffRoll);
|
||||||
if (gMenuStaffRoll) {
|
djui_base_set_enabled(&sVanillaDemosCheckbox->base, !configMenuStaffRoll);
|
||||||
|
if (configMenuStaffRoll) {
|
||||||
warp_credits();
|
warp_credits();
|
||||||
level_trigger_warp(gMarioState, WARP_OP_CREDITS_NEXT);
|
level_trigger_warp(gMarioState, WARP_OP_CREDITS_NEXT);
|
||||||
}
|
}
|
||||||
|
@ -60,8 +62,7 @@ void djui_panel_main_menu_create(struct DjuiBase* caller) {
|
||||||
djui_selectionbox_create(body, DLANG(DJUI_THEMES, DJUI_FONT), djuiFontChoices, 2, &configDjuiThemeFont, djui_panel_menu_options_djui_setting_change);
|
djui_selectionbox_create(body, DLANG(DJUI_THEMES, DJUI_FONT), djuiFontChoices, 2, &configDjuiThemeFont, djui_panel_menu_options_djui_setting_change);
|
||||||
|
|
||||||
if (gDjuiInMainMenu) {
|
if (gDjuiInMainMenu) {
|
||||||
char* levelChoices[] = {
|
char* levelChoices[18] = {
|
||||||
DLANG(MENU_OPTIONS, STAFF_ROLL),
|
|
||||||
"CG",
|
"CG",
|
||||||
"BOB",
|
"BOB",
|
||||||
"WF",
|
"WF",
|
||||||
|
@ -82,16 +83,19 @@ void djui_panel_main_menu_create(struct DjuiBase* caller) {
|
||||||
"WDW"
|
"WDW"
|
||||||
};
|
};
|
||||||
|
|
||||||
djui_selectionbox_create(body, DLANG(MENU_OPTIONS, LEVEL), levelChoices, 19, &configMenuLevel, djui_panel_menu_options_level_menu);
|
struct DjuiSelectionbox* selectionbox1 = djui_selectionbox_create(body, DLANG(MENU_OPTIONS, LEVEL), levelChoices, 18, &configMenuLevel, NULL);
|
||||||
|
djui_base_set_enabled(&selectionbox1->base, !(configMenuRandom || configMenuStaffRoll));
|
||||||
|
sLevelBox = selectionbox1;
|
||||||
|
|
||||||
|
djui_checkbox_create(body, DLANG(MENU_OPTIONS, STAFF_ROLL), &configMenuStaffRoll, djui_panel_level_menu);
|
||||||
struct DjuiCheckbox* checkbox1 = djui_checkbox_create(body, DLANG(MENU_OPTIONS, USE_STAGE_MUSIC), &configMenuSound, NULL);
|
struct DjuiCheckbox* checkbox1 = djui_checkbox_create(body, DLANG(MENU_OPTIONS, USE_STAGE_MUSIC), &configMenuSound, NULL);
|
||||||
djui_base_set_enabled(&checkbox1->base, !gMenuStaffRoll);
|
djui_base_set_enabled(&checkbox1->base, !configMenuStaffRoll);
|
||||||
sUseStageMusicCheckbox = checkbox1;
|
sUseStageMusicCheckbox = checkbox1;
|
||||||
struct DjuiCheckbox* checkbox2 = djui_checkbox_create(body, DLANG(MENU_OPTIONS, RANDOM_STAGE), &configMenuRandom, djui_panel_menu_options_level_menu);
|
struct DjuiCheckbox* checkbox2 = djui_checkbox_create(body, DLANG(MENU_OPTIONS, RANDOM_STAGE), &configMenuRandom, djui_panel_level_menu);
|
||||||
djui_base_set_enabled(&checkbox2->base, !gMenuStaffRoll);
|
djui_base_set_enabled(&checkbox2->base, !configMenuStaffRoll);
|
||||||
sRandomStageCheckbox = checkbox2;
|
sRandomStageCheckbox = checkbox2;
|
||||||
struct DjuiCheckbox* checkbox3 = djui_checkbox_create(body, DLANG(MENU_OPTIONS, PLAY_VANILLA_DEMOS), &configMenuDemos, stop_demo);
|
struct DjuiCheckbox* checkbox3 = djui_checkbox_create(body, DLANG(MENU_OPTIONS, PLAY_VANILLA_DEMOS), &configMenuDemos, stop_demo);
|
||||||
djui_base_set_enabled(&checkbox3->base, !gMenuStaffRoll);
|
djui_base_set_enabled(&checkbox3->base, !configMenuStaffRoll);
|
||||||
sVanillaDemosCheckbox = checkbox3;
|
sVanillaDemosCheckbox = checkbox3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue