Carrec

From GTAModding
Jump to: navigation, search

The carrec.img file stores a set of R3 files (files with an extension .rrr). These files contain path information used by the mission script for San Andreas and GTA 4. It is a direct successor to the chase*.dat files. The paths are predefined and look unnatural during gameplay because the movement of the vehicle is very rigid. The paths ignore many stuff in the game including gravity and obstacles.

Original San Andreas installation has 426 R3 paths. Maximum number of these paths is 475. GTA IV increases this limit. By default there are 1813 R3 paths. The limit appears to be located somewhere beyond 3000.

GTA IV uses an IMG archive located in ..\common\data\cdimages to store the carrec paths. The ones in ...\common\data\paths appears to be unused.

The RRR file structure

An RRR file's inner content is a set of structures describing separate points along a path. Each structure is 32 bytes in length and contains the following fields:

Offset (decimal) Size (in bytes) Type Description Notes
00 04 INT32 time Timekey in milliseconds
04 02 INT16 velocity in direction X Divide by 16383.5 to get floating point values
06 02 INT16 velocity in direction Y Divide by 16383.5 to get floating point values
08 02 INT16 velocity in direction Z Divide by 16383.5 to get floating point values
10 01 INT8 XYZ.right.x Divide by 127.0 to get floating point values
11 01 INT8 XYZ.right.y Divide by 127.0 to get floating point values
12 01 INT8 XYZ.right.z Divide by 127.0 to get floating point values
13 01 INT8 XYZ.top.x Divide by 127.0 to get floating point values
14 01 INT8 XYZ.top.y Divide by 127.0 to get floating point values
15 01 INT8 XYZ.top.z Divide by 127.0 to get floating point values
16 01 INT8 Steering Angle Divide by 20.0 to get floating point values
17 01 INT8 Gas Pedal Power Divide by 100.0 to get floating point values
18 01 INT8 Brake Pedal Power Divide by 100.0 to get floating point values
19 01 INT8 Handbrake used flag Bool: 1 = true, 0 = false
20 04 FLOAT XYZ.pos.x Standard float
24 04 FLOAT XYZ.pos.y Standard float
28 04 FLOAT XYZ.pos.z Standard float

When the vehicle is moving along the path, its XYZ structure is filled with the information from the proper fields of checkpoint data.

Mission Script

San Andreas

You can use the following opcodes to do stuff to your paths.
07C0 - Loads the path
07C1 - Checks if the path has been loaded
0873 - Releases the path from memory
05EB - Assigns a vehicle to the path
0705 - Assigns a vehicle to the path
085E - Assigns a vehicle to a looped path
05EC - Releases the vehicle from a path
05ED - Freezes the vehicle along the path
05EE - Unfreezes the vehicle along the path
06FD - Sets the speed multiplier of the vehicle along the path
0706 - Advances the vehicle along the path
060E - Checks if a path is assigned to the vehicle
If you load a non-existant path to a vehicle, path 1 will be loaded instead.

GTA 4

Use the following native functions:
REQUEST_CAR_RECORDING
HAS_CAR_RECORDING_BEEN_LOADED
REMOVE_CAR_RECORDING
FIND_POSITION_IN_RECORDING
FIND_TIME_POSITION_IN_RECORDING
GET_POSITION_OF_CAR_RECORDING_AT_TIME
GET_TOTAL_DURATION_OF_CAR_RECORDING
SET_RECORDING_TO_POINT_NEAREST_TO_COORS
SYNCH_RECORDING_WITH_WATER

List of paths in San Andreas

This section is incomplete. You can help by fixing and expanding it.

The following is a list of paths defined in the carrec.img file.

ID Description
1 Driving School The 360
2 Driving School The 180
3 Unused Driving School unknown test
4 Driving School Whip and Terminate
5 Driving School Pop and Control
7 Driving School Burn and Lap
9 Driving School Cone Coil
10 Driving School The '90'
11 Driving School Wheelie Weave
13 Driving School Spin and Go
14 Driving School P. I. T. Maneuver
15 Driving School Alley Oop
16 Driving School City Slicking
21 Unused Test Drive Cesar's Savanna, most likely used in beta version of game
22 House Party Sweet's Greenwod
23 House Party GSF's Voodoo
24 Unused path, could have been used in Big Smoke, most likely used in beta version of game
25 The Da Nang Thang Triad's Maverick
27 Pier 69 enemy's Pony
28 Pier 69 Toreno's helicopter
30 OG Loc Freddy's PCJ 600 path 1 (beginning)
31 OG Loc Freddy's PCJ 600 path 2
32 OG Loc Freddy's PCJ 600 path 3
33 OG Loc Freddy's PCJ 600 path 4
34 OG Loc Freddy's PCJ 600 path 5
35 OG Loc Freddy's PCJ 600 path 6
36 OG Loc Freddy's PCJ 600 path 7
37 OG Loc Freddy's PCJ 600 path 8
38 OG Loc Freddy's PCJ 600 path 9
39 OG Loc Freddy's PCJ 600 path 10
40 OG Loc Freddy's PCJ 600 path 11 (end)
41 unused Los Santos to San Fierro AT 400, most likely used in beta version of game
42 Los Santos to San Fierro AT 400
43 Las Venturas to San Fierro AT 400
44 San Fierro to Las Venturas AT 400
46 Los Santos to Las Venturas AT 400
48 Las Venturas to Los Santos AT 400
49 San Fierro to Los Santos AT 400
50 OG Loc highway NPC 1
51 OG Loc highway NPC 2
52 OG Loc highway NPC 3
53 OG Loc highway NPC 4
54 OG Loc highway NPC 5
55 OG Loc highway NPC 6
56 OG Loc highway NPC 7
57 OG Loc highway NPC 8
58 OG Loc highway NPC 9
59 OG Loc highway NPC 10
60 OG Loc highway NPC 11
65 Test Drive Cesar's Elegy path enter alley
66 Test Drive cop 1 path enter alley
67 Test Drive cop 2 path enter alley
70 Test Drive Tram path 1
71 Test Drive outside Otto's Autos NPC 1
72 Test Drive outside Otto's Autos NPC 2
73 Test Drive outside Otto's Autos NPC 3
74 Test Drive outside Otto's Autos NPC 4
75 Test Drive outside Otto's Autos NPC 5
76 Test Drive outside Otto's Autos NPC 6
77 Test Drive Tram path 2
78 Test Drive Tram path 3
79 Test Drive Cesar's Elegy path 1
80 Test Drive Tram path 3
81 Test Drive Cesar's Elegy path 2
82 Unused Test Drive path

More to come soon. The last ID is 834.

External Links