92a59637dee3f987cc33bc4649b366fd8915a07a
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift.h
1 #ifndef SKATERIFT_H
2 #define SKATERIFT_H
3
4 #define SKATERIFT_APPID 2103940
5
6 #include "vg/vg_engine.h"
7 #include "world.h"
8 #include "addon.h"
9 #include "trail.h"
10
11 enum skaterift_rt {
12 k_skaterift_rt_workshop_preview,
13 k_skaterift_rt_server_status,
14 k_skaterift_rt_max
15 };
16
17 struct{
18 enum async_operation{
19 k_async_op_none,
20 k_async_op_clientloading,
21 k_async_op_world_scan,
22 k_async_op_world_load_preview,
23 k_async_op_board_scan,
24 k_async_op_player_scan,
25 k_async_op_board_load,
26 k_async_op_write_savedata,
27 }
28 op;
29
30 f32 time_rate;
31 camera cam;
32
33 replay_buffer replay;
34 replay_frame *resume_target;
35 f64 resume_begin;
36 f32 resume_transition;
37
38 enum replay_control {
39 k_replay_control_scrub,
40 k_replay_control_play,
41 k_replay_control_resume
42 }
43 replay_control;
44 f32 track_velocity;
45 struct gui_helper *helper_resume, *helper_freecam;
46
47 camera replay_freecam;
48 i32 freecam;
49 v3f freecam_v, freecam_w;
50
51 enum skaterift_activity {
52 k_skaterift_default = 0x00,
53 k_skaterift_replay = 0x01,
54 k_skaterift_ent_focus = 0x02,
55 k_skaterift_menu = 0x04,
56 k_skaterift_world_map = 0x08,
57 }
58 activity;
59
60 f64 last_autosave;
61 GLuint rt_textures[k_skaterift_rt_max];
62
63 u32 achievements;
64 int demo_mode;
65
66 audio_channel *aud_air;
67 const char *hub_world;
68
69 struct trail_system test_trail;
70 }
71 static skaterift = {
72 .op = k_async_op_clientloading, .time_rate = 1.0f, .demo_mode = 1,
73 .hub_world = "maps/dev_hub",
74 .test_trail = {
75 .max = 80
76 }
77 };
78
79 /* Skaterift api */
80 static void skaterift_change_world_start( addon_reg *reg );
81 static int skaterift_change_world_command( int argc, const char *argv[] );
82
83 #endif /* SKATERIFT_H */