243 lines
8.6 KiB
XML
Executable File
243 lines
8.6 KiB
XML
Executable File
// Includes
|
|
USING "commands_hud.sch"
|
|
USING "script_drawing.sch"
|
|
|
|
// Constants
|
|
CONST_INT MAX_AI_RACERS 15
|
|
CONST_INT MAX_GRID 16
|
|
CONST_INT MAX_CHECKPOINTS 60
|
|
|
|
// Enums
|
|
ENUM RACE_TRACK_ID
|
|
STREET_RACE_01, // South Los Santos
|
|
STREET_RACE_02, // City Circuit
|
|
STREET_RACE_04, // Airport
|
|
STREET_RACE_05, // Freeway
|
|
STREET_RACE_06, // Vespucci Canals
|
|
SEA_RACE_01, // North Coast
|
|
SEA_RACE_02, // South Coast
|
|
SEA_RACE_03, // Raton Canyon
|
|
SEA_RACE_04, // Los Santos
|
|
RACE_COUNT,
|
|
RACE_INVALID
|
|
ENDENUM
|
|
|
|
ENUM RACE_TYPE
|
|
RACETYPE_UNDEFINED,
|
|
RACETYPE_BIKE,
|
|
RACETYPE_CAR,
|
|
RACETYPE_SEA
|
|
ENDENUM
|
|
|
|
// Structs
|
|
STRUCT TRACK_DATA
|
|
VECTOR vCheckpoint[MAX_CHECKPOINTS]
|
|
VECTOR vStartGrid[MAX_GRID]
|
|
FLOAT fStartGrid[MAX_GRID]
|
|
INT iNumLaps = 0
|
|
INT iNumCheckpoints = 0
|
|
INT iNumAIRacers = 0
|
|
FLOAT drivingSpeedSlow // Base vehicle speeds - the race AI can alter these up/down depending on if the AI is behind/ahead of the player
|
|
FLOAT drivingSpeedMedium
|
|
FLOAT drivingSpeedFast
|
|
ENDSTRUCT
|
|
|
|
STRUCT RACE_DATA
|
|
RACE_TRACK_ID eRaceTrack = RACE_INVALID
|
|
RACE_TYPE eRaceType = RACETYPE_UNDEFINED
|
|
INT iCandidateID = NO_CANDIDATE_ID
|
|
INT iRaceFee = 1000
|
|
INT iSaveSlot = -1
|
|
BOOL bP2P = FALSE
|
|
ENDSTRUCT
|
|
|
|
STRUCT PLAYER_VEHICLE
|
|
VEHICLE_INDEX vehPlayerVehicle
|
|
BLIP_INDEX biPlayerVehicle // Used if player exits his vehicle during the race
|
|
BOOL bDisplayedGetBackInVehicleText // Only display the 'get back in the vehicle' text once
|
|
ENDSTRUCT
|
|
PLAYER_VEHICLE sPlayerVehicle
|
|
|
|
/// PURPOSE: Display race help message
|
|
PROC DISPLAY_RACE_HELP(STRING text)
|
|
IF NOT IS_THIS_HELP_MESSAGE_BEING_DISPLAYED(text)
|
|
PRINT_HELP_FOREVER(text)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Display race help message with number
|
|
PROC DISPLAY_RACE_HELP_WITH_NUMBER(STRING text, INT num)
|
|
|
|
IF NOT IS_THIS_HELP_MESSAGE_WITH_NUMBER_BEING_DISPLAYED(text, num)
|
|
PRINT_HELP_FOREVER_WITH_NUMBER(text, num)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Display race help message with two numbers
|
|
PROC DISPLAY_RACE_HELP_WITH_TWO_NUMBERS(STRING text, INT num1, INT num2)
|
|
|
|
IF NOT IS_THIS_HELP_MESSAGE_WITH_TWO_NUMBERS_BEING_DISPLAYED(text, num1, num2)
|
|
BEGIN_TEXT_COMMAND_DISPLAY_HELP(text)
|
|
ADD_TEXT_COMPONENT_INTEGER(num1)
|
|
ADD_TEXT_COMPONENT_INTEGER(num2)
|
|
END_TEXT_COMMAND_DISPLAY_HELP(HELP_TEXT_SLOT_STANDARD, TRUE, FALSE)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Returns the model name from the race type
|
|
FUNC MODEL_NAMES GET_MODEL_NAME_BASED_OFF_RACE_TYPE(RACE_TYPE rtype)
|
|
MODEL_NAMES vehModel
|
|
SWITCH rtype
|
|
CASE RACETYPE_BIKE vehModel = BATI BREAK
|
|
CASE RACETYPE_CAR vehModel = NINEF BREAK
|
|
CASE RACETYPE_SEA vehModel = SEASHARK BREAK
|
|
ENDSWITCH
|
|
return vehModel
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Returns the correct cloud user name based on which platform we are running
|
|
/// RETURNS:
|
|
/// String of the user name
|
|
FUNC STRING GET_CLOUD_ID()
|
|
|
|
STRING sReturnString
|
|
|
|
IF IS_PS3_VERSION()
|
|
sReturnString = "SPRACE"
|
|
ELIF IS_XBOX360_VERSION()
|
|
sReturnString = "2535285330962926"
|
|
ELIF IS_PLAYSTATION_PLATFORM()
|
|
sReturnString = "SPRACE"
|
|
ELIF IS_XBOX_PLATFORM()
|
|
sReturnString = "2535285330962926"
|
|
ELIF IS_PC_VERSION()
|
|
// Need to setup cloud data for PC version
|
|
sReturnString = "SPRACE"
|
|
ELSE
|
|
sReturnString = "SPRACE"
|
|
ENDIF
|
|
|
|
RETURN sReturnString
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// String of the user name
|
|
FUNC STRING GET_RACE_FILENAME(RACE_TRACK_ID raceTrack)
|
|
|
|
STRING sFilename
|
|
|
|
IF IS_PS3_VERSION()
|
|
SWITCH raceTrack
|
|
CASE SEA_RACE_04 sFilename = "qLp8OsaeTkCjzhK0SZoRVA" BREAK // SeaRace4
|
|
CASE SEA_RACE_02 sFilename = "JhV_7Ir4ekSQLafj22vFkg" BREAK // SeaRace2
|
|
CASE SEA_RACE_03 sFilename = "Fuc2Yl2sukOrORoMo1YJ1A" BREAK // SeaRace3
|
|
CASE SEA_RACE_01 sFilename = "aNlcpqEkhUytgK-8IMbTYQ" BREAK // SeaRace1
|
|
CASE STREET_RACE_01 sFilename = "9aLp9VEnME25Mp_6XZaw0A" BREAK // CityRace1
|
|
CASE STREET_RACE_04 sFilename = "lT9gI2mfrkGDhiW1lSlhbw" BREAK // OR POSSIBLY 8bvbHCAJykmlKzY5PeLDyw // CityRace4
|
|
CASE STREET_RACE_05 sFilename = "YxiNucGMGEu4lCKqizI2lA" BREAK // CityRace5
|
|
CASE STREET_RACE_02 sFilename = "szYNFSberECI5goiWsh1bw" BREAK // CityRace2
|
|
CASE STREET_RACE_06 sFilename = "nZ4p_4_F0EOFyZa2yKEHGA" BREAK // CityRace6
|
|
ENDSWITCH
|
|
ELIF IS_XBOX360_VERSION()
|
|
SWITCH raceTrack
|
|
// Street Races
|
|
CASE STREET_RACE_01 sFilename = "dm_test_20" BREAK // South Los Santos
|
|
CASE STREET_RACE_02 sFilename = "dm_test_18" BREAK // City Circuit
|
|
CASE STREET_RACE_04 sFilename = "dm_test_2" BREAK // Airport
|
|
CASE STREET_RACE_05 sFilename = "dm_test_4" BREAK // Freeway
|
|
CASE STREET_RACE_06 sFilename = "dm_test_5" BREAK // Vespucci Canals
|
|
|
|
// Sea Races
|
|
CASE SEA_RACE_01 sFilename = "dm_test_16" BREAK // North Coast
|
|
CASE SEA_RACE_02 sFilename = "dm_test_13" BREAK // South Coast
|
|
CASE SEA_RACE_03 sFilename = "dm_test_15" BREAK // Raton Canyon
|
|
CASE SEA_RACE_04 sFilename = "dm_test_24" BREAK // Los Santos
|
|
ENDSWITCH
|
|
ELIF IS_PLAYSTATION_PLATFORM()
|
|
SWITCH raceTrack
|
|
CASE SEA_RACE_04 sFilename = "qLp8OsaeTkCjzhK0SZoRVA" BREAK // SeaRace4
|
|
CASE SEA_RACE_02 sFilename = "JhV_7Ir4ekSQLafj22vFkg" BREAK // SeaRace2
|
|
CASE SEA_RACE_03 sFilename = "Fuc2Yl2sukOrORoMo1YJ1A" BREAK // SeaRace3
|
|
CASE SEA_RACE_01 sFilename = "aNlcpqEkhUytgK-8IMbTYQ" BREAK // SeaRace1
|
|
CASE STREET_RACE_01 sFilename = "9aLp9VEnME25Mp_6XZaw0A" BREAK // CityRace1
|
|
CASE STREET_RACE_04 sFilename = "lT9gI2mfrkGDhiW1lSlhbw" BREAK // OR POSSIBLY 8bvbHCAJykmlKzY5PeLDyw // CityRace4
|
|
CASE STREET_RACE_05 sFilename = "YxiNucGMGEu4lCKqizI2lA" BREAK // CityRace5
|
|
CASE STREET_RACE_02 sFilename = "szYNFSberECI5goiWsh1bw" BREAK // CityRace2
|
|
CASE STREET_RACE_06 sFilename = "nZ4p_4_F0EOFyZa2yKEHGA" BREAK // CityRace6
|
|
ENDSWITCH
|
|
ELIF IS_XBOX_PLATFORM()
|
|
SWITCH raceTrack
|
|
// Street Races
|
|
CASE STREET_RACE_01 sFilename = "dm_test_20" BREAK // South Los Santos
|
|
CASE STREET_RACE_02 sFilename = "dm_test_18" BREAK // City Circuit
|
|
CASE STREET_RACE_04 sFilename = "dm_test_2" BREAK // Airport
|
|
CASE STREET_RACE_05 sFilename = "dm_test_4" BREAK // Freeway
|
|
CASE STREET_RACE_06 sFilename = "dm_test_5" BREAK // Vespucci Canals
|
|
|
|
// Sea Races
|
|
CASE SEA_RACE_01 sFilename = "dm_test_16" BREAK // North Coast
|
|
CASE SEA_RACE_02 sFilename = "dm_test_13" BREAK // South Coast
|
|
CASE SEA_RACE_03 sFilename = "dm_test_15" BREAK // Raton Canyon
|
|
CASE SEA_RACE_04 sFilename = "dm_test_24" BREAK // Los Santos
|
|
ENDSWITCH
|
|
ELIF IS_PC_VERSION()
|
|
SWITCH raceTrack
|
|
// Street Races
|
|
CASE STREET_RACE_01 sFilename = "dm_test_20" BREAK // South Los Santos
|
|
CASE STREET_RACE_02 sFilename = "dm_test_18" BREAK // City Circuit
|
|
CASE STREET_RACE_04 sFilename = "dm_test_2" BREAK // Airport
|
|
CASE STREET_RACE_05 sFilename = "dm_test_4" BREAK // Freeway
|
|
CASE STREET_RACE_06 sFilename = "dm_test_5" BREAK // Vespucci Canals
|
|
|
|
// Sea Races
|
|
CASE SEA_RACE_01 sFilename = "dm_test_16" BREAK // North Coast
|
|
CASE SEA_RACE_02 sFilename = "dm_test_13" BREAK // South Coast
|
|
CASE SEA_RACE_03 sFilename = "dm_test_15" BREAK // Raton Canyon
|
|
CASE SEA_RACE_04 sFilename = "dm_test_24" BREAK // Los Santos
|
|
ENDSWITCH
|
|
ENDIF
|
|
RETURN sFilename
|
|
ENDFUNC
|
|
|
|
PROC SETUP_ROAD_BLOCKING(RACE_TRACK_ID raceTrack, VECTOR & vRaceRoadPos1, VECTOR & vRaceRoadPos2, FLOAT & fRaceRoadWidth)
|
|
SWITCH raceTrack
|
|
|
|
// South Los Santos
|
|
CASE STREET_RACE_01
|
|
vRaceRoadPos1 = <<311.126221,-1896.261353,20.683289>>//<<-189.618484,-1616.818237,33.681194>>
|
|
vRaceRoadPos2 = <<-295.065338,-1405.529663,35.314598>>//<<-131.111008,-1538.352417,32.255104>>
|
|
fRaceRoadWidth = 300.0//30.0
|
|
BREAK
|
|
|
|
// City Circuit
|
|
CASE STREET_RACE_02
|
|
vRaceRoadPos1 = <<273.184967,335.296875,105.570442>>
|
|
vRaceRoadPos2 = <<412.287659,299.230408,101.072403>>
|
|
fRaceRoadWidth = 20.0
|
|
BREAK
|
|
|
|
// Airport
|
|
CASE STREET_RACE_04
|
|
vRaceRoadPos1 = <<-823.715698,-2588.000488,13.769104>>
|
|
vRaceRoadPos2 = <<-801.335632,-2464.006592,12.429126>>
|
|
fRaceRoadWidth = 30.0
|
|
BREAK
|
|
|
|
// Freeway
|
|
CASE STREET_RACE_05
|
|
vRaceRoadPos1 = <<791.825745,-1423.862671,24.179544>>//<<800.515930,-1149.139771,27.544914>>
|
|
vRaceRoadPos2 = <<783.166992,-1015.648010,50.241344>>//<<731.347717,-1149.962402,32.013943>>
|
|
fRaceRoadWidth = 200.0//20.0
|
|
BREAK
|
|
|
|
// Vespucci Canals
|
|
CASE STREET_RACE_06
|
|
vRaceRoadPos1 = <<-1084.030396,-1165.723511,0.150211>>
|
|
vRaceRoadPos2 = <<-1029.212891,-1134.580933,2.174534>>
|
|
fRaceRoadWidth = 10.0
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|