;*************************************************************************
;*  ArtEffect Installer Version 1.x                                      *
;*                                                                       *
;*  Installer Revision by Jürgen Haage                                   *
;*  ©1996-99 HAAGE & PARTNER Computer GmbH                                  *
;*                                                                       *
;*  If you have any installer questions please let us know!              *
;*                                                                       *
;*************************************************************************
;
; $VER: ArtEffect V1.5 Install Version 1.2 (15 Jan 99)

(complete 0)

; Die Versionsnummer und das Erstellungs-Datum der hier installierten
; Versionen.

(set stw-version "1.5 Classic")
(set stw-date "(15 Jan 99)")

;====================================================================
; Initialisierungen

(set @default-dest "")

(set os-version (/ (getversion) 65536))
(set os-13 (< os-version 36))
(set os-20 (>= os-version 36))
(set os-21 (>= os-version 38))

(set totalmem (database "total-mem")) ; Diese schöne Funktion vereinfacht einiges

(set size-komplett      3000000)

;====================================================================
; Init (English)

    (set #yeskey "Yes")
    (set #nokey "No")

    (set #wrongos "\n Sorry, you will need OS 3.0 or better!\n")

    (set #welcome (cat "\nWelcome to the installation of \n\n"
         "ArtEffect" stw-version " of "stw-date"\n\n"
         "This script copies all the files of ArtEffect "
         "and the BGUI-Library onto your hard disk "
         "and adds an Assign.\n\n\n"
         "© Copyright 1996-99 HAAGE & PARTNER Computer GmbH"))

    (set #oldversion (cat "\n"
        "There is another version of ArtEffect on your "
        "hard disk!\n"
        ))

    (set #oldversion_help (cat "\n"
        "Please choose the old drawer to Update your \n"
        "old version!                                 "
        ))
    (set #new    "New installation")
    (set #update "Update old version")
    (set #remove "Deinstallation - deletes ArtEffect")

    (set #chose_path (cat
        "Please select a device or a drawer for your "
        "installation of ArtEffect.\n\n"
        "A new drawer named \"ArtEffect\" will be created "
        "automatically!"
        ))

    (set #chose_path_help (cat "\n"
        "Select 'Show drives' to get an overview of all "
        "devices.\n"
        "Please select one of the devices on top of "
        "the list.\n"
        "Typical names are f.i. \"WORK:\", \"HD0:\" or \"DH0:\" "
        "Do not use \"DF0:\", \"DF1:\", \"DF2:\", "
        "\"DF3:\", \"RAD:\", \"RAM:\", \"System2.0:\", "
        "\"WB_2.x:\", \"System3.0:\" or \"WB_3.x:\"! \n\n"
        "A new drawer named \"ArtEffect\" will be created "
        "automatically!\n\n"
        @askdir-help))

    (set #auswahlhilfe (cat "\n"
        "There is an old version of ArtEffect on your "
        "hard disk !\n\n"
        "Select \"Yes\" to overwrite the old files. "
        "Otherwise select \"No\" !\n"
        ))

    (set #wrk_justamoment (cat "\n"
        "This will last some time !\n"
        "Please stay tuned ...\n"
        ))

    (set #wrk_guidecrunch (cat "\n"
        "Unpacking files ...\n\n"
        "ArtEffect - Image Processing & Natural Painting!\n\n"
        #wrk_justamoment
        ))

    (set #decrunch_error (cat "\n\n"
        "Error while unpacking files!\n\n"
        "Maybe there is not enough free space on your "
        "hard disk or some files are protected from "
        "deleting or writing!\n"
        ))

    (set #prp-copy-lib
        "Copying BGUI-LIBRARY\n")
    (set #hlp-copy-lib
        "BGUI-Library is needed by ArtEffect !")

    (set #prp-insert-disk1 (cat "\n"
        "\n\nPlease insert Disk 1 \"ArtEffect_Disk1\" "
        "in any drive now!"
        ))

    (set #prp-insert-disk2 (cat "\n"
        "\n\nPlease insert Disk 2 \"ArtEffect_Disk2\" "
        "in any drive now!"
        ))



