Initial commit version 0.1.0
This commit is contained in:
25
ResultScripts/RYBQuestStage10DragAtan2.psc
Normal file
25
ResultScripts/RYBQuestStage10DragAtan2.psc
Normal file
@@ -0,0 +1,25 @@
|
||||
; RYB Stage 10 DragTargetAngle atan2
|
||||
|
||||
; atan2 approximation in radians from https://math.stackexchange.com/a/1105038
|
||||
if (RYB.dXAbs >= RYB.dYAbs)
|
||||
set RYB.a to RYB.dYAbs / RYB.dXAbs
|
||||
else
|
||||
set RYB.a to RYB.dXAbs / RYB.dYAbs
|
||||
endif
|
||||
set RYB.s to RYB.a * RYB.a
|
||||
set RYB.r to ((-0.0464964749 * RYB.s + 0.15931422) * RYB.s - 0.327622764) * RYB.s * RYB.a + RYB.a
|
||||
if (RYB.dYAbs > RYB.dXAbs)
|
||||
set RYB.r to RYB.halfPi - RYB.r
|
||||
endif
|
||||
if (RYB.dX < 0)
|
||||
set RYB.r to RYB.pi - RYB.r
|
||||
endif
|
||||
if (RYB.dY < 0)
|
||||
set RYB.r to -RYB.r
|
||||
endif
|
||||
set RYB.DragTargetAngle to RYB.r * RYB.radToDeg ; radians→deg
|
||||
; convert mathematical angle → Oblivion heading: heading = (90 – angle) mod 360
|
||||
set RYB.DragTargetAngle to 90.0 - RYB.DragTargetAngle
|
||||
if (RYB.DragTargetAngle < 0)
|
||||
set RYB.DragTargetAngle to RYB.DragTargetAngle + 360
|
||||
endif
|
||||
Reference in New Issue
Block a user