Files
2025-09-29 00:52:08 +02:00

3146 lines
131 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 "rage_builtins.sch"
USING "script_xml.sch"
USING "commands_ped.sch"
USING "commands_task.sch"
USING "commands_streaming.sch"
USING "commands_graphics.sch"
USING "commands_debug.sch"
USING "test_tools.sch"
USING "commands_vehicle.sch"
USING "commands_camera.sch"
USING "commands_player.sch"
USING "commands_physics.sch"
USING "script_DEBUG.sch"
USING "commands_event.sch"
USING "commands_script.sch"
USING "commands_entity.sch"
USING "commands_itemsets.sch"
//Notes: This is script is to allow easy setup of test scenarios for the code department. It works in conjunction with test_tools.sch
//It is a data driven system
//Defaults values when the test is reset to factory the standard values are used
STRING XMLMenu = "Testbed/TestCombatmenu"
VECTOR gvMapOffset //offset all coords from the origin by the psoition of the mapin world coords
////////////////////////////////////////////////////////////////////////////////
///
//These enums must match with the /build/dev/common/data/script/xml/Testbed/TestCombatMenu.xml
ENUM Scenarios
TEST_TASK_COMBAT_PED = 0,
TEST_TASK_COMBAT_HATED_TARGETS_AROUND_PED,
TEST_TASK_COMBAT_HATED_TARGETS_AROUND_PED_TIMED,
TEST_TASK_COMBAT_TIMED,
TEST_TASK_COMBAT_HATED_PED_IN_AREA,
TEST_TASK_AIM_GUN_AT_COORD,
TEST_TASK_AIM_GUN_AT_ENTITY,
TEST_TASK_SHOOT_AT_COORD,
TEST_TASK_GOTO_X_WHILE_AIMING_AT_X,
TEST_TASK_SEEK_COVER_FROM_POS,
TEST_TASK_SEEK_COVER_FROM_PED,
TEST_TASK_SEEK_COVER_TO_COVER_POINT,
TEST_TASK_SEEK_COVER_TO_COVER_COORD,
TEST_TASK_PUT_PED_DIRECTLY_INTO_COVER,
TEST_TASK_GUARD_ASSIGNED_DEFENSIVE_AREA,
TEST_TASK_GUARD_ANGLED_DEFENSIVE_AREA,
TEST_TASK_GUARD_SPHERE_DEFENSIVE_AREA,
TEST_TASK_GUARD_CURRENT_POS,
TEST_TASK_STAND_GUARD,
SET_PED_PREFERRED_COVER,
TEST_TASK_PATROL,
TEST_IS_PED_RESPONDING_TO_EVENT,
TEST_HAS_PED_RECEIVED_EVENT,
SCENARIO_PED_MOVE_TO_COVER_PED_STAYS_STILL,
SCENARIO_BOTH_PEDS_MOVE_TO_COVER,
SCENARIO_TWO_PEDS_NO_COVER,
ARifle_guy_in_cover_breaking,
SquadOfPedsMovingBetweenVehicles,
SquadStaysDefensiveBehindVehicle,
SquadDefendingPos,
PedDoesWeirdThingsSeekingCover,
ScenarioCombatRanges,
ScenarioPedShootsCoord,
BugPedsNotShootingThroughFreindlyPed,
TestPedsUsingRandomPaths,
BugAiCantDriveTank,
ScenarioTaskStayInCover,
TargetDummy,
SWAT_VAN_DRIVE_BY,
TASK_RAPPEL_DOWN_WALL_PlayerTest,
TASK_RAPPEL_DOWN_WALL_AITest,
TEST_TASK_MELEE_COMBAT_ONE,
TEST_TASK_MELEE_COMBAT_MANY,
TEST_TASK_DRAG_INJURED_PED,
TEST_TASK_SHOOT_AT_PLAYER,
TEST_TASK_SHOOT_AT_VEHICLE,
TEST_TASK_AI_STEALTH_KILL,
TEST_TASK_ANIMAL_MELEE,
TEST_TASK_ARMED_MELEE_IN_COVER,
DefaultTest = 1000
ENDENUM
////////////////////////////////////////////////////////////////////////////////
//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]
//Camera Vars
CONST_INT MAX_NUMBER_OF_CAMERAS 2
CONST_INT FixedCamera 0
CONST_INT TrackingCamera 1
StCameraData TestCams[MAX_NUMBER_OF_CAMERAS]
//Defensive are
INT MAX_NUMBER_DEFENSIVE_AREA = 0
//Object Vars
CONST_INT MAX_NUMBER_OF_OBJECTS 1
Object_struct TestObjects[MAX_NUMBER_OF_OBJECTS]
////////////////////////////////////////////////////////////////////////////////
// Define Widget Variables
FLOAT DYNAMIC_MOVE_BLEND_RATIO = PEDMOVEBLENDRATIO_WALK
FLOAT SlideSpeed = 1.0
FLOAT BlendSpeed = 8.0
BOOL bLoopAnim = FALSE, bExtractbackwardvel = TRUE, bExtractsidevel = TRUE, bholdlastframe = FALSE
Int seatindex = -1
FLOAT Ground_z
COVERPOINT_INDEX SCRIPTED_COVER_INDEX
BOOL bUseLowCoverPoint = TRUE
BOOL bUseOneHandedWeapon = FALSE
BOOL bUseSwatModel = TRUE
BOOL bTestStanding = TRUE
FLOAT gfGoToPointAndAimAtPointMoveState = 0
INT COMBAT_TARGETS_AROUND_AREA_TIME = 5000
ENUM GOTO_POINT_AND_AIM_MODE
GOTO_COORD_AND_AIM_AT_COORD,
GOTO_COORD_AND_AIM_AT_PED,
GOTO_COORD_AND_AIM_AT_VEHICLE,
GOTO_COORD_AND_AIM_AT_OBJECT,
GOTO_PED_AND_AIM_AT_COORD,
GOTO_PED_AND_AIM_AT_PED,
GOTO_PED_AND_AIM_AT_VEHICLE,
GOTO_PED_AND_AIM_AT_OBJECT,
GOTO_PED_AIMING
ENDENUM
INT GOTO_X_AND_AIM_AT_X_MODE = ENUM_TO_INT(GOTO_COORD_AND_AIM_AT_COORD)
VECTOR GOTO_COORD = <<-36.82, 247.95, 6.35>>
VECTOR AIM_AT_COORD = <<-42.19, 246.29, 7.72>>
INT AIM_AT_TIME = 5000
BOOL MOVE_AND_SHOOT = FALSE
BOOL DO_DRIVEBY = FALSE
////////////////////////////////////////////////////////////////////////////////
// Create Widgets
PROC CREATE_TEST_WIDGET ()
START_WIDGET_GROUP("Combat Test")
SETUP_WIDGET ()
START_WIDGET_GROUP("Tasks")
ADD_WIDGET_INT_SLIDER ("COMBAT_TARGETS_AROUND_AREA_TIME",COMBAT_TARGETS_AROUND_AREA_TIME, 0, 20000, 1000)
ADD_WIDGET_INT_SLIDER ("AIM_AT_TIME",AIM_AT_TIME, -1, 20000, 1000)
ADD_WIDGET_BOOL ("MOVE_AND_SHOOT", MOVE_AND_SHOOT)
ADD_WIDGET_BOOL ("SWAT_VAN_DO_DRIVEBY", DO_DRIVEBY)
ADD_WIDGET_BOOL ("USE_LOW_COVER", bUseLowCoverPoint)
ADD_WIDGET_BOOL ("USE_ONE_HANDED_WEAPON", bUseOneHandedWeapon)
ADD_WIDGET_BOOL ("USE_SWAT_MODEL", bUseSwatModel)
ADD_WIDGET_BOOL ("TEST_STAND_ENTERS", bTestStanding)
STOP_WIDGET_GROUP()
START_WIDGET_GROUP("Navigation")
ADD_WIDGET_BOOL ("Start scenario", gBeginCombatScenario)
ADD_WIDGET_BOOL ("Restart scenario", gResetCombatScenario)
ADD_WIDGET_BOOL ("Reset to default", gResetToDefault)
ADD_WIDGET_BOOL ("Debug scenario", gRun_debuggig)
ADD_WIDGET_BOOL ("Print all setup info", gPrintAllIinfo)
ADD_WIDGET_FLOAT_SLIDER ("Start_Coord.x",gPedcoords.x, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Start_Coord.y",gPedcoords.y, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Start_Coord.z",gPedcoords.z, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Start_Heading",gPedheading, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Target_Coord.x",DynamicTargetPos.x, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Target_Coord.y",DynamicTargetPos.y, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Target_Coord.z",DynamicTargetPos.z, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Target_heading",DynamicTargetHeading, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("GroiundZ",Ground_z, -2000, 2000, 0.5)
ADD_WIDGET_FLOAT_SLIDER ("Slide speed",SlideSpeed, -2000, 2000, 0.5)
ADD_WIDGET_INT_SLIDER ("seat", seatindex ,-2, 2, 1 )
ADD_WIDGET_FLOAT_SLIDER ("Move Blend Ratio", DYNAMIC_MOVE_BLEND_RATIO, PEDMOVEBLENDRATIO_STILL, PEDMOVEBLENDRATIO_SPRINT, 0.1 )
START_WIDGET_GROUP ("Anim")
ADD_WIDGET_BOOL ("loop anim", bLoopAnim )
ADD_WIDGET_BOOL ("Extract y vel", bExtractbackwardvel )
ADD_WIDGET_BOOL ("Extract x vel ", bExtractsidevel )
ADD_WIDGET_BOOL ("Hold ladt frame ", bholdlastframe )
ADD_WIDGET_FLOAT_SLIDER ("blend",BlendSpeed, -2000, 2000, 0.5)
STOP_WIDGET_GROUP()
STOP_WIDGET_GROUP()
START_WIDGET_GROUP ("Ped setup")
ADD_WIDGET_INT_SLIDER ("Ped_index", gTestPedsIndex ,0, 9, 1 )
ADD_WIDGET_FLOAT_SLIDER ("Ped_Coord.x",gPedcoords.x, -2000, 2000, 0.25)
ADD_WIDGET_FLOAT_SLIDER ("Ped_Coord.y",gPedcoords.y, -2000, 2000, 0.25)
ADD_WIDGET_FLOAT_SLIDER ("Ped_Coord.z",gPedcoords.z, -2000, 2000, 0.25)
ADD_WIDGET_FLOAT_SLIDER ("Ped_Heading",gPedheading, -2000, 2000, 0.5)
START_NEW_WIDGET_COMBO()
ADD_TO_WIDGET_COMBO ("S_M_Y_COP_01")
ADD_TO_WIDGET_COMBO ("G_M_Y_DESHENCH_01")
STOP_WIDGET_COMBO("Ped", PedIdentifier)
ADD_WIDGET_BOOL ("Create ped", gCreatePed)
ADD_WIDGET_BOOL ("Delete ped", gdeletePed)
ADD_WIDGET_INT_SLIDER ("Set Ped rel grp", gpedrelgrp ,1, 4, 1 )
START_NEW_WIDGET_COMBO()
ADD_TO_WIDGET_COMBO ("WEAPONTYPE_UNARMED")
ADD_TO_WIDGET_COMBO ("WEAPONTYPE_PISTOL")
ADD_TO_WIDGET_COMBO ("WEAPONTYPE_ASSAULTRIFLE")
ADD_TO_WIDGET_COMBO ("WEAPONTYPE_M4")
STOP_WIDGET_COMBO("weapon", WeaponIdentifier)
ADD_WIDGET_BOOL ("Swap current peds weapon", gSwapPedWeapons)
ADD_WIDGET_BOOL ("print ped info", Bprint_ped_info)
ADD_WIDGET_BOOL ("activate def area",gPedDefAActive)
STOP_WIDGET_GROUP ()
START_WIDGET_GROUP ("Route Builder")
ADD_WIDGET_FLOAT_SLIDER ("RoutePoint.x",gRoutePoint.x, -2000, 2000, 0.25)
ADD_WIDGET_FLOAT_SLIDER ("RoutePoint.y",gRoutePoint.y, -2000, 2000, 0.25)
ADD_WIDGET_FLOAT_SLIDER ("RoutePoint.z",gRoutePoint.z, -2000, 2000, 0.25)
ADD_WIDGET_INT_SLIDER ("Route Node", gRouteNode, 0, 7, 1 )
ADD_WIDGET_BOOL ("Register Node", BSetNode)
ADD_WIDGET_BOOL ("copy cam pos", BCopyCamCoords )
STOP_WIDGET_GROUP ()
START_WIDGET_GROUP("GOTO_X_AND_AIM_AT_X")
START_NEW_WIDGET_COMBO()
ADD_TO_WIDGET_COMBO("GOTO_COORD_AND_AIM_AT_COORD")
ADD_TO_WIDGET_COMBO("GOTO_COORD_AND_AIM_AT_PED")
ADD_TO_WIDGET_COMBO("GOTO_COORD_AND_AIM_AT_VEHICLE")
ADD_TO_WIDGET_COMBO("GOTO_COORD_AND_AIM_AT_OBJECT")
ADD_TO_WIDGET_COMBO("GOTO_PED_AND_AIM_AT_COORD")
ADD_TO_WIDGET_COMBO("GOTO_PED_AND_AIM_AT_PED")
ADD_TO_WIDGET_COMBO("GOTO_PED_AND_AIM_AT_VEHICLE")
ADD_TO_WIDGET_COMBO("GOTO_PED_AND_AIM_AT_OBJECT")
ADD_TO_WIDGET_COMBO("GOTO_PED_AIMING")
STOP_WIDGET_COMBO("GOTO_X_AND_AIM_AT_X_MODE", GOTO_X_AND_AIM_AT_X_MODE)
ADD_WIDGET_FLOAT_SLIDER("GOTO_COORD.x", GOTO_COORD.x, -2000, 2000, 0.25)
ADD_WIDGET_FLOAT_SLIDER("GOTO_COORD.y", GOTO_COORD.y, -2000, 2000, 0.25)
ADD_WIDGET_FLOAT_SLIDER("GOTO_COORD.z", GOTO_COORD.z, -2000, 2000, 0.25)
ADD_WIDGET_FLOAT_SLIDER("AIM_AT_COORD.x", AIM_AT_COORD.x, -2000, 2000, 0.25)
ADD_WIDGET_FLOAT_SLIDER("AIM_AT_COORD.y", AIM_AT_COORD.y, -2000, 2000, 0.25)
ADD_WIDGET_FLOAT_SLIDER("AIM_AT_COORD.z", AIM_AT_COORD.z, -2000, 2000, 0.25)
ADD_WIDGET_FLOAT_SLIDER ("Move Blend Ratio", gfGoToPointAndAimAtPointMoveState, PEDMOVEBLENDRATIO_STILL, PEDMOVEBLENDRATIO_SPRINT, 0.1 )
ADD_WIDGET_BOOL("MOVE_AND_SHOOT", MOVE_AND_SHOOT)
STOP_WIDGET_GROUP()
STOP_WIDGET_GROUP()
ENDPROC
////////////////////////////////////////////////////////////////////////////////
//Mission flow House keeping
//PUPROSE: REmoves all the scenarios and resets all the relationships
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
for index = 0 to MAX_NUMBER_OF_OBJECTS -1
CLEAN_UP_OBJECT_ENTITIES (TestObjects[index].Object)
ENDFOR
Set_Gang_Relationships (FALSE)
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
//END: Mission flow House keeping
//Function: SCENARIO TASKS
SEQUENCE_INDEX TEST_SEQ
FUNC SEQUENCE_INDEX TASK_SHOOT_AT_COORD_SEQ ( VECTOR L_Target_Pos)
SEQUENCE_INDEX TEST_SEQUENCE
OPEN_SEQUENCE_TASK (TEST_SEQUENCE)
TASK_SHOOT_AT_COORD (NULL, L_Target_Pos, -1, FIRING_TYPE_1_BURST)
CLOSE_SEQUENCE_TASK (TEST_SEQUENCE)
RETURN TEST_SEQUENCE
ENDFUNC
FUNC SEQUENCE_INDEX FOLLOW_NAVMESH_TO_COORD_WALK_SEQ ( VECTOR L_Target_Pos)
SEQUENCE_INDEX TEST_SEQUENCE
OPEN_SEQUENCE_TASK (TEST_SEQUENCE)
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, L_Target_Pos, PEDMOVE_WALK, -2, 0.25)
CLOSE_SEQUENCE_TASK (TEST_SEQUENCE)
RETURN TEST_SEQUENCE
ENDFUNC
FUNC SEQUENCE_INDEX FOLLOW_NAVMESH_TO_COORD_RUN_SEQ ( VECTOR L_Target_Pos)
SEQUENCE_INDEX TEST_SEQUENCE
OPEN_SEQUENCE_TASK (TEST_SEQUENCE)
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, L_Target_Pos, PEDMOVE_RUN, -2, 0.25)
CLOSE_SEQUENCE_TASK (TEST_SEQUENCE)
RETURN TEST_SEQUENCE
ENDFUNC
FUNC SEQUENCE_INDEX FOLLOW_NAVMESH_TO_COORD_SPRINT_SEQ ( VECTOR L_Target_Pos)
SEQUENCE_INDEX TEST_SEQUENCE
OPEN_SEQUENCE_TASK (TEST_SEQUENCE)
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, L_Target_Pos, PEDMOVE_SPRINT, -2, 0.25)
CLOSE_SEQUENCE_TASK (TEST_SEQUENCE)
RETURN TEST_SEQUENCE
ENDFUNC
FUNC SEQUENCE_INDEX FOLLOW_ROUTE( RouteStruct &TargetRoute[])
int index
BOOL BHaveValidNode = FALSE
VECTOR TempNode
//This allows us to pass a sequnce to a ped using 7 points for maximun testing. Iess than 7 nodes can be used, and the last valid node is copied into the remaining array elements.
//Note all nodes must be in order there can be no gaps between them ie node 1 valid, 2 valid, 3 invalid is ok but not 1 valid, 2 invalid, 3 valid
//search our node array until we find a invalid array point
for index = 0 to MAX_NUMBER_OF_NODES -1
IF TargetRoute[index].RouteNodeState = FALSE
IF index <> 0
TempNode = TargetRoute[index - 1].RouteNode //grab the previous point which is valid assuming that all nodes are sequential
BHaveValidNode = TRUE
ELSE
SCRIPT_ASSERT ("Passed in sequnce with no valid nodes ")
ENDIF
ENDIF
//copy this valid node into the remaing array elements
IF (BHaveValidNode)
TargetRoute[index].RouteNode = TempNode
ENDIF
ENDFOR
SEQUENCE_INDEX TEST_SEQUENCE
OPEN_SEQUENCE_TASK (TEST_SEQUENCE)
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[0].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[1].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[2].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[3].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[4].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[5].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
TASK_FOLLOW_NAV_MESH_TO_COORD (NULL, TargetRoute[6].routenode, DYNAMIC_MOVE_BLEND_RATIO, -2, 1)
CLOSE_SEQUENCE_TASK (TEST_SEQUENCE)
RETURN TEST_SEQUENCE
ENDFUNC
//SET UP
PROC SETUP_PATROL_ROUTES ()
GET_GROUND_Z_FOR_3D_COORD (<<1.0, 1.0, 25>>, Ground_z)
OPEN_PATROL_ROUTE ("miss_loop")
ADD_PATROL_ROUTE_NODE ( 1, "StandGuard", <<1.0, 1.0, Ground_z>> , <<-4.94, 11.30, 7.0>>, 4000 )
ADD_PATROL_ROUTE_NODE ( 2, "StandGuard", <<1.0, 10.0, Ground_z>> , <<0.0, 0.0, 0.0>> , 2000 )
ADD_PATROL_ROUTE_NODE ( 3, "StandGuard", <<10.0, 1.0, Ground_z>> , <<0.0, 0.0, 0.0>>, 4000 )
ADD_PATROL_ROUTE_LINK (1, 2)
ADD_PATROL_ROUTE_LINK (2, 3)
ADD_PATROL_ROUTE_LINK (3, 1)
CLOSE_PATROL_ROUTE ()
CREATE_PATROL_ROUTE ()
OPEN_PATROL_ROUTE ("miss_branched_loop")
ADD_PATROL_ROUTE_NODE ( 1, "StandGuard", <<-17.77, 1.77, Ground_z>>, <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_NODE ( 2, "StandGuard", <<-17.38, 9.63, Ground_z>>, <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_NODE ( 3, "StandGuard", <<-26.82, 17.10, Ground_z>>, <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_NODE ( 4, "StandGuard", <<-25.76, -1.33, Ground_z>>, <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_NODE ( 5, "StandGuard", <<-10.45, 11.47, Ground_z>>, <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_NODE ( 6, "StandGuard", <<-10.61, -3.34, Ground_z>>, <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_LINK (1, 2)
ADD_PATROL_ROUTE_LINK (2, 3)
ADD_PATROL_ROUTE_LINK (3, 4)
ADD_PATROL_ROUTE_LINK (4, 1)
ADD_PATROL_ROUTE_LINK (2, 5)
ADD_PATROL_ROUTE_LINK (5, 6)
ADD_PATROL_ROUTE_LINK (6, 1)
CLOSE_PATROL_ROUTE ()
CREATE_PATROL_ROUTE ()
OPEN_PATROL_ROUTE ("miss_branched")
ADD_PATROL_ROUTE_NODE ( 1, "StandGuard", <<21.94, -1.26, Ground_z>> , <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_NODE ( 2, "StandGuard", <<30.09, 0.43, Ground_z>> , <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_NODE ( 3, "StandGuard", <<41.27, -3.28, Ground_z>> , <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_NODE ( 4, "StandGuard", <<32.41, 12.16, Ground_z>> , <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_NODE ( 5, "StandGuard", <<18.41, 20.38, Ground_z>> , <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_NODE ( 6, "StandGuard", <<45.12, 7.63, Ground_z>> , <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_LINK (1, 2)
ADD_PATROL_ROUTE_LINK (2, 3)
ADD_PATROL_ROUTE_LINK (2, 4)
ADD_PATROL_ROUTE_LINK (4, 5)
ADD_PATROL_ROUTE_LINK (4, 6)
CLOSE_PATROL_ROUTE ()
CREATE_PATROL_ROUTE ()
OPEN_PATROL_ROUTE ("miss_dead_end")
ADD_PATROL_ROUTE_NODE ( 1, "StandGuard", <<10.63, -17.70, Ground_z>> , <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_NODE ( 2, "StandGuard", <<1.46, -16.37, Ground_z>> , <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_NODE ( 3, "StandGuard", <<1.57, -7.94, Ground_z>> , <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_NODE ( 4, "StandGuard", <<15.67, -7.83, Ground_z>> , <<0.0, 0.0, 0.0>> )
ADD_PATROL_ROUTE_LINK (1, 2)
ADD_PATROL_ROUTE_LINK (2, 3)
ADD_PATROL_ROUTE_LINK (3, 4)
CLOSE_PATROL_ROUTE ()
CREATE_PATROL_ROUTE ()
ENDPROC
FUNC SEQUENCE_INDEX FOLLOW_PATROL_ROUTE ( STRING RouteName, PATROL_ALERT_STATE alert_state )
SEQUENCE_INDEX TEST_SEQUENCE
OPEN_SEQUENCE_TASK (TEST_SEQUENCE)
TASK_PATROL (null, RouteName, alert_state, true )
CLOSE_SEQUENCE_TASK (TEST_SEQUENCE)
RETURN TEST_SEQUENCE
ENDFUNC
PROC DRIVE_TO_POINT_SEQUENCE (PED_INDEX ped, VEHICLE_INDEX veh)
SEQUENCE_INDEX SEQ
OPEN_SEQUENCE_TASK (SEQ)
// IF NOT IS_PED_INJURED(TestPeds[1].Ped)
// TASK_VEHICLE_SHOOT_AT_PED(NULL, TestPeds[1].Ped )
// ENDIF
TASK_FLUSH_ROUTE()
TASK_EXTEND_ROUTE(<< -17.30, -6.60, 1.19>>+ gvMapOffset )
TASK_EXTEND_ROUTE(<<-16.69, 12.23, 1.19 >>+ gvMapOffset )
TASK_EXTEND_ROUTE(<<12.18, 12.76, 1.19 >> + gvMapOffset)
TASK_EXTEND_ROUTE(<<13.37, -14.18, 1.19 >>+ gvMapOffset )
TASK_DRIVE_POINT_ROUTE (NULL, veh, 1.0 )
// IF bShootAtPed1 = TRUE
// ADD_VEHICLE_SUBTASK_ATTACK_PED(NULL, TestPeds[1].Ped )
// ENDIF
SET_SEQUENCE_TO_REPEAT(seq, REPEAT_FOREVER)
CLOSE_SEQUENCE_TASK(SEQ)
IF NOT IS_PED_INJURED (ped)
TASK_PERFORM_SEQUENCE (ped, seq)
CLEAR_SEQUENCE_TASK (seq)
ENDIF
ENDPROC
//Function End: SCENARIO TASKS
//Functions: DEFENSIVE AREA
STRUCT DefSphereSt
VECTOR DefensiveAreaPos
FLOAT DefensiveAreaRadius
VECTOR DefensiveAreaDirection
ENDSTRUCT
DefSphereSt DefensiveSphereAreas [4]
int iCurrentDefensiveArea = 0
ENUM SCENARIO_STATE_ENUM
STATE_INIT,
STATE_1,
STATE_2,
STATE_3,
STATE_4
ENDENUM
SCENARIO_STATE_ENUM SCENARIO_STATE = STATE_INIT
ENUM PREFERRED_COVER_FLAGS
PREFERRED_COVER_INIT,
PREFERRED_COVER_RUN,
PREFERRED_COVER_FINISH
ENDENUM
PREFERRED_COVER_FLAGS PREFERRED_COVER_STATE = PREFERRED_COVER_INIT
// SCENARIO: SquadOfPedsMovingBetweenVehicles
ENUM Scenario_SquadOfPedsMovingBetweenVehicles_Flags
Scenario_SquadOfPedsMovingBetweenVehicles_init,
Scenario_SquadOfPedsMovingBetweenVehicles_SwapDefAreas
ENDENUM
Scenario_SquadOfPedsMovingBetweenVehicles_Flags Scenario_SquadOfPedsMovingBetweenVehicles = Scenario_SquadOfPedsMovingBetweenVehicles_init
ENUM Scenario_TaskStayInCover_Flags
Scenario_TaskStayInCover_init,
Scenario_TaskStayInCover_SwapDefAreas
ENDENUM
Scenario_TaskStayInCover_Flags Scenario_TaskStayInCover = Scenario_TaskStayInCover_init
// Peds moving behind a moving vehicle
ENUM Scenario_SquadStaysDefensiveBehindVehicle_Flags
Scenario_SquadStaysDefensiveBehindVehicle_init,
Scenario_SquadStaysDefensiveBehindVehicle_Run
ENDENUM
Scenario_SquadStaysDefensiveBehindVehicle_Flags Scenario_SquadStaysDefensiveBehindVehicle = Scenario_SquadStaysDefensiveBehindVehicle_init
// Scenario_SquadDefendingPos
ENUM Scenario_SquadDefendingPos_Flags
Scenario_SquadDefendingPos_init,
Scenario_SquadDefendingPos_grp2,
Scenario_SquadDefendingPos_grp3
ENDENUM
Scenario_SquadDefendingPos_Flags Scenario_SquadDefendingPos = Scenario_SquadDefendingPos_init
//Scenario_PedDoesWeirdThingsSeekingCover
ENUM Scenario_PedDoesWeirdThingsSeekingCover_Flags
Scenario_PedDoesWeirdThingsSeekingCover_init,
Scenario_PedDoesWeirdThingsSeekingCover_run
ENDENUM
Scenario_PedDoesWeirdThingsSeekingCover_Flags Scenario_PedDoesWeirdThingsSeekingCover_Status = Scenario_PedDoesWeirdThingsSeekingCover_init
ENUM Scenario_CombatRanges_Flags
Scenario_CombatRanges_init,
Scenario_CombatRanges_run
ENDENUM
Scenario_CombatRanges_Flags Scenario_CombatRanges_Status = Scenario_CombatRanges_init
PROC INITALISE_TEST_STATE()
//reset each scenario
SingleTaskStatus = startSingleTask
//reset each scenario
Scenario_SquadOfPedsMovingBetweenVehicles = Scenario_SquadOfPedsMovingBetweenVehicles_init
Scenario_SquadStaysDefensiveBehindVehicle = Scenario_SquadStaysDefensiveBehindVehicle_Init
Scenario_SquadDefendingPos = Scenario_SquadDefendingPos_init
Scenario_PedDoesWeirdThingsSeekingCover_Status = Scenario_PedDoesWeirdThingsSeekingCover_init
Scenario_TaskStayInCover = Scenario_TaskStayInCover_init
SCENARIO_STATE = STATE_INIT
//end reset
ENDPROC
ITEMSET_INDEX PreferredCoverItemSet = NULL
BOOL ADDED_PREFERRED_COVER_POINTS = FALSE
VECTOR COV_POS1 = <<4.21, 184.97, 6.35>>
VECTOR COV_POS2 = <<9.84, 184.98, 6.35>>
VECTOR COV_POS3 = <<14.36, 185.07, 6.35>>
VECTOR COV_POS4 = <<21.17, 178.58, 6.35>>
PROC SETUP_COMBAT_TARGETS_DATA ()
TestPeds[0].PedsCoords = <<10.76, 238.84, 6.35>>
TestPeds[0].PedHeading = 0
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[0].PedsWeapon = WEAPONTYPE_SMG
TestPeds[0].PedcombatMove = 0
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = TRUE
TestPeds[1].PedsCoords = <<8.91, 244.60, 6.35>>
TestPeds[1].PedHeading = 0
TestPeds[1].Pedrelgrp = 2
TestPeds[1].PedModel = S_M_Y_MARINE_01
TestPeds[1].PedsWeapon = WEAPONTYPE_CARBINERIFLE
TestPeds[1].PedcombatMove = 0
TestPeds[1].pedcombatrange = 2
TestPeds[1].combatcover = CA_USE_COVER
TestPeds[1].bcombatcover = TRUE
TestPeds[2].PedsCoords = <<11.04, 244.83, 6.35>>
TestPeds[2].PedHeading = 0
TestPeds[2].Pedrelgrp = 2
TestPeds[2].PedModel = S_M_Y_MARINE_02
TestPeds[2].PedsWeapon = WEAPONTYPE_CARBINERIFLE
TestPeds[2].PedcombatMove = 0
TestPeds[2].pedcombatrange = 2
TestPeds[2].combatcover = CA_USE_COVER
TestPeds[2].bcombatcover = TRUE
TestCams[FixedCamera].cam_pos = <<12.399977,229.328735,13.197482>>
TestCams[FixedCamera].cam_rot = <<-31.897488,-0.000000,-9.631414>>
TestCams[FixedCamera].cam_fov = 65.0
TestCams[FixedCamera].bActivateCam = TRUE
ENDPROC
PROC SETUP_AIM_GUN_DATA()
TestPeds[0].PedsCoords = <<-41.63, 243.31, 6.35>>
TestPeds[0].PedHeading = 0
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[0].PedsWeapon = WEAPONTYPE_MINIGUN
TestPeds[0].PedcombatMove = 0
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = TRUE
TestPeds[1].PedsCoords = <<-34.78, 243.96, 6.35>>
TestPeds[1].PedHeading = 0
TestPeds[1].Pedrelgrp = 2
TestPeds[1].PedModel = S_M_Y_MARINE_01
TestPeds[1].PedsWeapon = WEAPONTYPE_CARBINERIFLE
TestPeds[1].PedcombatMove = 0
TestPeds[1].pedcombatrange = 2
TestPeds[1].combatcover = CA_USE_COVER
TestPeds[1].bcombatcover = TRUE
TestPeds[2].PedsCoords = <<-34.78, 240.96, 6.35>>
TestPeds[2].PedHeading = 0
TestPeds[2].Pedrelgrp = 2
TestPeds[2].PedModel = S_M_Y_MARINE_01
TestPeds[2].PedsWeapon = WEAPONTYPE_CARBINERIFLE
TestPeds[2].PedcombatMove = 0
TestPeds[2].pedcombatrange = 2
TestPeds[2].combatcover = CA_USE_COVER
TestPeds[2].bcombatcover = TRUE
TestVehicles [0].vehicleCoords = <<-33.68, 249.10, 6.35>>
TestVehicles [0].vehicleHeading = 90
TestVehicles [0].vehiclemodel = TAILGATER
TestObjects[0].ObjectCoords = <<-43.51, 242.88, 6.35>>
TestObjects[0].ObjectModel = PROP_LETTERBOX_01
TestCams[FixedCamera].cam_pos = <<-42.041958,239.649292,10.411165>>
TestCams[FixedCamera].cam_rot = <<-36.519039,-0.000000,-13.888417>>
TestCams[FixedCamera].cam_fov = 65.0
TestCams[FixedCamera].bActivateCam = TRUE
ENDPROC
PROC SETUP_COVER_DATA()
IF bUseLowCoverPoint
TestPeds[0].PedsCoords = <<-64.11, 92.81, 6.35>>
ELSE
TestPeds[0].PedsCoords = <<-63.36, 98.82, 6.35>>
ENDIF
TestPeds[0].PedHeading = 98.00
TestPeds[0].Pedrelgrp = 1
IF bUseSwatModel
TestPeds[0].PedModel = S_M_Y_SWAT_01
ELSE
TestPeds[0].PedModel = S_M_Y_Cop_01
ENDIF
IF bUseOneHandedWeapon
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
ELSE
TestPeds[0].PedsWeapon = WEAPONTYPE_CARBINERIFLE
ENDIF
TestPeds[0].PedcombatMove = 0
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = TRUE
TestPeds[1].PedsCoords = <<-68.53, 101.53, 6.35>>
TestPeds[1].PedHeading = 0
TestPeds[1].Pedrelgrp = 2
TestPeds[1].PedModel = S_F_M_MAID_01
TestPeds[1].PedsWeapon = WEAPONTYPE_MINIGUN
TestPeds[1].PedcombatMove = 0
TestPeds[1].pedcombatrange = 2
TestPeds[1].combatcover = CA_USE_COVER
TestPeds[1].bcombatcover = TRUE
TestCams[FixedCamera].cam_pos = <<-55.604721,99.186378,11.271409>>
TestCams[FixedCamera].cam_rot = <<-34.457100,-0.000000,106.999374>>
TestCams[FixedCamera].cam_fov = 65.0
TestCams[FixedCamera].bActivateCam = TRUE
ENDPROC
PROC SETUP_GUARD_DATA()
TestPeds[0].PedsCoords = <<13.77, 182.27, 6.35>>
TestPeds[0].PedHeading = 0
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[0].PedcombatMove = 0
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = TRUE
TestCams[FixedCamera].cam_pos = <<6.797447,175.978683,15.128465>>
TestCams[FixedCamera].cam_rot = <<-38.216122,0.225905,-52.729095>>
TestCams[FixedCamera].cam_fov = 65.0
TestCams[FixedCamera].bActivateCam = TRUE
ENDPROC
PROC SETUP_COMBAT_PED_DATA ()
gbPlayerShouldBeAtCamPos = TRUE
TestPeds[0].PedsCoords = <<21.75, -56.00, 6.35>>
TestPeds[0].PedHeading = 0
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[0].PedsWeapon = WEAPONTYPE_SMG
TestPeds[0].PedcombatMove = 0
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = TRUE
TestPeds[1].PedsCoords = <<24.13, -46.20, 6.35>>
TestPeds[1].PedHeading = 180
TestPeds[1].Pedrelgrp = 2
TestPeds[1].PedModel = S_M_Y_MARINE_01
TestPeds[1].PedsWeapon = WEAPONTYPE_CARBINERIFLE
TestPeds[1].PedcombatMove = 0
TestPeds[1].pedcombatrange = 2
TestPeds[1].combatcover = CA_USE_COVER
TestPeds[1].bcombatcover = TRUE
TestCams[FixedCamera].cam_pos = <<13.917382,-50.876545,7.909274>>
TestCams[FixedCamera].cam_rot = <<-3.043049,0.000000,-102.989365>>
TestCams[FixedCamera].cam_fov = 65.0
TestCams[FixedCamera].bActivateCam = TRUE
ENDPROC
PROC SETUP_PREFERRED_COVER_DATA ()
ENDPROC
PROC SETUP_TEST_DATA ()
SWITCH int_to_enum (scenarios, gcurrentselection)
CASE TEST_TASK_COMBAT_PED
SETUP_COMBAT_PED_DATA ()
BREAK
CASE TEST_TASK_COMBAT_HATED_TARGETS_AROUND_PED
CASE TEST_TASK_COMBAT_HATED_TARGETS_AROUND_PED_TIMED
CASE TEST_TASK_COMBAT_TIMED
CASE TEST_TASK_COMBAT_HATED_PED_IN_AREA
SETUP_COMBAT_TARGETS_DATA ()
BREAK
CASE TEST_TASK_AIM_GUN_AT_COORD
CASE TEST_TASK_AIM_GUN_AT_ENTITY
CASE TEST_TASK_SHOOT_AT_COORD
CASE TEST_TASK_GOTO_X_WHILE_AIMING_AT_X
SETUP_AIM_GUN_DATA()
BREAK
CASE TEST_TASK_SEEK_COVER_FROM_POS
CASE TEST_TASK_SEEK_COVER_FROM_PED
CASE TEST_TASK_SEEK_COVER_TO_COVER_POINT
CASE TEST_TASK_SEEK_COVER_TO_COVER_COORD
CASE TEST_TASK_PUT_PED_DIRECTLY_INTO_COVER
gbPlayerShouldBeAtCamPos = FALSE
PlayerStartPos = <<-62.38, 88.74, 6.35>>
SETUP_COVER_DATA()
BREAK
CASE TEST_TASK_GUARD_ASSIGNED_DEFENSIVE_AREA
CASE TEST_TASK_GUARD_ANGLED_DEFENSIVE_AREA
CASE TEST_TASK_GUARD_SPHERE_DEFENSIVE_AREA
CASE TEST_TASK_GUARD_CURRENT_POS
CASE TEST_TASK_STAND_GUARD
gbPlayerShouldBeAtCamPos = TRUE
SETUP_GUARD_DATA()
BREAK
CASE SET_PED_PREFERRED_COVER
gbPlayerShouldBeAtCamPos = FALSE
PlayerStartPos = <<13.96, 193.80, 6.35>>
TestPeds[0].PedsCoords = <<11.90, 172.52, 6.35>>
TestPeds[0].PedHeading = 359.6439
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[0].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[0].PedcombatMove = 0
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = TRUE
IF NOT ADDED_PREFERRED_COVER_POINTS
COVERPOINT_INDEX coverIndex
PreferredCoverItemSet = CREATE_ITEMSET(true)
coverIndex = ADD_COVER_POINT(COV_POS1, 0.0, COVUSE_WALLTOLEFT, COVHEIGHT_LOW, COVARC_120)
ADD_TO_ITEMSET(coverIndex, PreferredCoverItemSet)
coverIndex = ADD_COVER_POINT(COV_POS2, 0.0, COVUSE_WALLTOLEFT, COVHEIGHT_LOW, COVARC_120)
ADD_TO_ITEMSET(coverIndex, PreferredCoverItemSet)
coverIndex = ADD_COVER_POINT(COV_POS3, 0.0, COVUSE_WALLTOLEFT, COVHEIGHT_LOW, COVARC_120)
ADD_TO_ITEMSET(coverIndex, PreferredCoverItemSet)
coverIndex = ADD_COVER_POINT(COV_POS4, 0.0, COVUSE_WALLTOLEFT, COVHEIGHT_LOW, COVARC_120)
ADD_TO_ITEMSET(coverIndex, PreferredCoverItemSet)
ADDED_PREFERRED_COVER_POINTS = TRUE
ENDIF
PREFERRED_COVER_STATE = PREFERRED_COVER_INIT
BREAK
CASE TEST_TASK_PATROL
TestPeds[0].PedsCoords = << 0.95, -5.32, 7.36>>
TestPeds[0].PedHeading = 359.6439
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[0].PedsWeapon = WEAPONTYPE_UNARMED
TestPeds[0].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[0].PedcombatMove = 0
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = FALSE
TestPeds[1].PedsCoords = <<4.59, -5.45, 7.36>>
TestPeds[1].PedHeading = 359.6439
TestPeds[1].Pedrelgrp = 1
TestPeds[1].PedModel = S_M_Y_Cop_01
TestPeds[1].PedsWeapon = WEAPONTYPE_UNARMED
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[1].PedcombatMove = 0
TestPeds[1].pedcombatrange = 2
TestPeds[1].combatcover = CA_USE_COVER
TestPeds[1].bcombatcover = FALSE
TestPeds[2].PedsCoords = << 8.09, -5.49, 7.36>>
TestPeds[2].PedHeading = 359.6439
TestPeds[2].Pedrelgrp = 1
TestPeds[2].PedModel = S_M_Y_Cop_01
TestPeds[2].PedsWeapon = WEAPONTYPE_UNARMED
TestPeds[2].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[2].PedcombatMove = 0
TestPeds[2].pedcombatrange = 2
TestPeds[2].combatcover = CA_USE_COVER
TestPeds[2].bcombatcover = FALSE
TestPeds[3].PedsCoords = <<13.40, -5.49, 7.36>>
TestPeds[3].PedHeading = 359.6439
TestPeds[3].Pedrelgrp = 1
TestPeds[3].PedModel = S_M_Y_Cop_01
TestPeds[3].PedsWeapon = WEAPONTYPE_UNARMED
TestPeds[3].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[3].PedcombatMove = 0
TestPeds[3].pedcombatrange = 2
TestPeds[3].combatcover = CA_USE_COVER
TestPeds[3].bcombatcover = FALSE
TestCams[FixedCamera].cam_pos = <<-5.19, 16.72, 14>>
TestCams[FixedCamera].cam_rot = <<-16.42, 0, -154.76>>
TestCams[FixedCamera].bActivateCam = TRUE
BREAK
CASE TEST_IS_PED_RESPONDING_TO_EVENT
SETUP_COMBAT_PED_DATA ()
BREAK
CASE TEST_HAS_PED_RECEIVED_EVENT
gbPlayerShouldBeAtCamPos = FALSE
PlayerStartPos = <<13.96, 193.80, 6.35>>
TestPeds[0].PedsCoords = <<11.90, 172.52, 6.35>>
TestPeds[0].PedHeading = 359.6439
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[0].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[0].PedcombatMove = 0
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = TRUE
TestVehicles [0].vehicleCoords = <<-33.68, 249.10, 6.35>>
TestVehicles [0].vehicleHeading = 90
TestVehicles [0].vehiclemodel = TAILGATER
BREAK
CASE SCENARIO_PED_MOVE_TO_COVER_PED_STAYS_STILL
gbPlayerShouldBeAtCamPos = TRUE
TestPeds[0].PedsCoords = <<-1.48, 93.43, 6.35>>
TestPeds[0].PedHeading = 180
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[0].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[0].PedcombatMove = 0
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = FALSE
TestPeds[1].PedsCoords = <<-1.91, 80.54, 6.35>>
TestPeds[1].PedHeading = -180.0000
TestPeds[1].Pedrelgrp = 2
TestPeds[1].PedModel = S_M_M_ARMOURED_01
TestPeds[1].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestVehicles[0].vehicleCoords = <<-1.20, 84.55, 6.35>>
TestVehicles[0].vehicleHeading = 90.0001
TestVehicles[0].vehiclemodel = TAILGATER
TestCams[FixedCamera].cam_pos = <<-18.172731,81.990250,11.204312>>
TestCams[FixedCamera].cam_rot = <<-15.434171,0.000000,-85.945595>>
TestCams[FixedCamera].bActivateCam = TRUE
BREAK
CASE BugPedsNotShootingThroughFreindlyPed
TestPeds[0].PedsCoords = << -1.4167, 0.0727, 7.36>>
TestPeds[0].PedHeading = 359.6439
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[0].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[0].PedcombatMove = 0
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = TRUE
TestPeds[1].PedsCoords = << -1.2937, 0.9857, 7.36>>
TestPeds[1].PedHeading = 5.0422
TestPeds[1].Pedrelgrp = 1
TestPeds[1].PedModel = S_M_Y_Cop_01
TestPeds[1].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[2].PedsCoords = << -1.0437, 8.4857, 7.36>>
TestPeds[2].PedHeading = 181.0422
TestPeds[2].Pedrelgrp = 2
TestPeds[2].PedModel = S_M_Y_Cop_01
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[2].PedcombatMove = 0
TestPeds[2].combatcover = CA_USE_COVER
TestPeds[2].bcombatcover = FALSE
TestCams[FixedCamera].cam_pos = <<-10.2,6.3,4.3>>
TestCams[FixedCamera].cam_rot = <<-11.27, 0.0, -98.75>>
TestCams[FixedCamera].cam_fov = 65.0
TestCams[FixedCamera].bActivateCam = TRUE
BREAK
CASE SCENARIO_BOTH_PEDS_MOVE_TO_COVER
TestPeds[0].PedsCoords = << -1.4167, 0.0727, 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].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[0].PedcombatMove = 2
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = TRUE
TestPeds[2].PedsCoords = << 0.0000, 20.2500, 1.1959>> + gvMapOffset
TestPeds[2].PedHeading = 180.0000
TestPeds[2].Pedrelgrp = 2
TestPeds[2].PedModel = S_M_Y_Cop_01
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[2].combatcover = CA_USE_COVER
TestPeds[2].bcombatcover = TRUE
TestVehicles [0 ].vehicleCoords = << -0.2515, 9.7511, 1.9393>> + gvMapOffset
TestVehicles [0 ].vehicleHeading = 89.9995
TestVehicles [0 ].vehiclemodel = FBI
TestCams[FixedCamera].cam_pos = <<-19.069626,7.701386,6.704120>>+ gvMapOffset
TestCams[FixedCamera].cam_rot = <<-19.276978,0.000002,-93.249466>>
TestCams[FixedCamera].bActivateCam = TRUE
BREAK
CASE SCENARIO_TWO_PEDS_NO_COVER
TestPeds[0].PedsCoords = << -0.9167, -5.9273, 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].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[0].PedcombatMove = 2 //will advance
TestPeds[0].pedcombatrange = 0 //combat_range
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = FALSE
TestPeds[2].PedsCoords = << -3.8539, 22.2401, 1.1959>> + gvMapOffset
TestPeds[2].PedHeading = 178.7689
TestPeds[2].Pedrelgrp = 2
TestPeds[2].PedModel = S_M_Y_Cop_01
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[2].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[2].PedcombatMove = 2
TestPeds[2].pedcombatrange = 0
TestPeds[2].combatcover = CA_USE_COVER
TestPeds[2].bcombatcover = FALSE
TestCams[FixedCamera].cam_pos = <<-19.069626,7.701386,6.704120>>+ gvMapOffset
TestCams[FixedCamera].cam_rot = <<-19.276978,0.000002,-93.249466>>
TestCams[FixedCamera].bActivateCam = TRUE
BREAK
CASE ARifle_guy_in_cover_breaking
TestPeds[0].PedsCoords = << -2.1667, -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_UNARMED
TestPeds[0].pedsstringweapon = "WEAPONTYPE_UNARMED"
TestPeds[0].PedcombatMove = 2
TestPeds[0].pedcombatrange = 2
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = FALSE
TestPeds[1].PedsCoords = << -4.6667, -1.4273, 1.1959>> + gvMapOffset
TestPeds[1].PedHeading = -0.0000
TestPeds[1].Pedrelgrp = 1
TestPeds[1].PedModel = S_M_Y_Cop_01
TestPeds[1].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[2].PedsCoords = << -2.5000, 19.5000, 1.1959>> + gvMapOffset
TestPeds[2].PedHeading = 180.0000
TestPeds[2].Pedrelgrp = 2
TestPeds[2].PedModel = S_M_Y_Cop_01
TestPeds[2].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[2].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
TestVehicles [0 ].vehicleCoords = << -3.2515, 17.2517, 1.9393>> + gvMapOffset
TestVehicles [0 ].vehicleHeading = 90.0001
TestVehicles [0 ].vehiclemodel = FBI
TestCams[0].cam_pos = <<-27.408384,8.174817,9.370035>>+ gvMapOffset
TestCams[0].cam_rot = <<-19.276978,0.000002,-93.249466>>
TestCams[FixedCamera].bActivateCam = TRUE
BREAK
CASE SquadOfPedsMovingBetweenVehicles
CASE ScenarioCombatRanges
TestPeds[0].PedsCoords = << -2.1667, -8.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].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[0].PedcombatMove = 1
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = TRUE
TestPeds[1].PedsCoords = << -8.6667, -8.6773, 1.1959>> + gvMapOffset
TestPeds[1].PedHeading = -0.0000
TestPeds[1].Pedrelgrp = 1
TestPeds[1].PedModel = S_M_Y_Cop_01
TestPeds[1].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[1].PedcombatMove = 1
TestPeds[1].combatcover = CA_USE_COVER
TestPeds[1].bcombatcover = TRUE
TestPeds[2].PedsCoords = << -5.5000, 22.7500, 1.1959>> + gvMapOffset
TestPeds[2].PedHeading = 180.0000
TestPeds[2].Pedrelgrp = 2
TestPeds[2].PedModel = S_M_Y_Cop_01
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[2].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[2].PedActiveDefArea = TRUE
TestPeds[2].PedDefCoord = <<-3.0, 21.25, 2.25>>
TestPeds[2].PedDefArea = 6.25
TestPeds[2].PedcombatMove = 1
TestPeds[2].combatcover = CA_USE_COVER
TestPeds[2].bcombatcover = TRUE
TestPeds[3].PedsCoords = << -3.7500, 22.5000, 1.1959>> + gvMapOffset
TestPeds[3].PedHeading = 188.0000
TestPeds[3].Pedrelgrp = 2
TestPeds[3].PedModel = S_M_Y_Cop_01
TestPeds[3].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[3].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[3].PedActiveDefArea = TRUE
TestPeds[3].PedDefCoord = <<-3.0, 21.25, 2.25>>
TestPeds[3].PedDefArea = 6.25
TestPeds[3].PedcombatMove = 1
TestPeds[3].combatcover = CA_USE_COVER
TestPeds[3].bcombatcover = TRUE
TestPeds[4].PedsCoords = << -2.0000, 22.5000, 1.1959>> + gvMapOffset
TestPeds[4].PedHeading = 178.0000
TestPeds[4].Pedrelgrp = 2
TestPeds[4].PedModel = S_M_Y_Cop_01
TestPeds[4].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[4].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[4].PedActiveDefArea = TRUE
TestPeds[4].PedDefCoord = <<-3.0, 21.25, 2.25>>
TestPeds[4].PedDefArea = 6.25
TestPeds[4].PedcombatMove = 1
TestPeds[4].combatcover = CA_USE_COVER
TestPeds[4].bcombatcover = TRUE
TestPeds[5].PedsCoords = << -0.7500, -6.2500, 1.1959>> + gvMapOffset
TestPeds[5].PedHeading = -0.0000
TestPeds[5].Pedrelgrp = 1
TestPeds[5].PedModel = S_M_Y_Cop_01
TestPeds[5].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[5].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[5].PedcombatMove = 1
TestPeds[5].combatcover = CA_USE_COVER
TestPeds[5].bcombatcover = TRUE
TestVehicles [0 ].vehicleCoords = << -0.7516, 20.0020, 1.9393>> + gvMapOffset
TestVehicles [0 ].vehicleHeading = 90.0001
TestVehicles [0 ].vehiclemodel = FBI
TestVehicles [1 ].vehicleCoords = << -5.5018, 20.2520, 1.9343>> + gvMapOffset
TestVehicles [1 ].vehicleHeading = 268.0000
TestVehicles [1 ].vehiclemodel = FBI
TestVehicles [2 ].vehicleCoords = << 2.7483, -4.4986, 1.9392>> + gvMapOffset
TestVehicles [2 ].vehicleHeading = 114.0000
TestVehicles [2 ].vehiclemodel = FBI
TestVehicles [3 ].vehicleCoords = << -8.7512, 4.5025, 1.9393>> + gvMapOffset
TestVehicles [3 ].vehicleHeading = 246.0001
TestVehicles [3 ].vehiclemodel = FBI
TestVehicles [4 ].vehicleCoords = << -13.2511, -2.7475, 1.9393>> + gvMapOffset
TestVehicles [4 ].vehicleHeading = 258.0002
TestVehicles [4 ].vehiclemodel = FBI
TestVehicles [5 ].vehicleCoords = << 0.4979, 8.7521, 1.9393>> + gvMapOffset
TestVehicles [5 ].vehicleHeading = 284.0001
TestVehicles [5 ].vehiclemodel = FBI
TestCams[0].cam_pos = <<9.449883,-7.967893,12.322974>> + gvMapOffset
TestCams[0].cam_rot = <<-38.123238,-0.000001,50.392761>>
TestCams[FixedCamera].bActivateCam = TRUE
DefensiveSphereAreas[0].DefensiveAreaPos = <<-14.0, -1.25, 1.25 >> + gvMapOffset
DefensiveSphereAreas[0].DefensiveAreaRadius = 4.25
DefensiveSphereAreas[0].DefensiveAreaDirection = <<3.25, -3.25, 1.25 >> + gvMapOffset
DefensiveSphereAreas[1].DefensiveAreaPos = <<3.25, -3.25, 1.25 >>
DefensiveSphereAreas[1].DefensiveAreaRadius = 4.25
DefensiveSphereAreas[1].DefensiveAreaDirection = <<-14.0, -1.25, 1.25 >> + gvMapOffset
DefensiveSphereAreas[2].DefensiveAreaPos = <<-8.75, 4.0, 1.25>>
DefensiveSphereAreas[2].DefensiveAreaRadius = 4.25
DefensiveSphereAreas[2].DefensiveAreaDirection = <<0.75, 8.5, 1.25 >> + gvMapOffset
DefensiveSphereAreas[3].DefensiveAreaPos = <<0.75, 8.5, 1.25 >>
DefensiveSphereAreas[3].DefensiveAreaRadius = 4.25
DefensiveSphereAreas[3].DefensiveAreaDirection = <<-8.75, 4.0, 1.25>> + gvMapOffset
MAX_NUMBER_DEFENSIVE_AREA = 4
BREAK
CASE ScenarioTaskStayInCover
TestPeds[0].PedsCoords = << -2.1667, -8.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].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[0].PedcombatMove = 1
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = TRUE
TestPeds[1].PedsCoords = << -8.6667, -8.6773, 1.1959>> + gvMapOffset
TestPeds[1].PedHeading = -0.0000
TestPeds[1].Pedrelgrp = 1
TestPeds[1].PedModel = S_M_Y_COP_01
TestPeds[1].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[1].PedcombatMove = 1
TestPeds[1].combatcover = CA_USE_COVER
TestPeds[1].bcombatcover = TRUE
TestPeds[2].PedsCoords = << -5.5000, 22.7500, 1.1959>> + gvMapOffset
TestPeds[2].PedHeading = 180.0000
TestPeds[2].Pedrelgrp = 2
TestPeds[2].PedModel = S_M_Y_COP_01
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[2].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[2].PedActiveDefArea = TRUE
TestPeds[2].PedDefCoord = <<-3.0, 21.25, 2.25>>
TestPeds[2].PedDefArea = 6.25
TestPeds[2].PedcombatMove = 1
TestPeds[2].combatcover = CA_USE_COVER
TestPeds[2].bcombatcover = TRUE
TestPeds[3].PedsCoords = << -3.7500, 22.5000, 1.1959>> + gvMapOffset
TestPeds[3].PedHeading = 188.0000
TestPeds[3].Pedrelgrp = 2
TestPeds[3].PedModel = S_M_Y_COP_01
TestPeds[3].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[3].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[3].PedActiveDefArea = TRUE
TestPeds[3].PedDefCoord = <<-3.0, 21.25, 2.25>> + gvMapOffset
TestPeds[3].PedDefArea = 6.25
TestPeds[3].PedcombatMove = 1
TestPeds[3].combatcover = CA_USE_COVER
TestPeds[3].bcombatcover = TRUE
TestPeds[4].PedsCoords = << -2.0000, 22.5000, 1.1959>> + gvMapOffset
TestPeds[4].PedHeading = 178.0000
TestPeds[4].Pedrelgrp = 2
TestPeds[4].PedModel = S_M_Y_COP_01
TestPeds[4].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[4].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[4].PedActiveDefArea = TRUE
TestPeds[4].PedDefCoord = <<-3.0, 21.25, 2.25>> + gvMapOffset
TestPeds[4].PedDefArea = 6.25
TestPeds[4].PedcombatMove = 1
TestPeds[4].combatcover = CA_USE_COVER
TestPeds[4].bcombatcover = TRUE
TestPeds[5].PedsCoords = << -0.7500, -6.2500, 1.1959>> + gvMapOffset
TestPeds[5].PedHeading = -0.0000
TestPeds[5].Pedrelgrp = 1
TestPeds[5].PedModel = S_M_Y_COP_01
TestPeds[5].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[5].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[5].PedcombatMove = 1
TestPeds[5].combatcover = CA_USE_COVER
TestPeds[5].bcombatcover = TRUE
TestVehicles [0 ].vehicleCoords = << -0.7516, 20.0020, 1.9393>> + gvMapOffset
TestVehicles [0 ].vehicleHeading = 90.0001
TestVehicles [0 ].vehiclemodel = FBI
TestVehicles [1 ].vehicleCoords = << -5.5018, 20.2520, 1.9343>> + gvMapOffset
TestVehicles [1 ].vehicleHeading = 268.0000
TestVehicles [1 ].vehiclemodel = FBI
TestVehicles [2 ].vehicleCoords = << 2.7483, -4.4986, 1.9392>> + gvMapOffset
TestVehicles [2 ].vehicleHeading = 114.0000
TestVehicles [2 ].vehiclemodel = FBI
TestVehicles [3 ].vehicleCoords = << -8.7512, 4.5025, 1.9393>> + gvMapOffset
TestVehicles [3 ].vehicleHeading = 246.0001
TestVehicles [3 ].vehiclemodel = FBI
TestVehicles [4 ].vehicleCoords = << -13.2511, -2.7475, 1.9393>> + gvMapOffset
TestVehicles [4 ].vehicleHeading = 258.0002
TestVehicles [4 ].vehiclemodel = FBI
TestVehicles [5 ].vehicleCoords = << 0.4979, 8.7521, 1.9393>> + gvMapOffset
TestVehicles [5 ].vehicleHeading = 284.0001
TestVehicles [5 ].vehiclemodel = FBI
TestCams[0].cam_pos = <<9.449883,-7.967893,12.322974>>+ gvMapOffset
TestCams[0].cam_rot = <<-38.123238,-0.000001,50.392761>>
TestCams[FixedCamera].bActivateCam = TRUE
DefensiveSphereAreas[0].DefensiveAreaPos = <<-14.0, -1.25, 1.25 >>+ gvMapOffset
DefensiveSphereAreas[0].DefensiveAreaRadius = 4.25
DefensiveSphereAreas[0].DefensiveAreaDirection = <<3.25, -3.25, 1.25 >>+ gvMapOffset
DefensiveSphereAreas[1].DefensiveAreaPos = <<3.25, -3.25, 1.25 >>
DefensiveSphereAreas[1].DefensiveAreaRadius = 4.25
DefensiveSphereAreas[1].DefensiveAreaDirection = <<-14.0, -1.25, 1.25 >>+ gvMapOffset
DefensiveSphereAreas[2].DefensiveAreaPos = <<-8.75, 4.0, 1.25>>
DefensiveSphereAreas[2].DefensiveAreaRadius = 4.25
DefensiveSphereAreas[2].DefensiveAreaDirection = <<0.75, 8.5, 1.25 >>+ gvMapOffset
DefensiveSphereAreas[3].DefensiveAreaPos = <<0.75, 8.5, 1.25 >>
DefensiveSphereAreas[3].DefensiveAreaRadius = 4.25
DefensiveSphereAreas[3].DefensiveAreaDirection = <<-8.75, 4.0, 1.25>>+ gvMapOffset
MAX_NUMBER_DEFENSIVE_AREA = 4
BREAK
CASE BugAiCantDriveTank
TestPeds[0].PedsCoords = << 0.9833, -15.0394, 1.1959>> + gvMapOffset
TestPeds[0].PedHeading = -0.0000
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_COP_01
TestPeds[0].PedsWeapon = WEAPONTYPE_UNARMED
TestPeds[0].pedsstringweapon = "WEAPONTYPE_UNARMED"
TestPeds[0].PedDefCoord = << -4.4804, -10.3374, 2.0797>> + gvMapOffset
TestPeds[0].PedDefArea = 5.0000
TestPeds[0].PedActiveDefArea = TRUE
// TestPeds[1].PedsCoords = << 20.9833, -15.0394, 1.1959>>
// TestPeds[1].PedHeading = -0.0000
// TestPeds[1].Pedrelgrp = 2
// TestPeds[1].PedModel = S_M_Y_COP_01
// TestPeds[1].PedsWeapon = WEAPONTYPE_UNARMED
// TestPeds[1].pedsstringweapon = "WEAPONTYPE_UNARMED"
// TestPeds[1].PedDefCoord = << -4.4804, -10.3374, 2.0797>>
// TestPeds[1].PedDefArea = 5.0000
// TestPeds[1].PedActiveDefArea = TRUE
TestVehicles [5].vehicleCoords = << -5.0020, -9.9980, 1.9393>> + gvMapOffset
TestVehicles [5].vehicleHeading = 90.0
TestVehicles [5].vehiclemodel = FIRETRUK
TestCams[0].cam_pos = <<-27.408384,8.174817,9.370035>>+ gvMapOffset
TestCams[0].cam_rot = <<-19.276978,0.000002,-93.249466>>
TestCams[FixedCamera].bActivateCam = TRUE
BREAK
CASE SquadStaysDefensiveBehindVehicle
TestPeds[0].PedsCoords = << 0.9833, -15.0394, 1.1959>> + gvMapOffset
TestPeds[0].PedHeading = -0.0000
TestPeds[0].Pedrelgrp = 1
TestPeds[0].PedModel = S_M_Y_COP_01
TestPeds[0].PedsWeapon = WEAPONTYPE_UNARMED
TestPeds[0].pedsstringweapon = "WEAPONTYPE_UNARMED"
TestPeds[0].PedDefCoord = << -4.4804, -10.3374, 2.0797>> + gvMapOffset
TestPeds[0].PedDefArea = 5.0000
TestPeds[0].PedActiveDefArea = TRUE
TestPeds[1].PedsCoords = << -7.9167, -15.6773, 1.1959>> + gvMapOffset
TestPeds[1].PedHeading = -0.0000
TestPeds[1].Pedrelgrp = 1
TestPeds[1].PedModel = S_M_Y_COP_01
TestPeds[1].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[1].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[1].PedDefCoord = << 3.2500, -3.2500, 1.2500>> + gvMapOffset
TestPeds[1].PedDefArea = 4.2500
TestPeds[1].PedActiveDefArea = TRUE
TestPeds[1].PedcombatMove = 1
TestPeds[1].combatcover = CA_USE_COVER
TestPeds[1].bcombatcover = TRUE
TestPeds[2].PedsCoords = << -5.5000, 22.7500, 1.1959>> + gvMapOffset
TestPeds[2].PedHeading = 180.0000
TestPeds[2].Pedrelgrp = 2
TestPeds[2].PedModel = S_M_Y_COP_01
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[2].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[2].PedDefCoord = << -3.0000, 21.2500, 2.2500>> + gvMapOffset
TestPeds[2].PedDefArea = 6.2500
TestPeds[2].PedActiveDefArea = TRUE
TestPeds[2].PedcombatMove = 1
TestPeds[2].combatcover = CA_USE_COVER
TestPeds[2].bcombatcover = TRUE
TestPeds[3].PedsCoords = << -3.7500, 22.5000, 1.1959>> + gvMapOffset
TestPeds[3].PedHeading = 188.0000
TestPeds[3].Pedrelgrp = 2
TestPeds[3].PedModel = S_M_Y_COP_01
TestPeds[3].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[3].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[3].PedDefCoord = << -3.0000, 21.2500, 2.2500>> + gvMapOffset
TestPeds[3].PedDefArea = 6.2500
TestPeds[3].PedActiveDefArea = TRUE
TestPeds[3].PedcombatMove = 1
TestPeds[3].combatcover = CA_USE_COVER
TestPeds[3].bcombatcover = TRUE
TestPeds[4].PedsCoords = << -2.0000, 22.5000, 1.1959>> + gvMapOffset
TestPeds[4].PedHeading = 178.0000
TestPeds[4].Pedrelgrp = 2
TestPeds[4].PedModel = S_M_Y_COP_01
TestPeds[4].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[4].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[4].PedDefCoord = << -3.0000, 21.2500, 2.2500>> + gvMapOffset
TestPeds[4].PedDefArea = 6.2500
TestPeds[4].PedActiveDefArea = TRUE
TestPeds[4].PedcombatMove = 1
TestPeds[4].combatcover = CA_USE_COVER
TestPeds[4].bcombatcover = TRUE
TestPeds[5].PedsCoords = << -2.2500, -15.7500, 1.1959>> + gvMapOffset
TestPeds[5].PedHeading = -0.0000
TestPeds[5].Pedrelgrp = 1
TestPeds[5].PedModel = S_M_Y_COP_01
TestPeds[5].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[5].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[5].PedDefCoord = << 3.2500, -3.2500, 1.2500>> + gvMapOffset
TestPeds[5].PedDefArea = 4.2500
TestPeds[5].PedActiveDefArea = TRUE
TestPeds[5].PedcombatMove = 1
TestPeds[5].combatcover = CA_USE_COVER
TestPeds[5].bcombatcover = TRUE
TestVehicles [0 ].vehicleCoords = << -0.5532, 19.9923, 1.9328>> + gvMapOffset
TestVehicles [0 ].vehicleHeading = 90.1937
TestVehicles [0 ].vehiclemodel = FBI
TestVehicles [1 ].vehicleCoords = << -5.7134, 20.2718, 1.9398>> + gvMapOffset
TestVehicles [1 ].vehicleHeading = 268.5231
TestVehicles [1 ].vehiclemodel = FBI
TestVehicles [5].vehicleCoords = << -5.0020, -9.9980, 1.9393>> + gvMapOffset
TestVehicles [5].vehicleHeading = 360.0001
TestVehicles [5].vehiclemodel = FBI
TestCams[0].cam_pos = <<-27.408384,8.174817,9.370035>>+ gvMapOffset
TestCams[0].cam_rot = <<-19.276978,0.000002,-93.249466>>
TestCams[FixedCamera].bActivateCam = TRUE
BREAK
CASE SquadDefendingPos
TestPeds[1].PedsCoords = << -12.0000, 7.7500, 1.1959>> + gvMapOffset
TestPeds[1].PedHeading = 352.0000
TestPeds[1].Pedrelgrp = 1
TestPeds[1].PedModel = S_M_Y_COP_01
TestPeds[1].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[1].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
TestPeds[1].PedDefCoord = << -7.0000, 8.2500, 1.2500>> + gvMapOffset
TestPeds[1].PedDefArea = 11.7500
TestPeds[1].PedActiveDefArea = TRUE
TestPeds[1].PedcombatMove = 1
TestPeds[1].combatcover = CA_USE_COVER
TestPeds[1].bcombatcover = TRUE
TestPeds[2].PedsCoords = << -8.7500, 7.7500, 1.1959>> + gvMapOffset
TestPeds[2].PedHeading = -0.0000
TestPeds[2].Pedrelgrp = 1
TestPeds[2].PedModel = S_M_Y_COP_01
TestPeds[2].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[2].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
TestPeds[2].PedDefCoord = << -7.0000, 8.2500, 1.2500>> + gvMapOffset
TestPeds[2].PedDefArea = 11.7500
TestPeds[2].PedActiveDefArea = TRUE
TestPeds[2].PedcombatMove = 1
TestPeds[2].combatcover = CA_USE_COVER
TestPeds[2].bcombatcover = TRUE
TestPeds[3].PedsCoords = << -6.0000, 7.7500, 1.1959>> + gvMapOffset
TestPeds[3].PedHeading = -0.0000
TestPeds[3].Pedrelgrp = 1
TestPeds[3].PedModel = S_M_Y_COP_01
TestPeds[3].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[3].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
TestPeds[3].PedDefCoord = << -7.0000, 8.2500, 1.2500>> + gvMapOffset
TestPeds[3].PedDefArea = 11.7500
TestPeds[3].PedActiveDefArea = TRUE
TestPeds[3].PedcombatMove = 1
TestPeds[3].combatcover = CA_USE_COVER
TestPeds[3].bcombatcover = TRUE
TestPeds[4].PedsCoords = << -2.5000, 7.7500, 1.1959>> + gvMapOffset
TestPeds[4].PedHeading = -0.0000
TestPeds[4].Pedrelgrp = 1
TestPeds[4].PedModel = S_M_Y_COP_01
TestPeds[4].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[4].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
TestPeds[4].PedDefCoord = << -7.0000, 8.2500, 1.2500>> + gvMapOffset
TestPeds[4].PedDefArea = 11.7500
TestPeds[4].PedActiveDefArea = TRUE
TestPeds[4].PedcombatMove = 1
TestPeds[4].combatcover = CA_USE_COVER
TestPeds[4].bcombatcover = TRUE
TestPeds[5].PedsCoords = << -2.7500, 31.0000, 1.1959>> + gvMapOffset
TestPeds[5].PedHeading = 176.0000
TestPeds[5].Pedrelgrp = 2
TestPeds[5].PedModel = S_M_Y_COP_01
TestPeds[5].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[5].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
TestPeds[6].PedsCoords = << -6.0000, 31.0000, 1.1959>> + gvMapOffset
TestPeds[6].PedHeading = 192.0000
TestPeds[6].Pedrelgrp = 2
TestPeds[6].PedModel = S_M_Y_COP_01
TestPeds[6].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[6].pedsstringweapon = "WEAPONTYPE_ASSAULTRIFLE"
TestVehicles [0].vehicleCoords = << -4.7522, 2.7254, 1.9343>> + gvMapOffset
TestVehicles [0 ].vehicleHeading = -92.0000
TestVehicles [0 ].vehiclemodel = FBI
TestVehicles [1].vehicleCoords = << -11.0024, 2.9754, 1.9343>> + gvMapOffset
TestVehicles [1 ].vehicleHeading = 86.0000
TestVehicles [1 ].vehiclemodel = FBI
TestVehicles [2].vehicleCoords = << -10.7526, 15.7254, 1.9343>> + gvMapOffset
TestVehicles [2 ].vehicleHeading = -92.0000
TestVehicles [2 ].vehiclemodel = FBI
TestVehicles [3].vehicleCoords = << -3.7528, 15.7254, 1.9343>> + gvMapOffset
TestVehicles [3 ].vehicleHeading = 86.0000
TestVehicles [3 ].vehiclemodel = FBI
TestVehicles [4].vehicleCoords = << -0.2531, 28.4757, 1.9343>> + gvMapOffset
TestVehicles [4 ].vehicleHeading = 68.0000
TestVehicles [4 ].vehiclemodel = FBI
TestVehicles [5].vehicleCoords = << -8.7532, 27.9757, 1.9343>> + gvMapOffset
TestVehicles [5 ].vehicleHeading = -78.0000
TestVehicles [5 ].vehiclemodel = FBI
TestVehicles [6].vehicleCoords = << -14.7534, -11.0243, 1.9343>> + gvMapOffset
TestVehicles [6 ].vehicleHeading = -104.0000
TestVehicles [6 ].vehiclemodel = FBI
TestVehicles [7].vehicleCoords = << 0.9964, -11.5243, 1.9343>> + gvMapOffset
TestVehicles [7].vehicleHeading = -76.0000
TestVehicles [7].vehiclemodel = FBI
TestCams[0].cam_pos = <<-34.791626,9.048415,15.266695>>+ gvMapOffset
TestCams[0].cam_rot = <<-26.172144,0.000001,-91.914223>>
TestCams[FixedCamera].bActivateCam = TRUE
BREAK
CASE PedDoesWeirdThingsSeekingCover
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].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestPeds[0].PedcombatMove = 0 //CM_STATIONARY
TestPeds[0].pedcombatrange = 2 //CR_FAR
TestPeds[0].combatcover = CA_USE_COVER
TestPeds[0].bcombatcover = FALSE //WONT USE COVER
TestPeds[2].PedsCoords = << 0.0000, 20.2500, 1.1959>> + gvMapOffset
TestPeds[2].PedHeading = 180.0000
TestPeds[2].Pedrelgrp = 2
TestPeds[2].PedModel = S_M_Y_COP_01
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[2].pedsstringweapon = "WEAPONTYPE_PISTOL"
TestVehicles [0 ].vehicleCoords = << -0.0012, 10.0009, 1.9393>> + gvMapOffset
TestVehicles [0 ].vehicleHeading = 90.0001
TestVehicles [0 ].vehiclemodel = FBI
TestCams[0].cam_pos = <<-27.408384,8.174817,9.370035>>+ gvMapOffset
TestCams[0].cam_rot = <<-19.276978,0.000002,-93.249466>>
TestCams[FixedCamera].bActivateCam = TRUE
BREAK
CASE TestPedsUsingRandomPaths
TestPeds[1].PedsCoords = << -12.2500, -7.7500, 1.1959>> + gvMapOffset
TestPeds[1].PedHeading = 352.0000
TestPeds[1].Pedrelgrp = 1
TestPeds[1].PedModel = S_M_Y_COP_01
TestPeds[1].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[1].PedDefCoord = << -11.0000, -4.5000, 1.5000>> + gvMapOffset
TestPeds[1].PedDefArea = -5.2500
TestPeds[1].PedActiveDefArea = TRUE
TestPeds[1].PedcombatMove = 1
TestPeds[1].combatcover = CA_USE_COVER
TestPeds[1].bcombatcover = TRUE
TestPeds[2].PedsCoords = << -8.7500, -9.0000, 1.1959>> + gvMapOffset
TestPeds[2].PedHeading = -0.0000
TestPeds[2].Pedrelgrp = 1
TestPeds[2].PedModel = S_M_Y_COP_01
TestPeds[2].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[2].PedDefCoord = << -6.2500, 23.7500, 1.2500>> + gvMapOffset
TestPeds[2].PedDefArea = 7.7500
TestPeds[2].PedActiveDefArea = TRUE
TestPeds[2].PedcombatMove = 1
TestPeds[2].combatcover = CA_USE_COVER
TestPeds[2].bcombatcover = TRUE
TestPeds[3].PedsCoords = << -6.0000, -9.0000, 1.1959>> + gvMapOffset
TestPeds[3].PedHeading = -0.0000
TestPeds[3].Pedrelgrp = 1
TestPeds[3].PedModel = S_M_Y_COP_01
TestPeds[3].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[3].PedDefCoord = << -7.0000, 8.2500, 1.2500>> + gvMapOffset
TestPeds[3].PedDefArea = 11.7500
TestPeds[3].PedActiveDefArea = TRUE
TestPeds[3].PedcombatMove = 1
TestPeds[3].combatcover = CA_USE_COVER
TestPeds[3].bcombatcover = TRUE
TestPeds[4].PedsCoords = << -2.5000, -9.7500, 1.1959>> + gvMapOffset
TestPeds[4].PedHeading = -0.0000
TestPeds[4].Pedrelgrp = 1
TestPeds[4].PedModel = S_M_Y_COP_01
TestPeds[4].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestPeds[4].PedDefCoord = << -7.0000, 8.2500, 1.2500>> + gvMapOffset
TestPeds[4].PedDefArea = 11.7500
TestPeds[4].PedActiveDefArea = TRUE
TestPeds[4].PedcombatMove = 1
TestPeds[4].combatcover = CA_USE_COVER
TestPeds[4].bcombatcover = TRUE
TestPeds[5].PedsCoords = << -9.0108, 10.7228, 1.1959>> + gvMapOffset
TestPeds[5].PedHeading = 176.0000
TestPeds[5].Pedrelgrp = 2
TestPeds[5].PedModel = S_M_Y_COP_01
TestPeds[5].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
TestVehicles [0].vehicleCoords = << -7.6633, 10.1550, 1.9750>> + gvMapOffset
TestVehicles [0].vehicleHeading = 182.5181
TestVehicles [0].vehiclemodel = FBI
TestVehicles [1].vehicleCoords = << -11.5364, 8.4755, 1.6070>> + gvMapOffset
TestVehicles [1].vehicleHeading = 86.5097
TestVehicles [1].vehiclemodel = FBI
TestVehicles [2].vehicleCoords = << -12.5460, 11.9288, 1.6016>> + gvMapOffset
TestVehicles [2].vehicleHeading = 172.5550
TestVehicles [2].vehiclemodel = FBI
TestVehicles [3].vehicleCoords = << -8.9682, 13.2184, 1.6011>> + gvMapOffset
TestVehicles [3].vehicleHeading = 86.2281
TestVehicles [3].vehiclemodel = FBI
TestVehicles [4].vehicleCoords = << -4.2551, 23.7287, 1.6070>> + gvMapOffset
TestVehicles [4].vehicleHeading = 92.0432
TestVehicles [4].vehiclemodel = FBI
TestVehicles [5].vehicleCoords = << -9.7513, 23.2251, 1.6070>> + gvMapOffset
TestVehicles [5].vehicleHeading = 272.0267
TestVehicles [5].vehiclemodel = FBI
TestVehicles [6].vehicleCoords = << -12.8695, -3.6767, 1.6081>> + gvMapOffset
TestVehicles [6].vehicleHeading = 250.7110
TestVehicles [6].vehiclemodel = FBI
TestVehicles [7].vehicleCoords = << -8.0016, -5.7747, 1.6020>> + gvMapOffset
TestVehicles [7].vehicleHeading = 242.0266
TestVehicles [7].vehiclemodel = FBI
TestVehicles [8].vehicleCoords = << -16.7516, 12.2253, 1.6070>> + gvMapOffset
TestVehicles [8].vehicleHeading = 252.0001
TestVehicles [8].vehiclemodel = FBI
TestVehicles [9].vehicleCoords = << -2.7516, 10.7253, 1.6020>> + gvMapOffset
TestVehicles [9].vehicleHeading = -92.0000
TestVehicles [9].vehiclemodel = FBI
TestCams[0].Cam_Pos = <<16.756636,5.160227,10.248656>>+ gvMapOffset
TestCams[0].Cam_Rot =<<-17.394821,0.000026,81.399506>>
TestCams[0].Cam_Fov = 60.0000
TestCams[0].bActivateCam = TRUE
DefensiveSphereAreas[0].DefensiveAreaPos = <<-10.25, -4.0, 2.0 >>+ gvMapOffset
DefensiveSphereAreas[0].DefensiveAreaRadius = 7.5
DefensiveSphereAreas[1].DefensiveAreaPos = <<-6.5, 25.25, 1.75 >>+ gvMapOffset
DefensiveSphereAreas[1].DefensiveAreaRadius = 7.75
mAX_NUMBER_DEFENSIVE_AREA = 2
BREAK
CASE TargetDummy
TestPeds[0].PedsCoords = << -2.4167, -1.4273, 1.1959>> + gvMapOffset
TestPeds[0].PedHeading = 359.6439
TestPeds[0].Pedrelgrp = 0
TestPeds[0].PedModel = S_M_Y_COP_01
TestPeds[0].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[0].pedsstringweapon = "WEAPONTYPE_PISTOL"
BREAK
CASE SWAT_VAN_DRIVE_BY
gbPlayerShouldBeAtCamPos = FALSE
PlayerStartPos = <<-25.11, 79.15, 6.35>>
TestPeds[0].PedsCoords = <<-24.79, 74.05, 6.35>>
TestPeds[0].PedHeading = 359.6439
TestPeds[0].Pedrelgrp = 0
TestPeds[0].PedModel = S_M_Y_SWAT_01
TestPeds[0].PedsWeapon = WEAPONTYPE_CARBINERIFLE
TestPeds[0].pedsstringweapon = "WEAPONTYPE_CARBINERIFLE"
TestPeds[1].PedsCoords = <<-24.63, 74.11, 6.35>>
TestPeds[1].PedHeading = 359.6439
TestPeds[1].Pedrelgrp = 0
TestPeds[1].PedModel = S_M_Y_SWAT_01
TestPeds[1].PedsWeapon = WEAPONTYPE_CARBINERIFLE
TestPeds[1].pedsstringweapon = "WEAPONTYPE_CARBINERIFLE"
TestPeds[2].PedsCoords = <<-27.65, 83.66, 6.35>>
TestPeds[2].PedHeading = 359.6439
TestPeds[2].Pedrelgrp = 0
TestPeds[2].PedModel = S_M_Y_SWAT_01
TestPeds[2].PedsWeapon = WEAPONTYPE_CARBINERIFLE
TestPeds[2].pedsstringweapon = "WEAPONTYPE_CARBINERIFLE"
TestPeds[3].PedsCoords = <<-32.36, 85.47, 6.35>>
TestPeds[3].PedHeading = 359.6439
TestPeds[3].Pedrelgrp = 0
TestPeds[3].PedModel = S_M_Y_SWAT_01
TestPeds[3].PedsWeapon = WEAPONTYPE_CARBINERIFLE
TestPeds[3].pedsstringweapon = "WEAPONTYPE_CARBINERIFLE"
TestVehicles[0].vehicleCoords = <<-30.10, 78.62, 6.35>>
TestVehicles[0].vehicleHeading = 182.5181
TestVehicles[0].vehiclemodel = RIOT
BREAK
CASE TASK_RAPPEL_DOWN_WALL_PlayerTest
gbPlayerShouldBeAtCamPos = FALSE
PlayerStartPos = <<-1.9, 132.77, 27.36>>
BREAK
CASE TASK_RAPPEL_DOWN_WALL_AITest
gbPlayerShouldBeAtCamPos = FALSE
PlayerStartPos = <<-1.9, 132.77, 27.36>>
TestPeds[0].PedsCoords = <<-1.9, 126.23, 27.36>>
TestPeds[0].PedHeading = 270
TestPeds[0].Pedrelgrp = 0
TestPeds[0].PedModel = S_M_Y_SWAT_01
TestCams[FixedCamera].cam_pos = <<8.91, 116.65, 30.32>>
TestCams[FixedCamera].cam_rot = <<-36.26, -0.00, 25.74>>
TestCams[FixedCamera].cam_fov = 65.0
TestCams[FixedCamera].bActivateCam = TRUE
BREAK
CASE TEST_TASK_MELEE_COMBAT_ONE
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
TestPeds[0].PedHeading = 270
TestPeds[0].Pedrelgrp = 0
TestPeds[0].PedModel = S_M_M_GAFFER_01
BREAK
CASE TEST_TASK_MELEE_COMBAT_MANY
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
TestPeds[0].PedHeading = 270
TestPeds[0].Pedrelgrp = 0
TestPeds[0].PedModel = S_M_M_GAFFER_01
TestPeds[1].PedsCoords = <<-4.11, 75.40, 6.35>>
TestPeds[1].PedHeading = 270
TestPeds[1].Pedrelgrp = 0
TestPeds[1].PedModel = S_M_M_BOUNCER_01
TestPeds[2].PedsCoords = <<-7.77, 73.23, 6.35>>
TestPeds[2].PedHeading = 270
TestPeds[2].Pedrelgrp = 0
TestPeds[2].PedModel = S_M_M_DOCKWORK_01
TestPeds[3].PedsCoords = <<-7.77, 78.23, 6.35>>
TestPeds[3].PedHeading = 270
TestPeds[3].Pedrelgrp = 0
TestPeds[3].PedModel = S_M_M_GAFFER_01
TestPeds[4].PedsCoords = <<-10.77, 73.23, 6.35>>
TestPeds[4].PedHeading = 270
TestPeds[4].Pedrelgrp = 0
TestPeds[4].PedModel = S_M_M_BOUNCER_01
TestPeds[5].PedsCoords = <<-10.77, 77.23, 6.35>>
TestPeds[5].PedHeading = 270
TestPeds[5].Pedrelgrp = 0
TestPeds[5].PedModel = S_M_M_DOCKWORK_01
BREAK
CASE TEST_TASK_DRAG_INJURED_PED
gbPlayerShouldBeAtCamPos = FALSE
PlayerStartPos = <<-3.43, 74.00, 7.36>>
TestPeds[0].PedsCoords = <<-3.26, 77.88, 7.36>>
TestPeds[0].PedHeading = 180
TestPeds[0].Pedrelgrp = 0
TestPeds[0].PedModel = S_M_Y_Cop_01
TestPeds[1].PedsCoords = <<-2.81, 93.63, 7.36>>
TestPeds[1].PedHeading = 180
TestPeds[1].Pedrelgrp = 0
TestPeds[1].PedModel = S_M_Y_Cop_01
BREAK
CASE TEST_TASK_SHOOT_AT_PLAYER
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
TestPeds[0].PedHeading = 270
TestPeds[0].Pedrelgrp = 0
TestPeds[0].PedModel = S_M_M_GAFFER_01
BREAK
CASE TEST_TASK_SHOOT_AT_VEHICLE
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
TestPeds[0].PedHeading = 270
TestPeds[0].Pedrelgrp = 0
TestPeds[0].PedModel = S_M_M_GAFFER_01
TestVehicles[0].vehicleCoords = <<-3.7,78.9,6.35>>
TestVehicles[0].vehicleHeading = 180.0
TestVehicles[0].vehiclemodel = TAILGATER
BREAK
CASE TEST_TASK_AI_STEALTH_KILL
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
TestPeds[0].PedHeading = 270
TestPeds[0].Pedrelgrp = 0
TestPeds[0].PedModel = S_M_M_GAFFER_01
TestPeds[1].PedsCoords = <<2.1, 72.8, 7.4>>
TestPeds[1].PedHeading = 270
TestPeds[1].Pedrelgrp = 0
TestPeds[1].PedModel = S_M_M_DOCKWORK_01
BREAK
CASE TEST_TASK_ANIMAL_MELEE
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
TestPeds[0].PedHeading = 270
TestPeds[0].Pedrelgrp = 0
TestPeds[0].PedModel = A_C_ROTTWEILER
BREAK
CASE TEST_TASK_ARMED_MELEE_IN_COVER
PlayerStartPos = <<6.5, 126.5, 7.4>>
TestPeds[0].PedsCoords = <<1.6, 131.4, 7.4>>
TestPeds[0].PedHeading = 90
TestPeds[0].Pedrelgrp = 0
TestPeds[0].PedModel = S_M_M_GAFFER_01
BREAK
ENDSWITCH
ENDPROC
ENUM PREFERRED_COVER_MISSION_STATE
SET_FIRST_DEFENSIVE_AREA,
WAIT_1,
SET_SECOND_DEFENSIVE_AREA,
WAIT_2,
SET_THIRD_DEFENSIVE_AREA,
WAIT_3,
SET_FOURTH_DEFENSIVE_AREA,
WAIT_4
ENDENUM
PROC SET_UP_RELATIONSHIP_GROUPS ()
INT index = 0
FOR index = 0 to MAX_NUMBER_OF_PEDS -1
ADD_RELATIONSHIP_GROUP_TO_STRUCT(TestPeds[index])
ENDFOR
ENDPROC
PREFERRED_COVER_MISSION_STATE PC_STATE
INT TIME_BETWEEN_DEFENSIVE_MOVEMENT = 15000
PROC RUN_TEST()
int index= 0, dead_attacking_peds = 0, j
VECTOR offsetvec
// VECTOR vPatrolPoint1 = <<-11.96, -9.73, -0.07>> + gvMapOffset
//VECTOR vPatrolPoint2 = <<-13.69, 14.58, -0.07>> + gvMapOffset
SWITCH int_to_enum (scenarios, gcurrentselection) // the ENUM corresponds to the values from the XML file
//setup scenario
CASE TEST_TASK_COMBAT_PED
SWITCH SCENARIO_STATE
CASE STATE_INIT
SET_UP_RELATIONSHIP_GROUPS ()
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
Block_Peds_Temp_Events(TestPeds[Index], FALSE )
ENDFOR
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_COMBAT_HATED_TARGETS_AROUND_PED
SWITCH SCENARIO_STATE
CASE STATE_INIT
SET_UP_RELATIONSHIP_GROUPS ()
TASK_COMBAT_HATED_TARGETS_AROUND_PED(TestPeds[0].Ped, 10.0)
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_COMBAT_HATED_TARGETS_AROUND_PED_TIMED
SWITCH SCENARIO_STATE
CASE STATE_INIT
SET_UP_RELATIONSHIP_GROUPS ()
TASK_COMBAT_HATED_TARGETS_AROUND_PED_TIMED(TestPeds[0].Ped, 10.0, COMBAT_TARGETS_AROUND_AREA_TIME)
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_COMBAT_TIMED
SWITCH SCENARIO_STATE
CASE STATE_INIT
SET_UP_RELATIONSHIP_GROUPS ()
TASK_COMBAT_PED_TIMED(TestPeds[0].Ped, TestPeds[1].Ped, COMBAT_TARGETS_AROUND_AREA_TIME)
SCENARIO_STATE = STATE_1
ENDSWITCH
BREAK
CASE TEST_TASK_COMBAT_HATED_PED_IN_AREA
SWITCH SCENARIO_STATE
CASE STATE_INIT
SET_UP_RELATIONSHIP_GROUPS ()
TASK_COMBAT_HATED_TARGETS_IN_AREA(TestPeds[0].Ped, TestPeds[1].PedsCoords, 10.0)
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_AIM_GUN_AT_COORD
SWITCH SCENARIO_STATE
CASE STATE_INIT
TASK_AIM_GUN_AT_COORD(TestPeds[0].Ped, <<-42.33, 246.17, 8.00>>, AIM_AT_TIME)
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_AIM_GUN_AT_ENTITY
SWITCH SCENARIO_STATE
CASE STATE_INIT
TASK_AIM_GUN_AT_ENTITY(TestPeds[0].Ped, TestPeds[1].Ped, AIM_AT_TIME)
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_SHOOT_AT_COORD
SWITCH SCENARIO_STATE
CASE STATE_INIT
TASK_SHOOT_AT_COORD(TestPeds[0].Ped, <<-42.33, 246.17, 8.00>>, AIM_AT_TIME, FIRING_TYPE_CONTINUOUS) // firing type should be determined from firing pattern
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_GOTO_X_WHILE_AIMING_AT_X
SWITCH SCENARIO_STATE
CASE STATE_INIT
SWITCH INT_TO_ENUM(GOTO_POINT_AND_AIM_MODE, GOTO_X_AND_AIM_AT_X_MODE)
CASE GOTO_COORD_AND_AIM_AT_COORD
TASK_GO_TO_COORD_WHILE_AIMING_AT_COORD(TestPeds[0].Ped, GOTO_COORD, AIM_AT_COORD, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
BREAK
CASE GOTO_COORD_AND_AIM_AT_OBJECT
TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(TestPeds[0].Ped, GOTO_COORD, TestObjects[0].Object, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
BREAK
CASE GOTO_COORD_AND_AIM_AT_PED
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(TestPeds[0].Ped, GOTO_COORD, TestPeds[1].Ped, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
ENDIF
BREAK
CASE GOTO_COORD_AND_AIM_AT_VEHICLE
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
IF NOT IS_ENTITY_DEAD(TestPeds[2].Ped)
SET_PED_INTO_VEHICLE(TestPeds[2].Ped, TestVehicles[0].Vehicle)
ENDIF
TASK_GO_TO_COORD_WHILE_AIMING_AT_ENTITY(TestPeds[0].Ped, GOTO_COORD, TestVehicles[0].Vehicle, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
ENDIF
BREAK
CASE GOTO_PED_AND_AIM_AT_COORD
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_COORD(TestPeds[0].Ped, TestPeds[1].Ped, AIM_AT_COORD, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
ENDIF
BREAK
CASE GOTO_PED_AND_AIM_AT_OBJECT
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(TestPeds[0].Ped, TestPeds[1].Ped, TestObjects[0].Object, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
ENDIF
BREAK
CASE GOTO_PED_AND_AIM_AT_PED
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(TestPeds[0].Ped, TestPeds[1].Ped, TestPeds[1].Ped, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
ENDIF
BREAK
CASE GOTO_PED_AND_AIM_AT_VEHICLE
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
TASK_GO_TO_ENTITY_WHILE_AIMING_AT_ENTITY(TestPeds[0].Ped, TestPeds[1].Ped, TestVehicles[0].Vehicle, DYNAMIC_MOVE_BLEND_RATIO, MOVE_AND_SHOOT, 2.0, 4.0, FALSE) // firing type should be determined from firing pattern
ENDIF
ENDIF
BREAK
CASE GOTO_PED_AIMING
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
TASK_GOTO_ENTITY_AIMING(TestPeds[0].Ped, TestPeds[1].Ped, 2.0, 5.0) // firing type should be determined from firing pattern
ENDIF
BREAK
ENDSWITCH
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_PUT_PED_DIRECTLY_INTO_COVER
CASE TEST_TASK_SEEK_COVER_FROM_POS
CASE TEST_TASK_SEEK_COVER_FROM_PED
CASE TEST_TASK_SEEK_COVER_TO_COVER_COORD
CASE TEST_TASK_SEEK_COVER_TO_COVER_POINT
SWITCH SCENARIO_STATE
CASE STATE_INIT
IF NOT gbPlayerShouldBeAtCamPos
SET_ENTITY_COORDS(scplayer, PlayerStartPos, FALSE, true )
ENDIF
SET_UP_RELATIONSHIP_GROUPS()
SETTIMERA(0)
IF SCRIPTED_COVER_INDEX <> NULL
REMOVE_COVER_POINT(SCRIPTED_COVER_INDEX)
ENDIF
IF bUseLowCoverPoint = TRUE
SCRIPTED_COVER_INDEX = ADD_COVER_POINT(<<-64.11, 92.81, 6.35>>, 90.0, COVUSE_WALLTOLEFT, COVHEIGHT_LOW, COVARC_180)
ELSE
SCRIPTED_COVER_INDEX = ADD_COVER_POINT(<<-64.11, 103.75, 6.35>>, 90.0, COVUSE_WALLTORIGHT, COVHEIGHT_TOOHIGH, COVARC_180)
ENDIF
SCENARIO_STATE = STATE_1
BREAK
CASE STATE_1
IF bTestStanding
// Aim forwards
VECTOR vAimAtPos
vAimAtPos = TestPeds[0].PedsCoords + 5.0 *GET_ENTITY_FORWARD_VECTOR(TestPeds[0].Ped) + <<0.0, 0.0, 0.5>>
TASK_AIM_GUN_AT_COORD(TestPeds[0].Ped, vAimAtPos, -1)
ELSE
TASK_AIM_GUN_AT_ENTITY(TestPeds[0].Ped, TestPeds[1].Ped, -1)
ENDIF
SCENARIO_STATE = STATE_2
BREAK
CASE STATE_2
IF TIMERA() > 3000
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
SEQUENCE_INDEX SEQ
OPEN_SEQUENCE_TASK (SEQ)
SWITCH int_to_enum (scenarios, gcurrentselection)
CASE TEST_TASK_PUT_PED_DIRECTLY_INTO_COVER
IF SCRIPTED_COVER_INDEX <> NULL
TASK_PUT_PED_DIRECTLY_INTO_COVER(NULL, <<-64.05, 98.23, 6.35>>, 5000, FALSE, NORMAL_BLEND_DURATION, FALSE, FALSE, SCRIPTED_COVER_INDEX)
ENDIF
BREAK
CASE TEST_TASK_SEEK_COVER_FROM_POS
TASK_SEEK_COVER_FROM_POS(NULL, TestPeds[1].PedsCoords, 5000)
BREAK
CASE TEST_TASK_SEEK_COVER_FROM_PED
TASK_SEEK_COVER_FROM_PED(NULL, TestPeds[1].Ped, 5000)
BREAK
CASE TEST_TASK_SEEK_COVER_TO_COVER_POINT
IF SCRIPTED_COVER_INDEX <> NULL
TASK_SEEK_COVER_TO_COVER_POINT(NULL, SCRIPTED_COVER_INDEX, <<-69.58, 104.78, 6.35>>, 5000)
ENDIF
BREAK
CASE TEST_TASK_SEEK_COVER_TO_COVER_COORD
TASK_SEEK_COVER_TO_COORDS(NULL, <<-64.15, 94.94, 6.35>>, TestPeds[1].PedsCoords, 10000)
BREAK
ENDSWITCH
TASK_COMBAT_PED_TIMED(NULL, TestPeds[1].Ped, 30000)
CLOSE_SEQUENCE_TASK(SEQ)
// Wait till coverpoints are streamed in
SETTIMERA(0)
TASK_PERFORM_SEQUENCE (TestPeds[0].Ped, SEQ)
CLEAR_SEQUENCE_TASK(seq)
ENDIF
SCENARIO_STATE = STATE_3
ENDIF
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_GUARD_ASSIGNED_DEFENSIVE_AREA
CASE TEST_TASK_GUARD_ANGLED_DEFENSIVE_AREA
CASE TEST_TASK_GUARD_SPHERE_DEFENSIVE_AREA
CASE TEST_TASK_GUARD_CURRENT_POS
CASE TEST_TASK_STAND_GUARD
SWITCH SCENARIO_STATE
CASE STATE_INIT
SET_UP_RELATIONSHIP_GROUPS()
SWITCH int_to_enum (scenarios, gcurrentselection)
CASE TEST_TASK_GUARD_ASSIGNED_DEFENSIVE_AREA
TASK_GUARD_ASSIGNED_DEFENSIVE_AREA(TestPeds[0].Ped, <<13.77, 182.27, 6.35>>, 0.0, 5.0, 30000)
BREAK
CASE TEST_TASK_GUARD_ANGLED_DEFENSIVE_AREA
TASK_GUARD_ANGLED_DEFENSIVE_AREA(TestPeds[0].Ped, <<13.77, 182.27, 6.35>>, 0.0, 10.0, 30000, <<7.825742,181.893753,6.350637>>, <<21.033215,181.771240,16.350637>>, 11.0)
BREAK
CASE TEST_TASK_GUARD_SPHERE_DEFENSIVE_AREA
TASK_GUARD_SPHERE_DEFENSIVE_AREA(TestPeds[0].Ped, <<13.77, 182.27, 6.35>>, 0.0, 10.0, 30000, <<13.77, 182.27, 6.35>>, 5.0)
BREAK
CASE TEST_TASK_GUARD_CURRENT_POS
TASK_GUARD_CURRENT_POSITION(TestPeds[0].Ped, 10.0, 5.0, TRUE)
BREAK
CASE TEST_TASK_STAND_GUARD
TASK_STAND_GUARD(TestPeds[0].Ped, <<13.77, 182.27, 6.35>>, 0.0, "DEFEND")
BREAK
ENDSWITCH
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE SET_PED_PREFERRED_COVER
SWITCH PREFERRED_COVER_STATE
CASE PREFERRED_COVER_INIT
SET_UP_RELATIONSHIP_GROUPS()
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
Block_Peds_Temp_Events(TestPeds[0], FALSE )
ENDFOR
// Warp player to scenario location
IF NOT gbPlayerShouldBeAtCamPos
SET_ENTITY_COORDS(scplayer, PlayerStartPos, FALSE, true )
ENDIF
SET_PED_PREFERRED_COVER_SET(TestPeds[0].Ped, PreferredCoverItemSet)
PC_STATE = SET_FIRST_DEFENSIVE_AREA
PREFERRED_COVER_STATE = PREFERRED_COVER_RUN
BREAK
CASE PREFERRED_COVER_RUN
SWITCH PC_STATE
CASE SET_FIRST_DEFENSIVE_AREA
SET_PED_SPHERE_DEFENSIVE_AREA(TestPeds[0].Ped, COV_POS2, 8.0)
SETTIMERA(0)
PC_STATE = WAIT_1
BREAK
CASE WAIT_1
IF (TIMERA() > TIME_BETWEEN_DEFENSIVE_MOVEMENT)
PC_STATE = SET_SECOND_DEFENSIVE_AREA
ENDIF
BREAK
CASE SET_SECOND_DEFENSIVE_AREA
//SET_PED_SPHERE_DEFENSIVE_AREA(TestPeds[0].Ped, COV_POS2, 1.0)
SETTIMERA(0)
PC_STATE = WAIT_2
BREAK
CASE WAIT_2
IF (TIMERA() > TIME_BETWEEN_DEFENSIVE_MOVEMENT)
PC_STATE = SET_THIRD_DEFENSIVE_AREA
ENDIF
BREAK
CASE SET_THIRD_DEFENSIVE_AREA
//SET_PED_SPHERE_DEFENSIVE_AREA(TestPeds[0].Ped, COV_POS3, 1.0)
SETTIMERA(0)
PC_STATE = WAIT_3
BREAK
CASE WAIT_3
IF (TIMERA() > TIME_BETWEEN_DEFENSIVE_MOVEMENT)
PC_STATE = SET_FOURTH_DEFENSIVE_AREA
ENDIF
BREAK
CASE SET_FOURTH_DEFENSIVE_AREA
SET_PED_SPHERE_DEFENSIVE_AREA(TestPeds[0].Ped, COV_POS4, 1.0)
SETTIMERA(0)
PC_STATE = WAIT_4
BREAK
CASE WAIT_4
IF (TIMERA() > TIME_BETWEEN_DEFENSIVE_MOVEMENT)
PC_STATE = SET_FIRST_DEFENSIVE_AREA
ENDIF
BREAK
ENDSWITCH
BREAK
ENDSWITCH
//Set_Test_State_To_Default()
BREAK
CASE TEST_TASK_PATROL
SWITCH SCENARIO_STATE
CASE STATE_INIT
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
Block_Peds_Temp_Events(TestPeds[index], FALSE )
ENDFOR
SETUP_PATROL_ROUTES ()
TEST_SEQ = FOLLOW_PATROL_ROUTE ("miss_loop", PAS_ALERT)
PedPerformsSequence (TestPeds[0].ped, TEST_SEQ)
TEST_SEQ = FOLLOW_PATROL_ROUTE ("miss_branched_loop", PAS_ALERT)
PedPerformsSequence (TestPeds[1].ped, TEST_SEQ)
TEST_SEQ = FOLLOW_PATROL_ROUTE ("miss_branched", PAS_ALERT)
PedPerformsSequence (TestPeds[2].ped, TEST_SEQ)
TEST_SEQ = FOLLOW_PATROL_ROUTE ("miss_dead_end", PAS_ALERT)
PedPerformsSequence (TestPeds[3].ped, TEST_SEQ)
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_IS_PED_RESPONDING_TO_EVENT
SWITCH SCENARIO_STATE
CASE STATE_INIT
SET_UP_RELATIONSHIP_GROUPS ()
Block_Peds_Temp_Events(TestPeds[0], FALSE )
Block_Peds_Temp_Events(TestPeds[1], TRUE )
SCENARIO_STATE = STATE_1
BREAK
CASE STATE_1
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND IS_PED_RESPONDING_TO_EVENT(TestPeds[0].Ped, EVENT_ACQUAINTANCE_PED_HATE)
TASK_AIM_GUN_AT_COORD(TestPeds[0].Ped, <<-42.33, 246.17, 8.00>>, AIM_AT_TIME)
Block_Peds_Temp_Events(TestPeds[0], TRUE)
SCENARIO_STATE = STATE_2
ENDIF
BREAK
ENDSWITCH
BREAK
CASE TEST_HAS_PED_RECEIVED_EVENT
SWITCH SCENARIO_STATE
CASE STATE_INIT
SET_UP_RELATIONSHIP_GROUPS()
// Warp player to scenario location
IF NOT gbPlayerShouldBeAtCamPos
SET_ENTITY_COORDS(scplayer, PlayerStartPos, FALSE, true )
ENDIF
Block_Peds_Temp_Events(TestPeds[0], TRUE)
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
IF GET_SCRIPT_TASK_STATUS(TestPeds[0].Ped, SCRIPT_TASK_HANDS_UP) = FINISHED_TASK
IF HAS_PED_RECEIVED_EVENT(TestPeds[0].Ped, EVENT_GUN_AIMED_AT)
TASK_HANDS_UP(TestPeds[0].Ped, 5000)
ENDIF
ENDIF
ENDIF
BREAK
CASE SCENARIO_PED_MOVE_TO_COVER_PED_STAYS_STILL
SWITCH SCENARIO_STATE
CASE STATE_INIT
SET_UP_RELATIONSHIP_GROUPS()
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
Block_Peds_Temp_Events(TestPeds[index], FALSE )
ENDFOR
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE BugPedsNotShootingThroughFreindlyPed
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
Block_Peds_Temp_Events(TestPeds[index], FALSE )
IF NOT IS_PED_INJURED(TestPeds[index].ped)
SET_PED_CAN_RAGDOLL (TestPeds[index].ped, FALSE )
SET_ENTITY_INVINCIBLE(TestPeds[index].ped, TRUE)
ENDIF
ENDFOR
BREAK
CASE SCENARIO_BOTH_PEDS_MOVE_TO_COVER
CASE ARifle_guy_in_cover_breaking
CASE SCENARIO_TWO_PEDS_NO_COVER
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
Block_Peds_Temp_Events(TestPeds[index], FALSE )
ENDFOR
Set_Test_State_To_Default()
BREAK
//scenario
CASE ScenarioTaskStayInCover
SWITCH Scenario_TaskStayInCover
CASE Scenario_TaskStayInCover_init
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
IF NOT IS_PED_INJURED(TestPeds[index].ped)
SET_PED_CAN_RAGDOLL (TestPeds[index].ped, FALSE )
SET_ENTITY_PROOFS(TestPeds[index].ped, TRUE, TRUE, TRUE, TRUE, TRUE)
TASK_STAY_IN_COVER(TestPeds[index].ped)
ENDIF
Block_Peds_Temp_Events(TestPeds[index], TRUE )
ENDFOR
FOR Index = 0 to MAX_NUMBER_OF_VEHICLES -1
IF IS_VEHICLE_DRIVEABLE (TestVehicles[index].vehicle)
SET_ENTITY_PROOFS(TestVehicles[index].vehicle, true, FALSE, FALSE, FALSE, FALSE)
ENDIF
ENDFOR
Scenario_TaskStayInCover = Scenario_TaskStayInCover_SwapDefAreas
BREAK
CASE Scenario_TaskStayInCover_SwapDefAreas
IF IS_BUTTON_JUST_PRESSED (PAD1, TRIANGLE)
iCurrentDefensiveArea += 1
IF iCurrentDefensiveArea > MAX_NUMBER_DEFENSIVE_AREA -1
iCurrentDefensiveArea = 0
ENDIF
for index = 0 to MAX_NUMBER_OF_PEDS -1
IF NOT IS_PED_INJURED(TestPeds[index].ped)
IF TestPeds[index].Pedrelgrp = 1
TestPeds[index].PedDefCoord = DefensiveSphereAreas[iCurrentDefensiveArea].DefensiveAreaPos
TestPeds[index].PedDefArea = DefensiveSphereAreas[iCurrentDefensiveArea].DefensiveAreaRadius
TestPeds[index].PedDefDirection = DefensiveSphereAreas[iCurrentDefensiveArea].DefensiveAreaDirection
PRINTSTRING("PedDefDirection: <<")
PRINTFLOAT(TestPeds[index].PedDefDirection.x)
PRINTSTRING(", ")
PRINTFLOAT(TestPeds[index].PedDefDirection.y)
PRINTSTRING(", ")
PRINTFLOAT(TestPeds[index].PedDefDirection.z)
PRINTSTRING(">>")
PRINTNL()
TestPeds[index].PedActiveDefArea = TRUE
SET_PED_DEFENSIVE_AREAS(TestPeds[index] )
ENDIF
ENDIF
ENDFOR
ENDIF
BREAK
ENDSWITCH
BREAK
CASE SquadOfPedsMovingBetweenVehicles
CASE TestPedsUsingRandomPaths
SWITCH Scenario_SquadOfPedsMovingBetweenVehicles
CASE Scenario_SquadOfPedsMovingBetweenVehicles_init
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
IF NOT IS_PED_INJURED(TestPeds[index].ped)
SET_PED_CAN_RAGDOLL (TestPeds[index].ped, FALSE )
SET_ENTITY_PROOFS(TestPeds[index].ped, TRUE, TRUE, TRUE, TRUE, TRUE)
ENDIF
Block_Peds_Temp_Events(TestPeds[index], FALSE )
ENDFOR
FOR Index = 0 to MAX_NUMBER_OF_VEHICLES -1
IF IS_VEHICLE_DRIVEABLE (TestVehicles[index].vehicle)
SET_ENTITY_PROOFS(TestVehicles[index].vehicle, true, FALSE, FALSE, FALSE, FALSE)
ENDIF
ENDFOR
Scenario_SquadOfPedsMovingBetweenVehicles = Scenario_SquadOfPedsMovingBetweenVehicles_SwapDefAreas
BREAK
CASE Scenario_SquadOfPedsMovingBetweenVehicles_SwapDefAreas
IF IS_BUTTON_JUST_PRESSED (PAD1, TRIANGLE)
iCurrentDefensiveArea += 1
IF iCurrentDefensiveArea > MAX_NUMBER_DEFENSIVE_AREA -1
iCurrentDefensiveArea = 0
ENDIF
for index = 0 to MAX_NUMBER_OF_PEDS -1
IF NOT IS_PED_INJURED(TestPeds[index].ped)
IF TestPeds[index].Pedrelgrp = 1
TestPeds[index].PedDefCoord = DefensiveSphereAreas[iCurrentDefensiveArea].DefensiveAreaPos
TestPeds[index].PedDefArea = DefensiveSphereAreas[iCurrentDefensiveArea].DefensiveAreaRadius
TestPeds[index].PedActiveDefArea = TRUE
SET_PED_DEFENSIVE_AREAS(TestPeds[index] )
ENDIF
ENDIF
ENDFOR
ENDIF
BREAK
ENDSWITCH
BREAK
CASE BugAiCantDriveTank
IF NOT IS_PED_INJURED (TestPeds[0].ped)
IF IS_VEHICLE_DRIVEABLE (TestVehicles [5].Vehicle)
Block_Peds_Temp_Events (TestPeds[0], TRUE)
SET_PED_INTO_VEHICLE (TestPeds[0].ped, TestVehicles [5].Vehicle )
DRIVE_TO_POINT_SEQUENCE (TestPeds[0].ped, TestVehicles [5].Vehicle)
ENDIF
ENDIF
Set_Test_State_To_Default()
BREAK
CASE SquadStaysDefensiveBehindVehicle
SWITCH Scenario_SquadStaysDefensiveBehindVehicle
CASE Scenario_SquadStaysDefensiveBehindVehicle_Init
FOR INDEX = 0 to MAX_NUMBER_OF_PEDS-1
// SET_PED_SENSE_RANGE (TestPeds[index].ped, 100)
ENDFOR
IF NOT IS_PED_INJURED (TestPeds[0].ped)
IF IS_VEHICLE_DRIVEABLE (TestVehicles [5].Vehicle)
Block_Peds_Temp_Events (TestPeds[0], TRUE)
SET_PED_INTO_VEHICLE (TestPeds[0].ped, TestVehicles [5].Vehicle )
DRIVE_TO_POINT_SEQUENCE (TestPeds[0].ped, TestVehicles [5].Vehicle)
ENDIF
ENDIF
FOR Index = 1 to MAX_NUMBER_OF_PEDS -1
SetPedsInvincible (TestPeds[index].ped, TRUE)
Block_Peds_Temp_Events(TestPeds[index], FALSE )
ENDFOR
Scenario_SquadStaysDefensiveBehindVehicle = Scenario_SquadStaysDefensiveBehindVehicle_Run
break
CASE Scenario_SquadStaysDefensiveBehindVehicle_Run
IF IS_VEHICLE_DRIVEABLE (TestVehicles [5].Vehicle)
// offsetvec = GET_ENTITY_COORDS( TestVehicles [5].Vehicle)
offsetvec = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS (TestVehicles [5].Vehicle, <<0.0, -3.0, 0.0>>)
for index = 1 to MAX_NUMBER_OF_PEDS -1
IF TestPeds[index].Pedrelgrp = 1
TestPeds[index].PedDefCoord = offsetvec
TestPeds[index].PedDefArea = 6.0
TestPeds[index].PedActiveDefArea = TRUE
SET_PED_DEFENSIVE_AREAS(TestPeds[index] )
ENDIF
ENDFOR
ENDIF
BREAK
ENDSWITCH
BREAK
CASE SquadDefendingPos
SWITCH Scenario_SquadDefendingPos
CASE Scenario_SquadDefendingPos_init
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
Block_Peds_Temp_Events(TestPeds[index], FALSE )
ENDFOR
TestPeds[7].PedsCoords = << -4.7500, -14.5000, 1.1959>> + gvMapOffset
TestPeds[7].PedHeading = -0.0000
TestPeds[7].Pedrelgrp = 3
TestPeds[7].PedModel = S_M_Y_COP_01
TestPeds[7].PedsWeapon = WEAPONTYPE_PISTOL
TestPeds[8].PedsCoords = << -7.5000, -14.5000, 1.1959>> + gvMapOffset
TestPeds[8].PedHeading = -0.0000
TestPeds[8].Pedrelgrp = 3
TestPeds[8].PedModel = S_M_Y_COP_01
TestPeds[8].PedsWeapon = WEAPONTYPE_PISTOL
Scenario_SquadDefendingPos = Scenario_SquadDefendingPos_grp2
BREAK
CASE Scenario_SquadDefendingPos_grp2
dead_attacking_peds = 0
for index = 0 to MAX_NUMBER_OF_PEDS-1
IF TestPeds[index].Pedrelgrp = 2 //check rel grp 2
IF IS_PED_INJURED (TestPeds[index].ped)
dead_attacking_peds += 1
ENDIF
IF dead_attacking_peds = 2 //all rel 2 peds are dead create a new group
for j = 0 to MAX_NUMBER_OF_PEDS-1
IF TestPeds[j].Pedrelgrp = 2
CLEAN_UP_PED_ENTITIES (TestPeds[j].ped)
ENDIF
IF TestPeds[j].Pedrelgrp = 3
CREATE_PED_ENTITY(TestPeds[j])
GIVEBLIPSTOPEDSGRPS (TestPeds[j])
ALTER_COMBAT_STATS (TestPeds[j] )
SWAP_PED_WEAPONS (TestPeds[j])
Scenario_SquadDefendingPos = Scenario_SquadDefendingPos_grp3
ENDIF
ENDFOR
dead_attacking_peds = 0
index = MAX_NUMBER_OF_PEDS-1
ENDIF
ENDIF
ENDFOR
BREAK
CASE Scenario_SquadDefendingPos_grp3
for index = 0 to MAX_NUMBER_OF_PEDS-1
IF TestPeds[index].Pedrelgrp = 3 //check rel grp 2
IF IS_PED_INJURED (TestPeds[index].ped)
dead_attacking_peds += 1
ENDIF
IF dead_attacking_peds = 2 //all rel 2 peds are dead create a new group
for j = 0 to MAX_NUMBER_OF_PEDS-1
IF TestPeds[j].Pedrelgrp = 3
CLEAN_UP_PED_ENTITIES (TestPeds[j].ped)
ENDIF
IF TestPeds[j].Pedrelgrp = 2
CREATE_PED_ENTITY(TestPeds[j])
GIVEBLIPSTOPEDSGRPS (TestPeds[j])
ALTER_COMBAT_STATS (TestPeds[j] )
SWAP_PED_WEAPONS (TestPeds[j])
Scenario_SquadDefendingPos = Scenario_SquadDefendingPos_grp2
ENDIF
ENDFOR
dead_attacking_peds = 0
index = MAX_NUMBER_OF_PEDS-1
ENDIF
ENDIF
ENDFOR
BREAK
ENDSWITCH
BREAK
CASE PedDoesWeirdThingsSeekingCover
SWITCH Scenario_PedDoesWeirdThingsSeekingCover_Status
CASE Scenario_PedDoesWeirdThingsSeekingCover_init
SetPedsInvincible (TestPeds[2].ped, TRUE)
IF NOT IS_PED_INJURED (TestPeds[2].ped)
TASK_SEEK_COVER_FROM_POS ( TestPeds[2].ped, <<0.0, 10.0, 1.5 >>+ gvMapOffset, -1 )
ENDIF
Scenario_PedDoesWeirdThingsSeekingCover_Status = Scenario_PedDoesWeirdThingsSeekingCover_run
BREAK
CASE Scenario_PedDoesWeirdThingsSeekingCover_run
BREAK
ENDSWITCH
BREAK
CASE ScenarioCombatRanges
SWITCH Scenario_CombatRanges_Status
CASE Scenario_CombatRanges_init
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
SetPedsInvincible (TestPeds[index].ped, TRUE)
Block_Peds_Temp_Events(TestPeds[index], FALSE )
ENDFOR
BREAK
CASE Scenario_CombatRanges_run
IF IS_BUTTON_JUST_PRESSED (PAD1, TRIANGLE)
iCurrentDefensiveArea += 1
IF iCurrentDefensiveArea > 2
iCurrentDefensiveArea = 0
ENDIF
for index = 0 to MAX_NUMBER_OF_PEDS -1
IF NOT IS_PED_INJURED(TestPeds[index].ped)
IF TestPeds[index].Pedrelgrp = 1
SET_PED_COMBAT_RANGE (TestPeds[index].ped, INT_TO_ENUM(COMBAT_RANGE, TestPeds[index].pedcombatrange ))
ENDIF
ENDIF
ENDFOR
ENDIF
BREAK
ENDSWITCH
BREAK
CASE TargetDummy
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
Block_Peds_Temp_Events(TestPeds[index], FALSE )
IF NOT IS_PED_INJURED(TestPeds[index].ped)
SET_PED_CAN_RAGDOLL(TestPeds[index].ped, FALSE)
SET_ENTITY_INVINCIBLE(TestPeds[index].ped, TRUE)
SET_DECISION_MAKER(TestPeds[index].ped, DECISION_MAKER_EMPTY)
ENDIF
ENDFOR
BREAK
CASE SWAT_VAN_DRIVE_BY
SWITCH SCENARIO_STATE
CASE STATE_INIT
SET_UP_RELATIONSHIP_GROUPS()
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
SET_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, VS_EXTRA_LEFT_1)
ENDIF
IF NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
SET_PED_INTO_VEHICLE(TestPeds[1].Ped, TestVehicles[0].Vehicle, VS_EXTRA_LEFT_2)
ENDIF
IF NOT IS_ENTITY_DEAD(TestPeds[2].Ped)
SET_PED_INTO_VEHICLE(TestPeds[2].Ped, TestVehicles[0].Vehicle, VS_EXTRA_RIGHT_1)
ENDIF
IF NOT IS_ENTITY_DEAD(TestPeds[3].Ped)
SET_PED_INTO_VEHICLE(TestPeds[3].Ped, TestVehicles[0].Vehicle, VS_EXTRA_RIGHT_2)
ENDIF
ENDIF
// Warp player to scenario location
IF NOT gbPlayerShouldBeAtCamPos
SET_ENTITY_COORDS(scplayer, PlayerStartPos, FALSE, true )
ENDIF
SCENARIO_STATE = STATE_1
BREAK
CASE STATE_1
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle) AND DO_DRIVEBY
IF NOT IS_PED_IN_VEHICLE(scplayer, TestVehicles[0].Vehicle) AND NOT IS_PED_GETTING_INTO_A_VEHICLE(scplayer)
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
IF NOT IS_ENTITY_DEAD(TestPeds[index].Ped)
SET_PED_AMMO(TestPeds[index].Ped, WEAPONTYPE_CARBINERIFLE, -1)
Block_Peds_Temp_Events(TestPeds[index], TRUE )
TASK_DRIVE_BY(TestPeds[index].Ped, scplayer, NULL, <<0.0,0.0,0.0>>, 50.0, 100)
ENDIF
ENDFOR
SCENARIO_STATE = STATE_2
ENDIF
ENDIF
BREAK
CASE STATE_2
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
IF IS_PED_IN_VEHICLE(scplayer, TestVehicles[0].Vehicle)
FOR Index = 0 to MAX_NUMBER_OF_PEDS -1
IF NOT IS_ENTITY_DEAD(TestPeds[index].Ped)
CLEAR_PED_TASKS(TestPeds[index].Ped)
ENDIF
ENDFOR
SCENARIO_STATE = STATE_1
ENDIF
ENDIF
BREAK
ENDSWITCH
BREAK
CASE TASK_RAPPEL_DOWN_WALL_PlayerTest
CASE TASK_RAPPEL_DOWN_WALL_AITest
SWITCH SCENARIO_STATE
CASE STATE_INIT
IF NOT IS_ENTITY_DEAD(scplayer)
// Warp player to scenario location
IF NOT gbPlayerShouldBeAtCamPos
SET_ENTITY_COORDS(scplayer, PlayerStartPos, FALSE, true )
SET_ENTITY_HEADING(scplayer, 270)
ENDIF
ENDIF
SCENARIO_STATE = STATE_1
BREAK
CASE STATE_1
PED_INDEX pedIndex
SWITCH int_to_enum (scenarios, gcurrentselection)
CASE TASK_RAPPEL_DOWN_WALL_PlayerTest
pedIndex = scplayer
BREAK
CASE TASK_RAPPEL_DOWN_WALL_AITest
pedIndex = TestPeds[0].Ped
BREAK
ENDSWITCH
IF NOT IS_ENTITY_DEAD(pedIndex)
ROPE_INDEX serverLocalRope
VECTOR vRopeCoords
VECTOR vCurrentCoords
vCurrentCoords = GET_ENTITY_COORDS(pedIndex)
vRopeCoords = vCurrentCoords
vRopeCoords.x = 0.0
serverLocalRope = ADD_ROPE(vRopeCoords, <<0.0, 90.0, 0.0>>, 30.0, PHYSICS_ROPE_DEFAULT_32, -1, 0.5, 0.5, TRUE)
TASK_RAPPEL_DOWN_WALL(pedIndex, vCurrentCoords, vRopeCoords, vCurrentCoords.z - 18.0, serverLocalRope)
ENDIF
SCENARIO_STATE = STATE_2
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_MELEE_COMBAT_ONE
SWITCH SCENARIO_STATE
CASE STATE_INIT
IF NOT IS_ENTITY_DEAD( TestPeds[0].Ped ) AND NOT IS_ENTITY_DEAD( PLAYER_PED_ID() )
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[0].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
TASK_COMBAT_PED( TestPeds[0].Ped, PLAYER_PED_ID() )
ENDIF
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_MELEE_COMBAT_MANY
SWITCH SCENARIO_STATE
CASE STATE_INIT
IF NOT IS_ENTITY_DEAD( TestPeds[0].Ped ) AND NOT IS_ENTITY_DEAD( TestPeds[1].Ped ) AND NOT IS_ENTITY_DEAD( TestPeds[2].Ped ) AND NOT IS_ENTITY_DEAD( TestPeds[4].Ped ) AND NOT IS_ENTITY_DEAD( TestPeds[5].Ped ) AND NOT IS_ENTITY_DEAD( PLAYER_PED_ID() )
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[0].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[1].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[2].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[3].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[4].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[5].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
TASK_COMBAT_PED( TestPeds[0].Ped, PLAYER_PED_ID() )
TASK_COMBAT_PED( TestPeds[1].Ped, PLAYER_PED_ID() )
TASK_COMBAT_PED( TestPeds[2].Ped, PLAYER_PED_ID() )
TASK_COMBAT_PED( TestPeds[3].Ped, PLAYER_PED_ID() )
TASK_COMBAT_PED( TestPeds[4].Ped, PLAYER_PED_ID() )
TASK_COMBAT_PED( TestPeds[5].Ped, PLAYER_PED_ID() )
ENDIF
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_DRAG_INJURED_PED
SWITCH SCENARIO_STATE
CASE STATE_INIT
APPLY_DAMAGE_TO_PED(TestPeds[0].ped, 1000, FALSE)
SCENARIO_STATE = STATE_1
BREAK
CASE STATE_1
IF IS_ENTITY_DEAD(TestPeds[0].ped)
TASK_DRAG_PED_TO_COORD(TestPeds[1].ped, TestPeds[0].ped, <<-2.92, 84.14, 7.36>>)
SCENARIO_STATE = STATE_2
ENDIF
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_SHOOT_AT_PLAYER
SWITCH SCENARIO_STATE
CASE STATE_INIT
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID()) AND NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
GIVE_WEAPON_TO_PED( TestPeds[0].Ped, WEAPONTYPE_PISTOL, 1000, TRUE )
//TASK_SHOOT_AT_ENTITY( TestPeds[0].Ped, PLAYER_PED_ID(), -1, FIRING_TYPE_1_BURST )
TASK_COMBAT_PED( TestPeds[0].Ped, PLAYER_PED_ID() )
ENDIF
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_SHOOT_AT_VEHICLE
SWITCH SCENARIO_STATE
CASE STATE_INIT
IF NOT IS_ENTITY_DEAD( TestPeds[0].Ped ) AND NOT IS_ENTITY_DEAD( PLAYER_PED_ID() )
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[0].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
SET_ENTITY_ONLY_DAMAGED_BY_PLAYER( PLAYER_PED_ID(), TRUE )
GIVE_WEAPON_TO_PED( TestPeds[0].Ped, WEAPONTYPE_MINIGUN, 2000, TRUE, TRUE )
WAIT(100)
TASK_SHOOT_AT_COORD( TestPeds[0].Ped, <<-3.6,76.4,7.0>>, -1, FIRING_TYPE_CONTINUOUS )
//TASK_COMBAT_PED( TestPeds[0].Ped, PLAYER_PED_ID() )
ENDIF
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_AI_STEALTH_KILL
SWITCH SCENARIO_STATE
CASE STATE_INIT
IF NOT IS_ENTITY_DEAD( TestPeds[0].Ped ) AND NOT IS_ENTITY_DEAD( TestPeds[1].Ped )
GIVE_WEAPON_TO_PED( TestPeds[0].Ped, WEAPONTYPE_UNARMED, 1, TRUE, TRUE )
GIVE_WEAPON_TO_PED( TestPeds[1].Ped, WEAPONTYPE_UNARMED, 1, TRUE, TRUE )
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[0].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
TASK_STEALTH_KILL( TestPeds[0].Ped, TestPeds[1].Ped, GET_HASH_KEY( "AR_stealth_kill_a" ) )
ENDIF
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_ANIMAL_MELEE
SWITCH SCENARIO_STATE
CASE STATE_INIT
IF NOT IS_ENTITY_DEAD( TestPeds[0].Ped ) AND NOT IS_ENTITY_DEAD( PLAYER_PED_ID() )
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[0].Ped, RELGROUPHASH_AMBIENT_GANG_LOST )
GIVE_WEAPON_TO_PED( TestPeds[0].Ped, WEAPONTYPE_ANIMAL, 1, TRUE, TRUE )
TASK_COMBAT_PED( TestPeds[0].Ped, PLAYER_PED_ID() )
ENDIF
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
BREAK
CASE TEST_TASK_ARMED_MELEE_IN_COVER
SWITCH SCENARIO_STATE
CASE STATE_INIT
IF NOT IS_ENTITY_DEAD( TestPeds[0].Ped ) AND NOT IS_ENTITY_DEAD( PLAYER_PED_ID() )
SET_PED_RELATIONSHIP_GROUP_HASH( TestPeds[0].Ped, RELGROUPHASH_SECURITY_GUARD )
GIVE_WEAPON_TO_PED( PLAYER_PED_ID(), WEAPONTYPE_PISTOL, 2000, TRUE, TRUE )
ENDIF
SCENARIO_STATE = STATE_1
BREAK
ENDSWITCH
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 )
INITIALISE_OBJECT_DATA(TestObjects)
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])
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
//TestObjects
FOR Index = 0 to MAX_NUMBER_OF_OBJECTS -1
CREATE_OBJECT_ENTITY (TestObjects[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 ()
PREFERRED_COVER_STATE = PREFERRED_COVER_INIT
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
SCRIPT
gvMapOffset = GET_PLAYER_START_POS ()
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 ()
CREATE_TEST_WIDGET ()
//set the player ready for the script
SET_PLAYER_COLISION(scplayer, true)
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
Terminate_test_script ()
WAIT (0)
ENDWHILE
ENDSCRIPT
#ENDIF // IS_DEBUG_BUILD