This file contains the score statistics. It replaces PCC 1.x's STAT.CC. It can store multiple score series.
It starts with a header describing the file contents; the header itself is divided in a fixed portion and a number of sub-fields.
The file data is stored in records of identical format, one per turn, in ascending order of turn numbers. Each record consists of a record header and a number of score entries. The header can contain additional information about that turn; currently it contains turn number and timestamp.
This file format allows read and update of the scores in a file even when the structure is not fully understood by the accessing program. However, we need knowledge of the file format to change its structure (=add a new series), to be able to rewrite the header and sub-fields.
+0 8 BYTEs Signature, "CCstat0",26
+8 DWORD "h" total size of file header and sub-fields, pointer to records
+12 WORD "nf" number of sub-fields in file header, at least 2
+14 WORD "n" number of records
+16 WORD "rh" size of record header, usually 20
+18 WORD "rd" number of scores per record
This makes the record size "rh + 44*rd"
+20 nf WORDs Pointers to sub-fields
--- First sub-field: Record description ---
+? rd WORDs Record description. Each entry describes a slot of a
record:
-1 Planet count
-2 Capital ships
-3 Freighters
-4 Bases
or a value matching the Identifier in a score description.
The default setup is -1,-2,-3,-4,2. Negative-numbered
fields may be described in the second sub-field, but don't
have to; non-negative numbers correspond to score entries
from UTILx.DAT record #51 and must be described in the second
sub-field. Values -100 and below are reserved for internal
use and should not appear in files.
--- Second sub-field: Score descriptions ---
+? WORD "nd" Number of descriptions
+? nd RECORDs of 58 bytes (similar to UTIL.DAT #51):
+0 50 BYTEs Name; player-readable description of this score.
+50 WORD Identifier
+52 WORD Turns-over-limit required to win, or -1
+54 DWORD Win limit, -1 if none
--- Records ---
+h n RECORDs of (rh + 44*rd) bytes, sorted in ascending order of turn number
--- Header ---
+0 WORD Turn
+2 10 BYTEs Date mm-dd-yyyy
+12 8 BYTEs Time hh:mm:ss
--- Data ---
+rh 11*rd DWORDs Entries. 11 scores corresponding to first
slot, 11 scores corresponding to second, etc.
Value can be -1 if unknown.


