mirror of https://github.com/sm64pc/sm64pc.git
Merge 4be43a8d8e
into 951389ca84
This commit is contained in:
commit
fba54a59b6
|
@ -154,7 +154,7 @@ struct CreditsEntry sCreditsSequence[] = {
|
||||||
{ LEVEL_CASTLE_GROUNDS, 1, 1, -128, { 0, 906, -1200 }, NULL },
|
{ LEVEL_CASTLE_GROUNDS, 1, 1, -128, { 0, 906, -1200 }, NULL },
|
||||||
{ LEVEL_NONE, 0, 1, 0, { 0, 0, 0 }, NULL },
|
{ LEVEL_NONE, 0, 1, 0, { 0, 0, 0 }, NULL },
|
||||||
};
|
};
|
||||||
|
extern bool focus_Lost;
|
||||||
struct MarioState gMarioStates[1];
|
struct MarioState gMarioStates[1];
|
||||||
struct HudDisplay gHudDisplay;
|
struct HudDisplay gHudDisplay;
|
||||||
s16 sCurrPlayMode;
|
s16 sCurrPlayMode;
|
||||||
|
@ -961,6 +961,7 @@ void basic_update(UNUSED s16 *arg) {
|
||||||
int gPressedStart = 0;
|
int gPressedStart = 0;
|
||||||
|
|
||||||
s32 play_mode_normal(void) {
|
s32 play_mode_normal(void) {
|
||||||
|
|
||||||
if (gCurrDemoInput != NULL) {
|
if (gCurrDemoInput != NULL) {
|
||||||
print_intro_text();
|
print_intro_text();
|
||||||
if (gPlayer1Controller->buttonPressed & END_DEMO) {
|
if (gPlayer1Controller->buttonPressed & END_DEMO) {
|
||||||
|
@ -997,11 +998,12 @@ s32 play_mode_normal(void) {
|
||||||
set_play_mode(PLAY_MODE_CHANGE_LEVEL);
|
set_play_mode(PLAY_MODE_CHANGE_LEVEL);
|
||||||
} else if (sTransitionTimer != 0) {
|
} else if (sTransitionTimer != 0) {
|
||||||
set_play_mode(PLAY_MODE_CHANGE_AREA);
|
set_play_mode(PLAY_MODE_CHANGE_AREA);
|
||||||
} else if (pressed_pause()) {
|
} else if (pressed_pause() || focus_Lost) {
|
||||||
lower_background_noise(1);
|
lower_background_noise(1);
|
||||||
cancel_rumble();
|
cancel_rumble();
|
||||||
gCameraMovementFlags |= CAM_MOVE_PAUSE_SCREEN;
|
gCameraMovementFlags |= CAM_MOVE_PAUSE_SCREEN;
|
||||||
set_play_mode(PLAY_MODE_PAUSED);
|
set_play_mode(PLAY_MODE_PAUSED);
|
||||||
|
focus_Lost = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#else
|
#else
|
||||||
# define FRAMERATE 30
|
# define FRAMERATE 30
|
||||||
#endif
|
#endif
|
||||||
|
bool focus_Lost = FALSE;
|
||||||
static int inverted_scancode_table[512];
|
static int inverted_scancode_table[512];
|
||||||
|
|
||||||
static kb_callback_t kb_key_down = NULL;
|
static kb_callback_t kb_key_down = NULL;
|
||||||
|
@ -202,6 +202,11 @@ static void gfx_sdl_onkeyup(int scancode) {
|
||||||
static void gfx_sdl_handle_events(void) {
|
static void gfx_sdl_handle_events(void) {
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
while (SDL_PollEvent(&event)) {
|
while (SDL_PollEvent(&event)) {
|
||||||
|
if (event.type.event = SDL_WINDOWEVENT_FOCUS_LOST)
|
||||||
|
{
|
||||||
|
focus_Lost = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
#ifndef TARGET_WEB
|
#ifndef TARGET_WEB
|
||||||
// Scancodes are broken in Emscripten SDL2: https://bugzilla.libsdl.org/show_bug.cgi?id=3259
|
// Scancodes are broken in Emscripten SDL2: https://bugzilla.libsdl.org/show_bug.cgi?id=3259
|
||||||
|
@ -222,6 +227,7 @@ static void gfx_sdl_handle_events(void) {
|
||||||
case SDL_QUIT:
|
case SDL_QUIT:
|
||||||
game_exit();
|
game_exit();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
#else
|
#else
|
||||||
# define FRAMERATE 30
|
# define FRAMERATE 30
|
||||||
#endif
|
#endif
|
||||||
|
bool focus_Lost = FALSE;
|
||||||
static SDL_Window *wnd;
|
static SDL_Window *wnd;
|
||||||
static SDL_GLContext ctx = NULL;
|
static SDL_GLContext ctx = NULL;
|
||||||
static int inverted_scancode_table[512];
|
static int inverted_scancode_table[512];
|
||||||
|
@ -242,11 +242,13 @@ static void gfx_sdl_handle_events(void) {
|
||||||
// Scancodes are broken in Emscripten SDL2: https://bugzilla.libsdl.org/show_bug.cgi?id=3259
|
// Scancodes are broken in Emscripten SDL2: https://bugzilla.libsdl.org/show_bug.cgi?id=3259
|
||||||
case SDL_KEYDOWN:
|
case SDL_KEYDOWN:
|
||||||
gfx_sdl_onkeydown(event.key.keysym.scancode);
|
gfx_sdl_onkeydown(event.key.keysym.scancode);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case SDL_KEYUP:
|
case SDL_KEYUP:
|
||||||
gfx_sdl_onkeyup(event.key.keysym.scancode);
|
gfx_sdl_onkeyup(event.key.keysym.scancode);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case SDL_WINDOWEVENT: // TODO: Check if this makes sense to be included in the Web build
|
case SDL_WINDOWEVENT: // TODO: Check if this makes sense to be included in the Web build
|
||||||
if (!IS_FULLSCREEN()) {
|
if (!IS_FULLSCREEN()) {
|
||||||
switch (event.window.event) {
|
switch (event.window.event) {
|
||||||
|
@ -260,12 +262,16 @@ static void gfx_sdl_handle_events(void) {
|
||||||
configWindow.w = event.window.data1;
|
configWindow.w = event.window.data1;
|
||||||
configWindow.h = event.window.data2;
|
configWindow.h = event.window.data2;
|
||||||
break;
|
break;
|
||||||
|
case SDL_WINDOWEVENT_FOCUS_LOST:
|
||||||
|
focus_Lost = TRUE;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SDL_QUIT:
|
case SDL_QUIT:
|
||||||
game_exit();
|
game_exit();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue