Skip to navigation

Revs on the BBC Micro

Track data: trackData

Name: trackData [Show more] Type: Workspace Category: Track data Summary: This is where the track data gets loaded Deep dive: The jigsaw puzzle binary The track data file format
Context: See this workspace in context in the source code References: This workspace is used as follows: * SwapCode uses trackData

See the track source in revs-silverstone.asm for details of the track data. It covers trackData and dashData41 - the latter gets moved into screen memory as part of the memory-moving process in the SwapData routine.
.trackData .trackSectionData SKIP 1 \ Various data for the track section: \ \ * Bits 0-2: Size of the track section list \ \ * Bits 4-7: Sign number \ \ [Show more]
\ \ This variable is used by the following: \ \ * BuildRoadSign \ * GetFirstSegment \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.xTrackSectionIHi SKIP 1 \ High byte of the x-coordinate of the starting point of \ the inner verge of each track section \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionCoord \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.yTrackSectionIHi SKIP 1 \ High byte of the y-coordinate of the starting point of \ the inner verge of each track section \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionCoord \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.zTrackSectionIHi SKIP 1 \ High byte of the z-coordinate of the starting point of \ the inner verge of each track section \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionCoord \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.xTrackSectionOHi SKIP 1 \ High byte of the x-coordinate of the starting point of \ the outside verge of each track section \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionCoords \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackSectionTurn SKIP 1 \ The number of the segment in the section where \ non-player drivers should start turning in preparation \ for the next section \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSegmentSteering \ * MoveCars (Part 1 of 2) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.zTrackSectionOHi SKIP 1 \ High byte of the z-coordinate of the starting point of \ the outside verge of each track section \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionCoords \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackDriverSpeed SKIP 1 \ The maximum speed for non-player drivers on this \ section of the track \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSegmentSteering \ * MoveCars (Part 1 of 2) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
SKIP 8 * 25 \ Section data for 25 more sections .xTrackSignVector SKIP 16 \ The x-coordinate of the track sign vector for each \ sign, to be scaled and added to the inner track \ section vector for the sign \ \ [Show more]
\ \ This variable is used by the following: \ \ * BuildRoadSign \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.zTrackSignVector SKIP 16 \ The z-coordinate of the track sign vector for each \ sign, to be scaled and added to the inner track \ section vector for the sign \ \ [Show more]
\ \ This variable is used by the following: \ \ * BuildRoadSign \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.yTrackSignVector SKIP 16 \ The y-coordinate of the track sign vector for each \ sign, to be scaled and added to the inner track \ section vector for the sign \ \ [Show more]
\ \ This variable is used by the following: \ \ * BuildRoadSign \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.xTrackSegmentI SKIP 256 \ Vector x-coordinates between two consecutive segments \ on the inside of the track \ \ [Show more]
\ \ This variable is used by the following: \ \ * ApplyElevation (Part 2 of 5) \ * BuildCarObjects (Part 1 of 3) \ * GetSegmentVector \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.yTrackSegmentI SKIP 256 \ Vector y-coordinates between two consecutive segments \ on the inside of the track \ \ [Show more]
\ \ This variable is used by the following: \ \ * BuildCarObjects (Part 1 of 3) \ * GetSegmentVector \ * MultiplyHeight \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.zTrackSegmentI SKIP 256 \ Vector z-coordinates between two consecutive segments \ on the inside of the track \ \ [Show more]
\ \ This variable is used by the following: \ \ * ApplyElevation (Part 2 of 5) \ * BuildCarObjects (Part 1 of 3) \ * GetSegmentVector \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.xTrackSegmentO SKIP 256 \ Vector x-coordinates from the inside to the outside of \ the track for each segment \ \ [Show more]
\ \ This variable is used by the following: \ \ * BuildCarObjects (Part 2 of 3) \ * GetTrackSegment (Part 3 of 3) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.zTrackSegmentO SKIP 256 \ Vector z-coordinates from the inside to the outside of \ the track for each segment \ \ [Show more]
\ \ This variable is used by the following: \ \ * BuildCarObjects (Part 2 of 3) \ * GetTrackSegment (Part 3 of 3) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackSectionFlag SKIP 1 \ Various flags for the track section: \ \ * Bit 0: Section shape (Sh) \ \ * 0 = straight section (only one segment vector) \ \ * 1 = curved section (multiple segment vectors) \ \ * Bit 1: Colour of left verge marks (Vcol) \ \ * 0 = black-and-white verge marks \ \ * 1 = red-and-white verge marks \ \ * Bit 2: Colour of right verge marks (Vcol) \ \ * 0 = black-and-white verge marks \ \ * 1 = red-and-white verge marks \ \ * Bit 3: Show corner markers on right (Mlr) \ \ * 0 = do not show corner markers to the right of \ the track \ \ * 1 = show corner markers to the right of the \ track \ \ * Bit 4: Show corner markers on left (Mlr) \ \ * 0 = do not show corner markers to the left of \ the track \ \ * 1 = show corner markers to the left of the track \ \ * Bit 5: Corner marker colours (Mcol) \ \ * 0 = show all corner markers in white \ \ * 1 = show corner markers in red or white, as \ appropriate \ \ * Bit 6: In the extra tracks only, enable hooks to \ generate segment vectors (G) \ \ * 0 = disable HookDataPointers and \ HookSegmentVector \ \ * 1 = enable HookDataPointers and \ HookSegmentVector \ \ * Bit 7: Section has a maximum speed (Sp) \ \ * 0 = this section has no maximum speed \ \ * 1 = this section has a maximum speed \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetFirstSegment \ * GetSegmentSteering \ * MoveCars (Part 1 of 2) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.xTrackSectionILo SKIP 1 \ Low byte of the x-coordinate of the starting point of \ the inner verge of each track section \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionCoord \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.yTrackSectionILo SKIP 1 \ Low byte of the y-coordinate of the starting point of \ the inner verge of each track section \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionCoord \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.zTrackSectionILo SKIP 1 \ Low byte of the z-coordinate of the starting point of \ the inner verge of each track section \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionCoord \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.xTrackSectionOLo SKIP 1 \ Low byte of the x-coordinate of the starting point of \ the outside verge of each track section \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionCoords \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackSectionFrom SKIP 1 \ The number of the first segment vector in each \ section, which enables us to fetch the segment vectors \ for a given track section \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionCoords \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.zTrackSectionOLo SKIP 1 \ Low byte of the z-coordinate of the starting point of \ the outside verge of each track section \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionCoords \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackSectionSize SKIP 1 \ The length of each track section in terms of segments \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetTrackSegment (Part 2 of 3) \ * MoveObjectBack \ * MoveObjectForward \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
SKIP 8 * 25 \ Section data for 25 more sections .trackSteering SKIP 24 \ The optimum steering for non-player drivers to apply \ on each track section \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionSteering \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
SKIP 2 .trackSignData SKIP 16 \ Base coordinates and object types for 16 road signs \ \ [Show more]
\ \ This variable is used by the following: \ \ * BuildRoadSign \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackSectionCount SKIP 1 \ The total number of track sections * 8 \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionAngles (Part 2 of 3) \ * GetSectionSteering \ * GetTrackSegment (Part 1 of 3) \ * MoveObjectBack \ * MoveObjectForward \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackVectorCount SKIP 1 \ The total number of segment vectors in the segment \ vector tables \ \ [Show more]
\ \ This variable is used by the following: \ \ * UpdateVectorNumber \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackLength SKIP 2 \ The length of the full track in terms of segments \ \ [Show more]
\ \ This variable is used by the following: \ \ * CompareSegments \ * MoveObjectBack \ * MoveObjectForward \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackStartLine SKIP 2 \ The segment number of the starting line \ \ [Show more]
\ \ This variable is used by the following: \ \ * ResetVariables \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackLapTimeSec SKIP 3 \ Lap times for adjusting the race class (seconds) \ \ [Show more]
\ \ This variable is used by the following: \ \ * MainLoop (Part 4 of 6) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackLapTimeMin SKIP 3 \ Lap times for adjusting the race class (minutes) \ \ [Show more]
\ \ This variable is used by the following: \ \ * MainLoop (Part 4 of 6) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackGearRatio SKIP 7 \ The gear ratio for each gear \ \ [Show more]
\ \ This variable is used by the following: \ \ * ApplyEngine \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackGearPower SKIP 7 \ The power for each gear \ \ [Show more]
\ \ This variable is used by the following: \ \ * ApplyEngine \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackBaseSpeed SKIP 3 \ The base speed for each race class, used when \ generating the best racing lines and non-player driver \ speeds \ \ [Show more]
\ \ This variable is used by the following: \ \ * GetSectionSteering \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackStartPosition SKIP 1 \ The starting race position of the player during a \ practice or qualifying lap \ \ [Show more]
\ \ This variable is used by the following: \ \ * ResetVariables \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackCarSpacing SKIP 1 \ The spacing between the cars at the start of a \ qualifying lap, in segments \ \ [Show more]
\ \ This variable is used by the following: \ \ * ResetVariables \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackTimerAdjust SKIP 1 \ Adjustment factor for the speed of the timers to allow \ for fine-tuning of time on a per-track basis \ \ [Show more]
\ \ This variable is used by the following: \ \ * AddTimeToTimer \ * ProcessTime \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
.trackRaceSlowdown SKIP 1 \ Slowdown factor for non-player drivers in the race \ \ [Show more]
\ \ This variable is used by the following: \ \ * MoveCars (Part 1 of 2) \ \ This list only includes code that refers to the \ variable by name; there may be other references to \ this memory location that don't use this label, and \ these will not be mentioned above
SKIP 7