Expose level_trigger_warp and related constants (#197)

This commit is contained in:
Agent X 2022-09-19 22:51:27 -04:00 committed by GitHub
parent 567e702e98
commit 1241c56ed9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 365 additions and 4 deletions

View file

@ -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 = {

View file

@ -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 = {

View file

@ -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

View file

@ -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)

View file

@ -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 @@
<br />
## [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:](#)
<br />
## [mario_animation_ids.h](#mario_animation_ids.h)
### [enum MarioAnimID](#MarioAnimID)

View file

@ -3358,6 +3358,33 @@
<br />
---
# functions from level_update.h
<br />
## [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:](#)
<br />
---
# functions from mario.h

View file

@ -788,6 +788,11 @@
<br />
- level_update.h
- [level_trigger_warp](functions-3.md#level_trigger_warp)
<br />
- mario.h
- [adjust_sound_for_speed](functions-3.md#adjust_sound_for_speed)
- [check_common_action_exits](functions-3.md#check_common_action_exits)

View file

@ -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"

View file

@ -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);