Files
RP412/tools/pages/tracks.tpl
T
Cyd 5135476088 Track plans read as outlines, not hatching
Nearly every track is one model repeated: cn3, a wall bar whose gauge
image is two closed 25x5 rectangles. Five metres of wall thickness is
finer than the plan can resolve, so each bar was landing as two parallel
lines plus two end caps - several hundred times over, which is the
hatching that swamped the arenas. Collapse a thin closed quad to the
centreline between its short edges: one stroke for one wall.

Walls stacked to build height coincide seen from above, so draw each
distinct wall once. And drop placements standing alone more than 200
units from any other - fourteen tracks park a single bar at (1200,0,0)
well off the course, and that one placement stretched the frame to
twelve times the width of the track. The four tracks without it are
exactly the four that always framed correctly. A real branch keeps its
neighbours and stays: Paingod's second canyon is sixty bars out at
x=-400.
2026-08-07 11:05:16 -05:00

73 lines
4.0 KiB
Smarty

<!doctype html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Red Planet - the tracks</title>
<style>{css}</style>
<header class="top">
<div class="wrap">
<p class="eyebrow">Red Planet 4.12 &middot; plans drawn from RPL4.RES</p>
<h1>Every track,<br><em>seen from above</em></h1>
<p class="lede">There are no track maps in the game's files &mdash; the console had
pictures of them and those pictures did not survive. But the game draws one every
race: the map screen in the pod renders the track from above. <strong>These plans
are that same drawing, reconstructed outside the game</strong> &mdash; the same
outlines, from the same placements, straight down.</p>
</div>
</header>
<div class="bar">
<div class="wrap bar__in">
<div class="seg" role="group" aria-label="Filter">
<button type="button" data-filter="all" aria-pressed="true">All</button>
<button type="button" data-filter="arcade" aria-pressed="false">Arcade</button>
<button type="button" data-filter="r411" aria-pressed="false">4.11</button>
<button type="button" data-filter="later" aria-pressed="false">Community</button>
<button type="button" data-filter="race" aria-pressed="false">Death race</button>
<button type="button" data-filter="football" aria-pressed="false">Football</button>
</div>
<input id="search" class="search" type="search" placeholder="Search track&hellip;"
aria-label="Search track">
<span class="count" id="count">{n} / {n} TRACKS</span>
</div>
</div>
<main class="wrap">
<div class="key">
<span><i style="background:var(--ink-mid)"></i>What the map screen draws &mdash; walls, structures, pit</span>
<span><i style="background:var(--sys)"></i>Offered for the death race</span>
<span><i style="background:var(--pilot)"></i>Offered for football</span>
</div>
<div class="grid">{cards}</div>
<p class="empty-state" id="nomatch" hidden>No track matches that.</p>
<p class="foot">{n} tracks: {arcade} shipped in the 4.10 arcade cabinets, {r411} added
in 4.11, {later} built by the community afterwards. Each plan follows
<code>NavDisplay::DrawStatic</code>: for every placement in the map's instance
stream, look up that model's <code>GaugeImage</code> &mdash; a small set of outlines
in world units, the same ones the pod's map screen draws &mdash; and lay it down
rotated and positioned. A placement whose model has no gauge image is skipped here
exactly as the map screen skips it, which is why a card can say fewer placements
carry map art than the track contains.</p>
<p class="foot">Two things are drawn plainer than the pod draws them, so the plan reads
as an outline. Nearly every track is one model repeated &mdash; <code>cn3</code>, a
wall bar whose gauge image is two closed 25&times;5 rectangles. Five metres of wall
thickness is finer than the plan can resolve, so each bar is collapsed to the
centreline between its short edges: one stroke for one wall, instead of two parallel
lines and two end caps several hundred times over. Walls stacked to build height land
on each other seen from above, and are drawn once. Placements standing alone more than
200 units from any other are dropped &mdash; fourteen tracks park a single bar at
(1200,&nbsp;0,&nbsp;0) far 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 bars out at x&nbsp;=&nbsp;-400.</p>
<p class="foot">So the walls are the canyon walls and the chambers are real chambers,
but there is still no driving surface: the map draws what lines the route, never the
tarmac. Extent and relief are the span of the drawn outlines in world units, so a
long thin plan is a point-to-point 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.</p>
</main>
<script>{js}</script>