# this updates the tiles-title.png file with the necessary tiles for the title image, and generates the title name table
java -cp java/MSXSpelunky.jar PNGtoMSX.GenerateTitleScreenData data/title-draft3-patterns.png data/title-draft3-sprites.png data/tiles-title-base.png data/tiles-title.png > src/autogenerated/title-data.asm


# generate the graphics files:
java -cp java/MSXSpelunky.jar PNGtoMSX.ConvertPatternsToAssembler data/tiles-title.png > src/autogenerated/patterns-title.asm
java -cp java/MSXSpelunky.jar PNGtoMSX.ConvertPatternsToAssembler data/tiles-jungle.png > src/autogenerated/patterns-jungle.asm
# java -cp java/MSXSpelunky.jar PNGtoMSX.GenerateAssemblerPatternPatch data/tiles-title.png data/tiles-jungle.png title_jungle > src/autogenerated/patterns-title-jungle-patch.asm
java -cp java/MSXSpelunky.jar PNGtoMSX.GenerateAssemblerPatternPatch data/tiles-jungle.png data/tiles-outer-ruins.png title_jungle > src/autogenerated/patterns-jungle-outer-ruins-patch.asm
java -cp java/MSXSpelunky.jar PNGtoMSX.GenerateAssemblerPatternPatch data/tiles-outer-ruins.png data/tiles-inner-ruins.png title_jungle > src/autogenerated/patterns-outer-inner-ruins-patch.asm


java -cp java/MSXSpelunky.jar PNGtoMSX.ConvertPNGtoAssemblerSprites data/character.png player_sprite_ > src/autogenerated/spelunk-playersprites.asm
java -cp java/MSXSpelunky.jar PNGtoMSX.ConvertPNGtoAssemblerSprites data/item-sprites.png item_sprite_ > src/autogenerated/spelunk-itemsprites.asm
java -cp java/MSXSpelunky.jar PNGtoMSX.ConvertPNGtoAssemblerSprites data/enemies.png enemy_sprite_ > src/autogenerated/spelunk-enemysprites.asm


# generate the letters and other data needed for the intro:
java -cp java/MSXSpelunky.jar PNGtoMSX.GenerateIntroData data/intro.tmx data/intro-sprites.png > src/autogenerated/intro-data.asm
java -cp java/MSXSpelunky.jar GenerateLetter data/letter1.txt > src/autogenerated/letter1.asm
java -cp java/MSXSpelunky.jar GenerateLetter data/letter2.txt > src/autogenerated/letter2.asm
java -cp java/MSXSpelunky.jar GenerateLetter data/letter3.txt > src/autogenerated/letter3.asm
java -cp java/MSXSpelunky.jar GenerateLetter data/letter4.txt > src/autogenerated/letter4.asm


# Generate the music files
java -cp java/MSXSpelunky.jar music.XSpelunkyMusic src/autogenerated


# compile the generated asm files:
java -jar java/glass-0.5.jar src/autogenerated/patterns-title.asm src/autogenerated/patterns-title.bin
java -jar java/glass-0.5.jar src/autogenerated/patterns-jungle.asm src/autogenerated/patterns-jungle.bin
# java -jar java/glass-0.5.jar src/autogenerated/patterns-title-jungle-patch.asm src/autogenerated/patterns-title-jungle-patch.bin
java -jar java/glass-0.5.jar src/autogenerated/patterns-jungle-outer-ruins-patch.asm src/autogenerated/patterns-jungle-outer-ruins-patch.bin
java -jar java/glass-0.5.jar src/autogenerated/patterns-outer-inner-ruins-patch.asm src/autogenerated/patterns-outer-inner-ruins-patch.bin
java -jar java/glass-0.5.jar src/autogenerated/spelunk-playersprites.asm src/autogenerated/spelunk-playersprites.bin
java -jar java/glass-0.5.jar src/autogenerated/spelunk-itemsprites.asm src/autogenerated/spelunk-itemsprites.bin
java -jar java/glass-0.5.jar src/autogenerated/spelunk-enemysprites.asm src/autogenerated/spelunk-enemysprites.bin
java -jar java/glass-0.5.jar src/autogenerated/title-data.asm src/autogenerated/title-data.bin
java -jar java/glass-0.5.jar src/autogenerated/intro-data.asm src/autogenerated/intro-data.bin
java -jar java/glass-0.5.jar src/autogenerated/letter1.asm src/autogenerated/letter1.bin
java -jar java/glass-0.5.jar src/autogenerated/letter2.asm src/autogenerated/letter2.bin
java -jar java/glass-0.5.jar src/autogenerated/letter3.asm src/autogenerated/letter3.bin
java -jar java/glass-0.5.jar src/autogenerated/letter4.asm src/autogenerated/letter4.bin
java -jar java/glass-0.5.jar src/autogenerated/spelunk-intro-song.asm src/autogenerated/spelunk-intro-song.bin
java -jar java/glass-0.5.jar src/autogenerated/spelunk-letter-song.asm src/autogenerated/spelunk-letter-song.bin
java -jar java/glass-0.5.jar src/autogenerated/spelunk-gamestart-song.asm src/autogenerated/spelunk-gamestart-song.bin
java -jar java/glass-0.5.jar src/autogenerated/spelunk-gameover-song.asm src/autogenerated/spelunk-gameover-song.bin
java -jar java/glass-0.5.jar src/autogenerated/spelunk-ingame-song.asm src/autogenerated/spelunk-ingame-song.bin
java -jar java/glass-0.5.jar src/autogenerated/spelunk-ingame2-song.asm src/autogenerated/spelunk-ingame2-song.bin


