mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-25 13:35:12 +00:00
Wake up player if sleeping on the player menu
This commit is contained in:
parent
8831360153
commit
26683b9b4f
10 changed files with 22 additions and 15 deletions
|
@ -3648,7 +3648,7 @@ void zoom_out_if_paused_and_outside(struct GraphNodeCamera *camera) {
|
||||||
areaMaskIndex = 0;
|
areaMaskIndex = 0;
|
||||||
areaBit = 0;
|
areaBit = 0;
|
||||||
}
|
}
|
||||||
if (gCameraMovementFlags & CAM_MOVE_PAUSE_SCREEN && !gInPlayerMenu) {
|
if (gCameraMovementFlags & CAM_MOVE_PAUSE_SCREEN && !gDjuiInPlayerMenu) {
|
||||||
if (sFramesPaused >= 2) {
|
if (sFramesPaused >= 2) {
|
||||||
if (sZoomOutAreaMasks[areaMaskIndex] & areaBit) {
|
if (sZoomOutAreaMasks[areaMaskIndex] & areaBit) {
|
||||||
|
|
||||||
|
@ -10858,7 +10858,7 @@ void cutscene_palette_editor(struct Camera *c) {
|
||||||
if (!c) { return; }
|
if (!c) { return; }
|
||||||
struct MarioState* m = gMarioState;
|
struct MarioState* m = gMarioState;
|
||||||
|
|
||||||
if (!gInPlayerMenu) {
|
if (!gDjuiInPlayerMenu) {
|
||||||
if (c->paletteEditorCap) {
|
if (c->paletteEditorCap) {
|
||||||
if (m->action == ACT_IDLE && !(m->flags & MARIO_CAP_ON_HEAD)) {
|
if (m->action == ACT_IDLE && !(m->flags & MARIO_CAP_ON_HEAD)) {
|
||||||
set_mario_action(m, ACT_PUTTING_ON_CAP, 0);
|
set_mario_action(m, ACT_PUTTING_ON_CAP, 0);
|
||||||
|
|
|
@ -3168,7 +3168,7 @@ s16 render_pause_courses_and_castle(void) {
|
||||||
gDialogTextAlpha += 25;
|
gDialogTextAlpha += 25;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gDjuiPanelPauseCreated && !gInPlayerMenu) { shade_screen(); }
|
if (gDjuiPanelPauseCreated && !gDjuiInPlayerMenu) { shade_screen(); }
|
||||||
if (gPlayer1Controller->buttonPressed & R_TRIG) {
|
if (gPlayer1Controller->buttonPressed & R_TRIG) {
|
||||||
djui_panel_pause_create(NULL);
|
djui_panel_pause_create(NULL);
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,6 @@ s16 gDelayedInitSound = -1;
|
||||||
|
|
||||||
static bool sFirstCastleGroundsMenu = true;
|
static bool sFirstCastleGroundsMenu = true;
|
||||||
bool gIsDemoActive = false;
|
bool gIsDemoActive = false;
|
||||||
bool gInPlayerMenu = false;
|
|
||||||
static u16 gDemoCountdown = 0;
|
static u16 gDemoCountdown = 0;
|
||||||
static int sDemoNumber = -1;
|
static int sDemoNumber = -1;
|
||||||
static bool sCancelNextActSelector = false;
|
static bool sCancelNextActSelector = false;
|
||||||
|
@ -1256,7 +1255,7 @@ s32 play_mode_normal(void) {
|
||||||
!configMenuStaffRoll &&
|
!configMenuStaffRoll &&
|
||||||
gCurrDemoInput == NULL &&
|
gCurrDemoInput == NULL &&
|
||||||
configMenuDemos &&
|
configMenuDemos &&
|
||||||
!gInPlayerMenu &&
|
!gDjuiInPlayerMenu &&
|
||||||
(++gDemoCountdown) == PRESS_START_DEMO_TIMER &&
|
(++gDemoCountdown) == PRESS_START_DEMO_TIMER &&
|
||||||
(find_demo_number() && (sDemoNumber <= 6 && sDemoNumber > -1)) &&
|
(find_demo_number() && (sDemoNumber <= 6 && sDemoNumber > -1)) &&
|
||||||
gNetworkType == NT_NONE) {
|
gNetworkType == NT_NONE) {
|
||||||
|
@ -1264,7 +1263,7 @@ s32 play_mode_normal(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((gCurrDemoInput != NULL) &&
|
if (((gCurrDemoInput != NULL) &&
|
||||||
(gPlayer1Controller->buttonPressed & END_DEMO || !gIsDemoActive || !gDjuiInMainMenu || gNetworkType != NT_NONE || gInPlayerMenu)) ||
|
(gPlayer1Controller->buttonPressed & END_DEMO || !gIsDemoActive || !gDjuiInMainMenu || gNetworkType != NT_NONE || gDjuiInPlayerMenu)) ||
|
||||||
(gCurrDemoInput == NULL && gIsDemoActive)) {
|
(gCurrDemoInput == NULL && gIsDemoActive)) {
|
||||||
gPlayer1Controller->buttonPressed &= ~END_DEMO;
|
gPlayer1Controller->buttonPressed &= ~END_DEMO;
|
||||||
stop_demo(NULL);
|
stop_demo(NULL);
|
||||||
|
|
|
@ -150,8 +150,6 @@ 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,
|
||||||
|
|
|
@ -132,7 +132,7 @@ s32 act_idle(struct MarioState *m) {
|
||||||
if (m->area && ((m->area->terrainType & TERRAIN_MASK) == TERRAIN_SNOW)) {
|
if (m->area && ((m->area->terrainType & TERRAIN_MASK) == TERRAIN_SNOW)) {
|
||||||
return set_mario_action(m, ACT_SHIVERING, 0);
|
return set_mario_action(m, ACT_SHIVERING, 0);
|
||||||
} else {
|
} else {
|
||||||
if (gDjuiInMainMenu || gInPlayerMenu) {
|
if (gDjuiInMainMenu || gDjuiInPlayerMenu) {
|
||||||
m->actionState = 0;
|
m->actionState = 0;
|
||||||
m->actionTimer = 0;
|
m->actionTimer = 0;
|
||||||
} else {
|
} else {
|
||||||
|
@ -208,6 +208,10 @@ s32 act_start_sleeping(struct MarioState *m) {
|
||||||
return set_mario_action(m, ACT_IN_QUICKSAND, 0);
|
return set_mario_action(m, ACT_IN_QUICKSAND, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m->playerIndex == 0 && gDjuiInPlayerMenu) {
|
||||||
|
return set_mario_action(m, ACT_IDLE, 0);
|
||||||
|
}
|
||||||
|
|
||||||
if (m->actionState == 4) {
|
if (m->actionState == 4) {
|
||||||
return set_mario_action(m, ACT_SLEEPING, 0);
|
return set_mario_action(m, ACT_SLEEPING, 0);
|
||||||
}
|
}
|
||||||
|
@ -287,6 +291,10 @@ s32 act_sleeping(struct MarioState *m) {
|
||||||
if (m->pos[1] - find_floor_height_relative_polar(m, -0x8000, 60.0f) > 24.0f) {
|
if (m->pos[1] - find_floor_height_relative_polar(m, -0x8000, 60.0f) > 24.0f) {
|
||||||
return set_mario_action(m, ACT_WAKING_UP, m->actionState);
|
return set_mario_action(m, ACT_WAKING_UP, m->actionState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (gDjuiInPlayerMenu) {
|
||||||
|
return set_mario_action(m, ACT_WAKING_UP, m->actionState);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m->marioBodyState->eyeState = MARIO_EYES_CLOSED;
|
m->marioBodyState->eyeState = MARIO_EYES_CLOSED;
|
||||||
|
|
|
@ -23,6 +23,7 @@ static struct DjuiText* sDjuiPauseOptions = NULL;
|
||||||
static struct DjuiText* sDjuiLuaError = NULL;
|
static struct DjuiText* sDjuiLuaError = NULL;
|
||||||
static u32 sDjuiLuaErrorTimeout = 0;
|
static u32 sDjuiLuaErrorTimeout = 0;
|
||||||
bool gDjuiInMainMenu = true;
|
bool gDjuiInMainMenu = true;
|
||||||
|
bool gDjuiInPlayerMenu = false;
|
||||||
bool gDjuiDisabled = false;
|
bool gDjuiDisabled = false;
|
||||||
bool gDjuiShuttingDown = false;
|
bool gDjuiShuttingDown = false;
|
||||||
static bool sDjuiInited = false;
|
static bool sDjuiInited = false;
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
|
|
||||||
extern struct DjuiRoot* gDjuiRoot;
|
extern struct DjuiRoot* gDjuiRoot;
|
||||||
extern bool gDjuiInMainMenu;
|
extern bool gDjuiInMainMenu;
|
||||||
|
extern bool gDjuiInPlayerMenu;
|
||||||
extern bool gDjuiDisabled;
|
extern bool gDjuiDisabled;
|
||||||
|
|
||||||
void djui_init(void);
|
void djui_init(void);
|
||||||
|
|
|
@ -32,11 +32,11 @@ static void djui_panel_dynos_refresh(UNUSED struct DjuiBase* base) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void djui_panel_dynos_destroy(UNUSED struct DjuiBase* caller) {
|
static void djui_panel_dynos_destroy(UNUSED struct DjuiBase* caller) {
|
||||||
gInPlayerMenu = false;
|
gDjuiInPlayerMenu = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void djui_panel_dynos_create(struct DjuiBase* caller) {
|
void djui_panel_dynos_create(struct DjuiBase* caller) {
|
||||||
gInPlayerMenu = true;
|
gDjuiInPlayerMenu = true;
|
||||||
int packCount = dynos_pack_get_count();
|
int packCount = dynos_pack_get_count();
|
||||||
struct DjuiThreePanel* panel = djui_panel_menu_create(DLANG(DYNOS, DYNOS));
|
struct DjuiThreePanel* panel = djui_panel_menu_create(DLANG(DYNOS, DYNOS));
|
||||||
struct DjuiBase* body = djui_three_panel_get_body(panel);
|
struct DjuiBase* body = djui_three_panel_get_body(panel);
|
||||||
|
|
|
@ -217,7 +217,7 @@ static void djui_panel_player_edit_palette_destroy(struct DjuiBase* caller) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void djui_panel_player_edit_palette_create(struct DjuiBase* caller) {
|
static void djui_panel_player_edit_palette_create(struct DjuiBase* caller) {
|
||||||
gInPlayerMenu = true;
|
gDjuiInPlayerMenu = true;
|
||||||
|
|
||||||
char* sPartStrings[PLAYER_PART_MAX] = { DLANG(PLAYER, OVERALLS), DLANG(PLAYER, SHIRT), DLANG(PLAYER, GLOVES), DLANG(PLAYER, SHOES), DLANG(PLAYER, HAIR), DLANG(PLAYER, SKIN), DLANG(PLAYER, CAP), DLANG(PLAYER, EMBLEM) };
|
char* sPartStrings[PLAYER_PART_MAX] = { DLANG(PLAYER, OVERALLS), DLANG(PLAYER, SHIRT), DLANG(PLAYER, GLOVES), DLANG(PLAYER, SHOES), DLANG(PLAYER, HAIR), DLANG(PLAYER, SKIN), DLANG(PLAYER, CAP), DLANG(PLAYER, EMBLEM) };
|
||||||
|
|
||||||
|
@ -387,13 +387,13 @@ static void djui_panel_player_update_preset_palette(UNUSED struct DjuiBase* call
|
||||||
}
|
}
|
||||||
|
|
||||||
static void djui_panel_player_destroy(UNUSED struct DjuiBase* caller) {
|
static void djui_panel_player_destroy(UNUSED struct DjuiBase* caller) {
|
||||||
gInPlayerMenu = false;
|
gDjuiInPlayerMenu = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void djui_panel_player_create(struct DjuiBase* caller) {
|
void djui_panel_player_create(struct DjuiBase* caller) {
|
||||||
djui_panel_player_prevent_demo(NULL);
|
djui_panel_player_prevent_demo(NULL);
|
||||||
djui_panel_player_update_camera_cutscene();
|
djui_panel_player_update_camera_cutscene();
|
||||||
gInPlayerMenu = true;
|
gDjuiInPlayerMenu = true;
|
||||||
|
|
||||||
struct DjuiThreePanel* panel = djui_panel_menu_create(DLANG(PLAYER, PLAYER_TITLE));
|
struct DjuiThreePanel* panel = djui_panel_menu_create(DLANG(PLAYER, PLAYER_TITLE));
|
||||||
struct DjuiBase* body = djui_three_panel_get_body(panel);
|
struct DjuiBase* body = djui_three_panel_get_body(panel);
|
||||||
|
|
|
@ -54,5 +54,5 @@ const char* network_get_player_text_color_string(u8 localIndex) {
|
||||||
|
|
||||||
extern s16 gMenuMode;
|
extern s16 gMenuMode;
|
||||||
bool network_check_singleplayer_pause(void) {
|
bool network_check_singleplayer_pause(void) {
|
||||||
return gMenuMode != -1 && network_player_connected_count() == 1 && mods_get_all_pausable() && !gInPlayerMenu;
|
return gMenuMode != -1 && network_player_connected_count() == 1 && mods_get_all_pausable() && !gDjuiInPlayerMenu;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue