typedef struct ent_glider ent_glider;
typedef struct ent_npc ent_npc;
+typedef struct ent_call ent_call;
+struct ent_call{
+ u32 id;
+ i32 function;
+ void *data;
+};
+
+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
+};
+
+typedef enum entity_call_result
+ (*fn_entity_call_handler)( world_instance *, ent_call *);
+
+
enum entity_alias{
k_ent_none = 0,
k_ent_gate = 1,
};
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"