;
; DVA-B777-200.nsi Delta Virtual Airlines B777-200/300 installer
; Used for Microsoft Flight Simulator 2002 ONLY
; Copyright (C) 2003 Luke J. Kolin. All Rights granted to Delta Virtual Airlines for
; duplication and modification.
;

; Define the FS version we are using
!define			FS2K2
!define			FS2K4
!define			DVA

; We will require a mirror site
!define			USE_MIRRORS

; Aircraft version - define before includes
!define			AIRCRAFT_MAJOR		1
!define			AIRCRAFT_MINOR		00
!define			AIRCRAFT_TYPE		777
!define			OUT_FILE		DVA-FS2002-777

!define			MUI_PRODUCT 		"Delta Virtual Airlines 777"
!define			MUI_VERSION 		"1.10"

!include		"MUI.nsh"

; Common include files
!addIncludeDir		"U:\Luke\DVA\Install"
!include		global_mui.nsh
!include		globalfunc.nsh

!insertMacro		sideBitmap "777_side.bmp"

; Delta VA Pilot Information
!include		dva_info.nsh

; Uninstaller options
UninstallCaption	"Delta Virtual Airlines Boeing 777 Uninstaller"
UninstallText		"This will remove the Delta Virtual Airlines Boeing 777 from your computer. It will NOT remove any gauge files."

; Output installer file
OutFile			${OUT_FILE}.exe

ReserveFile		AIRCRAFT2K2\772info.ini
ReserveFile		AIRCRAFT2K2\773info.ini

; --------------------------------------------------- Page Order

!insertMacro		MUI_PAGE_WELCOME

!insertMacro		MUI_PAGE_LICENSE
!define			MUI_LICENSEPAGE_RADIOBUTTONS

Page custom GetDVAInfo "" ": Pilot Information"

!insertMacro		MUI_PAGE_DIRECTORY
!insertMacro		MUI_PAGE_COMPONENTS
!define			MUI_COMPONENTSPAGE_SMALLDESC

!insertMacro		MUI_PAGE_INSTFILES
!insertMacro		MUI_PAGE_FINISH 

UninstPage uninstConfirm
UninstPage instfiles


;!insertMacro		MUI_UNPAGE_CONFIRM
;!insertMacro		MUI_UNPAGE_INSTFILES

!insertmacro MUI_LANGUAGE "English"

; -------------------------------------------------- Aircraft Section 777-200

SubSection /e		"Aircraft (B777-200ER)"

Section			"B777-200 (Delta OC)" B777-200-OC

SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200
File			AIRCRAFT2K2\B777-200ER\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\MODEL.RR
File			AIRCRAFT2K2\B777-200ER\model.rr\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\PANEL
File			AIRCRAFT2K2\B777-200ER\panel\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\SOUND
File			AIRCRAFT2K2\B777-200ER\sound\sound.cfg
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\TEXTURE.OC
File			AIRCRAFT2K2\B777-200ER\texture.oc\*.*
SetOutPath		$INSTDIR\effects
File			AIRCRAFT2K2\B777-200ER\effects\*.*
WriteRegStr		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 OC" "1"

SectionEnd

Section			"B777-200 (Delta NC)" B777-200-NC

SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200
File			AIRCRAFT2K2\B777-200ER\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\MODEL.RR
File			AIRCRAFT2K2\B777-200ER\model.rr\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\PANEL
File			AIRCRAFT2K2\B777-200ER\panel\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\SOUND
File			AIRCRAFT2K2\B777-200ER\sound\sound.cfg
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\TEXTURE.NC
File			AIRCRAFT2K2\B777-200ER\texture.nc\*.*
SetOutPath		$INSTDIR\effects
File			AIRCRAFT2K2\B777-200ER\effects\*.*
WriteRegStr		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 NC" "1"

SectionEnd

Section			"B777-200 (Delta NNC)" B777-200-NNC

SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200
File			AIRCRAFT2K2\B777-200ER\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\MODEL.RR
File			AIRCRAFT2K2\B777-200ER\model.rr\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\PANEL
File			AIRCRAFT2K2\B777-200ER\panel\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\SOUND
File			AIRCRAFT2K2\B777-200ER\sound\sound.cfg
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\TEXTURE.NNC
File			AIRCRAFT2K2\B777-200ER\texture.nnc\*.*
SetOutPath		$INSTDIR\effects
File			AIRCRAFT2K2\B777-200ER\effects\*.*
WriteRegStr		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 NNC" "1"

SectionEnd

Section			"B777-200 (Soaring Spirit)" B777-200-SS

SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200
File			AIRCRAFT2K2\B777-200ER\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\MODEL.RR
File			AIRCRAFT2K2\B777-200ER\model.rr\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\PANEL
File			AIRCRAFT2K2\B777-200ER\panel\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\SOUND
File			AIRCRAFT2K2\B777-200ER\sound\sound.cfg
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\TEXTURE.SS
File			AIRCRAFT2K2\B777-200ER\texture.ss\*.*
SetOutPath		$INSTDIR\effects
File			AIRCRAFT2K2\B777-200ER\effects\*.*
WriteRegStr		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 SS" "1"

SectionEnd

Section			"B777-200 (Air France)" B777-200-AF

SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200
File			AIRCRAFT2K2\B777-200ER\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\MODEL.GE
File			AIRCRAFT2K2\B777-200ER\model.GE\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\PANEL
File			AIRCRAFT2K2\B777-200ER\panel\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\SOUND
File			AIRCRAFT2K2\B777-200ER\sound\sound.cfg
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\TEXTURE.AF
File			AIRCRAFT2K2\B777-200ER\texture.af\*.*
SetOutPath		$INSTDIR\effects
File			AIRCRAFT2K2\B777-200ER\effects\*.*
WriteRegStr		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 AF" "1"

SectionEnd

Section			"B777-200 (Korean Air Lines)" B777-200-KAL

SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200
File			AIRCRAFT2K2\B777-200ER\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\MODEL.PW
File			AIRCRAFT2K2\B777-200ER\model.pw\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\PANEL
File			AIRCRAFT2K2\B777-200ER\panel\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\SOUND
File			AIRCRAFT2K2\B777-200ER\sound\sound.cfg
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\TEXTURE.KAL
File			AIRCRAFT2K2\B777-200ER\texture.kal\*.*
SetOutPath		$INSTDIR\effects
File			AIRCRAFT2K2\B777-200ER\effects\*.*
WriteRegStr		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 KAL" "1"

SectionEnd

Section			"B777-200 (KAL World Cup)" B777-200-KWC

SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200
File			AIRCRAFT2K2\B777-200ER\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\MODEL.PW
File			AIRCRAFT2K2\B777-200ER\model.PW\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\PANEL
File			AIRCRAFT2K2\B777-200ER\panel\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\SOUND
File			AIRCRAFT2K2\B777-200ER\sound\sound.cfg
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\TEXTURE.KWC
File			AIRCRAFT2K2\B777-200ER\texture.kwc\*.*
SetOutPath		$INSTDIR\effects
File			AIRCRAFT2K2\B777-200ER\effects\*.*
WriteRegStr		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 KWC" "1"

SectionEnd

Section			-772CFGfix

DetailPrint		"Updating B777-200 aircraft configuration..."

; Extract the aircraft info file into the TEMP path
InitPluginsDir
SetOutPath		$PLUGINSDIR
File			AIRCRAFT2K2\772info.ini

; Set the aircraft.cfg section
IntOp			$R8 0 & 0

; Set the source and destination INI files
StrCpy			$R7 $INSTDIR\AIRCRAFT\DVA_B777_200\aircraft.cfg
StrCpy			$R9 $PLUGINSDIR\772info.ini

; Check for the 777-200 OC
ReadRegStr		$R0 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 OC"
StrCmp			$R0 "1" 0 Cfg772NC
 Push			$R9
 Push			"oc"
 Push			$R7
 Push			"fltsim.$R8"
 Call			CopyAircraftInfo
 IntOp			$R8 $R8 + 1

; Check for the 777-200 NC
Cfg772NC:
ReadRegStr		$R0 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 NC"
StrCmp			$R0 "1" 0 Cfg772NNC
 Push			$R9
 Push			"nc"
 Push			$R7
 Push			"fltsim.$R8"
 Call			CopyAircraftInfo
 IntOp			$R8 $R8 + 1

