; $VER: StormMESA-DEMO V1.0 RUN Version (22.2.98)
; (c) 1998 HAAGE & PARTNER Computer GmbH

(complete 0)

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

(set #stmesa-demo "Morph3D")

(set #stmesa-version "1.0")
(set #stmesa-date "(25 Jan 98)")

(set #ppc 1) ; Setzt das Demo einen PowerPC voraus?
(set #libversion 14) ; Mit dieser version laufen die Demos astrein.
(set #minlibversion 12) ; Diese sollten Sie mindestens im Einsatz haben.
(set #appname "Morph3D.bat")


(set @app-name #stmesa-demo)
(set @abort-button "Cancel")

(set #multiview 0)

(if (> (exists ("c:multiview")) 0) (set #multiview "c:") )
(if (> (exists ("sys:Utilities/multiview")) 0) (set #multiview "sys:Utilities") )
(if (> (exists ("sys:Tools/multiview")) 0) (set #multiview "sys:Tools") )

(if (<> #multiview 0)
    ((run (cat "run " (tackon #multiview "multiview ") "StormMESA.iff"))))

(if (= #ppc 1)
  (
  (set #stmesa-cpu "PowerPC")
  (if (= (exists "LIBS:PowerPC.Library") 0)
     (
     (message #usewarpos)
     (exit (quiet))
     )
     (
        (if (< (getversion "LIBS:PowerPC.Library") (* #minlibversion 65536))
           (
           (message #ppccompmode)
           )
        )
     ))
  )
  (
  (set #stmesa-cpu "68K")
  )
)


;-----------------------------------------------------------------------------------
; English texts

(set #description (cat "\n"
   "This OpenGL demo shows an animated 3D object\n"
   "- 1: Tetraeders\n"
   "- 2: Cube\n"
   "- 3: Octahedron\n"
   "- 4: Dodekaeders\n"
   "- 5: Ikosaeders\n"
   "- spacekey: colours on/off\n"
   "- return: switch between smooth- und flatshading\n"
   "ESC to quit"
   ))

(set #FORCE_HELP (cat "FORCE_BD\n\n"
  "When this variable is set and its value is not zero then \n"
  "double-buffering will be uses for any demo that uses the \n"
  "AUX/TK layer. Normally this variable should be set."
  "\n\nFORCE_IR\n\n"
  "Normally StormMESA tries to support the graphics RAM and the \n"
  "Blitter of the graphics board as good as possible. \n"
  "This can however cause big problems when the software of the \n"
  "graphics board does not support the needed process. \n"
  "In case of problems this variable must be set to a value different \n"
  "from zero. Then the output will be single-buffered\n"
  "(when FORCE_DB = 0) or double-buffered (when FORCE_DB = 1). "
  "\nWhen FORCE_IR is not set, the output is always double-buffered, \n"
  "although FORCE_DB is not set to 1."
  "\n\nFORCE_FS\n\n"
  "The AUX/TK layer does not have an API function to select fullscreen mode. \n"
  "For that reason there is an ENV variable that activates this mode \n"
  "when it is set and its value is different from zero. This mode can cause \n"
  "serious problems too, depending on the graphics board software used.\n"
  ))
(set #usewarpos (cat "\n\n"
       "Please install the WarpOS software bevor running the \n"
       "StormMESA demos.\n\n"
       "You will find WarpOS on our FTP server: ftp.haage-partner.com/WarpUP\n\n"
       "Or contact Haage&Partner by:\n\n"
       "Phone: ++49 (0)6007/930050\n"
       "FAX:   ++49 (0)6007/7543"
       ))
(set #ppccompmode (cat "\n\n"
          "You have installed the compatible version of the PowerPC.Library.\n\n\n"
          "We recommand to install the latest version " #libversion " of WarpUP.\n"
          "With it you are prepared for the future of the Amiga!"
       ))
(set #willkommen (cat   "\nWelcome to the StormMESA DEMO " #stmesa-demo " for the " #stmesa-cpu "\n\n"
               #stmesa-version " of "#stmesa-date "!\n\n\n\n"
              "With this script you can make changes to the "
              "ENV variables before you run the examples. "
              "\n\nEnjoy!\n\n\n"
              "© 1998 HAAGE&PARTNER Computer GmbH"))
(set #envoptstxt "Please select your option!")

(set #buffering "Double-Buffering")
(set #cgfx "CyberGFX")
(set #fullsc "Fullscreen")


;-----------------------------------------------------------------------------------

(if (= @language "deutsch") (
   (set #description (cat "\n"
      "Dieses Demo stellt sich veraendernde dreidimensionale Objekte dar\n"
      "- 1: Darstellung eines Tetraeders\n"
      "- 2: Darstellung eines Wuerfels\n"
      "- 3: Darstellung eines Oktaeders\n"
      "- 4: Darstellung eines Dodekaeders\n"
      "- 5: Darstellung eines Ikosaeders\n"
      "- space: Ein-/Ausschalten der Farb-Darstellung\n"
      "- return: Umschalten zwischen Smooth- und Flatshading\n"
      "ESC zum Beenden"
      ))

   (set #FORCE_HELP (cat "FORCE_BD\n\n"
      "Wenn diese Variable vorhanden und nicht Null ist wird,\n"
      " bei jedem Demo welches mit dem AUX/TK-Layer laeuft, \n"
      "double buffering verwendet. Sollte normalerweise immer gesetzt sein."
      "\n\nFORCE_IR\n\n"
      "Normalerweise versucht StormMESA das Grafik-RAM und den \n"
      "Grafikkarten-Blitter so effizient wie nur moeglich zu unterstuetzen.\n"
      " Das kann aber zu grossen Problemen fuehren, je nachdem ob die \n"
      "Grafikkarten-Software die noetigen Verfahren unterstuetzt oder nicht.\n"
      " Falls es also grosse Probleme geben sollte, muss diese Variable auf \n"
      "einen Wert nicht Null gesetzt werden, wonach die Ausgabe single-buffered\n"
      " (wenn FORCE_DB = 0) oder double-buffered (wenn FORCE_DB = 1) vollzogen wird."
      "\nWenn FORCE_IR nicht gesetzt ist, ist die Ausgabe immer double-buffered,\n"
      " auch wenn FORCE_DB nicht auf 1 gesetzt ist."
      "\n\nFORCE_FS\n\n"
      "Der AUX-/TK-Layer hat keine API-Funktion um den Fullscreen-Modus auszuwaehlen. \n"
      "Deswegen existiert diese Env-Variable, welche den Fullscreen-Modus aktiviert, \n"
      "falls es vorhanden und nicht Null ist. Auch dieser Modus kann je nach \n"
      "verwendeter Grafikkarten-Software zu ernsten Problemen fuehren.\n"
      ))
    (set #usewarpos (cat "\n\n"
           "Bitte installieren Sie das WarpOS-Paket bevor Sie die \n"
           "StormMESA-Demos ausprobieren.\n\n"
           "Sie finden das Paket auf unserer FTP-Seite: ftp.haage-partner.com/WarpUP\n\n"
           "Oder wenden Sie sich an Haage&Partner unter der Rufnummer:\n\n"
           "Telefon: ++49 (0)6007/930050\n"
           "FAX:     ++49 (0)6007/7543"
           ))
    (set #ppccompmode (cat "\n\n"
              "Sie haben die kompatible Version der PowerPC.Library installiert.\n\n\n"
              "Sie sollten die aktuelle Version " #libversion " des WarpUP-Paketes\n"
              " installieren. Damit sind Sie für die Zukunft besser gerüstet!"
           ))
    (set #willkommen (cat   "\nWillkommen beim StormMESA-DEMO " #stmesa-demo " für den " #stmesa-cpu "\n\n"
                   #stmesa-version " vom "#stmesa-date "!\n\n\n\n"
                  "Mit diesem Skript können Sie die Einstellungen "
                  "der ENV-Variablen verändern, bevor Sie das "
                  "Beispiel geniesen.\n\nViel Spaß!\n\n\n"
                  "© 1998 HAAGE&PARTNER Computer GmbH"))
    (set #envoptstxt "Bitte wählen Sie Ihre Einstellung!")

    (set #buffering "Double-Buffering")
    (set #cgfx "CyberGFX")
    (set #fullsc "Fullscreen")

))

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

; Eine kleine Einleitung, gefolgt vom Startbild des Installers.

(message #willkommen)

(welcome)

(set destenvarc (tackon "envarc:" "MESA"))
(if                                         ; // Verzeichnis für Envargumente erzeugen
   (= (exists destenvarc) 0)
    (
      (makedir destenvarc (infos))
      (set #FORCE_DB 1)
      (set #FORCE_IR 1)
      (set #FORCE_FS 0)
    )
    (
      (set #FORCE_DB (getenv "MESA/FORCE_DB"))
      (set #FORCE_IR (getenv "MESA/FORCE_IR"))
      (set #FORCE_FS (getenv "MESA/FORCE_FS"))
    )
)

(set #envopts 0)

(if (= #FORCE_DB 1)
   (
   (set #envopts (bitor #envopts 1))
   )
)

(if (= #FORCE_IR 1)
   (
   (set #envopts (bitor #envopts 2))
   )
)

(if (= #FORCE_FS 1)
   (
   (set #envopts (bitor #envopts 4))
   )
)

(set destenvarc (tackon "env:" "MESA"))
(if                                         ; // Verzeichnis für Envargumente erzeugen
  (= (exists destenvarc) 0)
    (
      (makedir destenvarc (infos))
    )
)

;==================================================================================
(complete 40)

(set #envopts
    (askoptions
        (prompt #envoptstxt)
        (help #FORCE_HELP)
        (choices #buffering #cgfx #fullsc)
        (default #envopts)
    )
)

(complete 80)

(if (= 1 (bitand #envopts 1))
    (
    (set #FORCE_DB 1)
    )
    (
    (set #FORCE_DB 0)
    )
)

(if (= 2 (bitand #envopts 2))
    (
    (set #FORCE_IR 1)
    )
    (
    (set #FORCE_IR 0)
    )
)

(if (= 4 (bitand #envopts 4))
    (
    (set #FORCE_FS 1)
    )
    (
    (set #FORCE_FS 0)
    )
)

(run "setenv MESA/FORCE_DB" #FORCE_DB)
(run "copy ENV:MESA/FORCE_DB ENVARC:MESA")

(run "setenv MESA/FORCE_IR" #FORCE_IR)
(run "copy ENV:MESA/FORCE_IR ENVARC:MESA")

(run "setenv MESA/FORCE_FS" #FORCE_FS)
(run "copy ENV:MESA/FORCE_FS ENVARC:MESA")

(working #description)

(execute #appname)

(complete 100)

(exit (quiet))

