-#define VG_TIMESTEP_FIXED (1.0/60.0)
-#define VG_3D
-#define VG_GAME
-#define VG_MSG_V1_SUPPORT
-#include "vg/vg.h"
-
-#include "common.h"
-#include "world.h"
-#include "addon.h"
-
-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_async_op_board_scan,
- k_async_op_board_load,
- k_async_op_write_savedata,
- k_workshop_form_op_loading_model,
- k_workshop_form_op_downloading_submission,
- k_workshop_form_op_publishing_update,
- }
- async_op;
-}
-static skaterift = { .async_op = k_async_op_clientloading };
-
-/* Skaterift api */
-static void skaterift_change_world_start( void );
-static int skaterift_change_world_command( int argc, const char *argv[] );
-
-/*
- * 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 )