Files
gtav-src/script/dev_ng/Code/camera_test.sc
T
2025-09-29 00:52:08 +02:00

2110 lines
80 KiB
Python
Executable File

// Do nothing in release mode
#IF IS_FINAL_BUILD
SCRIPT
ENDSCRIPT
#ENDIF
// Only include in debug mode
#IF IS_DEBUG_BUILD
USING "test_tools.sch"
USING "commands_task.sch"
USING "script_player.sch"
USING "script_DEBUG.sch"
USING "commands_script.sch"
USING "commands_entity.sch"
USING "commands_ped.sch"
//Level
STRING XMLMenu = "Testbed/TestCamMenu"
VECTOR gvMapOffset //offset all coords from the origin by the psoition of the mapin world coords
//Ped Vars
CONST_INT MAX_NUMBER_OF_PEDS 10
peds_struct TestPeds [MAX_NUMBER_OF_PEDS]
//Vehicle Vars
CONST_INT MAX_NUMBER_OF_VEHICLES 10
vehicle_struct TestVehicles[MAX_NUMBER_OF_VEHICLES]
//Route Vars
CONST_INT MAX_NUMBER_OF_NODES 7
RouteStruct Route[MAX_NUMBER_OF_NODES]
//Cam Vars
//Camera Vars
CONST_INT FixedCamera 0
CONST_INT TrackingCamera 1
CONST_INT MAX_NUMBER_OF_CAMS 10
CONST_INT MAX_NUMBER_OF_CAMeraS 2
CAMERA_INDEX NewTestCams[MAX_NUMBER_OF_CAMS]
StCameraData TestCams[MAX_NUMBER_OF_CAMS]
//Sequence
//global cam vars
int gTargetCam = 0
bool gbCamState = true
bool gSetCamState = false
bool gGetCamState = false
bool gCamRendering = FALSE
vector gCamPos
Vector gCamRot
float gCamFov = 1.0
bool gCamAffectsAiming = TRUE
int gZoomLevel = 0
int gViewModeContext = 0
//Attach
bool gAttach_ped = FALSE
bool gAttach_vehicle = FALSE
bool gAttach_object = FALSE
bool gDettach = FALSE
bool gRelative = TRUE
int gAttach_PedBoneTag = -1
Vector gAttachOffset = <<0.0, - 1.0, 1.0 >>
//point
bool gPoint_ped = FALSE
bool gPoint_vehicle = FALSE
bool gPoint_object = FALSE
bool gStopPoint = FALSE
bool gStopPointNow = FALSE
bool gPointRelative = TRUE
bool gsetCamPos = FALSE
int gPoint_PedBoneTag = -1
Vector gPointOffset = <<0.0, 0.0, 0.0 >>
vector test_Cam_pos
int gInterpTime = 0
//Shake
float gAmplitude =1.0
BOOL gbStockShake = FALSE
BOOL gShouldShakeScriptGlobal = FALSE
//Shake
float gAnimationStartPhase = 0.0
BOOL gbHasStartedAnimatedCamera = FALSE
BOOL gbHasFinishedAnimatedCamera = FALSE
//fade
bool bDoSCreenFadeOut = FALSE
bool bDoSCreenFadeIn = FALSE
bool isScreenFadedin, isScreenFadedOut, IsScreenFadingIn, IsScreenFadingOut
int gDuration
//Gameplay
Bool gCamVisiblePoint, gpointcoord, gbFollowNearestPed = FALSE, gShouldOverrideFollowPedCamera = FALSE, gShouldOverrideFollowVehicleCamera = FALSE, gShouldIgnoreAttachParentMovementForFollowCamera = FALSE, gShouldApplyZoomFactor = FALSE, gShouldQueryZoomFactor = FALSE, g_ShouldDisableAimCameras = FALSE, gShouldOverrideFirstPersonAimCameraZoomLimits = FALSE, gShouldOverrideFirstPersonAimCameraOrientationLimits = FALSE
BOOL gShouldOverrideFollowVehicleCameraHighAngleMode = FALSE, gOverriddenFollowVehicleCameraHighAngleMode = FALSE
float gGameplayHeading
float gGameplayPitch, gGameplayPitchSmoothRate = 1.0
float gMinRelativeHeading = -180.0, gMaxRelativeHeading = 180.0, gMinRelativePitch = -90.0, gMaxRelativePitch = 90.0
float gMinZoomFactor = 1.0, gMaxZoomFactor = 20.0
int gNumFramesAiming = 0
TEXT_WIDGET_ID gOverriddenFollowPedCameraTextWidgetId, gOverriddenFollowVehicleCameraTextWidgetId
STRING gOverriddenFollowPedCameraName = "DEFAULT_FOLLOW_PED_CAMERA", gOverriddenFollowVehicleCameraName = "DEFAULT_FOLLOW_VEHICLE_CAMERA"
int gOverriddenFollowPedCameraInterpDuration = DEFAULT_PED_CAM_INTERP_TIME, gOverriddenFollowVehicleCameraInterpDuration = DEFAULT_VEHICLE_CAM_INTERP_TIME
float gZoomFactor = 1.0
//ThirdPerson Limits
BOOL g_b3rdHeadingLimit = FALSE
BOOL g_b3rdPitchLimit = FALSE
BOOL g_b3rdDistanceLimit = FALSE
FLOAT g_f3rdMinHeading = -30.0
FLOAT g_f3rdMaxHeading = 30.0
FLOAT g_f3rdMinPitch = -10.0
FLOAT g_f3rdMaxPitch = 10.0
FLOAT g_f3rdMinDistance = 4.0
FLOAT g_f3rdMaxDistance = 5.0
//Debug
BOOL gbDebugCamActiveState = FALSE
BOOL gbShouldIgnoreDebugPadCameraToggle = FALSE
//spline
bool gbSetSplinePhase = FALSE
float gfSplinePhase = 0.0
//dof
float NearDof = 15.0
float FarDof = 15.75
float DofStrength = 1.0
BOOL gShouldUseShallowDof = TRUE
BOOL gShouldSetAllDofPlanes = FALSE
//adaptive DOF
FLOAT g_AdaptiveDofOverriddenFocusDistance = 16.5
FLOAT g_AdaptiveDofOverriddenFocusDistanceBlendLevel = 1.0
FLOAT g_AdaptiveDofFocusDistanceGridScalingX = 0.667
FLOAT g_AdaptiveDofFocusDistanceGridScalingY = 0.667
FLOAT g_AdaptiveDofSubjectMagnificationPowerFactorNear = 1.0
FLOAT g_AdaptiveDofSubjectMagnificationPowerFactorFar = 0.866
FLOAT g_AdaptiveDofMaxPixelDepth = 90.0
FLOAT g_AdaptiveDofPixelDepthPowerFactor = 1.0
FLOAT g_AdaptiveDofFNumberOfLens = 8.0
FLOAT g_AdaptiveDofFocalLengthMultiplier = 1.0
FLOAT g_AdaptiveDofFocusDistanceBias = 0.0
FLOAT g_AdaptiveDofMaxNearInFocusDistance = 0.5
FLOAT g_AdaptiveDofMaxNearInFocusDistanceBlendLevel = 1.0
FLOAT g_AdaptiveDofMaxBlurRadiusAtNearInFocusLimit = 1.0
FLOAT g_AdaptiveDofFocusDistanceIncreaseSpringConstant = 100.0
FLOAT g_AdaptiveDofFocusDistanceDecreaseSpringConstant = 300.0
BOOL g_AdaptiveDofShouldFocusOnLookAtTarget = TRUE
BOOL g_AdaptiveDofShouldFocusOnAttachParent = FALSE
BOOL g_AdaptiveDofShouldKeepLookAtTargetInFocus = FALSE
BOOL g_AdaptiveDofShouldKeepAttachParentInFocus = FALSE
BOOL g_AdaptiveDofShouldMeasurePostAlphaPixelDepth = FALSE
//Misc
PED_INDEX gFocusPedIndex = NULL
FLOAT gFocusPedMaxDistanceFromCamera = 30.0
INT gFocusPedScreenPositionTestBoneTag = ENUM_TO_INT(BONETAG_HEAD)
FLOAT gFocusPedMaxScreenWidthRatioAroundCentreForTestBone = 0.8
FLOAT gFocusPedMaxScreenHeightRatioAroundCentreForTestBone = 0.7
FLOAT gFocusPedMinRelativeHeadingScore = 0.0
FLOAT gFocusPedMaxScreenCentreScoreBoost = 8.0
FLOAT gFocusPedMaxScreenRatioAroundCentreForScoreBoost = 0.333
INT gFocusPedLosTestBoneTag1 = ENUM_TO_INT(BONETAG_HEAD)
INT gFocusPedLosTestBoneTag2 = ENUM_TO_INT(BONETAG_SPINE3)
BOOL gbShouldDisableCinematicBonnetCamera = FALSE
//cinematic camera
float pedoneOffset = 1.0
float pedTwoOff = 1.0
float pedThreeOff = 1.0
float pedFourOff = 1.0
bool pedoneTask = TRUE
bool pedTwoTask = TRUE
bool pedThreeTask = FALSE
bool pedFourTask = FALSE
int BikerIndex = 0
Proc CREATE_TEST_WIDGET ()
START_WIDGET_GROUP ("Camera Test")
SETUP_WIDGET ()
ADD_WIDGET_BOOL ("Set Cam State",gSetCamState)
ADD_WIDGET_BOOL ("CamState", gbCamState)
ADD_WIDGET_INT_SLIDER ("Camera index",gTargetCam, 0, 9, 1 )
ADD_WIDGET_BOOL ("is cam rendering ",gCamRendering)
ADD_WIDGET_FLOAT_SLIDER ("CamPos.x" , gCamPos.x, -7000, 7000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamPos.y" , gCamPos.y, -7000, 7000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamPos.z" , gCamPos.z, -7000, 7000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamRot.x" , gCamRot.x, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamRot.y" , gCamRot.y, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamRot.z" , gCamRot.z, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Cam FOV" , gCamFov, 1.0, 100.0, 0.5)
ADD_WIDGET_BOOL ("Should Cam Affect Aiming", gCamAffectsAiming)
START_WIDGET_GROUP("Attach")
ADD_WIDGET_BOOL ("Attach_ped ",gAttach_ped)
ADD_WIDGET_BOOL ("Attach_veh ",gAttach_vehicle)
ADD_WIDGET_BOOL ("Attach_obj ",gAttach_object)
ADD_WIDGET_BOOL ("Dettach ",gDettach)
ADD_WIDGET_BOOL ("Relative ",gRelative)
ADD_WIDGET_FLOAT_SLIDER ("CamPos.x" , gAttachOffset.x, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamPos.y" , gAttachOffset.y, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamPos.z" , gAttachOffset.z, -2000, 2000, 0.5)
ADD_WIDGET_INT_SLIDER ("Attach ped bone tag",gAttach_PedBoneTag, -1, 65535, 1 )
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Point")
ADD_WIDGET_BOOL ("point ",gPoint_ped)
ADD_WIDGET_BOOL ("Point_veh ",gPoint_vehicle)
ADD_WIDGET_BOOL ("Point_obj ",gPoint_object)
ADD_WIDGET_BOOL ("Stop point ",gStopPoint)
ADD_WIDGET_BOOL ("Relative point",gPointRelative)
ADD_WIDGET_BOOL ("Set cam to new pos ",gsetCamPos)
ADD_WIDGET_INT_SLIDER ("interp time to new cam",gInterpTime, 0, 5000, 1 )
ADD_WIDGET_FLOAT_SLIDER ("CamPoint.x" , gPointOffset.x, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamPoint.y" , gPointOffset.y, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamPoint.z" , gPointOffset.z, -2000, 2000, 0.5)
ADD_WIDGET_INT_SLIDER ("Point ped bone tag",gPoint_PedBoneTag, -1, 65535, 1 )
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Shake")
ADD_WIDGET_BOOL ("Shake globally", gShouldShakeScriptGlobal)
ADD_WIDGET_BOOL ("Do stock", gbStockShake)
ADD_WIDGET_FLOAT_SLIDER ("Amplitude" , gAmplitude, -2000, 2000, 0.5)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Animation")
ADD_WIDGET_FLOAT_SLIDER ("Start phase" , gAnimationStartPhase, 0.0, 1.0, 0.1)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Fade")
ADD_WIDGET_BOOL ("Fade in",bDoSCreenFadeIn)
ADD_WIDGET_BOOL ("Fade out",bDoSCreenFadeOut)
ADD_WIDGET_INT_SLIDER ("Fade duration",gDuration, 0, 10000, 1 )
ADD_WIDGET_BOOL ("Is screen fading out",IsScreenFadingOut)
ADD_WIDGET_BOOL ("Is screen fading in",IsScreenFadingIn)
ADD_WIDGET_BOOL ("Is screen faded in",isScreenFadedin)
ADD_WIDGET_BOOL ("Is screen faded out",isScreenFadedOut)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Gameplay")
ADD_WIDGET_BOOL ("Get/display heading and pitch", gGetCamState)
ADD_WIDGET_BOOL ("Set heading and pitch", gSetCamState)
ADD_WIDGET_FLOAT_SLIDER ("Heading" , gGameplayHeading, -180.0, 180.0, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Pitch" , gGameplayPitch, -90.0, 90.0, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Pitch smooth rate" , gGameplayPitchSmoothRate, 0.0, 1.0, 0.1)
ADD_WIDGET_BOOL ("Visible ",gCamVisiblePoint)
ADD_WIDGET_FLOAT_SLIDER ("CamPos.x" , gCamPos.x, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamPos.y" , gCamPos.y, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamPos.z" , gCamPos.z, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamRot.x" , gCamRot.x, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamRot.y" , gCamRot.y, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamRot.z" , gCamRot.z, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Cam FOV" , gCamFov, 1.0, 100.0, 0.5)
ADD_WIDGET_BOOL ("Do stock ",gbStockShake)
ADD_WIDGET_FLOAT_SLIDER ("Amplitude" , gAmplitude, -2000, 2000, 0.5)
ADD_WIDGET_BOOL ("Follow nearest ped to gameplay camera", gbFollowNearestPed)
ADD_WIDGET_BOOL ("Ignore attach parent movement for follow camera", gShouldIgnoreAttachParentMovementForFollowCamera)
ADD_WIDGET_BOOL ("Override follow-ped camera", gShouldOverrideFollowPedCamera)
gOverriddenFollowPedCameraTextWidgetId = ADD_TEXT_WIDGET("Overridden follow-ped camera")
SET_CONTENTS_OF_TEXT_WIDGET(gOverriddenFollowPedCameraTextWidgetId, gOverriddenFollowPedCameraName)
ADD_WIDGET_INT_SLIDER("Follow-ped interp duration", gOverriddenFollowPedCameraInterpDuration, 0, 10000, 100)
ADD_WIDGET_BOOL ("Override follow-vehicle camera", gShouldOverrideFollowVehicleCamera)
gOverriddenFollowVehicleCameraTextWidgetId = ADD_TEXT_WIDGET("Overridden follow-vehicle camera")
SET_CONTENTS_OF_TEXT_WIDGET(gOverriddenFollowVehicleCameraTextWidgetId, gOverriddenFollowVehicleCameraName)
ADD_WIDGET_INT_SLIDER("Follow-vehicle interp duration", gOverriddenFollowVehicleCameraInterpDuration, 0, 10000, 100)
ADD_WIDGET_BOOL ("Override follow-vehicle camera high-angle mode", gShouldOverrideFollowVehicleCameraHighAngleMode)
ADD_WIDGET_BOOL ("Overridden follow-vehicle camera high-angle mode", gOverriddenFollowVehicleCameraHighAngleMode)
ADD_WIDGET_FLOAT_SLIDER ("Zoom factor" , gZoomFactor, 1.0, 20.0, 0.1)
ADD_WIDGET_BOOL ("Apply zoom factor", gShouldApplyZoomFactor)
ADD_WIDGET_BOOL ("Query zoom factor", gShouldQueryZoomFactor)
ADD_WIDGET_BOOL ("Override first-person aim camera zoom limits", gShouldOverrideFirstPersonAimCameraZoomLimits)
ADD_WIDGET_FLOAT_SLIDER ("Min zoom factor" , gMinZoomFactor, 0.0, 20.0, 0.1)
ADD_WIDGET_FLOAT_SLIDER ("Max zoom factor" , gMaxZoomFactor, 0.0, 20.0, 0.1)
ADD_WIDGET_BOOL ("Disable aim cameras", g_ShouldDisableAimCameras)
ADD_WIDGET_BOOL ("Override first-person aim camera orientation limits", gShouldOverrideFirstPersonAimCameraOrientationLimits)
ADD_WIDGET_FLOAT_SLIDER ("Min relative heading" , gMinRelativeHeading, -180.0, 180.0, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Max relative heading" , gMaxRelativeHeading, -180.0, 180.0, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Min relative pitch" , gMinRelativePitch, -90.0, 90.0, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Max relative pitch" , gMaxRelativePitch, -90.0, 90.0, 0.5)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Debug camera")
ADD_WIDGET_BOOL("Active state", gbDebugCamActiveState)
ADD_WIDGET_BOOL("Should ignore debug pad camera toggle", gbShouldIgnoreDebugPadCameraToggle)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Spline camera")
ADD_WIDGET_BOOL("set spline", gbSetSplinePhase)
ADD_WIDGET_FLOAT_SLIDER("New Spline Phase", gfSplinePhase, 0.0, 1.0, 0.1)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("vehicle view mode")
ADD_WIDGET_BOOL ("Set view mode", gbStockShake)
ADD_WIDGET_INT_SLIDER ("context", gViewModeContext, 0, ENUM_TO_INT(NUM_CAM_VIEW_MODE_CONTEXTS) - 1, 1 )
ADD_WIDGET_INT_SLIDER ("view mode", gZoomLevel, 0, ENUM_TO_INT(NUM_CAM_VIEW_MODES) - 1, 1 )
ADD_WIDGET_BOOL ("Disable bonnet camera", gbShouldDisableCinematicBonnetCamera)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("HINT")
ADD_WIDGET_BOOL ("Hint ped ",gPoint_ped)
ADD_WIDGET_BOOL ("Hint vehicle ",gPoint_vehicle)
ADD_WIDGET_BOOL ("hint object ",gPoint_object)
ADD_WIDGET_BOOL ("hint coord ", gpointcoord)
ADD_WIDGET_BOOL ("Stop hint (release)",gStopPoint)
ADD_WIDGET_BOOL ("Stop hint immediately",gStopPointNow)
ADD_WIDGET_BOOL ("hint relative",gPointRelative)
ADD_WIDGET_BOOL ("Stop hint being cancelled", gbStockShake)
ADD_WIDGET_FLOAT_SLIDER ("CamPoint.x" , gPointOffset.x, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamPoint.y" , gPointOffset.y, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("CamPoint.z" , gPointOffset.z, -2000, 2000, 0.5)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("THIRD PERSON LIMITS")
ADD_WIDGET_BOOL ("Enable heading limits ", g_b3rdHeadingLimit)
ADD_WIDGET_FLOAT_SLIDER ("Min Heading Limit" , g_f3rdMinHeading, -360, 360, 1.0)
ADD_WIDGET_FLOAT_SLIDER ("Max Heading Limit" , g_f3rdMaxHeading, -360, 360, 1.0)
ADD_WIDGET_BOOL ("Enable pitch limits ", g_b3rdPitchLimit)
ADD_WIDGET_FLOAT_SLIDER ("Min Pitch Limit" , g_f3rdMinPitch, -360, 360, 1.0)
ADD_WIDGET_FLOAT_SLIDER ("Max Pitch Limit" , g_f3rdMaxPitch, -360, 360, 1.0)
ADD_WIDGET_BOOL ("Enable distance limits ", g_b3rdDistanceLimit)
ADD_WIDGET_FLOAT_SLIDER ("Min Distance Limit" , g_f3rdMinDistance, 0.1, 299, 1.0)
ADD_WIDGET_FLOAT_SLIDER ("Max Distance Limit" , g_f3rdMaxDistance, 0.2, 300, 1.0)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("DOF")
ADD_WIDGET_FLOAT_SLIDER ("Near DOF", NearDof, 0.0, 100.0, 1.0)
ADD_WIDGET_FLOAT_SLIDER ("Far DOF" , FarDof, 0.0, 100.0, 1.0)
ADD_WIDGET_FLOAT_SLIDER ("DOF Strength" , DofStrength, 0.0, 1.0, 0.01)
ADD_WIDGET_BOOL("Use Shallow DOF", gShouldUseShallowDof)
ADD_WIDGET_BOOL("Set all DOF planes", gShouldSetAllDofPlanes)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Adaptive DOF")
ADD_WIDGET_FLOAT_SLIDER ("OverriddenFocusDistance", g_AdaptiveDofOverriddenFocusDistance, 0.0, 99999.0, 0.001)
ADD_WIDGET_FLOAT_SLIDER ("OverriddenFocusDistanceBlendLevel", g_AdaptiveDofOverriddenFocusDistanceBlendLevel, 0.0, 1.0, 0.001)
ADD_WIDGET_FLOAT_SLIDER ("FocusDistanceGridScalingX", g_AdaptiveDofFocusDistanceGridScalingX, 0.0, 1.0, 0.001)
ADD_WIDGET_FLOAT_SLIDER ("FocusDistanceGridScalingY" , g_AdaptiveDofFocusDistanceGridScalingY, 0.0, 1.0, 0.001)
ADD_WIDGET_FLOAT_SLIDER ("SubjectMagnificationPowerFactorNear", g_AdaptiveDofSubjectMagnificationPowerFactorNear, 0.0, 1.0, 0.001)
ADD_WIDGET_FLOAT_SLIDER ("SubjectMagnificationPowerFactorFar" , g_AdaptiveDofSubjectMagnificationPowerFactorFar, 0.0, 1.0, 0.001)
ADD_WIDGET_FLOAT_SLIDER ("MaxPixelDepth" , g_AdaptiveDofMaxPixelDepth, 0.0, 99999.0, 0.1)
ADD_WIDGET_FLOAT_SLIDER ("PixelDepthPowerFactor" , g_AdaptiveDofPixelDepthPowerFactor, 0.0, 1.0, 0.001)
ADD_WIDGET_FLOAT_SLIDER ("FNumberOfLens" , g_AdaptiveDofFNumberOfLens, 0.5, 256.0, 0.01)
ADD_WIDGET_FLOAT_SLIDER ("FocalLengthMultiplier" , g_AdaptiveDofFocalLengthMultiplier, 0.1, 10.0, 0.01)
ADD_WIDGET_FLOAT_SLIDER ("FocusDistanceBias" , g_AdaptiveDofFocusDistanceBias, -100.0, 100.0, 0.001)
ADD_WIDGET_FLOAT_SLIDER ("MaxNearInFocusDistance" , g_AdaptiveDofMaxNearInFocusDistance, 0.0, 99999.0, 0.01)
ADD_WIDGET_FLOAT_SLIDER ("MaxNearInFocusDistanceBlendLevel", g_AdaptiveDofMaxNearInFocusDistanceBlendLevel, 0.0, 1.0, 0.001)
ADD_WIDGET_FLOAT_SLIDER ("MaxBlurRadiusAtNearInFocusLimit", g_AdaptiveDofMaxBlurRadiusAtNearInFocusLimit, 0.0, 30.0, 0.01)
ADD_WIDGET_FLOAT_SLIDER ("FocusDistanceIncreaseSpringConstant", g_AdaptiveDofFocusDistanceIncreaseSpringConstant, 0.0, 1000.0, 0.01)
ADD_WIDGET_FLOAT_SLIDER ("FocusDistanceDecreaseSpringConstant", g_AdaptiveDofFocusDistanceDecreaseSpringConstant, 0.0, 1000.0, 0.01)
ADD_WIDGET_BOOL("ShouldFocusOnLookAtTarget", g_AdaptiveDofShouldFocusOnLookAtTarget)
ADD_WIDGET_BOOL("ShouldFocusOnAttachParent", g_AdaptiveDofShouldFocusOnAttachParent)
ADD_WIDGET_BOOL("ShouldKeepLookAtTargetInFocus", g_AdaptiveDofShouldKeepLookAtTargetInFocus)
ADD_WIDGET_BOOL("ShouldKeepAttachParentInFocus", g_AdaptiveDofShouldKeepAttachParentInFocus)
ADD_WIDGET_BOOL("ShouldMeasurePostAlphaPixelDepth", g_AdaptiveDofShouldMeasurePostAlphaPixelDepth)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Focus ped")
ADD_WIDGET_FLOAT_SLIDER ("MaxDistanceFromCamera", gFocusPedMaxDistanceFromCamera, 0.0, 100.0, 1.0)
ADD_WIDGET_INT_SLIDER ("ScreenPositionTestBoneTag", gFocusPedScreenPositionTestBoneTag, -1, 64729, 1)
ADD_WIDGET_FLOAT_SLIDER ("MaxScreenWidthRatioAroundCentreForHead", gFocusPedMaxScreenWidthRatioAroundCentreForTestBone, 0.0, 1.0, 0.01)
ADD_WIDGET_FLOAT_SLIDER ("MaxScreenHeightRatioAroundCentreForHead", gFocusPedMaxScreenHeightRatioAroundCentreForTestBone, 0.0, 1.0, 0.01)
ADD_WIDGET_FLOAT_SLIDER ("MinRelativeHeadingScore" , gFocusPedMinRelativeHeadingScore, 0.0, 1.0, 0.01)
ADD_WIDGET_FLOAT_SLIDER ("MaxScreenCentreScoreBoost" , gFocusPedMaxScreenCentreScoreBoost, 0.0, 100.0, 0.1)
ADD_WIDGET_FLOAT_SLIDER ("MaxScreenRatioAroundCentreForScoreBoost" , gFocusPedMaxScreenRatioAroundCentreForScoreBoost, 0.0, 1.0, 0.01)
ADD_WIDGET_INT_SLIDER ("LosTestBoneTag1", gFocusPedLosTestBoneTag1, -1, 64729, 1)
ADD_WIDGET_INT_SLIDER ("LosTestBoneTag2", gFocusPedLosTestBoneTag2, -1, 64729, 1)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Biker peds")
ADD_WIDGET_FLOAT_SLIDER ("Ped 1 offset" , pedoneOffset, 1.0, 10.0, 1.0)
ADD_WIDGET_BOOL("Give Ped 1 Task", pedoneTask)
ADD_WIDGET_FLOAT_SLIDER ("Ped 2 offset" , pedTwoOff, 1.0, 10.0, 1.0)
ADD_WIDGET_BOOL("Give Ped 2 Task", pedTwoTask)
ADD_WIDGET_FLOAT_SLIDER ("Ped 3 offset" , pedThreeOff, 1.0, 10.0, 1.0)
ADD_WIDGET_BOOL("Give Ped 3 Task", pedThreeTask)
ADD_WIDGET_FLOAT_SLIDER ("Ped 4 offset" , pedFourOff, 1.0, 10.0, 1.0)
ADD_WIDGET_BOOL("Give Ped 4 Task", pedFourTask)
STOP_WIDGET_GROUP()
STOP_WIDGET_GROUP ()
ENDPROC
PROC Cleanup_Scenario_Entities ()
int index = 0
for index = 0 to MAX_NUMBER_OF_PEDS -1
CLEAN_UP_PED_ENTITIES (TestPeds[index].ped)
ENDFOR
for index = 0 to MAX_NUMBER_OF_VEHICLES -1
CLEAN_UP_VEHICLE_ENTITIES (TestVehicles[index].Vehicle )
ENDFOR
RENDER_SCRIPT_CAMS (FALSE, FALSE)
for index = 0 to MAX_NUMBER_OF_CAMS-1
if DOES_CAM_EXIST (NewTestCams[index])
DESTROY_CAM (NewTestCams[index])
DESTROY_CAM(TestCams[index].cam)
ENDIF
ENDFOR
Set_Gang_Relationships (FALSE)
ENDPROC
PROC GET_CAM_PARAMS (CAMERA_INDEX cam)
gCamPos = GET_CAM_COORD(cam )
gCamRot = GET_CAM_ROT (cam)
gCamFov = GET_CAM_FOV (cam)
ENDPROC
ENUM ScenarioActivateDeactivateCamera_Flags
ScenarioActivateDeactivateCamera_Init,
ScenarioActivateDeactivateCamera_SwitchBetweenCams
ENDENUM
ScenarioActivateDeactivateCamera_Flags ScenarioActivateDeactivateCamera_Status = ScenarioActivateDeactivateCamera_Init
ENUM ScenarioCreateFixedCam_Flags
ScenarioCreateFixedCam_Init
ENDENUM
ScenarioCreateFixedCam_Flags ScenarioCreateFixedCam_Status = ScenarioCreateFixedCam_Init
ENUM ScenarioAttachCameras_Flags
ScenarioAttachCameras_Init,
ScenarioAttachCameras_Run
ENDENUM
ScenarioAttachCameras_Flags ScenarioAttachCameras_Status = ScenarioAttachCameras_Init
ENUM ScenarioPointCameras_Flags
ScenarioPointCamera_Init,
ScenarioPointCamera_Run
ENDENUM
ScenarioPointCameras_Flags ScenarioPointCamera_Status = ScenarioPointCamera_Init
ENUM ScenarioShakeCam_Flags
ScenarioShakeCam_Init,
ScenarioShakeCam_Run
ENDENUM
ScenarioShakeCam_Flags ScenarioShakeCam_Status = ScenarioShakeCam_Init
ENUM ScenarioSimpleInterp_Flags
ScenarioSimpleInterp_Init,
ScenarioCreateFixedCam_Run
ENDENUM
ScenarioSimpleInterp_Flags ScenarioSimpleInterp_Status = ScenarioSimpleInterp_Init
ENUM ScenarioCinematicDriveby_Flags
ScenarioCinematicDriveby_Init,
ScenarioCinematicDriveby_Run
ENDENUM
ScenarioCinematicDriveby_Flags ScenarioCinematicDriveby_Status = ScenarioCinematicDriveby_Init
ENUM ScenarioSceneTransition_Flags
ScenarioSceneTransition_Init,
ScenarioSceneTransition_WaitToFinish
ENDENUM
ScenarioSceneTransition_Flags ScenarioSceneTransition_Status = ScenarioSceneTransition_Init
ENUM ScenarioCameraFocusPed_Flags
ScenarioCameraFocusPed_Init,
ScenarioCameraFocusPed_WaitToFinish
ENDENUM
ScenarioCameraFocusPed_Flags ScenarioCameraFocusPed_Status = ScenarioCameraFocusPed_Init
ENUM ScenarioSplineCams_Flags
ScenarioSplineCams_Init,
ScenarioSplineCams_Run
ENDENUM
ScenarioSplineCams_Flags ScenarioSplineCams_Status = ScenarioSplineCams_Init
ENUM ScenarioDofTest_Flags
ScenarioDofTest_Init,
ScenarioDofTest_Run
ENDENUM
ScenarioDofTest_Flags ScenarioDofTest_Status = ScenarioDofTest_Init
ENUM ScenarioAdaptiveDofTest_Flags
ScenarioAdaptiveDofTest_Init,
ScenarioAdaptiveDofTest_Run
ENDENUM
ScenarioAdaptiveDofTest_Flags ScenarioAdaptiveDofTest_Status = ScenarioAdaptiveDofTest_Init
ENUM ScenarioInterpToAndFromGameCam_Flags
ScenarioInterpToAndFromGameCam_Init,
ScenarioInterpToAndFromGameCam_InterpToScript,
ScenarioInterpToAndFromGameCam_InterpFromScript
ENDENUM
ScenarioInterpToAndFromGameCam_Flags ScenarioInterpToAndFromGameCam_Status = ScenarioInterpToAndFromGameCam_Init
ENUM ScenarioInterpToAndFromGameCamCatchUp_Flags
ScenarioInterpToAndFromGameCamCatchUp_Init,
ScenarioInterpToAndFromGameCamCatchUp_InterpToScript
ENDENUM
ScenarioInterpToAndFromGameCamCatchUp_Flags ScenarioInterpToAndFromGameCamCatchUp_Status = ScenarioInterpToAndFromGameCamCatchUp_Init
ENUM ScenarioThirdPersonScriptLimits_Flags
ScenarioThirdPersonScriptLimits_Run
ENDENUM
ScenarioThirdPersonScriptLimits_Flags ScenarioThirdPersonScriptLimits_Status = ScenarioThirdPersonScriptLimits_Run
ENUM ScenarioScriptedFlyCamera_Flags
ScenarioScriptedFlyCamera_Init,
ScenarioScriptedFlyCamera_WaitToFinish
ENDENUM
ScenarioScriptedFlyCamera_Flags ScenarioScriptedFlyCamera_Status = ScenarioScriptedFlyCamera_Init
PROC INITALISE_TEST_STATE()
SingleTaskStatus = startSingleTask
ScenarioActivateDeactivateCamera_Status = ScenarioActivateDeactivateCamera_Init
ScenarioCreateFixedCam_Status = ScenarioCreateFixedCam_Init
ScenarioAttachCameras_Status = ScenarioAttachCameras_Init
ScenarioPointCamera_Status = ScenarioPointCamera_Init
ScenarioShakeCam_Status = ScenarioShakeCam_Init
ScenarioSimpleInterp_Status = ScenarioSimpleInterp_Init
ScenarioCinematicDriveby_Status = ScenarioCinematicDriveby_Init
ScenarioSceneTransition_Status = ScenarioSceneTransition_Init
ScenarioCameraFocusPed_Status = ScenarioCameraFocusPed_Init
ScenarioSplineCams_Status = ScenarioSplineCams_Init
ScenarioDofTest_Status = ScenarioDofTest_Init
ScenarioAdaptiveDofTest_Status = ScenarioAdaptiveDofTest_Init
ScenarioInterpToAndFromGameCam_Status = ScenarioInterpToAndFromGameCam_Init
ScenarioScriptedFlyCamera_Status = ScenarioScriptedFlyCamera_Init
ScenarioInterpToAndFromGameCamCatchUp_Status = ScenarioInterpToAndFromGameCamCatchUp_Init
gbHasStartedAnimatedCamera = FALSE
gbHasFinishedAnimatedCamera = FALSE
ENDPROC
ENUM Scenarios
ScenarioActivateDeactivateCamera,
ScenarioCreateFixedCam,
ScenarioAttachCam,
ScenarioPointCam,
ScenarioSplineCams,
ScenarioInterpCams,
ScenarioShakeCam,
ScenarioAnimateCam,
ScenarioFadeCam,
ScenarioGameplayCamera,
ScenarioDebugCamera,
ScenarioPedZoom,
ScenarioVehicleZoom,
ScenarioHintCam,
ScenarioSimpleInterp,
ScenarioCinematicDriveby = 15,
ScenarioSceneTransition = 16,
ScenarioDofTest = 17,
ScenarioInterpToAndFromGameCam = 18,
TimedSplineTest = 19,
RoundedSplineTest = 20,
SmoothedSplineTest = 21,
SplineLookAtSpline = 22,
ScenarioCameraFocusPed = 23,
ScenarioScriptedFlyCamera = 24,
ScenarioVehicleFormationCamera = 25,
ScenarioHeliFallout = 26,
ScenarioInterpToAndFromGameCamCatchUp = 27,
ScenarioThirdPersonScriptLimits = 28,
ScenarioAdaptiveDofTest = 29,
DefaultTest = 1000
ENDENUM
Proc SETUP_TEST_DATA ()
SWITCH int_to_enum (scenarios, gcurrentselection)
CASE ScenarioActivateDeactivateCamera
CASE ScenarioCreateFixedCam
TestPeds[0].PedsCoords = << -2.4167, -1.4273, 1.1959>> + gvMapOffset
TestPeds[0].PedHeading = 359.6439
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[0].PedcombatMove = 2
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = FALSE
BREAK
CASE ScenarioAttachCam
CASE ScenarioPointCam
CASE ScenarioHintCam
TestPeds[0].PedsCoords = << -2.4167, -1.4273, 1.1959>> + gvMapOffset
TestPeds[0].PedHeading = 359.6439
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[0].PedcombatMove = 2
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = FALSE
TestVehicles [0 ].vehicleCoords = << -0.0012, 10.0009, 1.9393>> + gvMapOffset
TestVehicles [0 ].vehicleHeading = 90.0001
TestVehicles [0 ].vehiclemodel = FBI
BREAK
CASE ScenarioGameplayCamera
CASE ScenarioDebugCamera
CASE ScenarioVehicleZoom
TestVehicles [0 ].vehicleCoords = << -0.0012, 10.0009, 1.9393>> + gvMapOffset
TestVehicles [0 ].vehicleHeading = 90.0001
TestVehicles [0 ].vehiclemodel = FBI
BREAK
CASE ScenarioCinematicDriveby
TestVehicles [0 ].vehicleCoords = << -0.0012, 10.0009, 1.9393>> + gvMapOffset
TestVehicles [0 ].vehicleHeading = 90.0001
TestVehicles [0 ].vehiclemodel = FBI
BREAK
CASE ScenarioSceneTransition
BREAK
CASE ScenarioCameraFocusPed
BREAK
CASE ScenarioScriptedFlyCamera
BREAK
CASE ScenarioDofTest
TestPeds[0].PedsCoords = << -2.58706617, -1.31549120, 7.35537958>>
TestPeds[0].PedHeading = 180.6439
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[0].PedcombatMove = 2
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = FALSE
TestPeds[1].PedsCoords = << -2.24279618, -2.53976870, 7.35537958>>
TestPeds[1].PedHeading = 359.6439
TestPeds[1].Pedrelgrp = 1
TestPeds[1].PedModel = S_F_Y_Cop_01
TestPeds[1].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[1].PedcombatMove = 2
TestPeds[1].pedcombatrange = 2
TestPeds[1].combatcover = CA_USE_COVER
TestPeds[1].bcombatcover = FALSE
BREAK
CASE ScenarioAdaptiveDofTest
TestPeds[0].PedsCoords = << -2.58706617, -1.31549120, 7.35537958>>
TestPeds[0].PedHeading = 180.6439
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[0].PedcombatMove = 2
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = FALSE
TestPeds[1].PedsCoords = << -2.24279618, -2.53976870, 7.35537958>>
TestPeds[1].PedHeading = 359.6439
TestPeds[1].Pedrelgrp = 1
TestPeds[1].PedModel = S_F_Y_Cop_01
TestPeds[1].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[1].PedcombatMove = 2
TestPeds[1].pedcombatrange = 2
TestPeds[1].combatcover = CA_USE_COVER
TestPeds[1].bcombatcover = FALSE
BREAK
case ScenarioHeliFallout
TestPeds[0].PedsCoords = << 6.5, 96, 8>>
TestPeds[0].PedHeading = 180.6439
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_M_BOUNCER_01
TestVehicles [0 ].vehicleCoords = << 0, 95, 9>>
TestVehicles [0 ].vehicleHeading = 90.0001
TestVehicles [0 ].vehiclemodel = FROGGER
break
case ScenarioVehicleFormationCamera
TestPeds[0].PedsCoords = << 357.74, -1064.44, 28.38>>
TestPeds[0].PedHeading = 180.6439
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_M_BOUNCER_01
TestPeds[1].PedsCoords = << 352.70, -1064.45, 28.42>>
TestPeds[1].PedHeading = 180.6439
TestPeds[1].Pedrelgrp = 1
TestPeds[1].PedModel = S_M_M_BOUNCER_01
TestPeds[2].PedsCoords = << 352.72, -1065.59, 28.43>>
TestPeds[2].PedHeading = 180.6439
TestPeds[2].Pedrelgrp = 1
TestPeds[2].PedModel = S_M_M_BOUNCER_01
TestPeds[3].PedsCoords = << 351.11, -1065.56, 28.44>>
TestPeds[3].PedHeading = 180.6439
TestPeds[3].Pedrelgrp = 1
TestPeds[3].PedModel = S_M_M_BOUNCER_01
TestVehicles [0 ].vehicleCoords = << 349.17, -1063.38, 28.41>>
TestVehicles [0 ].vehicleHeading = 90.0001
TestVehicles [0 ].vehiclemodel = DAEMON
TestVehicles [1].vehicleCoords = << 349.09, -1065.31, 28.42>>
TestVehicles [1].vehicleHeading = 90.0001
TestVehicles [1].vehiclemodel = DAEMON
TestVehicles [2].vehicleCoords = << 346.91, -1063.46, 28.39>>
TestVehicles [2].vehicleHeading = 90.0001
TestVehicles [2].vehiclemodel = DAEMON
TestVehicles [3].vehicleCoords = << 346.82, -1065.57, 28.41>>
TestVehicles [3].vehicleHeading = 90.0001
TestVehicles [3].vehiclemodel = DAEMON
TestVehicles [4].vehicleCoords = <<346.83, -1067.12, 28.57>>
TestVehicles [4].vehicleHeading = 90.0001
TestVehicles [4].vehiclemodel = DAEMON
BREAK
ENDSWITCH
ENDPROC
VECTOR vStart
PROC RUN_TEST ()
SWITCH int_to_enum (scenarios, gcurrentselection) // the ENUM corresponds to the values from the XML file
CASE ScenarioActivateDeactivateCamera
SWITCH ScenarioActivateDeactivateCamera_Status
CASE ScenarioActivateDeactivateCamera_Init
NewTestCams[0] = CREATE_CAM_WITH_PARAMS ("DEFAULT_SCRIPTED_CAMERA", << 1.20, -5.93, 5.26>>+ gvMapOffset, <<-19, 0, 0>> )
NewTestCams[1] = CREATE_CAM_WITH_PARAMS ("DEFAULT_SCRIPTED_CAMERA", << -7.20, 6.93, 6.9>>+ gvMapOffset, <<-28, 0, -116.0>> )
NewTestCams[2] = CREATE_CAM_WITH_PARAMS ("DEFAULT_SCRIPTED_CAMERA", << 9.20, 9.93, 6.15>>+ gvMapOffset, <<-28, 0, 129.0>> )
PRINTSTRING ("ScenarioActivateDeactivateCamera")
SET_CAM_ACTIVE (NewTestCams[0], TRUE )
RENDER_SCRIPT_CAMS (TRUE, FALSE)
wait (0)
PRINTSTRING ("ScenarioActivateDeactivateCamera")
IF DOES_CAM_EXIST (NewTestCams[5])
SET_CAM_ACTIVE (NewTestCams[5], TRUE )
ENDIF
ScenarioActivateDeactivateCamera_Status = ScenarioActivateDeactivateCamera_SwitchBetweenCams
BREAK
CASE ScenarioActivateDeactivateCamera_SwitchBetweenCams
if (gSetCamState)
IF DOES_CAM_EXIST (NewTestCams[gTargetCam])
SET_CAM_ACTIVE (NewTestCams[gTargetCam], gbCamState)
ENDIF
gSetCamState = FALSE
ENDIF
IF DOES_CAM_EXIST (NewTestCams[gTargetCam])
gCamRendering = IS_CAM_RENDERING (NewTestCams[gTargetCam])
ENDIF
BREAK
ENDSWITCH
BREAK
CASE ScenarioCreateFixedCam
SWITCH ScenarioCreateFixedCam_Status
CASE ScenarioCreateFixedCam_Init
NewTestCams[0] = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA")
SET_CAM_COORD (NewTestCams[0] , << 1.20, -5.93, 5.26>>+ gvMapOffset )
SET_CAM_ROT (NewTestCams[0] , <<-19, 0, 0>> )
SET_CAM_ACTIVE (NewTestCams[0], TRUE )
SET_CAM_AFFECTS_AIMING(NewTestCams[0], gCamAffectsAiming)
RENDER_SCRIPT_CAMS (TRUE, FALSE)
IF DOES_CAM_EXIST (NewTestCams[5])
SET_CAM_ACTIVE (NewTestCams[5], TRUE )
SET_CAM_AFFECTS_AIMING(NewTestCams[5], gCamAffectsAiming)
ENDIF
Set_Test_State_To_Default()
BREAK
ENDSWITCH
BREAK
CASE ScenarioDofTest
SWITCH ScenarioDofTest_Status
CASE ScenarioDofTest_Init
NewTestCams[0] = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA")
SET_CAM_PARAMS(NewTestCams[0],<<8.504449,-13.629935,8.343534>>,<<-1.497766,-0.000000,42.899403>>,2.599557)
SET_CAM_ACTIVE (NewTestCams[0], TRUE )
SET_CAM_USE_SHALLOW_DOF_MODE(NewTestCams[0], gShouldUseShallowDof)
IF(gShouldSetAllDofPlanes)
SET_CAM_DOF_PLANES(NewTestCams[0], 15.0, 16.0, 17.0, 18.0)
ELSE
SET_CAM_NEAR_DOF( NewTestCams[0], 16.0 )
SET_CAM_FAR_DOF( NewTestCams[0], 17.0 )
SET_CAM_DOF_STRENGTH( NewTestCams[0], DofStrength )
ENDIF
NewTestCams[1] = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA")
SET_CAM_PARAMS(NewTestCams[1],<<8.504449,-13.629935,8.343534>>,<<-1.497766,-0.000000,42.899403>>,2.599557)
SET_CAM_ACTIVE (NewTestCams[1], TRUE )
SET_CAM_USE_SHALLOW_DOF_MODE(NewTestCams[1], gShouldUseShallowDof)
IF(gShouldSetAllDofPlanes)
SET_CAM_DOF_PLANES(NewTestCams[1], 14.0, 15.0, 15.75, 16.75)
ELSE
SET_CAM_NEAR_DOF( NewTestCams[1], 15.0 )
SET_CAM_FAR_DOF( NewTestCams[1], 15.75 )
SET_CAM_DOF_STRENGTH( NewTestCams[1], DofStrength )
ENDIF
IF DOES_CAM_EXIST (NewTestCams[0])
SET_CAM_ACTIVE (NewTestCams[0], TRUE )
ENDIF
IF DOES_CAM_EXIST (NewTestCams[1])
SET_CAM_ACTIVE_WITH_INTERP(NewTestCams[1], NewTestCams[0], 4000 )
ENDIF
RENDER_SCRIPT_CAMS (TRUE, FALSE)
ScenarioDofTest_Status = ScenarioDofTest_Run
BREAK
CASE ScenarioDofTest_Run
IF(gShouldSetAllDofPlanes)
SET_CAM_DOF_PLANES(NewTestCams[1], NearDof - 1.0, NearDof, FarDof, FarDof + 1.0)
ELSE
SET_CAM_NEAR_DOF( NewTestCams[1], NearDof )
SET_CAM_FAR_DOF( NewTestCams[1], FarDof )
SET_CAM_DOF_STRENGTH(NewTestCams[1], DofStrength)
ENDIF
SET_CAM_USE_SHALLOW_DOF_MODE(NewTestCams[1], gShouldUseShallowDof)
SET_USE_HI_DOF()
BREAK
ENDSWITCH
BREAK
case ScenarioInterpToAndFromGameCam
SWITCH ScenarioInterpToAndFromGameCam_Status
CASE ScenarioInterpToAndFromGameCam_Init
NewTestCams[0] = CREATE_CAM_WITH_PARAMS("DEFAULT_SCRIPTED_CAMERA", << 1.20, -5.93, 5.26>>+ gvMapOffset, <<-19, 0, 0>>, 60.0, TRUE )
RENDER_SCRIPT_CAMS (TRUE, TRUE)
ScenarioInterpToAndFromGameCam_Status = ScenarioInterpToAndFromGameCam_InterpToScript
BREAK
CASE ScenarioInterpToAndFromGameCam_InterpToScript
if IS_INTERPOLATING_TO_SCRIPT_CAMS()
PRINTSTRING("IS_INTERPOLATING_TO_SCRIPT_CAM ")
PRINTNL()
ELSE
RENDER_SCRIPT_CAMS (FALSE, TRUE)
ScenarioInterpToAndFromGameCam_Status = ScenarioInterpToAndFromGameCam_InterpFromScript
ENDIF
BREAK
CASE ScenarioInterpToAndFromGameCam_InterpFromScript
if IS_INTERPOLATING_FROM_SCRIPT_CAMS()
PRINTSTRING("IS_INTERPOLATING_FROM_SCRIPT_CAM ")
PRINTNL()
ELSE
Set_Test_State_To_Default()
ENDIF
BREAK
ENDSWITCH
BREAK
case ScenarioInterpToAndFromGameCamCatchUp
SWITCH ScenarioInterpToAndFromGameCamCatchUp_Status
CASE ScenarioInterpToAndFromGameCamCatchUp_Init
NewTestCams[0] = CREATE_CAM_WITH_PARAMS("DEFAULT_SCRIPTED_CAMERA", << 1.20, -5.93, 5.26>>+ gvMapOffset, <<-19, 0, 0>>, 60.0, TRUE )
RENDER_SCRIPT_CAMS (TRUE, TRUE)
ScenarioInterpToAndFromGameCamCatchUp_Status = ScenarioInterpToAndFromGameCamCatchUp_InterpToScript
BREAK
CASE ScenarioInterpToAndFromGameCamCatchUp_InterpToScript
IF IS_INTERPOLATING_TO_SCRIPT_CAMS()
PRINTSTRING("IS_INTERPOLATING_TO_SCRIPT_CAM ")
PRINTNL()
ELSE
STOP_RENDERING_SCRIPT_CAMS_USING_CATCH_UP(FALSE)
Set_Test_State_To_Default()
ENDIF
BREAK
ENDSWITCH
BREAK
case ScenarioThirdPersonScriptLimits
SWITCH ScenarioThirdPersonScriptLimits_Status
CASE ScenarioThirdPersonScriptLimits_Run
IF (g_b3rdHeadingLimit)
SET_THIRD_PERSON_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE(g_f3rdMinHeading, g_f3rdMaxHeading)
ENDIF
IF (g_b3rdPitchLimit)
SET_THIRD_PERSON_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE(g_f3rdMinPitch, g_f3rdMaxPitch)
ENDIF
IF (g_b3rdDistanceLimit)
SET_THIRD_PERSON_CAM_ORBIT_DISTANCE_LIMITS_THIS_UPDATE(g_f3rdMinDistance, g_f3rdMaxDistance)
ENDIF
BREAK
ENDSWITCH
BREAK
CASE ScenarioSimpleInterp
SWITCH ScenarioSimpleInterp_Status
CASE ScenarioSimpleInterp_Init
NewTestCams[0] = CREATE_CAM_WITH_PARAMS("DEFAULT_SCRIPTED_CAMERA", << 1.20, -5.93, 5.26>>+ gvMapOffset, <<-19, 0, 0>>, 60.0, TRUE )
RENDER_SCRIPT_CAMS (TRUE, FALSE)
SET_CAM_PARAMS (NewTestCams[0], << -7.20, 6.93, 6.9>>, <<-28, 0, -116.0>>, 70.0, 5000 )
ScenarioSimpleInterp_Status = ScenarioCreateFixedCam_Run
BREAK
CASE ScenarioCreateFixedCam_Run
IF NOT IS_CAM_INTERPOLATING (NewTestCams[0])
RENDER_SCRIPT_CAMS (FALSE, TRUE)
DESTROY_CAM (NewTestCams[0] )
Set_Test_State_To_Default()
ENDIF
BREAK
ENDSWITCH
BREAK
CASE ScenarioAttachCam
SWITCH ScenarioAttachCameras_Status
CASE ScenarioAttachCameras_Init
NewTestCams[0] = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA")
SET_CAM_COORD (NewTestCams[0] , << 1.20, -5.93, 5.26>>+ gvMapOffset )
SET_CAM_ROT (NewTestCams[0] , <<-19, 0, 0>> )
SET_CAM_ACTIVE (NewTestCams[0], TRUE )
RENDER_SCRIPT_CAMS (TRUE, FALSE)
ScenarioAttachCameras_Status = ScenarioAttachCameras_Run
BREAK
CASE ScenarioAttachCameras_Run
if (gAttach_ped)
IF (gAttach_vehicle = FALSE) and (gAttach_object = FALSE)
IF DOES_CAM_EXIST (NewTestCams[gTargetCam])
ATTACH_CAM_TO_PED_BONE(NewTestCams[gTargetCam], TestPeds[0].ped, INT_TO_ENUM(PED_BONETAG, gAttach_PedBoneTag), gAttachOffset, gRelative )
ENDIF
ENDIF
ENDIF
if (gAttach_vehicle)
IF (gAttach_object = FALSE) and (gAttach_ped = FALSE)
IF DOES_CAM_EXIST (NewTestCams[gTargetCam])
IF IS_VEHICLE_DRIVEABLE (TestVehicles[0].Vehicle )
ATTACH_CAM_TO_ENTITY(NewTestCams[gTargetCam], TestVehicles[0].vehicle, gAttachOffset, gRelative )
ENDIF
ENDIF
ENDIF
ENDIF
if (gDettach)
IF DOES_CAM_EXIST (NewTestCams[gTargetCam])
DETACH_CAM (NewTestCams[gTargetCam])
ENDIF
gAttach_ped = FALSE
gAttach_vehicle = FALSE
gDettach = FALSE
ENDIF
BREAK
ENDSWITCH
BREAK
CASE ScenarioPointCam
SWITCH ScenarioPointCamera_Status
CASE ScenarioPointCamera_Init
NewTestCams[0] = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA")
SET_CAM_COORD (NewTestCams[0] , << 1.20, -5.93, 5.26>> + gvMapOffset )
SET_CAM_ROT (NewTestCams[0] , <<-19, 0, 0>> )
SET_CAM_ACTIVE (NewTestCams[0], TRUE )
RENDER_SCRIPT_CAMS (TRUE, FALSE)
ScenarioPointCamera_Status = ScenarioPointCamera_Run
BREAK
CASE ScenarioPointCamera_Run
if (gsetCamPos)
IF DOES_CAM_EXIST (NewTestCams[gTargetCam])
test_Cam_pos = GET_CAM_COORD (NewTestCams[gTargetCam] )
SET_CAM_PARAMS ( NewTestCams[gTargetCam], <<test_Cam_pos.x, test_Cam_pos.y, test_Cam_pos.z + 5.0>>+ gvMapOffset, <<0.0, 0.0, 0.0>>, 65.0, gInterpTime )
ENDIF
gsetCamPos =FALSE
ENDIF
if (gPoint_ped)
IF (gPoint_vehicle = FALSE) and (gPoint_object = FALSE)
IF DOES_CAM_EXIST (NewTestCams[gTargetCam])
IF NOT IS_PED_INJURED (scplayer)
POINT_CAM_AT_PED_BONE(NewTestCams[gTargetCam], scplayer, INT_TO_ENUM(PED_BONETAG, gPoint_PedBoneTag), gPointOffset, gPointRelative )
ENDIF
ENDIF
ENDIF
ENDIF
if (gPoint_vehicle)
IF (gPoint_object = FALSE) and (gPoint_ped = FALSE)
IF DOES_CAM_EXIST (NewTestCams[gTargetCam])
IF IS_VEHICLE_DRIVEABLE (TestVehicles[0].Vehicle )
POINT_CAM_AT_ENTITY(NewTestCams[gTargetCam], TestVehicles[0].vehicle, gPointOffset, gPointRelative )
ENDIF
ENDIF
ENDIF
ENDIF
if (gStopPoint)
IF DOES_CAM_EXIST (NewTestCams[gTargetCam])
STOP_CAM_POINTING (NewTestCams[gTargetCam])
ENDIF
gPoint_ped = FALSE
gPoint_vehicle = FALSE
gStopPoint = FALSE
ENDIF
BREAK
ENDSWITCH
BREAK
CASE ScenarioSplineCams
SWITCH ScenarioSplineCams_Status
CASE ScenarioSplineCams_Init
NewTestCams[0] = CREATE_CAMERA (CAMTYPE_SPLINE_SMOOTHED)
SET_CAM_FOV(NewTestCams[0], 20)
SET_CAM_SPLINE_SMOOTHING_STYLE(NewTestCams[0] , CAM_SPLINE_NO_SMOOTH)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<< 1.20, -5.93, 15>>, <<-19, 0, 0>>, 60, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED, << -7.20, 6.93, 11>>, <<-28, 0, -116.0>>, 50, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<< 9.20, 9.93, 8>>, <<-28, 0, 129.0>>, 40, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
SET_CAM_ACTIVE (NewTestCams[0], TRUE )
RENDER_SCRIPT_CAMS (TRUE, FALSE)
ScenarioSplineCams_Status = ScenarioSplineCams_Run
BREAK
CASE ScenarioSplineCams_Run
PRINTFLOAT (GET_CAM_SPLINE_PHASE(NewTestCams[0]))
PRINTNL()
if(gbSetSplinePhase)
SET_CAM_SPLINE_PHASE(NewTestCams[0] ,gfSplinePhase)
gbSetSplinePhase = FALSE
ENDIF
if(GET_CAM_SPLINE_PHASE(NewTestCams[0]) = 1.0)
Set_Test_State_To_Default()
ENDIF
BREAK
ENDSWITCH
BREAK
CASE TimedSplineTest
SWITCH ScenarioSplineCams_Status
CASE ScenarioSplineCams_Init
NewTestCams[0] = CREATE_CAMERA (CAMTYPE_SPLINE_TIMED)
SET_CAM_FOV(NewTestCams[0], 20)
SET_CAM_SPLINE_SMOOTHING_STYLE(NewTestCams[0] , CAM_SPLINE_NO_SMOOTH)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<< 1.20, -5.93, 15>>, <<-19, 0, 0>>, 60, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED, << -7.20, 6.93, 11>>, <<-28, 0, -116.0>>, 50, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<< 9.20, 9.93, 8>>, <<-28, 0, 129.0>>, 40, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
SET_CAM_ACTIVE (NewTestCams[0], TRUE )
RENDER_SCRIPT_CAMS (TRUE, FALSE)
ScenarioSplineCams_Status = ScenarioSplineCams_Run
BREAK
CASE ScenarioSplineCams_Run
PRINTFLOAT (GET_CAM_SPLINE_PHASE(NewTestCams[0]))
PRINTNL()
if(gbSetSplinePhase)
SET_CAM_SPLINE_PHASE(NewTestCams[0] ,gfSplinePhase)
gbSetSplinePhase = FALSE
ENDIF
if(GET_CAM_SPLINE_PHASE(NewTestCams[0]) = 1.0)
Set_Test_State_To_Default()
ENDIF
BREAK
ENDSWITCH
BREAK
CASE RoundedSplineTest
SWITCH ScenarioSplineCams_Status
CASE ScenarioSplineCams_Init
NewTestCams[0] = CREATE_CAMERA (CAMTYPE_SPLINE_ROUNDED)
SET_CAM_SPLINE_DURATION(NewTestCams[0], 9000 )
SET_CAM_FOV(NewTestCams[0], 20)
SET_CAM_SPLINE_SMOOTHING_STYLE(NewTestCams[0] , CAM_SPLINE_NO_SMOOTH)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<< 1.20, -5.93, 15>>, <<-19, 0, 0>>, 60, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED, << -7.20, 6.93, 11>>, <<-28, 0, -116.0>>, 50, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<< 9.20, 9.93, 8>>, <<-28, 0, 129.0>>, 40, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
SET_CAM_ACTIVE (NewTestCams[0], TRUE )
RENDER_SCRIPT_CAMS (TRUE, FALSE)
ScenarioSplineCams_Status = ScenarioSplineCams_Run
BREAK
CASE ScenarioSplineCams_Run
PRINTFLOAT (GET_CAM_SPLINE_PHASE(NewTestCams[0]))
PRINTNL()
if(gbSetSplinePhase)
SET_CAM_SPLINE_PHASE(NewTestCams[0] ,gfSplinePhase)
gbSetSplinePhase = FALSE
ENDIF
if(GET_CAM_SPLINE_PHASE(NewTestCams[0]) = 1.0)
Set_Test_State_To_Default()
ENDIF
BREAK
ENDSWITCH
BREAK
CASE SmoothedSplineTest
SWITCH ScenarioSplineCams_Status
CASE ScenarioSplineCams_Init
NewTestCams[0] = CREATE_CAMERA (CAMTYPE_SPLINE_SMOOTHED)
SET_CAM_SPLINE_DURATION(NewTestCams[0], 10000 )
SET_CAM_FOV(NewTestCams[0], 20)
SET_CAM_SPLINE_SMOOTHING_STYLE(NewTestCams[0] , CAM_SPLINE_NO_SMOOTH)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<< 1.20, -5.93, 15>>, <<-19, 0, 0>>, 60, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED, << -7.20, 6.93, 11>>, <<-28, 0, -116.0>>, 50, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<< 9.20, 9.93, 8>>, <<-28, 0, 129.0>>, 40, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
SET_CAM_ACTIVE (NewTestCams[0], TRUE )
RENDER_SCRIPT_CAMS (TRUE, FALSE)
ScenarioSplineCams_Status = ScenarioSplineCams_Run
BREAK
CASE ScenarioSplineCams_Run
PRINTFLOAT (GET_CAM_SPLINE_PHASE(NewTestCams[0]))
PRINTNL()
if(gbSetSplinePhase)
SET_CAM_SPLINE_PHASE(NewTestCams[0] ,gfSplinePhase)
gbSetSplinePhase = FALSE
ENDIF
if(GET_CAM_SPLINE_PHASE(NewTestCams[0]) = 1.0)
Set_Test_State_To_Default()
ENDIF
BREAK
ENDSWITCH
BREAK
CASE SplineLookAtSpline
SWITCH ScenarioSplineCams_Status
CASE ScenarioSplineCams_Init
NewTestCams[0] = CREATE_CAMERA (CAMTYPE_SPLINE_ROUNDED)
NewTestCams[1] = CREATE_CAMERA (CAMTYPE_SPLINE_SMOOTHED)
SET_CAM_SPLINE_DURATION(NewTestCams[0], 10000 )
SET_CAM_FOV(NewTestCams[0], 20)
SET_CAM_SPLINE_SMOOTHING_STYLE(NewTestCams[0] , CAM_SPLINE_NO_SMOOTH)
//looking spline
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<< 1.20, -5.93, 15>>, <<-19, 0, 0>>, 60, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED, << -7.20, 6.93, 11>>, <<-28, 0, -116.0>>, 50, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<<3.88, -2.62, 13.92>>, <<-28, 0, 129.0>>, 40, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[0] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<<2.54, 11.62, 13.92>>, <<-28, 0, 129.0>>, 40, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
//lookedatspline
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[1] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED,<< -0.30, -2.79, 6.35>>, <<-19, 0, 0>>, 60, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[1] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED, <<-1.63, 4.05, 6.35>>, <<-28, 0, -116.0>>, 50, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
ADD_CAM_SPLINE_NODE_USING_CAMERA(NewTestCams[1] , CREATE_CAMERA_WITH_PARAMS(CAMTYPE_SCRIPTED, <<11.35, 0.89, 6.35>>, <<-28, 0, -116.0>>, 50, TRUE), 5000, CAM_SPLINE_NODE_NO_FLAGS)
SET_CAM_SPLINE_DURATION(NewTestCams[1], 10000 )
SET_CAM_SPLINE_SMOOTHING_STYLE(NewTestCams[1] , CAM_SPLINE_NO_SMOOTH)
POINT_CAM_AT_CAM(NewTestCams[0], NewTestCams[1])
SET_CAM_ACTIVE (NewTestCams[1], TRUE )
SET_CAM_ACTIVE (NewTestCams[0], TRUE )
RENDER_SCRIPT_CAMS (TRUE, FALSE)
ScenarioSplineCams_Status = ScenarioSplineCams_Run
BREAK
CASE ScenarioSplineCams_Run
PRINTFLOAT (GET_CAM_SPLINE_PHASE(NewTestCams[0]))
PRINTNL()
if(gbSetSplinePhase)
SET_CAM_SPLINE_PHASE(NewTestCams[0] ,gfSplinePhase)
gbSetSplinePhase = FALSE
ENDIF
if(GET_CAM_SPLINE_PHASE(NewTestCams[0]) = 1.0)
Set_Test_State_To_Default()
ENDIF
BREAK
ENDSWITCH
BREAK
CASE ScenarioInterpCams
NewTestCams[0] = CREATE_CAM_WITH_PARAMS ("DEFAULT_SCRIPTED_CAMERA", << 1.20, -5.93, 5.26>>+ gvMapOffset, <<-19, 0, 0>> )
NewTestCams[1] = CREATE_CAM_WITH_PARAMS ("DEFAULT_SCRIPTED_CAMERA", << -7.20, 6.93, 6.9>>+ gvMapOffset, <<-28, 0, -116.0>> )
SET_CAM_ACTIVE_WITH_INTERP (NewTestCams[1], NewTestCams[0], 5000 )
RENDER_SCRIPT_CAMS (TRUE, FALSE)
Set_Test_State_To_Default()
BREAK
CASE ScenarioShakeCam
SWITCH ScenarioShakeCam_Status
CASE ScenarioShakeCam_Init
NewTestCams[0] = CREATE_CAM_WITH_PARAMS ("DEFAULT_SCRIPTED_CAMERA", << 1.20, -5.93, 5.26>>+ gvMapOffset, <<-19, 0, 0>> )
SET_CAM_ACTIVE (NewTestCams[0], true )
RENDER_SCRIPT_CAMS (TRUE, TRUE)
ScenarioShakeCam_Status = ScenarioShakeCam_Run
BREAK
CASE ScenarioShakeCam_Run
IF(gShouldShakeScriptGlobal)
IF (gbStockShake)
SHAKE_SCRIPT_GLOBAL("MEDIUM_EXPLOSION_SHAKE", gAmplitude)
gbStockShake = FALSE
ENDIF
IF(IS_SCRIPT_GLOBAL_SHAKING())
SET_SCRIPT_GLOBAL_SHAKE_AMPLITUDE(gAmplitude)
ENDIF
ELSE
IF (gbStockShake)
SHAKE_CAM(NewTestCams[0], "MEDIUM_EXPLOSION_SHAKE", gAmplitude)
gbStockShake = FALSE
ENDIF
IF(IS_CAM_SHAKING(NewTestCams[0]))
SET_CAM_SHAKE_AMPLITUDE(NewTestCams[0], gAmplitude)
ENDIF
ENDIF
BREAK
ENDSWITCH
BREAK
CASE ScenarioAnimateCam
IF NOT gbHasFinishedAnimatedCamera
IF NOT gbHasStartedAnimatedCamera
//Load the animation dictionary.
REQUEST_ANIM_DICT("missintro_bank")
WHILE NOT HAS_ANIM_DICT_LOADED("missintro_bank")
WAIT(0)
ENDWHILE
IF NOT IS_PED_INJURED(scplayer)
NewTestCams[0] = CREATE_CAM ("DEFAULT_ANIMATED_CAMERA")
VECTOR playerGroundPosition
playerGroundPosition = GET_ENTITY_COORDS(scplayer)
GET_GROUND_Z_FOR_3D_COORD(playerGroundPosition, playerGroundPosition.z)
FLOAT playerHeading
playerHeading = GET_ENTITY_HEADING(scplayer)
playerHeading = playerHeading + 180.0
IF (playerHeading >= 360.0)
playerHeading = playerHeading - 360.0
ENDIF
PLAY_CAM_ANIM(NewTestCams[0], "cam_tie_up_guard", "missintro_bank", playerGroundPosition, <<0.0, 0.0, playerHeading>>, CAF_LOOPING)
SET_CAM_ANIM_CURRENT_PHASE(NewTestCams[0], gAnimationStartPhase)
SET_CAM_ACTIVE (NewTestCams[0], true )
RENDER_SCRIPT_CAMS (TRUE, FALSE)
gbHasStartedAnimatedCamera = TRUE
ENDIF
ELIF IS_CAM_PLAYING_ANIM(NewTestCams[0], "cam_tie_up_guard", "missintro_bank")
//Display the current animation phase.
FLOAT phase
phase = GET_CAM_ANIM_CURRENT_PHASE(NewTestCams[0])
PRINTSTRING("Animation phase = ")
PRINTFLOAT(phase)
PRINTNL()
IF (phase >= 1.0)
//Clean up the camera now it has finished animating.
//DESTROY_CAM(NewTestCams[0])
//RENDER_SCRIPT_CAMS (FALSE, FALSE)
// REMOVE_ANIM_DICT("missintro_bank")
// gbHasFinishedAnimatedCamera = TRUE
ENDIF
ENDIF
ENDIF
BREAK
CASE ScenarioFadeCam
IF bDoSCreenFadeOut
DO_SCREEN_FADE_OUT (gDuration)
bDoSCreenFadeOut = FALSE
ENDIF
IF bDoSCreenFadeIn
DO_SCREEN_FADE_IN (gDuration)
bDoSCreenFadeIn = FALSE
ENDIF
isScreenFadedin = IS_SCREEN_FADED_IN ()
isScreenFadedOut = IS_SCREEN_FADED_OUT ()
IsScreenFadingIn = IS_SCREEN_FADING_IN()
IsScreenFadingOut = IS_SCREEN_FADING_OUT()
BREAK
CASE ScenarioGameplayCamera
IF (gSetCamState)
SET_GAMEPLAY_CAM_RELATIVE_HEADING ( gGameplayHeading )
SET_GAMEPLAY_CAM_RELATIVE_PITCH ( gGameplayPitch, gGameplayPitchSmoothRate )
gSetCamState = FALSE
ELIF (gGetCamState)
gGameplayHeading = GET_GAMEPLAY_CAM_RELATIVE_HEADING()
gGameplayPitch = GET_GAMEPLAY_CAM_RELATIVE_PITCH()
ENDIF
DRAW_DEBUG_SPHERE (<<1.0, 1.0, 3.0>>, 1.0)
gCamVisiblePoint = IS_SPHERE_VISIBLE(<<1.0, 1.0, 3.0>>+ gvMapOffset, 1.0)
gCamPos = GET_GAMEPLAY_CAM_COORD()
gCamRot = GET_GAMEPLAY_CAM_ROT ()
gCamFov = GET_GAMEPLAY_CAM_FOV()
IF (gbStockShake)
SHAKE_GAMEPLAY_CAM("MEDIUM_EXPLOSION_SHAKE")
gbStockShake = FALSE
ENDIF
IF(IS_GAMEPLAY_CAM_SHAKING())
SET_GAMEPLAY_CAM_SHAKE_AMPLITUDE(gAmplitude)
ENDIF
IF (gbFollowNearestPed)
PED_INDEX closestPed
IF (GET_CLOSEST_PED(GET_GAMEPLAY_CAM_COORD(), 10.0, TRUE, TRUE, closestPed))
SET_GAMEPLAY_CAM_FOLLOW_PED_THIS_UPDATE(closestPed)
ENDIF
ENDIF
IF (gShouldIgnoreAttachParentMovementForFollowCamera)
SET_FOLLOW_CAM_IGNORE_ATTACH_PARENT_MOVEMENT_THIS_UPDATE()
ENDIF
IF (gShouldOverrideFollowPedCamera)
gOverriddenFollowPedCameraName = GET_CONTENTS_OF_TEXT_WIDGET(gOverriddenFollowPedCameraTextWidgetId)
SET_FOLLOW_PED_CAM_THIS_UPDATE(gOverriddenFollowPedCameraName, gOverriddenFollowPedCameraInterpDuration)
ENDIF
IF (gShouldOverrideFollowVehicleCamera)
gOverriddenFollowVehicleCameraName = GET_CONTENTS_OF_TEXT_WIDGET(gOverriddenFollowVehicleCameraTextWidgetId)
SET_FOLLOW_VEHICLE_CAM_THIS_UPDATE(gOverriddenFollowVehicleCameraName, gOverriddenFollowVehicleCameraInterpDuration)
ENDIF
IF (gShouldOverrideFollowVehicleCameraHighAngleMode)
SET_FOLLOW_VEHICLE_CAM_HIGH_ANGLE_MODE_THIS_UPDATE(gOverriddenFollowVehicleCameraHighAngleMode)
ENDIF
IF (gShouldApplyZoomFactor)
SET_FIRST_PERSON_AIM_CAM_ZOOM_FACTOR(gZoomFactor)
gShouldApplyZoomFactor = FALSE
ENDIF
IF (gShouldQueryZoomFactor)
gZoomFactor = GET_FIRST_PERSON_AIM_CAM_ZOOM_FACTOR()
gShouldQueryZoomFactor = FALSE
ENDIF
IF (gShouldOverrideFirstPersonAimCameraZoomLimits)
SET_FIRST_PERSON_AIM_CAM_ZOOM_FACTOR_LIMITS_THIS_UPDATE(gMinZoomFactor, gMaxZoomFactor)
ENDIF
IF(g_ShouldDisableAimCameras)
DISABLE_AIM_CAM_THIS_UPDATE()
ENDIF
IF (gShouldOverrideFirstPersonAimCameraOrientationLimits)
//Freeze the player position to prevent the player from rotating and allow relative heading limits to be applied.
FREEZE_ENTITY_POSITION(scplayer, TRUE)
SET_FIRST_PERSON_AIM_CAM_RELATIVE_HEADING_LIMITS_THIS_UPDATE(gMinRelativeHeading, gMaxRelativeHeading)
SET_FIRST_PERSON_AIM_CAM_RELATIVE_PITCH_LIMITS_THIS_UPDATE(gMinRelativePitch, gMaxRelativePitch)
ELSE
FREEZE_ENTITY_POSITION(scplayer, FALSE)
ENDIF
BREAK
CASE ScenarioDebugCamera
SET_DEBUG_CAM_ACTIVE(gbDebugCamActiveState, gbShouldIgnoreDebugPadCameraToggle)
BREAK
CASE ScenarioPedZoom
IF (gbStockShake)
SET_FOLLOW_PED_CAM_VIEW_MODE (INT_TO_ENUM ( CAM_VIEW_MODE, gZoomLevel))
gbStockShake = FALSE
ENDIF
switch GET_FOLLOW_PED_CAM_ZOOM_LEVEL ()
CASE PED_ZOOM_LEVEL_NEAR
PRINTSTRING ("PED_ZOOM_LEVEL_NEAR")
PRINTNL()
BREAK
CASE PED_ZOOM_LEVEL_MEDIUM
PRINTSTRING ("PED_ZOOM_LEVEL_MEDIUM")
PRINTNL()
BREAK
CASE PED_ZOOM_LEVEL_FAR
PRINTSTRING ("PED_ZOOM_LEVEL_FAR")
PRINTNL()
BREAK
ENDSWITCH
BREAK
CASE ScenarioVehicleZoom
IF (gbStockShake)
SET_CAM_VIEW_MODE_FOR_CONTEXT(INT_TO_ENUM ( CAM_VIEW_MODE_CONTEXT, gViewModeContext), INT_TO_ENUM ( CAM_VIEW_MODE, gZoomLevel))
gbStockShake = FALSE
ENDIF
switch GET_CAM_VIEW_MODE_FOR_CONTEXT(INT_TO_ENUM ( CAM_VIEW_MODE_CONTEXT, gViewModeContext))
CASE CAM_VIEW_MODE_THIRD_PERSON_NEAR
PRINTSTRING ("CAM_VIEW_MODE_THIRD_PERSON_NEAR")
PRINTNL()
BREAK
CASE CAM_VIEW_MODE_THIRD_PERSON_MEDIUM
PRINTSTRING ("CAM_VIEW_MODE_THIRD_PERSON_MEDIUM")
PRINTNL()
BREAK
CASE CAM_VIEW_MODE_THIRD_PERSON_FAR
PRINTSTRING ("CAM_VIEW_MODE_THIRD_PERSON_FAR")
PRINTNL()
BREAK
CASE CAM_VIEW_MODE_CINEMATIC
PRINTSTRING ("CAM_VIEW_MODE_CINEMATIC")
PRINTNL()
BREAK
CASE CAM_VIEW_MODE_FIRST_PERSON
PRINTSTRING ("CAM_VIEW_MODE_FIRST_PERSON")
PRINTNL()
BREAK
ENDSWITCH
IF (gbShouldDisableCinematicBonnetCamera)
DISABLE_CINEMATIC_BONNET_CAMERA_THIS_UPDATE()
ENDIF
BREAK
CASE ScenarioHeliFallout
if(DOES_ENTITY_EXIST(TestVehicles[0].Vehicle))
SET_PED_INTO_VEHICLE(GET_PLAYER_PED(GET_PLAYER_INDEX()), TestVehicles[0].Vehicle, VS_BACK_RIGHT )
SET_PED_CAN_RAGDOLL(GET_PLAYER_PED(GET_PLAYER_INDEX()), FALSE)
ENDIF
if DOES_ENTITY_EXIST(TestPeds[0].ped) AND DOES_ENTITY_EXIST(TestVehicles[0].Vehicle)
if not IS_PED_INJURED(TestPeds[0].ped)
//SET_PED_AS_GROUP_MEMBER(TestPeds[0].ped, GET_PLAYER_GROUP(GET_PLAYER_INDEX()))
if (IS_VEHICLE_DRIVEABLE(TestVehicles[0].Vehicle))
SET_PED_INTO_VEHICLE(TestPeds[0].ped, TestVehicles[0].Vehicle)
TASK_HELI_MISSION(TestPeds[0].ped, TestVehicles[0].Vehicle, NULL, NULL, <<588, 22, 8>>, mISSION_GOTO, 10.0, 5.0, 0.0,50, 30 )
//TASK_VEHICLE_ESCORT(TestPeds[1].ped, TestVehicles[1].Vehicle, GET_PLAYER_PED(GET_PLAYER_INDEX()), VEHICLE_ESCORT_LEFT, 50.0, DRIVINGMODE_AVOIDCARS)
ENDIF
ENDIF
ENDIF
Set_Test_State_To_Default()
BREAK
CASE ScenarioVehicleFormationCamera
if(DOES_ENTITY_EXIST(TestVehicles[4].Vehicle))
SET_PED_INTO_VEHICLE(GET_PLAYER_PED(GET_PLAYER_INDEX()), TestVehicles[4].Vehicle )
ENDIF
FOR bikerIndex = 0 to 3
if DOES_ENTITY_EXIST(TestPeds[bikerIndex].ped) AND DOES_ENTITY_EXIST(TestVehicles[bikerIndex].Vehicle)
if not IS_PED_INJURED(TestPeds[bikerIndex].ped)
//SET_PED_AS_GROUP_MEMBER(TestPeds[0].ped, GET_PLAYER_GROUP(GET_PLAYER_INDEX()))
if (IS_VEHICLE_DRIVEABLE(TestVehicles[bikerIndex].Vehicle))
SET_PED_INTO_VEHICLE(TestPeds[bikerIndex].ped, TestVehicles[bikerIndex].Vehicle)
//TASK_VEHICLE_ESCORT(TestPeds[1].ped, TestVehicles[1].Vehicle, GET_PLAYER_PED(GET_PLAYER_INDEX()), VEHICLE_ESCORT_LEFT, 50.0, DRIVINGMODE_AVOIDCARS)
ENDIF
ENDIF
ENDIF
ENDFOR
if(pedoneTask)
bikerIndex = 0
if DOES_ENTITY_EXIST(TestPeds[bikerIndex].ped) AND DOES_ENTITY_EXIST(TestVehicles[bikerIndex].Vehicle)
if not IS_PED_INJURED(TestPeds[bikerIndex].ped)
SET_PED_AS_GROUP_MEMBER(TestPeds[bikerIndex].ped, GET_PLAYER_GROUP(GET_PLAYER_INDEX()))
if (IS_VEHICLE_DRIVEABLE(TestVehicles[bikerIndex].Vehicle))
SET_PED_INTO_VEHICLE(TestPeds[bikerIndex].ped, TestVehicles[bikerIndex].Vehicle)
TASK_VEHICLE_ESCORT(TestPeds[bikerIndex].ped, TestVehicles[bikerIndex].Vehicle, GET_PLAYER_PED(GET_PLAYER_INDEX()), VEHICLE_ESCORT_RIGHT, 50.0, DRIVINGMODE_AVOIDCARS, pedoneOffset)
ENDIF
ENDIF
ENDIF
ENDIF
if(pedTwoTask)
bikerIndex = 1
if DOES_ENTITY_EXIST(TestPeds[bikerIndex].ped) AND DOES_ENTITY_EXIST(TestVehicles[bikerIndex].Vehicle)
if not IS_PED_INJURED(TestPeds[bikerIndex].ped)
SET_PED_AS_GROUP_MEMBER(TestPeds[bikerIndex].ped, GET_PLAYER_GROUP(GET_PLAYER_INDEX()))
if (IS_VEHICLE_DRIVEABLE(TestVehicles[bikerIndex].Vehicle))
SET_PED_INTO_VEHICLE(TestPeds[bikerIndex].ped, TestVehicles[bikerIndex].Vehicle)
TASK_VEHICLE_ESCORT(TestPeds[bikerIndex].ped, TestVehicles[bikerIndex].Vehicle, GET_PLAYER_PED(GET_PLAYER_INDEX()), VEHICLE_ESCORT_LEFT, 50.0, DRIVINGMODE_AVOIDCARS, pedTwoOff)
ENDIF
ENDIF
ENDIF
ENDIF
if(pedThreeTask)
bikerIndex = 2
if DOES_ENTITY_EXIST(TestPeds[bikerIndex].ped) AND DOES_ENTITY_EXIST(TestVehicles[bikerIndex].Vehicle)
if not IS_PED_INJURED(TestPeds[bikerIndex].ped)
SET_PED_AS_GROUP_MEMBER(TestPeds[bikerIndex].ped, GET_PLAYER_GROUP(GET_PLAYER_INDEX()))
if (IS_VEHICLE_DRIVEABLE(TestVehicles[bikerIndex].Vehicle))
SET_PED_INTO_VEHICLE(TestPeds[bikerIndex].ped, TestVehicles[bikerIndex].Vehicle)
TASK_VEHICLE_ESCORT(TestPeds[bikerIndex].ped, TestVehicles[bikerIndex].Vehicle, GET_PLAYER_PED(GET_PLAYER_INDEX()), VEHICLE_ESCORT_FRONT, 50.0, DRIVINGMODE_AVOIDCARS, pedThreeOff)
ENDIF
ENDIF
ENDIF
ENDIF
if(pedFourTask)
bikerIndex = 3
if DOES_ENTITY_EXIST(TestPeds[bikerIndex].ped) AND DOES_ENTITY_EXIST(TestVehicles[bikerIndex].Vehicle)
if not IS_PED_INJURED(TestPeds[bikerIndex].ped)
SET_PED_AS_GROUP_MEMBER(TestPeds[bikerIndex].ped, GET_PLAYER_GROUP(GET_PLAYER_INDEX()))
if (IS_VEHICLE_DRIVEABLE(TestVehicles[bikerIndex].Vehicle))
SET_PED_INTO_VEHICLE(TestPeds[bikerIndex].ped, TestVehicles[bikerIndex].Vehicle)
TASK_VEHICLE_ESCORT(TestPeds[bikerIndex].ped, TestVehicles[bikerIndex].Vehicle, GET_PLAYER_PED(GET_PLAYER_INDEX()), VEHICLE_ESCORT_REAR, 50.0, DRIVINGMODE_AVOIDCARS, pedFourOff)
ENDIF
ENDIF
ENDIF
ENDIF
Set_Test_State_To_Default()
BREAK
CASE ScenarioHintCam
IF(gbStockShake)
STOP_GAMEPLAY_HINT_BEING_CANCELLED_THIS_UPDATE(true)
ENDIF
if (gPoint_ped)
IF (gPoint_vehicle = FALSE) and (gPoint_object = FALSE)
IF NOT IS_PED_INJURED (TestPeds[0].ped)
SET_GAMEPLAY_ENTITY_HINT (TestPeds[0].ped, gPointOffset, gPointRelative, -1, DEFAULT_DWELL_TIME, DEFAULT_DWELL_TIME, HINTTYPE_NO_FOV )
gPoint_ped = FALSE
ENDIF
ENDIF
ENDIF
if (gPoint_vehicle)
IF (gPoint_object = FALSE) and (gPoint_ped = FALSE)
IF IS_VEHICLE_DRIVEABLE (TestVehicles[0].Vehicle )
SET_GAMEPLAY_VEHICLE_HINT (TestVehicles[0].vehicle, gPointOffset, gPointRelative )
gPoint_vehicle = FALSE
ENDIF
ENDIF
ENDIF
if (gStopPoint)
if IS_GAMEPLAY_HINT_ACTIVE()
STOP_GAMEPLAY_HINT()
ENDIF
ENDIF
IF (gStopPointNow) AND IS_GAMEPLAY_HINT_ACTIVE()
STOP_GAMEPLAY_HINT(TRUE)
gStopPointNow = FALSE
ENDIF
// SET_CINEMATIC_BUTTON_ACTIVE(FALSE)
//
// if not IS_PED_INJURED(scplayer)
// if IS_PED_IN_ANY_VEHICLE(scplayer)
// if(IS_BUTTON_JUST_PRESSED(PAD1, CIRCLE ))
// SET_GAMEPLAY_COORD_HINT(GET_SCRIPT_MOUSE_POINTER_IN_WORLD_COORDS(), -1, DEFAULT_INTERP_IN_TIME, DEFAULT_INTERP_IN_TIME )
// ENDIF
//
// if NOT ( IS_BUTTON_PRESSED(PAD1, CIRCLE) )
// if IS_GAMEPLAY_HINT_ACTIVE()
// STOP_GAMEPLAY_HINT()
// ENDIF
// ENDIF
//
// ELSE
//
// if(IS_BUTTON_JUST_PRESSED(PAD1, RIGHTSHOULDER1 ))
// SET_GAMEPLAY_COORD_HINT(GET_SCRIPT_MOUSE_POINTER_IN_WORLD_COORDS(), -1, DEFAULT_INTERP_IN_TIME, DEFAULT_INTERP_IN_TIME )
// ENDIF
//
// if NOT ( IS_BUTTON_PRESSED(PAD1, RIGHTSHOULDER1) )
// if IS_GAMEPLAY_HINT_ACTIVE()
// STOP_GAMEPLAY_HINT()
// ENDIF
// ENDIF
// ENDIF
// ENDIF
// if (gStopPoint)
// STOP_GAMEPLAY_HINT ()
// gPoint_ped = FALSE
// gPoint_vehicle = FALSE
//
// gStopPoint = FALSE
//
// ENDIF
BREAK
CASE ScenarioCinematicDriveby
SWITCH ScenarioCinematicDriveby_Status
CASE ScenarioCinematicDriveby_Init
IF(IS_FOLLOW_VEHICLE_CAM_ACTIVE())
SET_FOLLOW_VEHICLE_CAM_ZOOM_LEVEL(VEHICLE_ZOOM_LEVEL_CINEMATIC)
gGameplayHeading = -1000.0
ScenarioCinematicDriveby_Status = ScenarioCinematicDriveby_Run
ENDIF
BREAK
CASE ScenarioCinematicDriveby_Run
IF(IS_PLAYER_PLAYING(PLAYER_ID())) AND (IS_PED_DOING_DRIVEBY(PLAYER_PED_ID()))
IF(gNumFramesAiming = 0) AND (gGameplayHeading != -1000.0)
//Apply the previous driveby camera heading (relative to the vehicle.)
SET_GAMEPLAY_CAM_RELATIVE_HEADING(gGameplayHeading)
ENDIF
//Grab the heading relative to the vehicle.
gGameplayHeading = GET_GAMEPLAY_CAM_RELATIVE_HEADING()
gNumFramesAiming = gNumFramesAiming + 1
ELSE
gNumFramesAiming = 0
ENDIF
BREAK
ENDSWITCH
BREAK
CASE ScenarioSceneTransition
SWITCH ScenarioSceneTransition_Status
CASE ScenarioSceneTransition_Init
PRINTSTRING("creating camera")
PRINTNL()
NewTestCams[0] = CREATE_CAM ("DEFAULT_SCENE_TRANSITION_CAMERA")
SET_CAM_ACTIVE(NewTestCams[0], TRUE)
if not IS_PED_INJURED( GET_PLAYER_PED(GET_PLAYER_INDEX()))
PRINTSTRING("START_SCENE_TRANSITION")
PRINTNL()
vStart = GET_ENTITY_COORDS(GET_PLAYER_PED(GET_PLAYER_INDEX()))
START_CAM_TRANSITION(NewTestCams[0], vStart, gCamPos )
RENDER_SCRIPT_CAMS (TRUE, TRUE)
ENDIF
ScenarioSceneTransition_Status = ScenarioSceneTransition_WaitToFinish
BREAK
CASE ScenarioSceneTransition_WaitToFinish
if DOES_CAM_EXIST(NewTestCams[0])
if not IS_CAM_TRANSITIONING(NewTestCams[0])
RENDER_SCRIPT_CAMS (FALSE, FALSE)
SET_CAM_ACTIVE(NewTestCams[0], FALSE)
DESTROY_CAM(NewTestCams[0])
ELSE
PRINTFLOAT(GET_CAM_TRANSITION_PHASE(NewTestCams[0]))
PRINTNL()
ENDIF
ENDIF
BREAK
ENDSWITCH
BREAK
CASE ScenarioCameraFocusPed
SWITCH ScenarioCameraFocusPed_Status
CASE ScenarioCameraFocusPed_Init
ScenarioCameraFocusPed_Status = ScenarioCameraFocusPed_WaitToFinish
BREAK
CASE ScenarioCameraFocusPed_WaitToFinish
gFocusPedIndex = GET_FOCUS_PED_ON_SCREEN(gFocusPedMaxDistanceFromCamera, INT_TO_ENUM(PED_BONETAG, gFocusPedScreenPositionTestBoneTag), gFocusPedMaxScreenWidthRatioAroundCentreForTestBone, gFocusPedMaxScreenHeightRatioAroundCentreForTestBone, gFocusPedMinRelativeHeadingScore, gFocusPedMaxScreenCentreScoreBoost, gFocusPedMaxScreenRatioAroundCentreForScoreBoost, INT_TO_ENUM(PED_BONETAG, gFocusPedLosTestBoneTag1), INT_TO_ENUM(PED_BONETAG, gFocusPedLosTestBoneTag2))
IF (gFocusPedIndex != NULL)
IF NOT IS_PED_INJURED(gFocusPedIndex)
vStart = GET_PED_BONE_COORDS(gFocusPedIndex, BONETAG_HEAD, <<0.0, 0.0, 0.0>>)
DRAW_DEBUG_SPHERE(vStart, 0.2, 255, 0, 0, 128)
ENDIF
ENDIF
BREAK
ENDSWITCH
BREAK
CASE ScenarioScriptedFlyCamera
SWITCH ScenarioScriptedFlyCamera_Status
CASE ScenarioScriptedFlyCamera_Init
NewTestCams[0] = CREATE_CAMERA(CAMTYPE_SCRIPTED_FLY, TRUE)
IF DOES_CAM_EXIST(NewTestCams[0])
IF NOT IS_PED_INJURED(GET_PLAYER_PED(GET_PLAYER_INDEX()))
vStart = GET_ENTITY_COORDS(GET_PLAYER_PED(GET_PLAYER_INDEX()))
SET_CAM_COORD(NewTestCams[0], vStart)
ENDIF
RENDER_SCRIPT_CAMS(TRUE, FALSE)
ENDIF
ScenarioScriptedFlyCamera_Status = ScenarioScriptedFlyCamera_WaitToFinish
BREAK
CASE ScenarioScriptedFlyCamera_WaitToFinish
BREAK
ENDSWITCH
BREAK
CASE ScenarioAdaptiveDofTest
SWITCH ScenarioAdaptiveDofTest_Status
CASE ScenarioAdaptiveDofTest_Init
NewTestCams[0] = CREATE_CAM("DEFAULT_SCRIPTED_CAMERA")
SET_CAM_PARAMS(NewTestCams[0],<<8.504449,-13.629935,8.343534>>,<<-1.497766,-0.000000,42.899403>>,2.599557)
SET_CAM_ACTIVE (NewTestCams[0], TRUE )
RENDER_SCRIPT_CAMS (TRUE, FALSE)
ScenarioAdaptiveDofTest_Status = ScenarioAdaptiveDofTest_Run
BREAK
CASE ScenarioAdaptiveDofTest_Run
IF DOES_CAM_EXIST(NewTestCams[0])
SET_CAM_DOF_OVERRIDDEN_FOCUS_DISTANCE(NewTestCams[0], g_AdaptiveDofOverriddenFocusDistance)
SET_CAM_DOF_OVERRIDDEN_FOCUS_DISTANCE_BLEND_LEVEL(NewTestCams[0], g_AdaptiveDofOverriddenFocusDistanceBlendLevel)
SET_CAM_DOF_FOCUS_DISTANCE_GRID_SCALING(NewTestCams[0], g_AdaptiveDofFocusDistanceGridScalingX, g_AdaptiveDofFocusDistanceGridScalingY)
SET_CAM_DOF_SUBJECT_MAGNIFICATION_POWER_FACTOR_NEAR_FAR(NewTestCams[0], g_AdaptiveDofSubjectMagnificationPowerFactorNear, g_AdaptiveDofSubjectMagnificationPowerFactorFar)
SET_CAM_DOF_MAX_PIXEL_DEPTH(NewTestCams[0], g_AdaptiveDofMaxPixelDepth)
SET_CAM_DOF_PIXEL_DEPTH_POWER_FACTOR(NewTestCams[0], g_AdaptiveDofPixelDepthPowerFactor)
SET_CAM_DOF_FNUMBER_OF_LENS(NewTestCams[0], g_AdaptiveDofFNumberOfLens)
SET_CAM_DOF_FOCAL_LENGTH_MULTIPLIER(NewTestCams[0], g_AdaptiveDofFocalLengthMultiplier)
SET_CAM_DOF_FOCUS_DISTANCE_BIAS(NewTestCams[0], g_AdaptiveDofFocusDistanceBias)
SET_CAM_DOF_MAX_NEAR_IN_FOCUS_DISTANCE(NewTestCams[0], g_AdaptiveDofMaxNearInFocusDistance)
SET_CAM_DOF_MAX_NEAR_IN_FOCUS_DISTANCE_BLEND_LEVEL(NewTestCams[0], g_AdaptiveDofMaxNearInFocusDistanceBlendLevel)
SET_CAM_DOF_MAX_BLUR_RADIUS_AT_NEAR_IN_FOCUS_LIMIT(NewTestCams[0], g_AdaptiveDofMaxBlurRadiusAtNearInFocusLimit)
SET_CAM_DOF_FOCUS_DISTANCE_INCREASE_SPRING_CONSTANT(NewTestCams[0], g_AdaptiveDofFocusDistanceIncreaseSpringConstant)
SET_CAM_DOF_FOCUS_DISTANCE_DECREASE_SPRING_CONSTANT(NewTestCams[0], g_AdaptiveDofFocusDistanceDecreaseSpringConstant)
SET_CAM_DOF_SHOULD_FOCUS_ON_LOOK_AT_TARGET(NewTestCams[0], g_AdaptiveDofShouldFocusOnLookAtTarget)
SET_CAM_DOF_SHOULD_FOCUS_ON_ATTACH_PARENT(NewTestCams[0], g_AdaptiveDofShouldFocusOnAttachParent)
SET_CAM_DOF_SHOULD_KEEP_LOOK_AT_TARGET_IN_FOCUS(NewTestCams[0], g_AdaptiveDofShouldKeepLookAtTargetInFocus)
SET_CAM_DOF_SHOULD_KEEP_ATTACH_PARENT_IN_FOCUS(NewTestCams[0], g_AdaptiveDofShouldKeepAttachParentInFocus)
SET_CAM_DOF_SHOULD_MEASURE_POST_ALPHA_PIXEL_DEPTH(NewTestCams[0], g_AdaptiveDofShouldMeasurePostAlphaPixelDepth)
ENDIF
BREAK
ENDSWITCH
BREAK
CASE DefaultTest
BREAK
ENDSWITCH
ENDPROC
//Purpose: Runs the main scenarios
PROC Run_Test_Scenario ()
int index = 0
SWITCH TestScenarioAStatus
//setps up all the data for the sceanrio, this is only called once or if selected in widget
CASE InitialiseScenarioData
PlayerStartPos = GET_PLAYER_START_POS() //sets the players start coords at the default
Bscenario_running = FALSE
INITIALISE_PED_DATA (Testpeds)
INITIALISE_VEHICLE_DATA (TestVehicles)
INITIALISE_CAM_DATA(TestCams )
SETUP_TEST_DATA ()
HELP_TEXT_STATE = HTF_SCENARIO_SELECTED_NOT_STARTED
TestScenarioAStatus = CreateScenarioEntities
Temp_Update_Player_With_Scenario(TestCams, scplayer, FALSE, PlayerStartPos) //sets the
BREAK
// Creates all the scenario data
CASE CreateScenarioEntities
Bscenario_running = FALSE
Set_Gang_Relationships (TRUE)
Temp_Update_Player_With_Scenario(TestCams, scplayer, true, PlayerStartPos)
//peds
FOR index = 0 to MAX_NUMBER_OF_PEDS - 1
CREATE_PED_ENTITY(Testpeds[index])
GiveBlipsToPedsGrps (Testpeds[index])
ALTER_COMBAT_STATS (Testpeds[index] )
SWAP_PED_WEAPONS (Testpeds[index])
ADD_RELATIONSHIP_GROUP_TO_STRUCT (Testpeds[index])
Block_Peds_Temp_Events (Testpeds[index], TRUE)
SET_PED_DEFENSIVE_AREAS(Testpeds[index] )
ENDFOR
//TestVehicles
FOR Index = 0 to MAX_NUMBER_OF_VEHICLES -1
CREATE_VEHICLE_ENTITY (TestVehicles[index] )
ENDFOR
//TestCams
for index = 0 to MAX_NUMBER_OF_CAMERAS -1
CREATE_CAM_ENTITY (TestCams[index])
ENDFOR
TestScenarioAStatus = SetScenarioEntities
BREAK
CASE SetScenarioEntities
Temp_Update_Player_With_Scenario(TestCams, scplayer, true, PlayerStartPos)
Start_And_Reset_Test ()
IF gBeginCombatScenario
TestScenarioAStatus = RunScenario
gBeginCombatScenario = FALSE
gRun_debuggig = FALSE
Bscenario_running = TRUE
INITALISE_TEST_STATE()
TEMP_ACTIVATE_CAMS (TestCams[FixedCamera].cam )
IF DOES_CAM_EXIST (TestCams[FixedCamera].cam )
HELP_TEXT_STATE = HTF_SCENARIO_RUNNING_FIXED_CAM
ELSE
HELP_TEXT_STATE = HTF_STARTED_RUNNING_NO_CAMS
ENDIF
ENDIF
BREAK
//Runs the actual selected scenario
CASE RunScenario
Temp_Run_Scenario_Tracking_Cam (TestPeds, MAX_NUMBER_OF_PEDS, TestCams[TrackingCamera].cam)
Temp_Update_Player_With_Scenario(TestCams, scplayer, true, PlayerStartPos)
Start_And_Reset_Test ()
Check_For_Scenario_Reset ()
IF DOES_CAM_EXIST (TestCams[TrackingCamera].cam)
if IS_CAM_RENDERING (TestCams[TrackingCamera].cam)
HELP_TEXT_STATE = HTF_SCENARIO_RUNNING_TRACKING_CAM
ELSE
HELP_TEXT_STATE = HTF_SCENARIO_RUNNING_FIXED_CAM
ENDIF
ENDIF
RUN_TEST () //run the main tests
BREAK
CASE CleanupScenario
HELP_TEXT_STATE = HTF_SCENARIO_SELECTED_NOT_STARTED
Cleanup_Scenario_Entities ()
IF gResetToDefault
Temp_cleanup_scenario_cams () //here we are changing scenarios so we need to reset cams
TestScenarioAStatus = InitialiseScenarioData
gResetToDefault = FALSE
ENDIF
IF gResetCombatScenario
Temp_Update_Player_With_Scenario(TestCams, scplayer, FALSE, PlayerStartPos)
gcurrentselection = gSelection
IF DOES_CAM_EXIST (TestCams[FixedCamera].cam)
ACTIVATE_CAM (TestCams[FixedCamera].cam)
ELSE
Temp_cleanup_scenario_cams ()
ENDIF
TestScenarioAStatus = CreateScenarioEntities
gResetCombatScenario = FALSE
ENDIF
BREAK
ENDSWITCH
ENDPROC
PROC EditScenario ()
IF gRun_debuggig
SETUP_PEDS_POS (TestPeds[gTestPedsIndex])
IF gCreatePed
PedModelSelection (TestPeds[gTestPedsIndex], S_M_Y_Cop_01)
CREATE_PED_ENTITY (TestPeds[gTestPedsIndex])
ADD_RELATIONSHIP_GROUP_TO_STRUCT (TestPeds[gTestPedsIndex])
gCreatePed = FALSE
ENDIF
IF gdeletePed
delete_scenario_ped (TestPeds[gTestPedsIndex] )
gdeletePed = FALSE
ENDIF
ENDIF
ENDPROC
PROC Terminate_test_script ()
if IS_KEYBOARD_KEY_JUST_PRESSED (KEY_S)
CLEAR_PRINTS ()
CLEAR_HELP ()
Cleanup_Scenario_Entities ()
Temp_cleanup_scenario_cams ()
SET_PLAYER_COLISION(scplayer, true)
IF NOT IS_PED_INJURED (scplayer)
SET_PED_COORDS_KEEP_VEHICLE(scplayer, GET_PLAYER_START_POS () + gvMapOffset )
ENDIF
TERMINATE_THIS_THREAD ()
ENDIF
ENDPROC
SCRIPT
gvMapOffset = GET_PLAYER_START_POS () //<<0.0, 0.0, 6.35>>
SET_DEBUG_ACTIVE (TRUE)
SETUP_MISSION_XML_MENU ( XMLMenu, KEY_Q)
SETUP_AREA_FOR_MISSION (<<0.0, 0.0, 0.0>>)
//Gets a reference to the player
Get_The_Player ()
SET_PLAYER_COLISION(scplayer, true)
//Sets the test widget for this script
CREATE_TEST_WIDGET ()
//request the test anim bank
//REQUEST_TEST_ANIM_DICT ("misstest_anim")
WHILE TRUE
// controls the help text hides if xml menu is active
TEXT_CONTROLLER ()
// Can set all scenario peds invincible from the widget
Set_Scenario_Peds_Invincible (TestPeds, MAX_NUMBER_OF_PEDS, gsetpedsinvincible )
//User can create a debug cam for setting sceanrios
Temp_Create_Debug_Cam (TestCams[FixedCamera])
//Runs the selected option from the XML menu
Run_Selection_From_XML_input ()
//Checks that a valid selection has been input and runs the scenario
IF (gcurrentselection <> InvalidSelection)
Draw_Debug_Info ( )
//Sets the test scenario into debug mode
Set_To_Debug ()
if (gRun_debuggig)
Temp_Debug_Scenario (TestPeds, TestVehicles, Route, TestCams[FixedCamera].cam, S_M_Y_Cop_01 ) //Allows the entities in the scneario to be adjusted
Print_Scenario_Data (TestPeds, TestVehicles, Route, TestCams)
ENDIF
Run_Test_Scenario ()
SWITCH_BETWEEN_FIXED_AND_TRACKING (TestCams[FixedCamera].cam)
PRINT_ACTIVE_TEST (Bscenario_running, gRun_debuggig )
ENDIF
WAIT (0)
Terminate_test_script ()
ENDWHILE
ENDSCRIPT
#ENDIF // IS_DEBUG_BUILD