more refactors..
[carveJwlIkooP6JGAAIwe30JlM.git] / build.c
diff --git a/build.c b/build.c
index 3b82a01eaa4d9e669f9b3bb66f952db28fa20aba..b3a4352318c87c09496d8bc54cd8481dd58abfb5 100644 (file)
--- a/build.c
+++ b/build.c
@@ -42,6 +42,21 @@ void write_msg( vg_msg *msg, const char *path ){
    vg_success( "Written %s (%ub)\n", path, msg->cur );
 }
 
+void write_generic_addon_inf( u32 type, const char *title,
+                              const char *content, const char *dest ){
+   u8 descriptor_buf[ 512 ];
+   vg_msg descriptor = {0};
+   descriptor.buf = descriptor_buf;
+   descriptor.max = sizeof(descriptor_buf);
+   vg_msg_frame( &descriptor, "workshop" );
+      vg_msg_wkvstr( &descriptor, "title", title );
+      vg_msg_wkvstr( &descriptor, "author", "Skaterift" );
+      vg_msg_wkvu32( &descriptor, "type", type );
+   vg_msg_end_frame( &descriptor );
+   vg_msg_wkvstr( &descriptor, "content", content );
+   write_msg( &descriptor, dest );
+}
+
 void build_shaders(void);
 void build_game( enum compiler compiler )
 {
@@ -64,87 +79,38 @@ void build_game( enum compiler compiler )
    vg_build_symbolic_link( "boards_src", "boards" );
    vg_build_symbolic_link( "maps_src", "maps" );
    vg_build_symbolic_link( "sound_src", "sound" );
+   vg_build_symbolic_link( "playermodels_src", "playermodels" );
    vg_build_syscall( "mkdir -p %s/cfg", vg_compiler.build_dir );
 
-   u8 descriptor_buf[ 512 ];
-
-   {
-   vg_msg descriptor = {0};
-   descriptor.buf = descriptor_buf;
-   descriptor.max = sizeof(descriptor_buf);
-   vg_msg_frame( &descriptor, "workshop" );
-      vg_msg_wkvstr( &descriptor, "title", "Longboard" );
-      vg_msg_wkvstr( &descriptor, "author", "Skaterift" );
-      vg_msg_wkvu32( &descriptor, "type", k_workshop_file_type_board );
-   vg_msg_end_frame( &descriptor );
-   vg_msg_wkvstr( &descriptor, "content", "board.mdl" );
-   write_msg( &descriptor, "boards_src/skaterift_long/addon.inf" );
-   }
-
-   {
-   vg_msg descriptor = {0};
-   descriptor.buf = descriptor_buf;
-   descriptor.max = sizeof(descriptor_buf);
-   vg_msg_frame( &descriptor, "workshop" );
-      vg_msg_wkvstr( &descriptor, "title", "Fractal" );
-      vg_msg_wkvstr( &descriptor, "author", "Skaterift" );
-      vg_msg_wkvu32( &descriptor, "type", k_workshop_file_type_board );
-   vg_msg_end_frame( &descriptor );
-   vg_msg_wkvstr( &descriptor, "content", "board.mdl" );
-   write_msg( &descriptor, "boards_src/skaterift_fract/addon.inf" );
-   }
 
-   {
-   vg_msg descriptor = {0};
-   descriptor.buf = descriptor_buf;
-   descriptor.max = sizeof(descriptor_buf);
-   vg_msg_frame( &descriptor, "workshop" );
-      vg_msg_wkvstr( &descriptor, "title", "Striped" );
-      vg_msg_wkvstr( &descriptor, "author", "Skaterift" );
-      vg_msg_wkvu32( &descriptor, "type", k_workshop_file_type_board );
-   vg_msg_end_frame( &descriptor );
-   vg_msg_wkvstr( &descriptor, "content", "board.mdl" );
-   write_msg( &descriptor, "boards_src/skaterift_striped/addon.inf" );
-   }
-
-   {
-   vg_msg descriptor = {0};
-   descriptor.buf = descriptor_buf;
-   descriptor.max = sizeof(descriptor_buf);
-   vg_msg_frame( &descriptor, "workshop" );
-      vg_msg_wkvstr( &descriptor, "title", "Licco" );
-      vg_msg_wkvstr( &descriptor, "author", "Skaterift" );
-      vg_msg_wkvu32( &descriptor, "type", k_workshop_file_type_board);
-   vg_msg_end_frame( &descriptor );
-   vg_msg_wkvstr( &descriptor, "content", "board.mdl" );
-   write_msg( &descriptor, "boards_src/skaterift_licco/addon.inf" );
-   }
-
-   {
-   vg_msg descriptor = {0};
-   descriptor.buf = descriptor_buf;
-   descriptor.max = sizeof(descriptor_buf);
-   vg_msg_frame( &descriptor, "workshop" );
-      vg_msg_wkvstr( &descriptor, "title", "Hypno" );
-      vg_msg_wkvstr( &descriptor, "author", "Skaterift" );
-      vg_msg_wkvu32( &descriptor, "type", k_workshop_file_type_board );
-   vg_msg_end_frame( &descriptor );
-   vg_msg_wkvstr( &descriptor, "content", "board.mdl" );
-   write_msg( &descriptor, "boards_src/skaterift_spiral/addon.inf" );
-   }
-
-   {
-   vg_msg descriptor = {0};
-   descriptor.buf = descriptor_buf;
-   descriptor.max = sizeof(descriptor_buf);
-   vg_msg_frame( &descriptor, "workshop" );
-      vg_msg_wkvstr( &descriptor, "title", "Shark" );
-      vg_msg_wkvstr( &descriptor, "author", "Skaterift" );
-      vg_msg_wkvu32( &descriptor, "type", k_workshop_file_type_board );
-   vg_msg_end_frame( &descriptor );
-   vg_msg_wkvstr( &descriptor, "content", "board.mdl" );
-   write_msg( &descriptor, "boards_src/skaterift_shark/addon.inf" );
-   }
+   write_generic_addon_inf( k_workshop_file_type_board, 
+                            "Longboard", "board.mdl", 
+                            "boards_src/skaterift_long/addon.inf");
+   write_generic_addon_inf( k_workshop_file_type_board, 
+                            "Fractal", "board.mdl", 
+                            "boards_src/skaterift_fract/addon.inf");
+   write_generic_addon_inf( k_workshop_file_type_board,
+                            "Striped", "board.mdl",
+                            "boards_src/skaterift_striped/addon.inf");
+   write_generic_addon_inf( k_workshop_file_type_board,
+                            "Licco", "board.mdl",
+                            "boards_src/skaterift_licco/addon.inf");
+   write_generic_addon_inf( k_workshop_file_type_board,
+                            "Hypno", "board.mdl",
+                            "boards_src/skaterift_spiral/addon.inf");
+   write_generic_addon_inf( k_workshop_file_type_board,
+                            "Shark", "board.mdl",
+                            "boards_src/skaterift_shark/addon.inf");
+
+   write_generic_addon_inf( k_workshop_file_type_player,
+                            "De'folde", "ch_new.mdl",
+                            "playermodels_src/skaterift_new/addon.inf" );
+   write_generic_addon_inf( k_workshop_file_type_player,
+                            "Jordan", "ch_jordan.mdl",
+                            "playermodels_src/skaterift_jordan/addon.inf" );
+   write_generic_addon_inf( k_workshop_file_type_player,
+                            "Outlaw", "ch_outlaw.mdl",
+                            "playermodels_src/skaterift_outlaw/addon.inf" );
 
    vg_build();
    compiled_something = 1;