; Replacement hard drive install script for F-15 II. V1.0.
; Copyright © 1998 Neil Cafferkey.
; $VER: "Install F-15 II" 1.0 (27.8.98)


; Set constants

(set #disk1-name "f15ii(game)")
(set #disk2-name "f15ii(scenario)")
(set #disk1-desc "the Game Disk")
(set #disk2-desc "the Scenario Disk")

(set #need-change-msg
   (cat "The `Change' program (`util/misc/Change.lha' on aminet) must"
      " be on your path (eg. in C: )."
   )
)
(set #kick-too-low-msg "Kickstart 2.0 or greater is required.")
(set #dest-exists-msg "\"%s\" already exists.")
(set #askdir-prompt
   (cat "Where should %s be installed?\nA drawer called \"%s\" will be"
      " created within the selected location."
   )
)
(set #ask-deprotect-prompt
   "Do you want to remove the manual-based copy protection?"
)
(set #why-deprotect-msg
   (cat "If you select `Yes' you'll avoid having to look up a word"
      " in the manual every time you start the game."
   )
)
(set #askdisk-prompt "Please insert %s in any drive")
(set #askdisk-help "Put %s into one of your floppy disk drives.")
(set #no-deprotect-msg "The copy protection could not be removed.")

(set #ask-deprotect-help ("%s %s" #why-deprotect-msg #need-change-msg))
(set #no-deprotect-help #need-change-msg)


; Check Kickstart version

(if (< (/ (getversion) 65536) 36)
   (abort #kick-too-low-msg)
)


; Look for a suitable degrader

(set #i 0)
(while
   (<> 0
      (run
         ("Which %s"
            (select #i
               "Embedder"
               "RunShit"
               "Run500"
               "KillAGA"
               "RunOldies"
               ""
            )
         )
         (safe)
      )
   )
   (set #i (+ #i 1))
)
(set #degrader-no #i)


; Ask where to install to

(set #default-dest
   (tackon
      (askdir
         (prompt (#askdir-prompt @app-name @app-name))
         (default @default-dest)
         (help @askdir-help)
         (disk)
      )
      @app-name
   )
)

(set @default-dest #default-dest)


; Check that destination directory doesn't already exist and create it

(if (OR (exists @default-dest) (exists (cat @default-dest ".info")))
   (abort (#dest-exists-msg @default-dest))
   (
      (makedir @default-dest (infos))
      (onerror
         (run
            ("Delete \"%s\" \"%s\" ALL FORCE"
               @default-dest (cat @default-dest ".info")
            )
         )
      )
   )
)


; Ask whether the user wants to deprotect the game

(set #deprotect
   (if (= 0 (run "Which Change" (safe)))
      (askbool (prompt #ask-deprotect-prompt) (help #ask-deprotect-help))
      0
   )
)


; Copy game icon

(copyfiles
   (source (tackon "hidden" (cat @app-name ".info")))
   (dest @default-dest)
   (nogauge)
   (help @copyfiles-help)
)


; Create startup-script

(
   (set #format-string
      (select #degrader-no
         "Embedder %s\n"
         (cat
            "RunShit \"%s\" SCREENMODE="
            (if (= (database "vblank") "50") "PAL" "NTSC")
            " >NIL:\n"
         )
         "Run500 \"%s\" >NIL:\n"
         "KillAGA \"%s\" >NIL:\n"
         "RunOldies %s >NIL:\n"
         "%s\n"
      )
   )
   (textfile
      (dest (tackon @default-dest @app-name))
      (append
         (cat
            ("Assign \"%s:\" \"\"\n" #disk1-name)
            ("Assign \"%s:\" \"\"\n" #disk2-name)
            (#format-string "f15 >NIL:")
            ("Assign \"%s:\" REMOVE\n" #disk1-name)
            ("Assign \"%s:\" REMOVE\n" #disk2-name)
         )
      )
   )
)


; Copy files from game disks

(askdisk
   (dest #disk1-name)
   (prompt (#askdisk-prompt #disk1-desc))
   (help (#askdisk-help #disk1-desc))
)

(copyfiles
   (source (cat #disk1-name ":"))
   (dest @default-dest)
   (pattern "~s")
   (help @copyfiles-help)
)

(askdisk
   (dest #disk2-name)
   (prompt (#askdisk-prompt #disk2-desc))
   (help (#askdisk-help #disk2-desc))
)

(copyfiles
   (source (cat #disk2-name ":"))
   (dest @default-dest)
   (pattern "~(#?.info|f15install)")
   (help @copyfiles-help)
)


; Remove manual-based protection

(if
   (AND (NOT @pretend) #deprotect)
   (if
      (<> 0
         (run
            ("Change \"%s\" \"%s\""
               (tackon @default-dest "select")
               "select.change"
            )
         )
      )
      (message #no-deprotect-msg (help #no-deprotect-help))
   )
)


