;
;$VER: Jimmy White's Whirlwind Snooker savegame Installer script v1.01 (c) 1998 John Girvin ;

;------------------------------------------------------------------------------------
; Make save data

(procedure S_InstallSave
(
	;
	; Get save disk inserted
	;
	(message
		(cat "\n\n\nPlease insert your save disk in drive DF0:\n\n"
			 "Click 'Proceed' when ready."
		)
	)

	;
	; Back up old save files just in case!
	;

	(if (= 1 (exists (tackon #JDATDIR "SaveDat.6B4")))
		(
			(copyfiles
				(prompt "Backing up old save files")
				(help @copyfiles-help)
				(source (tackon #JDATDIR "SaveDat.6B4"))
				(newname "SaveDat.6B4.old")
				(dest #JDATDIR)
				(nogauge)
				(optional fail force)
			)

			(delete
				(tackon #JDATDIR "SaveDat.6B4")
				(optional fail force)
			)
		)
	)

	(if (= 1 (exists (tackon #JDATDIR "SaveDat.6CA")))
		(
			(copyfiles
				(prompt "Backing up old save files")
				(help @copyfiles-help)
				(source (tackon #JDATDIR "SaveDat.6CA"))
				(newname "SaveDat.6CA.old")
				(dest #JDATDIR)
				(nogauge)
				(optional fail force)
			)

			(delete
				(tackon #JDATDIR "SaveDat.6CA")
				(optional fail force)
			)
		)
	)

	;
	; Call the save extractor
	;
	(set #JOLDEXEDIR @execute-dir)
	(set @execute-dir #JDATDIR)
	(run (cat(tackon #JDATDIR "JWWSMakeSave 0")))
	(set @execute-dir #JOLDEXEDIR)

	;
	; Did the save install work?
	; Check that the files were created
	;
	(set #JOK 1)
	(if (<>	(getsize (tackon #JDATDIR "SaveDat.6B4")) 5632)
		(set #JOK 0)
	)
	(if (<>	(getsize (tackon #JDATDIR "SaveDat.6CA")) 5632)
		(set #JOK 0)
	)

	;
	; Restore old save files if installation failed
	;
	(if (= 0 #JOK)
		(
			(copyfiles
				(prompt "Restoring old save files")
				(help @copyfiles-help)
				(source (tackon #JDATDIR "SaveDat.6B4.old"))
				(newname "SaveDat.6B4")
				(dest #JDATDIR)
				(nogauge)
				(optional fail force)
			)

			(delete
				(tackon #JDATDIR "SaveDat.6B4.old")
				(optional fail force)
			)

			(copyfiles
				(prompt "Restoring old save files")
				(help @copyfiles-help)
				(source (tackon #JDATDIR "SaveDat.6CA.old"))
				(newname "SaveDat.6CA")
				(dest #JDATDIR)
				(nogauge)
				(optional fail force)
			)

			(delete
				(tackon #JDATDIR "SaveDat.6CA.old")
				(optional fail force)
			)

			(abort (cat "*** Savegame installation failed! ***\n\n"
						"No existing save positions have been changed"
				   )
			)
		)
	)

	(message "\n\n\n\nSavegame installation successful!")
))

;------------------------------------------------------------------------------------
(welcome "Welcome to the Jimmy White's Whirlwind Snooker Savegame HD Installer")
(set @app-name (cat "Jimmy White's Whirlwind Snooker Savegame"))
(set #JROOTDIR "RAM:")
(set #JDATDIR "")

(if	(<> @user-level 2)
	(abort "You must select 'Expert' user level")
)

(if	(< @installer-version 2818051)
	(abort "This package requires at least version 43.3 of the Installer program")
)

(message "\n\nWelcome to the Jimmy White's Whirlwind Snooker Savegame HD Installer"
		 "(c) 1998 John Girvin\n\n"
		 "*** YOU MUST HAVE INSTALLED THE GAME BEFORE ***\n"
		 "*** ATTEMPTING TO INSTALL ANY SAVED GAMES ! ***\n\n"
		 "Please read the documentation thoroughly before"
		 " attempting to use this installer!\n\n"
		 "This is version 1.01\n\n"
		 "Click 'Proceed' to begin."
)

;
; Get directory JWWS lives in
;
(set #JOK 0)
(while (= 0 #JOK)
	(
		(set #JROOTDIR
			(askdir
				(prompt "Where do you have Jimmy White's Whirlwind Snooker installed?\n"
						"(select the directory containing the 'JW_Snooker' program)"
				)
				(help @askdir-help)
				(default #JROOTDIR)
			)
		)

		(if (= 1 (exists (tackon #JROOTDIR "JW_Snooker")))
			(set #JOK 1)
		)
	)
)
(set #JDATDIR  (tackon #JROOTDIR "data/"))

;
; Install the save data
;
(S_InstallSave)
