enderalse/source/scripts/_00e_stopbarddialogueonlocchange.psc

48 lines
1.5 KiB
Plaintext

Scriptname _00E_StopBardDialogueOnLocChange extends ReferenceAlias
LocationAlias Property Location_Alias Auto
Location Property _00E_DunehomeInteriorLocation Auto
Location Property _00E_FlusshaimTaverneLocation Auto
Location Property _00E_SuntempleQuarters Auto
Location Property _00E_UEEntr_FalseDog_Location Auto
Location Property BauernkuesteRoterOchseLocation Auto
Location Property CapitalCityTheFatLeoranLocation Auto
Location Property SchneefelstaverneInteriorLocation Auto
Quest Property BardAudience Auto
Event OnLocationChange(Location akOldLoc, Location akNewLoc)
If Location_Alias ; Try the new way first
Location bardLoc = Location_Alias.GetLocation()
If bardLoc
If akNewLoc != bardLoc
TerminateParentQuest()
EndIf
Return
EndIf
EndIf
If akNewLoc != akOldLoc ; Old way, mostly for version compatibility
If akOldLoc == _00E_FlusshaimTaverneLocation
TerminateParentQuest()
ElseIf akOldLoc == _00E_UEEntr_FalseDog_Location
TerminateParentQuest()
ElseIf akOldLoc == _00E_DunehomeInteriorLocation
TerminateParentQuest()
ElseIf akOldLoc == CapitalCityTheFatLeoranLocation
TerminateParentQuest()
ElseIf akOldLoc == BauernkuesteRoterOchseLocation
TerminateParentQuest()
ElseIf akOldLoc == _00E_SuntempleQuarters
TerminateParentQuest()
ElseIf akOldLoc == SchneefelstaverneInteriorLocation
TerminateParentQuest()
EndIf
EndIf
EndEvent
Function TerminateParentQuest()
GetOwningQuest().Stop()
BardAudience.Stop()
EndFunction