Chase Scene
The chase scene is part of the introduction sequence of Grand Theft Auto III.
Data files
The CHASE*.DAT
files are a set of binary files that set the paths and some behaviors of cars seen in the introduction cutscene of the game. They are located in the \data\paths\
folder. Each entry is 28 bytes in size, with the following format:
Offset | Type | Description |
---|---|---|
0x00 | word[3] | velocity in x,y,z direction |
0x06 | char[3] | right x,y,z |
0x09 | char[3] | top x,y,z |
0x0C | char | steering angle |
0x0D | char | gas pedal power |
0x0E | char | brake pedal power |
0x0F | char | handbrake used |
0x10 | float[3] | x,y,z position |
Mission script
The following commands along with their details relate directly to the chase scene in the game's mission script.
START_CHASE_SCENE
START_CHASE_SCENE
(opcode 0354) is a command that starts the chase scene. The scene consists of 13 unique cars following paths defined in the CHASE*.DAT
files. The minimum to get the chase scene to look decent is to start the cutscene "JB" with the appropriate cutscene objects, make the player safe using MAKE_PLAYER_SAFE_FOR_CUTSCENE
, and load the level collision using LOAD_COLLISION
. Depending on the implementation of the code, anything less can result in many undesirable behaviors, including crashing the game, unusual cycling of colors on cars, creating random collisional damages on cars, making the cars not move, or inability for the player to enter any cars. The game performs the loading of all car models for the scene so you do not need to load the models yourself. During the scene, many parts of the city's collision unloads.
The following table is the initialization of cars and their properties when the opcode is called. The index corresponds to which chase path to use. The data is located in a function at memory address 0x435810 for US v1.0.
Index | Car | Location | Heading | Color | ||||
---|---|---|---|---|---|---|---|---|
0 | 116 | Police | 273.5422 | -1167.1907 | 24.9906 | 63.0 | 2 | 1 |
1 | 117 | Enforcer | 231.1783 | -1388.8322 | 25.9782 | 90.0 | 2 | 1 |
2 | 130 | Rumpo | -28.9762 | -1031.3367 | 25.9781 | 242.0 | 1 | 75 |
3 | 96 | Patriot | 114.1564 | -796.6938 | 24.9782 | 180.0 | 0 | 0 |
4 | 110 | Taxi | 184.3156 | -1473.251 | 25.9782 | 0.0 | 6 | 6 |
6 | 105 | Cheetah | 173.8868 | -1377.6514 | 25.9782 | 0.0 | 4 | 5 |
7 | 92 | Stinger | 102.5946 | -943.9363 | 25.9781 | 270.0 | 53 | 53 |
10 | 105 | Cheetah | 177.7157 | -862.1865 | 25.9782 | 155.0 | 41 | 1 |
11 | 92 | Stinger | 170.5698 | -889.0236 | 25.9782 | 154.0 | 10 | 10 |
14 | 111 | Kuruma | 402.6081 | -917.4963 | 37.381 | 90.0 | 34 | 1 |
16 | 110 | Taxi | -33.4962 | -938.4563 | 25.9781 | 266.0 | 6 | 6 |
18 | 111 | Kuruma | 49.3631 | -987.605 | 25.9781 | 0.0 | 51 | 1 |
19 | 110 | Taxi | 179.0049 | -1154.6686 | 25.9781 | 0.0 | 6 | 76 |
STOP_CHASE_SCENE
STOP_CHASE_SCENE
(opcode 0355) is a command that stops the chase scene started by START_CHASE_SCENE
by deleting all cars from the scene. The chase scene causes many parts of the city's collision to unload so, in order to restore the collision, place the player character outside Staunton Island to force the loading of level collisions.
REMOVE_CAR_FROM_CHASE
REMOVE_CAR_FROM_CHASE
(opcode 040A) is a command that removes the car from the chase scene started by START_CHASE_SCENE
.
GET_CHASE_CAR
GET_CHASE_CAR
(opcode 0439) is a command that gets the car from the chase scene started by START_CHASE_SCENE
. The car is also released from the chase scene and no longer follows its path. This command was never called in the original script of GTA III.
See also
External link