; $VER: CINEMA 4D V4 Install Version 1.04 (1.11.96)
; Script zum Installieren des CINEMA 4D V4-Paketes auf Festplatte
; © Dipl.-Ing. Michael Giebel und Dipl.-Inform. Jan M. Anton
; adapted by Dipl.-Crack. RTM/dECiSiON

(complete 0)

;=================
;=== Variablen ===
;=================

(set os-version (/ (getversion) 65536))				; OS-Version
(set os-20 (>= os-version 36))
(set os-21 (>= os-version 38))
(set os-30 (>= os-version 39))

(set cpu-type (database "cpu"))
(set fdversion 1)												; Prozessor-Version
(set gfxout 0)													; keine Grafikkarte
(set samples 1)												; Beispiele installieren

; CD
(set CD "")

; Quell-Dateien und -Verzeichnisse.
(set src-c4dpiclib		"libs/c4dpic.library")
(set src-egslib			"libs/EGS/c4d.library")
(set src-egsdoc			"libs/EGS/CinemaEGS.guide")
(set src-merlinemulib	"libs/Merlin/c4d.library")
(set src-merlinoldlib	"libs/Merlin/cinemaausgabe.library")
(set src-merlindoc		"libs/Merlin/CinemaMerlin.txt")
(set src-picassolib		"libs/Picasso/c4d.library")
(set src-retinalib		"libs/Retina/c4d.library")

(set src-c4d-drw			"MaxonCINEMA/")
(set src-c4d-cd			"")

(set src-c4d-881			"MaxonCINEMA/Cinema.FP")
(set src-c4d-020			"MaxonCINEMA/Cinema")
(set src-ray-881			"MaxonCINEMA/Raytracer.FP")
(set src-ray-020			"MaxonCINEMA/Raytracer")
(set src-c4d-rq			"MaxonCINEMA/c4d_rq")
(set src-c4d-view			"MaxonCINEMA/CineView")
(set src-c4d-ml			"MaxonCINEMA/MagicLink")
(set src-tree-libs		"patches/tree/libs")
(set src-tree-locale		"patches/tree/locale")

(set src-doc				"Doc#?")
(set src-icons				"Cinema-Icons#?")
(set src-tools				"Tools#?")
(set src-mat				"Mat#?")
(set src-szenen			"Szenen#?")
(set src-tex				"Tex#?")
(set src-diamant			"Diamant#?")
(set src-tut				"Tutorial#?")
(set src-helv				"fonts")
(set src-wichtig			"Wichtig#?")

;=============
;=== Texte ===
;=============

(set #help-startup
(cat	"Die Datei \"user-startup\" befindet sich im Verzeichnis \"S:\". "
		"In ihr befinden sich spezielle Kommandos, die einige Programme "
		"bereits beim Systemstart ausgeführt haben wollen.\n\n"
		"Wenn Sie auf den Schalter \"Weiter\" klicken, so wird Ihre "
		"\"user-startup\" automatisch um die angezeigten Zeilen ergänzt. "
		"Wollen Sie jedoch diesen Teil überspringen, so klicken Sie auf "
		"den Schalter \"Diesen Teil überspringen\"\n\n"
		"\"Installation abbrechen\" bricht die Installation an dieser Stelle ab."))

(set #introduction
(cat	"Mit diesem Installationsprogramm können Sie\n CINEMA 4D\n auf einer "
		"Festplatte installieren.\nDie Installation läuft nahezu vollständig "
		"automatisch ab.\n"
		"Das komplette Paket belegt ca. 16 MByte auf Ihrer Festplatte!\n\n"
		"Drücken Sie \"Weiter\", um mit der Installation fortzufahren.\n"
		"Drücken Sie \"Installation abbrechen\", um die Installation abzubrechen.\n\n"
		"fixed by RTM/dECiSiON"))

(set #wrk-inst-prg881 "\nDie Version für mathematische Coprozessoren von CINEMA 4D wird installiert...\n")
(set #wrk-inst-prg020 "\nDie Version für MC68020 und höher von CINEMA 4D wird installiert...\n")
(set #wrk-inst-ml "\nMagicLink wird installiert...\n")
(set #wrk-inst-c4d-view "\nCinemaView wird installiert...\n")
(set #wrk-copy-libs "\nDie Bibliotheken werden installiert...\n")
(set #wrk-inst-libs "\nEinige Bibliotheken werden nach LIBS: kopiert...\n")
(set #wrk-copy-egs "\nEinige EGS-Zusatzdokumente werden installiert...\n")
(set #wrk-copy-merlin "\nEinige Merlin-Zusatzdokumente werden installiert...\n")
(set #wrk-inst-tools "\nEinige Hilfsprogramme werden installiert...\n")
(set #wrk-inst-doc "\nZusätzliche Dokumentation wird installiert...\n")
(set #wrk-inst-devel "\nDie Entwickler-Dokumentation wird installiert...\n")
(set #wrk-inst-icons "\nEinige Piktogramme werden installiert...\n")
(set #wrk-inst-mat "\nDie Materialien werden installiert...\n")
(set #wrk-inst-rexx "\nEin nützliches ARexx-Programm wird installiert...\n")
(set #wrk-inst-szenen "\nDie Beispiel-Szenen werden installiert...\n")
(set #wrk-inst-texadd "\nZusätzliche JPEG-Texturen werden installiert...\n")
(set #wrk-inst-tex "\nDie Beispiel-Texturen werden installiert...\n")
(set #wrk-inst-pics "\nDie Übersichts-Bilder werden installiert...\n")
(set #wrk-inst-diamant "\nDer Zeichensatz \"Diamant\" wird installiert...\n")
(set #wrk-inst-helv "\nDer Zeichensatz \"Helvetica\" wird installiert...\n")
(set #wrk-inst-drwr "\nEinige Unterverzeichnisse werden erzeugt...\n")
(set #wrk-inst-tut "\nTutorial wird kopiert...\n")
(set #wrk-inst-libs "\nLibraries werden kopiert...\n")
(set #wrk-inst-locale "\nLocale-Dateien werden kopiert...\n")

(set #prp-installdrawer
	(cat	"In welche Schublade soll installiert werden?\n"
			"Eine Schublade \"MaxonCINEMA\", \"Cinema\", o.ä. muß selbst erzeugt werden!"))
(set #askdir-help
	(cat	"\nWählen Sie zuerst eine Schublade Ihrer Festplatte aus, auf der "
			"Sie gerne CINEMA 4D installieren möchten. Möchten Sie in eine "
			"völlig neue Schublade installieren, so muß diese zuerst erzeugt "
			"werden.\n\n"
			"Wählen Sie hierzu \"Neue Schublade anlegen ...\"\n"
			"Es wird keine Schublade automatisch erzeugt! Anschließend drücken Sie "
			"auf \"WEITER\" und das Programm beginnt mit der Arbeit.\n\n"
			"CINEMA 4D *MUSS* sich in einem Unterverzeichnis einer Festplatte befinden. "
			"\"WORK:\" alleine genügt nicht. Es muß wenigstens ein \"WORK:Cinema\" oder "
			"ähnlich lautendes Verzeichnis sein.\n\n"
			@askdir-help))

(set #prp-versionchoice
	(cat	"\nMöchten Sie die Version für mathematische Coprozessoren (MC68881/882) "
			"oder die Version für MC68020 (oder höher) installieren?\n"
			"Besitzen Sie einen Rechner mit 68040- oder 68060-Prozessor, wählen\n"
			"Sie bitte auf jeden Fall 'Math. Coprozessor'!"))
(set #hlp-versionchoice
	(cat	"\nBesitzer eines Amigas mit einem MC68020 oder höher *OHNE* mathematischen "
			"Coprozessor wählen die normale Version (z.B. A1200, A4000/30).\n\n"
			"Verfügt Ihr System über einen mathematischen Coprozessor (z.B. A3000, "
			"A4000/40, A4000/60, A3000/60), so wählen Sie Coprozessor-Version.\n\n"
			@askchoice-help))
(set #881-version "Math. Coprozessor")
(set #020-version "Normale Version")

(set #prp-grafikausgabe
	(cat	"\nSollen Ausgabetreiber für 24 Bit Grafiksysteme installiert werden?\n"))
(set #hlp-grafikausgabe
	(cat	"\nWenn Sie keine Grafikkarte (oder keine der oben genannten) besitzen, "
			"können Sie diese Frage mit \"Weiter\" überspringen.\n"
			"Ist eine der genannten Grafikkarten in Ihrem Amiga-System vorhanden, "
			"dann können Sie veranlassen, daß der entsprechende Treiber installiert "
			"wird.\n"
			"Für das CyberGraphX-System muß kein Treiber installiert werden, da "
			"Cinema 4D dieses direkt unterstützt.\n"
			"Fragen Sie nach den neuesten Grafikkarten-Treibern bei der Fa. MAXON nach.\n\n"
			@askchoice-help))
(set #no-gfx	"Keine oder CyberGraphX")
(set #egs	"EGS")
(set #retina	"Retina")
(set #merlin	"Merlin")
(set #picasso	"Picasso")

(set #prp-oldversion
	(cat 	"Auf Ihrem System ist bereits eine Version "
		"von CINEMA 4D installiert!\n"
		"Version 4 wird nun über Ihre alte Version kopiert. Bereits "
		"vorhandene Szenen, Materialien, Texturen und Bilder bleiben erhalten.\n\n"
		"Beachten Sie bitte, daß Texturen ab Version 4 im Verzeichnis 'Tex' und "
		"Materialien im Verzeichnis 'Mat' abgelegt werden. Sie müssen vorhandene "
		"Texturen oder Materialien also gegebenenfalls aus den alten Verzeichnissen "
		"umkopieren."
		 ))

(set #prp-insert-cd
	(cat	"\n\nBitte legen Sie nun die CD\n\nCINEMA4D4\n\n"
			"in Ihr CD-Laufwerk ein!"))

(set #prp-somefiles "\nEinige Installationsdateien werden kopiert...\n")

(set #prp-copy-c4dlib "Kopieren der Cinema-Ausgabe-Library")
(set #hlp-copy-c4dlib
	(cat	"Die Cinema-Ausgabe-Library enthält leistungsfähige Funktionen zum "
			"Betreiben von CINEMA 4D unter den besonderen Fähigkeiten von "
			"24 Bit Grafikkarten.\n\n"
			@copylib-help))

(set #ERRORRAM (cat "Kann die notwendigen Dateien nicht in die Ram Disk kopieren."))
(set #ABORT20  (cat "Sie verfügen nur über einen MC68000 Prozessor. CINEMA 4D "
						  "arbeitet mit diesem nicht mehr zusammen. Die Installation wird "
						  "daher abgebrochen!\n\n"
						  "Bitte wenden Sie sich an die Fa. MAXON !"))
(set #ABORT13  (cat "Sie verfügen leider nicht über Betriebssystem 2.0 oder höher.\n\n"
						  "Die Installation wird daher abgebrochen!"))

(set #trace "Bis hierher ging's gut !!!")				; (Breakpoint)

(set @abort-button "Abbruch")
(set @language "Deutsch")

;==================
;=== Prozeduren ===
;==================

(Procedure Inst_LhaFiles
	(working @Working @Dest)
	(run ("RAM:Lhx -E -N x %s \"%s/\"" @Source @Dest)))

(Procedure Inst_LhaFiles_Ohne								; kein / am Ende !!!
	(working @Working @Dest)
	(run ("RAM:Lhx -E -N x %s \"%s\"" @Source @Dest)))

(Procedure Inst_PatchFile
	(working (cat "\nDatei " @FName " wird aktualisiert.\n\n"))
	(set run-patcher (cat "patches/patcher " (tackon @default-dest (tackon @SOURCE @FName)) " ram:patchtmp patches/" @PFile))
	(run run-patcher)
	(if (exists "ram:patchtmp")
		(
			(copyfiles
				(source "ram:patchtmp")
				(dest (tackon @default-dest @SOURCE ))
				(newname @FName)
			)
			(delete "ram:patchtmp")
		)
	)
)

;==================
;===== MAIN() =====
;==================

; CINEMA 4D V3,4 läuft nicht mehr auf einem MC68000
; und nicht auf Amiga-OS 1.3
(if (OR (= cpu-type "68000") (= cpu-type "68010")) (abort #ABORT20))	; kein 68020 oder höher
(if (= 0 os-20) ((abort #ABORT13)))												; kein OS 2 oder höher

(message #introduction)
(welcome)

(if (exists "c4d:" (noreq))
(
	(message #prp-oldversion)
	(set #destiny "C4D:")
)
(
	(set #destiny												; Verzeichnis wählen
	(askdir
		(prompt #prp-installdrawer)
		(help #askdir-help)
		(default "WORK:")
		(disk)
	)
	)
)
)

(set @default-dest (expandpath #destiny))				; wg. Inst_LhaFiles expandieren

(if																; Installations-Verzeichnis erzeugen
	(= (exists @default-dest) 0)
	(makedir @default-dest)
)

(set fdversion													; Normal- oder Turboversion
	(askchoice
		(prompt #prp-versionchoice)
		(help #hlp-versionchoice)
		(choices #881-version #020-version)
		(default fdversion)
	)
)

(set gfxout														; Grafikkarte wählen
	(askchoice
		(prompt #prp-grafikausgabe)
		(help #hlp-grafikausgabe)
		(choices #no-gfx #egs #retina #merlin #picasso)
; gfxout    =    0      2      3      4      5
		(default gfxout)
	)
)

(																	; benötigte Verzeichnisse erzeugen
	(working #wrk-inst-drwr)
	(set #Animationen (tackon @default-dest "Animationen"))
	(set #Bilder (tackon @default-dest "Bilder"))
	(set #Erweiterungen (tackon @default-dest "Erweiterungen"))
	(makedir (#Animationen)(infos))
	(makedir (#Bilder)(infos))
	(makedir (#Erweiterungen)(infos))
)

(complete 5)

																	; Icons kopieren
(copyfiles
	(prompt #wrk-inst-icons)
	(help @copyfiles-help)
	(source src-c4d-drw)
	(pattern src-icons)
	(dest @default-dest)
)

(complete 10)
																	; Docs kopieren
(copyfiles
	(prompt #wrk-inst-doc)
	(help @copyfiles-help)
	(source src-c4d-drw)
	(pattern src-doc)
	(dest @default-dest)
)

(copyfiles														; Diamant kopieren
	(prompt #wrk-inst-diamant)
	(help @copyfiles-help)
	(source src-c4d-drw)
	(pattern src-diamant)
	(dest @default-dest)
)

(complete 20)
(copyfiles														; Materialien kopieren
	(prompt #wrk-inst-mat)
	(help @copyfiles-help)
	(source src-c4d-drw)
	(pattern src-mat)
	(dest @default-dest)
)

(copyfiles														; Szenen kopieren
	(prompt #wrk-inst-szenen)
	(help @copyfiles-help)
	(source src-c4d-drw)
	(pattern src-szenen)
	(dest @default-dest)
)

(complete 30)
(copyfiles														; Texturen kopieren
	(prompt #wrk-inst-tex)
	(help @copyfiles-help)
	(source src-c4d-drw)
	(pattern src-tex)
	(dest @default-dest)
)

(copyfiles														; Tutorial kopieren
	(prompt #wrk-inst-tut)
	(help @copyfiles-help)
	(source src-c4d-drw)
	(pattern src-tut)
	(dest @default-dest)
)

(copyfiles														; Wichtig-Datei kopieren
	(prompt #wrk-inst-wichtig)
	(help @copyfiles-help)
	(source src-c4d-cd)
	(pattern src-wichtig)
	(dest @default-dest)
)

(complete 40)
(copyfiles														; Font Helvetica kopieren
	(prompt #wrk-inst-helv)
	(help @copyfiles-help)
	(source src-helv)
	(pattern "#?")
	(dest "FONTS:")
)

(copyfiles														; c4dpic.lib nach libs: kopieren
	(prompt #prp-copy-c4dlib)
	(help #hlp-copy-c4dlib)
	(source src-c4dpiclib)
	(dest "LIBS:")
)

(complete 50)
(if (= gfxout 1)												; EGS output
	(
		(copyfiles
			(prompt #prp-copy-c4dlib)
			(help #hlp-copy-c4dlib)
			(source src-egslib)
			(dest "LIBS:")
		)
		(copyfiles
			(prompt #wrk-copy-egs)
			(help #hlp-copy-c4dlib)
			(source src-egsdoc)
			(dest (tackon @default-dest "Doc"))
			(infos)
		)
	)
)

(if (= gfxout 2)												; Retina output
	(copyfiles
		(prompt #prp-copy-c4dlib)
		(help #hlp-copy-c4dlib)
		(source src-retinalib)
		(dest "LIBS:")
	)
)

(if (= gfxout 3)												; Merlin output
	(
		(copyfiles
			(prompt #prp-copy-c4dlib)
			(help #hlp-copy-c4dlib)
			(source src-merlinemulib)
			(dest "LIBS:")
		)
		(copyfiles
			(prompt #prp-copy-c4dlib)
			(help #hlp-copy-c4dlib)
			(source src-merlinoldlib)
			(dest "LIBS:")
		)
		(copyfiles
			(prompt #wrk-copy-merlin)
			(help #hlp-copy-c4dlib)
			(source src-merlindoc)
			(dest (tackon @default-dest "Doc"))
			(infos)
		)
	)
)

(if (= gfxout 4)												; Picasso output
	(copyfiles
		(prompt #prp-copy-c4dlib)
		(help #hlp-copy-c4dlib)
		(source src-picassolib)
		(dest "LIBS:")
	)
)

(complete 60)
																	; Festplatteninstallation
(if (= fdversion 0)
	(																; 881-Version installieren
		(copyfiles
			(infos)
			(prompt #wrk-inst-prg881)
			(help @copyfiles-help)
			(source src-c4d-881)
			(dest @default-dest)
			(newname "Cinema4D")
		)
		(copyfiles
			(infos)
			(prompt #wrk-inst-prg881)
			(help @copyfiles-help)
			(source src-ray-881)
			(dest @default-dest)
			(newname "Raytracer")
		)
	)
	(																; 020-Version installieren
		(copyfiles
			(infos)
			(prompt #wrk-inst-prg020)
			(help @copyfiles-help)
			(source src-c4d-020)
			(dest @default-dest)
			(newname "Cinema4D")
		)
		(copyfiles
			(infos)
			(prompt #wrk-inst-prg020)
			(help @copyfiles-help)
			(source src-ray-020)
			(dest @default-dest)
		)
	)
)

(complete 80)

(copyfiles														; MagicLink installieren
	(source "MaxonCINEMA/cin.key")
	(dest "L:")
)
(copyfiles														; MagicLink installieren
	(prompt #wrk-inst-ml)
	(help @copyfiles-help)
	(source src-c4d-ml)
	(dest @default-dest)
)
(copyfiles
	(prompt #wrk-inst-ml)
	(help @copyfiles-help)
	(source (cat src-c4d-ml ".info"))
	(dest @default-dest)
)

(copyfiles														; CineView installieren
	(prompt #wrk-inst-c4d-view)
	(help @copyfiles-help)
	(source src-c4d-view)
	(dest @default-dest)
)
(copyfiles
	(prompt #wrk-inst-c4d-view)
	(help @copyfiles-help)
	(source (cat src-c4d-view ".info"))
	(dest @default-dest)
)


																	; CinemaTREE patchen

(if (exists (tackon @default-dest "Erweiterungen/CinemaTREE"))
	(
		(message "Sie haben CinemaTREE installiert.\nDas Programm wird nun automatisch "
					"für die Verwendung mit Cinema 4D V4 abgeändert.")
		(
			(set @PFile "tree/tree.patch")
			(set @SOURCE "Erweiterungen")
			(set @FName "CinemaTree")
			(Inst_PatchFile)

			(copyfiles											; Zusätzliche Libs für Tree
				(prompt #wrk-inst-libs)
				(help @copyfiles-help)
				(source src-tree-libs)
				(pattern "#?")
				(dest "LIBS:")
			)

			(copyfiles											; Zusätzliche Locales für Tree
				(prompt #wrk-inst-locale)
				(help @copyfiles-help)
				(source src-tree-locale)
				(pattern "#?")
				(dest "LOCALE:")
			)
		)
	)
)

																	; CinemaTREE 881 patchen

(if (exists (tackon @default-dest "Erweiterungen/CinemaTREE.881"))
	(
		(message "Sie haben CinemaTREE für FPU installiert.\nDas Programm wird nun automatisch "
					"für die Verwendung mit Cinema 4D V4 abgeändert.")

		(
			(set @PFile "tree/tree881.patch")
			(set @SOURCE "Erweiterungen")
			(set @FName "CinemaTree.881")
			(Inst_PatchFile)

			(copyfiles											; Zusätzliche Libs für Tree
				(prompt #wrk-inst-libs)
				(help @copyfiles-help)
				(source src-tree-libs)
				(pattern "#?")
				(dest "LIBS:")
			)

			(copyfiles											; Zusätzliche Locales für Tree
				(prompt #wrk-inst-locale)
				(help @copyfiles-help)
				(source src-tree-locale)
				(pattern "#?")
				(dest "LOCALE:")
			)
		)

	)
)


																	; CinemaWORLD patchen

(if (exists (tackon @default-dest "Erweiterungen/CinemaWorld"))
	(
		(message "Sie haben CinemaWORLD installiert.\nDas Programm wird nun automatisch "
					"für die Verwendung mit Cinema 4D V4 abgeändert.")
		(
			(set @PFile "world/world.patch")
			(set @SOURCE "Erweiterungen")
			(set @FName "CinemaWorld")
			(Inst_PatchFile)
		)
	)
)


																	; CinemaWORLD 881 patchen

(if (exists (tackon @default-dest "Erweiterungen/CinemaWorld.881"))
	(
		(message "Sie haben CinemaWORLD für FPU installiert.\nDas Programm wird nun automatisch "
					"für die Verwendung mit Cinema 4D V4 abgeändert.")
		(
			(set @PFile "world/world881.patch")
			(set @SOURCE "Erweiterungen")
			(set @FName "CinemaWorld.881")
			(Inst_PatchFile)
		)
	)
)

(complete 95)

																	; CINEMA-Assign C4D: setzen

(set command1 (cat "Assign C4D: " @default-dest))
(set #command1.txt
	(cat	"\nUm mit CINEMA 4D arbeiten zu können, wird ein logisches Gerät "
			"erzeugt. Außerdem wird eine Änderung in der \"User-Startup\" vorgenommen:\n\n"
			command1))

(startup "MaxonCINEMA"
	(prompt #command1.txt)
	(help #help-startup)
	(command command1)
)
(makeassign "C4D")
(makeassign "C4D" @default-dest)

(complete 100)

;==================
;=== Conclusion ===
;==================

(message
	(cat	"Die Installation von CINEMA 4D ist erfolgreich beendet.\n\n"
			"Bitte lesen Sie die Datei \"Wichtig\" im CINEMA 4D-Verzeichnis durch.\n\n"
			"Wir wünschen Ihnen viel Spaß beim Arbeiten mit CINEMA 4D!"))
