Heroine Anthem [master]

Fix makefile and scenario builder, add early battle expansion

81a04c764348da452f50489e1fb8bdf96dd0a3f5
diff --git a/Makefile b/Makefile
index 0f0642b..4b2a618 100644
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,20 @@ HALANG=en
 
 all:
 	@mkdir -p ./build
-	@echo "Build of replacement files complete!"
+	@echo "This function does not do anything yet."
+	@echo "Perhaps you wanted to run `make ha1`."
+
+.PHONY: ha1
+ha1:
+	@mkdir -p ./build/ha1/battle
+	@mkdir -p ./build/ha1/data
+	@mkdir -p ./build/ha1/script
+	@echo "Copying fonts..."
+	@cp ./working/$(HALANG)/ha1/fonts/*.wfn ./build/ha1
+	@echo "Building game script..."
+	@./toolchain/scinsert.php $(HA1PATH) ./working/en/ha1/script ./resources/ha1/keys ./build/ha1/script
+	@echo "Building item STRUCT..."
+	@./toolchain/itminsert.php $(HA1PATH) ./working/en/ha1/data/item.txt ./build/ha1/data/item.ifo
 
 .PHONY: dump
 dump:
@@ -15,49 +28,74 @@ dump:
 	@echo "Extracting game graphics..."
 	@mkdir -p ./resources/image/ha1
 	@mkdir -p ./resources/image/ha2
-	@./toolchain/wtunpack.php  $(HA1PATH)/wtb/WTImage.bin ./resources/ha1/image
-	@./toolchain/wtunpack.php  $(HA2PATH)/wtb/WTImage.cab ./resources/ha2/image
+	@./toolchain/wtunpack.php $(HA1PATH)/wtb/WTImage.bin ./resources/ha1/image
+	@./toolchain/wtunpack.php $(HA2PATH)/wtb/WTImage.cab ./resources/ha2/image
 	@echo "Extracting game animations..."
 	@mkdir -p ./resources/ani/ha1
 	@mkdir -p ./resources/ani/ha2
-	@./toolchain/wtunpack.php  $(HA1PATH)/wtb/WTAnime.bin ./resources/ha1/ani
-	@./toolchain/wtunpack.php  $(HA2PATH)/wtb/WTAnime.cab ./resources/ha2/ani
+	@./toolchain/wtunpack.php $(HA1PATH)/wtb/WTAnime.bin ./resources/ha1/ani
+	@./toolchain/wtunpack.php $(HA2PATH)/wtb/WTAnime.cab ./resources/ha2/ani
 	@echo "Extracting game voice..."
 	@mkdir -p ./resources/voice/ha1
 	@mkdir -p ./resources/voice/ha2
-	@./toolchain/wtunpack.php  $(HA1PATH)/wtb/WTVoice.bin ./resources/ha1/voice
-	@./toolchain/wtunpack.php  $(HA2PATH)/wtb/WTVoice.cab ./resources/ha2/voice
+	@./toolchain/wtunpack.php $(HA1PATH)/wtb/WTVoice.bin ./resources/ha1/voice
+	@./toolchain/wtunpack.php $(HA2PATH)/wtb/WTVoice.cab ./resources/ha2/voice
+
+.PHONY: preview
+preview:
+	@echo "Building image and animation previews..."
+	@echo ""
+	@echo "**************************************************"
+	@echo "**       WARNING: THIS TAKES A LONG TIME!       **"
+	@echo "**            PRESS CTRL+C TO CANCEL            **"
+	@echo "**************************************************"
+	@echo ""
+	@mkdir -p ./resources/ha1/image.preview
+	@mkdir -p ./resources/ha2/image.preview
+	@mkdir -p ./resources/ha1/ani.preview
+	@mkdir -p ./resources/ha2/ani.preview
+	@./toolchain/imgpreview.php ./resources/ha1/image ./resources/ha1/image.preview
+	@./toolchain/imgpreview.php ./resources/ha2/image ./resources/ha2/image.preview
+	@./toolchain/anipreview.php ./resources/ha1/ani ./resources/ha1/ani.preview
+	@./toolchain/anipreview.php ./resources/ha2/ani ./resources/ha2/ani.preview
 
 .PHONY: working
 working:
 	@echo "Building clean working directory..."
-    @mkdir -p ./working/new/ha1/strings
-    @mkdir -p ./working/new/ha2/strings
-	@./toolchain/scdump.php $(HA1PATH) ./resources/ha1/keys ./working/new/ha1/strings
-	@./toolchain/scdump.php $(HA2PATH) ./resources/ha2/keys ./working/new/ha2/strings
+	@mkdir -p ./working/new/ha1/strings
+	@mkdir -p ./working/new/ha2/strings
 	@mkdir -p ./working/new/ha1/ani
 	@mkdir -p ./working/new/ha2/ani
+	@mkdir -p ./working/new/ha1/data
+	@mkdir -p ./working/new/ha2/data
+	@mkdir -p ./working/new/ha1/fonts
+	@mkdir -p ./working/new/ha2/fonts
 	@mkdir -p ./working/new/ha1/image
 	@mkdir -p ./working/new/ha2/image
-
-.PHONY: preview
-preview:
-	@echo "Building PNG previews..."
-	@echo "***************************************************"
-	@echo "**       WARNING:  THIS TAKES A LONG TIME!       **"
-	@echo "***************************************************"
-	@mkdir -p ./resources/ha1/image-png
-	@mkdir -p ./resources/ha2/image-png
-	@mkdir -p ./resources/ha1/ani-png
-	@mkdir -p ./resources/ha2/ani-png
-	@./toolchain/imgpreview.php ./resources/ha1/image ./resources/ha1/img-png
-	@./toolchain/imgpreview.php ./resources/ha2/image ./resources/ha2/img-png
-	@./toolchain/anipreview.php ./resources/ha1/ani ./resources/ha1/ani-png
-	@./toolchain/anipreview.php ./resources/ha2/ani ./resources/ha2/ani-png
+	@echo "Extracting cleaned scripts..."
+	@./toolchain/scdump.php $(HA1PATH) ./resources/ha1/keys ./working/new/ha1/strings
+	@echo "Extracting items and descriptions..."
+	@./toolchain/itmdump.php $(HA1PATH) ./working/new/ha1/data/item.txt
+	@echo "Extracting spells and descriptions..."
+	@./toolchain/spldump.php $(HA1PATH) ./working/new/ha1/data/spell.txt
 
 .PHONY: distclean
 distclean:
 	rm -rf ./build/*
+	rm -rf ./resources/ha1/ani
+	rm -rf ./resources/ha2/ani
+	rm -rf ./resources/ha1/ani.preview
+	rm -rf ./resources/ha2/ani.preview
+	rm -rf ./resources/ha1/battle
+	rm -rf ./resources/ha2/battle
+	rm -rf ./resources/ha1/image
+	rm -rf ./resources/ha2/image
+	rm -rf ./resources/ha1/image.preview
+	rm -rf ./resources/ha2/image.preview
+	rm -rf ./resources/ha1/script
+	rm -rf ./resources/ha2/script
+	rm -rf ./resources/ha1/voice
+	rm -rf ./resources/ha2/voice
 
 clean:
 	rm -rf ./build/*
diff --git a/resources/ha1/battle/039.bto b/resources/ha1/battle/039.bto
new file mode 100644
index 0000000..4c191b5
Binary files /dev/null and b/resources/ha1/battle/039.bto differ
diff --git a/resources/ha1/battle/b0000.btl b/resources/ha1/battle/b0000.btl
new file mode 100644
index 0000000..793fb57
Binary files /dev/null and b/resources/ha1/battle/b0000.btl differ
diff --git a/resources/ha1/battle/b0001.btl b/resources/ha1/battle/b0001.btl
new file mode 100644
index 0000000..793fb57
Binary files /dev/null and b/resources/ha1/battle/b0001.btl differ
diff --git a/resources/ha1/battle/b0002.btl b/resources/ha1/battle/b0002.btl
new file mode 100644
index 0000000..793fb57
Binary files /dev/null and b/resources/ha1/battle/b0002.btl differ
diff --git a/resources/ha1/battle/b0003.btl b/resources/ha1/battle/b0003.btl
new file mode 100644
index 0000000..793fb57
Binary files /dev/null and b/resources/ha1/battle/b0003.btl differ
diff --git a/resources/ha1/battle/b0004.btl b/resources/ha1/battle/b0004.btl
new file mode 100644
index 0000000..793fb57
Binary files /dev/null and b/resources/ha1/battle/b0004.btl differ
diff --git a/resources/ha1/battle/bad.btl b/resources/ha1/battle/bad.btl
new file mode 100644
index 0000000..14999b6
Binary files /dev/null and b/resources/ha1/battle/bad.btl differ
diff --git a/resources/ha1/battle/cow.btl b/resources/ha1/battle/cow.btl
new file mode 100644
index 0000000..5c54e76
Binary files /dev/null and b/resources/ha1/battle/cow.btl differ
diff --git a/resources/ha1/battle/dog.btl b/resources/ha1/battle/dog.btl
new file mode 100644
index 0000000..16e3aaa
Binary files /dev/null and b/resources/ha1/battle/dog.btl differ
diff --git a/resources/ha1/battle/e005.bto b/resources/ha1/battle/e005.bto
new file mode 100644
index 0000000..636039e
Binary files /dev/null and b/resources/ha1/battle/e005.bto differ
diff --git a/resources/ha1/battle/e008.bto b/resources/ha1/battle/e008.bto
new file mode 100644
index 0000000..70da108
Binary files /dev/null and b/resources/ha1/battle/e008.bto differ
diff --git a/resources/ha1/battle/e012.bto b/resources/ha1/battle/e012.bto
new file mode 100644
index 0000000..98bed04
Binary files /dev/null and b/resources/ha1/battle/e012.bto differ
diff --git a/resources/ha1/battle/e013.bto b/resources/ha1/battle/e013.bto
new file mode 100644
index 0000000..e78fe85
Binary files /dev/null and b/resources/ha1/battle/e013.bto differ
diff --git a/resources/ha1/battle/e019.bto b/resources/ha1/battle/e019.bto
new file mode 100644
index 0000000..590310a
Binary files /dev/null and b/resources/ha1/battle/e019.bto differ
diff --git a/resources/ha1/battle/e022.bto b/resources/ha1/battle/e022.bto
new file mode 100644
index 0000000..c894663
Binary files /dev/null and b/resources/ha1/battle/e022.bto differ
diff --git a/resources/ha1/battle/e023.bto b/resources/ha1/battle/e023.bto
new file mode 100644
index 0000000..0a4235d
Binary files /dev/null and b/resources/ha1/battle/e023.bto differ
diff --git a/resources/ha1/battle/e027.bto b/resources/ha1/battle/e027.bto
new file mode 100644
index 0000000..c423c47
Binary files /dev/null and b/resources/ha1/battle/e027.bto differ
diff --git a/resources/ha1/battle/e037.bto b/resources/ha1/battle/e037.bto
new file mode 100644
index 0000000..b133ec3
Binary files /dev/null and b/resources/ha1/battle/e037.bto differ
diff --git a/resources/ha1/battle/e038.bto b/resources/ha1/battle/e038.bto
new file mode 100644
index 0000000..def2ad6
Binary files /dev/null and b/resources/ha1/battle/e038.bto differ
diff --git a/resources/ha1/battle/e039.bto b/resources/ha1/battle/e039.bto
new file mode 100644
index 0000000..4586af9
Binary files /dev/null and b/resources/ha1/battle/e039.bto differ
diff --git a/resources/ha1/battle/e043.bto b/resources/ha1/battle/e043.bto
new file mode 100644
index 0000000..7a24956
Binary files /dev/null and b/resources/ha1/battle/e043.bto differ
diff --git a/resources/ha1/battle/e050.bto b/resources/ha1/battle/e050.bto
new file mode 100644
index 0000000..103ea2b
Binary files /dev/null and b/resources/ha1/battle/e050.bto differ
diff --git a/resources/ha1/battle/e061.bto b/resources/ha1/battle/e061.bto
new file mode 100644
index 0000000..0b39f6a
Binary files /dev/null and b/resources/ha1/battle/e061.bto differ
diff --git a/resources/ha1/battle/e062.bto b/resources/ha1/battle/e062.bto
new file mode 100644
index 0000000..37100be
Binary files /dev/null and b/resources/ha1/battle/e062.bto differ
diff --git a/resources/ha1/battle/e063.bto b/resources/ha1/battle/e063.bto
new file mode 100644
index 0000000..31d7b45
Binary files /dev/null and b/resources/ha1/battle/e063.bto differ
diff --git a/resources/ha1/battle/e065.bto b/resources/ha1/battle/e065.bto
new file mode 100644
index 0000000..6251ca5
Binary files /dev/null and b/resources/ha1/battle/e065.bto differ
diff --git a/resources/ha1/battle/e068.bto b/resources/ha1/battle/e068.bto
new file mode 100644
index 0000000..7c96850
Binary files /dev/null and b/resources/ha1/battle/e068.bto differ
diff --git a/resources/ha1/battle/e070.bto b/resources/ha1/battle/e070.bto
new file mode 100644
index 0000000..1d17f76
Binary files /dev/null and b/resources/ha1/battle/e070.bto differ
diff --git a/resources/ha1/battle/e071.bto b/resources/ha1/battle/e071.bto
new file mode 100644
index 0000000..2e49696
Binary files /dev/null and b/resources/ha1/battle/e071.bto differ
diff --git a/resources/ha1/battle/e072.bto b/resources/ha1/battle/e072.bto
new file mode 100644
index 0000000..d8319e5
Binary files /dev/null and b/resources/ha1/battle/e072.bto differ
diff --git a/resources/ha1/battle/e073.bto b/resources/ha1/battle/e073.bto
new file mode 100644
index 0000000..4a38702
Binary files /dev/null and b/resources/ha1/battle/e073.bto differ
diff --git a/resources/ha1/battle/e074.bto b/resources/ha1/battle/e074.bto
new file mode 100644
index 0000000..9eb4a23
Binary files /dev/null and b/resources/ha1/battle/e074.bto differ
diff --git a/resources/ha1/battle/e079 b/resources/ha1/battle/e079
new file mode 100644
index 0000000..17edf7d
Binary files /dev/null and b/resources/ha1/battle/e079 differ
diff --git a/resources/ha1/battle/e079.bto b/resources/ha1/battle/e079.bto
new file mode 100644
index 0000000..ea92963
Binary files /dev/null and b/resources/ha1/battle/e079.bto differ
diff --git a/resources/ha1/battle/e123.bto b/resources/ha1/battle/e123.bto
new file mode 100644
index 0000000..e67ddae
Binary files /dev/null and b/resources/ha1/battle/e123.bto differ
diff --git a/resources/ha1/battle/e13.bto b/resources/ha1/battle/e13.bto
new file mode 100644
index 0000000..99d6eb9
Binary files /dev/null and b/resources/ha1/battle/e13.bto differ
diff --git a/resources/ha1/battle/e159.bto b/resources/ha1/battle/e159.bto
new file mode 100644
index 0000000..d68b217
Binary files /dev/null and b/resources/ha1/battle/e159.bto differ
diff --git a/resources/ha1/battle/e160.bto b/resources/ha1/battle/e160.bto
new file mode 100644
index 0000000..7dc156a
Binary files /dev/null and b/resources/ha1/battle/e160.bto differ
diff --git a/resources/ha1/battle/e19.bto b/resources/ha1/battle/e19.bto
new file mode 100644
index 0000000..645e8c1
Binary files /dev/null and b/resources/ha1/battle/e19.bto differ
diff --git a/resources/ha1/battle/e333.bto b/resources/ha1/battle/e333.bto
new file mode 100644
index 0000000..89f7081
Binary files /dev/null and b/resources/ha1/battle/e333.bto differ
diff --git a/resources/ha1/battle/e36.bto b/resources/ha1/battle/e36.bto
new file mode 100644
index 0000000..6351317
Binary files /dev/null and b/resources/ha1/battle/e36.bto differ
diff --git a/resources/ha1/battle/e50.bto b/resources/ha1/battle/e50.bto
new file mode 100644
index 0000000..87d6b7a
Binary files /dev/null and b/resources/ha1/battle/e50.bto differ
diff --git a/resources/ha1/battle/e876.bto b/resources/ha1/battle/e876.bto
new file mode 100644
index 0000000..bf6919d
Binary files /dev/null and b/resources/ha1/battle/e876.bto differ
diff --git a/resources/ha1/battle/e908.bto b/resources/ha1/battle/e908.bto
new file mode 100644
index 0000000..f0afd19
Binary files /dev/null and b/resources/ha1/battle/e908.bto differ
diff --git a/resources/ha1/battle/e936.bto b/resources/ha1/battle/e936.bto
new file mode 100644
index 0000000..12ddd0a
Binary files /dev/null and b/resources/ha1/battle/e936.bto differ
diff --git a/resources/ha1/battle/e956.bto b/resources/ha1/battle/e956.bto
new file mode 100644
index 0000000..93ec718
Binary files /dev/null and b/resources/ha1/battle/e956.bto differ
diff --git a/resources/ha1/battle/e957.bto b/resources/ha1/battle/e957.bto
new file mode 100644
index 0000000..67e6bd1
Binary files /dev/null and b/resources/ha1/battle/e957.bto differ
diff --git a/resources/ha1/battle/e980.bto b/resources/ha1/battle/e980.bto
new file mode 100644
index 0000000..51a896b
Binary files /dev/null and b/resources/ha1/battle/e980.bto differ
diff --git a/resources/ha1/battle/e981.bto b/resources/ha1/battle/e981.bto
new file mode 100644
index 0000000..597e8e3
Binary files /dev/null and b/resources/ha1/battle/e981.bto differ
diff --git a/resources/ha1/battle/m00.bto b/resources/ha1/battle/m00.bto
new file mode 100644
index 0000000..c1e916b
Binary files /dev/null and b/resources/ha1/battle/m00.bto differ
diff --git a/resources/ha1/battle/m01.bto b/resources/ha1/battle/m01.bto
new file mode 100644
index 0000000..b5b322d
Binary files /dev/null and b/resources/ha1/battle/m01.bto differ
diff --git a/resources/ha1/battle/m02.bto b/resources/ha1/battle/m02.bto
new file mode 100644
index 0000000..b1a39eb
Binary files /dev/null and b/resources/ha1/battle/m02.bto differ
diff --git a/resources/ha1/battle/m03.bto b/resources/ha1/battle/m03.bto
new file mode 100644
index 0000000..b0894ec
Binary files /dev/null and b/resources/ha1/battle/m03.bto differ
diff --git a/resources/ha1/battle/m08.bto b/resources/ha1/battle/m08.bto
new file mode 100644
index 0000000..efe1e28
Binary files /dev/null and b/resources/ha1/battle/m08.bto differ
diff --git a/resources/ha1/battle/m09.bto b/resources/ha1/battle/m09.bto
new file mode 100644
index 0000000..598d4cc
Binary files /dev/null and b/resources/ha1/battle/m09.bto differ
diff --git a/resources/ha1/battle/m10.bto b/resources/ha1/battle/m10.bto
new file mode 100644
index 0000000..1ca7795
Binary files /dev/null and b/resources/ha1/battle/m10.bto differ
diff --git a/resources/ha1/battle/ttt.bto b/resources/ha1/battle/ttt.bto
new file mode 100644
index 0000000..bfa2ed0
Binary files /dev/null and b/resources/ha1/battle/ttt.bto differ
diff --git a/resources/ha1/battle/tutor.btl b/resources/ha1/battle/tutor.btl
new file mode 100644
index 0000000..e1d34b5
Binary files /dev/null and b/resources/ha1/battle/tutor.btl differ
diff --git a/toolchain/scinsert.php b/toolchain/scinsert.php
index 051026e..1401462 100755
--- a/toolchain/scinsert.php
+++ b/toolchain/scinsert.php
@@ -13,7 +13,7 @@ output_path will be created if it does not exist
 
 */
 
