; $Id: Install-Floppy,v 1.12 92/11/09 13:24:14 djh Stable $
; This is the floppy-disk install script for DeluxePaint AGA -djh

(set osversion (/ (getversion) 65536))
(if (< osversion 37)
	(abort	"Il DeluxePaint richiede l'AmigaDOS 2.04 o successivo.")
)

(set localized (> osversion 38))

;(if (not localized)
	(askbool (prompt 
		(cat "Alcune opzioni di installazione non sono tradotte.\n\n "

			"Per la traduzione delle opzioni in inglese, fare "
			"clic sul pulsante di Aiuto \"Help...\" in basso.\n\n"

			"Vuoi continuare ?"
		))
		(help "Ecco alcuni dei principali termini usati "
			"dal programma d'installazione : \n\n"
			"BACK = ritorna alla pagina precedente.\n"
			"EXIT FROM HELP = esci da questo schermo d'aiuto.\n"
			"MORE = pagina seguente.\n\n"
			"YES = Sì.\n"
			"NO   = no.\n"
			"HELP = Aiuto.\n"
			"ABORT INSTALL = Abbandona installazione.\n\n"
			"Premere \"More\" per leggere la pagina seguente.\n"
			"Alcuni messaggi di installazione sono in inglese. Per avere "
			"la traduzione delle schermate d'aiuto, premere sul "
			"bottone \"Help\".\n\n"
			"Se premete su \"Abort Install\", riceverete i seguenti messaggi:\n\n"
			"PLEASE CONFIRM = confermare\n"
			"ARE YOU SURE YOU WANT TO ABORT = sei sicuro di voler abbandonare..\n"
		)
		(default 1)
	)
;)

;(if (not localized)
	(welcome "Benvenuti nell'utilità installazione del DeluxePaint IV. "
		"Indicare come deve procedere l'installazione (secondo la "
		"vostra conoscenza di Amiga).\n\n"

		"Aiuto sul modo di installazione\n\n"
		"Per continuare con l'installazione, dovete "
		"scegliere un \"Livello utente\". I differenti "
		"livelli sono i seguenti: \n\n"

		"    \"NOVICE\" = UTENTE NOVIZIO: in questo modo tutte le procedure "
		"saranno gestite in automatico dal programma di installazione. "
		"Comunque questa modalità è consigliata solo per computer "
		"Amiga che non abbiano un ambiente operativo altamente "
		"personalizzato, in quanto alcune assunzioni fatte dal "
    	        "programma sono valide solo su Amiga con ambiente operativo "
		"standard. Potrebbe essere comunque richiesto un intervento da "
                "parte vostra, come inserire i dischetti o scegliere altre "
                "opzioni.\n\n"

		"    \"INTERMEDIATE\" = UTENTE INTERMEDIO: in questo modo il programma di "
		"installazione vi richiede un numero maggiore di interventi "
		"tipo dove deve essere installata l'applicazione, senza "
		"richiedere fastidiosi interventi minori di copia dei file, "
                "creazione dei cassetti ecc..\n\n"

		"    \"EXPERT\" = UTENTE ESPERTO: in questo modo dovrete dare conferma "
		"di ogni passo del processo d'installazione (in alcuni "
		"casi più passi possono essere inclusi in una sola "
		"conferma). In aggiunta avrete un maggiore controllo "
		"di dove i vari oggetti verranno installati...\n\n"

		"    \"Proceed\" = \"Procedi con Install\" indica che avete scelto "
		"un livello utente e che l'installazione può procedere.\n"
		"    \"About\" = \"Informazioni\" vi fornisce informazioni riguardo "
		"il programma installatore, come informazioni di copyright, numero "
                "versione, autore, ecc..\n"
		"    \"Abort\" = \"Abbandona\" significa che avete cambiato idea "
		"e non volete installare l'applicazione in questo momento.\n"
		"    \"Help...\" = \"Aiuto....\" visualizza questo testo.\n\n"

; Note the following should really be assigned to @asksettings-help 
; or some other such variable; unfortunately such a variable does not exist

;	(cat  
		"Aiuto sul modo di installazione\n\n"
		"Opzioni di installazione:\n"
		"    \"Install For Real\" = \"Install reale:\" "
		"Questa scelta farà eseguire al programma l'installazione reale "
                "dell'applicativo.\n"
		"    \"Pretend to Install\" = \"Install virtuale:\" "
		"In questo modo, il programma installatore eseguirà tutti "
		"i passi dell'installazione eccetto che non farà nessuna "
		"modifica permanente. Potrete usare questa opzione per verificare "
                "le operazioni di installazione senza realmente eseguirle. "		
                "Inoltre è possibile usare questo bottone in combinazione con "
		"l'opzione \"Log-File\" per avere una lista completa di quello "
		"che accade durante l'installazione.\n"
		"    \"Printer\" = \"Stampante\" - Questa opzione permette la stampa "
		"di tutte le operazioni effettuate durante l'installazione sulla "
                "stampante.\n"
		"    \"Log File\" = \"File sequenza\" - Questa opzione permette "
           	"la creazione di un file che contiene la lista di tutte le "
		"operazioni effettuate durante l'installazione. Ad installazione "
		"completata sarete informati della posizione di questo file. "
                "Per leggerlo, potete usare un qualsiasi editor di testi.\n"
		"    \"None\" = \"Nulla\" - Quando questa opzione è attiva, "
		"non verrà generato il file sequenza.\n\n\n"
;	)
	)
;)

