Fix compile errors / run autogen

This commit is contained in:
MysterD 2022-03-29 21:12:42 -07:00
parent dec4d0c51c
commit 2115e4358d
7 changed files with 186 additions and 35 deletions

View file

@ -2142,6 +2142,12 @@ function is_player_active(m)
-- ...
end
--- @param m MarioState
--- @return integer
function is_player_in_local_area(m)
-- ...
end
--- @param obj Object
--- @param x number
--- @param y number
@ -2642,6 +2648,14 @@ function random_mod_offset(base, step, mod)
-- ...
end
--- @param threshold number
--- @param distanceToPlayer Pointer_integer
--- @param angleToPlayer Pointer_integer
--- @return nil
function treat_far_home_as_mario(threshold, distanceToPlayer, angleToPlayer)
-- ...
end
--- @param x0 integer
--- @param x1 integer
--- @return integer
@ -3475,6 +3489,11 @@ function enable_time_stop()
-- ...
end
--- @return nil
function enable_time_stop_if_alone()
-- ...
end
--- @return nil
function enable_time_stop_including_mario()
-- ...
@ -3912,6 +3931,12 @@ function set_time_stop_flags(flags)
-- ...
end
--- @param flags integer
--- @return nil
function set_time_stop_flags_if_alone(flags)
-- ...
end
--- @param x integer
--- @return integer
function signum_positive(x)

View file

@ -31,6 +31,7 @@
--- @field public instantWarps InstantWarp
--- @field public localAreaTimer integer
--- @field public macroObjects Pointer_integer
--- @field public macroObjectsAltered Pointer_integer
--- @field public musicParam integer
--- @field public musicParam2 integer
--- @field public objectSpawnInfos SpawnInfo
@ -1326,6 +1327,7 @@
--- @field public prevObj Object
--- @field public respawnInfoType integer
--- @field public unused1 integer
--- @field public usingObj Object
--- @class ObjectHitbox
--- @field public damageOrCoinValue integer

View file

