diff --git a/autogen/lua_definitions/functions.lua b/autogen/lua_definitions/functions.lua index 8931448ce..a106a5da8 100644 --- a/autogen/lua_definitions/functions.lua +++ b/autogen/lua_definitions/functions.lua @@ -8100,6 +8100,11 @@ function collision_find_surface_on_ray(startX, startY, startZ, dirX, dirY, dirZ) -- ... end +--- @return WallCollisionData +function collision_get_temp_wall_collision_data() + -- ... +end + --- @return Surface function get_water_surface_pseudo_floor() -- ... diff --git a/docs/lua/functions-4.md b/docs/lua/functions-4.md index d4b35c935..34fdd6d4c 100644 --- a/docs/lua/functions-4.md +++ b/docs/lua/functions-4.md @@ -7345,6 +7345,24 @@
+## [collision_get_temp_wall_collision_data](#collision_get_temp_wall_collision_data) + +### Lua Example +`local WallCollisionDataValue = collision_get_temp_wall_collision_data()` + +### Parameters +- None + +### Returns +[WallCollisionData](structs.md#WallCollisionData) + +### C Prototype +`struct WallCollisionData* collision_get_temp_wall_collision_data(void);` + +[:arrow_up_small:](#) + +
+ ## [get_water_surface_pseudo_floor](#get_water_surface_pseudo_floor) ### Lua Example diff --git a/docs/lua/functions.md b/docs/lua/functions.md index 64d72d4de..83cf28793 100644 --- a/docs/lua/functions.md +++ b/docs/lua/functions.md @@ -1503,6 +1503,7 @@ - smlua_collision_utils.h - [collision_find_surface_on_ray](functions-4.md#collision_find_surface_on_ray) + - [collision_get_temp_wall_collision_data](functions-4.md#collision_get_temp_wall_collision_data) - [get_water_surface_pseudo_floor](functions-4.md#get_water_surface_pseudo_floor) - [smlua_collision_util_get](functions-4.md#smlua_collision_util_get) diff --git a/src/pc/lua/smlua_functions_autogen.c b/src/pc/lua/smlua_functions_autogen.c index ace55d83e..36a877e46 100644 --- a/src/pc/lua/smlua_functions_autogen.c +++ b/src/pc/lua/smlua_functions_autogen.c @@ -27042,6 +27042,21 @@ int smlua_func_collision_find_surface_on_ray(lua_State* L) { return 1; } +int smlua_func_collision_get_temp_wall_collision_data(UNUSED lua_State* L) { + if (L == NULL) { return 0; } + + int top = lua_gettop(L); + if (top != 0) { + LOG_LUA_LINE("Improper param count for '%s': Expected %u, Received %u", "collision_get_temp_wall_collision_data", 0, top); + return 0; + } + + + smlua_push_object(L, LOT_WALLCOLLISIONDATA, collision_get_temp_wall_collision_data()); + + return 1; +} + int smlua_func_get_water_surface_pseudo_floor(UNUSED lua_State* L) { if (L == NULL) { return 0; } @@ -31516,6 +31531,7 @@ void smlua_bind_functions_autogen(void) { // smlua_collision_utils.h smlua_bind_function(L, "collision_find_surface_on_ray", smlua_func_collision_find_surface_on_ray); + smlua_bind_function(L, "collision_get_temp_wall_collision_data", smlua_func_collision_get_temp_wall_collision_data); smlua_bind_function(L, "get_water_surface_pseudo_floor", smlua_func_get_water_surface_pseudo_floor); smlua_bind_function(L, "smlua_collision_util_get", smlua_func_smlua_collision_util_get); diff --git a/src/pc/lua/utils/smlua_collision_utils.c b/src/pc/lua/utils/smlua_collision_utils.c index e867e1e20..7b4ca407f 100644 --- a/src/pc/lua/utils/smlua_collision_utils.c +++ b/src/pc/lua/utils/smlua_collision_utils.c @@ -171,3 +171,9 @@ struct Surface* get_water_surface_pseudo_floor(void) { Collision* smlua_collision_util_get(const char* name) { return dynos_collision_get(name); } + +struct WallCollisionData* collision_get_temp_wall_collision_data(void) { + static struct WallCollisionData sTmpWcd = { 0 }; + memset(&sTmpWcd, 0, sizeof(struct WallCollisionData)); + return &sTmpWcd; +} diff --git a/src/pc/lua/utils/smlua_collision_utils.h b/src/pc/lua/utils/smlua_collision_utils.h index 8430f9571..47827a30a 100644 --- a/src/pc/lua/utils/smlua_collision_utils.h +++ b/src/pc/lua/utils/smlua_collision_utils.h @@ -1,6 +1,8 @@ #ifndef SMLUA_COLLISION_UTILS_H #define SMLUA_COLLISION_UTILS_H +#include "engine/surface_collision.h" + struct RayIntersectionInfo { struct Surface* surface; Vec3f hitPos; @@ -118,4 +120,6 @@ struct Surface* get_water_surface_pseudo_floor(void); Collision* smlua_collision_util_get(const char* name); +struct WallCollisionData* collision_get_temp_wall_collision_data(void); + #endif