# compress data with pletter:
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/patterns-title.bin src/autogenerated/patterns-title.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/patterns-jungle.bin src/autogenerated/patterns-jungle.plt
# java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/patterns-title-jungle-patch.bin src/autogenerated/patterns-title-jungle-patch.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/patterns-jungle-outer-ruins-patch.bin src/autogenerated/patterns-jungle-outer-ruins-patch.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/patterns-outer-inner-ruins-patch.bin src/autogenerated/patterns-outer-inner-ruins-patch.plt

java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/spelunk-playersprites.bin src/autogenerated/spelunk-playersprites.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/spelunk-itemsprites.bin src/autogenerated/spelunk-itemsprites.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/spelunk-enemysprites.bin src/autogenerated/spelunk-enemysprites.plt

java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/title-data.bin src/autogenerated/title-data.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/intro-data.bin src/autogenerated/intro-data.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/letter1.bin src/autogenerated/letter1.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/letter2.bin src/autogenerated/letter2.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/letter3.bin src/autogenerated/letter3.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/letter4.bin src/autogenerated/letter4.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/spelunk-intro-song.bin src/autogenerated/spelunk-intro-song.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/spelunk-letter-song.bin src/autogenerated/spelunk-letter-song.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/spelunk-gamestart-song.bin src/autogenerated/spelunk-gamestart-song.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/spelunk-gameover-song.bin src/autogenerated/spelunk-gameover-song.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/spelunk-ingame-song.bin src/autogenerated/spelunk-ingame-song.plt
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/spelunk-ingame2-song.bin src/autogenerated/spelunk-ingame2-song.plt


# generate, compile and compress the PCG asm files:
java -cp java/MSXSpelunky.jar pcg.GenerateJungleASMLevelChunksIndividually
for i in {0..25}
do
  java -jar java/glass-0.5.jar src/autogenerated/pcg-jungle-chunk$i.asm src/autogenerated/pcg-jungle-chunk$i.bin
  java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/pcg-jungle-chunk$i.bin src/autogenerated/pcg-jungle-chunk$i.plt
done
java -cp java/MSXSpelunky.jar pcg.GenerateOuterRuinsASMLevelChunksIndividually
for i in {0..23}
do
  java -jar java/glass-0.5.jar src/autogenerated/pcg-outerruins-chunk$i.asm src/autogenerated/pcg-outerruins-chunk$i.bin
  java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/pcg-outerruins-chunk$i.bin src/autogenerated/pcg-outerruins-chunk$i.plt
done
java -cp java/MSXSpelunky.jar pcg.GenerateInnerRuinsASMLevelChunksIndividually
for i in {0..19}
do
  java -jar java/glass-0.5.jar src/autogenerated/pcg-innerruins-chunk$i.asm src/autogenerated/pcg-innerruins-chunk$i.bin
  java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/pcg-innerruins-chunk$i.bin src/autogenerated/pcg-innerruins-chunk$i.plt
done

# compress the SFX:
java -jar java/glass-0.5.jar src/spelunk-sound-sfx.asm src/autogenerated/spelunk-sound-sfx.bin src/autogenerated/spelunk-sound-sfx-table.asm
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/spelunk-sound-sfx.bin src/autogenerated/spelunk-sound-sfx.plt

# compress the ROM-to-RAM:
java -jar java/glass-0.5.jar src/spelunk-rom-to-ram.asm src/autogenerated/spelunk-rom-to-ram.bin
java -cp java/MSXSpelunky.jar utils.Pletter src/autogenerated/spelunk-rom-to-ram.bin src/autogenerated/spelunk-rom-to-ram.plt

rm src/autogenerated/*.bin

