mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2025-10-30 08:01:01 +00:00
Compare commits
2 commits
fcef8699f2
...
5fd55ffac1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5fd55ffac1 | ||
|
|
9f7ad0f93e |
12 changed files with 111 additions and 35 deletions
|
|
@ -3914,8 +3914,14 @@ function djui_hud_get_raw_mouse_y()
|
||||||
-- ...
|
-- ...
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- @return boolean
|
||||||
|
--- Checks if the cursor is locked to the window
|
||||||
|
function djui_hud_is_mouse_locked()
|
||||||
|
-- ...
|
||||||
|
end
|
||||||
|
|
||||||
--- @param locked boolean
|
--- @param locked boolean
|
||||||
--- Sets if the cursor is hidden and constrainted to the window
|
--- Locks (or unlocks) the cursor to the window
|
||||||
function djui_hud_set_mouse_locked(locked)
|
function djui_hud_set_mouse_locked(locked)
|
||||||
-- ...
|
-- ...
|
||||||
end
|
end
|
||||||
|
|
@ -3954,12 +3960,12 @@ end
|
||||||
--- @param y number
|
--- @param y number
|
||||||
--- @param width number
|
--- @param width number
|
||||||
--- @param height number
|
--- @param height number
|
||||||
--- Sets the viewport to the specified position and size, this will resize
|
--- Sets the viewport to the specified position and size, this will resize any subsequent DJUI graphics
|
||||||
function djui_hud_set_viewport(x, y, width, height)
|
function djui_hud_set_viewport(x, y, width, height)
|
||||||
-- ...
|
-- ...
|
||||||
end
|
end
|
||||||
|
|
||||||
--- put the description here
|
--- Resets the viewport to a fullscreen state
|
||||||
function djui_hud_reset_viewport()
|
function djui_hud_reset_viewport()
|
||||||
-- ...
|
-- ...
|
||||||
end
|
end
|
||||||
|
|
@ -3968,12 +3974,12 @@ end
|
||||||
--- @param y number
|
--- @param y number
|
||||||
--- @param width number
|
--- @param width number
|
||||||
--- @param height number
|
--- @param height number
|
||||||
--- put the description here
|
--- Sets the scissor rectangle to the specified position and size, this will cut off any subsequent DJUI graphics not within the rectangle
|
||||||
function djui_hud_set_scissor(x, y, width, height)
|
function djui_hud_set_scissor(x, y, width, height)
|
||||||
-- ...
|
-- ...
|
||||||
end
|
end
|
||||||
|
|
||||||
--- put the description here
|
--- Resets the scissor rectangle to a fullscreen state
|
||||||
function djui_hud_reset_scissor()
|
function djui_hud_reset_scissor()
|
||||||
-- ...
|
-- ...
|
||||||
end
|
end
|
||||||
|
|
@ -6443,14 +6449,14 @@ end
|
||||||
|
|
||||||
--- @param m MarioState
|
--- @param m MarioState
|
||||||
--- @return integer
|
--- @return integer
|
||||||
--- Performs a full Mario stationary physics step (4 substeps) and returns an `GROUND_STEP_*` result
|
--- Performs a full Mario stationary physics step (4 substeps) and returns a `GROUND_STEP_*` result
|
||||||
function stationary_ground_step(m)
|
function stationary_ground_step(m)
|
||||||
-- ...
|
-- ...
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param m MarioState
|
--- @param m MarioState
|
||||||
--- @return integer
|
--- @return integer
|
||||||
--- Performs a full Mario ground physics step (4 substeps) and returns an `GROUND_STEP_*` result
|
--- Performs a full Mario ground physics step (4 substeps) and returns a `GROUND_STEP_*` result
|
||||||
function perform_ground_step(m)
|
function perform_ground_step(m)
|
||||||
-- ...
|
-- ...
|
||||||
end
|
end
|
||||||
|
|
@ -10029,7 +10035,7 @@ end
|
||||||
|
|
||||||
--- @param player integer
|
--- @param player integer
|
||||||
--- @return integer
|
--- @return integer
|
||||||
--- Gets the tempo of `player`
|
--- Gets the `tempo` of `player`
|
||||||
function sequence_player_get_tempo(player)
|
function sequence_player_get_tempo(player)
|
||||||
-- ...
|
-- ...
|
||||||
end
|
end
|
||||||
|
|
@ -10043,7 +10049,7 @@ end
|
||||||
|
|
||||||
--- @param player integer
|
--- @param player integer
|
||||||
--- @return integer
|
--- @return integer
|
||||||
--- Gets the tempoAcc (tempo accumulation) of `player`
|
--- Gets the `tempoAcc` (tempo accumulation) of `player`
|
||||||
function sequence_player_get_tempo_acc(player)
|
function sequence_player_get_tempo_acc(player)
|
||||||
-- ...
|
-- ...
|
||||||
end
|
end
|
||||||
|
|
@ -10057,7 +10063,7 @@ end
|
||||||
|
|
||||||
--- @param player integer
|
--- @param player integer
|
||||||
--- @return integer
|
--- @return integer
|
||||||
--- Gets the transposition (pitch) of `player`
|
--- Gets the `transposition` (pitch) of `player`
|
||||||
function sequence_player_get_transposition(player)
|
function sequence_player_get_transposition(player)
|
||||||
-- ...
|
-- ...
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -3140,10 +3140,31 @@ Returns the y coordinate of the mouse relative to the screen
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
|
## [djui_hud_is_mouse_locked](#djui_hud_is_mouse_locked)
|
||||||
|
|
||||||
|
### Description
|
||||||
|
Checks if the cursor is locked to the window
|
||||||
|
|
||||||
|
### Lua Example
|
||||||
|
`local booleanValue = djui_hud_is_mouse_locked()`
|
||||||
|
|
||||||
|
### Parameters
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Returns
|
||||||
|
- `boolean`
|
||||||
|
|
||||||
|
### C Prototype
|
||||||
|
`bool djui_hud_is_mouse_locked(void);`
|
||||||
|
|
||||||
|
[:arrow_up_small:](#)
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
## [djui_hud_set_mouse_locked](#djui_hud_set_mouse_locked)
|
## [djui_hud_set_mouse_locked](#djui_hud_set_mouse_locked)
|
||||||
|
|
||||||
### Description
|
### Description
|
||||||
Sets if the cursor is hidden and constrainted to the window
|
Locks (or unlocks) the cursor to the window
|
||||||
|
|
||||||
### Lua Example
|
### Lua Example
|
||||||
`djui_hud_set_mouse_locked(locked)`
|
`djui_hud_set_mouse_locked(locked)`
|
||||||
|
|
@ -3271,7 +3292,7 @@ Returns the amount scrolled vertically (-down/up+)
|
||||||
## [djui_hud_set_viewport](#djui_hud_set_viewport)
|
## [djui_hud_set_viewport](#djui_hud_set_viewport)
|
||||||
|
|
||||||
### Description
|
### Description
|
||||||
Sets the viewport to the specified position and size, this will resize
|
Sets the viewport to the specified position and size, this will resize any subsequent DJUI graphics
|
||||||
|
|
||||||
### Lua Example
|
### Lua Example
|
||||||
`djui_hud_set_viewport(x, y, width, height)`
|
`djui_hud_set_viewport(x, y, width, height)`
|
||||||
|
|
@ -3297,7 +3318,7 @@ Sets the viewport to the specified position and size, this will resize
|
||||||
## [djui_hud_reset_viewport](#djui_hud_reset_viewport)
|
## [djui_hud_reset_viewport](#djui_hud_reset_viewport)
|
||||||
|
|
||||||
### Description
|
### Description
|
||||||
put the description here
|
Resets the viewport to a fullscreen state
|
||||||
|
|
||||||
### Lua Example
|
### Lua Example
|
||||||
`djui_hud_reset_viewport()`
|
`djui_hud_reset_viewport()`
|
||||||
|
|
@ -3318,7 +3339,7 @@ put the description here
|
||||||
## [djui_hud_set_scissor](#djui_hud_set_scissor)
|
## [djui_hud_set_scissor](#djui_hud_set_scissor)
|
||||||
|
|
||||||
### Description
|
### Description
|
||||||
put the description here
|
Sets the scissor rectangle to the specified position and size, this will cut off any subsequent DJUI graphics not within the rectangle
|
||||||
|
|
||||||
### Lua Example
|
### Lua Example
|
||||||
`djui_hud_set_scissor(x, y, width, height)`
|
`djui_hud_set_scissor(x, y, width, height)`
|
||||||
|
|
@ -3344,7 +3365,7 @@ put the description here
|
||||||
## [djui_hud_reset_scissor](#djui_hud_reset_scissor)
|
## [djui_hud_reset_scissor](#djui_hud_reset_scissor)
|
||||||
|
|
||||||
### Description
|
### Description
|
||||||
put the description here
|
Resets the scissor rectangle to a fullscreen state
|
||||||
|
|
||||||
### Lua Example
|
### Lua Example
|
||||||
`djui_hud_reset_scissor()`
|
`djui_hud_reset_scissor()`
|
||||||
|
|
|
||||||
|
|
@ -4070,7 +4070,7 @@ Sets all of Mario's velocity variables to 0 and sets his Y position to the floor
|
||||||
## [stationary_ground_step](#stationary_ground_step)
|
## [stationary_ground_step](#stationary_ground_step)
|
||||||
|
|
||||||
### Description
|
### Description
|
||||||
Performs a full Mario stationary physics step (4 substeps) and returns an `GROUND_STEP_*` result
|
Performs a full Mario stationary physics step (4 substeps) and returns a `GROUND_STEP_*` result
|
||||||
|
|
||||||
### Lua Example
|
### Lua Example
|
||||||
`local integerValue = stationary_ground_step(m)`
|
`local integerValue = stationary_ground_step(m)`
|
||||||
|
|
@ -4093,7 +4093,7 @@ Performs a full Mario stationary physics step (4 substeps) and returns an `GROUN
|
||||||
## [perform_ground_step](#perform_ground_step)
|
## [perform_ground_step](#perform_ground_step)
|
||||||
|
|
||||||
### Description
|
### Description
|
||||||
Performs a full Mario ground physics step (4 substeps) and returns an `GROUND_STEP_*` result
|
Performs a full Mario ground physics step (4 substeps) and returns a `GROUND_STEP_*` result
|
||||||
|
|
||||||
### Lua Example
|
### Lua Example
|
||||||
`local integerValue = perform_ground_step(m)`
|
`local integerValue = perform_ground_step(m)`
|
||||||
|
|
|
||||||
|
|
@ -5276,7 +5276,7 @@ Returns the current sound mode (e.g., stereo, mono) stored in the save file. Use
|
||||||
## [sequence_player_get_tempo](#sequence_player_get_tempo)
|
## [sequence_player_get_tempo](#sequence_player_get_tempo)
|
||||||
|
|
||||||
### Description
|
### Description
|
||||||
Gets the tempo of `player`
|
Gets the `tempo` of `player`
|
||||||
|
|
||||||
### Lua Example
|
### Lua Example
|
||||||
`local integerValue = sequence_player_get_tempo(player)`
|
`local integerValue = sequence_player_get_tempo(player)`
|
||||||
|
|
@ -5323,7 +5323,7 @@ Sets the `tempo` of `player`. Resets when another sequence is played
|
||||||
## [sequence_player_get_tempo_acc](#sequence_player_get_tempo_acc)
|
## [sequence_player_get_tempo_acc](#sequence_player_get_tempo_acc)
|
||||||
|
|
||||||
### Description
|
### Description
|
||||||
Gets the tempoAcc (tempo accumulation) of `player`
|
Gets the `tempoAcc` (tempo accumulation) of `player`
|
||||||
|
|
||||||
### Lua Example
|
### Lua Example
|
||||||
`local integerValue = sequence_player_get_tempo_acc(player)`
|
`local integerValue = sequence_player_get_tempo_acc(player)`
|
||||||
|
|
@ -5370,7 +5370,7 @@ Sets the `tempoAcc` (tempo accumulation) of `player`. Resets when another sequen
|
||||||
## [sequence_player_get_transposition](#sequence_player_get_transposition)
|
## [sequence_player_get_transposition](#sequence_player_get_transposition)
|
||||||
|
|
||||||
### Description
|
### Description
|
||||||
Gets the transposition (pitch) of `player`
|
Gets the `transposition` (pitch) of `player`
|
||||||
|
|
||||||
### Lua Example
|
### Lua Example
|
||||||
`local integerValue = sequence_player_get_transposition(player)`
|
`local integerValue = sequence_player_get_transposition(player)`
|
||||||
|
|
|
||||||
|
|
@ -770,6 +770,7 @@
|
||||||
- [djui_hud_get_mouse_y](functions-3.md#djui_hud_get_mouse_y)
|
- [djui_hud_get_mouse_y](functions-3.md#djui_hud_get_mouse_y)
|
||||||
- [djui_hud_get_raw_mouse_x](functions-3.md#djui_hud_get_raw_mouse_x)
|
- [djui_hud_get_raw_mouse_x](functions-3.md#djui_hud_get_raw_mouse_x)
|
||||||
- [djui_hud_get_raw_mouse_y](functions-3.md#djui_hud_get_raw_mouse_y)
|
- [djui_hud_get_raw_mouse_y](functions-3.md#djui_hud_get_raw_mouse_y)
|
||||||
|
- [djui_hud_is_mouse_locked](functions-3.md#djui_hud_is_mouse_locked)
|
||||||
- [djui_hud_set_mouse_locked](functions-3.md#djui_hud_set_mouse_locked)
|
- [djui_hud_set_mouse_locked](functions-3.md#djui_hud_set_mouse_locked)
|
||||||
- [djui_hud_get_mouse_buttons_down](functions-3.md#djui_hud_get_mouse_buttons_down)
|
- [djui_hud_get_mouse_buttons_down](functions-3.md#djui_hud_get_mouse_buttons_down)
|
||||||
- [djui_hud_get_mouse_buttons_pressed](functions-3.md#djui_hud_get_mouse_buttons_pressed)
|
- [djui_hud_get_mouse_buttons_pressed](functions-3.md#djui_hud_get_mouse_buttons_pressed)
|
||||||
|
|
|
||||||
|
|
@ -15,15 +15,15 @@ void sequence_channel_set_volume(struct SequenceChannel *seqChannel, u8 volume);
|
||||||
void process_sequences(s32 iterationsRemaining);
|
void process_sequences(s32 iterationsRemaining);
|
||||||
void init_sequence_player(u32 player);
|
void init_sequence_player(u32 player);
|
||||||
void init_sequence_players(void);
|
void init_sequence_players(void);
|
||||||
/* |description|Gets the tempo of `player`|descriptionEnd| */
|
/* |description|Gets the `tempo` of `player`|descriptionEnd| */
|
||||||
u16 sequence_player_get_tempo(u8 player);
|
u16 sequence_player_get_tempo(u8 player);
|
||||||
/* |description|Sets the `tempo` of `player`. Resets when another sequence is played|descriptionEnd| */
|
/* |description|Sets the `tempo` of `player`. Resets when another sequence is played|descriptionEnd| */
|
||||||
void sequence_player_set_tempo(u8 player, u16 tempo);
|
void sequence_player_set_tempo(u8 player, u16 tempo);
|
||||||
/* |description|Gets the tempoAcc (tempo accumulation) of `player`|descriptionEnd| */
|
/* |description|Gets the `tempoAcc` (tempo accumulation) of `player`|descriptionEnd| */
|
||||||
u16 sequence_player_get_tempo_acc(u8 player);
|
u16 sequence_player_get_tempo_acc(u8 player);
|
||||||
/* |description|Sets the `tempoAcc` (tempo accumulation) of `player`. Resets when another sequence is played|descriptionEnd| */
|
/* |description|Sets the `tempoAcc` (tempo accumulation) of `player`. Resets when another sequence is played|descriptionEnd| */
|
||||||
void sequence_player_set_tempo_acc(u8 player, u16 tempoAcc);
|
void sequence_player_set_tempo_acc(u8 player, u16 tempoAcc);
|
||||||
/* |description|Gets the transposition (pitch) of `player`|descriptionEnd| */
|
/* |description|Gets the `transposition` (pitch) of `player`|descriptionEnd| */
|
||||||
u16 sequence_player_get_transposition(u8 player);
|
u16 sequence_player_get_transposition(u8 player);
|
||||||
/* |description|Sets the `transposition` (pitch) of `player`. Resets when another sequence is played|descriptionEnd| */
|
/* |description|Sets the `transposition` (pitch) of `player`. Resets when another sequence is played|descriptionEnd| */
|
||||||
void sequence_player_set_transposition(u8 player, u16 transposition);
|
void sequence_player_set_transposition(u8 player, u16 transposition);
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ static u32 networkBowserAnimationIndex = 0;
|
||||||
static u8 bowserIsDying = FALSE;
|
static u8 bowserIsDying = FALSE;
|
||||||
static u8 bowserCutscenePlayed = FALSE;
|
static u8 bowserCutscenePlayed = FALSE;
|
||||||
static u8 bowserIsCutscenePlayer = FALSE;
|
static u8 bowserIsCutscenePlayer = FALSE;
|
||||||
|
static u8 bowserCutsceneGlobalIndex = UNKNOWN_GLOBAL_INDEX;
|
||||||
|
|
||||||
void bowser_tail_anchor_act_0(void) {
|
void bowser_tail_anchor_act_0(void) {
|
||||||
struct Object* bowser = o->parentObj;
|
struct Object* bowser = o->parentObj;
|
||||||
|
|
@ -777,6 +778,10 @@ void bowser_act_thrown_dropped(void)
|
||||||
o->oAction = 4;
|
o->oAction = 4;
|
||||||
else
|
else
|
||||||
o->oAction = 12;
|
o->oAction = 12;
|
||||||
|
|
||||||
|
if (is_nearest_mario_state_to_object(gMarioState, o)) {
|
||||||
|
network_send_object(o);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1125,8 +1130,17 @@ void bowser_act_ride_tilting_platform(void) {
|
||||||
cur_obj_extend_animation_if_at_end();
|
cur_obj_extend_animation_if_at_end();
|
||||||
}
|
}
|
||||||
|
|
||||||
void bowser_act_nothing(void) {
|
void bowser_act_nothing(void) { // start moving if cutscene player is inactive
|
||||||
|
if (bowserCutsceneGlobalIndex == UNKNOWN_GLOBAL_INDEX) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct NetworkPlayer* np = network_player_from_global_index(bowserCutsceneGlobalIndex);
|
||||||
|
if (np == NULL || !is_player_active(&gMarioStates[np->localIndex])) {
|
||||||
|
bowserCutscenePlayed = TRUE;
|
||||||
|
bowser_initialize_action();
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
s32 bowser_check_fallen_off_stage(void) // bowser off stage?
|
s32 bowser_check_fallen_off_stage(void) // bowser off stage?
|
||||||
|
|
@ -1232,6 +1246,7 @@ void bowser_held_update(void) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
o->parentObj = player;
|
||||||
o->oBowserUnkF4 &= ~0x20000;
|
o->oBowserUnkF4 &= ~0x20000;
|
||||||
cur_obj_become_intangible();
|
cur_obj_become_intangible();
|
||||||
|
|
||||||
|
|
@ -1385,6 +1400,13 @@ static u8 bhv_bowser_ignore_if_true(void) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void bhv_bowser_on_received_post(UNUSED u8 localIndex) {
|
||||||
|
// prevent sync from putting bowser in text action instead of nothing action
|
||||||
|
if (!(bowserIsCutscenePlayer || bowserCutscenePlayed) && (o->oAction == 5 || o->oAction == 6)) {
|
||||||
|
o->oAction = 20;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void bhv_bowser_init(void) {
|
void bhv_bowser_init(void) {
|
||||||
bowserIsDying = FALSE;
|
bowserIsDying = FALSE;
|
||||||
s32 level; // 0 is dw, 1 is fs, 2 is sky
|
s32 level; // 0 is dw, 1 is fs, 2 is sky
|
||||||
|
|
@ -1408,9 +1430,11 @@ void bhv_bowser_init(void) {
|
||||||
// Make sure we're the first to trigger Bowser.
|
// Make sure we're the first to trigger Bowser.
|
||||||
if (!is_other_player_active()) {
|
if (!is_other_player_active()) {
|
||||||
bowserIsCutscenePlayer = TRUE;
|
bowserIsCutscenePlayer = TRUE;
|
||||||
|
bowserCutsceneGlobalIndex = gNetworkPlayerLocal->globalIndex;
|
||||||
o->oAction = 5; // bowser_act_text_wait
|
o->oAction = 5; // bowser_act_text_wait
|
||||||
} else { // If we aren't do nothing till we get our sync.
|
} else { // If we aren't do nothing till we get our sync.
|
||||||
bowserIsCutscenePlayer = FALSE;
|
bowserIsCutscenePlayer = FALSE;
|
||||||
|
bowserCutsceneGlobalIndex = UNKNOWN_GLOBAL_INDEX;
|
||||||
o->oAction = 20; // bowser_act_nothing
|
o->oAction = 20; // bowser_act_nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1419,9 +1443,11 @@ void bhv_bowser_init(void) {
|
||||||
if (so) {
|
if (so) {
|
||||||
so->override_ownership = bhv_bowser_override_ownership;
|
so->override_ownership = bhv_bowser_override_ownership;
|
||||||
so->ignore_if_true = bhv_bowser_ignore_if_true;
|
so->ignore_if_true = bhv_bowser_ignore_if_true;
|
||||||
|
so->on_received_post = bhv_bowser_on_received_post;
|
||||||
so->fullObjectSync = TRUE;
|
so->fullObjectSync = TRUE;
|
||||||
sync_object_init_field_with_size(o, &o->header.gfx.node.flags, 16);
|
sync_object_init_field_with_size(o, &o->header.gfx.node.flags, 16);
|
||||||
sync_object_init_field_with_size(o, &o->header.gfx.animInfo.animFrame, 16);
|
sync_object_init_field_with_size(o, &o->header.gfx.animInfo.animFrame, 16);
|
||||||
|
sync_object_init_field_with_size(o, &bowserCutsceneGlobalIndex, 8);
|
||||||
sync_object_init_field(o, &networkBowserAnimationIndex);
|
sync_object_init_field(o, &networkBowserAnimationIndex);
|
||||||
sync_object_init_field(o, &o->header.gfx.scale[0]);
|
sync_object_init_field(o, &o->header.gfx.scale[0]);
|
||||||
sync_object_init_field(o, &o->header.gfx.scale[1]);
|
sync_object_init_field(o, &o->header.gfx.scale[1]);
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ void bhv_heave_ho_throw_mario_loop(void) {
|
||||||
if (player) {
|
if (player) {
|
||||||
player->oInteractStatus |= INT_STATUS_MARIO_UNK2;
|
player->oInteractStatus |= INT_STATUS_MARIO_UNK2;
|
||||||
}
|
}
|
||||||
if (marioState) {
|
if (marioState && marioState->action == ACT_GRABBED) {
|
||||||
marioState->forwardVel = -45.0f;
|
marioState->forwardVel = -45.0f;
|
||||||
marioState->vel[1] = 95.0f;
|
marioState->vel[1] = 95.0f;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,9 +36,9 @@ u32 mario_update_moving_sand(struct MarioState *m);
|
||||||
u32 mario_update_windy_ground(struct MarioState *m);
|
u32 mario_update_windy_ground(struct MarioState *m);
|
||||||
/* |description|Sets all of Mario's velocity variables to 0 and sets his Y position to the floor height|descriptionEnd| */
|
/* |description|Sets all of Mario's velocity variables to 0 and sets his Y position to the floor height|descriptionEnd| */
|
||||||
void stop_and_set_height_to_floor(struct MarioState *m);
|
void stop_and_set_height_to_floor(struct MarioState *m);
|
||||||
/* |description|Performs a full Mario stationary physics step (4 substeps) and returns an `GROUND_STEP_*` result|descriptionEnd| */
|
/* |description|Performs a full Mario stationary physics step (4 substeps) and returns a `GROUND_STEP_*` result|descriptionEnd| */
|
||||||
s32 stationary_ground_step(struct MarioState *m);
|
s32 stationary_ground_step(struct MarioState *m);
|
||||||
/* |description|Performs a full Mario ground physics step (4 substeps) and returns an `GROUND_STEP_*` result|descriptionEnd| */
|
/* |description|Performs a full Mario ground physics step (4 substeps) and returns a `GROUND_STEP_*` result|descriptionEnd| */
|
||||||
s32 perform_ground_step(struct MarioState *m);
|
s32 perform_ground_step(struct MarioState *m);
|
||||||
/* |description|Performs a full Mario air physics step (4 substeps) and returns an `AIR_STEP_*` result|descriptionEnd| */
|
/* |description|Performs a full Mario air physics step (4 substeps) and returns an `AIR_STEP_*` result|descriptionEnd| */
|
||||||
s32 perform_air_step(struct MarioState *m, u32 stepArg);
|
s32 perform_air_step(struct MarioState *m, u32 stepArg);
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ static struct DjuiColor sRefColor = { 255, 255, 255, 255 };
|
||||||
static bool sLegacy = false;
|
static bool sLegacy = false;
|
||||||
|
|
||||||
f32 gDjuiHudUtilsZ = 0;
|
f32 gDjuiHudUtilsZ = 0;
|
||||||
u8 gDjuiHudLockMouse = false;
|
bool gDjuiHudLockMouse = false;
|
||||||
|
|
||||||
extern ALIGNED8 const u8 texture_hud_char_camera[];
|
extern ALIGNED8 const u8 texture_hud_char_camera[];
|
||||||
extern ALIGNED8 const u8 texture_hud_char_lakitu[];
|
extern ALIGNED8 const u8 texture_hud_char_lakitu[];
|
||||||
|
|
@ -297,6 +297,10 @@ f32 djui_hud_get_raw_mouse_y(void) {
|
||||||
return mouse_y;
|
return mouse_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool djui_hud_is_mouse_locked(void) {
|
||||||
|
return gDjuiHudLockMouse;
|
||||||
|
}
|
||||||
|
|
||||||
void djui_hud_set_mouse_locked(bool locked) {
|
void djui_hud_set_mouse_locked(bool locked) {
|
||||||
gDjuiHudLockMouse = locked;
|
gDjuiHudLockMouse = locked;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ struct GlobalTextures {
|
||||||
|
|
||||||
extern struct GlobalTextures gGlobalTextures;
|
extern struct GlobalTextures gGlobalTextures;
|
||||||
extern f32 gDjuiHudUtilsZ;
|
extern f32 gDjuiHudUtilsZ;
|
||||||
extern u8 gDjuiHudLockMouse;
|
extern bool gDjuiHudLockMouse;
|
||||||
|
|
||||||
/* |description|Gets the current DJUI HUD resolution|descriptionEnd| */
|
/* |description|Gets the current DJUI HUD resolution|descriptionEnd| */
|
||||||
u8 djui_hud_get_resolution(void);
|
u8 djui_hud_get_resolution(void);
|
||||||
|
|
@ -92,7 +92,9 @@ f32 djui_hud_get_mouse_y(void);
|
||||||
f32 djui_hud_get_raw_mouse_x(void);
|
f32 djui_hud_get_raw_mouse_x(void);
|
||||||
/* |description|Returns the y coordinate of the mouse relative to the screen|descriptionEnd| */
|
/* |description|Returns the y coordinate of the mouse relative to the screen|descriptionEnd| */
|
||||||
f32 djui_hud_get_raw_mouse_y(void);
|
f32 djui_hud_get_raw_mouse_y(void);
|
||||||
/* |description|Sets if the cursor is hidden and constrainted to the window|descriptionEnd| */
|
/* |description|Checks if the cursor is locked to the window|descriptionEnd| */
|
||||||
|
bool djui_hud_is_mouse_locked(void);
|
||||||
|
/* |description|Locks (or unlocks) the cursor to the window|descriptionEnd| */
|
||||||
void djui_hud_set_mouse_locked(bool locked);
|
void djui_hud_set_mouse_locked(bool locked);
|
||||||
/* |description|Returns the flags of the mouse buttons held down|descriptionEnd| */
|
/* |description|Returns the flags of the mouse buttons held down|descriptionEnd| */
|
||||||
u8 djui_hud_get_mouse_buttons_down(void);
|
u8 djui_hud_get_mouse_buttons_down(void);
|
||||||
|
|
@ -104,13 +106,13 @@ u8 djui_hud_get_mouse_buttons_released(void);
|
||||||
f32 djui_hud_get_mouse_scroll_x(void);
|
f32 djui_hud_get_mouse_scroll_x(void);
|
||||||
/* |description|Returns the amount scrolled vertically (-down/up+)|descriptionEnd| */
|
/* |description|Returns the amount scrolled vertically (-down/up+)|descriptionEnd| */
|
||||||
f32 djui_hud_get_mouse_scroll_y(void);
|
f32 djui_hud_get_mouse_scroll_y(void);
|
||||||
/* |description|Sets the viewport to the specified position and size, this will resize |descriptionEnd| */
|
/* |description|Sets the viewport to the specified position and size, this will resize any subsequent DJUI graphics|descriptionEnd| */
|
||||||
void djui_hud_set_viewport(f32 x, f32 y, f32 width, f32 height);
|
void djui_hud_set_viewport(f32 x, f32 y, f32 width, f32 height);
|
||||||
/* |description|put the description here|descriptionEnd| */
|
/* |description|Resets the viewport to a fullscreen state|descriptionEnd| */
|
||||||
void djui_hud_reset_viewport(void);
|
void djui_hud_reset_viewport(void);
|
||||||
/* |description|put the description here|descriptionEnd| */
|
/* |description|Sets the scissor rectangle to the specified position and size, this will cut off any subsequent DJUI graphics not within the rectangle|descriptionEnd| */
|
||||||
void djui_hud_set_scissor(f32 x, f32 y, f32 width, f32 height);
|
void djui_hud_set_scissor(f32 x, f32 y, f32 width, f32 height);
|
||||||
/* |description|put the description here|descriptionEnd| */
|
/* |description|Resets the scissor rectangle to a fullscreen state|descriptionEnd| */
|
||||||
void djui_hud_reset_scissor(void);
|
void djui_hud_reset_scissor(void);
|
||||||
|
|
||||||
/* |description|Measures the length of `message` in the current font|descriptionEnd| */
|
/* |description|Measures the length of `message` in the current font|descriptionEnd| */
|
||||||
|
|
|
||||||
|
|
@ -12698,6 +12698,21 @@ int smlua_func_djui_hud_get_raw_mouse_y(UNUSED lua_State* L) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int smlua_func_djui_hud_is_mouse_locked(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_mouse_locked", 0, top);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
lua_pushboolean(L, djui_hud_is_mouse_locked());
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int smlua_func_djui_hud_set_mouse_locked(lua_State* L) {
|
int smlua_func_djui_hud_set_mouse_locked(lua_State* L) {
|
||||||
if (L == NULL) { return 0; }
|
if (L == NULL) { return 0; }
|
||||||
|
|
||||||
|
|
@ -37431,6 +37446,7 @@ void smlua_bind_functions_autogen(void) {
|
||||||
smlua_bind_function(L, "djui_hud_get_mouse_y", smlua_func_djui_hud_get_mouse_y);
|
smlua_bind_function(L, "djui_hud_get_mouse_y", smlua_func_djui_hud_get_mouse_y);
|
||||||
smlua_bind_function(L, "djui_hud_get_raw_mouse_x", smlua_func_djui_hud_get_raw_mouse_x);
|
smlua_bind_function(L, "djui_hud_get_raw_mouse_x", smlua_func_djui_hud_get_raw_mouse_x);
|
||||||
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_raw_mouse_y", smlua_func_djui_hud_get_raw_mouse_y);
|
||||||
|
smlua_bind_function(L, "djui_hud_is_mouse_locked", smlua_func_djui_hud_is_mouse_locked);
|
||||||
smlua_bind_function(L, "djui_hud_set_mouse_locked", smlua_func_djui_hud_set_mouse_locked);
|
smlua_bind_function(L, "djui_hud_set_mouse_locked", smlua_func_djui_hud_set_mouse_locked);
|
||||||
smlua_bind_function(L, "djui_hud_get_mouse_buttons_down", smlua_func_djui_hud_get_mouse_buttons_down);
|
smlua_bind_function(L, "djui_hud_get_mouse_buttons_down", smlua_func_djui_hud_get_mouse_buttons_down);
|
||||||
smlua_bind_function(L, "djui_hud_get_mouse_buttons_pressed", smlua_func_djui_hud_get_mouse_buttons_pressed);
|
smlua_bind_function(L, "djui_hud_get_mouse_buttons_pressed", smlua_func_djui_hud_get_mouse_buttons_pressed);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue