diff --git a/ChaseHQ.py b/ChaseHQ.py index aadc57d..c3f66c8 100755 --- a/ChaseHQ.py +++ b/ChaseHQ.py @@ -72,16 +72,16 @@ def decode_nibble_rle(self, cwd, base, typename, names, showlength, follow): def map_curvature(self, cwd, base): curvemap = {0: "Curve Straight", 1: "Curve Right", - 2: "Curve Hard Right", - 3: "Curve Very Hard Right", + 2: "Curve Right Hard", + 3: "Curve Right Very Hard", 4: "Curve 4 XXX", 5: "Curve 5 XXX", 6: "Curve 6 XXX", 7: "Curve 7 XXX", 8: "Curve Straight (alt)", 9: "Curve Left", - 10: "Curve Hard Left", - 11: "Curve Very Hard Left", + 10: "Curve Left Hard", + 11: "Curve Left Very Hard", 12: "Curve 12 XXX", 13: "Curve 13 XXX", 14: "Curve 14 XXX", diff --git a/ChaseHQ.ref b/ChaseHQ.ref index 1700888..12bc879 100644 --- a/ChaseHQ.ref +++ b/ChaseHQ.ref @@ -48,7 +48,7 @@ CommonGraphics PageContent=#INCLUDE(PageContent:MapFormatX) [PageContent:MapFormatX] -
Each stage's map is composed of six separate streams of data. They are: +
Each stage's map is composed of six separate variable-length streams of data. They are:
Curvature controls the left-right turn of the road. It is stored as a sequence of bytes of the form $CT where $C is a count (0..15) and $T is a type. The valid types are: +
Curvature controls the left-right turn of the road. It is stored as a sequence of bytes of the form $CT where $C is a count (1..15) and $T is a type. The valid types are:
A zero byte in the stream is an escape which can be followed by one of: @@ -81,9 +82,9 @@ PageContent=#INCLUDE(PageContent:MapFormatX)
This escape setup is the same for all the other streams. +
This escape format the same for all the other streams. -
Height controls the up-down inclination of the road. It uses the same encoding but the type field instead indicates an incline. Its valid values are: +
Height controls the up-down inclination of the road. It uses the same encoding as curvature but the type field instead defines the road's inclination. Its valid values are:
Lanes use a different scheme: each first byte is a count and the following byte is the data. The (currently understood) valid data values are: +
Lanes use a different scheme: pairs of bytes. The first byte is a count and the following byte is the data. The currently understood valid data values are:
[||||]
4 Lanes [||]__
2 Lanes L _[||]_
2 Lanes M __[||]
2 Lanes R [/||]_
3-2 Narrowing L _[/||]
3-2 Narrowing R _[\||]
2-3 Widening R [\||]
2-3 Widening L ______
Tunnel start ______
Tunnel cont/end? [|||]_
3 Lanes L _[|||]
3 Lanes R [/|||]
4-3 Narrowing R [\|||]
3-4 Widening R [|||/]
3-4 Widening L [|||\]
4-3 Narrowing L [||||]
4 Lanes dirt track _[|||]
3 Lanes dirt track R__[||]
2 Lanes dirt track R$00: [ |||| ]
4 Lanes$01: [ ||__ ]
2 Lanes, Left Aligned$02: [ _||_ ]
2 Lanes, Centre Aligned$03: [ __|| ]
2 Lanes, Right Aligned$06: [ /||_ ]
3 Lanes to 2 Narrowing, Left Aligned$0F: [ _/|| ]
3 Lanes to 2 Narrowing, Right Aligned$1F: [ _\|| ]
2 Lanes to 3 Widening, Left Aligned$2D: [ \||_ ]
2 Lanes to 3 Widening, Right Aligned$45: [ ____ ]
Tunnel start$59: [ ____ ]
Tunnel cont/end?$81: [ |||_ ]
3 Lanes, Left Aligned$82: [ _||| ]
3 Lanes, Right Aligned$8E: [ /||| ]
4 Lanes to 3 Narrowing, Right Aligned$9E: [ \||| ]
3 Lanes to 4 Widening, Right Aligned$AD: [ |||/ ]
3 Lanes to 4 Widening, Left Aligned$BD: [ |||\ ]
4 Lanes to 3 Narrowing, Left Aligned$C1: [ |||| ]
4 Lanes, Dirt track $C2: [ _||| ]
3 Lanes, Dirt track, Right Aligned$C3: [ __|| ]
2 Lanes, Dirt track, Right AlignedRight and Left side objects are nibble RLE encoded as for curvature data. +
Right and Left side objects are encoded in nibbles as for curvature data. -Object types (for Stage 1) are: +The object types (for Stage 1) are:
Hazards consists of only byte counters and an extended form of the escapes with the following additional codes: +
Hazards are encoded only as byte counters and an extended form of the escapes with the following additional codes: