Difference between revisions of "Highscore file format"
From Stunts Wiki
(+category, plus minor copyediting. Thanks for the contribution :)) |
m (moved Highscore File Format to Highscore file format: Capitalisation) |
||
(One intermediate revision by one other user not shown) | |||
Line 89: | Line 89: | ||
[[Category:Modding]] | [[Category:Modding]] | ||
+ | [[Category:Internals]] |
Latest revision as of 22:25, 11 February 2022
This article describes the file format of the highscore files used by all versions of Stunts. Each track has its own highscore table, stored in a file which shares the name of the track file; only with .HIG extension instead of .TRK .
Offset | Data Type | Length | Field Name | Description |
---|---|---|---|---|
0 | CHAR[17] (ASCIIZ) | 17 | Name | Driver's Name, terminated with a NUL Character |
17 | CHAR[21] (ASCIIZ) | 21 | Car | Driver's Car, terminated with a NUL Character |
38 | CHAR[4] | 4 | Unknown | Unknown Data is stored Here |
42 | CHAR[8] (ASCIIZ) | 8 | Opponent | |
50 | UCHAR[2] | 2 | Time |
The 4th field (Opponent) has the following structure:
Offset | Data Type | Length | Field Name (or constant) | Description |
---|---|---|---|---|
0 | CHAR[2] | 2 | Opponent ID | |
2 | CHAR | 1 | Character '/' | |
3 | CHAR[4] | 4 | Opponent Car | |
7 | CHAR | 1 | NUL Character |
The size of an entry is 52 bytes. Every highscore file contains exactly 7 Entries = 364 Bytes per File. The 5th field (Time) is expressed in Hundreds of a Second, and is calculated as follows:
TIME = time [1] * 1280 + time [0] * 5
To convert this time to normal min:sec:hundredths format, use the following calculations (hundr contains the time in hundreds):
hundreds = (hundr % 100) hundr /= 100 sec = (hundr % 60) min = (hundr / 60)