386 lines
11 KiB
XML
Executable File
386 lines
11 KiB
XML
Executable File
USING "globals.sch"
|
|
|
|
USING "Commands_ped.sch"
|
|
USING "Commands_weapon.sch"
|
|
|
|
USING "LineActivation.sch"
|
|
USING "Ambient_Speech.sch"
|
|
USING "Minigame_private.sch"
|
|
USING "flow_public_core_override.sch"
|
|
USING "savegame_public.sch"
|
|
|
|
FUNC BOOL IS_VEHICLE_MODEL_ON_BLACKLIST(MODEL_NAMES targetVehicleModel)
|
|
|
|
INT iTemp
|
|
MODEL_NAMES mBlacklisted[92]
|
|
|
|
mBlacklisted[0] = AMBULANCE
|
|
mBlacklisted[1] = BENSON
|
|
mBlacklisted[2] = BIFF
|
|
mBlacklisted[3] = BUS
|
|
mBlacklisted[4] = FIRETRUK
|
|
mBlacklisted[5] = FORKLIFT
|
|
mBlacklisted[6] = MULE
|
|
mBlacklisted[7] = MULE2
|
|
mBlacklisted[8] = PACKER
|
|
mBlacklisted[9] = PHANTOM
|
|
mBlacklisted[10] = POLICE
|
|
mBlacklisted[11] = STOCKADE
|
|
mBlacklisted[12] = SQUALO
|
|
mBlacklisted[13] = MAVERICK
|
|
mBlacklisted[14] = POLMAV
|
|
mBlacklisted[15] = AIRTUG
|
|
mBlacklisted[16] = FBI
|
|
mBlacklisted[17] = ANNIHILATOR
|
|
mBlacklisted[18] = DINGHY
|
|
mBlacklisted[19] = POLICE
|
|
mBlacklisted[20] = RIPLEY
|
|
mBlacklisted[21] = TRASH
|
|
mBlacklisted[22] = BURRITO
|
|
mBlacklisted[23] = PONY
|
|
mBlacklisted[24] = SPEEDO
|
|
mBlacklisted[25] = MARQUIS
|
|
mBlacklisted[26] = SANCHEZ
|
|
mBlacklisted[27] = AIRTUG
|
|
mBlacklisted[28] = TACO
|
|
mBlacklisted[29] = BARRACKS
|
|
mBlacklisted[30] = ROMERO
|
|
mBlacklisted[31] = BLAZER
|
|
mBlacklisted[32] = BLAZER2
|
|
mBlacklisted[33] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[34] = BODHI2
|
|
mBlacklisted[35] = BOXVILLE2
|
|
mBlacklisted[36] = BULLDOZER
|
|
mBlacklisted[37] = CADDY
|
|
mBlacklisted[38] = CADDY2
|
|
mBlacklisted[39] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[40] = CAMPER
|
|
mBlacklisted[41] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[42] = TIPTRUCK
|
|
mBlacklisted[43] = TOURBUS
|
|
mBlacklisted[44] = TOWTRUCK
|
|
mBlacklisted[45] = TOWTRUCK2
|
|
mBlacklisted[46] = TRACTOR
|
|
mBlacklisted[47] = TRACTOR2
|
|
mBlacklisted[48] = UTILLITRUCK
|
|
mBlacklisted[49] = UTILLITRUCK2
|
|
mBlacklisted[50] = UTILLITRUCK3
|
|
mBlacklisted[51] = BFINJECTION
|
|
mBlacklisted[52] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[53] = DLOADER
|
|
mBlacklisted[54] = DOCKTUG
|
|
mBlacklisted[55] = DUMP
|
|
mBlacklisted[56] = GBURRITO
|
|
mBlacklisted[57] = HANDLER
|
|
mBlacklisted[58] = HAULER
|
|
mBlacklisted[59] = JOURNEY
|
|
mBlacklisted[60] = LGUARD
|
|
mBlacklisted[61] = DUMMY_MODEL_FOR_SCRIPT//LOADER //TAXI2 TAXI2 is now redundant. Removed so game compiles. KW 14/10/2011
|
|
mBlacklisted[62] = DUMMY_MODEL_FOR_SCRIPT//LOADER
|
|
mBlacklisted[63] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[64] = MIXER
|
|
mBlacklisted[65] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[66] = RHINO
|
|
mBlacklisted[67] = CUTTER
|
|
mBlacklisted[68] = POUNDER
|
|
mBlacklisted[69] = TIPTRUCK2
|
|
mBlacklisted[70] = MIXER2
|
|
mBlacklisted[71] = TIPTRUCK2
|
|
mBlacklisted[72] = RUBBLE
|
|
mBlacklisted[73] = SCRAP
|
|
mBlacklisted[74] = ARMYTANKER
|
|
mBlacklisted[75] = BARRACKS2
|
|
mBlacklisted[76] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[77] = AIRBUS
|
|
mBlacklisted[78] = COACH
|
|
mBlacklisted[79] = PBUS
|
|
mBlacklisted[80] = RIOT
|
|
mBlacklisted[81] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[82] = STOCKADE3
|
|
mBlacklisted[83] = FLATBED
|
|
mBlacklisted[84] = BOXVILLE
|
|
mBlacklisted[85] = BURRITO2
|
|
mBlacklisted[86] = BURRITO3
|
|
mBlacklisted[87] = BURRITO4
|
|
mBlacklisted[88] = RUMPO
|
|
mBlacklisted[89] = SPEEDO2
|
|
mBlacklisted[90] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[91] = DUMMY_MODEL_FOR_SCRIPT
|
|
|
|
REPEAT COUNT_OF(mBlacklisted) iTemp
|
|
IF targetVehicleModel = mBlacklisted[iTemp]
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
// just in case we've missed anything
|
|
IF IS_MODEL_POLICE_VEHICLE(targetVehicleModel)
|
|
OR IS_THIS_MODEL_A_BIKE(targetVehicleModel)
|
|
OR IS_THIS_MODEL_A_BOAT(targetVehicleModel)
|
|
OR IS_THIS_MODEL_A_HELI(targetVehicleModel)
|
|
OR IS_THIS_MODEL_A_PLANE(targetVehicleModel)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
|
|
ENDFUNC
|
|
|
|
FUNC BOOL IS_VEHICLE_MODEL_ON_REPAIR_BLACKLIST(MODEL_NAMES targetVehicleModel)
|
|
|
|
INT iTemp
|
|
MODEL_NAMES mBlacklisted[96]
|
|
|
|
mBlacklisted[0] = AMBULANCE
|
|
mBlacklisted[1] = BENSON
|
|
mBlacklisted[2] = BIFF
|
|
mBlacklisted[3] = BUS
|
|
mBlacklisted[4] = FIRETRUK
|
|
mBlacklisted[5] = FORKLIFT
|
|
mBlacklisted[6] = MULE
|
|
mBlacklisted[7] = MULE2
|
|
mBlacklisted[8] = PACKER
|
|
mBlacklisted[9] = PHANTOM
|
|
mBlacklisted[10] = POLICE
|
|
mBlacklisted[11] = STOCKADE
|
|
mBlacklisted[12] = SQUALO
|
|
mBlacklisted[13] = MAVERICK
|
|
mBlacklisted[14] = POLMAV
|
|
mBlacklisted[15] = AIRTUG
|
|
mBlacklisted[16] = FBI
|
|
mBlacklisted[17] = ANNIHILATOR
|
|
mBlacklisted[18] = DINGHY
|
|
mBlacklisted[19] = POLICE
|
|
mBlacklisted[20] = RIPLEY
|
|
mBlacklisted[21] = TRASH
|
|
mBlacklisted[22] = BURRITO
|
|
mBlacklisted[23] = PONY
|
|
mBlacklisted[24] = SPEEDO
|
|
mBlacklisted[25] = MARQUIS
|
|
mBlacklisted[26] = SANCHEZ
|
|
mBlacklisted[27] = AIRTUG
|
|
mBlacklisted[28] = TACO
|
|
mBlacklisted[29] = BARRACKS
|
|
mBlacklisted[30] = ROMERO
|
|
mBlacklisted[31] = BLAZER
|
|
mBlacklisted[32] = BLAZER2
|
|
mBlacklisted[33] = VACCA
|
|
mBlacklisted[34] = BODHI2
|
|
mBlacklisted[35] = BOXVILLE2
|
|
mBlacklisted[36] = BULLDOZER
|
|
mBlacklisted[37] = CADDY
|
|
mBlacklisted[38] = CADDY2
|
|
mBlacklisted[39] = MONROE
|
|
mBlacklisted[40] = CAMPER
|
|
mBlacklisted[41] = ADDER
|
|
mBlacklisted[42] = TIPTRUCK
|
|
mBlacklisted[43] = TOURBUS
|
|
mBlacklisted[44] = TOWTRUCK
|
|
mBlacklisted[45] = TOWTRUCK2
|
|
mBlacklisted[46] = TRACTOR
|
|
mBlacklisted[47] = TRACTOR2
|
|
mBlacklisted[48] = UTILLITRUCK
|
|
mBlacklisted[49] = UTILLITRUCK2
|
|
mBlacklisted[50] = UTILLITRUCK3
|
|
mBlacklisted[51] = BFINJECTION
|
|
mBlacklisted[52] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[53] = DLOADER
|
|
mBlacklisted[54] = DOCKTUG
|
|
mBlacklisted[55] = DUMP
|
|
mBlacklisted[56] = GBURRITO
|
|
mBlacklisted[57] = HANDLER
|
|
mBlacklisted[58] = HAULER
|
|
mBlacklisted[59] = JOURNEY
|
|
mBlacklisted[60] = LGUARD
|
|
mBlacklisted[61] = cheetah
|
|
mBlacklisted[62] = COMET2
|
|
mBlacklisted[63] = ENTITYXF
|
|
mBlacklisted[64] = MIXER
|
|
mBlacklisted[65] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[66] = RHINO
|
|
mBlacklisted[67] = CUTTER
|
|
mBlacklisted[68] = POUNDER
|
|
mBlacklisted[69] = TIPTRUCK2
|
|
mBlacklisted[70] = MIXER2
|
|
mBlacklisted[71] = TIPTRUCK2
|
|
mBlacklisted[72] = RUBBLE
|
|
mBlacklisted[73] = SCRAP
|
|
mBlacklisted[74] = ARMYTANKER
|
|
mBlacklisted[75] = BARRACKS2
|
|
mBlacklisted[76] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[77] = AIRBUS
|
|
mBlacklisted[78] = COACH
|
|
mBlacklisted[79] = PBUS
|
|
mBlacklisted[80] = RIOT
|
|
mBlacklisted[81] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[82] = STOCKADE3
|
|
mBlacklisted[83] = FLATBED
|
|
mBlacklisted[84] = BOXVILLE
|
|
mBlacklisted[85] = BURRITO2
|
|
mBlacklisted[86] = BURRITO3
|
|
mBlacklisted[87] = BURRITO4
|
|
mBlacklisted[88] = RUMPO
|
|
mBlacklisted[89] = SPEEDO2
|
|
mBlacklisted[90] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[91] = DUMMY_MODEL_FOR_SCRIPT
|
|
mBlacklisted[92] = BULLET
|
|
mBlacklisted[93] = NINEF
|
|
mBlacklisted[94] = NINEF2
|
|
mBlacklisted[95] = VOLTIC
|
|
|
|
REPEAT COUNT_OF(mBlacklisted) iTemp
|
|
IF targetVehicleModel = mBlacklisted[iTemp]
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
// just in case we've missed anything
|
|
IF IS_MODEL_POLICE_VEHICLE(targetVehicleModel)
|
|
OR IS_THIS_MODEL_A_BIKE(targetVehicleModel)
|
|
OR IS_THIS_MODEL_A_BOAT(targetVehicleModel)
|
|
OR IS_THIS_MODEL_A_HELI(targetVehicleModel)
|
|
OR IS_THIS_MODEL_A_PLANE(targetVehicleModel)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
|
|
ENDFUNC
|
|
|
|
FUNC INT GET_NEAREST_PASSENGER_SIDE_TO_PED(PED_INDEX ped, VEHICLE_INDEX ThisCar)
|
|
|
|
VECTOR char_pos
|
|
VECTOR right_pos
|
|
VECTOR left_pos
|
|
VECTOR right_vec
|
|
VECTOR left_vec
|
|
CONST_INT LEFT_PASSENGER 1
|
|
CONST_INT RIGHT_PASSENGER 2
|
|
|
|
IF IS_VEHICLE_DRIVEABLE(ThisCar)
|
|
|
|
// get player coords
|
|
IF NOT IS_PED_INJURED(ped)
|
|
char_pos = GET_ENTITY_COORDS(ped)
|
|
ELSE
|
|
RETURN(-1)
|
|
ENDIF
|
|
|
|
// right side
|
|
right_pos = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(ThisCar, <<1.0, -0.5, 0.0>>)
|
|
right_vec = right_pos - char_pos
|
|
|
|
// left side
|
|
left_pos = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(ThisCar, <<-1.0, -0.5, 0.0>>)
|
|
left_vec = left_pos - char_pos
|
|
|
|
// choose the smaller of the two
|
|
IF VMAG(right_vec) < VMAG(left_vec)
|
|
RETURN(RIGHT_PASSENGER)
|
|
ELSE
|
|
RETURN(LEFT_PASSENGER)
|
|
ENDIF
|
|
|
|
ELSE
|
|
RETURN(-1)
|
|
ENDIF
|
|
|
|
ENDFUNC
|
|
|
|
FUNC BOOL IS_VEHICLE_HEADING_ACCEPTABLE(VEHICLE_INDEX vehTemp, FLOAT fIdealHeading, FLOAT fLeeway)
|
|
FLOAT fCarHeading
|
|
FLOAT fUpperH
|
|
FLOAT fLowerH
|
|
IF IS_VEHICLE_DRIVEABLE(vehTemp)
|
|
fCarHeading = GET_ENTITY_HEADING(vehTemp)
|
|
fLowerH = fIdealHeading - fLeeway
|
|
IF fLowerH < 0.0
|
|
fLowerH += 360.0
|
|
ENDIF
|
|
fUpperH = fIdealHeading + fLeeway
|
|
IF fUpperH >= 360.0
|
|
fUpperH -= 360.0
|
|
ENDIF
|
|
IF fUpperH > fLowerH
|
|
IF fCarHeading < fUpperH
|
|
AND fCarHeading > fLowerH
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF fCarHeading < fUpperH
|
|
OR fCarHeading > fLowerH
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC SCALE_CUTSCENE_TRIGGERS_BASED_ON_PLAYER_SPEED(VECTOR vCutPos, FLOAT &fLocateSize, FLOAT &fStoppingDistance)
|
|
BOOL bFlag = FALSE
|
|
VECTOR vTemp
|
|
FLOAT fTemp
|
|
IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID())
|
|
vTemp = GET_ENTITY_COORDS(PLAYER_PED_ID()) - vCutPos
|
|
fTemp = GET_HEADING_FROM_VECTOR_2D(vTemp.x, vTemp.y)
|
|
IF IS_VEHICLE_HEADING_ACCEPTABLE(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()), fTemp, 15)
|
|
bFlag = TRUE
|
|
ENDIF
|
|
vTemp = vCutPos - GET_ENTITY_COORDS(PLAYER_PED_ID())
|
|
fTemp = GET_HEADING_FROM_VECTOR_2D(vTemp.x, vTemp.y)
|
|
IF IS_VEHICLE_HEADING_ACCEPTABLE(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()), fTemp, 15)
|
|
bFlag = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
IF bFlag
|
|
IF GET_ENTITY_SPEED(PLAYER_PED_ID()) > 30
|
|
fLocateSize = LOCATE_SIZE_ANY_MEANS*4
|
|
ELIF GET_ENTITY_SPEED(PLAYER_PED_ID()) > 20
|
|
fLocateSize = LOCATE_SIZE_ANY_MEANS*3
|
|
ELIF GET_ENTITY_SPEED(PLAYER_PED_ID()) > 10
|
|
fLocateSize = LOCATE_SIZE_ANY_MEANS*2
|
|
ELSE
|
|
fLocateSize = LOCATE_SIZE_ANY_MEANS
|
|
ENDIF
|
|
fStoppingDistance = (fLocateSize/1.33)-1
|
|
ELSE
|
|
fLocateSize = LOCATE_SIZE_ANY_MEANS
|
|
fStoppingDistance = (fLocateSize/1.33)-1
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
/// PURPOSE:
|
|
/// Loads and plays the ambient event pass music for the current player character enum.
|
|
/// RETURNS:
|
|
/// TRUE when the stream has been played.
|
|
FUNC BOOL LOAD_AND_PLAY_RANDOM_EVENT_PASS_MUSIC()
|
|
//MISSION_FLOW_PLAY_END_OF_MISSION_MUSIC(TRUE)
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Autosaves after RE completion
|
|
/// RETURNS:
|
|
///
|
|
PROC RUN_AUTOSAVE_AFTER_RANDOM_EVENT_PASS()
|
|
MAKE_AUTOSAVE_REQUEST()
|
|
ENDPROC
|
|
|
|
PROC DEACTIVATE_VENDING_MACHINES_THIS_FRAME()
|
|
g_bVendingMachinesActive = FALSE
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|