#pragma once
#include "vg/vg_audio.h"
-#include "vg/vg_imgui.h"
+#include "vg/vg_ui/imgui.h"
#include "model.h"
typedef struct ent_spawn ent_spawn;
k_ent_npc = 27
};
+typedef struct ent_call ent_call;
+typedef enum entity_call_result entity_call_result;
+enum entity_call_result
+{
+ k_entity_call_result_OK,
+ k_entity_call_result_unhandled,
+ k_entity_call_result_invalid
+};
+
static inline u32 mdl_entity_id_type( u32 entity_id )
{
return (entity_id & 0x0fff0000) >> 16;
};
struct volume_trigger{
- u32 event, event_leave;
+ i32 event, event_leave;
};
enum ent_volume_flag {
flags,
id_next,
filter,filter2,
- id_win,
- win_event;
+ id_win;
+ i32 win_event;
f32 time_limit;
};
mdl_transform transform;
u32 pstr_alias,
flags,
- target,
- target_event,
- reset,
- reset_event,
- first,
+ target;
+ i32 target_event;
+ u32 reset;
+ i32 reset_event;
+ u32 first,
camera,
status;
};
struct ent_relay {
u32 targets[4][2];
- u32 targets_events[4];
+ i32 targets_events[4];
};
struct ent_cubemap {
framebuffer_id, renderbuffer_id, placeholder[2];
};
-typedef struct ent_call ent_call;
-struct ent_call{
- u32 id, function;
- void *data;
-};
-
struct ent_miniworld {
mdl_transform transform;
u32 pstr_world;
struct ent_npc
{
mdl_transform transform;
- u32 id, context;
+ u32 id, context, camera;
};
#include "world.h"
+
+struct ent_call{
+ u32 id;
+ i32 function;
+ void *data;
+};
+
+typedef enum entity_call_result
+ (*fn_entity_call_handler)( world_instance *, ent_call *);
+
void entity_call( world_instance *world, ent_call *call );