; $VER: Register_REDFiX 1.2 (02.11.99) ® 1999 by Przemyslaw 'SENSEI' Gruchala

; Inicjalizacja

; Ustawienie wersji REDFiX'a jaka rejestrujemy.
(set #redfixversion 1)
(set #redfixrevision 5)

; Ustawiamy nazwe wersji REDFiX'a.
(set #redfixversionname ("%ld.%ld" #redfixversion #redfixrevision))

; Ustawienie minimalnego poziomu REDFiX'a. W wersji demo nie ma wyboru...
(set #redfixminlevel 3)

; Ustawienie wersji rejestratora REDFiX'a.
(set #redfixregisterversionname "1.2")
(set #redfixregisterdate "02.11.99")

; Ustawienie minimalnej wersji systemu operacyjnego.
(set #kickstartminversion 36)

; Ustawienie nazwy minimalnej wersji systemu operacyjnego.
(set #kickstartminversionname "2.0")

; Pobranie aktualnej wersji systemu operacyjnego.
(set #kickstartversion (/ (getversion) 65536) )

; Zapamietanie poziomu uzytkownika.
(set #userlevel @user-level)

; Domyslna wersja angielska.
(set #languagetemp 0)

; Ustawiamy pytanie o wersje jezykowa po angielsku.
(set #selectlanguage "Select your language...")

; Ustawiamy tekst powitania po angielsku.
(set #welcome
	(cat
		"\n\n\n\nWelcome in the REDFiX v" #redfixversionname " registration script.\n\n\n"
		"Copyright (c) 1999 by R.E.D. Group.\n\n\n"
		"Register_REDFiX v" #redfixregisterversionname " (" #redfixregisterdate ") by Przemyslaw 'SENSEI' Gruchala.\n"
	)
)

; Ustawiamy wersje angielska.
(if
	(= @language "english")
	(set #languagetemp 0)
)

; Ustawiamy wersje niemiecka.
(if
	(= @language "deutsch")
	(
		(set #languagetemp 1)

; Ustawiamy pytanie o wersje jezykowa po niemiecku.
;		(set #selectlanguage "Select your language...")

; Ustawiamy tekst powitania po niemiecku.
;		(set #welcome
;			(cat "\n\n\n\nWelcome in REDFiX v" #redfixversionname ".\n\n\nCopyright (c) 1999 by R.E.D. Group.\n\n\nRegister_REDFiX v" #redfixregisterversionname " (" #redfixregisterdate ") by Przemyslaw 'SENSEI' Gruchala.")
;		)
	)
)

; Ustawiamy wersje polska.
(if
	(= @language "polski")
	(
		(set #languagetemp 2)

; Ustawiamy pytanie o wersje jezykowa po polsku.
		(set #selectlanguage "Wybierz swój jėzyk...")

; Ustawiamy tekst powitania do polsku.
		(set #welcome
			(cat
				"\n\n\n\nWitam w skrypcie rejestracyjnym REDFiX'a v" #redfixversionname ".\n\n\n"
				"Copyright (c) 1999 by R.E.D. Group.\n\n\n"
				"Register_REDFiX v" #redfixregisterversionname " (" #redfixregisterdate ") by Przemysīaw 'SENSEI' Gruchaīa.\n"
			)
		)
	)
)

; Poczatkowe powitanie.
(message #welcome (all))

(if
	(>= #userlevel 2)
	(

; Wybor jezyka w ktorym bedziemy informowani w installer'ze.
		(set #language
			(select
				(askchoice
					(prompt	#selectlanguage)
					(help		@askoptions-help)
					(choices
						"English"
						"Deutsch"
						"Polski"
					)
					(default #languagetemp)
				)
				"English"
				"Deutsch"
				"Polski"
			)
		)
	)
)

; Wersja angielska jest domyslna, dlatego najpierw wypelniamy nia wszystkie ciagi tekstowe.
(set #kickstartmsg
	(cat
		"REDFiX requires KickStart V" #kickstartminversion "+ (AmigaDOS v" #kickstartminversionname "+)\n"
	)
)

(set #enternamemsg
	(cat
		"Please, enter your name and surname:"
	)
)

(set #helpenternamemsg
	(cat
		"In this record you must enter your name and surname.\n\n"
		"Attention: Required!!!\n\n"
		"Note: Your name and surname will be stored in local variable REDFiX_Register_UserName.\n"
	)
)

(set #enteraddressmsg
	(cat
		"Please, enter your address\n"
		"and your zip code:"
	)
)

(set #helpenteraddressmsg
	(cat
		"In this record you must enter your address and zip code.\n\n"
		"Attention: Required!!!\n\n"
		"Note: Your addres will be stored in local variable REDFiX_Register_UserAddress.\n"
	)
)

(set #entertelephonemsg
	(cat
		"Please, enter your telephone number:\n"
		"(If you don't have leave this record empty)"
	)
)

(set #helpentertelephonemsg
	(cat
		"In this record you could enter your telephone number.\n\n"
		"Note: Your telephone number will be stored in local variable REDFiX_Register_UserTelephone.\n"
	)
)

(set #enteremailmsg
	(cat
		"Please, enter your E-Mail address:\n"
		"(If you don't have leave this record empty)\n"
		"VERY agreeably seen!"
	)
)

(set #helpenteremailmsg
	(cat
		"In this record you could enter your E-Mail address.\n\n"
		"Note: Your E-Mail address will be stored in local variable REDFiX_Register_UserEMail.\n"
	)
)

(set #whichmccpumsg
	(cat
		"Which Motorola processor version of the REDFiX modules do you want to register?\n"
		"Default is that you have in computer."
	)
)

(set #whichmcfpumsg
	(cat
		"Which Motorola coprocessor version of the REDFiX modules do you want to register?\n"
		"Default is that you have (or not) in computer."
	)
)

(set #whichppccpumsg
	(cat
		"Which PowerPC processor version of the REDFiX modules do you want to register?\n"
		"Default is that you have (or not) in computer."
	)
)

(set #howmuchchipmemorymsg
	(cat
		"How much Chip memory your computer has?\n"
		"Default is that you have in computer."
	)
)

(set #howmuchfastmemorymsg
	(cat
		"How much Fast memory your computer has?\n"
		"Default is that you have in computer."
	)
)

(set #whichkickstartmsg
	(cat
		"Which KickStart version your computer has?\n"
		"Default is that you have in computer."
	)
)

(set #selectimagefxversionsmsg
	(cat
		"Please, select versions of ImageFX to which do you want modules:\n"
		"(Only some of them aren't compatible)"
	)
)

(set #helpselectimagefxversionsmsg
	(cat
		"Some of modules aren't compatible in different versions of the ImageFX"
		" and must to be in adequete versions.\n"
		"You should select one of them which you find interesting, or all"
		" (but price will rise!).\n\n"
		"Note: Until now only preview modules requires that operation...\n\n"
		"Attention: From REDFiX v0.925 prerelease it isn't true!!!\n"
	)
)

(set #selectredfixmodulesmsg
	"Please, select modules of the REDFiX:"
)

(set #helpselectredfixmodulesmsg
	(cat
		"In this place you can select which modules of the REDFiX packet"
		" you find interesting, and you want to register.\n"
		"Attention: Modules exists in two price versions: world and Polish"
		" and you should very carefully choice language version of Register_REDFiX!\n"
		"Attention: Be sure that modules which you want to register exist!"
		" More information in guide!\n"
	)
)

(set #modulepricesuffix			"$")

(set #modulepricea_level2		"4")
(set #modulepricea_level3		"6")
(set #modulepriceb_level2		"2")
(set #modulepriceb_level3		"4")

(set #wherestoreregiesterfilemsg
	(cat
		"Where do you want to save the register text file?\n"
		"(Good place is in RAM: or T: if you want to E-Mail me or print it)"
	)
)

(set #registerinfo
	(cat
		"I want to register full version of the REDFiX modules package to the ImageFX."
	)
)

(set #registerpersonaldata		"This is my personal data:")

(set #registername				"1. Name and surname: ")
(set #registeraddress			"2. Address:          ")
(set #registertelephone			"3. Telephone:        ")
(set #registeremail				"4. E-Mail:           ")

(set #registercomputerdata		"My computer data:")
(set #registercpufpuppcnone	"None")

(set #registermccpu				"1. Motorola CPU:     ")
(set #registermcfpu				"2. Motorola FPU:     ")
(set #registerppccpu				"3. PowerPC CPU:      ")
(set #registerchipmemory		"4. Chip memory:      ")
(set #registerfastmemory		"5. Fast memory:      ")
(set #registerkickstart			"6. KickStart:        ")

(set #registerimagefxversions	"I want REDFiX modules for the ImageFX version(s): ")

(set #registermodules			"I'm interested in modules of the REDFiX:")
(set #registerprice				"---------------------------\nPrice of the REDFiX packet: ")

(set #saveenvironmentmsg
	(cat
		"Save environment?\n"
		"(All data that you enter)"
	)
)

(set #helpsaveenvironmentmsg
	(cat
		"If you want to register new versions of the REDFiX you should select:"
		" Yes (Default). Otherwise: No."
	)
)

(set #couldnotsaveenvironmentmsg
	(cat
		"Sorry! I cannot save environment!\n"
		"Check for system assigns ENV: and ENVARC: whether correct set.\n"
	)
)

(set #exitmsg
	(cat
		"\n\n\n\n\nThank you for registering!!!\n\n"
		"Time to receive dispatch is 2-14 days.\n"
	)
)

; Wersja niemiecka.
(if
	(= #language "Deutsch")
	(
		(message
			(cat
				"Sorry! Deutsch version currently not implemented!\n"
				"English will be used...\n"
			)
		)
	)
)

; Wersja Polska.
(if
	(= #language "Polski")
	(

		(set #kickstartmsg
			(cat
				"REDFiX wymaga KickStart'u V" #kickstartminversion "+ (AmigaDOS v" #kickstartminversionname "+)\n"
			)
		)

		(set #enternamemsg
			(cat
				"Proszė podaź imiė i nazwisko:\n"
				"(Ksywa mile widziana)"
			)
		)

		(set #helpenternamemsg
			(cat
				"W tym polu trzeba wpisaź swoje imiė i nazwisko.\n\n"
				"UWAGA: Wymagane!!!\n\n"
				"Notka: Twoje imiė i nazwisko zostanie zapisane w zmiennej"
				" lokalnej REDFiX_Register_UserName.\n\n"
				"Jeōli siė pomyliīeō przy wypeīnianiu wystarczy, ūe przerwiesz rejestracjė.\n"
				"Dane poprawne nie bėdā musiaīy zostaź ponownie wprowadzone.\n"
			)
		)

		(set #enteraddressmsg
			(cat
				"Proszė podaź adres zamieszkania\ni kod pocztowy:"
			)
		)

		(set #helpenteraddressmsg
			(cat
				"W tym polu trzeba wpisaź swój adres zamieszkania i kod pocztowy.\n\n"
				"UWAGA: Wymagane!!!\n\n"
				"Notka: Twój adres zamieszkania zostanie zapisany w zmiennej lokalnej REDFiX_Register_UserAddress.\n\n"
				"Jeōli siė pomyliīeō przy wypeīnianiu wystarczy, ūe przerwiesz rejestracjė.\n"
				"Dane poprawne nie bėdā musiaīy zostaź ponownie wprowadzone.\n"
			)
		)

		(set #entertelephonemsg
			(cat
				"Proszė podaź swój numer telefonu:\n"
				"(Jeōli nie masz, pozostaw to miejsce puste)"
			)
		)

		(set #helpentertelephonemsg
			(cat
				"W tym polu moūesz podaź numer swojego telefonu.\n"
				"W razie problemów pomoūe on nam siė z Tobā skontaktowaź.\n\n"
				"Notka: Twój numer telefonu zostanie zapisany w zmiennej"
				" lokalnej REDFiX_Register_UserTelephone.\n\n"
				"Jeōli siė pomyliīeō przy wypeīnianiu wystarczy, ūe przerwiesz rejestracjė.\n"
				"Dane poprawne nie bėdā musiaīy zostaź ponownie wprowadzone.\n"
			)
		)

		(set #enteremailmsg
			(cat
				"Proszė podaź swój adres E-Mail:\n"
				"(Jeōli nie masz, pozostaw to miejsce puste)\n"
				"BARDZO mile widziane!"
			)
		)

		(set #helpenteremailmsg
			(cat
				"W tym polu moūesz podaź swój adres E-Mail.\n"
				"W razie problemów pomoūe on nam siė z Tobā skontaktowaź.\n\n"
				"Notka: Twoj adres E-Mail zostanie zapisany w zmiennej"
				" lokalnej REDFiX_Register_UserEMail.\n\n"
				"Jeōli siė pomyliīeō przy wypeīnianiu wystarczy, ze przerwiesz rejestracjė.\n"
				"Dane poprawne nie bėdā musiaīy zostaź ponownie wprowadzone.\n"
			)
		)

		(set #whichmccpumsg
			(cat
				"Dla jakiego procesora Motoroli chciaī(a)byō zarejstrowaź moduī(y) REDFiX'a?\n"
				"Przydatne gdy rejestrujesz z innego komputera.\n"
				"Domyōlnie taki jaki masz w komputerze."
			)
		)

		(set #whichmcfpumsg
			(cat
				"Dla jakiego koprocesora Motoroli chciaī(a)byō zarejstrowaź moduī(y) REDFiX'a?\n"
				"Przydatne gdy rejestrujesz z innego komputera.\n"
				"Domyōlnie taki jaki masz w komputerze."
			)
		)

		(set #whichppccpumsg
			(cat
				"Dla jakiego procesora PowerPC chciaī(a)byō zarejstrowaź moduī(y) REDFiX'a?\n"
				"Przydatne gdy rejestrujesz z innego komputera.\n"
				"Domyōlnie taki jaki masz w komputerze."
			)
		)

		(set #howmuchchipmemorymsg
			(cat
				"Ile pamiėci Chip masz w swoim komputerze?\n"
				"Przydatne gdy rejestrujesz z innego komputera.\n"
				"Domyōlnie tyle ile masz w komputerze."
			)
		)

		(set #howmuchfastmemorymsg
			(cat
				"Ile pamiėci Fast masz w swoim komputerze?\n"
				"Przydatne gdy rejestrujesz z innego komputera.\n"
				"Domyōlnie tyle ile masz w komputerze."
			)
		)

		(set #whichkickstartmsg
			(cat
				"Dla jakiego systemu AmigaOS chciaī(a)byō zarejstrowaź moduī(y) REDFiX'a?\n"
				"Przydatne gdy rejestrujesz z innego komputera.\n"
				"Domyōlnie taki jaki masz w komputerze."
			)
		)

		(set #selectimagefxversionsmsg
			(cat
				"Proszė wybraź wersjė ImageFX'a do którego(ch) chciaī(a)byō moduīy:\n"
				"(Tylko niektóre moduīy sā niekompatybilne)"
			)
		)
	
		(set #helpselectimagefxversionsmsg
			(cat
				"Niektóre z moduīów sā niekompatybilne w róūnych wersjach ImageFX'a"
				" i dlatego muszā wystėpowaź w odpowiednich wersjach.\n"
				"Wybierz jednā z nich która Ciė interesuje, lub wszystkie"
				" (ale wtedy cena wzroōnie!).\n\n"
				"Notka: Na dzieļ dzisiejszy tylko moduīy preview wymagajā takich dziaīaļ...\n\n"
				"UWAGA: Od wersji REDFiX'a v0.925 prerelease to nie jest prawda!\n"
			)
		)

		(set #selectredfixmodulesmsg
			(cat
				"Proszė wybraź moduīy REDFiX'a:"
			)
		)

		(set #helpselectredfixmodulesmsg
			(cat
				"W tym miejscu moūesz zaznaczyź które z moduīów pakietu REDFiX Ciė interesujā i chcesz je zarejstrowaź.\n\n"
				"UWAGA: Moduīy wystėpujā w dwuch wersjach cenowych: ōwiatowej i polskiej wiėc proszė uwaūaź przy wybieraniu wersji jėzykowej Register_REDFiX!\n"
				"UWAGA: Upewnij siė, ūe moduīy które chcesz zarejstrowaź istniejā! (Wiėcej informacji w guide'dzie)\n"
			)
		)

		(set #modulepricesuffix			" PLN")

		(set #modulepricea_level2		"4")
		(set #modulepricea_level3		"6")
		(set #modulepriceb_level2		"2")
		(set #modulepriceb_level3		"4")

		(set #wherestoreregiesterfilemsg
			(cat
				"Gdzie chcesz zapisaź tekstowy plik rejestracyjny?\n"
				"(Dobrym miejscem jest RAM: albo T: jeōli chcesz go do mnie wysīaź E-Mail'em albo wydrukowaź)"
			)
		)

		(set #registerinfo
			(cat
				"Chcė zarejstrowaź peīnā wersjė REDFiX'a, pakietu moduīów do ImageFX'a."
			)
		)

		(set #registerpersonaldata				"Oto moje dane personalne:")

		(set #registername						"1. Imiė i nazwisko: ")
		(set #registeraddress					"2. Adres:           ")
		(set #registertelephone					"3. Telefon:         ")
		(set #registeremail						"4. E-Mail:          ")

		(set #registercomputerdata				"Dane mojego komputera:")
		(set #registercpufpuppcnone			"Brak")

		(set #registermccpu						"1. Motorola CPU:    ")
		(set #registermcfpu						"2. Motorola FPU:    ")
		(set #registerppccpu						"3. PowerPC CPU:     ")
		(set #registerchipmemory				"4. Pamieź Chip:     ")
		(set #registerfastmemory				"5. Pamieź Fast:     ")
		(set #registerkickstart					"6. KickStart:       ")

		(set #registerimagefxversions
			"Chciaī(a)bym zamówiź moduīy REDFiX'a dla ImageFX'a w wersji: "
		)

		(set #registermodules					"Interesujā mnie moduīy REDFiX'a:")
		(set #registerprice						"---------------------------\nCena pakietu REDFiX: ")

		(set #saveenvironmentmsg		"Zapisaź ōrodowisko?\n(Wszystkie dane które wprowadziīaō(eō))\n")

		(set #helpsaveenvironmentmsg	"Jeōli bėdziesz chciaī(a) rejestrowaź nowsze wersje REDFiX'a powinieneō(powinnaō) wybraź: Tak (domyōlny). W przeciwnym wypadku: Nie.\n")

		(set #couldnotsaveenvironmentmsg
			(cat
				"Przykro mi! Nie mogė zapisaź ōrodowiska!\n"
				"Sprawdz czy systemowe przypisania ENV: i ENVARC: sa dobrze ustawione.\n"
			)
		)

		(set #exitmsg
			(cat
				"\n\n\n\n\nDziėkujemy za zarejstrowanie siė!!!\n\n"
				"Czas oczekiwania na odbiór przesyīki 2-14 dni.\n"
			)
		)
	)
)
	
(complete 0)

; Sprawdzenie czy mamy odpowiednia wersje systemu operacyjnego
(if (< #kickstartversion #kickstartminversion)
	(abort #kickstartmsg)
)

;
; Etap 1:
; - Pytanie o imie i nazwisko uzytkownika.
;

; Sprawdzenie czy ENV: istnieje (idiotoodpornosc).
(if
	(getassign "ENV")

; Jesli tak to pobieramy zmienna lokalna.
	(set #username 
		(getenv "REDFiX_Register_UserName")
	)
	(set #username "")
)

; Pytamy uzytkownika jak sie nazywa. Korzystamy z poprzedniego ustawienia.
(set #username
	(askstring
		(prompt	#enternamemsg)
		(help		#helpenternamemsg)
		(default	#username)
	)
)

; Jesli ENV: istnieje to
; Zapisujemy ustawienie jako zmienna lokalna.
(if
	(getassign "ENV")
	(run "SetEnv REDFiX_Register_UserName " #username)
)

(complete 10)

;
; Etap 2:
; - Pytamy sie o adres uzytkownika.
;

; Sprawdzenie czy ENV: istnieje (idiotoodpornosc).
(if
	(getassign "ENV")

; Jesli tak to pobieramy zmienna lokalna.
	(set #useraddress
		(getenv "REDFiX_Register_UserAddress")
	)
	(set #useraddress "")
)

; Pytamy sie uzytkownika gdzie mieszka. Korzystamy z poprzedniego ustawienia.
(set #useraddress
	(askstring
		(prompt	#enteraddressmsg)
		(help		#helpenteraddressmsg)
		(default	#useraddress)
	)
)

; Jesli ENV: istnieje to
; Zapisujemy ustawienie jako zmienna lokalna.
(if
	(getassign "ENV")
	(run "SetEnv REDFiX_Register_UserAddress " #useraddress)
)

(complete 20)

;
; Etap 3:
; - Pytamy sie o telefon uzytkownika.
;

; Sprawdzenie czy ENV: istnieje (idiotoodpornosc).
(if
	(getassign "ENV")

; Jesli tak to pobieramy zmienna lokalna.
	(set #usertelephone
		(getenv "REDFiX_Register_UserTelephone")
	)
	(set #usertelephone "")
)

; Pytamy sie uzytkownika o numer telefon. Korzystamy z poprzedniego ustawienia.
(set #usertelephone
	(askstring
		(prompt	#entertelephonemsg)
		(help		#helpentertelephonemsg)
		(default	#usertelephone)
	)
)

; Jesli ENV: istnieje to
; Zapisujemy ustawienie jako zmienna lokalna.
(if
	(getassign "ENV")
	(run "SetEnv REDFiX_Register_UserTelephone " #usertelephone)
)

(complete 30)

;
; Etap 4:
; - Pytamy sie o E-Mail uzytkownika.
;

; Sprawdzenie czy ENV: istnieje (idiotoodpornosc).
(if
	(getassign "ENV")

; Jesli tak to pobieramy zmienna lokalna.
	(set #useremail
		(getenv "REDFiX_Register_UserEMail")
	)
	(set #useremail "")
)

; Pytamy sie uzytkownika o adres E-Mail. Korzystamy z poprzedniego ustawienia.
(set #useremail
	(askstring
		(prompt	#enteremailmsg)
		(help		#helpenteremailmsg)
		(default	#useremail)
	)
)

; Jesli ENV: istnieje to
; Zapisujemy ustawienie jako zmienna lokalna.
(if
	(getassign "ENV")
	(run "SetEnv REDFiX_Register_UserEMail " #useremail)
)

(complete 40)

;
; Etap 5:
; - Pobranie wersji procesora.
; - Przeliczenie typu procesora (zgodnego z askchoice).
; - Spytanie sie uzytkownika o wlasciwa wersje procesora (tylko w trybie EXPERT).
;

; Pobranie wersji procesora.
(set #cpu (database "CPU"))

; Domyslna wartosc.
(set #cputype 0)

; Przeliczamy typ procesora na wersje.
(if
	(= #cpu 68000)
	(set #cputype 0)
)

(if
	(= #cpu 68010)
	(set #cputype 0)
)

(if
	(= #cpu 68020)
	(set #cputype 1)
)

(if
	(= #cpu 68030)
	(set #cputype 2)
)

(if
	(= #cpu 68040)
	(set #cputype 3)
)

(if
	(= #cpu 68060)
	(set #cputype 4)
)


(if
	(>= #userlevel 2)
	(

; Pytamy sie uzytkownika pod jaki procesor chce zarejstrowac moduly.
		(set #cputype
			(askchoice
				(prompt	#whichmccpumsg)
				(help		@askchoice-help)
				(choices
					"MC 68000"
					"MC 68020"
					"MC 68030"
					"MC 68040"
					"MC 68060"
				)
				(default #cputype)
			)
		)
	)
)

(set #usermccpu
	(select #cputype
		"MC 68000"
		"MC 68020"
		"MC 68030"
		"MC 68040"
		"MC 68060"
	)
)

(complete 50)

;
; Etap 6:
; - Pobranie wersji koprocesora.
; - Przeliczenie typu koprocesora (zgodnego z askchoice).
; - Spytanie sie uzytkownika o wlasciwa wersje koprocesora (tylko w trybie EXPERT).
;

; Pobranie wersji koprocesora.
(set #fpu (database "FPU"))

(set #fputype 0)

; Przeliczamy typ procesora na wersje.
(if
	(= #fpu NOFPU)
	(set #fputype 0)
)

(if
	(= #fpu 68881)
	(set #fputype 1)
)

(if
	(= #fpu 68882)
	(set #fputype 2)
)

(if
	(= #fpu FPU40)
	(set #fputype 3)
)

(if
	(>= #userlevel 2)
	(

; Pytamy sie uzytkownika pod jaki koprocesor chce zarejstrowac moduly.
		(set #fputype
			(askchoice
				(prompt	#whichmcfpumsg)
				(help		@askchoice-help)
				(choices
					#registercpufpuppcnone
					"MC 68881"
					"MC 68882"
					"MC 68040FPU"
					"MC 68060FPU"
				)
				(default #fputype)
			)
		)
	)
)

(set #usermcfpu
	(select #fputype
		#registercpufpuppcnone
		"MC 68881"
		"MC 68882"
		"MC 68040FPU"
		"MC 68060FPU"
	)
)

(complete 55)

;
; Etap 7:
; - Pobranie wersji procesora PowerPC.
; - Przeliczenie typu procesora PowerPC (zgodnego z askchoice).
; - Spytanie sie uzytkownika o wlasciwa wersje procesora PowerPC (tylko w trybie EXPERT).
;

; Pobranie wersji procesora PowerPC.
(run
	("Bin/REDFiX_SysInfo PPCCPU >ENV:REDFiX_PowerPCCPU")
)

(set #ppccpu
	(getenv "REDFiX_PowerPCCPU")
)

(set #ppccputype 0)

; Przeliczamy typ procesora PowerPC na wersje.
(if
	(= #ppccpu "")
	(set #ppccputype 0)
)

(if
	(= #ppccpu PPC603e)
	(set #ppccputype 1)
)

(if
	(= #ppccpu PPC604e)
	(set #ppccputype 2)
)

(if
	(>= #userlevel 2)
	(

; Pytamy sie uzytkownika pod jaki procesor PowerPC chce zarejstrowac moduly.
		(set #ppccputype
			(askchoice
				(prompt	#whichppccpumsg)
				(help		@askchoice-help)
				(choices
					#registercpufpuppcnone
					"PowerPC 603e"
					"PowerPC 604e"
				)
				(default #ppccputype)
			)
		)
	)
)

(set #userppccpu
	(select #ppccputype
		#registercpufpuppcnone
		"PowerPC 603e"
		"PowerPC 604e"
	)
)

(complete 60)

;
; Etap 8:
; - Pobranie ilosci pamieci Chip.
; - Przeliczenie ilosci pamieci Chip (zgodnego z askchoice).
; - Spytanie sie uzytkownika o wlasciwa ilosc pamieci Chip (tylko w trybie EXPERT).
;

; Odczytanie ilosci pamieci CHIP w komputerze.
(run
	("Bin/REDFiX_SysInfo CHIP >ENV:REDFiX_ChipMemory")
)

(set #chipmemory
	(/
		(getenv "REDFiX_ChipMemory")
		1024
	)
)

(set #chipmemorytype 0)

; Przeliczamy ilosc pamieci CHIP na wersje.

; Idiotoodpornosc. Ilosc pamieci CHIP ponizej 0.5 MB.
(if
	(< #chipmemory 512)
	(set #chipmemorytype 0)
)

; Ilosc pamieci CHIP w przedziale od 0.5 MB do 1.0 MB.
(if
	(AND
		(>= #chipmemory 512)
		(< #chipmemory 1024)
	)
	(set #chipmemorytype 1)
)

; Ilosc pamieci CHIP w przedziale od 1.0 MB do 2.0 MB.
(if
	(AND
		(>= #chipmemory 1024)
		(< #chipmemory 2048)
	)
	(set #chipmemorytype 2)
)

; Ilosc pamieci CHIP wynosi 2.0 MB.
(if
	(= #chipmemory 2048)
	(set #chipmemorytype 3)
)

; idiotoodpornosc. Ilosc pamieci CHIP powyzej 2.0 MB.
(if
	(> #chipmemory 2048)
	(set #chipmemorytype 4)
)

(if
	(>= #userlevel 2)
	(

; Pytamy sie uzytkownika ile pamieci CHIP ma w komputerze.
		(set #chipmemorytype
			(askchoice
				(prompt	#howmuchchipmemorymsg)
				(help		@askchoice-help)
				(choices
					"<0.5 MB"
					"0.5 MB"
					"1.0 MB"
					"2.0 MB"
					">2.0 MB"
				)
				(default #chipmemorytype)
			)
		)
	)
)

(set #userchipmemory
	(select #chipmemorytype
		"<0.5 MB"
		"0.5 MB"
		"1.0 MB"
		"2.0 MB"
		">2.0 MB"
	)
)

(complete 65)

;
; Etap 9:
; - Pobranie ilosci pamieci Fast.
; - Przeliczenie ilosci pamieci Fast (zgodnego z askchoice).
; - Spytanie sie uzytkownika o wlasciwa ilosc pamieci Fast (tylko w trybie EXPERT).
;

; Odczytanie ilosci pamieci FAST w komputerze.
(run
	("Bin/REDFiX_SysInfo FAST >ENV:REDFiX_FastMemory")
)

(set #fastmemory
	(/
		(getenv "REDFiX_FastMemory")
		1024
	)
)

(set #fastmemorytype 0)

; Przeliczamy ilosc pamieci FAST na wersje.

; Idiotoodpornosc. Ilosc pamieci FAST ponizej 0.5 MB.
(if
	(< #fastmemory 512)
	(set #fastmemorytype 0)
)

; Ilosc pamieci FAST w przedziale od 0.5 MB do 1.0 MB.
(if
	(AND
		(>= #fastmemory 512)
		(< #fastmemory 1024)
	)
	(set #fastmemorytype 1)
)

; Ilosc pamieci FAST w przedziale od 1 MB do 2 MB.
(if
	(AND
		(>= #fastmemory 1024)
		(< #fastmemory 2048)
	)
	(set #fastmemorytype 2)
)

; Ilosc pamieci FAST w przedziale od 2 MB do 4 MB.
(if
	(AND
		(>= #fastmemory 2048)
		(< #fastmemory 4096)
	)
	(set #fastmemorytype 3)
)

; Ilosc pamieci FAST w przedziale od 4 MB do 8 MB.
(if
	(AND
		(>= #fastmemory 4096)
		(< #fastmemory 8192)
	)
	(set #fastmemorytype 4)
)

; Ilosc pamieci FAST w przedziale od 8 MB do 16 MB.
(if
	(AND
		(>= #fastmemory 8192)
		(< #fastmemory 16384)
	)
	(set #fastmemorytype 5)
)

; Ilosc pamieci FAST w przedziale od 16 MB do 32 MB.
(if
	(AND
		(>= #fastmemory 16384)
		(< #fastmemory 32768)
	)
	(set #fastmemorytype 6)
)

; Ilosc pamieci FAST w przedziale od 32 MB do 64 MB.
(if
	(AND
		(>= #fastmemory 32768)
		(< #fastmemory 65536)
	)
	(set #fastmemorytype 7)
)

; Ilosc pamieci FAST w przedziale od 64 MB do 128 MB.
(if
	(AND
		(>= #fastmemory 65536)
		(< #fastmemory 131072)
	)
	(set #fastmemorytype 8)
)

; Ilosc pamieci FAST w przedziale od 128 MB do 256 MB.
(if
	(AND
		(>= #fastmemory 131072)
		(< #fastmemory 262144)
	)
	(set #fastmemorytype 9)
)

; idiotoodpornosc. Ilosc pamieci FAST powyzej 256 MB.
(if
	(> #fastmemory 262144)
	(set #fastmemorytype 10)
)

(if
	(>= #userlevel 2)
	(

; Pytamy sie uzytkownika ile pamieci FAST ma w komputerze.
		(set #fastmemorytype
			(askchoice
				(prompt	#howmuchfastmemorymsg)
				(help		@askchoice-help)
				(choices
					"<0.5 MB"
					"0.5 - 1 MB"
					"1 - 2 MB"
					"2 - 4 MB"
					"4 - 8 MB"
					"8 - 16 MB"
					"16 - 32 MB"
					"32 - 64 MB"
					"64 - 128 MB"
					"128 - 256 MB"
					">256 MB"
				)
				(default #fastmemorytype)
			)
		)
	)
)

(set #userfastmemory
	(select #fastmemorytype
		"<0.5 MB"
		"0.5 - 1 MB"
		"1 - 2 MB"
		"2 - 4 MB"
		"4 - 8 MB"
		"8 - 16 MB"
		"16 - 32 MB"
		"32 - 64 MB"
		"64 - 128 MB"
		"128 - 256 MB"
		">256 MB"
	)
)

(complete 70)

;
; Etap 10:
; - Pobranie wersji systemu operacyjnego.
; - Przeliczenie wersji systemu operacyjnego (zgodnego z askchoice).
; - Spytanie sie uzytkownika o wlasciwa wersje systemu operacyjnego (tylko w trybie EXPERT).
;

(set #kickstarttype 0)

; Przeliczamy wersje systemu operacyjnego.
(if
	(= #kickstartversion 36)
	(set #kickstarttype 0)
)

(if
	(= #kickstartversion 37)
	(set #kickstarttype 1)
)

(if
	(= #kickstartversion 39)
	(set #kickstarttype 2)
)

(if
	(= #kickstartversion 40)
	(set #kickstarttype 3)
)

(if
	(> #kickstartversion 40)
	(set #kickstarttype 4)
)

(if
	(>= #userlevel 2)
	(

; Pytamy sie uzytkownika jaki ma KickStart.
		(set #kickstarttype
			(askchoice
				(prompt	#whichkickstartmsg)
				(help		@askchoice-help)
				(choices
					"KickStart v2.0 (V36)"
					"KickStart v2.04 (V37)"
					"KickStart v3.0 (V39)"
					"KickStart v3.1 (V40)"
					">KickStart v3.1 (V40+)"
				)
				(default #kickstarttype)
			)
		)
	)
)

(set #userkickstart
	(select #kickstarttype
		"v2.0 (V36)"
		"v2.04 (V37)"
		"v3.0 (V39)"
		"v3.1 (V40)"
		">v3.1 (>V40)"
	)
)

(complete 75)

;
; Etap 11:
; - Pytamy sie o wersje ImageFX'a w jakich uzytkownik chce moduly.
;

; Sprawdzenie czy ENV: istnieje (idiotoodpornosc).
(if
	(getassign "ENV")

; Jesli tak to pobieramy zmienna lokalna.
	(
		(set #imagefxversions
				(getenv "REDFiX_Register_ImageFXVersions")
		)

; Jesli nie bylo wczesniejszych ustawien lub byly uszkodzone to ustawienie domyslnych wersji (obu).
		(if
			(OR
				(= #imagefxversions "")
				(> #imagefxversions 4)
			)
			(
				(set #imagefxversions 0)
			)
		)
	)
	(set #imagefxversions 2)
)

; Pytamy sie uzytkownika o wersje ImageFX'a. Korzystamy z poprzedniego ustawienia.
(set #imagefxversions
	(askchoice
		(prompt	#selectimagefxversionsmsg)
		(help		#helpselectimagefxversionsmsg)
		(choices
			"ImageFX v1.x...v4.x"
			"ImageFX v1.x"
			"ImageFX v2.x"
			"ImageFX v3.x"
			"ImageFX v4.x"
		)
		(default	#imagefxversions)
	)
)

; 
; Jesli ENV: istnieje to
; Zapisujemy ustawienie jako zmienna lokalna.
(if
	(getassign "ENV")
	(run "SetEnv REDFiX_Register_ImageFXVersions " #imagefxversions)
)

(complete 80)

;
; Etap 12:
; - Pytamy sie uzytkownika ktore chce moduly.
;

; Sprawdzenie czy ENV: istnieje (idiotoodpornosc).
(if
	(getassign "ENV")

; Jesli tak to pobieramy zmienna lokalna.
	(
		(set #redfixmodules1
				(getenv "REDFiX_Register_REDFiXModules1")
		)

; Jesli nie bylo wczesniejszych ustawien to ustawienie domyslnych modulow (wszystkich).
		(if
			(= #redfixmodules1 "")
			(
				(set #redfixmodules1 %10111011101010)
			)
		)
	)
	(set #redfixmodules1 %10111011101010)
)

; Pytamy sie uzytkownika ktore chce moduly. Korzystamy z poprzedniego ustawienia.
(set #redfixmodules1
	(askoptions
		(prompt	#selectredfixmodulesmsg)
		(help		#helpselectredfixmodulesmsg)
		(choices
; REDFiX v0.9+
			(cat "Modules/Preview/REDFiX_Standard - LEVEL2 (" #modulepricea_level2 #modulepricesuffix ")")
			(cat "Modules/Preview/REDFiX_Standard - LEVEL3 (" #modulepricea_level3 #modulepricesuffix ")")
			(cat "Hooks/REDFiX_AutoContrast       - LEVEL2 (" #modulepriceb_level2 #modulepricesuffix ")")
			(cat "Hooks/REDFiX_AutoContrast       - LEVEL3 (" #modulepriceb_level3 #modulepricesuffix ")")
			(cat "Hooks/REDFiX_LowPass            - LEVEL2 (" #modulepriceb_level2 #modulepricesuffix ")")
			(cat "Hooks/REDFiX_LowPass            - LEVEL3 (" #modulepriceb_level3 #modulepricesuffix ")")
; REDFiX v1.5+
			(cat "Modules/Loaders/REDFiX_NewIcon  - LEVEL2 (" #modulepriceb_level2 #modulepricesuffix ")")
			(cat "Modules/Savers/REDFiX_NewIcon   - LEVEL2 (" #modulepricea_level2 #modulepricesuffix ")")
			(cat "Hooks/REDFiX_Swirl              - LEVEL2 (" #modulepricea_level2 #modulepricesuffix ")")
			(cat "Hooks/REDFiX_Swirl              - LEVEL3 (" #modulepricea_level3 #modulepricesuffix ")")
; REDFiX v1.7+
;			(cat "Modules/Loaders/REDFiX_XFA      - LEVEL2 (" #modulepriceb_level2 #modulepricesuffix ")")
;			(cat "Modules/Savers/REDFiX_XFA       - LEVEL2 (" #modulepricea_level2 #modulepricesuffix ")")
;			(cat "Hooks/REDFiX_Pulsar             - LEVEL2 (" #modulepricea_level2 #modulepricesuffix ")")
;			(cat "Hooks/REDFiX_Pulsar             - LEVEL3 (" #modulepricea_level3 #modulepricesuffix ")")
		)
		(default	#redfixmodules1)
	)
)

; Jesli ENV: istnieje to
; Zapisujemy ustawienie jako zmienna lokalna.
(if
	(getassign "ENV")
	(run "SetEnv REDFiX_Register_REDFiXModules1 " #redfixmodules1)
)

; ******* W TYM MIEJSCU MOZNA WSTAWIAC NASTEPNE ZESTAWY MODULOW!!! *******

(complete 85)

;
; Etap 13:
; - Pytamy sie o to w jakim pliku chcemy miec wygenerowany plik z rejestracja.
;

; Sprawdzenie czy ENV: istnieje (idiotoodpornosc).
(if
	(getassign "ENV")

; Jesli tak to pobieramy zmienna lokalna.
	(
		(set #registerfile
			(getenv "REDFiX_Register_RegisterFile")
		)

; Jesli nie bylo wczesniejszych ustawien to ustawienie domyslnego rejestracyjnego pliku tekstowego.
		(if
			(= #registerfile "")
			(set #registerfile "RAM:REDFiX_Registration.txt")
		)
	)

; Jesli nie bylo wczesniejszych ustawien to ustawienie domyslnego rejestracyjnego pliku tekstowego.
	(set #registerfile "RAM:REDFiX_Registration.txt")
)

; Pytamy sie uzytkownika o to gdzie zapisac rejestracyjny plik tekstowy.
(set #registerfile
	(askfile
		(prompt	#wherestoreregiesterfilemsg)
		(help		@askfile-help)
		(default	(fileonly #registerfile))
	)
)

; Jesli ENV: istnieje to
; Zapisujemy ustawienie jako zmienna lokalna.
(if
	(getassign "ENV")
	(run "SetEnv REDFiX_Register_RegisterFile " #registerfile)
)

(complete 90)

; Wyczyszczenie ciagu przechowujacego liste modulow REDFiX'a.
(set #redfixmoduleslist "")

; Ustawienie ceny pakietu REDFiX.
(set #redfixprice 0)

; Wyzerowanie licznika modulow.
(set #actualredfixmodule 0)

(while
	(set #actualredfixmodulename
		(select #actualredfixmodule
; REDFiX v0.9+
			(cat " - " "Modules/Preview/REDFiX_Standard - LEVEL2 (" #modulepricea_level2 #modulepricesuffix ")\n")
			(cat " - " "Modules/Preview/REDFiX_Standard - LEVEL3 (" #modulepricea_level3 #modulepricesuffix ")\n")
			(cat " - " "Hooks/REDFiX_AutoContrast       - LEVEL2 (" #modulepriceb_level2 #modulepricesuffix ")\n")
			(cat " - " "Hooks/REDFiX_AutoContrast       - LEVEL3 (" #modulepriceb_level3 #modulepricesuffix ")\n")
			(cat " - " "Hooks/REDFiX_LowPass            - LEVEL2 (" #modulepriceb_level2 #modulepricesuffix ")\n")
			(cat " - " "Hooks/REDFiX_LowPass            - LEVEL3 (" #modulepriceb_level3 #modulepricesuffix ")\n")
; REDFiX v1.5+
			(cat " - " "Modules/Loaders/REDFiX_NewIcon  - LEVEL2 (" #modulepriceb_level2 #modulepricesuffix ")\n")
			(cat " - " "Modules/Savers/REDFiX_NewIcon   - LEVEL2 (" #modulepricea_level2 #modulepricesuffix ")\n")
			(cat " - " "Hooks/REDFiX_Swirl              - LEVEL2 (" #modulepricea_level2 #modulepricesuffix ")\n")
			(cat " - " "Hooks/REDFiX_Swirl              - LEVEL3 (" #modulepricea_level3 #modulepricesuffix ")\n")
; REDFiX v1.7+
;			(cat " - " "Modules/Loaders/REDFiX_XFA      - LEVEL2 (" #modulepriceb_level2 #modulepricesuffix ")\n")
;			(cat " - " "Modules/Savers/REDFiX_XFA       - LEVEL2 (" #modulepricea_level2 #modulepricesuffix ")\n")
;			(cat " - " "Hooks/REDFiX_Pulsar             - LEVEL2 (" #modulepricea_level2 #modulepricesuffix ")\n")
;			(cat " - " "Hooks/REDFiX_Pulsar             - LEVEL3 (" #modulepricea_level3 #modulepricesuffix ")\n")
			""
		)
	)
	(
		(if
			(IN #redfixmodules1 #actualredfixmodule)
			(

;				(message (cat #actualredfixmodule "\n" #actualredfixmodulename))

				(set #redfixmoduleslist (cat #redfixmoduleslist #actualredfixmodulename))
				(set #redfixprice
					(+ #redfixprice
						(select #actualredfixmodule
; REDFiX v0.9+
							#modulepricea_level2
							#modulepricea_level3
							#modulepriceb_level2
							#modulepriceb_level3
							#modulepriceb_level2
							#modulepriceb_level3
; REDFiX v1.5+
							#modulepriceb_level2
							#modulepricea_level2
							#modulepricea_level2
							#modulepricea_level3
; REDFiX v1.7+
;							#modulepriceb_level2
;							#modulepricea_level2
;							#modulepricea_level2
;							#modulepricea_level3
						)
					)
				)
			)
		)

		(set #actualredfixmodule (+ #actualredfixmodule 1))
	)
)

; Generowanie rejestracyjnego pliku tekstowego.
(textfile
	(dest #registerfile )

	(append
		(cat #registerinfo "\n\n")
	)

	(append
		(cat #registerpersonaldata "\n\n")
	)

	(append
		(cat #registername #username "\n")
	)
	(append
		(cat #registeraddress #useraddress "\n")
	)
	(append
		(cat #registertelephone #usertelephone "\n")
	)
	(append
		(cat #registeremail #useremail "\n")
	)

	(append "\n")

	(append
		(cat #registercomputerdata "\n\n")
	)

	(append
		(cat #registermccpu #usermccpu "\n")
	)
	(append
		(cat #registermcfpu #usermcfpu "\n")
	)
	(append
		(cat #registerppccpu #userppccpu "\n")
	)
	(append
		(cat #registerchipmemory #userchipmemory "\n")
	)
	(append
		(cat #registerfastmemory #userfastmemory "\n")
	)
	(append
		(cat #registerkickstart #userkickstart "\n")
	)

	(append "\n")

	(append
		(cat #registerimagefxversions
			(select #imagefxversions
				"v1.x...v4.x"
				"v1.x"
				"v2.x"
				"v3.x"
				"v4.x"
			)
			"\n"
		)
	)

	(append "\n")

	(append #registermodules "\n" #redfixmoduleslist "\n")

	(append #registerprice #redfixprice #modulepricesuffix)
)

(complete 95)

; Czy ENV: i ENVARC: istnieja?
(if
	(AND
		(<> (getassign "ENV") "")
		(<> (getassign "ENVARC") "")
	)
	(

; Czy ENV: i ENVARC: sa rozne? (idiotoodpornosc)
		(if
			(<>
				(getassign "ENV")
				(getassign "ENVARC")
			)
			(

; Pytamy sie czy zapisac ustawienia na stale.
				(if
					(askbool
						(prompt	#saveenvironmentmsg)
						(help		#helpsaveenvironmentmsg)
						(default TRUE)
					)
					(

; Sprawdzamy czy ENV: i ENVARC: istnieja (idiotoodpornosc).
						(copyfiles
							(source "ENV:")
							(dest "ENVARC:")
							(pattern "REDFiX_Register_#?")
							(nogauge)
						)
					)
				)
			)
			(message #couldnotsaveenvironmentmsg)
		)
	)
	(message #couldnotsaveenvironmentmsg)
)

(complete 100)

(exit #exitmsg (quiet))