(if (= @language "deutsch") (

    (set #yeskey "Ja")
    (set #nokey "Nein")

    (set #wrongos "\n Sorry, dieses Paket benoetigt mind. OS 3.0.\n")

    (set #welcome (cat      "\nWillkommen bei der Installation von \n\n"
         "ArtEffect" stw-version " vom "stw-date"\n\n"
         "Dieses Skript entpackt ArtEffect, kopiert "
         "die BGUI-Library auf Ihre Festplatte "
         "und erzeugt einen Assign.\n\n\n"
         "© Copyright 1996-99 HAAGE & PARTNER Computer GmbH"))

    (set #oldversion (cat "\n"
        "Auf Ihrer Festplatte befindet sich bereits "
        "eine Installation von ArtEffect!\n"
        ))

    (set #oldversion_help (cat "\n"
        "Wählen Sie einfach die bereits vorhandene "
        "Schublade an, wenn Sie ihr altes System "
        "aktualisieren möchten!"
        ))
    (set #new    "Neu installieren")
    (set #update "Update über bisherige Version installieren")
    (set #remove "Deinstallation - ArtEffect entfernen")

    (set #chose_path (cat
        "Auswahl des Pfades für die Installation.\n"
        "Bitte wählen Sie ein Laufwerk oder ein Verzeichnis!\n"
        "Eine Schublade \"ArtEffect\" wird automatisch erzeugt.                                "
        ))

    (set #chose_path_help (cat  "\n"
        "Sie können über das Symbol 'Laufwerke anz.' "
        "(bzw. 'Show drives') eine Übersicht über alle "
        "Laufwerke Ihres Amiga anfordern; aus dieser "
        "Übersicht sollten Sie nur die oberen, nicht "
        "farblich gekennzeichneten Einträge auswählen. \n"
        "Typische sinnvolle Namen sind z.B. \"WORK:\", "
        "\"HD0:\" oder \"DH0:\" nicht verwenden sollten "
        "Sie Namen wie \"DF0:\", \"DF1:\", \"DF2:\", "
        "\"DF3:\", \"RAD:\", \"RAM:\", \"System2.0:\", "
        "\"WB_2.x:\", \"System3.0:\" oder \"WB_3.x:\"! \n\n"
        "ArtEffect kann nur in eine Schublade nicht aber "
        "auf eine Partition direkt installiert werden! \n"
        "Wenn Sie also nur ein Laufwerk für die "
        "Installation auswählen, wird Ihnen eine "
        "Fehlermeldung angezeigt!\n\n"
        @askdir-help))

    (set #auswahlhilfe (cat "\n"
        "Auf Ihrer Festplatte befindet sich bereits "
        "eine Version der Datei die installiert werden "
        "soll.\n\n"
        "Wählen Sie \"Ja\", wenn Sie die alte Datei mit "
        "der neuen überschreiben möchten. "
        "Anderenfalls wählen Sie bitte \"Nein\"!\n"
        ))

    (set #wrk_justamoment (cat "\n"
        "Das dauert eine geraume Zeit.\n"
        "Bitte haben Sie etwas Geduld!\n"
        ))

    (set #wrk_guidecrunch (cat "\n"
        "Entpacke die Dateien...\n\n"
        "ArtEffect - Bildbearbeitung und natürliches Malen!\n\n"
        #wrk_justamoment
        ))

    (set #decrunch_error (cat "\n\n"
        "Fehler beim Entpacken!\n\n"
        "Stellen Sie bitte sicher, daß Ihre Festplatte "
        "ausreichend Speicherkapazität hat, und, falls "
        "die Dateien bereits vorhanden sind diese nicht "
        "Lösch- oder Schreibgeschützt sind.\n"
        ))

    (set #prp-copy-lib
        "Kopiere die BGUI-LIBRARY\n")
    (set #hlp-copy-lib
        "Ohne die aktuelle Version der BGUI-Library, funktioniert nichts!")

    (set #prp-insert-disk1 (cat "\n"
        "\n\nBitte legen Sie nun die Diskette 1 \"ArtEffect_Disk1\" "
        "in ein beliebiges Laufwerk ein!"
        ))

    (set #prp-insert-disk2 (cat "\n"
        "\n\nBitte legen Sie nun die Diskette 2 \"ArtEffect_Disk2\" "
        "in ein beliebiges Laufwerk ein!"
        ))

))

; ----------------------------- Prozeduren ------------------------------

(Procedure Make_Folder
    (
    (set folder (tackon folder "ArtEffect"))
        (if (= (exists folder) 0)
            (
            (makedir folder (infos))
            )
            (
            (set update 1)        ; // Doch schon vorhanden!
            )
        )
    )
)

; // Die Pfadnamen der einzelnen Quell-Dateien.
(set source-more                    "C/More")
(set source-lhx                     "C/LhA")
(set source-Guide                   "Readme")

(if (= @language "deutsch") (
   (set source-Guide                   "LIESMICH")
))

(set archive-ArtEffect1            "ARTEFFECT1.LHA")
(set archive-ArtEffect2            "ARTEFFECT2.LHA")
(set archive-ArtEffectBrushes      "Brushes.English.Lha")

;=====================================================================================
; Beginn der Installation
;=====================================================================================

; // needs OS 3.0 !!!