-echo "Heroine Anthem String Extractor v1.0 (cli)\n";
+echo "Heroine Anthem String Inserter v1.0 (cli)\n";
 
 include("tools.php");
 
@@ -23,7 +23,7 @@ $regex2 = "/\\n[#].*/";   // Match #Comment
 if ($argc < 4) { DisplayOptions(); die; }
 else { $path = $argv[1]; $str_path = $argv[2]; $key_path = $argv[3]; $out_path = $argv[4]; }
 
-$filelist = scandir($argv[1]."/script");
+$filelist = scandir("$path/script");
 @mkdir($out_path);
 
 foreach($filelist as &$file) {
@@ -45,7 +45,7 @@ foreach($filelist as &$file) {
 	
 	// Files with no editable strings do not need processing
 	if(strlen($keys) == 0) {
-		copy("$path/script/$file", "$out_path/script/$file");
+		copy("$path/script/$file", "$out_path/$file");
 		continue;
 	}
 	
@@ -73,7 +73,7 @@ foreach($filelist as &$file) {
 	
 	// Identify header type
 	$fd = fopen("$path/script/$file", "rb");
-	$fo = fopen("$out_path/script/$file", "w");
+	$fo = fopen("$out_path/$file", "w");
 	fseek($fd, 0x1006, SEEK_SET);
 	$test = fgetdw($fd);
 	if(($test >> 8) != 0xcdcdcd && $test != 3)