truelight@0: ; Define your application name truelight@0: !define APPNAME "OpenTTD" Darkvater@1848: !define APPNAMEANDVERSION "OpenTTD 0.4.0.1" Darkvater@1848: !define APPVERSION "0.4.0.1" Darkvater@1848: !define INSTALLERVERSION 16 ;NEED TO UPDATE THIS FOR EVERY RELEASE!!! darkvater@1215: !define MUI_ICON "..\..\..\openttd.ico" darkvater@1215: !define MUI_UNICON "..\..\..\openttd.ico" darkvater@1215: !define MUI_WELCOMEFINISHPAGE_BITMAP "welcome.bmp" darkvater@1215: !define MUI_HEADERIMAGE darkvater@1215: !define MUI_HEADERIMAGE_BITMAP "top.bmp" truelight@0: truelight@0: BrandingText "OpenTTD Installer" darkvater@1215: SetCompressor LZMA truelight@0: truelight@0: ; Version Info truelight@0: Var AddWinPrePopulate darkvater@250: VIProductVersion "${APPVERSION}" truelight@0: VIAddVersionKey "ProductName" "OpenTTD Installer" truelight@0: VIAddVersionKey "Comments" "Installs ${APPNAMEANDVERSION}" truelight@0: VIAddVersionKey "CompanyName" "OpenTTD Developers" truelight@0: VIAddVersionKey "FileDescription" "Installs ${APPNAMEANDVERSION}" truelight@0: VIAddVersionKey "ProductVersion" "${APPVERSION}" truelight@0: VIAddVersionKey "InternalName" "InstOpenTTD" truelight@0: VIAddVersionKey "FileVersion" "${APPVERSION}" truelight@0: VIAddVersionKey "LegalCopyright" " " truelight@0: ; Main Install settings truelight@0: Name "${APPNAMEANDVERSION}" truelight@0: truelight@0: ; NOTE: Keep trailing backslash! truelight@0: InstallDir "$PROGRAMFILES\OpenTTD\" truelight@0: InstallDirRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "Install Folder" darkvater@801: OutFile "openttd-${APPVERSION}-win32.exe" darkvater@1215: CRCCheck force truelight@0: truelight@0: ShowInstDetails show truelight@0: ShowUninstDetails show truelight@0: truelight@0: Var SHORTCUTS truelight@0: Var CDDRIVE truelight@0: truelight@0: ; Modern interface settings truelight@0: !include "MUI.nsh" truelight@0: truelight@0: !define MUI_ABORTWARNING truelight@0: truelight@0: !insertmacro MUI_PAGE_WELCOME truelight@0: LicenseForceSelection radiobuttons "I &accept this Agreement" "I &do not accept this agreement" truelight@0: darkvater@1215: !insertmacro MUI_PAGE_LICENSE "..\..\..\COPYING" truelight@0: truelight@0: ;-------------------------------- truelight@0: ; Rest of pages truelight@0: !insertmacro MUI_PAGE_COMPONENTS truelight@0: truelight@0: truelight@0: ;-------------------------------- truelight@0: ; New custom page for finding CD truelight@0: Page custom SelectCD SelectCD2 ": TTD folder" truelight@0: truelight@0: !insertmacro MUI_PAGE_DIRECTORY truelight@0: truelight@0: ;Start Menu Folder Page Configuration truelight@0: !define MUI_STARTMENUPAGE_DEFAULTFOLDER $SHORTCUTS truelight@0: !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKEY_LOCAL_MACHINE" truelight@0: !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" truelight@0: !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Shortcut Folder" truelight@0: truelight@0: !insertmacro MUI_PAGE_STARTMENU "OpenTTD" $SHORTCUTS truelight@0: truelight@0: !insertmacro MUI_PAGE_INSTFILES truelight@0: Darkvater@1821: !define MUI_FINISHPAGE_RUN "$INSTDIR\OpenTTD.exe" truelight@0: !define MUI_FINISHPAGE_LINK "Visit OpenTTD's homepage" darkvater@1166: !define MUI_FINISHPAGE_LINK_LOCATION "http://www.openttd.org/" truelight@0: !define MUI_FINISHPAGE_NOREBOOTSUPPORT truelight@0: !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\readme.txt" Darkvater@1821: !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED truelight@0: truelight@0: !insertmacro MUI_PAGE_FINISH truelight@0: !insertmacro MUI_UNPAGE_CONFIRM truelight@0: !insertmacro MUI_UNPAGE_INSTFILES truelight@0: truelight@0: ; Set languages (first is default language) truelight@0: !insertmacro MUI_LANGUAGE "English" truelight@0: !insertmacro MUI_RESERVEFILE_LANGDLL truelight@0: truelight@0: ;-------------------------------- truelight@0: ; Sections truelight@0: Section "!OpenTTD" Section1 truelight@0: truelight@0: ; Set Section properties truelight@0: SetOverwrite try truelight@0: truelight@0: ; Make savegame folder truelight@0: SetOutPath "$INSTDIR\save" truelight@0: ; define root variable relative to installer truelight@0: !define PATH_ROOT "..\..\..\" truelight@0: truelight@0: ; Copy language files truelight@0: SetOutPath "$INSTDIR\lang\" truelight@0: File ${PATH_ROOT}lang\*.lng truelight@0: File ${PATH_ROOT}lang\english.txt truelight@0: truelight@0: ; Copy data files truelight@0: SetOutPath "$INSTDIR\data\" darkvater@1166: File ${PATH_ROOT}data\*.grf darkvater@1166: File ${PATH_ROOT}data\opntitle.dat darkvater@1157: ; Copy scenario files darkvater@1157: SetOutPath "$INSTDIR\scenario\" darkvater@1157: File ${PATH_ROOT}scenario\*.scn truelight@0: truelight@0: ; Copy the rest of the stuff truelight@0: SetOutPath "$INSTDIR\" truelight@0: truelight@0: ;Copy text files truelight@0: File ${PATH_ROOT}changelog.txt darkvater@250: File ${PATH_ROOT}COPYING truelight@0: File ${PATH_ROOT}readme.txt darkvater@801: File ${PATH_ROOT}known-bugs.txt truelight@0: truelight@0: ; Copy executable darkvater@801: File /oname=OpenTTD.exe ${PATH_ROOT}Release\openttd.exe darkvater@1157: File ${PATH_ROOT}strgen\Debug\strgen.exe truelight@0: truelight@0: truelight@0: ; Delete old files from the main dir. they are now placed in data/ and lang/ truelight@0: Delete "$INSTDIR\*.lng" truelight@0: Delete "$INSTDIR\*.grf" truelight@0: Delete "$INSTDIR\sample.cat" truelight@0: Delete "$INSTDIR\ttd.exe" truelight@0: truelight@0: truelight@0: ;Creates the Registry Entries darkvater@801: WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "Comments" "Visit http://www.openttd.org" darkvater@1215: WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "DisplayIcon" "$INSTDIR\openttd.exe,0" truelight@0: WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "DisplayName" "OpenTTD ${APPVERSION}" truelight@0: WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "DisplayVersion" "${APPVERSION}" darkvater@801: WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "HelpLink" "http://www.openttd.org" truelight@0: WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "Install Folder" "$INSTDIR" truelight@0: WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "Publisher" "OpenTTD" truelight@0: WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "Shortcut Folder" "$SHORTCUTS" truelight@0: WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "UninstallString" "$INSTDIR\uninstall.exe" darkvater@801: WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "URLInfoAbout" "http://www.openttd.org" truelight@0: ;This key sets the Version DWORD that patches will check against truelight@0: WriteRegDWORD HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "Version" ${INSTALLERVERSION} truelight@0: truelight@0: !insertmacro MUI_STARTMENU_WRITE_BEGIN "OpenTTD" truelight@0: CreateShortCut "$DESKTOP\OpenTTD.lnk" "$INSTDIR\openttd.exe" truelight@0: CreateDirectory "$SMPROGRAMS\$SHORTCUTS" truelight@0: CreateShortCut "$SMPROGRAMS\$SHORTCUTS\OpenTTD.lnk" "$INSTDIR\openttd.exe" truelight@0: CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Uninstall.lnk" "$INSTDIR\uninstall.exe" truelight@0: CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Readme.lnk" "$INSTDIR\Readme.txt" truelight@0: CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Changelog.lnk" "$INSTDIR\Changelog.txt" darkvater@801: CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Known-bugs.lnk" "$INSTDIR\known-bugs.txt" truelight@0: !insertmacro MUI_STARTMENU_WRITE_END truelight@0: SectionEnd truelight@0: truelight@0: Section "Copy Game Graphics" Section2 truelight@0: ; Include files from CD truelight@0: ;Let's copy the files from the CD truelight@0: SetOutPath "$INSTDIR\gm" truelight@0: CopyFiles "$CDDRIVE\gm\*.gm" "$INSTDIR\gm\" truelight@0: SetOutPath "$INSTDIR\data\" truelight@0: CopyFiles "$CDDRIVE\sample.cat" "$INSTDIR\data\sample.cat" 1566 truelight@0: CopyFiles "$CDDRIVE\trg1r.grf" "$INSTDIR\data\trg1r.grf" 2365 truelight@0: CopyFiles "$CDDRIVE\trgcr.grf" "$INSTDIR\data\trgcr.grf" 260 truelight@0: CopyFiles "$CDDRIVE\trghr.grf" "$INSTDIR\data\trghr.grf" 400 truelight@0: CopyFiles "$CDDRIVE\trgir.grf" "$INSTDIR\data\trgir.grf" 334 truelight@0: CopyFiles "$CDDRIVE\trgtr.grf" "$INSTDIR\data\trgtr.grf" 546 darkvater@1215: ; Copy DOS files darkvater@1215: CopyFiles "$CDDRIVE\trg1.grf" "$INSTDIR\data\trg1.grf" 2365 darkvater@1215: CopyFiles "$CDDRIVE\trgc.grf" "$INSTDIR\data\trgc.grf" 260 darkvater@1215: CopyFiles "$CDDRIVE\trgh.grf" "$INSTDIR\data\trgh.grf" 400 darkvater@1215: CopyFiles "$CDDRIVE\trgi.grf" "$INSTDIR\data\trgi.grf" 334 darkvater@1215: CopyFiles "$CDDRIVE\trgt.grf" "$INSTDIR\data\trgt.grf" 546 truelight@0: SetOutPath "$INSTDIR\" truelight@0: SectionEnd truelight@0: truelight@0: ;---------------------- truelight@0: Section -FinishSection truelight@0: WriteUninstaller "$INSTDIR\uninstall.exe" truelight@0: SectionEnd truelight@0: truelight@0: ; Modern install component descriptions truelight@0: !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN truelight@0: !insertmacro MUI_DESCRIPTION_TEXT ${Section1} "OpenTTD is a fully functional clone of TTD and is very playable." truelight@0: !insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Copies the game graphics. Requires TTD for Windows." truelight@0: !insertmacro MUI_FUNCTION_DESCRIPTION_END truelight@0: truelight@0: ;!undef SHORTCUTS truelight@0: ;Uninstall section truelight@0: truelight@0: Section Uninstall darkvater@31: MessageBox MB_YESNOCANCEL|MB_ICONQUESTION "Would you like to remove the Saved Game Folders located at '$INSTDIR\Save?' If you choose Yes, your Saved Games will be removed." IDYES RemoveSavedGames IDNO NoRemoveSavedGames truelight@0: RemoveSavedGames: darkvater@31: Delete "$INSTDIR\Save\AutoSave\*" darkvater@31: RMDir "$INSTDIR\Save\AutoSave" darkvater@31: Delete "$INSTDIR\Save\*" truelight@0: RMDir "$INSTDIR\Save" truelight@0: NoRemoveSavedGames: truelight@0: darkvater@31: MessageBox MB_YESNOCANCEL|MB_ICONQUESTION "Would you like to remove the Scenario Folders located at '$INSTDIR\Scenario?' If you choose Yes, your Scenarios will be removed." IDYES RemoveScen IDNO NoRemoveScen darkvater@31: RemoveScen: darkvater@31: Delete "$INSTDIR\Scenario\*" darkvater@31: RMDir "$INSTDIR\Scenario" darkvater@31: NoRemoveScen: darkvater@31: truelight@0: ;Remove from registry... truelight@0: !insertmacro MUI_STARTMENU_GETFOLDER "OpenTTD" $SHORTCUTS truelight@0: ReadRegStr $SHORTCUTS HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "Shortcut Folder" truelight@0: truelight@0: DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" truelight@0: truelight@0: ; Delete self truelight@0: Delete "$INSTDIR\uninstall.exe" truelight@0: truelight@0: ; Delete Shortcuts truelight@0: Delete "$DESKTOP\OpenTTD.lnk" truelight@0: Delete "$SMPROGRAMS\$SHORTCUTS\OpenTTD.lnk" truelight@0: Delete "$SMPROGRAMS\$SHORTCUTS\Uninstall.lnk" truelight@0: Delete "$SMPROGRAMS\$SHORTCUTS\Readme.lnk" truelight@0: Delete "$SMPROGRAMS\$SHORTCUTS\Changelog.lnk" darkvater@801: Delete "$SMPROGRAMS\$SHORTCUTS\Known-bugs.lnk" truelight@0: truelight@0: ; Clean up OpenTTD dir truelight@0: Delete "$INSTDIR\changelog.txt" truelight@0: Delete "$INSTDIR\readme.txt" darkvater@801: Delete "$INSTDIR\known-bugs.txt" truelight@0: Delete "$INSTDIR\openttd.exe" truelight@0: Delete "$INSTDIR\strgen.exe" darkvater@250: Delete "$INSTDIR\COPYING" truelight@0: Delete "$INSTDIR\INSTALL.LOG" truelight@0: Delete "$INSTDIR\crash.log" truelight@0: Delete "$INSTDIR\openttd.cfg" darkvater@1166: Delete "$INSTDIR\hs.dat" Darkvater@1841: Delete "$INSTDIR\cached_sprites.*" darkvater@801: Delete "$INSTDIR\save\autosave\network*.tmp" ; temporary network file truelight@0: truelight@0: ; Data files truelight@0: Delete "$INSTDIR\data\opntitle.dat" truelight@0: Delete "$INSTDIR\data\signalsw.grf" truelight@0: Delete "$INSTDIR\data\openttd.grf" truelight@0: Delete "$INSTDIR\data\canalsw.grf" darkvater@250: Delete "$INSTDIR\data\trkfoundw.grf" darkvater@1166: Delete "$INSTDIR\data\autorail.grf" Darkvater@1821: Delete "$INSTDIR\data\dosdummy.grf" darkvater@1215: Delete "$INSTDIR\data\sample.cat" truelight@0: Delete "$INSTDIR\data\trg1r.grf" truelight@0: Delete "$INSTDIR\data\trghr.grf" truelight@0: Delete "$INSTDIR\data\trgtr.grf" truelight@0: Delete "$INSTDIR\data\trgcr.grf" truelight@0: Delete "$INSTDIR\data\trgir.grf" darkvater@1215: ; Dos Data files darkvater@1215: Delete "$INSTDIR\data\trg1.grf" darkvater@1215: Delete "$INSTDIR\data\trgh.grf" darkvater@1215: Delete "$INSTDIR\data\trgt.grf" darkvater@1215: Delete "$INSTDIR\data\trgc.grf" darkvater@1215: Delete "$INSTDIR\data\trgi.grf" truelight@0: truelight@0: ;Music truelight@0: Delete "$INSTDIR\gm\*.gm" truelight@0: truelight@0: ;Language files truelight@0: Delete "$INSTDIR\lang\*.lng" truelight@0: Delete "$INSTDIR\lang\english.txt" truelight@0: truelight@0: ; Remove remaining directories truelight@0: RMDir "$SMPROGRAMS\$SHORTCUTS\Extras\" truelight@0: RMDir "$SMPROGRAMS\$SHORTCUTS" truelight@0: RMDir "$INSTDIR\gm" truelight@0: RMDir "$INSTDIR\lang" truelight@0: RMDir "$INSTDIR\data" truelight@0: RMDir "$INSTDIR" truelight@0: SectionEnd truelight@0: truelight@0: Function SelectCD truelight@0: SectionGetFlags ${Section2} $0 darkvater@801: IntOp $1 $0 & 0x80 ; bit 7 set by upgrade, no need to copy files darkvater@801: IntCmp $1 1 DoneCD ;upgrade doesn't need copy files darkvater@1215: truelight@0: IntOp $0 $0 & 1 truelight@0: IntCmp $0 1 NoAbort truelight@0: Abort truelight@0: NoAbort: truelight@0: truelight@0: GetTempFileName $R0 truelight@0: !insertmacro MUI_HEADER_TEXT "Locate TTD" "Setup needs the location of Transport Tycoon Deluxe in order to continue." truelight@0: File /oname=$R0 CDFinder.ini truelight@0: ClearErrors truelight@0: ;Now, let's populate $CDDRIVE truelight@0: ReadRegStr $CDDRIVE HKLM "SOFTWARE\Fish Technology Group\Transport Tycoon Deluxe" "HDPath" truelight@0: IfErrors NoTTD truelight@0: StrCpy $AddWinPrePopulate "Setup has detected your TTD folder. Don't change the folder. Simply press Next." truelight@0: Goto TruFinish truelight@0: NoTTD: truelight@0: StrCpy $CDDRIVE "" darkvater@1215: StrCpy $AddWinPrePopulate "Setup couldn't find TTD. Please enter the path where the graphics files from TTD are stored and press Next to continue." truelight@0: TruFinish: truelight@0: ClearErrors truelight@0: WriteINIStr $R0 "Field 2" "State" $CDDRIVE truelight@0: WriteINIStr $R0 "Field 3" "Text" $AddWinPrePopulate darkvater@801: DoneCD: truelight@0: InstallOptions::dialog $R0 truelight@0: Pop $R1 truelight@0: FunctionEnd truelight@0: truelight@0: ; Exit from page function truelight@0: Function SelectCD2 truelight@0: ReadINIStr $CDDRIVE $R0 "Field 2" "State" truelight@0: IfFileExists $CDDRIVE\trg1r.grf "" NoCD truelight@0: IfFileExists $CDDRIVE\sample.cat "" NoCD truelight@0: IfFileExists $CDDRIVE\trgir.grf hasCD "" truelight@0: NoCD: truelight@0: MessageBox MB_OK "Setup cannot continue without the Transport Tycoon Deluxe Location!" truelight@0: Abort truelight@0: hasCD: truelight@0: FunctionEnd truelight@0: truelight@0: truelight@0: Var OLDVERSION truelight@0: Var UninstallString truelight@0: truelight@0: Function .onInit truelight@0: StrCpy $SHORTCUTS "OpenTTD" truelight@0: truelight@0: SectionSetFlags 0 17 truelight@0: truelight@0: ;Want to have a splash BMP? Uncomment these lines - CAREFUL WITH FILE SIZE truelight@0: truelight@0: ; # the plugins dir is automatically deleted when the installer exits truelight@0: ; InitPluginsDir truelight@0: ; File /oname=$PLUGINSDIR\splash.bmp "C:\Documents and Settings\Administrator\My Documents\My Pictures\OpenTTD Splash.bmp" truelight@0: ; #optional truelight@0: ; #File /oname=$PLUGINSDIR\splash.wav "C:\myprog\sound.wav" truelight@0: ; truelight@0: ; ;MessageBox MB_OK "Fading" truelight@0: ; truelight@0: ; advsplash::show 3000 600 400 -1 $PLUGINSDIR\splash truelight@0: ; truelight@0: ; Pop $0 ; $0 has '1' if the user closed the splash screen early, truelight@0: ; ; '0' if everything closed normal, and '-1' if some error occured. truelight@0: ;End Splash Area truelight@0: ;Starts Setup - let's look for an older version of OpenTTD truelight@0: ReadRegDWORD $R8 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "Version" truelight@0: truelight@0: IfErrors ShowWelcomeMessage ShowUpgradeMessage truelight@0: ShowWelcomeMessage: truelight@0: ReadRegStr $R8 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "Version" truelight@0: ;In the event someone still has OpenTTD 0.1, this will detect that (that installer used a string instead of dword entry) truelight@0: IfErrors FinishCallback truelight@0: truelight@0: ShowUpgradeMessage: truelight@0: IntCmp ${INSTALLERVERSION} $R8 VersionsAreEqual InstallerIsOlder WelcomeToSetup truelight@0: WelcomeToSetup: truelight@0: ;An older version was found. Let's let the user know there's an upgrade that will take plce. truelight@0: ReadRegStr $OLDVERSION HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "DisplayVersion" truelight@0: ;Gets the older version then displays it in a message box truelight@0: MessageBox MB_OK|MB_ICONINFORMATION "Welcome to ${APPNAMEANDVERSION} Setup.$\n$\nThis will allow you to upgrade from version $OLDVERSION." darkvater@801: SectionSetFlags ${Section2} 0x80 ; set bit 7 truelight@0: Goto FinishCallback truelight@0: truelight@0: VersionsAreEqual: truelight@0: ReadRegStr $UninstallString HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "UninstallString" truelight@0: IfFileExists "$UninstallString" "" FinishCallback truelight@0: MessageBox MB_YESNO|MB_ICONQUESTION "Setup detected ${APPNAMEANDVERSION} on your system. That's the version this program will install.$\n$\nAre you trying to uninstall it?" IDYES DoUninstall IDNO FinishCallback truelight@0: DoUninstall: ;You have the same version as this installer. This allows you to uninstall. truelight@0: Exec "$UninstallString" truelight@0: Quit truelight@0: truelight@0: InstallerIsOlder: truelight@0: MessageBox MB_OK|MB_ICONSTOP "You have a newer version of ${APPNAME}.$\n$\nSetup will now exit." truelight@0: Quit truelight@0: truelight@0: FinishCallback: truelight@0: ClearErrors truelight@0: FunctionEnd truelight@0: ; eof truelight@0: