;
;                   Electronic Teacher © 1997-1999 W.F.M.H.
;
;           ---------------------------------------------------------
;
;              ###    ###    #########  ###    ###    ###    ###
;              ###    ###    ###        ####  ####    ###    ###
;              ###    ###    ###        ### ## ###    ###    ###
;              ###    ###    ########   ### ## ###    ##########
;              ### ## ###    ########   ###    ###    ##########
;              ### ## ###    ###        ###    ###    ###    ###
;              ####  #### ## ###     ## ###    ### ## ###    ### ##
;              ###    ### ## ###     ## ###    ### ## ###    ### ##
;
;           ---------------------------------------------------------
;
;                            W.F.M.H.
;                            ul. Radomska 38
;                            71-002 Szczecin
;                            Poland
;
;                            tel. ++48 91 4880841 w. 287
;                                 ++48 91 4836425
;
;                      Internet:   info@amiga.com.pl
;                      WWW     :   http://amiga.com.pl
;
;--------------------------------------------------------------------
;
;       W.F.M.H. Electronic Teacher 5.50 CD - Installer script
;          Written by Marcin Orlowski <carlos@amiga.com.pl>
;
;--------------------------------------------------------------------
;
; $VER: WFMH eTeacher - Installer 5.50 CD (25.05.99) © Marcin Orlowski
;
;--------------------------------------------------------------------

;/// Presets

(set _debug 0)

(set __version  5)
(set __revision 50)
(set __date "25.05.1999")

(set __destdir "eTeacherGB/")
(set __src     "_update")
;//|

;/// Polish strings

;**************************** POLISH STRINGS *****************************

(set msg_err_dizzy            "Wystâpiî niespodziewany bîâd! Instalacja przerwana.")
(set msg_err_cleanup          "Instalacja przerwana. Koïczë pracë")
(set msg_err_wrongos          "\n\nElectronic Teacher 5.50 CD wymaga co najmniej systemu w wersji OS 2.0")
(set msg_err_request          "\n\nInstalacja przerwana na ûâdanie uûytkownika")
(set msg_err_cd50             "Przykro mi, ale uûytkujesz wersjë 5.0 pakietu Electronic Teacher, której ze wzglëdu na innâ strukturë pîyty CD oraz nieobecnoôê niezbëdnych plików danych nie moûna zaktualizowaê do wersji 5.50\n\nW.F.M.H. proponuje licencjonowanym uûytkownikom wersji 5.0 CD zakup aktualizacyjnego pakietu \"eT 5.5 CD\", który zawiera m. in nowâ, tîoczonâ pîytë wymaganâ przez wersjë 5.5 oraz nastëpne.\n\nSzczegóîy znajdziesz w pliku \"Przeczytaj mnie\"")

(set msg_copyrights           "To jest program komercyjny!\n\nCopyright © 1999 W.F.M.H.\n\nWszelkie prawa zastrzeûone")

(set msg_installdir           "Gdzie zainstalowany jest program Electronic Teacher 5.20 CD?")
(set msg_installdir_help      "Wybierz proszë katalog, w którym zainstalowany jest program Electronic Teacher 5.20. Jesli np. znajduje sië on w katalogu \"Work:Multimedia/WFMH/eTeacherGB\" ten katalog musisz wskazaê.")
(set msg_not_installed        "Electronic Teacher 5.20 nie jest poprawnie zainstalowany, bâdú nie zostal zainstalowany we wskazanym katalogu.\n\nPrzerywam aktualizacjë...")
(set msg_wrong_version        "To nie jest wîaôciwa wersja programu Electronic Teacher 5.20!\n\nPrzerywam aktualizacjë...")

(set msg_sure                 "\n\n\nElectronic Teacher 5.50 CD bëdzie zainstalowany na Twoim dysku w katalogu:\n\n\"%s\"\n\nNa pewno chcesz kontynuowaê?")
(set msg_detecting_version    "\n\nSprawdzam zainstalowanâ wersjë programu...")

(set msg_updating             "\n\nAktualizujë plik %s...")

(set msg_icon                 "Aktualizujë parametry programu.")
(set msg_icon_help            "Aktualizujë parametry programu. NIE POMIJAJ tej czëôci, w przeciwnym razie Electronic Teacher nie uruchomi sië po aktualizacji!")

(set msg_copy_data            "\n\nAktualizujë niezbëdne pliki danych...\n\nProszë czekaê...")
(set msg_copy_binaries        "\n\nAktualizujë program...\n\nProszë czekaê...")
(set msg_copy_help            "\n\nAktualizujë pliki pomocy...\n\nProszë czekaê...")

(set msg_final_note           "\nU W A G A !\n\nKoniecznie zapoznaj sië z informacjami zawartymi w pliku \"WAÛNE\" PRZED uruchomieniem programu!")

;//|

;/// OnError

;###########################################################################
;## OnError
;###########################################################################

(onerror
    (working msg_err_cleanup)
    (P_CleanUp)
    (exit)
)
;//|
;/// Bug
;###########################################################################
;## Bug
;###########################################################################

(procedure bug #tekst  (if (> _debug 0) (message #tekst (all))))

;//|

;/// P_CleanUp

;###########################################################################
;## P_CleanUp
;###########################################################################

(procedure P_CleanUp

    (if (= (exists "T:eTeacher") 1)
       (delete "T:eTeacher")
    )

    (if (= (exists "T:eTeacherPL.guide") 1)
       (delete "T:eTeacherPL.guide")
    )

    (if (= (exists "T:eTeacher.old") 1)
       (delete "T:eTeacher.old")
    )

    (if (= (exists "T:eTeacherPL.guide.old") 1)
       (delete "T:eTeacherPL.guide.old")
    )

    (if (= (exists "T:eTeacher.pch") 1) (delete "T:eTeacher.pch") )

)
;//|
;/// P_Makedir
;###########################################################################
;## P_Makedir
;###########################################################################

(procedure P_Makedir #katalog

    (if (= (exists #katalog) 0)
       (
        (makedir #katalog)
       )
    )
)
;//|

;/// Preparing...
;###########################################################################
;## Preparing...
;###########################################################################

(bug "\n\nDebug is ON!")


(message "\n\n\nW.F.M.H. Electronic Teacher " __version  "."  __revision " CD\n\n"
         msg_copyrights
)

(complete 0)


(set OS_Version (/ (getversion "exec.library" (resident)) 65536))

(if (<  OS_Version 36) (abort msg_err_wrongos))
(if (<= OS_Version 38) (set _os 0))
(if (>= OS_Version 39) (set _os 1))

;###########################################################################
;## Ask where the program lives...
;###########################################################################

(set @default-dest "Work:")
(set @default-dest (askdir (prompt  (msg_installdir __destdir))
                           (help    (msg_installdir_help __destdir))
                           (default @default-dest)
                   )
)


(set #et_exists (exists (tackon @default-dest "eTeacher")) )

(if (<> #et_exists 1)
    (
     (bug ("Looking for eTeacherGB subdrawer in '%s'" @default-dest))
     (if (= (exists (tackon @default-dest "eTeacherGB")) 2)
           (
           (set @default-dest (tackon @default-dest "eTeacherGB"))
           (bug ("Looking for eTeacher in '%s'" @default-dest))
               (
               (if (<> (exists (tackon @default-dest "eTeacher")) 1)
                   (
                   (abort msg_not_installed)
                   )
               )
               )
           )
;        else
           (
                    (abort msg_not_installed)
           )
     )
    )
)




;//|
;/// R U sure?

;###########################################################################
;## R U sure?
;###########################################################################

(message (msg_sure @default-dest) (all))

;//|

;/// De szou mast gou on...

;###########################################################################
;## De szou mast gou on...
;###########################################################################

(complete 0)

;/// Let's apply the binary patch...

;###########################################################################
;## Let's apply the binary patch...
;###########################################################################

(bug "Patching ET executable...")

(set et502x -1210433677)
(set et503x  1815473224)
(set et512x   650346381)
(set et513x   -22680901)

(set et522x -1019223866)
(set et523x  -704630694)

(complete 10)
(working msg_copy_binaries)

(set et_ver (getsum (tackon @default-dest "eTeacher")))

(set err 666)

(if  (OR
           (OR (= et_ver et502x) (= et_ver et503x))
           (OR (= et_ver et512x) (= et_ver et513x))
     )
    (
       (bug "CD 5.0")
           (abort msg_err_cd50)
    )
)


(if (= et_ver et522x)
    (
       (bug "OS 2x")
       (set #old_file "eTeacherGB:_install/eTeacher2x")
    )
)
(if (= et_ver et523x)
    (
       (bug "OS 3x")
       (set #old_file "eTeacherGB:_install/eTeacher3x")
    )
)


(if (= (exists "T:eTeacher.old") 1)    (delete "T:eTeacher.old") )

(copyfiles
    (source  #old_file)
    (dest    "T:")
    (newname "eTeacher.old")
)

(copyfiles
    (source  "_update/eTeacher.pch")
    (dest    "T:")
)

(working msg_copy_binaries)
(set err (run (cat "c/GPatch T:eTeacher.old T:eTeacher.pch T:eTeacher") ))

(if (= err 666)
    (
     (abort msg_wrong_version)
    )
;else
    (
     (if (<> err 0)
      (abort msg_err_dizzy)
     )
    )
)

(copyfiles
    (source "T:eTeacher")
    (dest   @default-dest)
    (all)
)

(if (= (exists "T:eTeacher") 1)     (delete "T:eTeacher") )
(if (= (exists "T:eTeacher.old") 1) (delete "T:eTeacher.old") )
(if (= (exists "T:eTeacher.pch") 1) (delete "T:eTeacher.pch") )

;//|
;/// Let's apply the guide patch...

;###########################################################################
;## Let's make some necesary drawers
;###########################################################################

(complete 30)

(P_Makedir (tackon @default-dest "Help"))
(P_Makedir (tackon @default-dest "Help/Manual"))

;###########################################################################
;## Let's apply the guide patch...
;###########################################################################

(bug "Patching guide...")

(complete 35)
(working msg_copy_help)

(if (= (exists "T:eTeacherPL.guide.old") 1)
    (delete "T:eTeacherPL.guide.old")
)

(copyfiles
    (source  "eTeacherGB:Help/Manual/eTeacherPL.guide")
    (dest    "T:")
    (newname "eTeacherPL.guide.old")
)

(working msg_copy_help)
(set err (run (cat "c/GPatch T:eTeacherPL.guide.old _update/Help/Manual/eTeacherPL.guide.pch T:eTeacherPL.guide") ))

(if (<> err 0)
    (
     (abort msg_wrong_version)
    )
)

(copyfiles
    (source "T:eTeacherPL.guide")
    (dest   (tackon @default-dest "Help/Manual"))
    (all)
)

(if (= (exists "T:eTeacherPL.guide") 1)
    (delete "T:eTeacherPL.guide")
)
(if (= (exists "T:eTeacherPL.guide.old") 1)
    (delete "T:eTeacherPL.guide.old")
)

;//|
;/// Let's install new bootpics...

;###########################################################################
;## Let's make some necesary drawers
;###########################################################################

(complete 40)

(P_Makedir (tackon @default-dest "Backgrounds"))

;###########################################################################
;## Let's install new bootpics...
;###########################################################################

(bug "Installing startup pics...")

(complete 45)
(working msg_copy_data)


(bug (cat "c/untgz _update/Backgrounds/Backgrounds.tgz \"" @default-dest "\"") )
(set err (run (cat "c/untgz _update/Backgrounds/Backgrounds.tgz \"" @default-dest "\"") ))

(if (<> err 0)
    (
     (abort msg_wrong_dizzy)
    )
)


;//|
;/// Let's set some tooltypes...

;###########################################################################
;## Let's set some tooltypes...
;###########################################################################

(complete 60)

(tooltype
    (
     (dest        (tackon @default-dest "eTeacher"))
     (help        msg_icon_help)
     (prompt      msg_icon)

     (settooltype "GUIDE2"    "Help/Manual/eTeacherPL.guide")
    )
)
;//|
;/// Let's update the data...
;###########################################################################
;## Let's update the data...
;###########################################################################

(bug "Patching data...")

(complete 70)
(working msg_copy_data)

(bug (cat "c/untgz _update/Data/Data.tgz \"" @default-dest "\"") )
(set err (run (cat "c/untgz _update/Data/Data.tgz \"" @default-dest "\"") ))

(if (<> err 0)
    (
     (abort msg_wrong_dizzy)
    )
)

;//|
;/// Let's update the drills...
;###########################################################################
;## Let's update the drills...
;###########################################################################

(bug "Patching drills...")

(complete 80)
(working msg_copy_data)

(bug (cat "c/untgz _update/DrillGB4PL/DrillGB4PL.tgz \"" @default-dest "\"") )
(set err (run (cat "c/untgz _update/DrillGB4PL/DrillGB4PL.tgz \"" @default-dest "\"") ))

(if (<> err 0)
    (
     (abort msg_wrong_dizzy)
    )
)

;//|

;//|

;/// Done

;###########################################################################
;## Seems it's over...
;###########################################################################

(complete 99)
(message msg_final_note)

(complete 100)

(P_CleanUp)
(exit)

;//|
