;**************************** (set #sub-dir "data") ;sub directory containing data files (set #readme-file "ReadMe") ;name of readme file (set #man-file "Manual") ;name of manual file (set #hint-file "Hints") ;name of hint file (set #sol-file "Solution") ;name of solution file (set #highs-file "highs") ;name of high scores file (set #prefix "IM2025") ;name of slave, directory (procedure P_Install (set #AD_disk "A_Impossible_Mission") (P_disk) (copyfiles (help @copyfiles-help) (source ("%s:" #AD_disk)) (dest #dest) (pattern "(im#?data|loader|id0|imp)") ) (run ("cd \"%s\"\nxfdDecrunch imp" #dest)) (set #AD_disk "B_Impossible_Mission") (P_disk) (copyfiles (help @copyfiles-help) (source ("%s:" #AD_disk)) (dest #dest) (pattern "#?") ) ) ;**************************** ;---------------------------- ; checks if given program is installed, if not abort install ; #program - to check (procedure P_ChkRun (if (= 0 (run ("cd SYS:\nWhich %s" #program))) ("") (abort (cat "You must install \"" #program "\" first!\n" "It must be accessible via the path.\n" "You can find it in the WHDLoad package." ) ) ) ) ;---------------------------- ; Wait for inserting disk ; IN: #AD_disk - name of disk ; OUT: - (procedure P_disk (askdisk (dest #AD_disk) (prompt ("\nInsert Disk \"%s\" in any drive!" #AD_disk)) (help @askdisk-help) ) ) ;---------------------------- ; copy file including icon if exist ; #copy-file - name of file to copy (procedure P_CopyFile (if (exists #copy-file) ( (copyfiles (help @copyfiles-help) (source #copy-file) (dest #dest) ) (if (exists ("%s.info" #copy-file)) ( (copyfiles (help @copyfiles-help) (source ("%s.info" #copy-file)) (dest #dest) ) (tooltype (dest (tackon #dest #copy-file)) (noposition) ) ) ) ) ) ) ;**************************** (if (< @installer-version (+ (* 44 65536) 10)) ( (message (cat "Warning: your installer is outdated.\n" "All features of this installation won't be available, such as icon show and drawer opening.\n" "You have version " (/ @installer-version 65536) "." (BITAND @installer-version 65535) ", needed is at least version 44.10. " "The 'installer' 44.10 comes with OS 3.5 but is also contained in the NDK 3.9. " "You may also use the InstallerNG by Jens Tröger." "\n\n" "The installers can be obtained from the net:\n" "http://www.amiga.com/3.9/download/NDK3.9.lha\n" "aminet:util/sys/InstallerNG.lha" ) ) (set #newstuff 0) ) (set #newstuff 1) ) (if (exists #readme-file) (if (= 0 (run ("SYS:Utilities/Multiview %s" #readme-file))) ("") (run ("SYS:Utilities/More %s" #readme-file)) ) ) (set #program "WHDLoad") (P_ChkRun) (set #program "XFDDecrunch") (if (= 0 (run ("cd SYS:\nWhich %s" #program))) ("") (abort ("You must install \"%s\" first !\nIt must be accessible via the path.\nYou can find it in the XFDMaster package (aminet:util/pack/xfdmaster.lha)." #program)) ) (if (getenv "WHDLInstPath") (set @default-dest (getenv "WHDLInstPath")) ) (set #dest (askdir (prompt (cat "Where should \"" @app-name "\" be installed?\n" "A drawer \"" #prefix "\" will be automatically created." ) ) (help @askdir-help) (default @default-dest) ) ) ; update for the end message (set @default-dest #dest) (run ("setenv WHDLInstPath \"%s\"\ncopy ENV:WHDLInstPath ENVARC:" #dest)) (set #dest (tackon #dest #prefix)) (if (exists #dest) ( (set #choice (askbool (prompt (cat "\nDirectory \"" #dest "\" already exists.\n" "Should it be deleted?" ) ) (default 1) (choices "Delete" "Skip") (help @askbool-help) ) ) (if (= #choice 1) (delete #dest (help @delete-help) (all) ) ) ) ) (makedir #dest (help @makedir-help) (infos) ) ;---------------------------- (set #slave (askchoice (prompt "\nWhich slave would you like to install?\n") (choices "ECS-only" "AGA (also supports ECS)") (default 1) (help @askchoice-help) ) ) (select #slave (set #slprefix "ECS") (set #slprefix "AGA") ) (copyfiles (help @copyfiles-help) (source ("%s%s.Slave" #prefix #slprefix)) (dest #dest) (newname ("%s.slave" #prefix)) ) (if (exists ("%s.glowexot" #prefix)) ((set #icon 7)(set #icnt (+ 1 #icnt))(set #icon-gex "Exotic GlowIcon")) (set #icon-gex "")) (if (exists ("%s.newexot" #prefix)) ((set #icon 6)(set #icnt (+ 1 #icnt))(set #icon-nex "Exotic NewIcon")) (set #icon-nex "")) (if (exists ("%s.exoticon" #prefix)) ((set #icon 5)(set #icnt (+ 1 #icnt))(set #icon-exo "Exoticon")) (set #icon-exo "")) (if (exists ("%s.glowicon" #prefix)) ((set #icon 4)(set #icnt (+ 1 #icnt))(set #icon-glo "Glow Icon")) (set #icon-glo "")) (if (exists ("%s.coloricon" #prefix)) ((set #icon 3)(set #icnt (+ 1 #icnt))(set #icon-col "OS3.5 Icon")) (set #icon-col "")) (if (exists ("%s.newicon" #prefix)) ((set #icon 2)(set #icnt (+ 1 #icnt))(set #icon-new "NewIcon")) (set #icon-new "")) (if (exists ("%s.romicon" #prefix)) ((set #icon 1)(set #icnt (+ 1 #icnt))(set #icon-rom "RomIcon")) (set #icon-rom "")) (if (exists ("%s.inf" #prefix)) ((set #icon 0)(set #icnt (+ 1 #icnt))(set #icon-nor "Normal")) (set #icon-nor "")) (procedure P_Icon (copyfiles (help @copyfiles-help) (source ("%s.%s" #prefix #icon-suf)) (newname ("%s.info" #icon-name)) (dest #icon-dir) ) (tooltype (dest (tackon #icon-dir #icon-name)) (noposition) ) ) (if (> #icnt 1) ( (set #icon-dir ("T:%s Icons" #prefix)) (makedir #icon-dir (help @makedir-help) ) (if #icon-nor ((set #icon-suf "inf") (set #icon-name "Normal") (P_Icon))) (if #icon-rom ((set #icon-suf "romicon") (set #icon-name "RomIcon") (P_Icon))) (if #icon-new ((set #icon-suf "newicon") (set #icon-name "NewIcon") (P_Icon))) (if #icon-col ((set #icon-suf "coloricon")(set #icon-name "OS3.5 Icon") (P_Icon))) (if #icon-glo ((set #icon-suf "glowicon") (set #icon-name "Glow Icon") (P_Icon))) (if #icon-exo ((set #icon-suf "exoticon") (set #icon-name "Exoticon") (P_Icon))) (if #icon-nex ((set #icon-suf "newexot") (set #icon-name "Exotic NewIcon") (P_Icon))) (if #icon-gex ((set #icon-suf "glowexot") (set #icon-name "Exotic GlowIcon") (P_Icon))) (if (= #newstuff 1) (openwbobject #icon-dir) ) (set #icon (askchoice (prompt "\nWhich icon would you like to install?\n") (choices #icon-nor #icon-rom #icon-new #icon-col #icon-glo #icon-exo #icon-nex #icon-gex) (default #icon) (help @askchoice-help) ) ) (if (= #newstuff 1) (closewbobject #icon-dir) ) (delete #icon-dir (help @delete-help) (all) ) ) ) (select #icon (set #icon "inf") (set #icon "romicon") (set #icon "newicon") (set #icon "coloricon") (set #icon "glowicon") (set #icon "exoticon") (set #icon "newexot") (set #icon "glowexot") ) (copyfiles (help @copyfiles-help) (source ("%s.%s" #prefix #icon)) (newname ("%s.info" #prefix)) (dest #dest) ) (if (= #icon "newicon") ("") ( (tooltype (dest (tackon #dest #prefix)) (settooltype "Slave") (settooltype "PreLoad") ) (tooltype (dest (tackon #dest #prefix)) (settooltype "PreLoad" "") (settooltype "Slave" ("%s.Slave" #prefix)) ) ) ) (tooltype (dest (tackon #dest #prefix)) (setdefaulttool "WHDLoad") (setstack 10240) (noposition) ) (set #copy-file #readme-file) (P_CopyFile) (set #copy-file #man-file) (P_CopyFile) (set #copy-file #hint-file) (P_CopyFile) (set #copy-file #sol-file) (P_CopyFile) (set #dest-org #dest) (if (= #sub-dir "") ("") ( (set #dest (tackon #dest #sub-dir)) (makedir #dest (help @makedir-help) ) ) ) (set #copy-file #highs-file) (P_CopyFile) (P_Install) (if (= #newstuff 1) (openwbobject #dest-org) ) (exit)