@ -399,6 +399,7 @@
- [is_nearest_mario_state_to_object](#is_nearest_mario_state_to_object)
- [is_nearest_player_to_object](#is_nearest_player_to_object)
- [is_player_active](#is_player_active)
- [is_player_in_local_area](#is_player_in_local_area)
- [is_point_close_to_object](#is_point_close_to_object)
- [is_point_within_radius_of_mario](#is_point_within_radius_of_mario)
- [nearest_mario_state_to_object](#nearest_mario_state_to_object)
@ -472,6 +473,7 @@
- [platform_on_track_update_pos_or_spawn_ball](#platform_on_track_update_pos_or_spawn_ball)
- [random_linear_offset](#random_linear_offset)
- [random_mod_offset](#random_mod_offset)
- [treat_far_home_as_mario](#treat_far_home_as_mario)
<br />
@ -614,6 +616,7 @@
- [dist_between_object_and_point](#dist_between_object_and_point)
- [dist_between_objects](#dist_between_objects)
- [enable_time_stop](#enable_time_stop)
- [enable_time_stop_if_alone](#enable_time_stop_if_alone)
- [enable_time_stop_including_mario](#enable_time_stop_including_mario)
- [find_unimportant_object](#find_unimportant_object)
- [geo_offset_klepto_debug](#geo_offset_klepto_debug)
@ -676,6 +679,7 @@
- [random_f32_around_zero](#random_f32_around_zero)
- [set_mario_interact_hoot_if_in_range](#set_mario_interact_hoot_if_in_range)
- [set_time_stop_flags](#set_time_stop_flags)
- [set_time_stop_flags_if_alone](#set_time_stop_flags_if_alone)
- [signum_positive](#signum_positive)
- [spawn_base_star_with_no_lvl_exit](#spawn_base_star_with_no_lvl_exit)
- [spawn_mist_particles](#spawn_mist_particles)
@ -7447,6 +7451,26 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
<br />
## [is_player_in_local_area](#is_player_in_local_area)
### Lua Example
`local integerValue = is_player_in_local_area(m)`
### Parameters
| Field | Type |
| ----- | ---- |
| m | [MarioState](structs.md#MarioState) |
### Returns
- `integer`
### C Prototype
`u8 is_player_in_local_area(struct MarioState* m);`
[:arrow_up_small:](#)
<br />
## [is_point_close_to_object](#is_point_close_to_object)
### Lua Example
@ -8908,6 +8932,28 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
<br />
## [treat_far_home_as_mario](#treat_far_home_as_mario)
### Lua Example
`treat_far_home_as_mario(threshold, distanceToPlayer, angleToPlayer)`
### Parameters
| Field | Type |
| ----- | ---- |
| threshold | `number` |
| distanceToPlayer | `Pointer` <`integer`> |
| angleToPlayer | `Pointer` <`integer`> |
### Returns
- None
### C Prototype
`void treat_far_home_as_mario(f32 threshold, s32* distanceToPlayer, s32* angleToPlayer);`
[:arrow_up_small:](#)
<br />
---
# functions from object_helpers.c
@ -11619,6 +11665,24 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
<br />
## [enable_time_stop_if_alone](#enable_time_stop_if_alone)
### Lua Example
`enable_time_stop_if_alone()`
### Parameters
- None
### Returns
- None
### C Prototype
`void enable_time_stop_if_alone(void);`
[:arrow_up_small:](#)
<br />
## [enable_time_stop_including_mario](#enable_time_stop_including_mario)
### Lua Example
@ -12921,6 +12985,26 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
<br />
## [set_time_stop_flags_if_alone](#set_time_stop_flags_if_alone)
### Lua Example
`set_time_stop_flags_if_alone(flags)`
### Parameters
| Field | Type |
| ----- | ---- |
| flags | `integer` |
### Returns
- None
### C Prototype
`void set_time_stop_flags_if_alone(s32 flags);`
[:arrow_up_small:](#)
<br />
## [signum_positive](#signum_positive)
### Lua Example

View file

@ -113,6 +113,7 @@
| instantWarps | [InstantWarp](structs.md#InstantWarp) | |
| localAreaTimer | `integer` | read-only |
| macroObjects | `Pointer` <`integer`> | read-only |
| macroObjectsAltered | `Pointer` <`integer`> | read-only |
| musicParam | `integer` | |
| musicParam2 | `integer` | |
| objectSpawnInfos | [SpawnInfo](structs.md#SpawnInfo) | |
@ -878,6 +879,7 @@
| prevObj | [Object](structs.md#Object) | |
| respawnInfoType | `integer` | |
| unused1 | `integer` | |
| usingObj | [Object](structs.md#Object) | |
### Object-Independent Data Fields
| Field | Type | Access |

View file

@ -508,7 +508,7 @@ s32 act_reading_automatic_dialog(struct MarioState *m) {
if (m->actionState == 9) {
// only show dialog for local player
if (m == &gMarioStates[0]) {
actionArg = m->actionArg;
u32 actionArg = m->actionArg;
if (GET_HIGH_U16_OF_32(actionArg) == 0) {
create_dialog_box(GET_LOW_U16_OF_32(actionArg));
} else {
@ -1428,13 +1428,14 @@ s32 act_bbh_enter_spin(struct MarioState *m) {
switch (m->actionState) {
case 0:
{
f32 floorDist = 512.0f - (m->pos[1] - m->floorHeight);
m->vel[1] = floorDist > 0 ? sqrtf(4.0f * floorDist + 1.0f) - 1.0f : 2.0f;
m->actionState = 1;
m->actionTimer = 100;
}
// fall through
case 1:
m->faceAngle[1] = atan2s(cageDZ, cageDX);
mario_set_forward_vel(m, forwardVel);

View file

@ -46,7 +46,7 @@ static struct LuaObjectField sAnimationFields[LUA_ANIMATION_FIELD_COUNT] = {
{ "values", LVT_S16_P, offsetof(struct Animation, values), true, LOT_POINTER },
};
#define LUA_AREA_FIELD_COUNT 14
#define LUA_AREA_FIELD_COUNT 15
static struct LuaObjectField sAreaFields[LUA_AREA_FIELD_COUNT] = {
// { "cachedBehaviors", LOT_???, offsetof(struct Area, cachedBehaviors), false, LOT_??? }, <--- UNIMPLEMENTED
// { "cachedPositions", LOT_???, offsetof(struct Area, cachedPositions), false, LOT_??? }, <--- UNIMPLEMENTED
@ -57,6 +57,7 @@ static struct LuaObjectField sAreaFields[LUA_AREA_FIELD_COUNT] = {
{ "instantWarps", LVT_COBJECT_P, offsetof(struct Area, instantWarps), false, LOT_INSTANTWARP },
{ "localAreaTimer", LVT_U32, offsetof(struct Area, localAreaTimer), true, LOT_NONE },
{ "macroObjects", LVT_S16_P, offsetof(struct Area, macroObjects), true, LOT_POINTER },
{ "macroObjectsAltered", LVT_U8_P, offsetof(struct Area, macroObjectsAltered), true, LOT_POINTER },
{ "musicParam", LVT_U16, offsetof(struct Area, musicParam), false, LOT_NONE },
{ "musicParam2", LVT_U16, offsetof(struct Area, musicParam2), false, LOT_NONE },
{ "objectSpawnInfos", LVT_COBJECT_P, offsetof(struct Area, objectSpawnInfos), false, LOT_SPAWNINFO },
@ -681,7 +682,7 @@ static struct LuaObjectField sNetworkPlayerFields[LUA_NETWORK_PLAYER_FIELD_COUNT
{ "type", LVT_U8, offsetof(struct NetworkPlayer, type), true, LOT_NONE },
};
#define LUA_OBJECT_FIELD_COUNT 751
#define LUA_OBJECT_FIELD_COUNT 752
static struct LuaObjectField sObjectFields[LUA_OBJECT_FIELD_COUNT] = {
{ "activeFlags", LVT_S16, offsetof(struct Object, activeFlags), false, LOT_NONE },
{ "areaTimer", LVT_U32, offsetof(struct Object, areaTimer), false, LOT_NONE },
@ -1446,6 +1447,7 @@ static struct LuaObjectField sObjectFields[LUA_OBJECT_FIELD_COUNT] = {
{ "respawnInfoType", LVT_S16, offsetof(struct Object, respawnInfoType), false, LOT_NONE },
// { "transform", LVT_???, offsetof(struct Object, transform), false, LOT_??? }, <--- UNIMPLEMENTED
{ "unused1", LVT_U32, offsetof(struct Object, unused1), false, LOT_NONE },
{ "usingObj", LVT_COBJECT_P, offsetof(struct Object, usingObj), false, LOT_OBJECT },
};
#define LUA_OBJECT_HITBOX_FIELD_COUNT 9

View file

@ -33,7 +33,7 @@
int smlua_func_get_behavior_from_id(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
s32 id = smlua_to_integer(L, 1);
int id = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
smlua_push_pointer(L, LVT_BEHAVIORSCRIPT_P, (void*)get_behavior_from_id(id));
@ -4936,6 +4936,18 @@ int smlua_func_is_player_active(lua_State* L) {
return 1;
}
int smlua_func_is_player_in_local_area(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
struct MarioState* m = (struct MarioState*)smlua_to_cobject(L, 1, LOT_MARIOSTATE);
if (!gSmLuaConvertSuccess) { return 0; }
extern u8 is_player_in_local_area(struct MarioState* m);
lua_pushinteger(L, is_player_in_local_area(m));
return 1;
}
int smlua_func_is_point_close_to_object(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 5)) { return 0; }
@ -5950,23 +5962,21 @@ int smlua_func_random_mod_offset(lua_State* L) {
return 1;
}
/*
int smlua_func_treat_far_home_as_mario(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 3)) { return 0; }
f32 threshold = smlua_to_number(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
// int* distanceToPlayer = (int*)smlua_to_cobject(L, 2, LOT_???); <--- UNIMPLEMENTED
s32* distanceToPlayer = (s32*)smlua_to_cpointer(L, 2, LVT_S32_P);
if (!gSmLuaConvertSuccess) { return 0; }
// int* angleToPlayer = (int*)smlua_to_cobject(L, 3, LOT_???); <--- UNIMPLEMENTED
s32* angleToPlayer = (s32*)smlua_to_cpointer(L, 3, LVT_S32_P);
if (!gSmLuaConvertSuccess) { return 0; }
extern void treat_far_home_as_mario(f32 threshold, int* distanceToPlayer, int* angleToPlayer);
extern void treat_far_home_as_mario(f32 threshold, s32* distanceToPlayer, s32* angleToPlayer);
treat_far_home_as_mario(threshold, distanceToPlayer, angleToPlayer);
return 1;
}
*/
//////////////////////
// object_helpers.c //
@ -7656,6 +7666,16 @@ int smlua_func_enable_time_stop(UNUSED lua_State* L) {
return 1;
}
int smlua_func_enable_time_stop_if_alone(UNUSED lua_State* L) {
if(!smlua_functions_valid_param_count(L, 0)) { return 0; }
extern void enable_time_stop_if_alone(void);
enable_time_stop_if_alone();
return 1;
}
int smlua_func_enable_time_stop_including_mario(UNUSED lua_State* L) {
if(!smlua_functions_valid_param_count(L, 0)) { return 0; }
@ -8760,6 +8780,18 @@ int smlua_func_set_time_stop_flags(lua_State* L) {
return 1;
}
int smlua_func_set_time_stop_flags_if_alone(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
s32 flags = smlua_to_integer(L, 1);
if (!gSmLuaConvertSuccess) { return 0; }
extern void set_time_stop_flags_if_alone(s32 flags);
set_time_stop_flags_if_alone(flags);
return 1;
}
int smlua_func_signum_positive(lua_State* L) {
if(!smlua_functions_valid_param_count(L, 1)) { return 0; }
@ -10297,6 +10329,7 @@ void smlua_bind_functions_autogen(void) {
smlua_bind_function(L, "is_nearest_mario_state_to_object", smlua_func_is_nearest_mario_state_to_object);
smlua_bind_function(L, "is_nearest_player_to_object", smlua_func_is_nearest_player_to_object);
smlua_bind_function(L, "is_player_active", smlua_func_is_player_active);
smlua_bind_function(L, "is_player_in_local_area", smlua_func_is_player_in_local_area);
smlua_bind_function(L, "is_point_close_to_object", smlua_func_is_point_close_to_object);
smlua_bind_function(L, "is_point_within_radius_of_mario", smlua_func_is_point_within_radius_of_mario);
smlua_bind_function(L, "nearest_mario_state_to_object", smlua_func_nearest_mario_state_to_object);
@ -10368,7 +10401,7 @@ void smlua_bind_functions_autogen(void) {
smlua_bind_function(L, "platform_on_track_update_pos_or_spawn_ball", smlua_func_platform_on_track_update_pos_or_spawn_ball);
smlua_bind_function(L, "random_linear_offset", smlua_func_random_linear_offset);
smlua_bind_function(L, "random_mod_offset", smlua_func_random_mod_offset);
//smlua_bind_function(L, "treat_far_home_as_mario", smlua_func_treat_far_home_as_mario); <--- UNIMPLEMENTED
smlua_bind_function(L, "treat_far_home_as_mario", smlua_func_treat_far_home_as_mario);
// object_helpers.c
smlua_bind_function(L, "abs_angle_diff", smlua_func_abs_angle_diff);
@ -10510,6 +10543,7 @@ void smlua_bind_functions_autogen(void) {
smlua_bind_function(L, "dist_between_object_and_point", smlua_func_dist_between_object_and_point);
smlua_bind_function(L, "dist_between_objects", smlua_func_dist_between_objects);
smlua_bind_function(L, "enable_time_stop", smlua_func_enable_time_stop);
smlua_bind_function(L, "enable_time_stop_if_alone", smlua_func_enable_time_stop_if_alone);
smlua_bind_function(L, "enable_time_stop_including_mario", smlua_func_enable_time_stop_including_mario);
smlua_bind_function(L, "find_unimportant_object", smlua_func_find_unimportant_object);
smlua_bind_function(L, "geo_offset_klepto_debug", smlua_func_geo_offset_klepto_debug);
@ -10583,6 +10617,7 @@ void smlua_bind_functions_autogen(void) {
smlua_bind_function(L, "random_f32_around_zero", smlua_func_random_f32_around_zero);
smlua_bind_function(L, "set_mario_interact_hoot_if_in_range", smlua_func_set_mario_interact_hoot_if_in_range);
smlua_bind_function(L, "set_time_stop_flags", smlua_func_set_time_stop_flags);
smlua_bind_function(L, "set_time_stop_flags_if_alone", smlua_func_set_time_stop_flags_if_alone);
smlua_bind_function(L, "signum_positive", smlua_func_signum_positive);
smlua_bind_function(L, "spawn_base_star_with_no_lvl_exit", smlua_func_spawn_base_star_with_no_lvl_exit);
smlua_bind_function(L, "spawn_mist_particles", smlua_func_spawn_mist_particles);