build system revision
[carveJwlIkooP6JGAAIwe30JlM.git] / entity.h
index 0e65c268a6c81f71ac05bb306f688532e2318ffe..2874441a51b56b0cfccd440f72d4800d6a4e93eb 100644 (file)
--- a/entity.h
+++ b/entity.h
@@ -1,6 +1,7 @@
-#ifndef ENTITY_H
-#define ENTITY_H
+#pragma once
 
+#include "vg/vg_audio.h"
+#include "vg/vg_imgui.h"
 #include "model.h"
 
 typedef struct ent_spawn ent_spawn;
@@ -33,6 +34,8 @@ typedef struct ent_cubemap ent_cubemap;
 typedef struct ent_miniworld ent_miniworld;
 typedef struct ent_prop ent_prop;
 typedef struct ent_region ent_region;
+typedef struct ent_list ent_list;
+typedef struct ent_glider ent_glider;
 
 enum entity_alias{
    k_ent_none        = 0,
@@ -60,7 +63,8 @@ enum entity_alias{
    k_ent_miniworld   = 22,
    k_ent_prop        = 23,
    k_ent_list        = 24,
-   k_ent_region      = 25
+   k_ent_region      = 25,
+   k_ent_glider      = 26
 };
 
 static u32 mdl_entity_id_type( u32 entity_id ){
@@ -168,13 +172,17 @@ 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_route_flag_out_of_zone    = 0x10,
+   k_ent_region_flag_hasname       = 0x20
 };
 
 struct ent_route{
@@ -204,6 +212,9 @@ struct ent_route{
    /* v104+, but always accessible */
    u32 flags;
    f64 best_laptime;
+   f32 ui_stopper, ui_residual;
+
+   ui_px ui_first_block_width, ui_residual_block_w;
 };
 
 struct ent_water{
@@ -400,6 +411,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,
@@ -511,6 +523,7 @@ struct ent_challenge{
 
 struct ent_relay {
    u32 targets[4][2];
+   u32 targets_events[4];
 };
 
 struct ent_cubemap {
@@ -534,15 +547,22 @@ 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;
+   u32 submesh_start, submesh_count, pstr_title, flags, zone_volume,
+
+       /* 105+ */
+       target0[2];
+};
+
+struct ent_glider {
+   mdl_transform transform;
+   u32 flags;
+   f32 cooldown;
 };
 
 #include "world.h"
 static void entity_call( world_instance *world, ent_call *call );
-
-#endif /* ENTITY_H */