#ifndef WORKSHOP_H
#define WORKSHOP_H
+#include "workshop_types.h"
+
#define VG_GAME
#include "vg/vg.h"
#include "vg/vg_steam_remote_storage.h"
-
-struct workshop{
- enum workshop_operation{
- k_workshop_form_op_none,
- 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
- }
- operation;
-}
-static workshop;
-
-struct workshop_file_info{
- u64 author;
- char author_name[32];
- char title[64];
-};
+#include "skaterift.h"
+#include "pointcloud.h"
struct async_workshop_filepath_info{
PublishedFileId_t id;
const char *path;
};
-VG_STATIC void workshop_file_info_clear( struct workshop_file_info *info )
-{
- info->author = 0ul;
- info->author_name[0] = '\0';
- info->title[0] = '\0';
-}
-
VG_STATIC void async_workshop_get_filepath( void *data, u32 len );
VG_STATIC void async_workshop_get_installed_files( void *data, u32 len );
VG_STATIC void workshop_load_metadata( const char *path,
struct workshop_file_info *info );
-/*
- * Start a new operation and crash if we are already running one.
- */
-VG_STATIC int workshop_begin_op( enum workshop_operation op )
-{
- if( workshop.operation != k_workshop_form_op_none ){
- vg_error( "Workshop form currently executing op(%d), tried to "
- "start op(%d)\n", workshop.operation, op );
- return 0;
- }
-
- workshop.operation = op;
- vg_info( "Starting op( %d )\n", op );
- return 1;
-}
-
-/*
- * Finished operation, otheres can now run
- */
-VG_STATIC void workshop_end_op(void)
+/* generic reciever */
+VG_STATIC void workshop_async_any_complete( void *data, u32 size )
{
- vg_info( "Finishing op( %d )\n", workshop.operation );
- workshop.operation = k_workshop_form_op_none;
+ skaterift_end_op();
}
#endif /* WORKSHOP_H */