; Check for the 777-200 NNC
Cfg772NNC:
ReadRegStr		$R0 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 NNC"
StrCmp			$R0 "1" 0 Cfg772SS
 Push			$R9
 Push			"nnc"
 Push			$R7
 Push			"fltsim.$R8"
 Call			CopyAircraftInfo
 IntOp			$R8 $R8 + 1

; Check for the 777-200 SS
Cfg772SS:
ReadRegStr		$R0 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 SS"
StrCmp			$R0 "1" 0 Cfg772AF
 Push			$R9
 Push			"ss"
 Push			$R7
 Push			"fltsim.$R8"
 Call			CopyAircraftInfo
 IntOp			$R8 $R8 + 1

; Check for the 777-200 Air France
Cfg772AF:
ReadRegStr		$R0 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 AF"
StrCmp			$R0 "1" 0 Cfg772KAL
 Push			$R9
 Push			"af"
 Push			$R7
 Push			"fltsim.$R8"
 Call			CopyAircraftInfo
 IntOp			$R8 $R8 + 1

; Check for the 777-200 KAL
Cfg772KAL:
ReadRegStr		$R0 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 KAL"
StrCmp			$R0 "1" 0 Cfg772KWC
 Push			$R9
 Push			"kal"
 Push			$R7
 Push			"fltsim.$R8"
 Call			CopyAircraftInfo
 IntOp			$R8 $R8 + 1

; Check for the 777-200 KWC
Cfg772KWC:
ReadRegStr		$R0 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 KWC"
StrCmp			$R0 "1" 0 EndCFGFix
 Push			$R9
 Push			"kwc"
 Push			$R7
 Push			"fltsim.$R8"
 Call			CopyAircraftInfo

EndCFGFix:
FlushINI		$R7

SectionEnd

LangString DESC_Section772OC ${LANG_ENGLISH} "Melvin Raffi's MelJet Boeing 777 in Delta Old Colors livery."
LangString DESC_Section772NC ${LANG_ENGLISH} "Melvin Raffi's MelJet Boeing 777 in Delta New Colors (1997) livery."
LangString DESC_Section772NNC ${LANG_ENGLISH} "Melvin Raffi's MelJet Boeing 777 in Delta New Colors (2003) livery."
LangString DESC_Section772SS ${LANG_ENGLISH} "Melvin Raffi's MelJet Boeing 777 in Delta Soaring Spirit livery."
LangString DESC_Section772AF ${LANG_ENGLISH} "Melvin Raffi's MelJet Boeing 777 in Air France livery."
LangString DESC_Section772KAL ${LANG_ENGLISH} "Melvin Raffi's MelJet Boeing 777 in Korean Air Lines livery."
LangString DESC_Section772KWC ${LANG_ENGLISH} "Melvin Raffi's MelJet Boeing 777 in Korean World Cup 2002 livery."

SubSectionEnd

; -------------------------------------------------- Aircraft Section 777-300

SubSection /e		"Aircraft (B777-300)"

Section			"B777-300 (Delta NNC)" B777-300-NNC

SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300
File			AIRCRAFT2K2\B777-300\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300\MODEL
File			AIRCRAFT2K2\B777-300\model\*.*
CopyFiles		$INSTDIR\AIRCRAFT\B777_300\MODEL\*.mdl $INSTDIR\AIRCRAFT\DVA_B777_300\MODEL 755
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300\PANEL
File			AIRCRAFT2K2\B777-300\panel\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300\SOUND
File			AIRCRAFT2K2\B777-300\sound\sound.cfg
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300\TEXTURE.NNC
File			AIRCRAFT2K2\B777-300\texture.nnc\*.*
WriteRegStr		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-300 NNC" "1"

SectionEnd

Section			"B777-300 (Air France)" B777-300-AF

SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300
File			AIRCRAFT2K2\B777-300\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300\MODEL
File			AIRCRAFT2K2\B777-300\model\*.*
CopyFiles		$INSTDIR\AIRCRAFT\B777_300\MODEL\*.mdl $INSTDIR\AIRCRAFT\DVA_B777_300\MODEL 755
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300\PANEL
File			AIRCRAFT2K2\B777-300\panel\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300\SOUND
File			AIRCRAFT2K2\B777-300\sound\sound.cfg
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300\TEXTURE.AF
File			AIRCRAFT2K2\B777-300\texture.af\*.*
WriteRegStr		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-300 AF" "1"

SectionEnd

Section			"B777-300 (Korean Air Lines)" B777-300-KAL

SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300
File			AIRCRAFT2K2\B777-300\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300\MODEL
File			AIRCRAFT2K2\B777-300\model\*.*
CopyFiles		$INSTDIR\AIRCRAFT\B777_300\MODEL\*.mdl $INSTDIR\AIRCRAFT\DVA_B777_300\MODEL 756
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300\PANEL
File			AIRCRAFT2K2\B777-300\panel\*.*
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300\SOUND
File			AIRCRAFT2K2\B777-300\sound\sound.cfg
SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_300\TEXTURE.KAL
File			AIRCRAFT2K2\B777-300\texture.kal\*.*
WriteRegStr		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-300 KAL" "1"

SectionEnd

Section			-773CFGFix

DetailPrint		"Updating B777-300 aircraft configuration..."

; Extract the aircraft info file into the TEMP path
InitPluginsDir
SetOutPath		$PLUGINSDIR
File			AIRCRAFT2K2\773info.ini

; Set the aircraft.cfg section
IntOp			$R8 0 & 0

; Set the source and destination INI files
StrCpy			$R7 $INSTDIR\AIRCRAFT\DVA_B777_300\aircraft.cfg
StrCpy			$R9 $PLUGINSDIR\773info.ini

; Check for the 777-300 NNC
ReadRegStr		$R0 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-300 NNC"
StrCmp			$R0 "1" 0 Cfg773AF
 Push			$R9
 Push			"nnc"
 Push			$R7
 Push			"fltsim.$R8"
 Call			CopyAircraftInfo
 IntOp			$R8 $R8 + 1

; Check for the 777-300 Air France
Cfg773AF:
ReadRegStr		$R0 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-300 AF"
StrCmp			$R0 "1" 0 Cfg773KAL
 Push			$R9
 Push			"af"
 Push			$R7
 Push			"fltsim.$R8"
 Call			CopyAircraftInfo
 IntOp			$R8 $R8 + 1

; Check for the 777-300 Korean Air Lines
Cfg773KAL:
ReadRegStr		$R0 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-300 KAL"
StrCmp			$R0 "1" 0 EndCFGFix
 Push			$R9
 Push			"kal"
 Push			$R7
 Push			"fltsim.$R8"
 Call			CopyAircraftInfo

EndCFGFix:
FlushINI		$R7

SectionEnd

LangString DESC_Section773NNC ${LANG_ENGLISH} "A repaint of the default Boeing 777-300 in Delta New Colors (2003) livery."
LangString DESC_Section773AF ${LANG_ENGLISH} "A repaint of the default Boeing 777-300 in Air France livery."
LangString DESC_Section773KAL ${LANG_ENGLISH} "A repaint of the default Boeing 777-300 in Korean Air Lines livery."

SubSectionEnd

; ---------------------------------------------------- Jorge Salas Panel

SubSection /e Panels

Section			"B777 Panel" PANEL

SetOutPath		$INSTDIR\AIRCRAFT\FSFSConv\PANEL.JET.777
File			PANEL2K2\*.*
SetOutPath		$INSTDIR\GAUGES
File			PANEL2K2\GAUGES\*.*
SetOutPath		$INSTDIR\SOUND
File			PANEL2K2\SOUND\*.wav

WriteRegStr		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Panels" "B777" "1"

; Check if we're have a Boeing 777-200
IfFileExists		$INSTDIR\AIRCRAFT\DVA_B777_200\PANEL\panel.cfg 0 Panel773
 WriteINIStr		$INSTDIR\AIRCRAFT\DVA_B777_200\PANEL\panel.cfg fltsim alias "FSFSConv\PANEL.JET.777"
 FlushINI		$INSTDIR\AIRCRAFT\DVA_B777_200\PANEL\panel.cfg

