New REM client: REM-Client 86c9052, 64-bit (the whole modern UI in the flight HUD's look: cut-corner frames with one outline, no box in the box, caps titles with three slashes, labelled maneuver bar, one compact status panel power / shield / hull; contacts list with a real scroll bar - dragged, the wheel; the nav map without the veil and only as big as map and side; windows take clicks again after a colour theme change)

Built on the FLAtlas VM (VS 2022 Build Tools, Release|x64); DLSS not rebuilt (rem_dlss.dll unchanged).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-03 23:36:50 +01:00
co-authored by Claude Opus 5.5
parent 1029764985
commit 8e334d06da
78 changed files with 411 additions and 349 deletions
+13 -10
View File
@@ -6,10 +6,13 @@
.split { flex: 1; display: flex; flex-direction: row; min-height: 0; }
/* the map box is clear: the nav map draws its own backgrounds under it (DrawUnder), so
the window's colour is laid around it instead of under the whole body */
body.window { background-color: transparent; }
.win-head { background-color: #0d1622eb; }
/* the frame's edge alone over the whole window (hudframes fo); the head and the side bring
their fills with the cut corners, just inside the edge -- no fill over the map. The map
box is 760 dp (rem_ui_navmap.cpp kMapDp): the window only as big as map and side */
body.window { decorator: ninepatch(fo, fo-i); left: 19%; top: 7%; width: 1180dp; height: 880dp; max-width: none; }
.win-head { decorator: ninepatch(fh, fh-i); margin: 2dp 2dp 0 2dp; }
.win-main .content { padding: 0; }
.mapframe { display: flex; flex-direction: column; border: 18dp #0d1622eb; border-right-width: 0; border-bottom-width: 0; }
.mapframe { display: flex; flex-direction: column; margin: 0 0 2dp 2dp; border: 18dp #0d1622eb; border-right-width: 0; border-bottom-width: 0; }
.mapfill { flex: 1; min-height: 18dp; background-color: #0d1622eb; }
#map .region { position: absolute; width: 200dp; margin-left: -100dp; margin-top: -10dp; text-align: center; font-family: "Saira SemiCondensed"; font-size: 17dp; letter-spacing: 3dp; text-transform: uppercase; color: #dbe6f0b0; }
/* uncharted space has no map art: the whole box dark, never the scene through it */
@@ -18,19 +21,19 @@
#map { position: relative; width: 760dp; height: 760dp; overflow: hidden; border: 1dp #24405c; cursor: pointer; background-color: #03070d; transition: background-color 0.3s cubic-out; }
/* the map art (drawn under the window) shows once the window stands: it fades in inside the box */
#map.revealed { background-color: #03070d00; }
.side { flex: 1; margin-left: 0; padding: 18dp; background-color: #0d1622eb; display: flex; flex-direction: column; min-width: 0; }
.side { flex: 1; margin: 0 2dp 2dp 0; padding: 18dp; decorator: ninepatch(fbr, fbr-i); display: flex; flex-direction: column; min-width: 0; }
.tbar { display: flex; flex-direction: row; flex-wrap: wrap; align-items: flex-start; margin-bottom: 10dp; }
.tbar .btn { display: block; margin: 0 6dp 6dp 0; }
.sysname { font-family: "Saira SemiCondensed"; font-weight: 700; font-size: 24dp; letter-spacing: 2dp; margin-bottom: 8dp; }
.pcard { padding: 12dp; border: 1dp #24405c; border-radius: 3dp; background-color: #0d1622; margin-bottom: 10dp; }
.pcard { padding: 12dp; margin-bottom: 10dp; background-color: #5cc8f008; }
.pcard .n { font-family: "Saira SemiCondensed"; font-weight: 600; font-size: 19dp; }
.pcard .k { font-size: 12dp; color: #8197ad; letter-spacing: 1dp; text-transform: uppercase; margin-bottom: 8dp; }
.pcard .btn { margin: 0 6dp 6dp 0; }
.pcard .acts { display: flex; flex-direction: row; flex-wrap: wrap; align-items: flex-start; }
.pcard .acts .btn { display: block; }
.objs { padding: 10dp 12dp; border: 1dp #24405c; border-left: 3dp #f2b13c; border-radius: 3dp; background-color: #0d1622; margin-bottom: 10dp; }
.objs { padding: 10dp 12dp; margin-bottom: 10dp; border-left: 3dp #f2b13c; background-color: #5cc8f008; }
.obj { white-space: pre-line; font-size: 13dp; line-height: 1.4; padding: 4dp 0; border-bottom: 1dp #ffffff08; }
.info { flex: 1; overflow-y: auto; white-space: pre-line; line-height: 1.45; font-size: 14dp; padding: 12dp; border: 1dp #24405c; border-radius: 3dp; background-color: #0d1622; }
.info { flex: 1; overflow-y: auto; white-space: pre-line; line-height: 1.45; font-size: 14dp; padding: 12dp; background-color: #5cc8f008; }
.zoom { position: absolute; right: 8dp; bottom: 8dp; display: flex; flex-direction: row; align-items: center; }
.zoom .btn { margin: 0 0 0 4dp; padding: 2dp 10dp; }
.zoom .v { font-family: "IBM Plex Mono"; font-size: 12dp; color: #8197ad; margin-right: 4dp; }
@@ -51,7 +54,7 @@
.system .s { left: -7dp; top: -7dp; width: 14dp; height: 14dp; border-radius: 7dp; background-color: #f2c94c; border: 2dp #3d6d96; }
.system .lbl { font-size: 12dp; color: #dbe6f0; }
.player .s { left: -8dp; top: -8dp; width: 0; height: 0; border-left: 8dp #00000000; border-right: 8dp #00000000; border-bottom: 16dp #7cf27c; }
.hits, .marks { margin-bottom: 10dp; border: 1dp #24405c; border-radius: 3dp; background-color: #0d1622; max-height: 220dp; overflow-y: auto; }
.hits, .marks { margin-bottom: 10dp; max-height: 220dp; overflow-y: auto; background-color: #5cc8f008; }
.marks h3 { margin: 6dp 10dp 2dp 10dp; }
.hit { display: flex; flex-direction: row; padding: 5dp 10dp; border-bottom: 1dp #ffffff08; }
.hit:hover { background-color: #122033; color: #5cc8f0; }
@@ -73,7 +76,7 @@
.sel .ring2 { position: absolute; left: -12dp; top: -12dp; width: 20dp; height: 20dp; border: 1dp #f2b13c; border-radius: 12dp; }
/* the tools at the click point (as the classic map's ring of tools) */
.pop { position: absolute; width: 150dp; padding: 4dp; background-color: #070b12f2; border: 2dp #3d6d96; border-radius: 3dp; }
.pop { position: absolute; width: 150dp; padding: 4dp; decorator: ninepatch(fw, fw-i); }
.pop .pt { font-size: 11dp; color: #f2b13c; padding: 2dp 6dp 4dp 6dp; white-space: nowrap; overflow: hidden; }
.pop .pb { padding: 4dp 6dp; font-size: 12dp; border-radius: 2dp; }
.pop .pb:hover { background-color: #122033; color: #5cc8f0; }
@@ -96,7 +99,7 @@
<body class="window" data-model="navmap">
<div class="win-head">
<img class="head-ico" src="3db:INTERFACE/NEURONET/ICONS/NN_Map.3db"/>
<span class="title">{{ briefing ? 'MISSION BRIEFING' : 'NAVIGATION' }}</span>
<span class="title">{{ briefing ? 'MISSION BRIEFING' : 'NAVIGATION' }}</span><span class="sl">\\\</span>
<span class="spacer"></span>
<span class="chip">Waypoints <span class="v">{{ waypoints }}</span></span>
<span class="close" data-if="!briefing" data-action="tool" data-arg="close">&#215;</span>