Add ability to get global timer and set HUD flash

This commit is contained in:
Agent X 2024-02-22 13:59:19 -05:00
parent 5c3ebadb8e
commit 815bbe0053
6 changed files with 154 additions and 20 deletions

View file

@ -8744,6 +8744,11 @@ function get_fog_intensity()
-- ...
end
--- @return integer
function get_global_timer()
-- ...
end
--- @return boolean
function get_got_file_coin_hi_score()
-- ...
@ -8850,6 +8855,11 @@ function gfx_get_adjust_for_aspect_ratio()
-- ...
end
--- @return integer
function hud_get_flash()
-- ...
end
--- @param type HudDisplayValue
--- @return integer
function hud_get_value(type)
@ -8890,6 +8900,12 @@ function hud_render_power_meter_interpolated(health, prevX, prevY, prevWidth, pr
-- ...
end
--- @param value integer
--- @return nil
function hud_set_flash(value)
-- ...
end
--- @param type HudDisplayValue
--- @param value integer
--- @return nil

View file

@ -869,6 +869,24 @@
<br />
## [get_global_timer](#get_global_timer)
### Lua Example
`local integerValue = get_global_timer()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`u32 get_global_timer(void);`
[:arrow_up_small:](#)
<br />
## [get_got_file_coin_hi_score](#get_got_file_coin_hi_score)
### Lua Example
@ -1230,6 +1248,24 @@
<br />
## [hud_get_flash](#hud_get_flash)
### Lua Example
`local integerValue = hud_get_flash()`
### Parameters
- None
### Returns
- `integer`
### C Prototype
`s8 hud_get_flash(void);`
[:arrow_up_small:](#)
<br />
## [hud_get_value](#hud_get_value)
### Lua Example
@ -1338,6 +1374,26 @@
<br />
## [hud_set_flash](#hud_set_flash)
### Lua Example
`hud_set_flash(value)`
### Parameters
| Field | Type |
| ----- | ---- |
| value | `integer` |
### Returns
- None
### C Prototype
`void hud_set_flash(s8 value);`
[:arrow_up_small:](#)
<br />
## [hud_set_value](#hud_set_value)
### Lua Example

View file

@ -1642,6 +1642,7 @@
- [get_environment_region](functions-5.md#get_environment_region)
- [get_fog_color](functions-5.md#get_fog_color)
- [get_fog_intensity](functions-5.md#get_fog_intensity)
- [get_global_timer](functions-5.md#get_global_timer)
- [get_got_file_coin_hi_score](functions-5.md#get_got_file_coin_hi_score)
- [get_hand_foot_pos_x](functions-5.md#get_hand_foot_pos_x)
- [get_hand_foot_pos_y](functions-5.md#get_hand_foot_pos_y)
@ -1661,11 +1662,13 @@
- [get_vertex_color](functions-5.md#get_vertex_color)
- [gfx_enable_adjust_for_aspect_ratio](functions-5.md#gfx_enable_adjust_for_aspect_ratio)
- [gfx_get_adjust_for_aspect_ratio](functions-5.md#gfx_get_adjust_for_aspect_ratio)
- [hud_get_flash](functions-5.md#hud_get_flash)
- [hud_get_value](functions-5.md#hud_get_value)
- [hud_hide](functions-5.md#hud_hide)
- [hud_is_hidden](functions-5.md#hud_is_hidden)
- [hud_render_power_meter](functions-5.md#hud_render_power_meter)
- [hud_render_power_meter_interpolated](functions-5.md#hud_render_power_meter_interpolated)
- [hud_set_flash](functions-5.md#hud_set_flash)
- [hud_set_value](functions-5.md#hud_set_value)
- [hud_show](functions-5.md#hud_show)
- [is_game_paused](functions-5.md#is_game_paused)

View file

@ -28890,6 +28890,21 @@ int smlua_func_get_fog_intensity(UNUSED lua_State* L) {
return 1;
}
int smlua_func_get_global_timer(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_global_timer", 0, top);
return 0;
}
lua_pushinteger(L, get_global_timer());
return 1;
}
int smlua_func_get_got_file_coin_hi_score(UNUSED lua_State* L) {
if (L == NULL) { return 0; }
@ -29197,6 +29212,21 @@ int smlua_func_gfx_get_adjust_for_aspect_ratio(UNUSED lua_State* L) {
return 1;
}
int smlua_func_hud_get_flash(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", "hud_get_flash", 0, top);
return 0;
}
lua_pushinteger(L, hud_get_flash());
return 1;
}
int smlua_func_hud_get_value(lua_State* L) {
if (L == NULL) { return 0; }
@ -29302,6 +29332,23 @@ int smlua_func_hud_render_power_meter_interpolated(lua_State* L) {
return 1;
}
int smlua_func_hud_set_flash(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", "hud_set_flash", 1, top);
return 0;
}
s8 value = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "hud_set_flash"); return 0; }
hud_set_flash(value);
return 1;
}
int smlua_func_hud_set_value(lua_State* L) {
if (L == NULL) { return 0; }
@ -32975,6 +33022,7 @@ void smlua_bind_functions_autogen(void) {
smlua_bind_function(L, "get_environment_region", smlua_func_get_environment_region);
smlua_bind_function(L, "get_fog_color", smlua_func_get_fog_color);
smlua_bind_function(L, "get_fog_intensity", smlua_func_get_fog_intensity);
smlua_bind_function(L, "get_global_timer", smlua_func_get_global_timer);
smlua_bind_function(L, "get_got_file_coin_hi_score", smlua_func_get_got_file_coin_hi_score);
smlua_bind_function(L, "get_hand_foot_pos_x", smlua_func_get_hand_foot_pos_x);
smlua_bind_function(L, "get_hand_foot_pos_y", smlua_func_get_hand_foot_pos_y);
@ -32994,11 +33042,13 @@ void smlua_bind_functions_autogen(void) {
smlua_bind_function(L, "get_vertex_color", smlua_func_get_vertex_color);
smlua_bind_function(L, "gfx_enable_adjust_for_aspect_ratio", smlua_func_gfx_enable_adjust_for_aspect_ratio);
smlua_bind_function(L, "gfx_get_adjust_for_aspect_ratio", smlua_func_gfx_get_adjust_for_aspect_ratio);
smlua_bind_function(L, "hud_get_flash", smlua_func_hud_get_flash);
smlua_bind_function(L, "hud_get_value", smlua_func_hud_get_value);
smlua_bind_function(L, "hud_hide", smlua_func_hud_hide);
smlua_bind_function(L, "hud_is_hidden", smlua_func_hud_is_hidden);
smlua_bind_function(L, "hud_render_power_meter", smlua_func_hud_render_power_meter);
smlua_bind_function(L, "hud_render_power_meter_interpolated", smlua_func_hud_render_power_meter_interpolated);
smlua_bind_function(L, "hud_set_flash", smlua_func_hud_set_flash);
smlua_bind_function(L, "hud_set_value", smlua_func_hud_set_value);
smlua_bind_function(L, "hud_show", smlua_func_hud_show);
smlua_bind_function(L, "is_game_paused", smlua_func_is_game_paused);

View file

@ -172,17 +172,18 @@ void hud_set_value(enum HudDisplayValue type, s32 value) {
}
}
extern const u8 texture_power_meter_left_side[];
extern const u8 texture_power_meter_right_side[];
extern const u8 texture_power_meter_full[];
extern const u8 texture_power_meter_seven_segments[];
extern const u8 texture_power_meter_six_segments[];
extern const u8 texture_power_meter_five_segments[];
extern const u8 texture_power_meter_four_segments[];
extern const u8 texture_power_meter_three_segments[];
extern const u8 texture_power_meter_two_segments[];
extern const u8 texture_power_meter_one_segments[];
void hud_render_power_meter(s32 health, f32 x, f32 y, f32 width, f32 height) {
extern const u8 texture_power_meter_left_side[];
extern const u8 texture_power_meter_right_side[];
extern const u8 texture_power_meter_full[];
extern const u8 texture_power_meter_seven_segments[];
extern const u8 texture_power_meter_six_segments[];
extern const u8 texture_power_meter_five_segments[];
extern const u8 texture_power_meter_four_segments[];
extern const u8 texture_power_meter_three_segments[];
extern const u8 texture_power_meter_two_segments[];
extern const u8 texture_power_meter_one_segments[];
static struct TextureInfo sPowerMeterTexturesInfo[] = {
{ (u8*)texture_power_meter_left_side, 8, 32, 64, "texture_power_meter_left_side" },
{ (u8*)texture_power_meter_right_side, 8, 32, 64, "texture_power_meter_right_side" },
@ -204,16 +205,6 @@ void hud_render_power_meter(s32 health, f32 x, f32 y, f32 width, f32 height) {
}
void hud_render_power_meter_interpolated(s32 health, f32 prevX, f32 prevY, f32 prevWidth, f32 prevHeight, f32 x, f32 y, f32 width, f32 height) {
extern const u8 texture_power_meter_left_side[];
extern const u8 texture_power_meter_right_side[];
extern const u8 texture_power_meter_full[];
extern const u8 texture_power_meter_seven_segments[];
extern const u8 texture_power_meter_six_segments[];
extern const u8 texture_power_meter_five_segments[];
extern const u8 texture_power_meter_four_segments[];
extern const u8 texture_power_meter_three_segments[];
extern const u8 texture_power_meter_two_segments[];
extern const u8 texture_power_meter_one_segments[];
static struct TextureInfo sPowerMeterTexturesInfo[] = {
{ (u8*)texture_power_meter_left_side, 8, 32, 64, "texture_power_meter_left_side" },
{ (u8*)texture_power_meter_right_side, 8, 32, 64, "texture_power_meter_right_side" },
@ -243,6 +234,14 @@ void hud_render_power_meter_interpolated(s32 health, f32 prevX, f32 prevY, f32 p
}
}
s8 hud_get_flash(void) {
return gHudFlash;
}
void hud_set_flash(s8 value) {
gHudFlash = value;
}
///
struct CameraOverride {
@ -622,6 +621,12 @@ void set_override_envfx(s32 envfx) {
///
u32 get_global_timer(void) {
return gGlobalTimer;
}
///
bool get_coop_compatibility_enabled(void) {
return configCoopCompatibility;
}

View file

@ -68,6 +68,8 @@ s32 hud_get_value(enum HudDisplayValue type);
void hud_set_value(enum HudDisplayValue type, s32 value);
void hud_render_power_meter(s32 health, f32 x, f32 y, f32 width, f32 height);
void hud_render_power_meter_interpolated(s32 health, f32 prevX, f32 prevY, f32 prevWidth, f32 prevHeight, f32 x, f32 y, f32 width, f32 height);
s8 hud_get_flash(void);
void hud_set_flash(s8 value);
void camera_reset_overrides(void);
void camera_freeze(void);
@ -153,6 +155,8 @@ struct DateTime* get_date_and_time(void);
u16 get_envfx(void);
void set_override_envfx(s32 envfx);
u32 get_global_timer(void);
bool get_coop_compatibility_enabled(void);
bool gfx_get_adjust_for_aspect_ratio(void);