;Standard Installer script
;Written by Marco Biondi
;@1995/96 Light Shock software s.n.c

(set destinazione @default-dest)

(set mask 0)

(while (= mask 0)
	(set mask
		(askoptions
			(prompt "Bitte wählen Sie Funktionen an:")
			(help @askoptions-help)
			(choices "Intro installieren" "Spiel installieren" "Boot Disk erstellen")
			(default %011)
		)
	)
)

(if (OR (IN mask 0) (IN mask 1))
	(
		(set version
			(askchoice
				(prompt "Welche Version wollen Sie installieren?")
				(help "Wählen Sie den Knopf an, der dem Chipset in Ihrem Amiga entspricht.\n"
					"ECS/OCS - Amiga 500, 2000, 500+, 600\n"
					"AGA - Amiga 1200, 4000"
				)
				(choices "AGA Version" "ECS/OCS Version")
			)
		)

		(set destinazione
			(askdir 
				(prompt ("Wählen Sie das Zielverzeichns für %s:" @app-name))
				(help @askdir-help)
				(default destinazione)
			)
		)

		(if (NOT (exists destinazione (quiet))) 
			(abort "Den angegebenen Pfad gibt es nicht!")
		)

		(set spaziorichiesto
			(+ 
				(* (IN mask 0) 800)
				(* (IN mask 1) (select version 1200 1100) )
			)
		)

		(set disponibile (/ (getdiskspace destinazione) 1024) )

		(if (< disponibile spaziorichiesto)
			(set domanda "ACHTUNG: NICHT GENUG PLATZ VORHANDEN!.\nTROTZDEM FORTFAHREN?"
			)
			(set domanda ""
			)	
		)

		(message 
			("Die Installation der angewählten Teile der %s Version von %s benötigt ca. %ld KB freien Diskspeicher.\n\n"
				(select version "AGA" "ECS")
				@app-name
				spaziorichiesto
			)
			("Im angewählten Pfad (%s) sind %ld KBytes verfügbar.\n\n"
				destinazione
				disponibile
			)
			domanda
		)
	)
)

(if (IN mask 0)
	(
		(askdisk
			(prompt "Legen Sie bitte die \"Intro\" Disk ein")
			(help @askdisk-help)
			(dest "BV.0")
		)
		(copyfiles
			(prompt "Installiere \"Intro\"")
			(help @copyfiles-help)
			(source "BV.0:")
			(dest destinazione)
			(choices "BVIntro" "Intro" "IntroDATA" "Music" "Txt" "LSLogo")
		)
		(copyfiles
			(prompt "Installiere \"Intro\"")
			(help @copyfiles-help)
			(source "BV.0:Intro.in")
			(dest destinazione)
			(newname "Intro.info")
		)
		(copylib
			(prompt "Installiere language library")
			(help @copylib-help)
			(source "BV.0:libs/lsdetect.library")
			(dest "LIBS:")
		)
	)
)

(complete 18)

(if (IN mask 1)
	(
		(askdisk
			(prompt "Legen Sie bitte Disk 1 ein")
			(help @askdisk-help)
			(dest "BV.1")
		)
		(copyfiles
			(prompt "Installiere Disk 1")
			(help @copyfiles-help)
			(source 
				("BV.1:%s"
					(select version "BVGame1200" "BVGame500")
				)
			)
			(dest destinazione)
			(newname "BVGame")
		)
		(copyfiles
			(prompt "Installiere Disk 1")
			(help @copyfiles-help)
			(source "BV.1:BVGame.in")
			(dest destinazione)
			(newname "BVGame.info")
		)
		(copyfiles
			(prompt "Installiere Disk 1")
			(help @copyfiles-help)
			(source "BV.1:")
			(dest destinazione)
			(choices "WinSequence" "LetUsDie")
		)
		(copylib
			(prompt "Installiere language library")
			(help @copylib-help)
			(source "BV.1:libs/lsdetect.library")
			(dest "LIBS:")
		)

		(complete 36)

		(askdisk
			(prompt "Bitte Disk 2")
			(help @askdisk-help)
			(dest "BV.2")
		)
		(if version
			(
				(copyfiles
					(prompt "Installiere Disk 2")
					(help @copyfiles-help)
					(source "BV.2:")
					(dest destinazione)
					(all)
				)
			)
			(
				(copyfiles
					(prompt "Installiere Disk 2")
					(help @copyfiles-help)
					(source "BV.2:")
					(dest destinazione)
					(choices "Mappiste" "Modules" "piste" "PisteRK" "RBG01" "RBG02" "RBG03" "RBG07" "ReiContinents")
				)
				(copyfiles
					(prompt "Installiere Disk 2")
					(help @copyfiles-help)
					(source "BV.2:")
					(dest (tackon destinazione "ReiEnemies"))
					(choices "ReiEnemies/Block09" "ReiEnemies/BLock06" )
				)
			)
		)

		(complete 54)

		(askdisk
			(prompt "Bitte Disk 3")
			(help @askdisk-help)
			(dest "BV.3")
		)
		(copyfiles
			(prompt "Installiere Disk 3")
			(help @copyfiles-help)
			(source "BV.3:")
			(dest destinazione)
			(all)
		)

		(complete 72)

		(askdisk
			(prompt "Bitte Disk 4")
			(help @askdisk-help)
			(dest "BV.4")
		)
		(if version
			(
				(copyfiles
					(prompt "Installiere Disk 4")
					(help @copyfiles-help)
					(source "BV.4:")
					(dest destinazione)
					(choices "SaveTopScore" "StartSequence" "DeathSequence" "Modules" "RBG05" )
				)
				(copyfiles
					(prompt "Installiere Disk 4")
					(help @copyfiles-help)
					(source "BV.4:")
					(dest (tackon destinazione "ReiEnemies"))
					(choices "ReiEnemies/Block11" )
				)
			)
			(
				(copyfiles
					(prompt "Installiere Disk 4")
					(help @copyfiles-help)
					(source "BV.4:")
					(dest destinazione)
					(all)
				)
			)
		)
	)
)

