Document the independent realm-name/culture-gating changes in CLAUDE.md

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TMfyZv91tonDnPJqbaTVJE
This commit is contained in:
Jonas Reith 2026-08-30 21:54:25 +02:00
parent af7b6146fd
commit a9ea113f97

View File

@ -455,6 +455,30 @@ on the Live World clock). **Steps 17 of the roadmap are done (plus a derived
that just sets `mode = ColorMode::Biome` (matching the plain `5` key, no side effects, works from 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. 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. `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 ## Current state