challenge effects
[carveJwlIkooP6JGAAIwe30JlM.git] / world.h
diff --git a/world.h b/world.h
index c412a88097cc3bb98ba044f0a08df45c4dc49764..d35f0646b6ec1e8ed76b4d789e2f57bac4a74793 100644 (file)
--- a/world.h
+++ b/world.h
@@ -16,8 +16,17 @@ enum world_geo_type{
    k_world_geo_type_water = 2
 };
 
+enum world_purpose{
+   k_world_purpose_hub,
+   k_world_purpose_client
+}
+purpose;
+
 typedef struct world_instance world_instance;
 
+static void skaterift_world_get_save_path( enum world_purpose which, 
+                                           char buf[128] );
+
 /* submodule headers */
 #include "world_entity.h"
 #include "world_gate.h"
@@ -156,9 +165,10 @@ struct world_instance {
                  ent_camera,
                  ent_swspreview,
                  ent_ccmd,
+                 ent_objective,
                  ent_challenge,
-                 ent_unlock,
-                 ent_relay;
+                 ent_relay,
+                 ent_cubemap;
 
    ent_gate *rendering_gate;
 
@@ -181,11 +191,9 @@ struct world_instance {
    glmesh mesh_geo, 
           mesh_no_collide,
           mesh_water;
+   u32 cubemap_cooldown, cubemap_side;
 
    rb_object rb_geo;
-
-   ent_challenge *challenge_target;
-   f32 challenge_timer;
 };
 
 struct world_static {
@@ -203,6 +211,13 @@ struct world_static {
 
    world_instance instances[4];
    i32            active_instance;
+   u32            focused_entity; /* like skateshop, challenge.. */
+   f32            focus_strength;
+   camera         focus_cam;
+
+   /* challenges */
+   ent_objective *challenge_target;
+   f32 challenge_timer;
 
    addon_reg *addon_hub,
              *addon_client;
@@ -218,5 +233,6 @@ static world_static;
 
 static void world_init(void);
 static world_instance *world_current_instance(void);
+static void world_set_active_instance( u32 index );
 
 #endif /* WORLD_H */