mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2024-11-25 13:35:12 +00:00
Move everything over (#280)
This commit is contained in:
parent
7f6f7fea47
commit
751dfe61c7
25 changed files with 465 additions and 47 deletions
|
@ -39,6 +39,7 @@ in_files = [
|
|||
"include/surface_terrains.h",
|
||||
"src/game/level_update.h",
|
||||
"src/pc/network/version.h",
|
||||
"include/geo_commands.h",
|
||||
"include/level_commands.h",
|
||||
"src/audio/external.h"
|
||||
]
|
||||
|
@ -49,6 +50,7 @@ exclude_constants = {
|
|||
}
|
||||
|
||||
include_constants = {
|
||||
'include/geo_commands.h': ['BACKGROUND'],
|
||||
'include/level_commands.h': [ "WARP_CHECKPOINT", "WARP_NO_CHECKPOINT" ],
|
||||
'src/audio/external.h': [ "SEQ_PLAYER" ]
|
||||
}
|
||||
|
|
|
@ -3272,6 +3272,39 @@ SEQ_PLAYER_LEVEL = 0
|
|||
--- @type integer
|
||||
SEQ_PLAYER_SFX = 2
|
||||
|
||||
--- @type integer
|
||||
BACKGROUND_ABOVE_CLOUDS = 8
|
||||
|
||||
--- @type integer
|
||||
BACKGROUND_BELOW_CLOUDS = 3
|
||||
|
||||
--- @type integer
|
||||
BACKGROUND_CUSTOM = 10
|
||||
|
||||
--- @type integer
|
||||
BACKGROUND_DESERT = 5
|
||||
|
||||
--- @type integer
|
||||
BACKGROUND_FLAMING_SKY = 1
|
||||
|
||||
--- @type integer
|
||||
BACKGROUND_GREEN_SKY = 7
|
||||
|
||||
--- @type integer
|
||||
BACKGROUND_HAUNTED = 6
|
||||
|
||||
--- @type integer
|
||||
BACKGROUND_OCEAN_SKY = 0
|
||||
|
||||
--- @type integer
|
||||
BACKGROUND_PURPLE_SKY = 9
|
||||
|
||||
--- @type integer
|
||||
BACKGROUND_SNOW_MOUNTAINS = 4
|
||||
|
||||
--- @type integer
|
||||
BACKGROUND_UNDERWATER_CITY = 2
|
||||
|
||||
--- @type integer
|
||||
GEO_CONTEXT_AREA_INIT = 4
|
||||
|
||||
|
|
|
@ -3643,6 +3643,11 @@ function djui_hud_get_screen_width()
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @return boolean
|
||||
function djui_hud_is_pause_menu_created()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param message string
|
||||
--- @return number
|
||||
function djui_hud_measure_text(message)
|
||||
|
@ -3701,6 +3706,12 @@ function djui_hud_set_mouse_locked(locked)
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @param enable boolean
|
||||
--- @return nil
|
||||
function djui_hud_set_render_behind_hud(enable)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param resolutionType HudUtilsResolution
|
||||
--- @return nil
|
||||
function djui_hud_set_resolution(resolutionType)
|
||||
|
@ -8317,11 +8328,22 @@ function get_last_star_or_key()
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @param index integer
|
||||
--- @return number
|
||||
function get_lighting_dir(index)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return integer
|
||||
function get_network_area_timer()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @return integer
|
||||
function get_skybox()
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param initialValue integer
|
||||
--- @return Pointer_integer
|
||||
function get_temp_s32_pointer(initialValue)
|
||||
|
@ -8424,6 +8446,13 @@ function set_last_star_or_key(value)
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @param index integer
|
||||
--- @param value number
|
||||
--- @return nil
|
||||
function set_lighting_dir(index, value)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param far number
|
||||
--- @return nil
|
||||
function set_override_far(far)
|
||||
|
@ -8442,6 +8471,12 @@ function set_override_near(near)
|
|||
-- ...
|
||||
end
|
||||
|
||||
--- @param background integer
|
||||
--- @return nil
|
||||
function set_override_skybox(background)
|
||||
-- ...
|
||||
end
|
||||
|
||||
--- @param speed integer
|
||||
--- @return nil
|
||||
function set_ttc_speed_setting(speed)
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
- [enum DjuiFontType](#enum-DjuiFontType)
|
||||
- [enum HudUtilsResolution](#enum-HudUtilsResolution)
|
||||
- [external.h](#externalh)
|
||||
- [geo_commands.h](#geo_commandsh)
|
||||
- [graph_node.h](#graph_nodeh)
|
||||
- [interaction.c](#interactionc)
|
||||
- [enum InteractionFlag](#enum-InteractionFlag)
|
||||
|
@ -1109,6 +1110,23 @@
|
|||
|
||||
<br />
|
||||
|
||||
## [geo_commands.h](#geo_commands.h)
|
||||
- BACKGROUND_ABOVE_CLOUDS
|
||||
- BACKGROUND_BELOW_CLOUDS
|
||||
- BACKGROUND_CUSTOM
|
||||
- BACKGROUND_DESERT
|
||||
- BACKGROUND_FLAMING_SKY
|
||||
- BACKGROUND_GREEN_SKY
|
||||
- BACKGROUND_HAUNTED
|
||||
- BACKGROUND_OCEAN_SKY
|
||||
- BACKGROUND_PURPLE_SKY
|
||||
- BACKGROUND_SNOW_MOUNTAINS
|
||||
- BACKGROUND_UNDERWATER_CITY
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [graph_node.h](#graph_node.h)
|
||||
- GEO_CONTEXT_AREA_INIT
|
||||
- GEO_CONTEXT_AREA_LOAD
|
||||
|
|
|
@ -2143,6 +2143,24 @@
|
|||
|
||||
<br />
|
||||
|
||||
## [djui_hud_is_pause_menu_created](#djui_hud_is_pause_menu_created)
|
||||
|
||||
### Lua Example
|
||||
`local booleanValue = djui_hud_is_pause_menu_created()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `boolean`
|
||||
|
||||
### C Prototype
|
||||
`bool djui_hud_is_pause_menu_created(void);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [djui_hud_measure_text](#djui_hud_measure_text)
|
||||
|
||||
### Lua Example
|
||||
|
@ -2299,6 +2317,26 @@
|
|||
|
||||
<br />
|
||||
|
||||
## [djui_hud_set_render_behind_hud](#djui_hud_set_render_behind_hud)
|
||||
|
||||
### Lua Example
|
||||
`djui_hud_set_render_behind_hud(enable)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| enable | `boolean` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void djui_hud_set_render_behind_hud(bool enable);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [djui_hud_set_resolution](#djui_hud_set_resolution)
|
||||
|
||||
### Lua Example
|
||||
|
|
|
@ -8297,6 +8297,26 @@
|
|||
|
||||
<br />
|
||||
|
||||
## [get_lighting_dir](#get_lighting_dir)
|
||||
|
||||
### Lua Example
|
||||
`local numberValue = get_lighting_dir(index)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| index | `integer` |
|
||||
|
||||
### Returns
|
||||
- `number`
|
||||
|
||||
### C Prototype
|
||||
`f32 get_lighting_dir(u8 index);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [get_network_area_timer](#get_network_area_timer)
|
||||
|
||||
### Lua Example
|
||||
|
@ -8315,6 +8335,24 @@
|
|||
|
||||
<br />
|
||||
|
||||
## [get_skybox](#get_skybox)
|
||||
|
||||
### Lua Example
|
||||
`local integerValue = get_skybox()`
|
||||
|
||||
### Parameters
|
||||
- None
|
||||
|
||||
### Returns
|
||||
- `integer`
|
||||
|
||||
### C Prototype
|
||||
`s8 get_skybox();`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [get_temp_s32_pointer](#get_temp_s32_pointer)
|
||||
|
||||
### Lua Example
|
||||
|
@ -8634,6 +8672,27 @@
|
|||
|
||||
<br />
|
||||
|
||||
## [set_lighting_dir](#set_lighting_dir)
|
||||
|
||||
### Lua Example
|
||||
`set_lighting_dir(index, value)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| index | `integer` |
|
||||
| value | `number` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void set_lighting_dir(u8 index, f32 value);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [set_override_far](#set_override_far)
|
||||
|
||||
### Lua Example
|
||||
|
@ -8694,6 +8753,26 @@
|
|||
|
||||
<br />
|
||||
|
||||
## [set_override_skybox](#set_override_skybox)
|
||||
|
||||
### Lua Example
|
||||
`set_override_skybox(background)`
|
||||
|
||||
### Parameters
|
||||
| Field | Type |
|
||||
| ----- | ---- |
|
||||
| background | `integer` |
|
||||
|
||||
### Returns
|
||||
- None
|
||||
|
||||
### C Prototype
|
||||
`void set_override_skybox(s8 background);`
|
||||
|
||||
[:arrow_up_small:](#)
|
||||
|
||||
<br />
|
||||
|
||||
## [set_ttc_speed_setting](#set_ttc_speed_setting)
|
||||
|
||||
### Lua Example
|
||||
|
|
|
@ -721,6 +721,7 @@
|
|||
- [djui_hud_get_raw_mouse_y](functions-3.md#djui_hud_get_raw_mouse_y)
|
||||
- [djui_hud_get_screen_height](functions-3.md#djui_hud_get_screen_height)
|
||||
- [djui_hud_get_screen_width](functions-3.md#djui_hud_get_screen_width)
|
||||
- [djui_hud_is_pause_menu_created](functions-3.md#djui_hud_is_pause_menu_created)
|
||||
- [djui_hud_measure_text](functions-3.md#djui_hud_measure_text)
|
||||
- [djui_hud_print_text](functions-3.md#djui_hud_print_text)
|
||||
- [djui_hud_render_rect](functions-3.md#djui_hud_render_rect)
|
||||
|
@ -728,6 +729,7 @@
|
|||
- [djui_hud_set_color](functions-3.md#djui_hud_set_color)
|
||||
- [djui_hud_set_font](functions-3.md#djui_hud_set_font)
|
||||
- [djui_hud_set_mouse_locked](functions-3.md#djui_hud_set_mouse_locked)
|
||||
- [djui_hud_set_render_behind_hud](functions-3.md#djui_hud_set_render_behind_hud)
|
||||
- [djui_hud_set_resolution](functions-3.md#djui_hud_set_resolution)
|
||||
- [djui_hud_world_pos_to_screen_pos](functions-3.md#djui_hud_world_pos_to_screen_pos)
|
||||
|
||||
|
@ -1544,7 +1546,9 @@
|
|||
- [get_hand_foot_pos_y](functions-4.md#get_hand_foot_pos_y)
|
||||
- [get_hand_foot_pos_z](functions-4.md#get_hand_foot_pos_z)
|
||||
- [get_last_star_or_key](functions-4.md#get_last_star_or_key)
|
||||
- [get_lighting_dir](functions-4.md#get_lighting_dir)
|
||||
- [get_network_area_timer](functions-4.md#get_network_area_timer)
|
||||
- [get_skybox](functions-4.md#get_skybox)
|
||||
- [get_temp_s32_pointer](functions-4.md#get_temp_s32_pointer)
|
||||
- [get_time](functions-4.md#get_time)
|
||||
- [get_ttc_speed_setting](functions-4.md#get_ttc_speed_setting)
|
||||
|
@ -1561,9 +1565,11 @@
|
|||
- [save_file_set_using_backup_slot](functions-4.md#save_file_set_using_backup_slot)
|
||||
- [set_environment_region](functions-4.md#set_environment_region)
|
||||
- [set_last_star_or_key](functions-4.md#set_last_star_or_key)
|
||||
- [set_lighting_dir](functions-4.md#set_lighting_dir)
|
||||
- [set_override_far](functions-4.md#set_override_far)
|
||||
- [set_override_fov](functions-4.md#set_override_fov)
|
||||
- [set_override_near](functions-4.md#set_override_near)
|
||||
- [set_override_skybox](functions-4.md#set_override_skybox)
|
||||
- [set_ttc_speed_setting](functions-4.md#set_ttc_speed_setting)
|
||||
|
||||
<br />
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "game/ingame_menu.h"
|
||||
#include "pc/network/network.h"
|
||||
#include "pc/lua/smlua_hooks.h"
|
||||
#include "pc/djui/djui.h"
|
||||
|
||||
struct SpawnInfo gPlayerSpawnInfos[MAX_PLAYERS];
|
||||
struct GraphNode *D_8033A160[MAX_LOADED_GRAPH_NODES];
|
||||
|
@ -419,6 +420,9 @@ void render_game(void) {
|
|||
|
||||
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, BORDER_HEIGHT, SCREEN_WIDTH,
|
||||
SCREEN_HEIGHT - BORDER_HEIGHT);
|
||||
if (gDjuiRenderBehindHud && !gDjuiPanelPauseCreated) {
|
||||
djui_render();
|
||||
}
|
||||
render_hud();
|
||||
|
||||
gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
|
||||
|
|
|
@ -256,8 +256,10 @@ void end_master_display_list(void) {
|
|||
draw_profiler();
|
||||
}
|
||||
|
||||
extern void djui_render(void);
|
||||
djui_render();
|
||||
if (!gDjuiRenderBehindHud || gDjuiPanelPauseCreated) {
|
||||
extern void djui_render(void);
|
||||
djui_render();
|
||||
}
|
||||
|
||||
gDPFullSync(gDisplayListHead++);
|
||||
gSPEndDisplayList(gDisplayListHead++);
|
||||
|
|
|
@ -3063,62 +3063,69 @@ s16 render_pause_courses_and_castle(void) {
|
|||
}
|
||||
break;
|
||||
case DIALOG_STATE_VERTICAL:
|
||||
shade_screen();
|
||||
render_pause_my_score_coins();
|
||||
render_pause_red_coins();
|
||||
if (!gDjuiPanelPauseCreated) {
|
||||
shade_screen();
|
||||
render_pause_my_score_coins();
|
||||
render_pause_red_coins();
|
||||
|
||||
/* Always allow exiting from course */
|
||||
if (gLevelValues.pauseExitAnywhere || (gMarioStates[0].action & ACT_FLAG_PAUSE_EXIT)) {
|
||||
render_pause_course_options(99, 93, &gDialogLineNum, 15);
|
||||
}
|
||||
|
||||
#ifdef VERSION_EU
|
||||
if (gPlayer1Controller->buttonPressed & (A_BUTTON | Z_TRIG | START_BUTTON))
|
||||
#else
|
||||
if (gPlayer1Controller->buttonPressed & A_BUTTON
|
||||
|| gPlayer1Controller->buttonPressed & START_BUTTON)
|
||||
#endif
|
||||
{
|
||||
level_set_transition(0, NULL);
|
||||
play_sound(SOUND_MENU_PAUSE_2, gGlobalSoundSource);
|
||||
gDialogBoxState = DIALOG_STATE_OPENING;
|
||||
gMenuMode = -1;
|
||||
|
||||
if (gDialogLineNum == 2 || gDialogLineNum == 3) {
|
||||
num = gDialogLineNum;
|
||||
} else {
|
||||
num = 1;
|
||||
/* Always allow exiting from course */
|
||||
if (gLevelValues.pauseExitAnywhere || (gMarioStates[0].action & ACT_FLAG_PAUSE_EXIT)) {
|
||||
render_pause_course_options(99, 93, &gDialogLineNum, 15);
|
||||
}
|
||||
|
||||
return num;
|
||||
#ifdef VERSION_EU
|
||||
if (gPlayer1Controller->buttonPressed & (A_BUTTON | Z_TRIG | START_BUTTON))
|
||||
#else
|
||||
if (gPlayer1Controller->buttonPressed & A_BUTTON
|
||||
|| gPlayer1Controller->buttonPressed & START_BUTTON)
|
||||
#endif
|
||||
{
|
||||
level_set_transition(0, NULL);
|
||||
play_sound(SOUND_MENU_PAUSE_2, gGlobalSoundSource);
|
||||
gDialogBoxState = DIALOG_STATE_OPENING;
|
||||
gMenuMode = -1;
|
||||
|
||||
if (gDialogLineNum == 2 || gDialogLineNum == 3) {
|
||||
num = gDialogLineNum;
|
||||
} else {
|
||||
num = 1;
|
||||
}
|
||||
|
||||
return num;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DIALOG_STATE_HORIZONTAL:
|
||||
shade_screen();
|
||||
print_hud_pause_colorful_str();
|
||||
if (gLevelValues.extendedPauseDisplay) {
|
||||
render_pause_castle_menu_box_extended(160, 143);
|
||||
render_pause_castle_main_strings_extended(84, 60);
|
||||
} else {
|
||||
if (!gDjuiPanelPauseCreated) {
|
||||
shade_screen();
|
||||
print_hud_pause_colorful_str();
|
||||
render_pause_castle_menu_box(160, 143);
|
||||
render_pause_castle_main_strings(104, 60);
|
||||
}
|
||||
|
||||
if (gLevelValues.extendedPauseDisplay) {
|
||||
render_pause_castle_menu_box_extended(160, 143);
|
||||
render_pause_castle_main_strings_extended(84, 60);
|
||||
} else {
|
||||
render_pause_castle_menu_box(160, 143);
|
||||
render_pause_castle_main_strings(104, 60);
|
||||
}
|
||||
|
||||
#ifdef VERSION_EU
|
||||
if (gPlayer1Controller->buttonPressed & (A_BUTTON | Z_TRIG | START_BUTTON))
|
||||
if (gPlayer1Controller->buttonPressed & (A_BUTTON | Z_TRIG | START_BUTTON))
|
||||
#else
|
||||
if (gPlayer1Controller->buttonPressed & A_BUTTON
|
||||
|| gPlayer1Controller->buttonPressed & START_BUTTON)
|
||||
if (gPlayer1Controller->buttonPressed & A_BUTTON
|
||||
|| gPlayer1Controller->buttonPressed & START_BUTTON)
|
||||
#endif
|
||||
{
|
||||
level_set_transition(0, NULL);
|
||||
play_sound(SOUND_MENU_PAUSE_2, gGlobalSoundSource);
|
||||
gMenuMode = -1;
|
||||
gDialogBoxState = DIALOG_STATE_OPENING;
|
||||
{
|
||||
level_set_transition(0, NULL);
|
||||
play_sound(SOUND_MENU_PAUSE_2, gGlobalSoundSource);
|
||||
gMenuMode = -1;
|
||||
gDialogBoxState = DIALOG_STATE_OPENING;
|
||||
|
||||
return 1;
|
||||
}
|
||||
break;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (gDialogTextAlpha < 250) {
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include "pc/lua/smlua_hooks.h"
|
||||
#include "pc/utils/misc.h"
|
||||
#include "pc/debuglog.h"
|
||||
#include "game/skybox.h"
|
||||
#include "include/course_table.h"
|
||||
|
||||
/**
|
||||
|
@ -825,6 +826,7 @@ static void geo_process_background(struct GraphNodeBackground *node) {
|
|||
gDPPipeSync(gfx++);
|
||||
gDPSetCycleType(gfx++, G_CYC_1CYCLE);
|
||||
gSPEndDisplayList(gfx++);
|
||||
gReadOnlyBackground = -1;
|
||||
|
||||
geo_append_display_list((void *) VIRTUAL_TO_PHYSICAL(gfxStart), 0);
|
||||
}
|
||||
|
|
|
@ -64,6 +64,9 @@ typedef const Texture *const SkyboxTexture[80];
|
|||
|
||||
extern u8 gRenderingInterpolated;
|
||||
|
||||
s8 gReadOnlyBackground;
|
||||
s8 gOverrideBackground = -1;
|
||||
|
||||
extern SkyboxTexture bbh_skybox_ptrlist;
|
||||
extern SkyboxTexture bidw_skybox_ptrlist;
|
||||
extern SkyboxTexture bitfs_skybox_ptrlist;
|
||||
|
@ -330,6 +333,9 @@ Gfx *init_skybox_display_list(s8 player, s8 background, s8 colorIndex) {
|
|||
Gfx *create_skybox_facing_camera(s8 player, s8 background, f32 fov,
|
||||
f32 posX, f32 posY, f32 posZ,
|
||||
f32 focX, f32 focY, f32 focZ) {
|
||||
gReadOnlyBackground = background;
|
||||
background = gOverrideBackground == -1 ? background : gOverrideBackground;
|
||||
|
||||
f32 cameraFaceX = focX - posX;
|
||||
f32 cameraFaceY = focY - posY;
|
||||
f32 cameraFaceZ = focZ - posZ;
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
#include <PR/ultratypes.h>
|
||||
#include <PR/gbi.h>
|
||||
|
||||
extern s8 gReadOnlyBackground;
|
||||
extern s8 gOverrideBackground;
|
||||
|
||||
extern Texture* gCustomSkyboxPtrList[];
|
||||
|
||||
Gfx *create_skybox_facing_camera(s8 player, s8 background, f32 fov,
|
||||
|
|
|
@ -16,6 +16,7 @@ static struct DjuiText* sDjuiLuaError = NULL;
|
|||
static u32 sDjuiLuaErrorTimeout = 0;
|
||||
bool gDjuiInMainMenu = true;
|
||||
bool gDjuiDisabled = false;
|
||||
bool gDjuiRenderBehindHud = false;
|
||||
|
||||
bool sDjuiRendered60fps = false;
|
||||
|
||||
|
@ -24,6 +25,8 @@ void patch_djui_before(void) {
|
|||
}
|
||||
|
||||
void patch_djui_interpolated(UNUSED f32 delta) {
|
||||
if (gDjuiRenderBehindHud && !gDjuiPanelPauseCreated) { return; }
|
||||
|
||||
// reset the head and re-render DJUI
|
||||
if (delta >= 0.5f && !sDjuiRendered60fps && (gDjuiInMainMenu || gDjuiPanelPauseCreated)) {
|
||||
sDjuiRendered60fps = true;
|
||||
|
@ -92,6 +95,7 @@ void djui_render(void) {
|
|||
djui_popup_update();
|
||||
|
||||
djui_base_set_visible(&sDjuiPauseOptions->base, (sCurrPlayMode == PLAY_MODE_PAUSED));
|
||||
djui_base_set_visible(&sDjuiPauseOptions->base, (sCurrPlayMode == PLAY_MODE_PAUSED) && !gDjuiPanelPauseCreated);
|
||||
if (gDjuiRoot != NULL) {
|
||||
djui_base_render(&gDjuiRoot->base);
|
||||
}
|
||||
|
|
|
@ -64,6 +64,7 @@
|
|||
extern struct DjuiRoot* gDjuiRoot;
|
||||
extern bool gDjuiInMainMenu;
|
||||
extern bool gDjuiDisabled;
|
||||
extern bool gDjuiRenderBehindHud;
|
||||
|
||||
void djui_init(void);
|
||||
void djui_connect_menu_open(void);
|
||||
|
|
|
@ -416,3 +416,11 @@ void djui_hud_world_pos_to_screen_pos(Vec3f pos, Vec3f out) {
|
|||
out[0] += djui_hud_get_screen_width() / 2.0f;
|
||||
out[1] += djui_hud_get_screen_height() / 2.0f;
|
||||
}
|
||||
|
||||
void djui_hud_set_render_behind_hud(bool enable) {
|
||||
gDjuiRenderBehindHud = enable;
|
||||
}
|
||||
|
||||
bool djui_hud_is_pause_menu_created(void) {
|
||||
return gDjuiPanelPauseCreated;
|
||||
}
|
||||
|
|
|
@ -61,4 +61,8 @@ void djui_hud_render_rect_interpolated(f32 prevX, f32 prevY, f32 prevWidth, f32
|
|||
|
||||
void djui_hud_world_pos_to_screen_pos(Vec3f pos, Vec3f out);
|
||||
|
||||
void djui_hud_set_render_behind_hud(bool enable);
|
||||
|
||||
bool djui_hud_is_pause_menu_created(void);
|
||||
|
||||
#endif
|
|
@ -48,7 +48,7 @@ void djui_panel_pause_create(struct DjuiBase* caller) {
|
|||
djui_base_set_size(&rect1->base, 1.0f, 64);
|
||||
djui_base_set_color(&rect1->base, 0, 0, 0, 0);
|
||||
{
|
||||
struct DjuiButton* button4 = djui_button_create(&rect1->base, "Dynos Packs");
|
||||
struct DjuiButton* button4 = djui_button_create(&rect1->base, "DynOS Packs");
|
||||
djui_base_set_size_type(&button4->base, DJUI_SVT_RELATIVE, DJUI_SVT_ABSOLUTE);
|
||||
djui_base_set_size(&button4->base, 0.5f, 64);
|
||||
djui_base_set_alignment(&button4->base, DJUI_HALIGN_RIGHT, DJUI_VALIGN_TOP);
|
||||
|
|
|
@ -177,6 +177,8 @@ static f32 sDepthZAdd = 0;
|
|||
static f32 sDepthZMult = 1;
|
||||
static f32 sDepthZSub = 0;
|
||||
|
||||
Vec3f gLightingDir;
|
||||
|
||||
// 4x4 pink-black checkerboard texture to indicate missing textures
|
||||
#define MISSING_W 4
|
||||
#define MISSING_H 4
|
||||
|
@ -709,6 +711,11 @@ static void calculate_normal_dir(const Light_t *light, float coeffs[3]) {
|
|||
light->dir[1] / 127.0f,
|
||||
light->dir[2] / 127.0f
|
||||
};
|
||||
|
||||
light_dir[0] += gLightingDir[0];
|
||||
light_dir[1] += gLightingDir[1];
|
||||
light_dir[2] += gLightingDir[2];
|
||||
|
||||
gfx_transposed_matrix_mul(coeffs, light_dir, rsp.modelview_matrix_stack[rsp.modelview_matrix_stack_size - 1]);
|
||||
gfx_normalize_vector(coeffs);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#ifndef GFX_PC_H
|
||||
#define GFX_PC_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
struct GfxRenderingAPI;
|
||||
struct GfxWindowManagerAPI;
|
||||
|
||||
|
@ -11,6 +13,8 @@ struct GfxDimensions {
|
|||
|
||||
extern struct GfxDimensions gfx_current_dimensions;
|
||||
|
||||
extern Vec3f gLightingDir;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
|
|
@ -1308,6 +1308,17 @@ char gSmluaConstants[] = ""
|
|||
"SEQ_PLAYER_LEVEL = 0\n"
|
||||
"SEQ_PLAYER_ENV = 1\n"
|
||||
"SEQ_PLAYER_SFX = 2\n"
|
||||
"BACKGROUND_OCEAN_SKY = 0\n"
|
||||
"BACKGROUND_FLAMING_SKY = 1\n"
|
||||
"BACKGROUND_UNDERWATER_CITY = 2\n"
|
||||
"BACKGROUND_BELOW_CLOUDS = 3\n"
|
||||
"BACKGROUND_SNOW_MOUNTAINS = 4\n"
|
||||
"BACKGROUND_DESERT = 5\n"
|
||||
"BACKGROUND_HAUNTED = 6\n"
|
||||
"BACKGROUND_GREEN_SKY = 7\n"
|
||||
"BACKGROUND_ABOVE_CLOUDS = 8\n"
|
||||
"BACKGROUND_PURPLE_SKY = 9\n"
|
||||
"BACKGROUND_CUSTOM = 10\n"
|
||||
"GRAPH_RENDER_ACTIVE = (1 << 0)\n"
|
||||
"GRAPH_RENDER_CHILDREN_FIRST = (1 << 1)\n"
|
||||
"GRAPH_RENDER_BILLBOARD = (1 << 2)\n"
|
||||
|
|
|
@ -11569,6 +11569,21 @@ int smlua_func_djui_hud_get_screen_width(UNUSED lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_djui_hud_is_pause_menu_created(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "djui_hud_is_pause_menu_created", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushboolean(L, djui_hud_is_pause_menu_created());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_djui_hud_measure_text(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
@ -11720,6 +11735,23 @@ int smlua_func_djui_hud_set_mouse_locked(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_djui_hud_set_render_behind_hud(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "djui_hud_set_render_behind_hud", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool enable = smlua_to_boolean(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "djui_hud_set_render_behind_hud"); return 0; }
|
||||
|
||||
djui_hud_set_render_behind_hud(enable);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_djui_hud_set_resolution(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
@ -27129,6 +27161,23 @@ int smlua_func_get_last_star_or_key(UNUSED lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_get_lighting_dir(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "get_lighting_dir", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8 index = smlua_to_integer(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "get_lighting_dir"); return 0; }
|
||||
|
||||
lua_pushnumber(L, get_lighting_dir(index));
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_get_network_area_timer(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
@ -27144,6 +27193,21 @@ int smlua_func_get_network_area_timer(UNUSED lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_get_skybox(UNUSED lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 0) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "get_skybox", 0, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
lua_pushinteger(L, get_skybox());
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_get_temp_s32_pointer(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
@ -27428,6 +27492,25 @@ int smlua_func_set_last_star_or_key(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_set_lighting_dir(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 2) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "set_lighting_dir", 2, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
u8 index = smlua_to_integer(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "set_lighting_dir"); return 0; }
|
||||
f32 value = smlua_to_number(L, 2);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "set_lighting_dir"); return 0; }
|
||||
|
||||
set_lighting_dir(index, value);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_set_override_far(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
@ -27479,6 +27562,23 @@ int smlua_func_set_override_near(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_set_override_skybox(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
int top = lua_gettop(L);
|
||||
if (top != 1) {
|
||||
LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "set_override_skybox", 1, top);
|
||||
return 0;
|
||||
}
|
||||
|
||||
s8 background = smlua_to_integer(L, 1);
|
||||
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "set_override_skybox"); return 0; }
|
||||
|
||||
set_override_skybox(background);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int smlua_func_set_ttc_speed_setting(lua_State* L) {
|
||||
if (L == NULL) { return 0; }
|
||||
|
||||
|
@ -29668,6 +29768,7 @@ void smlua_bind_functions_autogen(void) {
|
|||
smlua_bind_function(L, "djui_hud_get_raw_mouse_y", smlua_func_djui_hud_get_raw_mouse_y);
|
||||
smlua_bind_function(L, "djui_hud_get_screen_height", smlua_func_djui_hud_get_screen_height);
|
||||
smlua_bind_function(L, "djui_hud_get_screen_width", smlua_func_djui_hud_get_screen_width);
|
||||
smlua_bind_function(L, "djui_hud_is_pause_menu_created", smlua_func_djui_hud_is_pause_menu_created);
|
||||
smlua_bind_function(L, "djui_hud_measure_text", smlua_func_djui_hud_measure_text);
|
||||
smlua_bind_function(L, "djui_hud_print_text", smlua_func_djui_hud_print_text);
|
||||
smlua_bind_function(L, "djui_hud_render_rect", smlua_func_djui_hud_render_rect);
|
||||
|
@ -29675,6 +29776,7 @@ void smlua_bind_functions_autogen(void) {
|
|||
smlua_bind_function(L, "djui_hud_set_color", smlua_func_djui_hud_set_color);
|
||||
smlua_bind_function(L, "djui_hud_set_font", smlua_func_djui_hud_set_font);
|
||||
smlua_bind_function(L, "djui_hud_set_mouse_locked", smlua_func_djui_hud_set_mouse_locked);
|
||||
smlua_bind_function(L, "djui_hud_set_render_behind_hud", smlua_func_djui_hud_set_render_behind_hud);
|
||||
smlua_bind_function(L, "djui_hud_set_resolution", smlua_func_djui_hud_set_resolution);
|
||||
smlua_bind_function(L, "djui_hud_world_pos_to_screen_pos", smlua_func_djui_hud_world_pos_to_screen_pos);
|
||||
|
||||
|
@ -30439,7 +30541,9 @@ void smlua_bind_functions_autogen(void) {
|
|||
smlua_bind_function(L, "get_hand_foot_pos_y", smlua_func_get_hand_foot_pos_y);
|
||||
smlua_bind_function(L, "get_hand_foot_pos_z", smlua_func_get_hand_foot_pos_z);
|
||||
smlua_bind_function(L, "get_last_star_or_key", smlua_func_get_last_star_or_key);
|
||||
smlua_bind_function(L, "get_lighting_dir", smlua_func_get_lighting_dir);
|
||||
smlua_bind_function(L, "get_network_area_timer", smlua_func_get_network_area_timer);
|
||||
smlua_bind_function(L, "get_skybox", smlua_func_get_skybox);
|
||||
smlua_bind_function(L, "get_temp_s32_pointer", smlua_func_get_temp_s32_pointer);
|
||||
smlua_bind_function(L, "get_time", smlua_func_get_time);
|
||||
smlua_bind_function(L, "get_ttc_speed_setting", smlua_func_get_ttc_speed_setting);
|
||||
|
@ -30456,9 +30560,11 @@ void smlua_bind_functions_autogen(void) {
|
|||
smlua_bind_function(L, "save_file_set_using_backup_slot", smlua_func_save_file_set_using_backup_slot);
|
||||
smlua_bind_function(L, "set_environment_region", smlua_func_set_environment_region);
|
||||
smlua_bind_function(L, "set_last_star_or_key", smlua_func_set_last_star_or_key);
|
||||
smlua_bind_function(L, "set_lighting_dir", smlua_func_set_lighting_dir);
|
||||
smlua_bind_function(L, "set_override_far", smlua_func_set_override_far);
|
||||
smlua_bind_function(L, "set_override_fov", smlua_func_set_override_fov);
|
||||
smlua_bind_function(L, "set_override_near", smlua_func_set_override_near);
|
||||
smlua_bind_function(L, "set_override_skybox", smlua_func_set_override_skybox);
|
||||
smlua_bind_function(L, "set_ttc_speed_setting", smlua_func_set_ttc_speed_setting);
|
||||
|
||||
// smlua_model_utils.h
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
#include "game/rendering_graph_node.h"
|
||||
#include "game/level_update.h"
|
||||
#include "pc/djui/djui_hud_utils.h"
|
||||
#include "game/skybox.h"
|
||||
#include "pc/gfx/gfx_pc.h"
|
||||
#include "include/course_table.h"
|
||||
|
||||
u32 get_network_area_timer(void) {
|
||||
|
@ -383,6 +385,29 @@ void add_scroll_target(u32 index, const char* name, u32 offset, u32 size) {
|
|||
|
||||
///
|
||||
|
||||
f32 get_lighting_dir(u8 index) {
|
||||
if (index > 2) { return 0; }
|
||||
return gLightingDir[index];
|
||||
}
|
||||
|
||||
void set_lighting_dir(u8 index, f32 value) {
|
||||
if (index > 2) { return; }
|
||||
|
||||
gLightingDir[index] = value;
|
||||
}
|
||||
|
||||
///
|
||||
|
||||
s8 get_skybox() {
|
||||
return gReadOnlyBackground;
|
||||
}
|
||||
|
||||
void set_override_skybox(s8 background) {
|
||||
gOverrideBackground = background;
|
||||
}
|
||||
|
||||
///
|
||||
|
||||
bool course_is_main_course(u16 levelNum) {
|
||||
return COURSE_IS_MAIN_COURSE(levelNum);
|
||||
}
|
||||
|
|
|
@ -92,6 +92,12 @@ void set_override_far(f32 far);
|
|||
|
||||
void add_scroll_target(u32 index, const char* name, u32 offset, u32 size);
|
||||
|
||||
f32 get_lighting_dir(u8 index);
|
||||
void set_lighting_dir(u8 index, f32 value);
|
||||
|
||||
s8 get_skybox();
|
||||
void set_override_skybox(s8 background);
|
||||
|
||||
void play_transition(s16 transType, s16 time, u8 red, u8 green, u8 blue);
|
||||
|
||||
bool course_is_main_course(u16 levelNum);
|
||||
|
|
|
@ -20,6 +20,8 @@
|
|||
#include "pc/crash_handler.h"
|
||||
#include "pc/debuglog.h"
|
||||
#include "game/camera.h"
|
||||
#include "pc/gfx/gfx_pc.h"
|
||||
#include "game/skybox.h"
|
||||
#include "game/object_list_processor.h"
|
||||
#include "game/object_helpers.h"
|
||||
#include "menu/intro_geo.h"
|
||||
|
@ -509,6 +511,11 @@ void network_shutdown(bool sendLeaving, bool exiting, bool popup) {
|
|||
gOverrideNear = 0;
|
||||
gOverrideFar = 0;
|
||||
gOverrideFOV = 0;
|
||||
gLightingDir[0] = 0;
|
||||
gLightingDir[1] = 0;
|
||||
gLightingDir[2] = 0;
|
||||
gOverrideBackground = -1;
|
||||
gDjuiRenderBehindHud = false;
|
||||
dynos_mod_shutdown();
|
||||
mods_clear(&gActiveMods);
|
||||
mods_clear(&gRemoteMods);
|
||||
|
|
Loading…
Reference in a new issue