(if (not localized)
	(set @askdisk-help 
		"Inserire il disco corretto per continuare"
	)
)

(if (not localized)
	(set @askdir-help
		(cat "Si può impostare la selezione anche scrivendo "
			"il nome del nuovo cassetto nell'area testo  "
			""Cassetto attuale" o scrivendo il nome del file nell'area testo "
			""File scelto" o attivando i nomi dei cassetti o dei files "
			"lista scorrevole.\n"			
                        "Il bottone \"Parent Drawer\" vi permette di vedere il "
			"cassetto che contiene quello attuale, in altre parole il "
                        "cassetto "Padre" di quello attuale.\n"
			"    Il bottone \"Show drawer\" visualizza la lista dei dischi "
			"disponibili nel vostro sistema. Potrete attivare un nome "
			"per vedere il contenuto del disco.\n"
			"    Il bottone \"Make new drawer\" vi permette di creare "
			"un nuovo cassetto che sarà contenuto nella directory "
			"attualmente visualizzata.\n"
			"    Il bottone \"Proceed\" indica che siete soddisfatti "
			"delle scelte operate."
			"Il bottone \"Abort Install\" serve per interrompere "
			"l'installazione. Non verranno fatti altri cambiamenti. "
			"Aiuto... visualizza questo testo.\n\n "
		)
	)
)


(if (not localized)
	(set @makedir-help 
		(cat "Crea nuovo cassetto...\n\n"
			"Inserite il percorso completo del nuovo cassetto "
			"che volete creare. Verrà anche creata un'icona "
			"del nuovo cassetto salvo diversa selezione."

			"\"Create Icon for drawer\" = \"Crea icona cassetto\"\n\n"
		)
	)
)

(if (not localized)
	(set ASKBOOL-HELP "SI = YES, NO = NO")
	(set ASKBOOL-HELP "")
)

(set DISKPROMPT   "Inserire il dischetto \"%s\"." )
;

(set SOURCE_1n "DPaintIV Installazione Disco 1")
(set SOURCE_2n "DPaintIV Installazione Disco 2")
(set SOURCE_1 (cat SOURCE_1n ":"))
(set SOURCE_2 (cat SOURCE_2n ":"))

(set DEST_1n "DPaintIV")
(set DEST_2n "Art1")
(set DEST_3n "Art2")
(set DEST_1 (cat DEST_1n ":"))

(set PROGNAME "DPaint")
(set UNPACKER "lharc")
(set PACKWIN "NIL:")