(complete 90)

(if (IN mask 0 1)
	(startup "BlackViper"
		(prompt "Updating User-Startup\n")
		(help @startup-help)
		(command ("Assign BV.0: \"%s\"\nAssign BV.1: \"%s\"\nAssign BV.2: \"%s\"\nAssign BV.3: \"%s\"\nAssign BV.4: \"%s\"\n" destinazione destinazione destinazione destinazione destinazione))
	)
)

(if (NOT (IN mask 2))
	(
		(set avchip (/ (database "graphics-mem") 1024))
		(set avfast (- (/ (database "total-mem") 1024) avchip))
		(set nechip (select version 800 512))
		(set nefast 512)

		(if
			(NOT	
				(OR
					(AND
						(>= avchip nechip)
						(>= avfast nefast)
					)
					(>= avchip (+ nechip nefast))
				)
			)
			(if
				(askbool
					(prompt ("ACHTUNG: Zur Zeit ist nicht genug Speicher frei, um %s zu starten.\n\nWollen Sie eine Boot Disk erstellen?" @app-name))
					(help "Der geringe freie Speicher kann von Applikationen verursacht werden, die gerade.\n"
						"laufen. Um zu überprüfen, ob Sie eine Boot Disk benötigen, starten Sie das Spiel sofort nach einem Reset.\n\n"
						"Sie können den Installer ggf. nochmals aufrufen und die Boot Disk dann erstellen."
					)
				)
				(set mask -1)
			)
		)
	)
)

(if (IN mask 2)
	(
		(message "Legen Sie eine leere, formattierte Disk in df0: ein und klicken dann auf \"Proceed\"."
			(help "Um eine Disk zu formattieren lesen Sie bitte die Workbench- oder AmigaDOS Anleitung.\n\n"
                              "Sie können das tun, ohne den Installer zu verlassen."
			)
		)
		(until
			(exists "df0:" (quiet) )
			(working "Warte auf eine Disk...")
		)
		(while (NOT (exists (tackon destinazione "BVGame") ) )
			(set destinazione
				(askdir 
					(prompt ("Bitte wählen Sie den Pfad, wo %s installiert ist." @app-name))
					(help @askdir-help)
					(default destinazione)
				)
			)
		)
		(set btype 1)
		(if (exists (tackon destinazione "BVIntro") )
			(set btype
				(askchoice
					(prompt "Wie soll gebootet werden:")
					(help @askoptions-help)
					(choices "Intro und Spiel" "Nur Spiel")
				)
			)
		)
		(working "Erstelle nötige Daten...")
		(makedir "df0:s")
		(makedir "df0:c")
		(makedir "df0:libs")
		(run "Install DF0:")
		(foreach "SYS:C" "(SetPatch|Cd|Assign)"
			(copyfiles
				(prompt "Schreibe Daten...")
				(help @copyfiles-help)
				(source ("SYS:C/%s" @each-name))
				(dest "df0:c")
			)
		)
		(copyfiles
			(prompt "Schreibe Daten...")
			(help @copyfiles-help)
			(source "LIBS:lsdetect.library")
			(dest "df0:Libs")
		)
		(textfile
			(dest "df0:s/Startup-sequence")
			(append
				(select	(exists
						"df0:C/SetPatch"
						(noreq)
					)
					(";No SetPatch on your system!\n")
					("SetPatch >NIL: QUIET\n")
				)
			)
			(append
				("CD \"%s\"\nAssign BV.0: \"%s\"\nAssign BV.1: \"%s\"\nAssign BV.2: \"%s\"\nAssign BV.3: \"%s\"\nAssign BV.4: \"%s\"\n" destinazione destinazione destinazione destinazione destinazione destinazione)
			)
			(append
				(select btype
					("LSLogo\nBvIntro\nLetUsDie BvGame\n")
					("LetUsDie BvGame\n")
				)
			)
		)
	)
)

(complete 100)

(exit "Um von der Festplatte zu starten führen Sie ein Reset aus und klicken auf das\n\n"
	"Spiel- oder Intro Icon. Für einen Bootdiskstart legen Sie die\n\n"
	"Boot Disk ein und lösen ein Reset aus. Viel Spaß." 
)