diff --git a/docs/tracks.html b/docs/tracks.html index f4490b5..600aa0d 100644 --- a/docs/tracks.html +++ b/docs/tracks.html @@ -110,17 +110,25 @@ h1 em { font-style: normal; color: var(--sys); } .plan { margin: 0 0 1rem; display: flex; flex-direction: column; - align-items: center; gap: .5rem; + align-items: center; gap: .45rem; } +.plan--console { margin-top: -.4rem; opacity: .85; } .plan__src { - font: 500 var(--step--1)/1 var(--mono); letter-spacing: .1em; + font: 500 var(--step--1)/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-low); text-align: center; } + +/* The map screen's own drawing: a real image in the game's palette on the + display's own black, so it reads the same in either theme. */ .plan__img { - /* The mask is drawn with contain, so clamping the box letterboxes the - art rather than stretching it - a portrait console map stays legible - beside a squat arena. */ - display: block; width: 100%; max-width: 15rem; max-height: 22rem; + display: block; width: 100%; max-width: 15rem; max-height: 24rem; + height: auto; object-fit: contain; background: #000; + border: 1px solid var(--rule); image-rendering: pixelated; +} + +/* The console's picture is line art, so it is tinted like type instead. */ +.plan__mask { + display: block; width: 100%; max-width: 11rem; max-height: 18rem; aspect-ratio: var(--ar); background-color: var(--ink-mid); -webkit-mask-image: var(--art); mask-image: var(--art); @@ -186,12 +194,11 @@ h1 em { font-style: normal; color: var(--sys); }

Red Planet 4.12 · plans drawn from RPL4.RES

Every track,
seen from above

-

There are no track maps in the game's files. Nine of these are the - next best thing: the setup console's own pictures, score zones and - drop zone labelled, recovered and shown here as they were drawn. The other nine - never had one — so their plan comes from the track itself. Almost every track - is a single piece repeated, a wall thrown across the route with a gate in the - middle, and every gate is a point the race passes through.

+

There are no track maps in the game's files, but the game draws + one every race: the map screen renders the track from above. These plans + are that same drawing, reconstructed outside the game — the same + models, the same placements, the same palette, straight down. Nine tracks also + have the picture the setup console showed, and those are here too.

@@ -213,343 +220,330 @@ h1 em { font-style: normal; color: var(--sys); }
- The course, gate by gate + Walls + Score zones + Drop zone and markers Offered for the death race Offered for football
-
The console’s own map
+
Paingod's Passage as the map screen draws it
The map screen’s own drawing
The console’s picture — mirrored against the game

Paingod's Passage

pain

ARCADE 4.10DEATH RACE

-
Instances
255
+
Placements
255
+
Drawn
138
Cameras
18
Start boxes
12
-
Extent
1132 × 7775
-
Relief
110
+
Extent
503 × 7223
-

137 of 255 placements are drawn; the rest carry no map art or stand alone off the course

+

138 of 255 placements are drawn; the rest are models with no map art, which the map screen skips too

-
The console’s own map
+
Blade's Edge as the map screen draws it
The map screen’s own drawing
The console’s picture — mirrored against the game

Blade's Edge

blade

ARCADE 4.10DEATH RACEFOOTBALL

-
Instances
216
+
Placements
216
+
Drawn
141
Cameras
21
Start boxes
7
-
Extent
800 × 7350
-
Relief
86
+
Extent
78 × 6786
-

159 of 216 placements are drawn; the rest carry no map art or stand alone off the course

+

141 of 216 placements are drawn; the rest are models with no map art, which the map screen skips too

-
The console’s own map
+
Yip's Yahoorama as the map screen draws it
The map screen’s own drawing
The console’s picture — mirrored against the game

Yip's Yahoorama

yip

ARCADE 4.10DEATH RACEFOOTBALL

-
Instances
127
+
Placements
127
+
Drawn
77
Cameras
20
Start boxes
17
-
Extent
880 × 6344
-
Relief
95
+
Extent
115 × 5854
-

82 of 127 placements are drawn; the rest carry no map art or stand alone off the course

+

77 of 127 placements are drawn; the rest are models with no map art, which the map screen skips too

-
The console’s own map
+
Berserker's Bahnzai as the map screen draws it
The map screen’s own drawing
The console’s picture — mirrored against the game

Berserker's Bahnzai

otto

ARCADE 4.10DEATH RACEFOOTBALL

-
Instances
203
+
Placements
203
+
Drawn
132
Cameras
24
Start boxes
16
-
Extent
880 × 6344
-
Relief
105
+
Extent
119 × 5773
-

163 of 203 placements are drawn; the rest carry no map art or stand alone off the course

+

132 of 203 placements are drawn; the rest are models with no map art, which the map screen skips too

-
The console’s own map
+
Firestorm's Fury as the map screen draws it
The map screen’s own drawing
The console’s picture — mirrored against the game

Firestorm's Fury

frstrm

ARCADE 4.10DEATH RACEFOOTBALL

-
Instances
325
+
Placements
325
+
Drawn
117
Cameras
20
Start boxes
15
-
Extent
880 × 6344
-
Relief
50
+
Extent
80 × 5773
-

119 of 325 placements are drawn; the rest carry no map art or stand alone off the course

+

117 of 325 placements are drawn; the rest are models with no map art, which the map screen skips too

-
The console’s own map
+
Wiseguy's Wake as the map screen draws it
The map screen’s own drawing
The console’s picture — mirrored against the game

Wiseguy's Wake

wise

ARCADE 4.10DEATH RACEFOOTBALL

-
Instances
133
+
Placements
133
+
Drawn
78
Cameras
16
Start boxes
9
-
Extent
880 × 6030
-
Relief
47
+
Extent
80 × 5450
-

Same footprint and instance count as -- Wiserguy's --

81 of 133 placements are drawn; the rest carry no map art or stand alone off the course

+

Same footprint and instance count as -- Wiserguy's --

78 of 133 placements are drawn; the rest are models with no map art, which the map screen skips too

-
The console’s own map
+
Burnt Cookies as the map screen draws it
The map screen’s own drawing
The console’s picture — mirrored against the game

Burnt Cookies

burnt

ARCADE 4.10DEATH RACEFOOTBALL

-
Instances
251
+
Placements
251
+
Drawn
97
Cameras
17
Start boxes
3
-
Extent
300 × 5300
-
Relief
40
+
Extent
90 × 5200
-

118 of 251 placements are drawn; the rest carry no map art or stand alone off the course

+

97 of 251 placements are drawn; the rest are models with no map art, which the map screen skips too

-
The console’s own map
+
Brewer's Bane as the map screen draws it
The map screen’s own drawing
The console’s picture — mirrored against the game

Brewer's Bane

brewers

ARCADE 4.10DEATH RACEFOOTBALL

-
Instances
607
+
Placements
607
+
Drawn
201
Cameras
20
Start boxes
20
-
Extent
3210 × 4725
-
Relief
115
+
Extent
2875 × 4385
-

220 of 607 placements are drawn; the rest carry no map art or stand alone off the course

+

201 of 607 placements are drawn; the rest are models with no map art, which the map screen skips too

-
The console’s own map
+
Lyz's Lane as the map screen draws it
The map screen’s own drawing
The console’s picture — mirrored against the game

Lyz's Lane

lyzlane

ARCADE 4.10DEATH RACEFOOTBALL

-
Instances
105
+
Placements
105
+
Drawn
82
Cameras
12
Start boxes
44
-
Extent
455 × 4220
-
Relief
15
+
Extent
162 × 4170
-

84 of 105 placements are drawn; the rest carry no map art or stand alone off the course

+

82 of 105 placements are drawn; the rest are models with no map art, which the map screen skips too

-
Course traced from the gates
+
Freezemoon's Freeway as the map screen draws it
The map screen’s own drawing

Freezemoon's Freeway

headoff

ADDED 4.11DEATH RACE

-
Instances
264
+
Placements
264
+
Drawn
87
Cameras
18
Start boxes
5
-
Extent
300 × 4900
-
Relief
44
+
Extent
90 × 4800
-

113 of 264 placements are drawn; the rest carry no map art or stand alone off the course

+

87 of 264 placements are drawn; the rest are models with no map art, which the map screen skips too

-
Course traced from the gates
+
Freezemoon's Freeway (Football) as the map screen draws it
The map screen’s own drawing

Freezemoon's Freeway (Football)

headmf

ADDED 4.11FOOTBALL

-
Instances
274
+
Placements
274
+
Drawn
83
Cameras
18
Start boxes
5
-
Extent
300 × 4900
-
Relief
44
+
Extent
90 × 4800
-

107 of 274 placements are drawn; the rest carry no map art or stand alone off the course

+

83 of 274 placements are drawn; the rest are models with no map art, which the map screen skips too

-
Course traced from the gates
+
-- Tour De Mars -- as the map screen draws it
The map screen’s own drawing

-- Tour De Mars --

tourdemars

COMMUNITYDEATH RACE

-
Instances
607
+
Placements
607
+
Drawn
351
Cameras
20
Start boxes
20
-
Extent
800 × 20648
-
Relief
79
+
Extent
162 × 20338
-

391 of 607 placements are drawn; the rest carry no map art or stand alone off the course

+

351 of 607 placements are drawn; the rest are models with no map art, which the map screen skips too

-
Wall blocks — no single course to trace
+
-- Ares' Armpits -- as the map screen draws it
The map screen’s own drawing

-- Ares' Armpits --

trough

COMMUNITYDEATH RACE

-
Instances
633
+
Placements
633
+
Drawn
320
Cameras
16
Start boxes
9
-
Extent
625 × 6200
-
Relief
186
+
Extent
260 × 6122
-

417 of 633 placements are drawn; the rest carry no map art or stand alone off the course

-
-
-
-
Course traced from the gates
-
-

-- Wiserguy's --

-

wiserguys

-

COMMUNITYDEATH RACE

-
-
Instances
133
-
Cameras
16
-
Start boxes
9
-
Extent
880 × 6030
-
Relief
72
-
-

Same footprint and instance count as Wiseguy's Wake

86 of 133 placements are drawn; the rest carry no map art or stand alone off the course

+

320 of 633 placements are drawn; the rest are models with no map art, which the map screen skips too

-
Course traced from the gates
+
-- Zaxxis -- as the map screen draws it
The map screen’s own drawing

-- Zaxxis --

rpweekend2014

COMMUNITYDEATH RACE

-
Instances
695
+
Placements
695
+
Drawn
134
Cameras
40
Start boxes
3
-
Extent
450 × 5890
-
Relief
87
+
Extent
108 × 5815
-

164 of 695 placements are drawn; the rest carry no map art or stand alone off the course

+

134 of 695 placements are drawn; the rest are models with no map art, which the map screen skips too

+
+
+
+
-- Wiserguy's -- as the map screen draws it
The map screen’s own drawing
+
+

-- Wiserguy's --

+

wiserguys

+

COMMUNITYDEATH RACE

+
+
Placements
133
+
Drawn
82
+
Cameras
16
+
Start boxes
9
+
Extent
80 × 5450
+
+

Same footprint and instance count as Wiseguy's Wake

82 of 133 placements are drawn; the rest are models with no map art, which the map screen skips too

-
Course traced from the gates
+
-- Donut -- as the map screen draws it
The map screen’s own drawing

-- Donut --

donut

COMMUNITYDEATH RACE

-
Instances
325
+
Placements
325
+
Drawn
98
Cameras
20
Start boxes
15
-
Extent
3250 × 3100
-
Relief
10
+
Extent
2800 × 2800
-

96 of 325 placements are drawn; the rest carry no map art or stand alone off the course

+

98 of 325 placements are drawn; the rest are models with no map art, which the map screen skips too

-
Wall blocks — no single course to trace
+
-- Arena (Large) -- as the map screen draws it
The map screen’s own drawing

-- Arena (Large) --

demoderb

COMMUNITYDEATH RACE

-
Instances
455
+
Placements
455
+
Drawn
4
Cameras
17
Start boxes
3
-
Extent
1880 × 1880
-
Relief
0
+
Extent
1800 × 1800
-

4 of 455 placements are drawn; the rest carry no map art or stand alone off the course

+

4 of 455 placements are drawn; the rest are models with no map art, which the map screen skips too

-
Course traced from the gates
+
-- Arena (Small) -- as the map screen draws it
The map screen’s own drawing

-- Arena (Small) --

arena

COMMUNITYDEATH RACE

-
Instances
695
+
Placements
695
+
Drawn
130
Cameras
17
Start boxes
3
-
Extent
1618 × 1568
-
Relief
23
+
Extent
1550 × 1500
-

128 of 695 placements are drawn; the rest carry no map art or stand alone off the course

+

130 of 695 placements are drawn; the rest are models with no map art, which the map screen skips too

18 tracks: 9 shipped in the 4.10 arcade cabinets, 2 added - in 4.11, 7 built by the community afterwards. Drawing what the pod's map screen - draws turns out not to give a map. That screen follows - NavDisplay::DrawStatic, laying down each placement's - GaugeImage, and nearly every placement in every track is the same - piece: cn3, whose image is two 25×5 bars at x 19.5–44.5 - and -44.5–-19.5. That is not a wall running along the route, it is a wall thrown - across it with a 39 unit gate in the middle, and the piece's collision solid says the - same. A few hundred of those is a row of ticks, not a course.

-

But the gate is the point: cn3's own origin sits in the - opening, so every placement marks somewhere the race passes through. Walk the gates in - the order the course visits them — nearest to nearest, starting from the end - furthest out, beginning a new line rather than reaching when the next gate is too far - — and the track draws itself. Walls stacked for height repeat the same opening - and count once. Placements standing alone more than 200 units from any other are - dropped: fourteen tracks park a single piece at (1200, 0, 0) well off the - course, and one stray placement stretches the frame to twelve times the width of the - track. A real branch keeps its neighbours and stays — Paingod's second canyon is - sixty pieces out at x = -400.

-

One track is drawn the other way. Chaining nearest neighbours across a - regular grid invents a maze-like path out of nothing but the order the points happened - to be visited in, and a plan has no business inventing a track layout. So each track is - tested first: count how many neighbours a gate has within 1.6× the typical - spacing. A corridor gives each gate the one ahead and the one behind; a floor of - obstacles gives it four or more. Seventeen tracks score 1 or 2 and are drawn as a - course. The large arena scores 8 on an exact 100 unit grid, so it keeps its wall blocks - instead — and the small arena, which scores 2, really is the maze it looks like.

-

The console's nine pictures also check the other nine. Brewer's Bane is - the one track with a shape distinctive enough to be wrong in an obvious way, and the - reconstruction matches the picture turn for turn — long leg up one side to Score - Zone 1, the corner, the run out to Score Zone 2, junction chambers spaced along it. It - matched mirrored, which is how the projection came to be corrected: seen from above - with +Z up the page the engine's +X runs to the left, and every plan here had - been drawn the other way round. The tracks with no picture are now drawn the same way - round as the tracks with one.

+ in 4.11, 7 built by the community afterwards. Each plan follows + NavDisplay::DrawStatic: for every placement in the track's instance + stream, look up that model's GaugeImage and lay it down rotated and + positioned, at the LOD the engine would choose for this scale. Colours are palette + indices resolved through secpal.pcc, the palette the pod's secondary + port is configured with, on the display's own black — so the walls really are + grey, the score zones really are amber, and nothing here is a styling choice.

+

A record is an Entity::MakeMessage + (MUNGA/ENTITY3.h), read by InterestManager::LoadMapStream, + and it carries its own length — most placements are 76 bytes but every track + has eight of 140, two of 80 and one of 336. It names the model's Model List, + whose GaugeImage is filed under the same model name, so the name is the + join. Models with no gauge image — oao, snAwork, + pz1 — are skipped here exactly as the map screen skips them, which + is why a card can draw fewer placements than the track contains.

+

Seen from above the engine's +X runs right and +Z up: + L4GaugeImagePrimitive::Draw plots (x, z) and the graphics + view's origin is bottom left. The console's own pictures are mirrored + against that — they are illustrations, not screenshots — so where a card + shows both, the two are handed differently and each is right for what it is.

There is still no driving surface anywhere in the file: the track is - walls and gates, never tarmac. Extent and relief are the span of the placed geometry in - world units, so a long thin plan is a point-to-point canyon run — most of the - arcade tracks are exactly that, a few hundred units wide and several thousand long - — and a squat one is a circuit or an arena. Tracks marked NOT IN THE MENU exist - in the resource file but the setup screen does not offer them.

+ walls, zones and markers, never tarmac. Extent is the span of the placements in world + units, so a long thin plan is a point-to-point canyon run and a squat one a circuit + or an arena. Tracks marked NOT IN THE MENU exist in the resource file but the setup + screen does not offer them.