(set RUNHELP
	(cat
		"L'installazione usa LHARC per decomprimere i file. Con questo "
		"metodo, si possono estrarre molti file da uno singolo."
	)
)

(set FORMATHELP
	("%s %s %s"
		"Il DeluxePaint richiede tre dischetti da formattare "
		"per decomprimere il proprio contenuto. Il contenuto "
	  	"dei dischetti andrà perduto."
	)
)

(procedure ask_sourcedisk
	(askdisk
		(prompt ("Inserire il dischetto \"%s\"." SrcDiskE))
		(help @askdisk-help)
		(dest SrcDiskE)
	)

	(set SrcDiskE (cat SrcDiskE ":"))
)

; Destination disk confirmation.
;  DstDiskE: The disk to insert
(procedure ask_destdisk
	(askdisk
		(prompt ("Inserire il dischetto \"%s\"." DstDiskE))
		(help @askdisk-help)
		(dest DstDiskE)
	)

	(set DstDiskE (cat DstDiskE ":"))
)

(procedure expand_basic
	(set tmp (cat FileE ".LZH"))
	(working ("Sto decomprimendo il file \"%s\"" tmp))

	(run
		("%s -mn x \"ram:%s\" \"%s\" > %s" UNPACKER tmp DestF PACKWIN)
		(help RUNHELP)
		(prompt ("Sto decomprimendo il file \"%s\"" tmp))
		(confirm)
	)

	(delete ("ram:%s" tmp))
)

(procedure expand_root
	(set DestF DstDiskE)
	(expand_basic)
)

;Standard packed directory creation/expansion procedure (with packed icons)
;  FileE        : Name of new directory and base archive name ("Colors")
;  DstDiskE     : The expansion directory ("DPaintIV:")
(procedure expand_icondir
;	(debug ("DstDiskE=%s, FileE=%s\n" DstDiskE FileE))

	(set basename FileE)                    ; basename = "Colors"
	(set FileE (cat FileE "_dir"))		; FileE    = "Colors_dir"
	(expand_root)

	(set tmp2 (cat DstDiskE FileE))		; tmp2=DPaintIV:Colors_dir
	(set tmp3 (tackon tmp2 basename))       ; tmp3=DPaintIV:Colors_dir/Colors
	(set tmp4 (tackon DstDiskE basename))	; tmp4=DPaintIV/Colors

;	(debug ("tmp2=%s, tmp3=%s, tmp4=%s" tmp2 tmp3 tmp4))

	(rename tmp3 tmp4)

	(set tmp3 (cat tmp3 ".info"))

	(if (exists tmp3)
		(rename tmp3 (cat tmp4 ".info"))
	)

	(delete tmp2)
)

;Standard floppy format procedure.
;  SrcDiskE : The name to use when formatting the disk.
(procedure format_disk
	(if	(askbool
			(prompt "Inserire un dischetto nuovo "
				"nel drive df0:"
			)
			(help FORMATHELP)
			(choices "Formatta" "Annulla")
			(default 1)
		)

		(set dummy 1)
		(abort "Installazione interrotta.")
	)

	(set result
		(run
			("ram:format DRIVE DF0: NAME \"%s\" FFS NOICONS >NIL: <ram:nl_file" SrcDiskE)
			(help RUNHELP)
			(prompt ("Sto formattando \"%s\"..." SrcDiskE))
			(confirm)
		)
	)

	(if result
		(abort "Errore di formattazione.")
	)

	(if	(askbool
			(prompt "Formattazione completa. Togliere il "
				("dischetto dal drive ed etichettarlo \"%s\"." SrcDiskE)
			)
			(help FORMATHELP)
			(choices "Continua" "Annulla")
			(default 1)
		)

		(set dummy 1)
		(abort "Installazione interrotta.")
	)
)

(set osversion (/ (getversion) 65536))
(if (< osversion 37)
	(abort	"Il DeluxePaint richiede l'AmigaDOS 2.04 o successivo.")
)

