]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - tools/quake3/common/vfs.c
Q3map2:
[xonotic/netradiant.git] / tools / quake3 / common / vfs.c
index f14504706bd5fed1ac3b83e2dc83ec2aa9716f4a..2b1b61bc379a0781ab495dd89ddbcd5027e0dd43 100644 (file)
@@ -275,7 +275,7 @@ void vfsListShaderFiles( char* list, int *num ){
                                }
 
                                for ( k = 0; k < *num; k++ ){
-                                       if ( !stricmp( list + k*65, dirlist ) ) goto shISdouplicate;
+                                       if ( !Q_stricmp( list + k*65, dirlist ) ) goto shISdouplicate;
                                }
                                strcpy( list + (*num)*65, dirlist );
                                (*num)++;
@@ -302,7 +302,7 @@ shISdouplicate:
                ext++;
 
                for ( k = 0; k < *num; k++ ){
-                       if ( !stricmp( list + k*65, ext ) ) goto shISdouplicate2;
+                       if ( !Q_stricmp( list + k*65, ext ) ) goto shISdouplicate2;
                }
                strcpy( list + (*num)*65, ext );
                (*num)++;
@@ -566,3 +566,41 @@ qboolean vfsPackFile( const char *filename, const char *packname, const int comp
 
        return qfalse;
 }
+
+qboolean vfsPackFile_Absolute_Path( const char *filepath, const char *filename, const char *packname, const int compLevel ){
+       char tmp[NAME_MAX];
+       strcpy( tmp, filepath );
+       if ( access( tmp, R_OK ) == 0 ) {
+               if ( access( packname, R_OK ) == 0 ) {
+                       mz_zip_archive zip;
+                       memset( &zip, 0, sizeof(zip) );
+                       mz_zip_reader_init_file( &zip, packname, 0 );
+                       mz_zip_writer_init_from_reader( &zip, packname );
+
+                       mz_bool success = MZ_TRUE;
+                       success &= mz_zip_writer_add_file( &zip, filename, tmp, 0, 0, compLevel );
+                       if ( !success || !mz_zip_writer_finalize_archive( &zip ) ){
+                               Error( "Failed creating zip archive \"%s\"!\n", packname );
+                       }
+                       mz_zip_reader_end( &zip);
+                       mz_zip_writer_end( &zip );
+               }
+               else{
+                       mz_zip_archive zip;
+                       memset( &zip, 0, sizeof(zip) );
+                       if( !mz_zip_writer_init_file( &zip, packname, 0 ) ){
+                               Error( "Failed creating zip archive \"%s\"!\n", packname );
+                       }
+                       mz_bool success = MZ_TRUE;
+                       success &= mz_zip_writer_add_file( &zip, filename, tmp, 0, 0, compLevel );
+                       if ( !success || !mz_zip_writer_finalize_archive( &zip ) ){
+                               Error( "Failed creating zip archive \"%s\"!\n", packname );
+                       }
+                       mz_zip_writer_end( &zip );
+               }
+
+               return qtrue;
+       }
+
+       return qfalse;
+}