enderalse/source/scripts/_00E_Func_SafeMove.psc

42 lines
1.6 KiB
Plaintext

Scriptname _00E_Func_SafeMove Hidden
Function SafeMoveTo(ObjectReference refToMove, ObjectReference targetRef, Bool bFadeIn = False) Global
; A safer way to move an object reference to another ref than just MoveTo.
; Mostly for actors to take their intended positions.
; It's better for the actor to be already running a package that moves them to targetRef at the moment this function is called.
refToMove.Disable()
refToMove.MoveTo(targetRef)
refToMove.Enable(bFadeIn)
EndFunction
Function SafeMoveTo_NoWait(ObjectReference refToMove, ObjectReference targetRef, Bool bFadeIn = False) Global
; A safer way to move an object reference to another ref than just MoveTo (without waiting for it to be fully enabled).
; Mostly for actors to take their intended positions.
; It's better for the actor to be already running a package that moves them to targetRef at the moment this function is called.
refToMove.Disable()
refToMove.MoveTo(targetRef)
refToMove.EnableNoWait(bFadeIn)
EndFunction
Bool Function DistanceFailsafeMoveTo(ObjectReference refToMove, ObjectReference targetRef, Float fTooFarDistance) Global
; Moves refToMove to targetRef if refToMove is not within fTooFarDistance from targetRef.
; Mostly for character travel failsafes in scenes.
; Debug.Trace("FailsafeMoveTo: refToMove = " + refToMove + "; d = " + refToMove.GetDistance(targetRef))
If refToMove.GetDistance(targetRef) >= fTooFarDistance
refToMove.MoveTo(targetRef)
; Debug.Trace("FailsafeMoveTo: refToMove = " + refToMove + " force-moved to marker")
Return True
Else
Return False
EndIf
EndFunction