(if (< (/ (getversion) 65536) 39)

    (
        (message #wrongos)
        (exit (quiet))
    )
)

; Intro


(message #welcome)
(welcome)


(complete 5)

; // Alte Version prüfen und entsprechende Abfrage ausgeben!--------------------------------------------

(set update   0)

(set act-user-level @user-level)
(user 1)

(set folder "WORK:")

(if (<> update 0)  ; // altes Assign benutzen wenn update oder remove
    (
        (set folder (getassign "ArtEffect"))
    )
)

(user act-user-level)

(if (= update 0)
    (
    (set ok 0)
        (while (not ok)
            (set folder
                (askdir
                (prompt #chose_path)
                (help #chose_path_help)    ; // Auswahl Hilfetext
                (default folder)
                (disk)
                )
            )

            (Make_Folder)    ; // Automatisch neues Verzeichnis anlegen!

    (set #dir_error (cat  "\n"
        "Your selection \"" folder "\" is not a valid device or drawer!\n\n"
        "Select 'Show drives' to get an overview of all "
        "devices available on your Amiga.\n"
        "Please select one of the devices on top of the list.\n"
        "Typical names are f.i. \"WORK:\", \"HD0:\" or \"DH0\" "
        "Do not use \"DF0:\", \"DF1:\", \"DF2:\", "
        "\"DF3:\", \"RAD:\", \"RAM:\", \"System2.0:\", "
        "\"WB_2.x:\", \"System3.0:\" or \"WB_3.x:\"!\n\n"
        ))

    (set #memory_error (cat  "\n"
        "There is not enough free disk space at the "
        "device you have selected for the installation.\n\n"
        "Free diskspace    " freediskspace "!\n"
        "Diskspace needed  " size-komplett "!\n\n"
        "Please select a another device or harddisk!"
        ))

(if (= @language "deutsch") (

    (set #dir_error (cat  "\n"
        "Bei Ihrer Auswahl \"" folder "\" handelt es "
        "sich nicht um eine gültige Schublade!\n\n"
        "Sie können über das Symbol 'Laufwerke anz.' "
        "(bzw. 'Show drives') eine Übersicht über alle "
        "Laufwerke Ihres Amiga anfordern; aus dieser "
        "Übersicht sollten Sie nur die oberen, nicht "
        "farblich gekennzeichneten Einträge auswählen. \n"
        "Über den Schalter \"Neue Schublade anlegen..\" "
        "können Sie ein neue Schublade erzeugen. Diese "
        "neue Schublade wird auf der Partition "
        "angelegt, die Sie soeben betrachten."
        ))

    (set #memory_error (cat  "\n"
        "Auf der ausgewählten Festplattenpartition "
        "steht nicht genügend freier Speicher für die "
        "komplette Installation des Compilersystems zur "
        "Verfügung.\n\n"
        "Freier Speicher " freediskspace "!\n"
        "Benötigter Speicher " size-komplett "!\n\n"
        "Bitte wählen Sie eine andere Partition, auf "
        "der entsprechende Kapazitäten vorhanden sind!"
        ))
))

            ; // Ist der Dateiname leer oder endet mit einem ':' oder existiert unter
            ; // diesem Namen kein Verzeichnis, wird eine Fehlermeldung angezeigt; andernfalls
            ; // kann die Auswahl-Schleife beendet werden.
            (if (or (or (or (<= (strlen folder) 0) (= (substr folder (- (strlen folder) 1) 1) ":")) (= (exists folder (noreq)) 0)) (= (getdiskspace folder) -1))
                (message #dir_error)  ; Fehler bei der Auswahl der Schublade
                ;else
                (
                    (set freediskspace (getdiskspace folder))  ; // Der freie Speicher auf diesem Medium
                    (if (< freediskspace size-komplett)
                        (
                        (user 1)
                            (message #memory_error)  ; // nicht genügend freier Speicher
                        )
                     ;else
                        (set ok 1)
                    )
                )
            )
        )
    )
)

(makeassign "ArtEffect")

(user act-user-level)


; // Diskette 1 einlegen!

;(askdisk
;    (prompt #prp-insert-disk1)
;    (help #askdir-help)
;    (dest "ArtEffect_Disk1")
;)

(complete 10)

; // Lhx wird in die RAM-Disk kopiert, damit das Programm nicht jedesmal von Disk
; // geladen werden muß.

(makeassign "ArtEffect")
(makeassign "ArtEffect" folder)

(copyfiles
        (dest "RAM:")
        (source source-lhx)
)

; // Handbuch auf Festplatte kopieren!

(copyfiles
        (dest folder)
        (source source-Guide)
        (infos)
)

;(run "run Multiview ArtEffect:Liesmich")

;=================== Alle 1. ArtEffect-Dateien =====================================================
(complete 20)

; Bildverarbeitung entpacken

(makeassign "lhex_temp" folder)

  (working #wrk_guidecrunch)
  (set COMPERROR (run "ram:lhA -q -m x " archive-ArtEffect1 " lhex_temp:"))
  (if  ( <> COMPERROR 0)
     (message #decrunch_error)
  )

(complete 40)

(if (<> @language "deutsch") (

                ; Englishe Brushes entpacken

                (makeassign "lhex_temp" folder)

                  (working #wrk_guidecrunch)
                  (set COMPERROR (run "ram:lhA -q -m x " archive-ArtEffectBrushes " lhex_temp:"))
                  (if  ( <> COMPERROR 0)
                     (message #decrunch_error)
                  )
))

(complete 50)
;==================================================================================

; // Diskette 2 einlegen!

;(askdisk
;    (prompt #prp-insert-disk2)
;    (help #askdir-help)
;    (dest "ArtEffect_Disk2")
;)

;=================== Alle 2. ArtEffect-Dateien =====================================================

; Bildverarbeitung entpacken

(makeassign "lhex_temp" folder)

  (working #wrk_guidecrunch)
  (set COMPERROR (run "ram:lhA -q -m x " archive-ArtEffect2 " lhex_temp:"))
  (if  ( <> COMPERROR 0)
     (message #decrunch_error)
  )


;==================================================================================

(complete 80)
; BGUI.Library in die Libs-Schublade kopieren!

(set sourcelib (tackon folder "LIBS/BGUI.library"))

(copylib
        (prompt #prp-copy-lib)
        (help #hlp-copy-lib)
        (source sourcelib)
        (dest "LIBS:")
        (confirm)
)

(complete 80)

(if (<> @language "deutsch") (  ; Falls english installiert wird!

(set sourcepict (tackon folder "Pictures/Apfel.jpg"))
(set destpict   (tackon folder "Pictures/Apple.jpg"))

                (if (= (exists sourcepict) 1)
                     (
                     (rename sourcepict destpict)
                     )
                )

(set sourcepict (tackon folder "Pictures/Gemüse.jpg"))
(set destpict   (tackon folder "Pictures/Vegetables.jpg"))

                (if (= (exists sourcepict) 1)
                     (
                     (rename sourcepict destpict)
                     )
                )

(set sourcepict (tackon folder "Pictures/DiaFilm.jpg"))
(set destpict   (tackon folder "Pictures/FilmFrame.jpg"))

                (if (= (exists sourcepict) 1)
                     (
                     (rename sourcepict destpict)
                     )
                )

(set sourcepict (tackon folder "Pictures/Strand_320.jpg"))
(set destpict   (tackon folder "Pictures/Beach_320.jpg"))

                (if (= (exists sourcepict) 1)
                     (
                     (rename sourcepict destpict)
                     )
                )

(set sourcepict (tackon folder "Pictures/Sommer96.jpg"))
(set destpict   (tackon folder "Pictures/Summer96.jpg"))

                (if (= (exists sourcepict) 1)
                     (
                     (rename sourcepict destpict)
                     )
                )
))

(complete 95)

; ------- STARTUP ÄNDERN

(set command1 (cat  "ASSIGN ArtEffect: " folder))


(set command1.txt
        (cat "\n\n\nTo get ArtEffect work right there has to be made "
        "some changes to your User-Startup !\n\n"
        command1
        )
)

(if (= @language "deutsch") (

(set command1.txt
        (cat "\n\n\nUm mit ArtEffect richtig arbeiten zu können, muß "
        "eine Änderung an der User-Startup vorgenommen werden.\n\n"
        command1
        )
)
))

(startup "ArtEffect"
        (prompt command1.txt)
        (help #help-startup)
        (command command1)
)

(makeassign "ArtEffect")
;(makeassign "ArtEffect" (pathonly @icon))
(makeassign "ArtEffect" folder)

(delete "RAM:LhA")

(complete 100)

; ------- FERTIG

(set #endnow (cat "Installation of ArtEffect completed.\n\n"
    "When the line:\n\n" command1 "\n\n has not been added "
    "to your User-Startup or Startup-Sequence, "
    "please do that manually.\n\n"
    "Best wishes...\n\n"
    "HAAGE & PARTNER Computer GmbH, Germany"
    ))

(if (= @language "deutsch") (

    (set #endnow (cat "\nInstallation von ArtEffect beendet.\n\n"
        "Falls die Zeile:\n\n" command1 "\n\n nicht in Ihre User-Startup bzw. "
        "Startup-Sequence eingefügt wurde, dann holen Sie dies bitte nach.\n\n"
        "\n\nWir wünschen ihnen viel Erfolg mit ArtEffect!\n\n"
        "HAAGE & PARTNER Computer GmbH"
    ))
))

(message #endnow)