; Check if we're have a Boeing 777-300
Panel773:
IfFileExists		$INSTDIR\AIRCRAFT\DVA_B777_300\PANEL\panel.cfg 0 PanelEnd
 WriteINIStr		$INSTDIR\AIRCRAFT\DVA_B777_300\PANEL\panel.cfg fltsim alias "FSFSConv\PANEL.JET.777"
 FlushINI		$INSTDIR\AIRCRAFT\DVA_B777_300\PANEL\panel.cfg

PanelEnd:
SectionEnd

LangString DESC_SectionP ${LANG_ENGLISH} "Jorge Salas' Boeing 777 panel for Microsoft Flight Simulator 2002."

SubSectionEnd

; ---------------------------------------------------- Sound package

SubSection /e Sounds

Section			"Download B777 Sounds" B777-SOUND

AddSize			8594

; Download the compressed sound file
InitPluginsDir
NSISdl::download	"http://www.deltava.org/install/b777snd.zip" "$PLUGINSDIR\b777snd.zip"

; Check if all went well
Pop			$R0
StrCmp			$R0 "success" UnZIP772 0
StrCmp			$R0 "cancel" 0 DLError
 MessageBox		MB_OK|MB_ICONEXCLAMATION "Boeing 777 Sound Package download aborted."
 Goto DLComplete

DLError:
 MessageBox		MB_OK|MB_ICONSTOP $R0 
 Goto DLComplete

; Extract into 772 Directory
UnZIP772:
IfFileExists		$INSTDIR\AIRCRAFT\DVA_B777_200\*.* 0 UnZIP773
 Delete			"$INSTDIR\AIRCRAFT\DVA_B777_200\SOUND\sound.cfg"
 ZipDLL::extractall	"$PLUGINSDIR\b777snd.zip" "$INSTDIR\AIRCRAFT\DVA_B777_200\SOUND"
 Pop			$R0
 StrCmp			$R0 "success" UnZIP773 0
  MessageBox		MB_OK|MB_ICONSTOP "Unable to extract Boeing 777 Sound Package."
  Goto DLComplete

; Extract into 773 directory
UnZIP773:
IfFileExists		$INSTDIR\AIRCRAFT\DVA_B777_300\*.* 0 DLComplete
 Delete			"$INSTDIR\AIRCRAFT\DVA_B777_300\SOUND\sound.cfg"
 ZipDLL::extractall	"$PLUGINSDIR\b777snd.zip" "$INSTDIR\AIRCRAFT\DVA_B777_300\SOUND"
 Pop			$R0
 StrCmp			$R0 "success" DLComplete 0
  MessageBox		MB_OK|MB_ICONSTOP "Unable to extract Boeing 777 Sound Package."

DLComplete:

SectionEnd

LangString DESC_SectionS ${LANG_ENGLISH} "Download a Boeing 777 sound package from the Delta Virtual Airlines download site or its mirrors."

SubSectionEnd

; -------------------------------------------------- Virtual Cabin Section

SubSection /e Modules

!insertMacro		secFSUIPC
!insertMacro		secFSSOUND

Section			"B777-200 Virtual Cabin" VCABIN

SectionGetFlags		${B777-200-OC} $R9
IntOp			$R9 $R9 & 0x00000001
IntCmp			$R9 1 0 +2
 SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\TEXTURE.OC
 File			AIRCRAFT2K2\VCABIN\*.*

SectionGetFlags		${B777-200-NC} $R9
IntOp			$R9 $R9 & 0x00000001
IntCmp			$R9 1 0 +2
 SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\TEXTURE.NC
 File			AIRCRAFT2K2\VCABIN\*.*

SectionGetFlags		${B777-200-NNC} $R9
IntOp			$R9 $R9 & 0x00000001
IntCmp			$R9 1 0 +2
 SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\TEXTURE.NNC
 File			AIRCRAFT2K2\VCABIN\*.*

SectionGetFlags		${B777-200-SS} $R9
IntOp			$R9 $R9 & 0x00000001
IntCmp			$R9 1 0 NoVCabin
 SetOutPath		$INSTDIR\AIRCRAFT\DVA_B777_200\TEXTURE.SS
 File			AIRCRAFT2K2\VCABIN\*.*

