mirror of
https://github.com/coop-deluxe/sm64coopdx.git
synced 2025-10-30 08:01:01 +00:00
Added collision_get_temp_wall_collision_data() to Lua
This commit is contained in:
parent
c594179cca
commit
488ef1c6d2
6 changed files with 50 additions and 0 deletions
|
|
@ -8100,6 +8100,11 @@ function collision_find_surface_on_ray(startX, startY, startZ, dirX, dirY, dirZ)
|
||||||
-- ...
|
-- ...
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- @return WallCollisionData
|
||||||
|
function collision_get_temp_wall_collision_data()
|
||||||
|
-- ...
|
||||||
|
end
|
||||||
|
|
||||||
--- @return Surface
|
--- @return Surface
|
||||||
function get_water_surface_pseudo_floor()
|
function get_water_surface_pseudo_floor()
|
||||||
-- ...
|
-- ...
|
||||||
|
|
|
||||||
|
|
@ -7345,6 +7345,24 @@
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
|
## [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:](#)
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
## [get_water_surface_pseudo_floor](#get_water_surface_pseudo_floor)
|
## [get_water_surface_pseudo_floor](#get_water_surface_pseudo_floor)
|
||||||
|
|
||||||
### Lua Example
|
### Lua Example
|
||||||
|
|
|
||||||
|
|
@ -1503,6 +1503,7 @@
|
||||||
|
|
||||||
- smlua_collision_utils.h
|
- smlua_collision_utils.h
|
||||||
- [collision_find_surface_on_ray](functions-4.md#collision_find_surface_on_ray)
|
- [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)
|
- [get_water_surface_pseudo_floor](functions-4.md#get_water_surface_pseudo_floor)
|
||||||
- [smlua_collision_util_get](functions-4.md#smlua_collision_util_get)
|
- [smlua_collision_util_get](functions-4.md#smlua_collision_util_get)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27042,6 +27042,21 @@ int smlua_func_collision_find_surface_on_ray(lua_State* L) {
|
||||||
return 1;
|
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) {
|
int smlua_func_get_water_surface_pseudo_floor(UNUSED lua_State* L) {
|
||||||
if (L == NULL) { return 0; }
|
if (L == NULL) { return 0; }
|
||||||
|
|
||||||
|
|
@ -31516,6 +31531,7 @@ void smlua_bind_functions_autogen(void) {
|
||||||
|
|
||||||
// smlua_collision_utils.h
|
// 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_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, "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);
|
smlua_bind_function(L, "smlua_collision_util_get", smlua_func_smlua_collision_util_get);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -171,3 +171,9 @@ struct Surface* get_water_surface_pseudo_floor(void) {
|
||||||
Collision* smlua_collision_util_get(const char* name) {
|
Collision* smlua_collision_util_get(const char* name) {
|
||||||
return dynos_collision_get(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;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef SMLUA_COLLISION_UTILS_H
|
#ifndef SMLUA_COLLISION_UTILS_H
|
||||||
#define SMLUA_COLLISION_UTILS_H
|
#define SMLUA_COLLISION_UTILS_H
|
||||||
|
|
||||||
|
#include "engine/surface_collision.h"
|
||||||
|
|
||||||
struct RayIntersectionInfo {
|
struct RayIntersectionInfo {
|
||||||
struct Surface* surface;
|
struct Surface* surface;
|
||||||
Vec3f hitPos;
|
Vec3f hitPos;
|
||||||
|
|
@ -118,4 +120,6 @@ struct Surface* get_water_surface_pseudo_floor(void);
|
||||||
|
|
||||||
Collision* smlua_collision_util_get(const char* name);
|
Collision* smlua_collision_util_get(const char* name);
|
||||||
|
|
||||||
|
struct WallCollisionData* collision_get_temp_wall_collision_data(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue