diff --git a/.gitignore b/.gitignore index 082b81f9..257889a1 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,8 @@ jni/src/MobileTouchControls/MobileTouchControls local.properties +*.apk + +assets/extras.pak + res/values/git-rev.xml diff --git a/build-test.sh b/build-test.sh index 82b23abb..89bf783a 100644 --- a/build-test.sh +++ b/build-test.sh @@ -5,6 +5,7 @@ APKBUILDER=./../apkbuilder mkdir gen mkdir bin sh gen-version.sh test build +python2.7 makepak.py xash-extras assets/extras.pak $AAPT package -m -J gen/ --rename-manifest-package in.celest.xash3d.hl -M AndroidManifest.xml -S test/res -I $ANDROID_JAR $JAVA_HOME/bin/javac -d bin/classes -s bin/classes -cp $ANDROID_JAR src/org/libsdl/app/SDLActivity.java gen/in/celest/xash3d/hl/R.java src/in/celest/xash3d/* $DX --dex --output=bin/classes.dex bin/classes/ diff --git a/makepak.py b/makepak.py new file mode 100644 index 00000000..e2cbd429 --- /dev/null +++ b/makepak.py @@ -0,0 +1,43 @@ +import sys +import struct +import os + +#dummy class for stuffing the file headers into +class FileEntry: + pass + +#arguments are source directory, then target filename e.g. "pak1.pak" +rootdir = sys.argv[1] +pakfilename = sys.argv[2] + +pakfile = open(pakfilename,"wb") + +#write a dummy header to start with +pakfile.write(struct.Struct("<4s2l").pack(b"PACK",0,0)) + +#walk the directory recursively, add the files and record the file entries +offset = 12 +fileentries = [] +for root, subFolders, files in os.walk(rootdir): + for file in files: + entry = FileEntry() + impfilename = os.path.join(root,file) + entry.filename = os.path.relpath(impfilename,rootdir).replace("\\","/") + with open(impfilename, "rb") as importfile: + pakfile.write(importfile.read()) + entry.offset = offset + entry.length = importfile.tell() + offset = offset + entry.length + fileentries.append(entry) +tablesize = 0 + +#after all the file data, write the list of entries +for entry in fileentries: + pakfile.write(struct.Struct("<56s").pack(entry.filename.encode("ascii"))) + pakfile.write(struct.Struct("