NoVCabin:

SectionEnd

LangString DESC_VCABIN ${LANG_ENGLISH} "Delta-style virtual cabin images for the MelJet Boeing 777-200."

SubSectionEnd


; -------------------------------------------------- Documentation Section

SubSection /e Documentation

Section			"Boeing 777 Operating Manual" MANUAL

SetOutPath		"$PROGRAMFILES\Delta Virtual"
File			"DOC\B777 Manual.pdf"
WriteRegStr		HKLM "SOFTWARE\Delta Virtual Airlines\Documentation" "B777 Manual" "1"

SetOutPath		"$SMPROGRAMS\Delta Virtual Airlines"
CreateShortCut		"Boeing 777 Manual.lnk" "$PROGRAMFILES\Delta Virtual\B777 Manual.pdf"

SectionEnd

LangString DESC_SectionM ${LANG_ENGLISH} "The official Delta Virtual Airlines Boeing 777 Operating Manual."

!insertMacro		secURL

SubSectionEnd

; ----------------------------------------------------- Uninstaller Section

Section			Uninstall

; Load the FS2002 directory
ReadRegStr		$R9 HKLM "SOFTWARE\Delta Virtual Airlines" "FS2002"

; Check for installed manual
ReadRegStr		$R1 HKLM "SOFTWARE\Delta Virtual Airlines\Documentation" "B777 Manual"
StrCmp			$R1 "1" 0 CheckB777OC
 Delete			"$PROGRAMFILES\Delta Virtual\B777 Manual.pdf"
 Delete			"$SMPROGRAMS\Delta Virtual Airlines\Boeing 777 Manual.lnk"
 DeleteRegValue		HKLM "SOFTWARE\Delta Virtual Airlines\Documentation" "B777 Manual"

; Check for installed B777-200 OC
CheckB777OC:
ReadRegStr		$R1 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 OC"
StrCmp			$R1 "1" 0 CheckB777NC
 RmDir /r		$R9\AIRCRAFT\DVA_B777_200
 DeleteRegValue		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 OC"

; Check for installed B777-200 NC
CheckB777NC:
ReadRegStr		$R1 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 NC"
StrCmp			$R1 "1" 0 CheckB777NNC
 RmDir /r		$R9\AIRCRAFT\DVA_B777_200
 DeleteRegValue		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 NC"

; Check for installed B777-200 NNC
CheckB777NNC:
ReadRegStr		$R1 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 NNC"
StrCmp			$R1 "1" 0 CheckB777SS
 RmDir /r		$R9\AIRCRAFT\DVA_B777_200
 DeleteRegValue		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 NNC"

; Check for installed B777-200 SS
CheckB777SS:
ReadRegStr		$R1 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 SS"
StrCmp			$R1 "1" 0 CheckB777AF
 RmDir /r		$R9\AIRCRAFT\DVA_B777_200
 DeleteRegValue		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 SS"

; Check for installed B777-200 AFV
CheckB777AF:
ReadRegStr		$R1 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 AF"
StrCmp			$R1 "1" 0 CheckB777KAL
 RmDir /r		$R9\AIRCRAFT\DVA_B777_200
 DeleteRegValue		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 AF"

; Check for installed B777-200 KAL
CheckB777KAL:
ReadRegStr		$R1 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 KAL"
StrCmp			$R1 "1" 0 CheckB777KWC
 RmDir /r		$R9\AIRCRAFT\DVA_B777_200
 DeleteRegValue		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 KAL"

; Check for installed B777-200 KAL World Cup
CheckB777KWC:
ReadRegStr		$R1 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 KWC"
StrCmp			$R1 "1" 0 CheckB773NNC
 RmDir /r		$R9\AIRCRAFT\DVA_B777_200
 DeleteRegValue		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-200 KWC"

; Check for installed B777-300 NNC
CheckB773NNC:
ReadRegStr		$R1 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-300 NNC"
StrCmp			$R1 "1" 0 CheckB773AF
 RmDir /r		$R9\AIRCRAFT\DVA_B777_300
 DeleteRegValue		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-300 NNC"

; Check for installed B777-300 AF
CheckB773AF:
ReadRegStr		$R1 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-300 AF"
StrCmp			$R1 "1" 0 CheckB773KAL
 RmDir /r		$R9\AIRCRAFT\DVA_B777_300
 DeleteRegValue		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-300 AF"

; Check for installed B777-300 KAL
CheckB773KAL:
ReadRegStr		$R1 HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-300 KAL"
StrCmp			$R1 "1" 0 UninstEnd
 RmDir /r		$R9\AIRCRAFT\DVA_B777_300
 DeleteRegValue		HKLM "SOFTWARE\Delta Virtual Airlines\FS2002 Aircraft" "B777-300 KAL"

; End of uninstaller stuff - remove uninstaller entry
UninstEnd:
DeleteRegKey		HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DVA FS2k2 B777" 
Delete			"$PROGRAMFILES\Delta Virtual\DVA-FS2002-B777-Uninst.Exe"

SectionEnd

; ---------------------------------------------------- Uninstaller Prep Section

Section			-UninstallerPrep

DetailPrint		"Updating Add/Remove Programs menu..."

WriteRegStr		HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DVA FS2k2 B777" \
			"DisplayName" "Delta Virtual Airlines Boeing 777"

WriteRegStr		HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DVA FS2k2 B777" \
			"UninstallString" "$PROGRAMFILES\Delta Virtual\DVA-FS2002-B777-Uninst.Exe"

!insertMacro		defaultUninstall "DVA FS2k2 B777"

DetailPrint		"Creating uninstall utility..."
WriteUninstaller	"$PROGRAMFILES\Delta Virtual\DVA-FS2002-B777-Uninst.Exe"
DetailPrint		"Uninstall utility complete."

SectionEnd

; -------------------------------------------------- Validate selections

Function SelectiveEnable

; Check if any Delta aircraft is selected

SectionGetFlags		${B777-200-OC} $R9
IntOp			$R0 $R9 & 0x00000001
SectionGetFlags		${B777-200-NC} $R9
IntOp			$R0 $R0 | $R9
SectionGetFlags		${B777-200-NNC} $R9
IntOp			$R0 $R0 | $R9
SectionGetFlags		${B777-200-SS} $R9
IntOp			$R0 $R0 | $R9

; If nothing is selected, disable the vcabin
IntOp			$R0 $R0 & 0x00000001
IntCmp			$R0 1 EnableVCabin 0
 SectionGetFlags	${VCABIN} $R9
 IntOp			$R9 $R9 & 0xFFFFFFFE
 IntOp			$R9 $R9 | 0x00000010
 SectionSetFlags	${VCABIN} $R9
 Goto			CheckSound

; If an aircraft is selected, enable the vcabin
EnableVCabin:
 SectionGetFlags	${VCABIN} $R9
 IntOp			$R9 $R9 & 0xFFFFFFEF
 SectionSetFlags	${VCABIN} $R9

; Check if any 777 are selected; $R0 already tells us if we have Delta aircraft
CheckSound:
SectionGetFlags		${B777-200-AF} $R9
IntOp			$R0 $R0 | $R9
SectionGetFlags		${B777-200-KAL} $R9
IntOp			$R0 $R0 | $R9
SectionGetFlags		${B777-200-KWC} $R9
IntOp			$R0 $R0 | $R9
SectionGetFlags		${B777-300-NNC} $R9
IntOp			$R0 $R0 | $R9
SectionGetFlags		${B777-300-AF} $R9
IntOp			$R0 $R0 | $R9
SectionGetFlags		${B777-300-KAL} $R9
IntOp			$R0 $R0 | $R9
IntOp			$R0 $R0 & 0x00000001

; If nothing is selected, disable the sound package
IntCmp			$R0 1 EnableSound 0
 SectionGetFlags	${B777-SOUND} $R9
 IntOp			$R9 $R9 & 0xFFFFFFFE
 IntOp			$R9 $R9 | 0x00000010
 SectionSetFlags	${B777-SOUND} $R9
 Return

EnableSound:
 SectionGetFlags	${B777-SOUND} $R9
 IntOp			$R9 $R9 & 0xFFFFFFEF
 SectionSetFlags	${B777-SOUND} $R9

FunctionEnd

; -------------------------------------------------- Get the FS Directory

Function .onInit

Call			SetInstallPath
Call			initDVAinfo

!insertMacro		validateFSPath

; Check for previously installed aircraft
!insertMacro		checkComponent "FS2002 Aircraft" "B777-200 OC" ${B777-200-OC}
!insertMacro		checkComponent "FS2002 Aircraft" "B777-200 NC" ${B777-200-NC}
!insertMacro		checkComponent "FS2002 Aircraft" "B777-200 NNC" ${B777-200-NNC}
!insertMacro		checkComponent "FS2002 Aircraft" "B777-200 SS" ${B777-200-SS}
!insertMacro		checkComponent "FS2002 Aircraft" "B777-200 AF" ${B777-200-AF}
!insertMacro		checkComponent "FS2002 Aircraft" "B777-200 KAL" ${B777-200-KAL}
!insertMacro		checkComponent "FS2002 Aircraft" "B777-200 KWC" ${B777-200-KWC}
!insertMacro		checkComponent "FS2002 Aircraft" "B777-300 NNC" ${B777-300-NNC}
!insertMacro		checkComponent "FS2002 Aircraft" "B777-300 AF" ${B777-300-AF}
!insertMacro		checkComponent "FS2002 Aircraft" "B777-300 KAL" ${B777-300-KAL}

; Check for previously installed panel/manual
!insertMacro		checkComponent "FS2002 Panels" "B777" ${PANEL}
!insertMacro		checkComponent "Documentation" "B777 Manual" ${MANUAL}

; Check for previously installed misc. components
!insertMacro		checkFSSound
!insertMacro		checkFSUIPC
!insertMacro		checkURL

Call			SelectiveEnable

FunctionEnd

; ------------------------------------------------------ Selection validation

Function		.onSelChange

Call			SelectiveEnable

FunctionEnd

!insertmacro MUI_FUNCTIONS_DESCRIPTION_BEGIN
  !insertmacro MUI_DESCRIPTION_TEXT ${B777-200-OC} $(DESC_Section772OC)
  !insertmacro MUI_DESCRIPTION_TEXT ${B777-200-NC} $(DESC_Section772NC)
  !insertmacro MUI_DESCRIPTION_TEXT ${B777-200-NNC} $(DESC_Section772NNC)
  !insertmacro MUI_DESCRIPTION_TEXT ${B777-200-SS} $(DESC_Section772SS)
  !insertmacro MUI_DESCRIPTION_TEXT ${B777-200-AF} $(DESC_Section772AF)
  !insertmacro MUI_DESCRIPTION_TEXT ${B777-200-KAL} $(DESC_Section772KAL)
  !insertmacro MUI_DESCRIPTION_TEXT ${B777-200-KWC} $(DESC_Section772KWC)
  !insertmacro MUI_DESCRIPTION_TEXT ${B777-300-NNC} $(DESC_Section773NNC)
  !insertmacro MUI_DESCRIPTION_TEXT ${B777-300-AF} $(DESC_Section773AF)
  !insertmacro MUI_DESCRIPTION_TEXT ${B777-300-KAL} $(DESC_Section773KAL)
  !insertmacro MUI_DESCRIPTION_TEXT ${PANEL} $(DESC_SectionP)
  !insertmacro MUI_DESCRIPTION_TEXT ${MANUAL} $(DESC_SectionM)
  !insertmacro MUI_DESCRIPTION_TEXT ${B777-SOUND} $(DESC_SectionS)
  !insertmacro MUI_DESCRIPTION_TEXT ${FSSOUND} $(DESC_FSSOUND)
  !insertmacro MUI_DESCRIPTION_TEXT ${FSUIPC} $(DESC_FSUIPC)
  !insertmacro MUI_DESCRIPTION_TEXT ${VCABIN} $(DESC_VCABIN)
  !insertmacro MUI_DESCRIPTION_TEXT ${WWW} $(DESC_WWW)
!insertmacro MUI_FUNCTIONS_DESCRIPTION_END
