mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2026-05-10 19:01:46 +00:00
Prevent HOOK_ON_HUD_RENDER_BEHIND from being halted
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
Some checks are pending
Build coop / build-linux (push) Waiting to run
Build coop / build-steamos (push) Waiting to run
Build coop / build-windows-opengl (push) Waiting to run
Build coop / build-windows-directx (push) Waiting to run
Build coop / build-macos-arm (push) Waiting to run
Build coop / build-macos-intel (push) Waiting to run
This commit is contained in:
parent
82a3afcc0f
commit
b37b2bf29f
1 changed files with 40 additions and 34 deletions
|
|
@ -448,13 +448,15 @@ void play_transition_after_delay(s16 transType, s16 time, u8 red, u8 green, u8 b
|
||||||
|
|
||||||
void render_game(void) {
|
void render_game(void) {
|
||||||
dynos_update_gfx();
|
dynos_update_gfx();
|
||||||
if (gCurrentArea != NULL && !gWarpTransition.pauseRendering) {
|
if (gCurrentArea != NULL) {
|
||||||
geo_process_root(gCurrentArea->root, gViewportOverride, gViewportClip, gFBSetColor);
|
if (!gWarpTransition.pauseRendering) {
|
||||||
|
geo_process_root(gCurrentArea->root, gViewportOverride, gViewportClip, gFBSetColor);
|
||||||
|
|
||||||
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gViewportFullscreen));
|
gSPViewport(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gViewportFullscreen));
|
||||||
|
|
||||||
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
|
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
|
||||||
SCREEN_HEIGHT - BORDER_HEIGHT);
|
SCREEN_HEIGHT - BORDER_HEIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
if (!gDjuiDisabled) {
|
if (!gDjuiDisabled) {
|
||||||
djui_reset_hud_params();
|
djui_reset_hud_params();
|
||||||
|
|
@ -466,41 +468,45 @@ void render_game(void) {
|
||||||
smlua_call_event_hooks(HOOK_ON_HUD_RENDER_BEHIND, djui_reset_hud_params);
|
smlua_call_event_hooks(HOOK_ON_HUD_RENDER_BEHIND, djui_reset_hud_params);
|
||||||
djui_gfx_displaylist_end();
|
djui_gfx_displaylist_end();
|
||||||
}
|
}
|
||||||
render_hud();
|
|
||||||
|
|
||||||
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
|
if (!gWarpTransition.pauseRendering) {
|
||||||
render_text_labels();
|
render_hud();
|
||||||
do_cutscene_handler();
|
|
||||||
if (!gDjuiInMainMenu) {
|
|
||||||
print_displaying_credits_entry();
|
|
||||||
}
|
|
||||||
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
|
|
||||||
SCREEN_HEIGHT - BORDER_HEIGHT);
|
|
||||||
gPauseScreenMode = render_menus_and_dialogs();
|
|
||||||
|
|
||||||
if (gPauseScreenMode != 0) {
|
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
|
||||||
gSaveOptSelectIndex = gPauseScreenMode;
|
render_text_labels();
|
||||||
}
|
do_cutscene_handler();
|
||||||
|
if (!gDjuiInMainMenu) {
|
||||||
if (gViewportClip != NULL) {
|
print_displaying_credits_entry();
|
||||||
make_viewport_clip_rect(gViewportClip);
|
}
|
||||||
} else
|
|
||||||
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
|
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
|
||||||
SCREEN_HEIGHT - BORDER_HEIGHT);
|
SCREEN_HEIGHT - BORDER_HEIGHT);
|
||||||
|
gPauseScreenMode = render_menus_and_dialogs();
|
||||||
|
|
||||||
if (gWarpTransition.isActive) {
|
if (gPauseScreenMode != 0) {
|
||||||
if (gWarpTransDelay == 0) {
|
gSaveOptSelectIndex = gPauseScreenMode;
|
||||||
gWarpTransition.isActive = !render_screen_transition(0, gWarpTransition.type, gWarpTransition.time,
|
}
|
||||||
&gWarpTransition.data);
|
|
||||||
if (!gWarpTransition.isActive) {
|
if (gViewportClip != NULL) {
|
||||||
if (gWarpTransition.type & 1) {
|
make_viewport_clip_rect(gViewportClip);
|
||||||
gWarpTransition.pauseRendering = TRUE;
|
|
||||||
} else {
|
|
||||||
set_warp_transition_rgb(0, 0, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
gWarpTransDelay--;
|
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
|
||||||
|
SCREEN_HEIGHT - BORDER_HEIGHT);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gWarpTransition.isActive) {
|
||||||
|
if (gWarpTransDelay == 0) {
|
||||||
|
gWarpTransition.isActive = !render_screen_transition(0, gWarpTransition.type, gWarpTransition.time,
|
||||||
|
&gWarpTransition.data);
|
||||||
|
if (!gWarpTransition.isActive) {
|
||||||
|
if (gWarpTransition.type & 1) {
|
||||||
|
gWarpTransition.pauseRendering = TRUE;
|
||||||
|
} else {
|
||||||
|
set_warp_transition_rgb(0, 0, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
gWarpTransDelay--;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue