sandsurf/glide basics
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift.h
index 1e2fba31e67ac12bc4c6eb0d14761c826f3d372d..a21e6ab423642b4b86903b8c7490cff9471df3a6 100644 (file)
 #include "world.h"
 #include "addon.h"
 
+enum skaterift_rt {
+   k_skaterift_rt_workshop_preview,
+   k_skaterift_rt_server_status,
+   k_skaterift_rt_max
+};
+
 struct{
    enum async_operation{
       k_async_op_none,
@@ -26,9 +32,13 @@ struct{
    op;
 
    f32 time_rate;
-   camera cam, replay_cam;
+   camera cam;
    
    replay_buffer replay;
+   replay_frame *resume_target;
+   f64 resume_begin;
+   f32 resume_transition;
+
    enum replay_control {
       k_replay_control_scrub,
       k_replay_control_play,
@@ -36,19 +46,37 @@ struct{
    }
    replay_control;
    f32 track_velocity;
+   struct gui_helper *helper_resume, *helper_freecam;
+
+   camera replay_freecam;
+   i32 freecam;
+   v3f freecam_v, freecam_w;
 
    enum skaterift_activity {
       k_skaterift_default    = 0x00,
       k_skaterift_replay     = 0x01,
-      k_skaterift_skateshop  = 0x02,
-      k_skaterift_menu       = 0x04
+      k_skaterift_ent_focus  = 0x02,
+      k_skaterift_menu       = 0x04,
+      k_skaterift_world_map  = 0x08,
    }
    activity;
+
+   f64 last_autosave;
+   GLuint rt_textures[k_skaterift_rt_max];
+
+   u32 achievements;
+   int demo_mode;
+
+   audio_channel *aud_air;
+   const char *hub_world;
 }
-static skaterift = { .op = k_async_op_clientloading, .time_rate = 1.0f };
+static skaterift = { 
+   .op = k_async_op_clientloading, .time_rate = 1.0f, .demo_mode = 1,
+   .hub_world = "maps/dev_hub"
+};
 
 /* Skaterift api */
-static void skaterift_change_world_start( void );
+static void skaterift_change_world_start( addon_reg *reg );
 static int  skaterift_change_world_command( int argc, const char *argv[] );
 
 #endif /* SKATERIFT_H */