Expose sound_banks_enable/disable to Lua (#311)

This commit is contained in:
Agent X 2023-03-18 17:12:33 -04:00 committed by GitHub
parent bd2bd7c498
commit 22952dda05
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 156 additions and 2 deletions

View file

@ -39,7 +39,8 @@ in_files = [
"include/surface_terrains.h",
"src/game/level_update.h",
"src/pc/network/version.h",
"include/level_commands.h"
"include/level_commands.h",
"src/audio/external.h"
]
exclude_constants = {
@ -49,6 +50,7 @@ exclude_constants = {
include_constants = {
'include/level_commands.h': [ "WARP_CHECKPOINT", "WARP_NO_CHECKPOINT" ],
'src/audio/external.h': [ "SEQ_PLAYER" ]
}
pretend_find = [

View file

@ -61,7 +61,7 @@ in_files = [
]
override_allowed_functions = {
"src/audio/external.h": [ " play_", "fade", "current_background", "stop_" ],
"src/audio/external.h": [ " play_", "fade", "current_background", "stop_", "sound_banks" ],
"src/game/rumble_init.c": [ "queue_rumble_", "reset_rumble_timers" ],
"src/pc/djui/djui_popup.h" : [ "create" ],
"src/game/save_file.h": [ "save_file_get_", "save_file_set_flags", "save_file_clear_flags", "save_file_reload", "save_file_erase_current_backup_save", "save_file_set_star_flags" ],

View file

@ -3263,6 +3263,15 @@ RESOLUTION_N64 = 1
--- @type HudUtilsResolution
RESOLUTION_COUNT = 2
--- @type integer
SEQ_PLAYER_ENV = 1
--- @type integer
SEQ_PLAYER_LEVEL = 0
--- @type integer
SEQ_PLAYER_SFX = 2
--- @type integer
GEO_CONTEXT_AREA_INIT = 4
@ -3818,6 +3827,9 @@ MARIO_SPAWN_UNKNOWN_03 = 0x03
--- @type integer
MARIO_SPAWN_UNKNOWN_27 = 0x27
--- @type integer
PRESS_START_DEMO_TIMER = 800
--- @type integer
TIMER_CONTROL_HIDE = 3

View file

@ -3857,6 +3857,20 @@ function seq_player_unlower_volume(player, fadeDuration)
-- ...
end
--- @param player integer
--- @param bankMask integer
--- @return nil
function sound_banks_disable(player, bankMask)
-- ...
end
--- @param player integer
--- @param bankMask integer
--- @return nil
function sound_banks_enable(player, bankMask)
-- ...
end
--- @param seqId integer
--- @return nil
function stop_background_music(seqId)

View file

@ -14,6 +14,7 @@
- [djui_hud_utils.h](#djui_hud_utilsh)
- [enum DjuiFontType](#enum-DjuiFontType)
- [enum HudUtilsResolution](#enum-HudUtilsResolution)
- [external.h](#externalh)
- [graph_node.h](#graph_nodeh)
- [interaction.c](#interactionc)
- [enum InteractionFlag](#enum-InteractionFlag)
@ -1099,6 +1100,15 @@
<br />
## [external.h](#external.h)
- SEQ_PLAYER_ENV
- SEQ_PLAYER_LEVEL
- SEQ_PLAYER_SFX
[:arrow_up_small:](#)
<br />
## [graph_node.h](#graph_node.h)
- GEO_CONTEXT_AREA_INIT
- GEO_CONTEXT_AREA_LOAD
@ -1325,6 +1335,7 @@
- MARIO_SPAWN_UNKNOWN_02
- MARIO_SPAWN_UNKNOWN_03
- MARIO_SPAWN_UNKNOWN_27
- PRESS_START_DEMO_TIMER
- TIMER_CONTROL_HIDE
- TIMER_CONTROL_SHOW
- TIMER_CONTROL_START

View file

@ -2806,6 +2806,48 @@
<br />
## [sound_banks_disable](#sound_banks_disable)
### Lua Example
`sound_banks_disable(player, bankMask)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | `integer` |
| bankMask | `integer` |
### Returns
- None
### C Prototype
`void sound_banks_disable(u8 player, u16 bankMask);`
[:arrow_up_small:](#)
<br />
## [sound_banks_enable](#sound_banks_enable)
### Lua Example
`sound_banks_enable(player, bankMask)`
### Parameters
| Field | Type |
| ----- | ---- |
| player | `integer` |
| bankMask | `integer` |
### Returns
- None
### C Prototype
`void sound_banks_enable(u8 player, u16 bankMask);`
[:arrow_up_small:](#)
<br />
## [stop_background_music](#stop_background_music)
### Lua Example

View file

@ -761,6 +761,8 @@
- [seq_player_fade_out](functions-3.md#seq_player_fade_out)
- [seq_player_lower_volume](functions-3.md#seq_player_lower_volume)
- [seq_player_unlower_volume](functions-3.md#seq_player_unlower_volume)
- [sound_banks_disable](functions-3.md#sound_banks_disable)
- [sound_banks_enable](functions-3.md#sound_banks_enable)
- [stop_background_music](functions-3.md#stop_background_music)
- [stop_sound](functions-3.md#stop_sound)
- [stop_sounds_from_source](functions-3.md#stop_sounds_from_source)

View file

@ -10,6 +10,7 @@ char gSmluaConstants[] = ""
" return a['_pointer'] == b['_pointer'] and a['_lot'] == b['_lot'] and a['_pointer'] ~= nil and a['_lot'] ~= nil\n"
" end\n"
"}\n"
"\n"
"_CPointer = {\n"
" __index = function (t,k)\n"
" return nil\n"
@ -23,6 +24,7 @@ char gSmluaConstants[] = ""
" return a['_pointer'] == b['_pointer'] and a['_pointer'] ~= nil and a['_lvt'] ~= nil\n"
" end\n"
"}\n"
"\n"
"_SyncTable = {\n"
" __index = function (t,k)\n"
" local _table = rawget(t, '_table')\n"
@ -34,6 +36,7 @@ char gSmluaConstants[] = ""
" _set_sync_table_field(t, k, v)\n"
" end\n"
"}\n"
"\n"
"_ReadOnlyTable = {\n"
" __index = function (t,k)\n"
" local _table = rawget(t, '_table')\n"
@ -42,6 +45,7 @@ char gSmluaConstants[] = ""
" __newindex = function (t,k,v)\n"
" end\n"
"}\n"
"\n"
"--- @param dest Vec3f\n"
"--- @param src Vec3f\n"
"--- @return Vec3f\n"
@ -51,6 +55,7 @@ char gSmluaConstants[] = ""
" dest.z = src.z\n"
" return dest\n"
"end\n"
"\n"
"--- @param dest Vec3f\n"
"--- @param x number\n"
"--- @param y number\n"
@ -62,6 +67,7 @@ char gSmluaConstants[] = ""
" dest.z = z\n"
" return dest\n"
"end\n"
"\n"
"--- @param dest Vec3f\n"
"--- @param a Vec3f\n"
"--- @return Vec3f\n"
@ -71,6 +77,7 @@ char gSmluaConstants[] = ""
" dest.z = dest.z + a.z\n"
" return dest\n"
"end\n"
"\n"
"--- @param dest Vec3f\n"
"--- @param a Vec3f\n"
"--- @param b Vec3f\n"
@ -81,6 +88,7 @@ char gSmluaConstants[] = ""
" dest.z = a.z + b.z\n"
" return dest\n"
"end\n"
"\n"
"--- @param dest Vec3f\n"
"--- @param a number\n"
"--- @return Vec3f\n"
@ -90,6 +98,7 @@ char gSmluaConstants[] = ""
" dest.z = dest.z * a\n"
" return dest\n"
"end\n"
"\n"
"--- @param dest Vec3f\n"
"--- @return Vec3f\n"
"function vec3f_normalize(dest)\n"
@ -97,23 +106,28 @@ char gSmluaConstants[] = ""
" if divisor == 0 then\n"
" return dest\n"
" end\n"
"\n"
" local invsqrt = 1.0 / divisor\n"
" dest.x = dest.x * invsqrt\n"
" dest.y = dest.y * invsqrt\n"
" dest.z = dest.z * invsqrt\n"
"\n"
" return dest\n"
"end\n"
"\n"
"--- @param a Vec3f\n"
"--- @return number\n"
"function vec3f_length(a)\n"
" return math.sqrt(a.x * a.x + a.y * a.y + a.z * a.z)\n"
"end\n"
"\n"
"--- @param a Vec3f\n"
"--- @param b Vec3f\n"
"--- @return number\n"
"function vec3f_dot(a, b)\n"
" return a.x * b.x + a.y * b.y + a.z * b.z\n"
"end\n"
"\n"
"--- @param vec Vec3f\n"
"--- @param onto Vec3f\n"
"--- @return Vec3f\n"
@ -125,6 +139,7 @@ char gSmluaConstants[] = ""
" vec3f_mul(out, numerator / denominator)\n"
" return out\n"
"end\n"
"\n"
"--- @param v1 Vec3f\n"
"--- @param v2 Vec3f\n"
"--- @return number\n"
@ -134,6 +149,7 @@ char gSmluaConstants[] = ""
" dz = v1.z - v2.z\n"
" return math.sqrt(dx * dx + dy * dy + dz * dz)\n"
"end\n"
"\n"
"--- @param dest Vec3s\n"
"--- @param src Vec3s\n"
"--- @return Vec3s\n"
@ -143,6 +159,7 @@ char gSmluaConstants[] = ""
" dest.z = src.z\n"
" return dest\n"
"end\n"
"\n"
"--- @param dest Vec3s\n"
"--- @param x number\n"
"--- @param y number\n"
@ -154,6 +171,7 @@ char gSmluaConstants[] = ""
" dest.z = z\n"
" return dest\n"
"end\n"
"\n"
"--- @param dest Vec3s\n"
"--- @param a Vec3s\n"
"--- @return Vec3s\n"
@ -163,6 +181,7 @@ char gSmluaConstants[] = ""
" dest.z = dest.z + a.z\n"
" return dest\n"
"end\n"
"\n"
"--- @param dest Vec3s\n"
"--- @param a Vec3s\n"
"--- @param b Vec3s\n"
@ -173,6 +192,7 @@ char gSmluaConstants[] = ""
" dest.z = a.z + b.z\n"
" return dest\n"
"end\n"
"\n"
"--- @param dest Vec3s\n"
"--- @param a number\n"
"--- @return Vec3s\n"
@ -182,6 +202,7 @@ char gSmluaConstants[] = ""
" dest.z = dest.z * a\n"
" return dest\n"
"end\n"
"\n"
"--- @param v1 Vec3s\n"
"--- @param v2 Vec3s\n"
"--- @return number\n"
@ -191,6 +212,7 @@ char gSmluaConstants[] = ""
" dz = v1.z - v2.z\n"
" return math.sqrt(dx * dx + dy * dy + dz * dz)\n"
"end\n"
"\n"
"--- @param current number\n"
"--- @param target number\n"
"--- @param inc number\n"
@ -210,6 +232,7 @@ char gSmluaConstants[] = ""
" end\n"
" return current;\n"
"end\n"
"\n"
"--- @param current number\n"
"--- @param target number\n"
"--- @param inc number\n"
@ -227,6 +250,7 @@ char gSmluaConstants[] = ""
" current = target\n"
" end\n"
" end\n"
"\n"
" -- keep within 32 bits\n"
" if current > 2147483647 then\n"
" current = -2147483648 + (current - 2147483647)\n"
@ -235,6 +259,7 @@ char gSmluaConstants[] = ""
" end\n"
" return current;\n"
"end\n"
"\n"
"--- @param bank number\n"
"--- @param soundID number\n"
"--- @param priority number\n"
@ -244,9 +269,11 @@ char gSmluaConstants[] = ""
" if flags == nil then flags = 0 end\n"
" return (bank << 28) | (soundID << 16) | (priority << 8) | flags | SOUND_STATUS_WAITING\n"
"end\n"
"\n"
"-------------\n"
"-- courses --\n"
"-------------\n"
"\n"
"--- @type integer\n"
"COURSE_NONE = 0\n"
"--- @type integer\n"
@ -1278,6 +1305,9 @@ char gSmluaConstants[] = ""
"FONT_MENU = 1\n"
"FONT_HUD = 2\n"
"FONT_COUNT = 3\n"
"SEQ_PLAYER_LEVEL = 0\n"
"SEQ_PLAYER_ENV = 1\n"
"SEQ_PLAYER_SFX = 2\n"
"GRAPH_RENDER_ACTIVE = (1 << 0)\n"
"GRAPH_RENDER_CHILDREN_FIRST = (1 << 1)\n"
"GRAPH_RENDER_BILLBOARD = (1 << 2)\n"
@ -1487,6 +1517,7 @@ char gSmluaConstants[] = ""
"WARP_TYPE_CHANGE_LEVEL = 1\n"
"WARP_TYPE_CHANGE_AREA = 2\n"
"WARP_TYPE_SAME_AREA = 3\n"
"PRESS_START_DEMO_TIMER = 800\n"
"HUD_DISPLAY_FLAG_LIVES = 0x0001\n"
"HUD_DISPLAY_FLAG_COIN_COUNT = 0x0002\n"
"HUD_DISPLAY_FLAG_STAR_COUNT = 0x0004\n"

View file

@ -12197,6 +12197,44 @@ int smlua_func_seq_player_unlower_volume(lua_State* L) {
return 1;
}
int smlua_func_sound_banks_disable(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", "sound_banks_disable", 2, top);
return 0;
}
u8 player = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "sound_banks_disable"); return 0; }
u16 bankMask = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "sound_banks_disable"); return 0; }
sound_banks_disable(player, bankMask);
return 1;
}
int smlua_func_sound_banks_enable(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", "sound_banks_enable", 2, top);
return 0;
}
u8 player = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 1, "sound_banks_enable"); return 0; }
u16 bankMask = smlua_to_integer(L, 2);
if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter %u for function '%s'", 2, "sound_banks_enable"); return 0; }
sound_banks_enable(player, bankMask);
return 1;
}
int smlua_func_stop_background_music(lua_State* L) {
if (L == NULL) { return 0; }
@ -29619,6 +29657,8 @@ void smlua_bind_functions_autogen(void) {
smlua_bind_function(L, "seq_player_fade_out", smlua_func_seq_player_fade_out);
smlua_bind_function(L, "seq_player_lower_volume", smlua_func_seq_player_lower_volume);
smlua_bind_function(L, "seq_player_unlower_volume", smlua_func_seq_player_unlower_volume);
smlua_bind_function(L, "sound_banks_disable", smlua_func_sound_banks_disable);
smlua_bind_function(L, "sound_banks_enable", smlua_func_sound_banks_enable);
smlua_bind_function(L, "stop_background_music", smlua_func_stop_background_music);
smlua_bind_function(L, "stop_sound", smlua_func_stop_sound);
smlua_bind_function(L, "stop_sounds_from_source", smlua_func_stop_sounds_from_source);