; $VER: Install_Jongl V1.0 (18.5.96)
; Script zum installieren des Jongliersimulationsprogramms Jongl!
; von Martin Hoffmann (erster Versuch)
;
; Bitte nich anschauen, da nich so toll
;
;=============================================================================
;
; Begrüßung
;
(Message "Wilkommen zur Installation des Jongliersimulationsprogramms \n\n"
         "JONGL!\n\n"
         "Dem einzigen Jongliersimulationsprogramm mit Kettensägen und "
         "3D Echtzeitdarstellung \n\n"
         "Geschrieben von The Werner und Martin\n\n"
         "Übrigens das einzige relevante Programm in diesem Bereich"
         )
;
(Welcome)
;
;=============================================================================
;
; wohin soll die Datenflut
;
(set Jongl_dest
   (askdir
      (prompt "Wohin soll das Jongl Programm ? "
              "Ein Unterverzeichnis namens Jongl wird automatisch erzeugt")
      (help "Verzeichnis auswählen aber dalli! Das Unterverzeichnis "
            "erzeuge aber ich, ist das klar?"
      (default @default-dest)
      )
   )
)
(Makedir (tackon jongl_dest "Jongl") 
  (infos)
)
(Makedir (tackon jongl_dest "Jongl/m"))
(Makedir (tackon jongl_dest "Jongl/o"))
(set @default-dest (tackon Jongl_dest "Jongl"))
;
;=============================================================================
;
; ask which cpu version to install
;
(set cpuversion
   (askchoice
      (prompt "Wasfürne Version soll installiert werden?")
      (choices "68000 Version" "68020 / 68881 Version")
      (if (< (database "cpu") "68881")
          (default 0)
          (default 1)
      )
      (help "Falls Du in der glücklichen Lage bist, einen "
            "Amiga mit Mathecoprozessor zu haben, dann ist "
            "es empfehlenswert, die 68881 Version zu installieren. "
            "Die braucht aber auch einen 68020 Hauptprozessor. "
            "Dafür gibt es dann auch tolle Features wie Verzerrung, "
            "Kotz-Modus, etc. Falls "
            "nicht, dann nicht."
      )
   )
)

;=============================================================================
; copy Jongl
;
(Complete 20)
(Copyfiles
   (Prompt (cat "Ich kopiere jetzt alle notwendigen Dateien in " @jongl_dest))
   (Help "Das wird so gemacht, wie es dasteht, da gibts nich viel zu rätseln")
   (source "")
   (dest @default-dest)
   (files)
   (infos)
   (Choices "Jongl.info" "List_Of_Objects" "List_Of_People" "List_Of_Sounds" "LOO"
            "Boden" "Jongl.Guide"
   )
   (NoGauge)
   (Confirm)
)
;
; Die Dateien LOO und Boden mit Spript-Flags versehen
;
(Protect (Tackon @default-dest "LOO") 64)
(Protect (Tackon @default-dest "Boden") 64)
;
;(Copyfiles
;  (source "JonglStart_inst")
;  (dest @default-dest)
;  (newname "Jonglstart")
;)
(Copyfiles
   (source
      (tackon 
      ("")
         (if (= cpuversion 0)
              ("Jongl68000")
              ("Jongl020881")
         )
      )
   )
   (dest @default-dest)
   (Newname "Jongl")
   (NoGauge)
)
(Copyfiles
   (source
      (tackon 
      ("")
         (if (= cpuversion 0)
              ("Jongl.Prefs_Blit")
              ("Jongl.Prefs_CPU")
         )
      )
   )
   (dest @default-dest)
   (Newname "Jongl.Prefs")
   (NoGauge)
)
;=============================================================================
; nun die Objekte Installieren
;
(Complete 40)
;(Message "Nun werden die Objekte kopiert")
(Working "Bitte warten, ich kopiere nun die Objekte")
(Copyfiles
   (source "O/")
   (Pattern "#?")
   (Dest (tackon Jongl_dest "Jongl/O"))
   (NoGauge)
)
;=============================================================================
; nun die Pointer Installieren (bei 2.0 oder 3.0)
;
(Complete 50)
(Message "Nun werden die Pointer installiert\n"
         "Bei Kickstart 1.3 passiert hier nichts.\n"
         "Bei Kickstart 2.0 und höher werden "
         "leere Pointer nach sys:prefs/presets "
         "sowie nach envarc:sys kopiert"
)
(Working "Kopiere nun den notwendigen Pointer")
;
; OS 1.3 (nichts machen)
;
(if (< (/ (getversion) 65536) 37)
    (Complete 55)
;
; OS 2.0 - 2.1
;
 (if (< (/ (getversion) 65536) 39)
  (
   (Debug "Sie Haben OS 2.0 oder 2.1")
   (Copyfiles
    (source "Pointer/LeererPointer2.0")
    (Dest "sys:prefs/presets")
    (newname "LeererPointer")
    (NoGauge)
   )
   (if (= (exists "envarc:sys/Pointer.ILBM") 0)
    (
     (Copyfiles
       (source "Pointer/Pointer.ILBM")
       (Dest "envarc:sys/")
       (NoGauge)
     )
    )
   )
  )
 )
)
;
; OS 3.0 +
;
(if (> (/ (getversion) 65536) 38)
 (
  (Debug "Sie Haben OS 3.0 oder höher")
  (Copyfiles
    (source "Pointer/LeererPointer3.1")
    (Dest "sys:prefs/presets/")
    (newname "LeererPointer")
    (NoGauge)
  )
  (if (= (exists "envarc:sys/Pointer.Prefs") 0)
   (
    (Copyfiles
      (source "Pointer/Pointer.Prefs")
      (Dest "envarc:sys/")
      (NoGauge)
    )
   )
  )
 )
)
;=============================================================================
; nun den Zeichensatz Installieren
;
(Complete 60)
(Message "Nun wird der Zeichensatz 'Jongl.Font' kopiert")
(Working "Kopiere nun den Zeichensatz")
;
;
(Copyfiles
  (source "Fonts/")
  (Choices "Jongl")
  (Dest "Fonts:")
  (Fonts)
  (NoGauge)
)
;=============================================================================
; Soll irgendwas Spezielles installiert werden?

