X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_gate.h;h=a071e4bb20ee575e59c5f1722ade8b4da0ac0dab;hb=5fa590f62aa7e62a8b6b07e10556c2ecc54cdca6;hp=2201f766f00ed79fe26de1aa4ed36b75616c2383;hpb=00653e446d6b1310fa89d3aace70800f9fef4122;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_gate.h b/world_gate.h index 2201f76..a071e4b 100644 --- a/world_gate.h +++ b/world_gate.h @@ -1,32 +1,36 @@ /* - * Copyright (C) 2021-2023 Mt.ZERO Software, Harry Godden - All Rights Reserved + * Copyright (C) 2021-2024 Mt.ZERO Software, Harry Godden - All Rights Reserved */ -#ifndef WORLD_GATE_H -#define WORLD_GATE_H +#pragma once -#include "camera.h" +#include "vg/vg_camera.h" #include "world.h" #include "shaders/model_gate.h" +#include "entity.h" -struct world_gates{ +struct world_gates +{ glmesh mesh; mdl_submesh sm_surface, sm_marker[4]; - camera cam; + vg_camera cam; v3f userportal_co; } -static world_gates; +extern world_gates; -static void world_gates_init(void); -static void gate_transform_update( ent_gate *gate ); -static int render_gate( world_instance *world, world_instance *world_inside, - ent_gate *gate, camera *cam ); +void world_gates_init(void); +void gate_transform_update( ent_gate *gate ); +int render_gate( world_instance *world, world_instance *world_inside, + ent_gate *gate, vg_camera *cam ); -static int gate_intersect( ent_gate *gate, v3f pos, v3f last ); -static u32 world_intersect_gates( world_instance *world, v3f pos, v3f last ); +int gate_intersect( ent_gate *gate, v3f pos, v3f last ); +u32 world_intersect_gates( world_instance *world, v3f pos, v3f last ); -static void ent_gate_call( world_instance *world, ent_call *call ); -static void ent_gate_get_mdl_mtx( ent_gate *gate, m4x3f mmdl ); +entity_call_result ent_gate_call( world_instance *world, ent_call *call ); +void ent_gate_get_mdl_mtx( ent_gate *gate, m4x3f mmdl ); -#endif /* WORLD_GATE_H */ +void world_link_gates_async( void *payload, u32 size ); +void world_unlink_nonlocal( world_instance *world ); +void render_gate_unlinked( world_instance *world, + ent_gate *gate, vg_camera *cam );