From a9ea113f975da310bb8653b6cd7674cd06e15f53 Mon Sep 17 00:00:00 2001 From: Jonas Reith Date: Sun, 30 Aug 2026 21:54:25 +0200 Subject: [PATCH] Document the independent realm-name/culture-gating changes in CLAUDE.md Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01TMfyZv91tonDnPJqbaTVJE --- CLAUDE.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index c62773a..27d0b43 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -455,6 +455,30 @@ on the Live World clock). **Steps 1–7 of the roadmap are done (plus a derived that just sets `mode = ColorMode::Biome` (matching the plain `5` key, no side effects, works from the very start of World Creation). Purely additive; the dropdown entry and `5` key are unchanged. `src/render` only (`Toolbar.cpp`), no save-format change. +- **Independent realm names, a capital-label collision fix, colony/culture gating, and an explicit + "cultureless" state** *(done)* — a cluster of follow-ups after the realm-borders overlay above. + (1) **Atlas capital labels were colliding**: a capital's own settlement-name label was + systematically lost to the (higher-priority) realm-name/culture block at the same point, since + their offsets weren't real clearance, just a small nudge — fixed with an explicit bottom-up stack + (settlement's own box → culture line → realm name, each strictly above the one below it with a + real gap, sized off a conservative worst-case settlement font) so a capital's own name always + survives the decluttering pass alongside its realm's. (2) **Realm names are now independently + generated**, not literally "Kingdom of " + the capital's own name — `computeCultures()` + (`PlanetCulture.cpp`) derives a separate "place name" via `namegen::makeName()`, keyed on the + capital *settlement's* permanent id (stable across yearly recomputes, unlike `Nation.id` which is + just that pass's insertion order) and its own language bank, deduped against other realms named + the same pass — same retry pattern already used for settlement/colony naming. A kingdom and the + city it's ruled from now read as two distinct places. (3) **`stepColonization()` now requires + `nat.cultureId >= 0`** — a culture-less realm has nothing to pass on, and this stops it from + propagating that gap to new colonies (colonies inherit their founder's culture at founding). + (4) **Realm labels always show a culture line now** (3D, 2D, atlas) — either the real + `(the Velmar)` or an explicit `(cultureless)` in a muted colour, instead of silently omitting the + line when `Nation.cultureId` is unset (which can still arise from older conquest/schism edge cases + predating fix 3) — makes it a readable, intentional-looking state rather than a gap that looks like + a bug. `test_culture.cpp` updated to rebuild the new deterministic name formula and assert it + differs from the capital's own name. Touches `src/sim` (`PlanetCulture.cpp`, `PlanetCiv.cpp`) as + well as `src/render` — `Nation.name`/`cultureId` are derived/not saved (per the Territory & Culture + entries above), so no save-format version bump. ## Current state