adjust input filtering
[carveJwlIkooP6JGAAIwe30JlM.git] / entity.h
index 3fd3508eef3358ff47766b73ef2ad11cc0dddbc0..1c11f38ce3ec3544d7c82ac935df6f71c09463ca 100644 (file)
--- a/entity.h
+++ b/entity.h
@@ -32,6 +32,7 @@ typedef struct ent_relay ent_relay;
 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,
@@ -56,7 +57,10 @@ enum entity_alias{
    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 ){
@@ -164,12 +168,23 @@ struct ent_checkpoint{
    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,
+   k_ent_region_flag_hasname       = 0x20
 };
 
 struct ent_route{
    union{
       mdl_transform transform;
-      u32 official_track_id;
+      u32 official_track_id;   /* TODO: remove this */
    }
    anon;
 
@@ -191,8 +206,11 @@ struct ent_route{
    u32 id_camera; /* v103+ */
 
    /* v104+, but always accessible */
-   u32 achievment_status;
+   u32 flags;
    f64 best_laptime;
+   f32 ui_stopper, ui_residual;
+
+   ui_px ui_first_block_width, ui_residual_block_w;
 };
 
 struct ent_water{
@@ -389,6 +407,7 @@ struct ent_worldinfo{
    u32 pstr_name, pstr_author, pstr_desc;
    f32 timezone;
    u32 pstr_skybox;
+   u32 flags;
 };
 
 static ent_marker *ent_find_marker( mdl_context *mdl,
@@ -500,6 +519,7 @@ struct ent_challenge{
 
 struct ent_relay {
    u32 targets[4][2];
+   u32 targets_events[4];
 };
 
 struct ent_cubemap {
@@ -523,7 +543,12 @@ struct ent_miniworld {
 
 struct ent_prop {
    mdl_transform transform;
-   u32 submesh_start, submesh_count, flags;
+   u32 submesh_start, submesh_count, flags, pstr_alias;
+};
+
+struct ent_region {
+   mdl_transform transform;
+   u32 submesh_start, submesh_count, pstr_title, flags, zone_volume;
 };
 
 #include "world.h"