stop air sound while paused
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift.h
index 23662035fcd928ea460ab11251e553691523b52d..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,
@@ -24,11 +30,53 @@ struct{
       k_async_op_write_savedata,
    }
    op;
+
+   f32 time_rate;
+   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,
+      k_replay_control_resume
+   }
+   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_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 };
+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 */