rigidbody math corrections & ragdoll tweaks for stability
[carveJwlIkooP6JGAAIwe30JlM.git] / world_gate.h
1 /*
2 * Copyright (C) 2021-2023 Mt.ZERO Software, Harry Godden - All Rights Reserved
3 */
4
5 #ifndef WORLD_GATE_H
6 #define WORLD_GATE_H
7
8 #include "camera.h"
9 #include "world.h"
10 #include "shaders/model_gate.h"
11
12 struct world_gates{
13 glmesh mesh;
14 mdl_submesh sm_surface, sm_marker[4];
15 camera cam;
16
17 v3f userportal_co;
18 }
19 static world_gates;
20
21 static void world_gates_init(void);
22 static void gate_transform_update( ent_gate *gate );
23 static int render_gate( world_instance *world, world_instance *world_inside,
24 ent_gate *gate, camera *cam );
25
26 static int gate_intersect( ent_gate *gate, v3f pos, v3f last );
27 static u32 world_intersect_gates( world_instance *world, v3f pos, v3f last );
28
29 static void ent_gate_call( world_instance *world, ent_call *call );
30 static void ent_gate_get_mdl_mtx( ent_gate *gate, m4x3f mmdl );
31
32 static void world_link_nonlocal_async( void *payload, u32 size );
33 static void world_unlink_nonlocal( world_instance *world );
34 static void render_gate_unlinked( world_instance *world,
35 ent_gate *gate, camera *cam );
36
37 #endif /* WORLD_GATE_H */