more refactors..
[carveJwlIkooP6JGAAIwe30JlM.git] / build.c
diff --git a/build.c b/build.c
index 558299bd955045231c2d6e6e0ca7a740d76c5529..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,97 +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;
-
-   {
-   vg_msg_init( &descriptor, descriptor_buf, 512 );
-   vg_msg_frame( &descriptor, "workshop" );
-      vg_msg_wkvstr( &descriptor, "title", "Longboard" );
-      vg_msg_wkvstr( &descriptor, "author", "Skaterift" );
-      vg_msg_wkvuint(&descriptor, "type", u32 value=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_init( &descriptor, descriptor_buf, 512 );
-   vg_msg_frame( &descriptor, "workshop" );
-      vg_msg_wkvstr( &descriptor, "title", "Fractal" );
-      vg_msg_wkvstr( &descriptor, "author", "Skaterift" );
-      vg_msg_wkvuint(&descriptor, "type", u32 value=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_init( &descriptor, descriptor_buf, 512 );
-   vg_msg_frame( &descriptor, "workshop" );
-      vg_msg_wkvstr( &descriptor, "title", "Striped" );
-      vg_msg_wkvstr( &descriptor, "author", "Skaterift" );
-      vg_msg_wkvuint(&descriptor, "type", u32 value=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_init( &descriptor, descriptor_buf, 512 );
-   vg_msg_frame( &descriptor, "workshop" );
-      vg_msg_wkvstr( &descriptor, "title", "Licco" );
-      vg_msg_wkvstr( &descriptor, "author", "Skaterift" );
-      vg_msg_wkvuint(&descriptor, "type", u32 value=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_init( &descriptor, descriptor_buf, 512 );
-   vg_msg_frame( &descriptor, "workshop" );
-      vg_msg_wkvstr( &descriptor, "title", "Hypno" );
-      vg_msg_wkvstr( &descriptor, "author", "Skaterift" );
-      vg_msg_wkvuint(&descriptor, "type", u32 value=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_init( &descriptor, descriptor_buf, 512 );
-   vg_msg_frame( &descriptor, "workshop" );
-      vg_msg_wkvstr( &descriptor, "title", "Shark" );
-      vg_msg_wkvstr( &descriptor, "author", "Skaterift" );
-      vg_msg_wkvuint(&descriptor, "type", u32 value=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" );
-   }
-
-   /* method 2 */
-#if 0
-   vg_info( "TRYING OUT METHOD 2 BINGO BONGO\n" );
-   vg_msg root;
-   vg_msg_init( &root, descriptor_buf, descriptor.cur );
-
-   vg_msg workshop = root;
-   if( vg_msg_seekframe( &workshop, "workshop", k_vg_msg_first )){
-      const char *err = vg_msg_seekkvstr(&workshop,"NOT HERE",k_vg_msg_first);
-      const char *author = vg_msg_seekkvstr(&workshop,"author",k_vg_msg_first);
-      const char *title = vg_msg_seekkvstr(&workshop,"title",k_vg_msg_first);
-
-      vg_info( "TITLE: %s\n", title );
-      vg_info( "AUTHOR: %s\n", author );
-      vg_info( "and error code is: %s\n", err );
-   }
 
-   const char *content = vg_msg_seekkvstr(&root, "content", k_vg_msg_first);
-   vg_info( "CONTENT: %s\n", content );
-#endif
+   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;