(Complete 70)
(if    (askbool
          (prompt "Sollen auch welche von den Zusatzprogrammen installiert weden?"
          )
          (help "Die Zusatzprogramme sind notwendig für den Theoriejongleur, "
                "der auch eigene site-swap Muster erzeugen will."                
          )
          (default 1)
       )    
   (
     (set Zus
       (askoptions
         (prompt "Welche Zusatzprogramme sollen kopiert werden?")
         (help  "J2: Gibt mögliche site-swap Muster aus \n"
                "j2Konv: Konvertiert site-swap Notationen in Muster\n"
                "Freestyle: produziert zufällige Muster\n"
;                "V2J: Wandelt Videoscape.bin Dateien in Jongl-Objekte um (Sparversion)"
         )
         (choices "J2" "J2Konv" "Freestyle" )
         (default 15)
       )
     )
     (if (in Zus 0)
        (Copyfiles
          (source "")
          (Choices "J2.c" "J2" "J2.Guide" "Notation.Guide")
          (Infos)
          (Dest (tackon Jongl_dest "Jongl"))
          (NoGauge)
        )
     )
     (if (in Zus 1)
       (Copyfiles
          (source "")
          (dest (tackon Jongl_dest "Jongl"))
          (Choices "J2Konv" "J2Konv.Guide")
          (NoGauge)
       )
     )
     (if (in Zus 2)
       (Copyfiles
          (source "")
          (dest (tackon Jongl_dest "Jongl"))
          (Choices "Freestyle")
          (NoGauge)
       )
     )
;     (if (in Zus 3)
;       (Copyfiles
;       (source "")
;       (dest @default-dest)
;       (Choices "V2J" )
;       )
;     )
   )
)
;=============================================================================
; nun die Muster Installieren
;
(Complete 80)
(Set Muster 0)
(set @default-dest (tackon Jongl_dest "Jongl/m"))
(While (= Muster 0)
   (set Muster
     (askoptions
         (prompt "Welche Muster sollen kopiert werden?")
         (help  "Die Zahlen geben die Anzahl der Objekte im Muster an. "
                "So einfach ist das."
         )
         (choices "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "13" "14" "15"
                  "16-19" "20-29" ">30" "1001"
         )
         (default 65535)
     )
   )
   (if (= Muster 0) 
      (Message "Irgendwas solltest Du schon auswählen")
   )
)
(Working "Kopiere nun die ausgewählten Muster\n\n"
         "Das kann etwas dauern, da es eine Menge Muster gibt"
)
(if (in Muster 0)
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "3#?")
    (NoGauge)
    )
)
(if (in Muster 1)
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "4#?")
    (NoGauge)
    )
)
(if (in Muster 2)
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "5#?")
    (NoGauge)
    )
)
(if (in Muster 3)
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "6#?")
    (NoGauge)
    )
)
(if (in Muster 4)
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "7#?")
    (NoGauge)
    )
)
(if (in Muster 5)
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "8#?")
    (NoGauge)
    )
)
(if (in Muster 6)
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "9#?")
    (NoGauge)
    )
)
(if (in Muster 7)
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "10#?")
    (NoGauge)
    )
)
(if (in Muster 8)
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "11#?")
    (NoGauge)
    )
)
(if (in Muster 9)
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "12#?")
    (NoGauge)
    )
)
(if (in Muster 10)
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "13#?")
    (NoGauge)
    )
)
(if (in Muster 11)
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "14#?")
    (NoGauge)
    )
)
(if (in Muster 12)
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "15#?")
    (NoGauge)
    )
)
(if (in Muster 13)
  (
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "16#?")
    (NoGauge)
    )
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "17#?")
    (NoGauge)
    )
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "18#?")
    (NoGauge)
    )
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "19#?")
    (NoGauge)
    )
  )
)
(if (in Muster 14)
  (
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "2?_#?")
    (NoGauge)
    )
  )
)
(if (in Muster 15)
  (
    (Copyfiles
    (source "M")
    (dest @default-dest)
    (Pattern "3?_#?")
    (NoGauge)
    )
  )
)

(if (in Muster 16)
  (if (askbool
        (prompt "Sollen die Muster mit 1001 Objekten auch wirklich "
                "installiert werden?"
        )
        (help "Vorsicht, das könnte ein Gag sein - Vielleicht wird ja auch nur "
              "das angegebene Laufwerk formatiert"
        )
        (default 1)
    )    
   (Message "Es gibt keine Muster mit 1001 Objekten Du Narr!")
   )
)
;****************************************************************************
;
; Exit
;
(set @default-dest (tackon Jongl_dest "Jongl"))
(run "Avail >NIL: FLUSH")
(complete 100)
(exit "Die Installation ist nun leider vorbei!\n\n"
      "Das Programm liegt im Unterverzeichnis "
      "'Jongl' und kann nun mit 'Jongl' gestartet werden. "
      "Hilfe gips mit 'Jongl info' "
)

