reset run when using lgider
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift.h
index 1e2fba31e67ac12bc4c6eb0d14761c826f3d372d..ebab76734b6d909ca475dc5b4b1dce67b16f9379 100644 (file)
 #include "vg/vg.h"
 #include "world.h"
 #include "addon.h"
+#include "trail.h"
+
+enum skaterift_rt {
+   k_skaterift_rt_workshop_preview,
+   k_skaterift_rt_server_status,
+   k_skaterift_rt_max
+};
 
 struct{
    enum async_operation{
@@ -26,9 +33,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 +47,42 @@ 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;
+
+   struct trail_system test_trail;
 }
-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",
+   .test_trail = {
+      .max = 80
+   }
+};
 
 /* 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 */