Drop Snow from the new catalogs and migrate saved Snow shots

The it, pt and uk catalogs merged from main still carried the two Snow
button strings, which the catalog tests report as stale. They are
pruned with npm run i18n -- --prune.

A Scene Director shot saved with Snow now normalizes to Normal when the
project loads, so the shot list shows NORMAL rather than an untranslated
SNOW for a shot that plays on Normal. The README's style keys read 1-6.
This commit is contained in:
Said Turksever committed 2026-10-29 14:04:11 +00:00
1 parent 1990228889
commit 32125384fe
7 files changed
+17 -10

No files matched your search

+2 -2
View File
@@ -294,14 +294,14 @@ Choose a first-run mission, or try these in order. The GIFs show Google Photorea
![Tracking the ISS along its orbital path as it crosses over Ukraine](docs/media/14-iss-over-ukraine.gif)
6. **Switch the optics.** Tap `1`–`7` — CRT, NVG, FLIR — and the whole live planet re-renders through a different sensor.
6. **Switch the optics.** Tap `1`–`6` — CRT, NVG, FLIR — and the whole live planet re-renders through a different sensor.
![Cycling a dense live globe through CRT, FLIR, and NVG in one continuous view](docs/media/01-style-sweep.gif)
7. **Talk to it** _(needs an OpenAI key)_: _"Take me to LAX and select the nearest airborne aircraft."_
8. **Come home.** Hit **Reset Globe** — or just say _"zoom out to a globe view."_
**Keyboard:** `1`–`7` visual styles · `H` HUD · `D` detection · `C` cockpit · `` ` `` frame rate · `Esc` out. Trackpad pinch zooms the globe.
**Keyboard:** `1`–`6` visual styles · `H` HUD · `D` detection · `C` cockpit · `` ` `` frame rate · `Esc` out. Trackpad pinch zooms the globe.
---
+2 -1
View File
@@ -964,7 +964,8 @@
"src/i18n/locales/uk.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-Hant.json",
"src/ui/unitLabels.js"
"src/ui/unitLabels.js",
"src/visualStylePolicy.js"
],
"external": ["cesium"]
},
+9
View File
@@ -135,6 +135,15 @@ test('document byte, nesting, collection, finite-number and string bounds are en
);
});
test('a shot saved with the retired Snow style migrates to Normal', () => {
const project = fixture();
project.scenes[0].shots[0].visual = { style: 'snow' };
const migrated = normalizeProject(
parseSceneDocument(JSON.stringify(project)),
);
assert.equal(migrated.scenes[0].shots[0].visual.style, 'normal');
});
test('captured scope and extended detection edits survive migration', () => {
const project = fixture();
project.scenes[0].shots[0].visual = {
-2
View File
@@ -1700,7 +1700,6 @@
"Thermal": "Termico",
"Anime": "Anime",
"Noir": "Noir",
"Snow": "Neve",
"Current cockpit vision style: {style}. Activate for next style.": "Stile di visione attuale del cockpit: {style}. Attiva per lo stile successivo.",
"Current style: {style} — click for next": "Stile attuale: {style}. Clic per il successivo",
"Collapse Contact panel": "Comprimi il pannello Contatto",
@@ -2781,7 +2780,6 @@
"Simulate FLIR-style thermal contrast. Turn up Ironbow for color.": "Simula il contrasto termico in stile FLIR. Alza Ironbow per il colore.",
"Apply bright cel-shaded color and illustrated outlines.": "Applica colori vivaci cel-shaded e contorni illustrati.",
"Apply high-contrast monochrome film-noir grading.": "Applica un color grading noir monocromatico ad alto contrasto.",
"Add a cold, snowy whiteout treatment to the scene.": "Aggiungi alla scena un effetto freddo di nevicata e whiteout.",
"MAP SOURCE": "FONTE MAPPA",
"Map source": "Fonte mappa",
"Style": "Stile",
-2
View File
@@ -1700,7 +1700,6 @@
"Thermal": "Térmico",
"Anime": "Anime",
"Noir": "Noir",
"Snow": "Neve",
"Current cockpit vision style: {style}. Activate for next style.": "Estilo atual de visão da cabine: {style}. Ative para o próximo estilo.",
"Current style: {style} — click for next": "Estilo atual: {style} — clique para o próximo",
"Collapse Contact panel": "Recolher painel de contato",
@@ -2783,7 +2782,6 @@
"Simulate FLIR-style thermal contrast. Turn up Ironbow for color.": "Simular contraste térmico estilo FLIR. Aumente o Ironbow para ter cor.",
"Apply bright cel-shaded color and illustrated outlines.": "Aplicar cores vivas em cel shading e contornos ilustrados.",
"Apply high-contrast monochrome film-noir grading.": "Aplicar gradação monocromática de filme noir com alto contraste.",
"Add a cold, snowy whiteout treatment to the scene.": "Adicionar à cena um efeito frio de nevasca branca.",
"MAP SOURCE": "FONTE DO MAPA",
"Map source": "Fonte do mapa",
"Style": "Estilo",
-2
View File
@@ -1723,7 +1723,6 @@
"Thermal": "Тепловізор",
"Anime": "Аніме",
"Noir": "Нуар",
"Snow": "Сніг",
"Current cockpit vision style: {style}. Activate for next style.": "Поточний візуальний стиль у кабіні: {style}. Активуйте, щоб перейти до наступного.",
"Current style: {style} — click for next": "Поточний стиль: {style} — клацніть для наступного",
"Collapse Contact panel": "Згорнути панель контактів",
@@ -2850,7 +2849,6 @@
"Simulate FLIR-style thermal contrast. Turn up Ironbow for color.": "Імітує тепловий контраст у стилі FLIR. Для кольору збільште Ironbow.",
"Apply bright cel-shaded color and illustrated outlines.": "Застосовує яскраву мультяшну заливку та ілюстровані контури.",
"Apply high-contrast monochrome film-noir grading.": "Застосовує висококонтрастну чорно-білу обробку в стилі нуар.",
"Add a cold, snowy whiteout treatment to the scene.": "Додає до сцени холодний ефект снігової імли.",
"MAP SOURCE": "ДЖЕРЕЛО КАРТИ",
"Map source": "Джерело карти",
"Style": "Стиль",
+4 -1
View File
@@ -7,6 +7,7 @@ import {
BLOOM_SCALE_VERSION,
decodeBloomIntensity,
} from '../bloom.js';
import { RETIRED_STYLES } from '../visualStylePolicy.js';
/** @constant {number} Current schema version for project migration */
export const PROJECT_VERSION = SCENE_DOCUMENT_VERSION;
@@ -262,7 +263,9 @@ export function normalizeShot(
...(rawShot?.dataPackIds ? { dataPackIds: [...rawShot.dataPackIds] } : {}),
...(rawShot?.move ? { move: deepClone(rawShot.move) } : {}),
visual: {
style: visual.style || 'normal',
style: RETIRED_STYLES.includes(visual.style)
? 'normal'
: visual.style || 'normal',
bloom: normalizeBloomState(bloom, {
projectVersion,
fallbackIntensity: 50,