1819 lines
64 KiB
Python
Executable File
1819 lines
64 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 "script_DEBUG.sch"
|
|
USING "commands_event.sch"
|
|
USING "commands_script.sch"
|
|
USING "commands_entity.sch"
|
|
USING "commands_itemsets.sch"
|
|
USING "commands_misc.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/TestVehicleMenu"
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// These enums must match with the /build/dev/common/data/script/xml/Testbed/TestVehicleMenu.xml
|
|
ENUM Scenarios
|
|
TEST_SET_PED_IN_VEHICLE = 0,
|
|
TEST_TASK_WARP_PED_INTO_VEHICLE = 1,
|
|
TEST_MOVING_ALIGN = 2,
|
|
BUG_LEAVE_ANY_VEHICLE = 3,
|
|
TEST_ENTER_VEHICLE_NORMAL = 4,
|
|
TEST_ENTER_VEHICLE_JACK = 5,
|
|
TEST_ENTER_VEHICLE_FORCED = 6,
|
|
TEST_BRING_VEHICLE_TO_HALT = 7,
|
|
TEST_ENTER_VEHICLE_ON_SIDE = 8,
|
|
TEST_PLANE_HOMING_MISSILES = 9,
|
|
TEST_STREAM_VEHICLE_ANIMS = 10,
|
|
TEST_SET_VELOCITY = 11,
|
|
TEST_IN_VEHICLE_CONTEXT = 12,
|
|
TEST_STOCKADE_WITH_STICKY_GRENADES = 13,
|
|
TEST_DEATH_WHILST_EXITING = 14,
|
|
TEST_COLLISION_WHILE_ENTERING = 15,
|
|
TEST_COLLISION_WHILE_EXITING = 16,
|
|
TEST_DEATH_WHILE_ENTERING = 17,
|
|
TEST_DEATH_WHILE_EXITING = 18,
|
|
TEST_THROUGH_WINDSCREEN = 19,
|
|
TEST_JUMP_OUT = 20,
|
|
TEST_COLLISION_WHILE_JACKING_PED = 21,
|
|
TEST_DEATH_WHILE_JACKING_PED = 22,
|
|
TEST_OVERRIDE_ENTRY_CLIPSET = 23,
|
|
TEST_FLEE_EXIT = 24,
|
|
DefaultTest = 1000
|
|
ENDENUM
|
|
|
|
ENUM VEHICLE_LAYOUTS
|
|
VLAYOUT_BIKE_DIRT = 0,
|
|
VLAYOUT_BIKE_SPORT,
|
|
VLAYOUT_BIKE_CHOPPER,
|
|
VLAYOUT_BIKE_FREEWAY,
|
|
VLAYOUT_BIKE_SCOOTER,
|
|
VLAYOUT_BICYCLE_BMX,
|
|
VLAYOUT_BICYCLE_ROAD,
|
|
VLAYOUT_BICYCLE_MOUNTAIN,
|
|
VLAYOUT_BICYCLE_CRUISER,
|
|
VLAYOUT_VAN,
|
|
VLAYOUT_TRUCK,
|
|
VLAYOUT_STD,
|
|
VLAYOUT_LOW,
|
|
VLAYOUT_CUBAN_800,
|
|
VLAYOUT_DUSTER,
|
|
VLAYOUT_HELI,
|
|
VLAYOUT_HELI_FROGGER,
|
|
VLAYOUT_BUS,
|
|
VLAYOUT_QUAD_BIKE,
|
|
VLAYOUT_TOURBUS
|
|
ENDENUM
|
|
|
|
ENUM WEAPON_ID
|
|
PISTOL = 0,
|
|
RIFLE_AK47,
|
|
PUMPSHOTGUN,
|
|
GRENADELAUNCHER
|
|
ENDENUM
|
|
|
|
ENUM WALL_HEIGHT
|
|
ONE_METRE_HIGH_WALL = 0,
|
|
TWO_METRE_HIGH_WALL,
|
|
THREE_METRE_HIGH_WALL
|
|
ENDENUM
|
|
|
|
ENUM JUMP_HEIGHT
|
|
GROUND_LEVEL = 0,
|
|
SMALL_STEP,
|
|
LOW_WALL,
|
|
HIGH_WALL
|
|
ENDENUM
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
CONST_INT MAX_NUMBER_OF_PEDS 10
|
|
CONST_INT MAX_NUMBER_OF_VEHICLES 10
|
|
CONST_INT MAX_NUMBER_OF_OBJECTS 1
|
|
CONST_INT MAX_NUMBER_OF_NODES 7
|
|
CONST_INT MAX_NUMBER_OF_CAMERAS 2
|
|
CONST_INT FixedCamera 0
|
|
CONST_INT TrackingCamera 1
|
|
|
|
peds_struct TestPeds[MAX_NUMBER_OF_PEDS]
|
|
vehicle_struct TestVehicles[MAX_NUMBER_OF_VEHICLES]
|
|
Object_struct TestObjects[MAX_NUMBER_OF_OBJECTS]
|
|
RouteStruct Route[MAX_NUMBER_OF_NODES]
|
|
StCameraData TestCams[MAX_NUMBER_OF_CAMERAS]
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// 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
|
|
FLOAT Ground_z
|
|
BOOL REMOVE_VEHICLE_DOOR = FALSE
|
|
BOOL WARP_TO_ENTRY_POINT = FALSE
|
|
BOOL BIKE_LEFT_SIDE = TRUE
|
|
BOOL PREFER_LEFT_ENTRY = FALSE
|
|
BOOL PREFER_RIGHT_ENTRY = FALSE
|
|
INT TimeBeforeStop = 500
|
|
INT PEDS_SEAT_INDEX = ENUM_TO_INT(VS_DRIVER)
|
|
INT VEHICLE_TEST_INDEX = ENUM_TO_INT(VLAYOUT_STD)
|
|
INT WEAPON_TYPEID = 0
|
|
INT SWIPE_TYPE = 0
|
|
INT WAIT_BEFORE_ENTER_EXIT_TIME = 2000
|
|
INT WAIT_BEFORE_VEHICLE_RAM = 2000
|
|
INT WAIT_BEFORE_FIRE_TIME = 1000
|
|
INT DEATH_TIME = 1000
|
|
FLOAT ForwardSpeed = 30.0
|
|
BOOL ENTER_EXIT_TASK_GIVEN = FALSE
|
|
BOOL SHOOT_TASK_GIVEN = FALSE
|
|
BOOL VEHICLE_RAM_TASK_GIVEN = FALSE
|
|
INT WALL_HEIGHT_TYPE = ENUM_TO_INT(ONE_METRE_HIGH_WALL)
|
|
INT JUMP_HEIGHT_TYPE = ENUM_TO_INT(GROUND_LEVEL)
|
|
FLOAT VEHICLE_SPEED = 12.0
|
|
FLOAT VEHICLE_SIDE_OFFSET = 0.0
|
|
VECTOR camera_pos
|
|
FLOAT CAM_ZOOM = 6
|
|
FLOAT CAM_PAN = -128
|
|
FLOAT CAM_PITCH = 65
|
|
BOOL JACK_FROM_PASSENGER = FALSE
|
|
STRING clipsetname = "clipset@rcmpaparazzo1ig_1_ps"
|
|
FLOAT fVehicleHaltStoppingDist = 10.5
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Create Widgets
|
|
|
|
PROC CREATE_TEST_WIDGET ()
|
|
START_WIDGET_GROUP("Vehicle Test")
|
|
SETUP_WIDGET ()
|
|
|
|
START_WIDGET_GROUP("Tasks")
|
|
START_NEW_WIDGET_COMBO()
|
|
ADD_TO_WIDGET_COMBO("VS_ANY_PASSENGER")
|
|
ADD_TO_WIDGET_COMBO("VS_DRIVER")
|
|
ADD_TO_WIDGET_COMBO("VS_FRONT_RIGHT")
|
|
ADD_TO_WIDGET_COMBO("VS_BACK_LEFT")
|
|
ADD_TO_WIDGET_COMBO("VS_BACK_RIGHT")
|
|
ADD_TO_WIDGET_COMBO("VS_EXTRA_LEFT_1")
|
|
ADD_TO_WIDGET_COMBO("VS_EXTRA_RIGHT_1")
|
|
ADD_TO_WIDGET_COMBO("VS_EXTRA_LEFT_2")
|
|
ADD_TO_WIDGET_COMBO("VS_EXTRA_RIGHT_2")
|
|
ADD_TO_WIDGET_COMBO("VS_EXTRA_LEFT_3")
|
|
ADD_TO_WIDGET_COMBO("VS_EXTRA_RIGHT_3")
|
|
STOP_WIDGET_COMBO("PEDS_SEAT_INDEX", PEDS_SEAT_INDEX)
|
|
START_NEW_WIDGET_COMBO()
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_BIKE_DIRT")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_BIKE_SPORT")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_BIKE_CHOPPER")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_BIKE_FREEWAY")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_BIKE_SCOOTER")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_BICYCLE_BMX")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_BICYCLE_ROAD")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_BICYCLE_MOUNTAIN")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_BICYCLE_CRUISER")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_VAN")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_TRUCK")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_STD")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_LOW")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_CUBAN_800")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_DUSTER")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_HELI")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_HELI_FROGGER")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_BUS")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_QUAD_BIKE")
|
|
ADD_TO_WIDGET_COMBO("LAYOUT_TOURBUS")
|
|
STOP_WIDGET_COMBO("VEHICLE_TO_TEST", VEHICLE_TEST_INDEX)
|
|
START_NEW_WIDGET_COMBO()
|
|
ADD_TO_WIDGET_COMBO("ONE_METRE_HIGH_WALL")
|
|
ADD_TO_WIDGET_COMBO("TWO_METRE_HIGH_WALL")
|
|
ADD_TO_WIDGET_COMBO("THREE_METRE_HIGH_WALL")
|
|
ADD_TO_WIDGET_COMBO("VS_BACK_LEFT")
|
|
STOP_WIDGET_COMBO("WALL_HEIGHT_TYPE", WALL_HEIGHT_TYPE)
|
|
START_NEW_WIDGET_COMBO()
|
|
ADD_TO_WIDGET_COMBO("GROUND_LEVEL")
|
|
ADD_TO_WIDGET_COMBO("SMALL_STEP")
|
|
ADD_TO_WIDGET_COMBO("LOW_WALL")
|
|
ADD_TO_WIDGET_COMBO("HIGH_WALL")
|
|
STOP_WIDGET_COMBO("JUMP_HEIGHT_TYPE", JUMP_HEIGHT_TYPE)
|
|
ADD_WIDGET_FLOAT_SLIDER ("VEHICLE_SIDE_OFFSET", VEHICLE_SIDE_OFFSET, -10.0, 10.0, 0.1)
|
|
ADD_WIDGET_BOOL ("JACK_FROM_PASSENGER", JACK_FROM_PASSENGER )
|
|
ADD_WIDGET_BOOL ("REMOVE_VEHICLE_DOOR", REMOVE_VEHICLE_DOOR )
|
|
ADD_WIDGET_BOOL ("WARP_TO_ENTRY_POINT", WARP_TO_ENTRY_POINT )
|
|
ADD_WIDGET_BOOL ("BIKE_LEFT_SIDE", BIKE_LEFT_SIDE )
|
|
ADD_WIDGET_BOOL ("PREFER_LEFT_ENTRY", PREFER_LEFT_ENTRY)
|
|
ADD_WIDGET_BOOL ("PREFER_RIGHT_ENTRY", PREFER_RIGHT_ENTRY)
|
|
ADD_WIDGET_FLOAT_SLIDER ("Forward Speed", ForwardSpeed, -100.0, 100.0, 0.1)
|
|
ADD_WIDGET_INT_SLIDER ("Time between stop", TimeBeforeStop, 0, 3000, 1)
|
|
ADD_WIDGET_INT_SLIDER ("Time to wait before vehicle ram", WAIT_BEFORE_VEHICLE_RAM, 0, 5000, 1)
|
|
ADD_WIDGET_INT_SLIDER ("Time to wait before enter/exit", WAIT_BEFORE_ENTER_EXIT_TIME, 0, 5000, 1)
|
|
ADD_WIDGET_INT_SLIDER ("Time to wait before firing", WAIT_BEFORE_FIRE_TIME, 0, 5000, 1)
|
|
ADD_WIDGET_INT_SLIDER ("Vehicle Swipe Type", SWIPE_TYPE, 0, 3, 1)
|
|
ADD_WIDGET_FLOAT_SLIDER ("VEHICLE_SPEED", VEHICLE_SPEED, 0.0, 300.0, 1.0)
|
|
ADD_WIDGET_FLOAT_SLIDER ("CAM_ZOOM", CAM_ZOOM, -30.0, 30.0, 1.0)
|
|
ADD_WIDGET_FLOAT_SLIDER ("CAM_PAN", CAM_PAN, -180.0, 180.0, 1.0)
|
|
ADD_WIDGET_FLOAT_SLIDER ("CAM_PITCH", CAM_PITCH, -90.0, 90.0, 1.0)
|
|
|
|
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_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_PISTOL")
|
|
ADD_TO_WIDGET_COMBO ("WEAPONTYPE_RIFLE_AK47")
|
|
ADD_TO_WIDGET_COMBO ("WEAPONTYPE_PUMPSHOTGUN")
|
|
ADD_TO_WIDGET_COMBO ("WEAPONTYPE_GRENADELAUNCHER")
|
|
STOP_WIDGET_COMBO("weapon", WEAPON_TYPEID)
|
|
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("BRING_VEHICLE_TO_HALT")
|
|
ADD_WIDGET_FLOAT_SLIDER("Stopping distance", fVehicleHaltStoppingDist, 0.0, 20.0, 0.1)
|
|
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())
|
|
ENDIF
|
|
|
|
TERMINATE_THIS_THREAD ()
|
|
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
//END: Mission flow House keeping
|
|
|
|
//Function: SCENARIO TASKS
|
|
|
|
//SEQUENCE_INDEX TEST_SEQ
|
|
|
|
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
|
|
|
|
ENUM SCENARIO_STATE_ENUM
|
|
STATE_INIT,
|
|
STATE_1,
|
|
STATE_2,
|
|
STATE_3,
|
|
STATE_4,
|
|
STATE_5
|
|
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
|
|
|
|
SCENARIO_STATE_ENUM SCENARIO_STATE = STATE_INIT
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
PROC SETUP_TEST_DATA ()
|
|
|
|
MODEL_NAMES testVehicleName
|
|
|
|
SWITCH int_to_enum (VEHICLE_LAYOUTS, VEHICLE_TEST_INDEX)
|
|
|
|
CASE VLAYOUT_BIKE_DIRT testVehicleName = SANCHEZ BREAK
|
|
CASE VLAYOUT_BIKE_SPORT testVehicleName = VADER BREAK
|
|
CASE VLAYOUT_BIKE_CHOPPER testVehicleName = DAEMON BREAK
|
|
CASE VLAYOUT_BIKE_FREEWAY testVehicleName = POLICEB BREAK
|
|
CASE VLAYOUT_BIKE_SCOOTER testVehicleName = FAGGIO2 BREAK
|
|
CASE VLAYOUT_BICYCLE_BMX testVehicleName = BMX BREAK
|
|
CASE VLAYOUT_BICYCLE_CRUISER testVehicleName = CRUISER BREAK
|
|
CASE VLAYOUT_BICYCLE_ROAD testVehicleName = TRIBIKE BREAK
|
|
CASE VLAYOUT_BICYCLE_MOUNTAIN testVehicleName = SCORCHER BREAK
|
|
CASE VLAYOUT_VAN testVehicleName = BURRITO BREAK
|
|
CASE VLAYOUT_TRUCK testVehicleName = PHANTOM BREAK
|
|
CASE VLAYOUT_STD testVehicleName = TAILGATER BREAK
|
|
CASE VLAYOUT_LOW testVehicleName = SENTINEL2 BREAK
|
|
CASE VLAYOUT_CUBAN_800 testVehicleName = CUBAN800 BREAK
|
|
CASE VLAYOUT_DUSTER testVehicleName = DUSTER BREAK
|
|
CASE VLAYOUT_HELI testVehicleName = POLMAV BREAK
|
|
CASE VLAYOUT_HELI_FROGGER testVehicleName = FROGGER BREAK
|
|
CASE VLAYOUT_BUS testVehicleName = BUS BREAK
|
|
CASE VLAYOUT_QUAD_BIKE testVehicleName = BLAZER BREAK
|
|
CASE VLAYOUT_TOURBUS testVehicleName = TOURBUS BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
SWITCH int_to_enum (scenarios, gcurrentselection)
|
|
|
|
CASE TEST_SET_PED_IN_VEHICLE
|
|
CASE TEST_TASK_WARP_PED_INTO_VEHICLE
|
|
|
|
TestPeds[0].PedsCoords = <<-4.03, 79.15, 6.35>>
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].PedModel = S_M_M_GAFFER_01
|
|
|
|
TestVehicles[0].VehicleCoords = <<-0.95, 81.88, 6.35>>
|
|
TestVehicles[0].VehicleHeading = 90.0001
|
|
TestVehicles[0].Vehiclemodel = testVehicleName
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-1.228716,75.143669,10.048866>>
|
|
TestCams[FixedCamera].cam_rot = <<-30.870243,-0.000000,0.979704>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE TEST_MOVING_ALIGN
|
|
|
|
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].PedModel = S_M_M_GAFFER_01
|
|
|
|
TestVehicles[0].VehicleCoords = <<-9.39, 72.62, 6.35>>
|
|
TestVehicles[0].VehicleHeading = 90.0001
|
|
TestVehicles[0].Vehiclemodel = testVehicleName
|
|
|
|
BREAK
|
|
|
|
CASE BUG_LEAVE_ANY_VEHICLE
|
|
TestPeds[0].PedsCoords = <<-4.11, 72.40, 6.35>>
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].PedModel = S_M_M_GAFFER_01
|
|
|
|
TestPeds[1].PedsCoords = <<-7.11, 72.40, 6.35>>
|
|
TestPeds[1].PedHeading = 359.6439
|
|
TestPeds[1].PedModel = S_M_M_GAFFER_01
|
|
|
|
TestPeds[2].PedsCoords = <<-11.11, 72.40, 6.35>>
|
|
TestPeds[2].PedHeading = 359.6439
|
|
TestPeds[2].PedModel = S_M_M_GAFFER_01
|
|
|
|
TestPeds[3].PedsCoords = <<-1.11, 72.40, 6.35>>
|
|
TestPeds[3].PedHeading = 359.6439
|
|
TestPeds[3].PedModel = S_M_M_GAFFER_01
|
|
|
|
TestVehicles[0].VehicleCoords = <<-9.39, 72.62, 6.35>>
|
|
TestVehicles[0].VehicleHeading = 90.0001
|
|
TestVehicles[0].Vehiclemodel = BUS
|
|
BREAK
|
|
|
|
CASE TEST_ENTER_VEHICLE_NORMAL
|
|
CASE TEST_ENTER_VEHICLE_JACK
|
|
CASE TEST_ENTER_VEHICLE_FORCED
|
|
CASE TEST_ENTER_VEHICLE_ON_SIDE
|
|
CASE TEST_DEATH_WHILST_EXITING
|
|
|
|
TestPeds[0].PedsCoords = <<-35.77, 90.64, 6.35>>
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].PedModel = PLAYER_ZERO
|
|
|
|
TestPeds[1].PedsCoords = <<-32.89, 90.66, 6.35>>
|
|
TestPeds[1].PedHeading = 359.6439
|
|
TestPeds[1].PedModel = S_M_Y_ROBBER_01
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
|
|
TestVehicles[0].VehicleCoords = <<-35.90, 94.50, 6.35>>
|
|
TestVehicles[0].VehicleHeading = 90.0001
|
|
TestVehicles[0].Vehiclemodel = testVehicleName
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-35.96, 90.58, 10.84>>
|
|
TestCams[FixedCamera].cam_rot = <<-48.44, 0, -2.81>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
BREAK
|
|
|
|
CASE TEST_BRING_VEHICLE_TO_HALT
|
|
TestVehicles[0].VehicleCoords = <<-0.95, 81.88, 6.35>>
|
|
TestVehicles[0].VehicleHeading = 90.0001
|
|
TestVehicles[0].Vehiclemodel = TAILGATER
|
|
BREAK
|
|
|
|
CASE TEST_PLANE_HOMING_MISSILES
|
|
|
|
TestVehicles[0].VehicleCoords = <<642.61, 38.08, 7.36>>
|
|
TestVehicles[0].VehicleHeading = 60.0001
|
|
TestVehicles[0].Vehiclemodel = LAZER
|
|
|
|
TestVehicles[1].VehicleCoords = <<515.54, 35.07, 7.36>>
|
|
TestVehicles[1].VehicleHeading = 90.0001
|
|
TestVehicles[1].Vehiclemodel = testVehicleName
|
|
|
|
TestVehicles[2].VehicleCoords = <<463.48, 31.66, 7.36>>
|
|
TestVehicles[2].VehicleHeading = 60.0001
|
|
TestVehicles[2].Vehiclemodel = testVehicleName
|
|
|
|
TestVehicles[3].VehicleCoords = <<373.67, 19.61, 7.36>>
|
|
TestVehicles[3].VehicleHeading = 30.0001
|
|
TestVehicles[3].Vehiclemodel = testVehicleName
|
|
|
|
TestVehicles[4].VehicleCoords = <<305.03, 38.95, 7.36>>
|
|
TestVehicles[4].VehicleHeading = 15.0001
|
|
TestVehicles[4].Vehiclemodel = testVehicleName
|
|
|
|
TestVehicles[5].VehicleCoords = <<218.13, 31.83, 7.36>>
|
|
TestVehicles[5].VehicleHeading = 0.0001
|
|
TestVehicles[5].Vehiclemodel = testVehicleName
|
|
|
|
TestVehicles[6].VehicleCoords = <<121.56, 26.35, 7.36>>
|
|
TestVehicles[6].VehicleHeading = 90.0001
|
|
TestVehicles[6].Vehiclemodel = testVehicleName
|
|
|
|
BREAK
|
|
|
|
CASE TEST_STREAM_VEHICLE_ANIMS
|
|
BREAK
|
|
|
|
CASE TEST_SET_VELOCITY
|
|
|
|
TestPeds[0].PedsCoords = <<-35.77, 90.64, 6.35>>
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].PedModel = S_M_Y_ARMYMECH_01
|
|
|
|
TestVehicles[0].VehicleCoords = <<-35.90, 94.50, 6.35>>
|
|
TestVehicles[0].VehicleHeading = 0.0001
|
|
TestVehicles[0].Vehiclemodel = TAILGATER
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-35.96, 90.58, 10.84>>
|
|
TestCams[FixedCamera].cam_rot = <<-48.44, 0, -2.81>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE TEST_IN_VEHICLE_CONTEXT
|
|
|
|
TestPeds[0].PedsCoords = <<-35.77, 90.64, 6.35>>
|
|
TestPeds[0].PedHeading = 359.6439
|
|
TestPeds[0].PedModel = S_M_Y_ARMYMECH_01
|
|
|
|
TestVehicles[0].VehicleCoords = <<-35.90, 94.50, 6.35>>
|
|
TestVehicles[0].VehicleHeading = 0.0001
|
|
TestVehicles[0].Vehiclemodel = BJXL
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-35.96, 90.58, 10.84>>
|
|
TestCams[FixedCamera].cam_rot = <<-48.44, 0, -2.81>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE TEST_STOCKADE_WITH_STICKY_GRENADES
|
|
|
|
TestVehicles[0].VehicleCoords = <<-5.1, 81.8, 7.4>>
|
|
TestVehicles[0].VehicleHeading = 0.0001
|
|
TestVehicles[0].Vehiclemodel = STOCKADE3
|
|
|
|
BREAK
|
|
|
|
CASE TEST_COLLISION_WHILE_ENTERING
|
|
CASE TEST_COLLISION_WHILE_EXITING
|
|
|
|
TestPeds[0].PedsCoords = <<-59.55467, 142.87741, 6.35158>>
|
|
TestPeds[0].PedHeading = -1.58
|
|
TestPeds[0].PedModel = PLAYER_ONE
|
|
|
|
TestPeds[1].PedsCoords = <<-46.60886, 143.81769, 6.35158>>
|
|
TestPeds[1].PedHeading = 359.6439
|
|
TestPeds[1].PedModel = PLAYER_TWO
|
|
|
|
TestVehicles[0].Vehiclemodel = TAILGATER
|
|
TestVehicles[0].VehicleCoords = <<-60.88103, 143.33746, 6.35158>>
|
|
TestVehicles[0].VehicleHeading = 0.0
|
|
|
|
TestVehicles[1].Vehiclemodel = testVehicleName
|
|
TestVehicles[1].VehicleCoords = <<-49.16578, 144.24376, 6.35158>>
|
|
TestVehicles[1].VehicleHeading = 90.0
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-59.807808,135.568634,11.596110>>
|
|
TestCams[FixedCamera].cam_rot = <<-34.370911,0.000000,2.999246>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE TEST_DEATH_WHILE_ENTERING
|
|
CASE TEST_DEATH_WHILE_EXITING
|
|
|
|
TestPeds[0].PedsCoords = <<-58.72038, 142.80356, 6.35158>>
|
|
TestPeds[0].PedHeading = -1.58
|
|
TestPeds[0].PedModel = PLAYER_ONE
|
|
|
|
TestPeds[1].PedsCoords = <<-56.30446, 143.88820, 6.35158>>
|
|
TestPeds[1].PedHeading = 92.18
|
|
TestPeds[1].PedModel = S_M_Y_ARMYMECH_01
|
|
|
|
SWITCH int_to_enum (WEAPON_ID, WEAPON_TYPEID)
|
|
CASE PISTOL
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_PISTOL
|
|
BREAK
|
|
CASE RIFLE_AK47
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
BREAK
|
|
CASE PUMPSHOTGUN
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_PUMPSHOTGUN
|
|
BREAK
|
|
CASE GRENADELAUNCHER
|
|
TestPeds[1].PedsWeapon = WEAPONTYPE_GRENADELAUNCHER
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
TestVehicles[0].Vehiclemodel = testVehicleName
|
|
TestVehicles[0].VehicleCoords = <<-60.88103, 143.33746, 6.35158>>
|
|
TestVehicles[0].VehicleHeading = 0.0
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-60.539310,147.936768,7.679381>>
|
|
TestCams[FixedCamera].cam_rot = <<-7.064416,0.000000,-175.209595>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
BREAK
|
|
|
|
CASE TEST_THROUGH_WINDSCREEN
|
|
|
|
TestPeds[0].PedsCoords = <<41.54198, 192.12083, 6.35078>>
|
|
TestPeds[0].PedHeading = 90.0
|
|
TestPeds[0].PedModel = PLAYER_TWO
|
|
|
|
TestVehicles[0].Vehiclemodel = testVehicleName
|
|
TestVehicles[0].VehicleCoords = <<39.05972, 188.74785, 6.35078>>
|
|
TestVehicles[0].VehicleHeading = 0.0
|
|
|
|
TestCams[FixedCamera].cam_pos = <<32.648914,201.675476,9.892513>>
|
|
TestCams[FixedCamera].cam_rot = <<-24.138597,-0.000000,-98.526772>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE TEST_JUMP_OUT
|
|
|
|
TestPeds[0].PedsCoords = <<-62.28864, 68.22392, 6.35084>>
|
|
TestPeds[0].PedHeading = 90.0
|
|
TestPeds[0].PedModel = PLAYER_TWO
|
|
|
|
TestVehicles[0].Vehiclemodel = testVehicleName
|
|
TestVehicles[0].VehicleCoords = <<-63.43328, 68.22320, 6.35084>>
|
|
TestVehicles[0].VehicleHeading = 0.0
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-63.776264,73.140923,9.245447>>
|
|
TestCams[FixedCamera].cam_rot = <<-11.765430,-0.000000,-6.115568>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE TEST_COLLISION_WHILE_JACKING_PED
|
|
|
|
TestPeds[0].PedsCoords = <<-52.66739, 145.89999, 6.35158>>
|
|
TestPeds[0].PedHeading = -1.58
|
|
TestPeds[0].PedModel = PLAYER_ZERO
|
|
|
|
TestPeds[1].PedsCoords = <<-59.55467, 142.87741, 6.35158>>
|
|
TestPeds[1].PedHeading = -1.58
|
|
TestPeds[1].PedModel = PLAYER_ONE
|
|
|
|
TestPeds[2].PedsCoords = <<-46.60886, 143.81769, 6.35158>>
|
|
TestPeds[2].PedHeading = 359.6439
|
|
TestPeds[2].PedModel = PLAYER_TWO
|
|
|
|
TestVehicles[0].Vehiclemodel = TAILGATER
|
|
TestVehicles[0].VehicleCoords = <<-60.88103, 143.33746, 6.35158>>
|
|
TestVehicles[0].VehicleHeading = 180.0
|
|
|
|
TestVehicles[1].Vehiclemodel = testVehicleName
|
|
TestVehicles[1].VehicleCoords = <<-49.16578, 144.24376, 6.35158>>
|
|
TestVehicles[1].VehicleHeading = 90.0
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-59.807808,135.568634,11.596110>>
|
|
TestCams[FixedCamera].cam_rot = <<-34.370911,0.000000,2.999246>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE TEST_DEATH_WHILE_JACKING_PED
|
|
|
|
TestPeds[0].PedsCoords = <<-52.66739, 145.89999, 6.35158>>
|
|
TestPeds[0].PedHeading = -1.58
|
|
TestPeds[0].PedModel = PLAYER_ZERO
|
|
|
|
TestPeds[1].PedsCoords = <<-59.55467, 142.87741, 6.35158>>
|
|
TestPeds[1].PedHeading = -1.58
|
|
TestPeds[1].PedModel = PLAYER_ONE
|
|
|
|
TestPeds[2].PedsCoords = <<-56.87870, 143.20117, 6.35158>>
|
|
TestPeds[2].PedHeading = 359.6439
|
|
TestPeds[2].PedModel = S_M_Y_ARMYMECH_01
|
|
|
|
SWITCH int_to_enum (WEAPON_ID, WEAPON_TYPEID)
|
|
CASE PISTOL
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_PISTOL
|
|
BREAK
|
|
CASE RIFLE_AK47
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_ASSAULTRIFLE
|
|
BREAK
|
|
CASE PUMPSHOTGUN
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_PUMPSHOTGUN
|
|
BREAK
|
|
CASE GRENADELAUNCHER
|
|
TestPeds[2].PedsWeapon = WEAPONTYPE_GRENADELAUNCHER
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
TestVehicles[0].Vehiclemodel = TAILGATER
|
|
TestVehicles[0].VehicleCoords = <<-60.88103, 143.33746, 6.35158>>
|
|
TestVehicles[0].VehicleHeading = 180.0
|
|
|
|
TestVehicles[1].Vehiclemodel = testVehicleName
|
|
TestVehicles[1].VehicleCoords = <<-49.16578, 144.24376, 6.35158>>
|
|
TestVehicles[1].VehicleHeading = 90.0
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-59.807808,135.568634,11.596110>>
|
|
TestCams[FixedCamera].cam_rot = <<-34.370911,0.000000,2.999246>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
CASE TEST_OVERRIDE_ENTRY_CLIPSET
|
|
|
|
TestPeds[0].PedsCoords = <<-58.72038, 142.80356, 6.35158>>
|
|
TestPeds[0].PedHeading = -1.58
|
|
TestPeds[0].PedModel = IG_BEVERLY
|
|
|
|
TestVehicles[0].Vehiclemodel = VADER
|
|
TestVehicles[0].VehicleCoords = <<-60.88103, 143.33746, 6.35158>>
|
|
TestVehicles[0].VehicleHeading = 0.0
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-60.539310,147.936768,7.679381>>
|
|
TestCams[FixedCamera].cam_rot = <<-7.064416,0.000000,-175.209595>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
BREAK
|
|
|
|
CASE TEST_FLEE_EXIT
|
|
|
|
TestPeds[0].PedsCoords = <<-1.82127, 80.65820, 6.35078>>
|
|
TestPeds[0].PedHeading = -1.58
|
|
TestPeds[0].PedModel = A_F_Y_BEACH_01
|
|
|
|
TestPeds[1].PedsCoords = <<-2.36231, 77.52570, 6.35078>>
|
|
TestPeds[1].PedHeading = 19.43
|
|
TestPeds[1].PedModel = PLAYER_TWO
|
|
|
|
TestVehicles[0].Vehiclemodel = testVehicleName
|
|
TestVehicles[0].VehicleCoords = <<-6.25811, 83.23129, 6.35078>>
|
|
TestVehicles[0].VehicleHeading = 180.0
|
|
|
|
TestCams[FixedCamera].cam_pos = <<-6.418138,86.555687,10.362010>>
|
|
TestCams[FixedCamera].cam_rot = <<-44.229584,-0.000001,-151.038116>>
|
|
TestCams[FixedCamera].bActivateCam = TRUE
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
///
|
|
PROC RUN_TEST()
|
|
|
|
VECTOR vBlipPos
|
|
//INT index = 0
|
|
VECTOR vRotationEulers
|
|
IF BIKE_LEFT_SIDE
|
|
vRotationEulers = <<0.0, 90.0, 0.0>>
|
|
ELSE
|
|
vRotationEulers = <<0.0, -90.0, 0.0>>
|
|
ENDIF
|
|
|
|
ENTER_EXIT_VEHICLE_FLAGS ENTER_EXIT_FLAGS
|
|
|
|
IF WARP_TO_ENTRY_POINT
|
|
ENTER_EXIT_FLAGS |= ECF_WARP_ENTRY_POINT
|
|
ENDIF
|
|
|
|
SWITCH int_to_enum (scenarios, gcurrentselection) // the ENUM corresponds to the values from the XML file
|
|
|
|
CASE TEST_SET_PED_IN_VEHICLE
|
|
|
|
IS_ENTRY_POINT_FOR_SEAT_CLEAR(TestPeds[0].Ped, TestVehicles[0].Vehicle, VS_DRIVER)
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
|
|
//INT SEAT
|
|
//SEAT = PEDS_SEAT_INDEX - 2
|
|
//IF SEAT >= ENUM_TO_INT(VS_ANY_PASSENGER) AND SEAT <= ENUM_TO_INT(VS_EXTRA_RIGHT_3)
|
|
// SET_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, INT_TO_ENUM(VEHICLE_SEAT, SEAT))
|
|
//ENDIF
|
|
|
|
SET_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, VS_ANY_PASSENGER)
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE TEST_TASK_WARP_PED_INTO_VEHICLE
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
|
|
TASK_WARP_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, VS_ANY_PASSENGER)
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
BREAK
|
|
|
|
CASE TEST_MOVING_ALIGN
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
TASK_WARP_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, VS_DRIVER)
|
|
TASK_VEHICLE_MISSION_COORS_TARGET(TestPeds[0].Ped, TestVehicles[0].Vehicle, <<-4.67, 68.52, 6.35>>, MISSION_GOTO, 5.0, DRIVINGMODE_PLOUGHTHROUGH, 0.1, 5.0)
|
|
ENDIF
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE BUG_LEAVE_ANY_VEHICLE
|
|
|
|
INT Index
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
FOR Index = 0 to 3
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[Index].Ped)
|
|
INT SEAT
|
|
SEAT = Index-1
|
|
TASK_WARP_PED_INTO_VEHICLE(TestPeds[Index].Ped, TestVehicles[0].Vehicle, INT_TO_ENUM(VEHICLE_SEAT, SEAT))
|
|
ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
|
|
SETTIMERA(0)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
|
|
CASE STATE_1
|
|
IF TIMERA() > 1000
|
|
|
|
FOR Index = 0 to 3
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[Index].Ped)
|
|
TASK_LEAVE_ANY_VEHICLE(TestPeds[Index].Ped)
|
|
ENDIF
|
|
ENDFOR
|
|
|
|
SCENARIO_STATE = STATE_2
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_ENTER_VEHICLE_NORMAL
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
|
|
IF REMOVE_VEHICLE_DOOR AND NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
SET_VEHICLE_DOOR_BROKEN(TestVehicles[0].Vehicle, SC_DOOR_FRONT_LEFT, TRUE)
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD( TestVehicles[0].Vehicle)
|
|
|
|
TASK_ENTER_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, DEFAULT_TIME_NEVER_WARP, VS_DRIVER, DYNAMIC_MOVE_BLEND_RATIO, ENTER_EXIT_FLAGS)
|
|
ENDIF
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_ENTER_VEHICLE_JACK
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
|
|
IF REMOVE_VEHICLE_DOOR AND NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
SET_VEHICLE_DOOR_BROKEN(TestVehicles[0].Vehicle, SC_DOOR_FRONT_LEFT, TRUE)
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[1].Ped) AND NOT IS_ENTITY_DEAD( TestVehicles[0].Vehicle)
|
|
TASK_ENTER_VEHICLE(TestPeds[1].Ped, TestVehicles[0].Vehicle, DEFAULT_TIME_NEVER_WARP, VS_DRIVER, PEDMOVE_WALK, ECF_WARP_PED)
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD( TestVehicles[0].Vehicle)
|
|
ENTER_EXIT_FLAGS |= ECF_JACK_ANYONE
|
|
TASK_ENTER_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, DEFAULT_TIME_NEVER_WARP, VS_DRIVER, DYNAMIC_MOVE_BLEND_RATIO, ENTER_EXIT_FLAGS)
|
|
ENDIF
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_ENTER_VEHICLE_FORCED
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
|
|
IF REMOVE_VEHICLE_DOOR AND NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
SET_VEHICLE_DOOR_BROKEN(TestVehicles[0].Vehicle, SC_DOOR_FRONT_LEFT, TRUE)
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
SET_VEHICLE_DOORS_LOCKED(TestVehicles[0].Vehicle, VEHICLELOCK_LOCKED_BUT_CAN_BE_DAMAGED)
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD( TestVehicles[0].Vehicle)
|
|
TASK_ENTER_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, DEFAULT_TIME_NEVER_WARP, VS_DRIVER, DYNAMIC_MOVE_BLEND_RATIO, ECF_JACK_ANYONE)
|
|
ENDIF
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_BRING_VEHICLE_TO_HALT
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
vBlipPos = GET_PLAYER_START_POS()
|
|
ADD_BLIP_FOR_COORD(vBlipPos)
|
|
//DRAW_CHECKPOINT_WITH_ALPHA(vBlipPos, 2.0, 255, 0, 0, 80)
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
|
|
CASE STATE_1
|
|
vBlipPos = GET_PLAYER_START_POS()
|
|
RENDER_FAKE_PICKUP_GLOW(vBlipPos, 2)
|
|
//DRAW_CHECKPOINT_WITH_ALPHA(vBlipPos, 2.0, 255, 255, 0, 80)
|
|
IF NOT IS_ENTITY_DEAD(scplayer)
|
|
IF IS_PED_IN_ANY_VEHICLE(scplayer)
|
|
TestVehicles[0].Vehicle = GET_VEHICLE_PED_IS_IN(scplayer)
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
IF(GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(TestVehicles[0].Vehicle, FALSE), vBlipPos, FALSE) < 2.0)
|
|
// Bring car to a complete stop in 3.0m and hold it stationary for 3s.
|
|
BRING_VEHICLE_TO_HALT(TestVehicles[0].Vehicle, fVehicleHaltStoppingDist, 1)
|
|
|
|
// Once we've been caught in the trap, allow the player to get his car free.
|
|
SCENARIO_STATE = STATE_2
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE STATE_2
|
|
vBlipPos = GET_PLAYER_START_POS()
|
|
//DRAW_CHECKPOINT_WITH_ALPHA(vBlipPos, 2.0, 0, 255, 0, 80)
|
|
// Once the player gets clear of the blip again, re-enable the trap!
|
|
IF(GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(TestVehicles[0].Vehicle, FALSE), vBlipPos, FALSE) > 3.0)
|
|
SCENARIO_STATE = STATE_1
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_ENTER_VEHICLE_ON_SIDE
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD( TestVehicles[0].Vehicle)
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
SET_ENTITY_ROTATION(TestVehicles[0].Vehicle, vRotationEulers, EULER_XYZ)
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD( TestVehicles[0].Vehicle)
|
|
TASK_ENTER_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, DEFAULT_TIME_NEVER_WARP, VS_DRIVER, DYNAMIC_MOVE_BLEND_RATIO, ECF_JACK_ANYONE)
|
|
ENDIF
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE TEST_PLANE_HOMING_MISSILES
|
|
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID()) AND NOT IS_ENTITY_DEAD( TestVehicles[0].Vehicle)
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
|
|
// Warp player into driver seat of first vehicle
|
|
SET_PED_INTO_VEHICLE(PLAYER_PED_ID(), TestVehicles[0].Vehicle, VS_DRIVER)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE TEST_STREAM_VEHICLE_ANIMS
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
|
|
REQUEST_VEHICLE_ASSET(PHANTOM)
|
|
REQUEST_VEHICLE_ASSET(SANCHEZ)
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
|
|
BREAK
|
|
CASE STATE_1
|
|
|
|
IF HAS_VEHICLE_ASSET_LOADED(PHANTOM)
|
|
AND HAS_VEHICLE_ASSET_LOADED(SANCHEZ)
|
|
SCENARIO_STATE = STATE_2
|
|
SETTIMERA(0)
|
|
PRINTLN("GOT_HERE")
|
|
ENDIF
|
|
BREAK
|
|
CASE STATE_2
|
|
IF TIMERA() > 2000
|
|
REMOVE_VEHICLE_ASSET(PHANTOM)
|
|
REMOVE_VEHICLE_ASSET(SANCHEZ)
|
|
PRINTLN("GOT_HERE_2")
|
|
|
|
SETTIMERA(0)
|
|
REQUEST_VEHICLE_ASSET(BURRITO)
|
|
REQUEST_VEHICLE_ASSET(RHINO)
|
|
SCENARIO_STATE = STATE_3
|
|
ENDIF
|
|
BREAK
|
|
CASE STATE_3
|
|
IF TIMERA() > 2000
|
|
REMOVE_VEHICLE_ASSET(BURRITO)
|
|
REMOVE_VEHICLE_ASSET(RHINO)
|
|
PRINTLN("GOT_HERE_3")
|
|
SCENARIO_STATE = STATE_4
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_SET_VELOCITY
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
SET_PED_CONFIG_FLAG(TestPeds[0].Ped, PCF_WillFlyThroughWindscreen, TRUE)
|
|
SET_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle)
|
|
SCENARIO_STATE = STATE_1
|
|
SETTIMERA(0)
|
|
PRINTLN("GOT_HERE")
|
|
ENDIF
|
|
BREAK
|
|
CASE STATE_1
|
|
IF TIMERA() > 500
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
PRINTLN("GOT_HERE_2")
|
|
SET_VEHICLE_FORWARD_SPEED(TestVehicles[0].Vehicle, ForwardSpeed)
|
|
SETTIMERA(0)
|
|
ENDIF
|
|
SCENARIO_STATE = STATE_2
|
|
ENDIF
|
|
BREAK
|
|
CASE STATE_2
|
|
IF TIMERA() > TimeBeforeStop
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
PRINTLN("GOT_HERE_3")
|
|
SET_VEHICLE_FORWARD_SPEED(TestVehicles[0].Vehicle, 0.0)
|
|
ENDIF
|
|
SETTIMERA(0)
|
|
SCENARIO_STATE = STATE_3
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_IN_VEHICLE_CONTEXT
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped) AND NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
SET_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle)
|
|
SCENARIO_STATE = STATE_1
|
|
PRINTLN("GOT_HERE")
|
|
ENDIF
|
|
BREAK
|
|
CASE STATE_1
|
|
IF NOT HAS_CLIP_SET_LOADED("clipset@missarmenian3@franklin_driving")
|
|
REQUEST_CLIP_SET("clipset@missarmenian3@franklin_driving")
|
|
ELSE
|
|
PRINTLN("GOT_HERE_2")
|
|
SCENARIO_STATE = STATE_2
|
|
ENDIF
|
|
BREAK
|
|
CASE STATE_2
|
|
SET_PED_IN_VEHICLE_CONTEXT(TestPeds[0].Ped, GET_HASH_KEY("MISS_ARMENIAN3_FRANKLIN_TENSE"))
|
|
SETTIMERA(0)
|
|
SCENARIO_STATE = STATE_3
|
|
BREAK
|
|
CASE STATE_3
|
|
IF TIMERA() > 15000
|
|
RESET_PED_IN_VEHICLE_CONTEXT(TestPeds[0].Ped)
|
|
SCENARIO_STATE = STATE_4
|
|
ENDIF
|
|
BREAK
|
|
CASE STATE_4
|
|
REMOVE_CLIP_SET("clipset@missarmenian3@franklin_driving")
|
|
SCENARIO_STATE = STATE_5
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_STOCKADE_WITH_STICKY_GRENADES
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
IF NOT IS_ENTITY_DEAD( PLAYER_PED_ID() )
|
|
GIVE_WEAPON_TO_PED( PLAYER_PED_ID(), WEAPONTYPE_STICKYBOMB, 100, TRUE, TRUE )
|
|
SCENARIO_STATE = STATE_1
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_DEATH_WHILST_EXITING
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
INT SEAT
|
|
SEAT = Index-1
|
|
TASK_WARP_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, INT_TO_ENUM(VEHICLE_SEAT, SEAT))
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
|
|
CASE STATE_1
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
ENTER_EXIT_VEHICLE_FLAGS flags
|
|
IF PREFER_LEFT_ENTRY
|
|
flags = ECF_USE_LEFT_ENTRY
|
|
ELIF PREFER_RIGHT_ENTRY
|
|
flags = ECF_USE_RIGHT_ENTRY
|
|
ENDIF
|
|
|
|
TASK_LEAVE_ANY_VEHICLE(TestPeds[0].Ped, 0, flags)
|
|
ENDIF
|
|
SETTIMERA(0)
|
|
SCENARIO_STATE = STATE_2
|
|
BREAK
|
|
|
|
CASE STATE_2
|
|
|
|
IF TIMERA() > DEATH_TIME
|
|
//SET_PED_ACCURACY(TestPeds[1].Ped, 100)
|
|
//SET_PED_COMBAT_ATTRIBUTES(TestPeds[1].Ped, CA_PERFECT_ACCURACY, TRUE)
|
|
//TASK_SHOOT_AT_ENTITY(TestPeds[1].Ped, TestPeds[0].Ped, -1, FIRING_TYPE_CONTINUOUS)
|
|
SCENARIO_STATE = STATE_3
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
BREAK
|
|
|
|
CASE TEST_COLLISION_WHILE_ENTERING
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestVehicles[1].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
IF SWIPE_TYPE = 0
|
|
SET_ENTITY_COORDS(TestVehicles[1].Vehicle, <<-59.01208, 138.36926, 7.77247>> )
|
|
SET_ENTITY_HEADING(TestVehicles[1].Vehicle, 0.0)
|
|
ELIF SWIPE_TYPE = 1
|
|
SET_ENTITY_COORDS(TestVehicles[1].Vehicle, <<-49.16578, 144.24376, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[1].Vehicle, 90.0)
|
|
ELIF SWIPE_TYPE = 2
|
|
SET_ENTITY_COORDS(TestVehicles[1].Vehicle, <<-58.44479, 151.69591, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[1].Vehicle, 180.0)
|
|
ENDIF
|
|
SET_PED_INTO_VEHICLE(TestPeds[1].Ped, TestVehicles[1].Vehicle)
|
|
TASK_VEHICLE_TEMP_ACTION(TestPeds[1].Ped, TestVehicles[1].Vehicle, TEMPACT_GOFORWARD, 3000)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
CASE STATE_1
|
|
SETTIMERA(0)
|
|
SCENARIO_STATE = STATE_2
|
|
BREAK
|
|
CASE STATE_2
|
|
IF TIMERA() > WAIT_BEFORE_ENTER_EXIT_TIME
|
|
TASK_ENTER_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle)
|
|
SCENARIO_STATE = STATE_3
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE TEST_COLLISION_WHILE_EXITING
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestVehicles[1].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
AND NOT IS_ENTITY_DEAD(scplayer)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
IF SWIPE_TYPE = 0
|
|
SET_ENTITY_COORDS(TestVehicles[1].Vehicle, <<-59.01208, 138.36926, 7.77247>> )
|
|
SET_ENTITY_HEADING(TestVehicles[1].Vehicle, 0.0)
|
|
ELIF SWIPE_TYPE = 1
|
|
SET_ENTITY_COORDS(TestVehicles[1].Vehicle, <<-48.99829, 143.08881, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[1].Vehicle, 90.0)
|
|
ELIF SWIPE_TYPE = 2
|
|
SET_ENTITY_COORDS(TestVehicles[1].Vehicle, <<-58.44479, 151.69591, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[1].Vehicle, 180.0)
|
|
ENDIF
|
|
TASK_WARP_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, VS_FRONT_RIGHT)
|
|
SET_PED_INTO_VEHICLE(TestPeds[1].Ped, TestVehicles[1].Vehicle)
|
|
TASK_VEHICLE_TEMP_ACTION(TestPeds[1].Ped, TestVehicles[1].Vehicle, TEMPACT_GOFORWARD, 3000)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
CASE STATE_1
|
|
TASK_LEAVE_ANY_VEHICLE(TestPeds[0].Ped, WAIT_BEFORE_ENTER_EXIT_TIME)
|
|
SCENARIO_STATE = STATE_2
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE TEST_DEATH_WHILE_ENTERING
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
ENTER_EXIT_TASK_GIVEN = FALSE
|
|
SHOOT_TASK_GIVEN = FALSE
|
|
|
|
IF SWIPE_TYPE = 0
|
|
SET_ENTITY_COORDS(TestVehicles[0].Vehicle, <<-60.88103, 143.33746, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[0].Vehicle, 0.0)
|
|
SET_CAM_PARAMS(TestCams[FixedCamera].cam,<<-60.539310,147.936768,7.679381>>,<<-7.064416,0.000000,-175.209595>>,65.000000)
|
|
|
|
ELIF SWIPE_TYPE = 1
|
|
SET_ENTITY_COORDS(TestVehicles[0].Vehicle, <<-60.88103, 143.33746, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[0].Vehicle, 180.0)
|
|
SET_CAM_PARAMS(TestCams[FixedCamera].cam,<<-58.738190,138.826096,8.312482>>,<<-22.549648,0.000000,12.793562>>,65.000000)
|
|
ENDIF
|
|
|
|
SET_ENTITY_HEALTH(TestPeds[0].Ped, 101)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
CASE STATE_1
|
|
SETTIMERA(0)
|
|
SETTIMERB(0)
|
|
SCENARIO_STATE = STATE_2
|
|
BREAK
|
|
CASE STATE_2
|
|
IF NOT ENTER_EXIT_TASK_GIVEN AND TIMERA() > WAIT_BEFORE_ENTER_EXIT_TIME
|
|
TASK_ENTER_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle)
|
|
ENTER_EXIT_TASK_GIVEN = TRUE
|
|
ENDIF
|
|
|
|
IF NOT SHOOT_TASK_GIVEN AND TIMERB() > WAIT_BEFORE_FIRE_TIME
|
|
SET_PED_ACCURACY(TestPeds[1].Ped, 100)
|
|
SET_PED_COMBAT_ATTRIBUTES(TestPeds[1].Ped, CA_PERFECT_ACCURACY, TRUE)
|
|
TASK_SHOOT_AT_ENTITY(TestPeds[1].Ped, TestPeds[0].Ped, -1, FIRING_TYPE_CONTINUOUS)
|
|
SHOOT_TASK_GIVEN = TRUE
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
CASE TEST_DEATH_WHILE_EXITING
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
ENTER_EXIT_TASK_GIVEN = FALSE
|
|
SHOOT_TASK_GIVEN = FALSE
|
|
|
|
IF SWIPE_TYPE = 0
|
|
SET_ENTITY_COORDS(TestVehicles[0].Vehicle, <<-60.88103, 143.33746, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[0].Vehicle, 0.0)
|
|
SET_CAM_PARAMS(TestCams[FixedCamera].cam,<<-58.738190,138.826096,8.312482>>,<<-22.549648,0.000000,12.793562>>,65.000000)
|
|
ELIF SWIPE_TYPE = 1
|
|
SET_ENTITY_COORDS(TestVehicles[0].Vehicle, <<-60.88103, 143.33746, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[0].Vehicle, 180.0)
|
|
SET_CAM_PARAMS(TestCams[FixedCamera].cam,<<-58.738190,138.826096,8.312482>>,<<-22.549648,0.000000,12.793562>>,65.000000)
|
|
ENDIF
|
|
SET_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle)
|
|
SET_ENTITY_HEALTH(TestPeds[0].Ped, 101)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
CASE STATE_1
|
|
SETTIMERA(0)
|
|
SETTIMERB(0)
|
|
SCENARIO_STATE = STATE_2
|
|
BREAK
|
|
CASE STATE_2
|
|
IF NOT ENTER_EXIT_TASK_GIVEN AND TIMERA() > WAIT_BEFORE_ENTER_EXIT_TIME
|
|
TASK_LEAVE_ANY_VEHICLE(TestPeds[0].Ped, 0)
|
|
ENTER_EXIT_TASK_GIVEN = TRUE
|
|
ENDIF
|
|
|
|
IF NOT SHOOT_TASK_GIVEN AND TIMERB() > WAIT_BEFORE_FIRE_TIME
|
|
SET_PED_ACCURACY(TestPeds[1].Ped, 100)
|
|
SET_PED_COMBAT_ATTRIBUTES(TestPeds[1].Ped, CA_PERFECT_ACCURACY, TRUE)
|
|
TASK_SHOOT_AT_ENTITY(TestPeds[1].Ped, TestPeds[0].Ped, -1, FIRING_TYPE_CONTINUOUS)
|
|
SHOOT_TASK_GIVEN = TRUE
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE TEST_THROUGH_WINDSCREEN
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
IF WALL_HEIGHT_TYPE = ENUM_TO_INT(ONE_METRE_HIGH_WALL)
|
|
SET_ENTITY_COORDS(TestVehicles[0].Vehicle, <<39.05972, 188.74785, 6.35078>> )
|
|
SET_ENTITY_HEADING(TestVehicles[0].Vehicle, 0.0)
|
|
SET_CAM_PARAMS(TestCams[FixedCamera].cam,<<35.180328,202.122940,7.617620>>,<<0.946441,-0.000000,-92.923889>>,65.000000)
|
|
ELIF WALL_HEIGHT_TYPE = ENUM_TO_INT(TWO_METRE_HIGH_WALL)
|
|
SET_ENTITY_COORDS(TestVehicles[0].Vehicle, <<44.47080, 192.04300, 6.35078>> )
|
|
SET_ENTITY_HEADING(TestVehicles[0].Vehicle, 0.0)
|
|
SET_CAM_PARAMS(TestCams[FixedCamera].cam,<<40.557129,201.848328,7.710519>>,<<-3.626902,0.000000,-92.923889>>,65.000000)
|
|
ELIF WALL_HEIGHT_TYPE = ENUM_TO_INT(THREE_METRE_HIGH_WALL)
|
|
SET_ENTITY_COORDS(TestVehicles[0].Vehicle, <<51.56202, 191.70973, 6.35078>> )
|
|
SET_ENTITY_HEADING(TestVehicles[0].Vehicle, 0.0)
|
|
SET_CAM_PARAMS(TestCams[FixedCamera].cam,<<46.430065,201.413742,8.109383>>,<<-2.345681,0.000000,-92.327446>>,65.000000)
|
|
ENDIF
|
|
SET_PED_CONFIG_FLAG(TestPeds[0].Ped, PCF_WillFlyThroughWindscreen, TRUE)
|
|
SET_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
CASE STATE_1
|
|
SET_ENTITY_VELOCITY(TestVehicles[0].Vehicle, <<0.0,VEHICLE_SPEED, 0.0>>)
|
|
TASK_VEHICLE_TEMP_ACTION(TestPeds[0].Ped, TestVehicles[0].Vehicle, TEMPACT_GOFORWARD, 3000)
|
|
SCENARIO_STATE = STATE_2
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE TEST_JUMP_OUT
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
|
|
SET_PED_RESET_FLAG(TestPeds[0].Ped, PRF_PreventGoingIntoStillInVehicleState, TRUE)
|
|
|
|
IF DOES_CAM_EXIST(TestCams[TrackingCamera].cam)
|
|
POINT_CAM_AT_ENTITY(TestCams[TrackingCamera].cam, TestVehicles[0].Vehicle, <<0.0, 0.0, 0.0>>)
|
|
camera_pos = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(TestVehicles[0].Vehicle, SphericalCamCoords (CAM_ZOOM, CAM_PITCH, CAM_PAN))
|
|
SET_CAM_COORD (TestCams[TrackingCamera].cam, camera_pos)
|
|
ENDIF
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
IF DOES_CAM_EXIST(TestCams[TrackingCamera].cam)
|
|
DESTROY_CAM(TestCams[TrackingCamera].cam)
|
|
ENDIF
|
|
|
|
TestCams[TrackingCamera].cam = CREATE_CAM ("DEFAULT_SCRIPTED_CAMERA")
|
|
SET_CAM_ACTIVE(TestCams[TrackingCamera].cam, TRUE )
|
|
SET_VEHICLE_ENGINE_ON(TestVehicles[0].Vehicle, TRUE, TRUE)
|
|
SET_ENTITY_COORDS(TestVehicles[0].Vehicle, <<-63.43328 + VEHICLE_SIDE_OFFSET, 68.22320, 6.35084>>)
|
|
SET_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
CASE STATE_1
|
|
SET_ENTITY_VELOCITY(TestVehicles[0].Vehicle, <<0.0,VEHICLE_SPEED, 0.0>>)
|
|
TASK_VEHICLE_TEMP_ACTION(TestPeds[0].Ped, TestVehicles[0].Vehicle, TEMPACT_GOFORWARD, 3000)
|
|
SETTIMERA(0)
|
|
SCENARIO_STATE = STATE_2
|
|
BREAK
|
|
CASE STATE_2
|
|
IF TIMERA() > WAIT_BEFORE_ENTER_EXIT_TIME
|
|
TASK_LEAVE_ANY_VEHICLE(TestPeds[0].Ped, 0, ECF_JUMP_OUT)
|
|
SCENARIO_STATE = STATE_3
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE TEST_COLLISION_WHILE_JACKING_PED
|
|
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestVehicles[1].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[2].Ped)
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
ENTER_EXIT_TASK_GIVEN = FALSE
|
|
SHOOT_TASK_GIVEN = FALSE
|
|
VEHICLE_RAM_TASK_GIVEN = FALSE
|
|
|
|
IF SWIPE_TYPE = 0
|
|
SET_ENTITY_COORDS(TestVehicles[1].Vehicle, <<-58.83489, 137.52158, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[1].Vehicle, 0.0)
|
|
ELIF SWIPE_TYPE = 1
|
|
SET_ENTITY_COORDS(TestVehicles[1].Vehicle, <<-48.99829, 143.08881, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[1].Vehicle, 90.0)
|
|
ELIF SWIPE_TYPE = 2
|
|
SET_ENTITY_COORDS(TestVehicles[1].Vehicle, <<-58.44479, 151.69591, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[1].Vehicle, 180.0)
|
|
ENDIF
|
|
|
|
SET_CAM_PARAMS(TestCams[FixedCamera].cam,<<-58.738190,138.826096,8.312482>>,<<-22.549648,0.000000,12.793562>>,65.000000)
|
|
|
|
VEHICLE_SEAT PLAYER_ZERO_SEAT
|
|
PLAYER_ZERO_SEAT = VS_DRIVER
|
|
IF JACK_FROM_PASSENGER
|
|
PLAYER_ZERO_SEAT = VS_FRONT_RIGHT
|
|
ENDIF
|
|
SET_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, PLAYER_ZERO_SEAT)
|
|
SET_ENTITY_HEALTH(TestPeds[0].Ped, 101)
|
|
SET_PED_INTO_VEHICLE(TestPeds[2].Ped, TestVehicles[1].Vehicle, VS_DRIVER)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
CASE STATE_1
|
|
SETTIMERA(0)
|
|
SETTIMERB(0)
|
|
SCENARIO_STATE = STATE_2
|
|
BREAK
|
|
CASE STATE_2
|
|
IF NOT ENTER_EXIT_TASK_GIVEN AND TIMERA() > WAIT_BEFORE_ENTER_EXIT_TIME
|
|
TASK_ENTER_VEHICLE(TestPeds[1].Ped, TestVehicles[0].Vehicle, -1, VS_DRIVER, PEDMOVEBLENDRATIO_RUN, ECF_JACK_ANYONE)
|
|
ENTER_EXIT_TASK_GIVEN = TRUE
|
|
ENDIF
|
|
IF NOT VEHICLE_RAM_TASK_GIVEN AND TIMERB() > WAIT_BEFORE_VEHICLE_RAM
|
|
TASK_VEHICLE_TEMP_ACTION(TestPeds[2].Ped, TestVehicles[1].Vehicle, TEMPACT_GOFORWARD, 3000)
|
|
VEHICLE_RAM_TASK_GIVEN = TRUE
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE TEST_DEATH_WHILE_JACKING_PED
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestVehicles[1].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[2].Ped)
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
ENTER_EXIT_TASK_GIVEN = FALSE
|
|
SHOOT_TASK_GIVEN = FALSE
|
|
VEHICLE_RAM_TASK_GIVEN = FALSE
|
|
|
|
IF SWIPE_TYPE = 0
|
|
SET_ENTITY_COORDS(TestVehicles[1].Vehicle, <<-58.83489, 137.52158, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[1].Vehicle, 0.0)
|
|
ELIF SWIPE_TYPE = 1
|
|
SET_ENTITY_COORDS(TestVehicles[1].Vehicle, <<-48.99829, 143.08881, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[1].Vehicle, 90.0)
|
|
ELIF SWIPE_TYPE = 2
|
|
SET_ENTITY_COORDS(TestVehicles[1].Vehicle, <<-58.44479, 151.69591, 6.35158>> )
|
|
SET_ENTITY_HEADING(TestVehicles[1].Vehicle, 180.0)
|
|
ENDIF
|
|
|
|
SET_CAM_PARAMS(TestCams[FixedCamera].cam,<<-58.738190,138.826096,8.312482>>,<<-22.549648,0.000000,12.793562>>,65.000000)
|
|
|
|
VEHICLE_SEAT PLAYER_ZERO_SEAT
|
|
PLAYER_ZERO_SEAT = VS_DRIVER
|
|
IF JACK_FROM_PASSENGER
|
|
PLAYER_ZERO_SEAT = VS_FRONT_RIGHT
|
|
ENDIF
|
|
SET_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, PLAYER_ZERO_SEAT)
|
|
SET_ENTITY_HEALTH(TestPeds[0].Ped, 101)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
CASE STATE_1
|
|
SETTIMERA(0)
|
|
SETTIMERB(0)
|
|
SCENARIO_STATE = STATE_2
|
|
BREAK
|
|
CASE STATE_2
|
|
IF NOT ENTER_EXIT_TASK_GIVEN AND TIMERA() > WAIT_BEFORE_ENTER_EXIT_TIME
|
|
TASK_ENTER_VEHICLE(TestPeds[1].Ped, TestVehicles[0].Vehicle, -1, VS_DRIVER, PEDMOVEBLENDRATIO_RUN, ECF_JACK_ANYONE)
|
|
ENTER_EXIT_TASK_GIVEN = TRUE
|
|
ENDIF
|
|
IF NOT SHOOT_TASK_GIVEN AND TIMERB() > WAIT_BEFORE_FIRE_TIME
|
|
SET_PED_ACCURACY(TestPeds[2].Ped, 100)
|
|
SET_PED_COMBAT_ATTRIBUTES(TestPeds[2].Ped, CA_PERFECT_ACCURACY, TRUE)
|
|
TASK_SHOOT_AT_ENTITY(TestPeds[2].Ped, TestPeds[1].Ped, -1, FIRING_TYPE_CONTINUOUS)
|
|
SHOOT_TASK_GIVEN = TRUE
|
|
ENDIF
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE TEST_OVERRIDE_ENTRY_CLIPSET
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
|
|
SWITCH SCENARIO_STATE
|
|
CASE STATE_INIT
|
|
REQUEST_CLIP_SET(clipsetname)
|
|
IF HAS_CLIP_SET_LOADED(clipsetname)
|
|
TASK_ENTER_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, -1, VS_FRONT_RIGHT, PEDMOVEBLENDRATIO_WALK, ECF_JACK_ANYONE, clipsetname)
|
|
SCENARIO_STATE = STATE_1
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE TEST_FLEE_EXIT
|
|
IF NOT IS_ENTITY_DEAD(TestVehicles[0].Vehicle)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[0].Ped)
|
|
AND NOT IS_ENTITY_DEAD(TestPeds[1].Ped)
|
|
|
|
SWITCH SCENARIO_STATE
|
|
|
|
CASE STATE_INIT
|
|
SET_PED_COMBAT_ATTRIBUTES(TestPeds[0].Ped, CA_USE_VEHICLE, FALSE)
|
|
SET_PED_FLEE_ATTRIBUTES(TestPeds[0].Ped, FA_USE_VEHICLE, FALSE)
|
|
SET_PED_INTO_VEHICLE(TestPeds[0].Ped, TestVehicles[0].Vehicle, VS_DRIVER)
|
|
SCENARIO_STATE = STATE_1
|
|
BREAK
|
|
CASE STATE_1
|
|
TASK_SMART_FLEE_PED(TestPeds[0].Ped, TestPeds[1].Ped, 50.0, -1)
|
|
SCENARIO_STATE = STATE_2
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
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
|
|
|
|
SCENARIO_STATE = STATE_INIT
|
|
|
|
REMOVE_CLIP_SET(clipsetname)
|
|
|
|
Cleanup_Scenario_Entities ()
|
|
|
|
IF gResetToDefault
|
|
Temp_cleanup_scenario_cams () //here we are changing scenarios so we need to reset cams
|
|
TestScenarioAStatus = InitialiseScenarioData
|
|
gResetToDefault = FALSE
|
|
ENDIF
|
|
|
|
IF gResetCombatScenario
|
|
Temp_Update_Player_With_Scenario(TestCams, scplayer, FALSE, PlayerStartPos)
|
|
gcurrentselection = gSelection
|
|
IF DOES_CAM_EXIST (TestCams[FixedCamera].cam)
|
|
ACTIVATE_CAM (TestCams[FixedCamera].cam)
|
|
ELSE
|
|
Temp_cleanup_scenario_cams ()
|
|
ENDIF
|
|
TestScenarioAStatus = CreateScenarioEntities
|
|
gResetCombatScenario = FALSE
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
SCRIPT
|
|
|
|
SET_DEBUG_ACTIVE (TRUE)
|
|
|
|
SETUP_MISSION_XML_MENU (XMLMenu, KEY_Q )
|
|
|
|
SETUP_AREA_FOR_MISSION (<<0.0, 0.0, 2.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
|
|
|