diff --git a/autogen/convert_functions.py b/autogen/convert_functions.py index 687e56183..5cc1a078e 100644 --- a/autogen/convert_functions.py +++ b/autogen/convert_functions.py @@ -77,7 +77,7 @@ override_disallowed_functions = { "src/game/obj_behaviors_2.c": [ "wiggler_jumped_on_attack_handler", "huge_goomba_weakly_attacked" ], "src/game/spawn_sound.c": [ "spawner" ], "src/pc/lua/utils/smlua_obj_utils.h": [ "spawn_object_remember_field" ], - "src/game/camera.h": [ "update_camera", "init_camera", "stub_camera", "^reset_camera" ], + "src/game/camera.h": [ "update_camera", "init_camera", "stub_camera", "^reset_camera", "move_point_along_spline" ], } lua_function_params = { diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index 84799bc65..dd6559f41 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -248,15 +248,6 @@ function move_mario_head_c_up(c) -- ... end ---- @param p Vec3f ---- @param spline[] CutsceneSplinePoint ---- @param splineSegment Pointer_integer ---- @param progress Pointer_number ---- @return integer -function move_point_along_spline(p, spline[], splineSegment, progress) - -- ... -end - --- @param newPos Vec3f --- @param newFoc Vec3f --- @param curPos Vec3f diff --git a/docs/lua/functions.md b/docs/lua/functions.md index 7ea37196c..3352cb8c8 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -47,7 +47,6 @@ - [is_range_behind_surface](#is_range_behind_surface) - [is_within_100_units_of_mario](#is_within_100_units_of_mario) - [move_mario_head_c_up](#move_mario_head_c_up) - - [move_point_along_spline](#move_point_along_spline) - [next_lakitu_state](#next_lakitu_state) - [obj_rotate_towards_point](#obj_rotate_towards_point) - [object_pos_to_vec3f](#object_pos_to_vec3f) @@ -1599,29 +1598,6 @@ The `reliable` field will ensure that the packet arrives, but should be used spa
-## [move_point_along_spline](#move_point_along_spline) - -### Lua Example -`local integerValue = move_point_along_spline(p, spline[], splineSegment, progress)` - -### Parameters -| Field | Type | -| ----- | ---- | -| p | [Vec3f](structs.md#Vec3f) | -| spline[] | [CutsceneSplinePoint](structs.md#CutsceneSplinePoint) | -| splineSegment | `Pointer` <`integer`> | -| progress | `Pointer` <`number`> | - -### Returns -- `integer` - -### C Prototype -`s32 move_point_along_spline(Vec3f p, struct CutsceneSplinePoint spline[], s16 *splineSegment, f32 *progress);` - -[:arrow_up_small:](#) - -
- ## [next_lakitu_state](#next_lakitu_state) ### Lua Example diff --git a/docs/lua/globals.md b/docs/lua/globals.md index 90884346f..a09e1f3b2 100644 --- a/docs/lua/globals.md +++ b/docs/lua/globals.md @@ -51,6 +51,13 @@ The `gGlobalObjectCollisionData` table contains references to object collision d
+## [gLakituState](#gLakituState) +`gLakituState`'s fields are listed in [LakituState](structs.md#LakituState). + +[:arrow_up_small:](#) + +
+ ## [gGlobalSyncTable](#gGlobalSyncTable) The `gGlobalSyncTable` is a table used for networking. Any field set inside of this table is automatically synchronized with all other clients. Do not use this table for player-specific variables, keep those in [gPlayerSyncTable](#gPlayerSyncTable). Player-specific variable will desynchronize within this table since it doesn't automatically translate `playerIndex`. diff --git a/src/pc/lua/smlua_cobject.c b/src/pc/lua/smlua_cobject.c index fdcf52eac..1b559a7ad 100644 --- a/src/pc/lua/smlua_cobject.c +++ b/src/pc/lua/smlua_cobject.c @@ -485,6 +485,11 @@ void smlua_cobject_init_globals(void) { lua_setglobal(L, "gGlobalObjectCollisionData"); } + { + smlua_push_object(L, LOT_LAKITUSTATE, &gLakituState); + lua_setglobal(L, "gLakituState"); + } + } void smlua_cobject_init_per_file_globals(char* path) { diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index afeb4a402..195163ff8 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -740,33 +740,6 @@ int smlua_func_move_mario_head_c_up(lua_State* L) { return 1; } -int smlua_func_move_point_along_spline(lua_State* L) { - if(!smlua_functions_valid_param_count(L, 4)) { return 0; } - - - f32* p = smlua_get_vec3f_from_buffer(); - p[0] = smlua_get_number_field(1, "x"); - if (!gSmLuaConvertSuccess) { return 0; } - p[1] = smlua_get_number_field(1, "y"); - if (!gSmLuaConvertSuccess) { return 0; } - p[2] = smlua_get_number_field(1, "z"); - if (!gSmLuaConvertSuccess) { return 0; } - struct CutsceneSplinePoint spline[] = (struct CutsceneSplinePoint)smlua_to_cobject(L, 2, LOT_CUTSCENESPLINEPOINT); - if (!gSmLuaConvertSuccess) { return 0; } - s16 * splineSegment = (s16 *)smlua_to_cpointer(L, 3, LVT_S16_P); - if (!gSmLuaConvertSuccess) { return 0; } - f32 * progress = (f32 *)smlua_to_cpointer(L, 4, LVT_F32_P); - if (!gSmLuaConvertSuccess) { return 0; } - - lua_pushinteger(L, move_point_along_spline(p, spline[], splineSegment, progress)); - - smlua_push_number_field(1, "x", p[0]); - smlua_push_number_field(1, "y", p[1]); - smlua_push_number_field(1, "z", p[2]); - - return 1; -} - int smlua_func_next_lakitu_state(lua_State* L) { if(!smlua_functions_valid_param_count(L, 7)) { return 0; } @@ -9980,7 +9953,6 @@ void smlua_bind_functions_autogen(void) { smlua_bind_function(L, "is_range_behind_surface", smlua_func_is_range_behind_surface); smlua_bind_function(L, "is_within_100_units_of_mario", smlua_func_is_within_100_units_of_mario); smlua_bind_function(L, "move_mario_head_c_up", smlua_func_move_mario_head_c_up); - smlua_bind_function(L, "move_point_along_spline", smlua_func_move_point_along_spline); smlua_bind_function(L, "next_lakitu_state", smlua_func_next_lakitu_state); smlua_bind_function(L, "obj_rotate_towards_point", smlua_func_obj_rotate_towards_point); smlua_bind_function(L, "object_pos_to_vec3f", smlua_func_object_pos_to_vec3f);