handplants
[carveJwlIkooP6JGAAIwe30JlM.git] / world.h
diff --git a/world.h b/world.h
index 98b9df90bc7e120bfea347fcad2e088037b444cc..642e7578b44a6d32ce042a36ba9be4ff2e4ca97e 100644 (file)
--- a/world.h
+++ b/world.h
@@ -18,6 +18,7 @@ enum world_geo_type{
 };
 
 enum world_purpose{
+   k_world_purpose_invalid = -1,
    k_world_purpose_hub = 0,
    k_world_purpose_client = 1,
    k_world_max
@@ -48,6 +49,7 @@ static void skaterift_world_get_save_path( enum world_purpose which,
 #include "world_water.h"
 #include "world_audio.h"
 #include "world_routes.h"
+#include "world_routes_ui.h"
 
 /* console variables */
 
@@ -56,12 +58,16 @@ static i32   k_debug_light_indices   = 0,
              k_debug_light_complexity= 0,
              k_light_preview         = 0;
 
+#define WORLD_SURFACE_HAS_TRAFFIC 0x1
+#define WORLD_SURFACE_HAS_PROPS   0x2
 
 struct world_instance {
    /* Fixed items
     * -------------------------------------------------------
     */
 
+   v4f player_co;
+
    void *heap;
    enum world_status{
       k_world_status_unloaded = 0,
@@ -82,6 +88,7 @@ struct world_instance {
    water;
 
    f64 time;
+   f32 tar_min, tar_max;
 
    /* STD140 */
    struct ub_world_lighting{
@@ -150,6 +157,7 @@ struct world_instance {
       mdl_material info;
       mdl_submesh sm_geo,
                   sm_no_collide;
+      u32 flags;
    }
    * surfaces;
    u32 surface_count;
@@ -176,7 +184,15 @@ struct world_instance {
                  ent_objective,
                  ent_challenge,
                  ent_relay,
-                 ent_cubemap;
+                 ent_cubemap,
+                 ent_miniworld,
+                 ent_prop,
+                 ent_region;
+
+   enum skybox {
+      k_skybox_default,
+      k_skybox_space
+   } skybox;
 
    ent_gate *rendering_gate;
 
@@ -205,6 +221,9 @@ struct world_instance {
 
    /* leaderboards */
    struct leaderboard_cache *leaderboard_cache;
+
+   /* ui */
+   struct route_ui *routes_ui;
 };
 
 struct world_static {
@@ -243,6 +262,6 @@ static world_static;
 
 static void world_init(void);
 static world_instance *world_current_instance(void);
-static void world_set_active_instance( u32 index );
+static void world_switch_instance( u32 index );
 
 #endif /* WORLD_H */