summaryrefslogtreecommitdiff
path: root/utils/vpk/mktestpack.pl
diff options
context:
space:
mode:
Diffstat (limited to 'utils/vpk/mktestpack.pl')
-rw-r--r--utils/vpk/mktestpack.pl44
1 files changed, 44 insertions, 0 deletions
diff --git a/utils/vpk/mktestpack.pl b/utils/vpk/mktestpack.pl
new file mode 100644
index 0000000..8bd9546
--- /dev/null
+++ b/utils/vpk/mktestpack.pl
@@ -0,0 +1,44 @@
+#! perl
+
+# make a simple fixed pak file for testing code. This utility is only for testing the code
+# before writing the "real" utility. The files that are packed are fake
+
+
+
+$ndatfileindex=0;
+$ndatoffset=0;
+
+$nullbyte = pack("C",0);
+
+foreach $ext ("txt","vtf")
+ {
+ $dirout.=$ext.$nullbyte;
+ foreach $dir("dir1","dir2")
+ {
+ $dirout.=$dir.$nullbyte;
+ foreach $file("test1","test2")
+ {
+ $fdata=$file x 5;
+ $dirout.=$file.$nullbyte;
+ $dirout.=pack("V",crc32($fdata));
+ $dirout.=pack("v",0); #meta data size
+ $dirout.=pack("C",$ndatfileindex);
+ $dirout.=pack("V",$ndatoffset);
+ $dirout.=pack("V",length($dataout));
+ $dataout.=$fdata;
+ $dirout.=pack("C",-1);
+ }
+ $dirout.=$nullbyte; # mark no more files
+ }
+ $dirout.=$nullbyte;
+ }
+$dirout.=$nullbyte;
+
+open(DIROUT,">test.dir") || die;
+binmode DIROUT;
+print DIROUT $dirout;
+close DIROUT;
+open(DATAOUT,">test_000.dat") || die;
+binmode DATAOUT;
+print DATAOUT $dataout;
+close DATAOUT;