trail rendering basics
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift.h
index 7624fd4846170d765fb2b75346e84abb334f15ef..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{
@@ -40,9 +47,10 @@ struct{
    }
    replay_control;
    f32 track_velocity;
+   struct gui_helper *helper_resume, *helper_freecam;
 
    camera replay_freecam;
-   int freecam;
+   i32 freecam;
    v3f freecam_v, freecam_w;
 
    enum skaterift_activity {
@@ -50,13 +58,28 @@ struct{
       k_skaterift_replay     = 0x01,
       k_skaterift_ent_focus  = 0x02,
       k_skaterift_menu       = 0x04,
-      k_skaterift_respawning = 0x08
+      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( addon_reg *reg );