; Make sure the user has three blank floppies handy
(
	(if	(askbool
			(prompt "E' necessario avere tre dischetti nuovi. Tutti i "
				"dati di questi dischetti VERRANNO SOVRASCRITTI \n "
				""
			)
			(help FORMATHELP)
			(choices "Continua" "Annulla")
			(default 1)
		)

		(set dummy 1)
		(abort "Installazione interrotta.")
	)
)

; make sure DPaint drawer & icon are there if we're to copy anything,
; and cache nl_file, format & lharc to RAM: while we're at it.

(
	(set SrcDiskE SOURCE_1n)
	(ask_sourcedisk)

	(copyfiles
		(prompt "")
		(help "")
		(source (tackon SrcDiskE "nl_file"))
		(dest "ram:")
	)

	(copyfiles
		(prompt "")
		(help "")
		(source (tackon SrcDiskE "System/format"))
		(dest "ram:")
	)

	(copyfiles
		(prompt "")
		(help "")
		(source (tackon SrcDiskE UNPACKER))
		(dest "ram:")
	)


	(copyfiles
		(prompt "")
		(help "")
		(source (tackon SrcDiskE "Leggimi"))
		(dest "ram:")
		(infos)
	)

	(copyfiles
		(prompt "")
		(help "")
		(source SrcDiskE)
		(pattern "#?.lzh")
		(dest "ram:")
	)

	(set UNPACKER (tackon "ram:" UNPACKER))
)

;format the floppies

(set SrcDiskE DEST_1n)
(format_disk)

(set SrcDiskE DEST_2n)
(format_disk)

(set SrcDiskE DEST_3n)
(format_disk)

; Create the Program (DPaintIV) disk

(set DstDiskE DEST_1n)
(ask_destdisk)

(copyfiles
	(prompt "")
	(help "")
	(source "ram:Leggimi")
	(dest DstDiskE)
	(infos)
)

(delete "ram:Leggimi#?")

(set FileE "Colors")
(expand_icondir)

(set FileE "Move")
(expand_icondir)

(set FileE "KaraFonts")
(expand_icondir)

(set FileE "DPaint")
(expand_root)

(set FileE "Player")
(expand_root)

(set FileE "Fonts")
(expand_icondir)

(set FileE "2.0Icons")
(expand_icondir)

; Create the Pictures (Art1) disk

(set SrcDiskE SOURCE_2n)
(ask_sourcedisk)

(copyfiles
	(prompt "")
	(help "")
	(source SrcDiskE)
	(pattern "#?.lzh")
	(dest "ram:")
)

(set DstDiskE DEST_2n)
(ask_destdisk)

(set FileE "Picture")
(expand_icondir)

(set FileE "Picture2")
(expand_icondir)

(set FileE "Brush")
(expand_icondir)

; Create the Anim (Art2) disk

(set DstDiskE DEST_3n)
(ask_destdisk)

(set FileE "Anim")
(expand_icondir)

(set FileE "AnimBrush")
(expand_icondir)

;remove cached files
(delete "ram:nl_file")
(delete "ram:format")
(delete UNPACKER)

; Ask if the user would like to register
; his/herself by running the main program
(if	(askbool
		(prompt "Desideri lanciare e personalizzare la tua "
			"copia di DeluxePaint?")
		(help
			"Se usate il DeluxePaint per la prima volta, dovrete "
			"personalizzarlo. Potete scegliere di lanciare il "
			"programma più tardi; vi verrà chiesto allora di personalizzarlo."
			)
		(default 1)
	)

	(
		(set SrcDiskE DEST_1n)
		(ask_sourcedisk)

		(debug ("run >NIL: <NIL: \"%s\"" (cat SrcDiskE PROGNAME)))

		(makeassign "FONTS" (cat DEST_1 "Fonts"))

		(run
			("run >NIL: <NIL: \"%s\"" (cat SrcDiskE PROGNAME))
			(help RUNHELP)
			(prompt "Sto caricando il DeluxePaint")
			(confirm)
		)
	)
)

(set @default-dest SrcDiskE)

(exit)
