typedef struct ent_cubemap ent_cubemap;
typedef struct ent_miniworld ent_miniworld;
typedef struct ent_prop ent_prop;
+typedef struct ent_region ent_region;
enum entity_alias{
k_ent_none = 0,
k_ent_challenge = 19,
k_ent_relay = 20,
k_ent_cubemap = 21,
- k_ent_miniworld = 22
+ k_ent_miniworld = 22,
+ k_ent_prop = 23,
+ k_ent_list = 24,
+ k_ent_region = 25
};
static u32 mdl_entity_id_type( u32 entity_id ){
u16 gate_index,
path_start,
path_count;
+
+ /* EXTENSION */
+ f32 best_time;
+};
+
+enum ent_route_flag {
+ k_ent_route_flag_achieve_silver = 0x1,
+ k_ent_route_flag_achieve_gold = 0x2,
+
+ k_ent_route_flag_out_of_zone = 0x10
};
struct ent_route{
union{
mdl_transform transform;
- u32 official_track_id;
+ u32 official_track_id; /* TODO: remove this */
}
anon;
u32 id_camera; /* v103+ */
/* v104+, but always accessible */
- u32 achievment_status;
+ u32 flags;
f64 best_laptime;
};
u32 submesh_start, submesh_count, flags;
};
+struct ent_region {
+ mdl_transform transform;
+ u32 submesh_start, submesh_count, pstr_title, flags, zone_volume;
+};
+
#include "world.h"
static void entity_call( world_instance *world, ent_call *call );