diff --git a/autogen/convert_constants.py b/autogen/convert_constants.py index 72bacd2e2..b4e6e5425 100644 --- a/autogen/convert_constants.py +++ b/autogen/convert_constants.py @@ -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 = [ diff --git a/autogen/convert_functions.py b/autogen/convert_functions.py index 85cfc9cc9..e7d51fd03 100644 --- a/autogen/convert_functions.py +++ b/autogen/convert_functions.py @@ -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" ], diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index 72b2e8ff9..890c4608f 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -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 diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index af7a8f1dd..d6859ab4a 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -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) diff --git a/docs/lua/constants.md b/docs/lua/constants.md index cbcd6ed00..f7d068b12 100644 --- a/docs/lua/constants.md +++ b/docs/lua/constants.md @@ -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 @@
+## [external.h](#external.h) +- SEQ_PLAYER_ENV +- SEQ_PLAYER_LEVEL +- SEQ_PLAYER_SFX + +[:arrow_up_small:](#) + +
+ ## [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 diff --git a/docs/lua/functions-3.md b/docs/lua/functions-3.md index f482ff286..2a8ef038d 100644 --- a/docs/lua/functions-3.md +++ b/docs/lua/functions-3.md @@ -2806,6 +2806,48 @@
+## [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:](#) + +
+ +## [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:](#) + +
+ ## [stop_background_music](#stop_background_music) ### Lua Example diff --git a/docs/lua/functions.md b/docs/lua/functions.md index 7e9ae5cac..6de0e34c2 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -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) diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index 0c54bada6..214c917fd 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -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" diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index 9cb90305c..60eb16bbc 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -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);