X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=skaterift.h;h=b7fa44c78ec7561491f0c9171ca54fe2c0e99759;hb=6e6c7f31b8f17af3814727109e48fc6f85ef04b1;hp=b729bf7726074c31396cd42494af1468c553fc34;hpb=5d5d5f394cbe2212769bc58a70fa622b4ed46205;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/skaterift.h b/skaterift.h index b729bf7..b7fa44c 100644 --- a/skaterift.h +++ b/skaterift.h @@ -1,66 +1,77 @@ #ifndef SKATERIFT_H #define SKATERIFT_H -#include "common.h" +#define SKATERIFT_APPID 2103940 + +#define VG_TIMESTEP_FIXED (1.0/60.0) +#define VG_3D +#define VG_GAME +#define VG_MSG_V1_SUPPORT +#define VG_LOG_SOURCE_INFO +#include "vg/vg.h" #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, k_async_op_clientloading, - k_async_op_world_preloading, - k_async_op_world_loading, k_async_op_world_scan, k_async_op_world_load_preview, - k_workshop_form_op_loading_model, - k_workshop_form_op_downloading_submission, - k_workshop_form_op_publishing_update, - k_workshop_op_item_scan, - k_workshop_op_item_load + k_async_op_board_scan, + k_async_op_player_scan, + k_async_op_board_load, + k_async_op_write_savedata, } - async_op; -} -static skaterift = { .async_op = k_async_op_clientloading }; + op; -/* Skaterift api */ -static void skaterift_change_world( const char *world_path ); -static int skaterift_change_world_command( int argc, const char *argv[] ); + f32 time_rate; + camera cam; + + replay_buffer replay; + replay_frame *resume_target; + f64 resume_begin; + f32 resume_transition; -/* - * Start a new operation or crash if we are already running one. you can avoid - * crashing the game by checking the async status yourself before calling. - */ -VG_STATIC void skaterift_begin_op( enum async_operation op ) -{ - if( skaterift.async_op != k_async_op_none ){ - vg_fatal_error( "Async executing op(%d), tried to start op(%d)\n", - skaterift.async_op, op ); + enum replay_control { + k_replay_control_scrub, + k_replay_control_play, + k_replay_control_resume } - - skaterift.async_op = op; - vg_info( "Starting op( %d )\n", op ); -} + replay_control; + f32 track_velocity; + struct gui_helper *helper_resume, *helper_freecam; -/* - * Switch operation for those who have multiple parts - */ -VG_STATIC void skaterift_shift_op( enum async_operation op ) -{ - if( skaterift.async_op == k_async_op_none ){ - vg_fatal_error( "No current op, cannot shift operation (%d)\n", op ); + 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, } - - skaterift.async_op = op; - vg_info( "Shifting to op( %d )\n", op ); -} + activity; + + f64 last_autosave; + GLuint rt_textures[k_skaterift_rt_max]; -/* - * Finished operation, otheres can now run - */ -VG_STATIC void skaterift_end_op(void) -{ - vg_info( "Finishing op( %d )\n", skaterift.async_op ); - skaterift.async_op = k_async_op_none; + u32 achievements; + int demo_mode; } +static skaterift = { + .op = k_async_op_clientloading, .time_rate = 1.0f, .demo_mode = 1 }; + +/* Skaterift api */ +static void skaterift_change_world_start( addon_reg *reg ); +static int skaterift_change_world_command( int argc, const char *argv[] ); #endif /* SKATERIFT_H */