diff --git a/autogen/convert_constants.py b/autogen/convert_constants.py index 9c7ebfa5c..73b9ed176 100644 --- a/autogen/convert_constants.py +++ b/autogen/convert_constants.py @@ -36,7 +36,8 @@ in_files = [ "src/game/obj_behaviors_2.h", "include/dialog_ids.h", "include/seq_ids.h", - "include/surface_terrains.h" + "include/surface_terrains.h", + "src/game/level_update.h" ] exclude_constants = { diff --git a/autogen/convert_functions.py b/autogen/convert_functions.py index 7054bed05..449cf62c3 100644 --- a/autogen/convert_functions.py +++ b/autogen/convert_functions.py @@ -52,6 +52,7 @@ in_files = [ "src/game/object_list_processor.h", "src/game/behavior_actions.h", "src/game/mario_misc.h", + "src/game/level_update.h" ] override_allowed_functions = { @@ -62,6 +63,7 @@ override_allowed_functions = { "src/pc/lua/utils/smlua_model_utils.h": [ "smlua_model_util_get_id" ], "src/game/object_list_processor.h": [ "set_object_respawn_info_bits" ], "src/game/mario_misc.h": [ "bhv_toad.*", "bhv_unlock_door.*" ], + "src/game/level_update.h": [ "level_trigger_warp" ], } override_disallowed_functions = { diff --git a/autogen/lua_definitions/constants.lua b/autogen/lua_definitions/constants.lua index 50fdbbb9e..c0bbb75c6 100644 --- a/autogen/lua_definitions/constants.lua +++ b/autogen/lua_definitions/constants.lua @@ -2691,16 +2691,25 @@ CT_MAX = 5 --- @class PlayerParts --- @type PlayerParts -SHIRT = 0 +PANTS = 0 --- @type PlayerParts -PANTS = 1 +SHIRT = 1 --- @type PlayerParts GLOVES = 2 --- @type PlayerParts -PLAYER_PART_MAX = 3 +SHOES = 3 + +--- @type PlayerParts +HAIR = 4 + +--- @type PlayerParts +SKIN = 5 + +--- @type PlayerParts +PLAYER_PART_MAX = 6 --- @class DialogId @@ -3734,6 +3743,173 @@ LEVEL_UNKNOWN_38 = 38 --- @type LevelNum LEVEL_COUNT = 39 +--- @type integer +MARIO_SPAWN_AIRBORNE = 0x12 + +--- @type integer +MARIO_SPAWN_AIRBORNE_DEATH = 0x23 + +--- @type integer +MARIO_SPAWN_AIRBORNE_STAR_COLLECT = 0x22 + +--- @type integer +MARIO_SPAWN_DEATH = 0x15 + +--- @type integer +MARIO_SPAWN_DOOR_WARP = 0x01 + +--- @type integer +MARIO_SPAWN_FLYING = 0x17 + +--- @type integer +MARIO_SPAWN_HARD_AIR_KNOCKBACK = 0x13 + +--- @type integer +MARIO_SPAWN_INSTANT_ACTIVE = 0x10 + +--- @type integer +MARIO_SPAWN_LAUNCH_DEATH = 0x25 + +--- @type integer +MARIO_SPAWN_LAUNCH_STAR_COLLECT = 0x24 + +--- @type integer +MARIO_SPAWN_PAINTING_DEATH = 0x21 + +--- @type integer +MARIO_SPAWN_PAINTING_STAR_COLLECT = 0x20 + +--- @type integer +MARIO_SPAWN_SPIN_AIRBORNE = 0x16 + +--- @type integer +MARIO_SPAWN_SPIN_AIRBORNE_CIRCLE = 0x14 + +--- @type integer +MARIO_SPAWN_SWIMMING = 0x11 + +--- @type integer +MARIO_SPAWN_TELEPORT = 0x04 + +--- @type integer +MARIO_SPAWN_UNKNOWN_02 = 0x02 + +--- @type integer +MARIO_SPAWN_UNKNOWN_03 = 0x03 + +--- @type integer +MARIO_SPAWN_UNKNOWN_27 = 0x27 + +--- @type integer +TIMER_CONTROL_HIDE = 3 + +--- @type integer +TIMER_CONTROL_SHOW = 0 + +--- @type integer +TIMER_CONTROL_START = 1 + +--- @type integer +TIMER_CONTROL_STOP = 2 + +--- @type integer +WARP_OP_CREDITS_END = 0x15 + +--- @type integer +WARP_OP_CREDITS_NEXT = 0x18 + +--- @type integer +WARP_OP_CREDITS_START = 0x17 + +--- @type integer +WARP_OP_DEATH = 0x12 + +--- @type integer +WARP_OP_DEMO_END = 0x19 + +--- @type integer +WARP_OP_DEMO_NEXT = 0x16 + +--- @type integer +WARP_OP_EXIT = 0x21 + +--- @type integer +WARP_OP_FORCE_SYNC = 0x20 + +--- @type integer +WARP_OP_GAME_OVER = 0x14 + +--- @type integer +WARP_OP_LOOK_UP = 0x01 + +--- @type integer +WARP_OP_NONE = 0x00 + +--- @type integer +WARP_OP_SPIN_SHRINK = 0x02 + +--- @type integer +WARP_OP_STAR_EXIT = 0x11 + +--- @type integer +WARP_OP_TELEPORT = 0x05 + +--- @type integer +WARP_OP_TRIGGERS_LEVEL_SELECT = 0x10 + +--- @type integer +WARP_OP_WARP_DOOR = 0x03 + +--- @type integer +WARP_OP_WARP_FLOOR = 0x13 + +--- @type integer +WARP_OP_WARP_OBJECT = 0x04 + +--- @type integer +WARP_TYPE_CHANGE_AREA = 2 + +--- @type integer +WARP_TYPE_CHANGE_LEVEL = 1 + +--- @type integer +WARP_TYPE_NOT_WARPING = 0 + +--- @type integer +WARP_TYPE_SAME_AREA = 3 + +--- @class HUDDisplayFlag + +--- @type HUDDisplayFlag +HUD_DISPLAY_FLAG_LIVES = 0x0001 + +--- @type HUDDisplayFlag +HUD_DISPLAY_FLAG_COIN_COUNT = 0x0002 + +--- @type HUDDisplayFlag +HUD_DISPLAY_FLAG_STAR_COUNT = 0x0004 + +--- @type HUDDisplayFlag +HUD_DISPLAY_FLAG_CAMERA_AND_POWER = 0x0008 + +--- @type HUDDisplayFlag +HUD_DISPLAY_FLAG_KEYS = 0x0010 + +--- @type HUDDisplayFlag +HUD_DISPLAY_FLAG_UNKNOWN_0020 = 0x0020 + +--- @type HUDDisplayFlag +HUD_DISPLAY_FLAG_TIMER = 0x0040 + +--- @type HUDDisplayFlag +HUD_DISPLAY_FLAG_EMPHASIZE_POWER = 0x8000 + +--- @type HUDDisplayFlag +HUD_DISPLAY_NONE = 0x0000 + +--- @type HUDDisplayFlag +HUD_DISPLAY_DEFAULT = HUD_DISPLAY_FLAG_LIVES | HUD_DISPLAY_FLAG_COIN_COUNT | HUD_DISPLAY_FLAG_STAR_COUNT | HUD_DISPLAY_FLAG_CAMERA_AND_POWER | HUD_DISPLAY_FLAG_KEYS | HUD_DISPLAY_FLAG_UNKNOWN_0020 + --- @class MarioAnimID --- @type MarioAnimID diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index bd5178cff..be1df1fb5 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -4002,6 +4002,13 @@ function get_star_name_sm64(courseNum, starNum, charCase) -- ... end +--- @param m MarioState +--- @param warpOp integer +--- @return integer +function level_trigger_warp(m, warpOp) + -- ... +end + --- @param m MarioState --- @return nil function adjust_sound_for_speed(m) diff --git a/docs/lua/constants.md b/docs/lua/constants.md index 0b39917e0..f09b972a2 100644 --- a/docs/lua/constants.md +++ b/docs/lua/constants.md @@ -21,6 +21,8 @@ - [enum InteractionType](#enum-InteractionType) - [level_defines.h](#level_definesh) - [enum LevelNum](#enum-LevelNum) +- [level_update.h](#level_updateh) + - [enum HUDDisplayFlag](#enum-HUDDisplayFlag) - [mario_animation_ids.h](#mario_animation_idsh) - [enum MarioAnimID](#enum-MarioAnimID) - [mario_geo_switch_case_ids.h](#mario_geo_switch_case_idsh) @@ -1289,6 +1291,71 @@
+## [level_update.h](#level_update.h) +- MARIO_SPAWN_AIRBORNE +- MARIO_SPAWN_AIRBORNE_DEATH +- MARIO_SPAWN_AIRBORNE_STAR_COLLECT +- MARIO_SPAWN_DEATH +- MARIO_SPAWN_DOOR_WARP +- MARIO_SPAWN_FLYING +- MARIO_SPAWN_HARD_AIR_KNOCKBACK +- MARIO_SPAWN_INSTANT_ACTIVE +- MARIO_SPAWN_LAUNCH_DEATH +- MARIO_SPAWN_LAUNCH_STAR_COLLECT +- MARIO_SPAWN_PAINTING_DEATH +- MARIO_SPAWN_PAINTING_STAR_COLLECT +- MARIO_SPAWN_SPIN_AIRBORNE +- MARIO_SPAWN_SPIN_AIRBORNE_CIRCLE +- MARIO_SPAWN_SWIMMING +- MARIO_SPAWN_TELEPORT +- MARIO_SPAWN_UNKNOWN_02 +- MARIO_SPAWN_UNKNOWN_03 +- MARIO_SPAWN_UNKNOWN_27 +- TIMER_CONTROL_HIDE +- TIMER_CONTROL_SHOW +- TIMER_CONTROL_START +- TIMER_CONTROL_STOP +- WARP_OP_CREDITS_END +- WARP_OP_CREDITS_NEXT +- WARP_OP_CREDITS_START +- WARP_OP_DEATH +- WARP_OP_DEMO_END +- WARP_OP_DEMO_NEXT +- WARP_OP_EXIT +- WARP_OP_FORCE_SYNC +- WARP_OP_GAME_OVER +- WARP_OP_LOOK_UP +- WARP_OP_NONE +- WARP_OP_SPIN_SHRINK +- WARP_OP_STAR_EXIT +- WARP_OP_TELEPORT +- WARP_OP_TRIGGERS_LEVEL_SELECT +- WARP_OP_WARP_DOOR +- WARP_OP_WARP_FLOOR +- WARP_OP_WARP_OBJECT +- WARP_TYPE_CHANGE_AREA +- WARP_TYPE_CHANGE_LEVEL +- WARP_TYPE_NOT_WARPING +- WARP_TYPE_SAME_AREA + +### [enum HUDDisplayFlag](#HUDDisplayFlag) +| Identifier | Value | +| :--------- | :---- | +| HUD_DISPLAY_FLAG_LIVES | 0x0001 | +| HUD_DISPLAY_FLAG_COIN_COUNT | 0x0002 | +| HUD_DISPLAY_FLAG_STAR_COUNT | 0x0004 | +| HUD_DISPLAY_FLAG_CAMERA_AND_POWER | 0x0008 | +| HUD_DISPLAY_FLAG_KEYS | 0x0010 | +| HUD_DISPLAY_FLAG_UNKNOWN_0020 | 0x0020 | +| HUD_DISPLAY_FLAG_TIMER | 0x0040 | +| HUD_DISPLAY_FLAG_EMPHASIZE_POWER | 0x8000 | +| HUD_DISPLAY_NONE | 0x0000 | +| HUD_DISPLAY_DEFAULT | HUD_DISPLAY_FLAG_LIVES | HUD_DISPLAY_FLAG_COIN_COUNT | HUD_DISPLAY_FLAG_STAR_COUNT | HUD_DISPLAY_FLAG_CAMERA_AND_POWER | HUD_DISPLAY_FLAG_KEYS | HUD_DISPLAY_FLAG_UNKNOWN_0020 | + +[:arrow_up_small:](#) + +
+ ## [mario_animation_ids.h](#mario_animation_ids.h) ### [enum MarioAnimID](#MarioAnimID) diff --git a/docs/lua/functions-3.md b/docs/lua/functions-3.md index d24db7f95..f9b4e6020 100644 --- a/docs/lua/functions-3.md +++ b/docs/lua/functions-3.md @@ -3358,6 +3358,33 @@
+--- +# functions from level_update.h + +
+ + +## [level_trigger_warp](#level_trigger_warp) + +### Lua Example +`local integerValue = level_trigger_warp(m, warpOp)` + +### Parameters +| Field | Type | +| ----- | ---- | +| m | [MarioState](structs.md#MarioState) | +| warpOp | `integer` | + +### Returns +- `integer` + +### C Prototype +`s16 level_trigger_warp(struct MarioState *m, s32 warpOp);` + +[:arrow_up_small:](#) + +
+ --- # functions from mario.h diff --git a/docs/lua/functions.md b/docs/lua/functions.md index 8830f570b..ba5415e2c 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -788,6 +788,11 @@
+- level_update.h + - [level_trigger_warp](functions-3.md#level_trigger_warp) + +
+ - mario.h - [adjust_sound_for_speed](functions-3.md#adjust_sound_for_speed) - [check_common_action_exits](functions-3.md#check_common_action_exits) diff --git a/src/pc/lua/smlua_constants_autogen.c b/src/pc/lua/smlua_constants_autogen.c index 302124570..e22c3f91c 100644 --- a/src/pc/lua/smlua_constants_autogen.c +++ b/src/pc/lua/smlua_constants_autogen.c @@ -1436,6 +1436,61 @@ char gSmluaConstants[] = "" "LEVEL_UNKNOWN_37 = 37\n" "LEVEL_UNKNOWN_38 = 38\n" "LEVEL_COUNT = 39\n" +"TIMER_CONTROL_SHOW = 0\n" +"TIMER_CONTROL_START = 1\n" +"TIMER_CONTROL_STOP = 2\n" +"TIMER_CONTROL_HIDE = 3\n" +"WARP_OP_NONE = 0x00\n" +"WARP_OP_LOOK_UP = 0x01\n" +"WARP_OP_SPIN_SHRINK = 0x02\n" +"WARP_OP_WARP_DOOR = 0x03\n" +"WARP_OP_WARP_OBJECT = 0x04\n" +"WARP_OP_TELEPORT = 0x05\n" +"WARP_OP_STAR_EXIT = 0x11\n" +"WARP_OP_DEATH = 0x12\n" +"WARP_OP_WARP_FLOOR = 0x13\n" +"WARP_OP_GAME_OVER = 0x14\n" +"WARP_OP_CREDITS_END = 0x15\n" +"WARP_OP_DEMO_NEXT = 0x16\n" +"WARP_OP_CREDITS_START = 0x17\n" +"WARP_OP_CREDITS_NEXT = 0x18\n" +"WARP_OP_DEMO_END = 0x19\n" +"WARP_OP_FORCE_SYNC = 0x20\n" +"WARP_OP_EXIT = 0x21\n" +"WARP_OP_TRIGGERS_LEVEL_SELECT = 0x10\n" +"MARIO_SPAWN_DOOR_WARP = 0x01\n" +"MARIO_SPAWN_UNKNOWN_02 = 0x02\n" +"MARIO_SPAWN_UNKNOWN_03 = 0x03\n" +"MARIO_SPAWN_TELEPORT = 0x04\n" +"MARIO_SPAWN_INSTANT_ACTIVE = 0x10\n" +"MARIO_SPAWN_SWIMMING = 0x11\n" +"MARIO_SPAWN_AIRBORNE = 0x12\n" +"MARIO_SPAWN_HARD_AIR_KNOCKBACK = 0x13\n" +"MARIO_SPAWN_SPIN_AIRBORNE_CIRCLE = 0x14\n" +"MARIO_SPAWN_DEATH = 0x15\n" +"MARIO_SPAWN_SPIN_AIRBORNE = 0x16\n" +"MARIO_SPAWN_FLYING = 0x17\n" +"MARIO_SPAWN_PAINTING_STAR_COLLECT = 0x20\n" +"MARIO_SPAWN_PAINTING_DEATH = 0x21\n" +"MARIO_SPAWN_AIRBORNE_STAR_COLLECT = 0x22\n" +"MARIO_SPAWN_AIRBORNE_DEATH = 0x23\n" +"MARIO_SPAWN_LAUNCH_STAR_COLLECT = 0x24\n" +"MARIO_SPAWN_LAUNCH_DEATH = 0x25\n" +"MARIO_SPAWN_UNKNOWN_27 = 0x27\n" +"WARP_TYPE_NOT_WARPING = 0\n" +"WARP_TYPE_CHANGE_LEVEL = 1\n" +"WARP_TYPE_CHANGE_AREA = 2\n" +"WARP_TYPE_SAME_AREA = 3\n" +"HUD_DISPLAY_FLAG_LIVES = 0x0001\n" +"HUD_DISPLAY_FLAG_COIN_COUNT = 0x0002\n" +"HUD_DISPLAY_FLAG_STAR_COUNT = 0x0004\n" +"HUD_DISPLAY_FLAG_CAMERA_AND_POWER = 0x0008\n" +"HUD_DISPLAY_FLAG_KEYS = 0x0010\n" +"HUD_DISPLAY_FLAG_UNKNOWN_0020 = 0x0020\n" +"HUD_DISPLAY_FLAG_TIMER = 0x0040\n" +"HUD_DISPLAY_FLAG_EMPHASIZE_POWER = 0x8000\n" +"HUD_DISPLAY_NONE = 0x0000\n" +"HUD_DISPLAY_DEFAULT = HUD_DISPLAY_FLAG_LIVES | HUD_DISPLAY_FLAG_COIN_COUNT | HUD_DISPLAY_FLAG_STAR_COUNT | HUD_DISPLAY_FLAG_CAMERA_AND_POWER | HUD_DISPLAY_FLAG_KEYS | HUD_DISPLAY_FLAG_UNKNOWN_0020\n" "MARIO_ANIM_SLOW_LEDGE_GRAB = 0\n" "MARIO_ANIM_FALL_OVER_BACKWARDS = 1\n" "MARIO_ANIM_BACKWARD_AIR_KB = 2\n" diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index bf45d55af..b4fe52f91 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -31,6 +31,7 @@ #include "src/game/object_list_processor.h" #include "src/game/behavior_actions.h" #include "src/game/mario_misc.h" +#include "src/game/level_update.h" //////////////////////// @@ -8059,6 +8060,23 @@ int smlua_func_get_star_name_sm64(lua_State* L) { return 1; } + //////////////////// + // level_update.h // +//////////////////// + +int smlua_func_level_trigger_warp(lua_State* L) { + if(!smlua_functions_valid_param_count(L, 2)) { return 0; } + + struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 1 for function 'level_trigger_warp'"); return 0; } + s32 warpOp = smlua_to_integer(L, 2); + if (!gSmLuaConvertSuccess) { LOG_LUA("Failed to convert parameter 2 for function 'level_trigger_warp'"); return 0; } + + lua_pushinteger(L, level_trigger_warp(m, warpOp)); + + return 1; +} + ///////////// // mario.h // ///////////// @@ -18873,6 +18891,9 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "get_star_name_ascii", smlua_func_get_star_name_ascii); smlua_bind_function(L, "get_star_name_sm64", smlua_func_get_star_name_sm64); + // level_update.h + smlua_bind_function(L, "level_trigger_warp", smlua_func_level_trigger_warp); + // mario.h smlua_bind_function(L, "adjust_sound_for_speed", smlua_func_adjust_sound_for_speed); smlua_bind_function(L, "check_common_action_exits", smlua_func_check_common_action_exits);