REM-Client 402338c3: resolution saved in the options, rocks end at the fog without volumetric nebulae (Badlands frame drop), mouse flight caption above the ship status; with cb8b7461 (attention icon, gunner seat in the group window)

This commit is contained in:
2026-11-10 01:16:18 +01:00
parent a765b10ce4
commit 35cbc704b3
6 changed files with 26 additions and 7 deletions
+3 -3
View File
@@ -1,6 +1,6 @@
REM-Client test build (64-bit) REM-Client test build (64-bit)
date: 2026-11-10 00:31 date: 2026-11-10 01:16
commit: 06615919 (main) commit: 402338c3 (main)
subject: Chat: a server bot's line comes with "[NPC] " before the name (rem-server 88eb219) - hidden with "NPC players hidden" as before, else the tag is taken off the shown line subject: Darki's bug list: the resolution is saved, rocks end at the fog's end without volumetric nebulae
tree: clean tree: clean
build: OK build: OK
Binary file not shown.
+1
View File
@@ -36,6 +36,7 @@
<div class="sec"> <div class="sec">
<h3>Players</h3> <h3>Players</h3>
<div class="tgl" data-action="npc"><div class="box" data-class-on="hide_npc"></div><span class="l">Hide NPC pilots</span></div> <div class="tgl" data-action="npc"><div class="box" data-class-on="hide_npc"></div><span class="l">Hide NPC pilots</span></div>
<div class="tgl" data-action="players"><div class="box" data-class-on="hide_players"></div><span class="l">Hide players' chat (universe, system, local - group and private messages stay)</span></div>
<div class="info">Hides the server's NPC pilots ([NPC] names) from the chat, the player list of the chat window, the chat targets and the contact list.</div> <div class="info">Hides the server's NPC pilots ([NPC] names) from the chat, the player list of the chat window, the chat targets and the contact list.</div>
<div class="tgl" style="margin-top: 8dp;" data-action="stamps"><div class="box" data-class-on="stamps"></div><span class="l">Show times in the chat history</span></div> <div class="tgl" style="margin-top: 8dp;" data-action="stamps"><div class="box" data-class-on="stamps"></div><span class="l">Show times in the chat history</span></div>
</div> </div>
+12
View File
@@ -29,6 +29,18 @@
<div class="btn" data-action="decline">Decline</div> <div class="btn" data-action="decline">Decline</div>
</div> </div>
</div> </div>
<div class="request" data-if="crew_invite != ''">
<div class="t">{{ crew_invite }} invites you as gunner. Your own ship stays docked; you sit in the pilot's ship and fire the weapons the pilot gives you.</div>
<div class="actions" style="margin-top: 10dp;">
<div class="btn primary" data-action="crew_accept">Take the seat</div>
<div class="btn" data-action="crew_decline">Decline</div>
</div>
</div>
<div data-if="crew_status != '' || crew_can">
<h3 style="margin-bottom: 8dp;">Gunner seat</h3>
<div class="member" style="border-left-color: #f2b13c;"><span style="flex: 1;">{{ crew_status != '' ? crew_status : 'Your ship has a free gunner seat' }}</span><span class="btn small" data-action="crew_open">Crew ...</span></div>
<div class="hint" data-if="crew_can" style="margin-bottom: 14dp;">Invite a group member: right click the name (chat, contacts) - Invite to gunner seat.</div>
</div>
<h3 style="margin-bottom: 8dp;">Your group</h3> <h3 style="margin-bottom: 8dp;">Your group</h3>
<div class="hint" data-if="members.size == 0">You are not in a group. Invite a pilot from the chat (/invite name).</div> <div class="hint" data-if="members.size == 0">You are not in a group. Invite a pilot from the chat (/invite name).</div>
<div class="members"> <div class="members">
+5 -3
View File
@@ -136,7 +136,8 @@
.w.jump.on { color: #f2b45c; border-left-color: #f2b45c; } .w.jump.on { color: #f2b45c; border-left-color: #f2b45c; }
.cloakbar.jumpbar { background-color: #f2b45c22; } .cloakbar.jumpbar { background-color: #f2b45c22; }
.cloakbar.jumpbar .fill { background-color: #f2b45c; } .cloakbar.jumpbar .fill { background-color: #f2b45c; }
.special { color: #f2d23c; font-size: 16dp; letter-spacing: 1dp; margin-top: 8dp; } .fp.special { left: 50%; margin-left: -300dp; width: 600dp; bottom: 250dp; decorator: none; pointer-events: none; text-align: center;
color: #f2d23c; font-size: 16dp; letter-spacing: 1dp; font-effect: shadow(1dp 1dp #000000cc); }
/* --- the cruise engine's countdown / charge (HUD_CruiseProgress). With the ring: an arc of 16 segments (-55 to +55 degrees) around /* --- the cruise engine's countdown / charge (HUD_CruiseProgress). With the ring: an arc of 16 segments (-55 to +55 degrees) around
the top of the ring that fills from left to right, a glow riding its tip, caption and number above it; the top of the ring that fills from left to right, a glow riding its tip, caption and number above it;
the countdown shows the arc empty and the seconds pulsing; a full charge flashes the arc. With the bars: the countdown shows the arc empty and the seconds pulsing; a full charge flashes the arc. With the bars:
@@ -255,6 +256,9 @@
<div class="row"><div class="ch" data-class-lit="cruise_n &gt; 0"></div><div class="ch" data-class-lit="cruise_n &gt; 1"></div><div class="ch" data-class-lit="cruise_n &gt; 2"></div><div class="ch" data-class-lit="cruise_n &gt; 3"></div><div class="ch" data-class-lit="cruise_n &gt; 4"></div><div class="ch" data-class-lit="cruise_n &gt; 5"></div><div class="ch" data-class-lit="cruise_n &gt; 6"></div><div class="ch" data-class-lit="cruise_n &gt; 7"></div><div class="ch" data-class-lit="cruise_n &gt; 8"></div><div class="ch" data-class-lit="cruise_n &gt; 9"></div><div class="ch" data-class-lit="cruise_n &gt; 10"></div><div class="ch" data-class-lit="cruise_n &gt; 11"></div><div class="ch" data-class-lit="cruise_n &gt; 12"></div><div class="ch" data-class-lit="cruise_n &gt; 13"></div><div class="ch" data-class-lit="cruise_n &gt; 14"></div><div class="ch" data-class-lit="cruise_n &gt; 15"></div><div class="run"></div></div> <div class="row"><div class="ch" data-class-lit="cruise_n &gt; 0"></div><div class="ch" data-class-lit="cruise_n &gt; 1"></div><div class="ch" data-class-lit="cruise_n &gt; 2"></div><div class="ch" data-class-lit="cruise_n &gt; 3"></div><div class="ch" data-class-lit="cruise_n &gt; 4"></div><div class="ch" data-class-lit="cruise_n &gt; 5"></div><div class="ch" data-class-lit="cruise_n &gt; 6"></div><div class="ch" data-class-lit="cruise_n &gt; 7"></div><div class="ch" data-class-lit="cruise_n &gt; 8"></div><div class="ch" data-class-lit="cruise_n &gt; 9"></div><div class="ch" data-class-lit="cruise_n &gt; 10"></div><div class="ch" data-class-lit="cruise_n &gt; 11"></div><div class="ch" data-class-lit="cruise_n &gt; 12"></div><div class="ch" data-class-lit="cruise_n &gt; 13"></div><div class="ch" data-class-lit="cruise_n &gt; 14"></div><div class="ch" data-class-lit="cruise_n &gt; 15"></div><div class="run"></div></div>
<span class="cv">{{ cruise_val }}</span> <span class="cv">{{ cruise_val }}</span>
</div> </div>
<!-- the special view / flight mode (turret view, rear view, mouse flight ...: HUD_Status' SpecialModeText) as the original
shows it: centred above the ship status, not in the weapons list (Darki 2026-11-05) -->
<div class="fp special" data-if="special != ''">{{ special }}</div>
</div> </div>
<!-- bottom left: contacts / target --> <!-- bottom left: contacts / target -->
@@ -265,7 +269,6 @@
<span class="ttl">{{ mode == 1 ? 'TARGET' : 'CONTACTS' }}<span class="sl">\\\</span></span> <span class="ttl">{{ mode == 1 ? 'TARGET' : 'CONTACTS' }}<span class="sl">\\\</span></span>
<span class="sp"></span> <span class="sp"></span>
<div class="ib" data-action="rts" title="Tactical view (F9)"><img class="ico" src="3db:interface/HUD/HUD_contactgroup.3db"/></div> <div class="ib" data-action="rts" title="Tactical view (F9)"><img class="ico" src="3db:interface/HUD/HUD_contactgroup.3db"/></div>
<div class="ib" data-if="crew_btn" data-action="crew" title="Crew: the gunner seat"><img class="ico" src="3db:interface/HUD/hud_grouprequest.3db"/></div>
<div class="ib" data-for="t : tabs" data-class-on="t.active" data-action="tab" data-attr-data-arg="t.key"><img class="ico" data-attr-src="t.icon"/></div> <div class="ib" data-for="t : tabs" data-class-on="t.active" data-action="tab" data-attr-data-arg="t.key"><img class="ico" data-attr-src="t.icon"/></div>
</div> </div>
<div class="fp lbody"> <div class="fp lbody">
@@ -324,7 +327,6 @@
<div class="cloakbar" data-if="has_cloak && cloak_bar"><div class="fill" data-style-width="cloak_width"></div></div> <div class="cloakbar" data-if="has_cloak && cloak_bar"><div class="fill" data-style-width="cloak_width"></div></div>
<div class="w jump" data-if="jump_shown" data-class-on="jump_busy" data-action="jump"><span class="k"></span><span class="n">Jump Drive</span><span class="f">{{ jump_fuel }}</span><span class="a">{{ jump_text }}</span></div> <div class="w jump" data-if="jump_shown" data-class-on="jump_busy" data-action="jump"><span class="k"></span><span class="n">Jump Drive</span><span class="f">{{ jump_fuel }}</span><span class="a">{{ jump_text }}</span></div>
<div class="cloakbar jumpbar" data-if="jump_shown && jump_bar"><div class="fill" data-style-width="jump_width"></div></div> <div class="cloakbar jumpbar" data-if="jump_shown && jump_bar"><div class="fill" data-style-width="jump_width"></div></div>
<div class="special" data-if="special != ''">{{ special }}</div>
</div></div> </div></div>
</div> </div>
</div> </div>
+5 -1
View File
@@ -16,6 +16,10 @@
.nb { transition: background-color 0.15s cubic-out; } .nb { transition: background-color 0.15s cubic-out; }
.nb img { transform: perspective(240dp) rotateY(0deg) scale(1); transition: transform 0.2s cubic-out; } .nb img { transform: perspective(240dp) rotateY(0deg) scale(1); transition: transform 0.2s cubic-out; }
.nb.active img { image-color: #f2b13c; } .nb.active img { image-color: #f2b13c; }
/* an invitation waits (group, trade, gunner seat): the attention icon blinks red */
.nb.alert img { image-color: #ff4a3d; animation: 0.9s cubic-in-out infinite alternate nb-alert; }
.nb.alert { background-color: #ff4a3d22; }
@keyframes nb-alert { from { opacity: 1; } to { opacity: 0.25; } }
.nb .tip { top: 46dp; right: 0; left: auto; bottom: auto; width: 230dp; white-space: normal; text-align: right; } .nb .tip { top: 46dp; right: 0; left: auto; bottom: auto; width: 230dp; white-space: normal; text-align: right; }
.edit-grip { display: none; position: absolute; left: 0; top: 0; padding: 2dp 8dp; background-color: #f2b13c; color: #05080d; font-family: "Saira SemiCondensed"; font-weight: 600; font-size: 13dp; border-radius: 3dp; white-space: nowrap; drag: drag; cursor: move; pointer-events: auto; z-index: 10; } .edit-grip { display: none; position: absolute; left: 0; top: 0; padding: 2dp 8dp; background-color: #f2b13c; color: #05080d; font-family: "Saira SemiCondensed"; font-weight: 600; font-size: 13dp; border-radius: 3dp; white-space: nowrap; drag: drag; cursor: move; pointer-events: auto; z-index: 10; }
.hud-editing .edit-grip { display: block; } .hud-editing .edit-grip { display: block; }
@@ -24,7 +28,7 @@
<body class="nnstrip movable" data-model="nnbar"> <body class="nnstrip movable" data-model="nnbar">
<div class="win-head edit-grip">NeuroNet bar &#10021;</div> <div class="win-head edit-grip">NeuroNet bar &#10021;</div>
<div class="nnbar" data-if="shown" data-style-width="icons.size * 42 + 32 + 'dp'"> <div class="nnbar" data-if="shown" data-style-width="icons.size * 42 + 32 + 'dp'">
<div class="nb" data-for="i : icons" data-class-active="i.active" data-action="nn" data-attr-data-arg="i.cmd"> <div class="nb" data-for="i : icons" data-class-active="i.active" data-class-alert="i.alert" data-action="nn" data-attr-data-arg="i.cmd">
<img data-attr-src="i.icon"/> <img data-attr-src="i.icon"/>
<div class="tip" data-if="i.label != ''">{{ i.label }}</div> <div class="tip" data-if="i.label != ''">{{ i.label }}</div>
</div> </div>