# Review PR #243 — Editor, NMT location: assign the place from the camera; //$g found in included files Autor: @miloszunio · base: `feat/switch-blades` · 3 pliki, +55/−1 https://github.com/MaSzyna-EU07/maszyna/pull/243 **Werdykt: Request changes (konflikty + struktura kodu)** ## Podsumowanie 1. „Przypisz z kamery” — odwrotność „The scenery is here”: kliknięty punkt mapy = obecna pozycja kamery, z tego liczony jest początek układu (`E0 = E + x`, `N0 = N − z`). 2. „Środek zapisany w pliku scenerii” — przywraca początek z linii `//$g`. 3. `read_georeference()` szuka `//$g` także w plikach `include` (jeden poziom). Bardzo przydatne — dziś jeden błędny klik psuł georeferencję. ## Co sprawdziłem - Wzór kamery jest zgodny z istniejącą konwersją w `editormode.cpp` (`config.north + Camera.Pos.z`, `config.east - Camera.Pos.x`). ✔ - Kolejność `{m_georeference_origin.y, m_georeference_origin.x}` zgadza się z `nmt_place_scenery` (`Point.x = east`). ✔ - `read_georeference()` jest wołane co klatkę w `render_nmt_place`, ale ma cache `m_georeference_read`, więc pliki czytane są raz. ✔ ## Uwagi 1. **Konflikty.** GitHub pokazuje stan `dirty` — PR wymaga rebase na aktualny `feat/switch-blades`. Jest też `split/3-switch-blades` — warto ustalić, na którą gałąź ma finalnie trafić. 2. **Zagnieżdżenie i wcięcia w `read_georeference()`.** Wewnętrzna pętla nie została wcięta po dodaniu zewnętrznego `for`, a głębokość to teraz for→for→if→if→if — Sonar zgłosi S134 i prawdopodobnie S3776. Proponuję: - helper `std::optional include_target(std::string_view line)` w anonimowym namespace, - helper `bool parse_georeference_line(std::string const &line, …)`, - pętlę po plikach z wczesnym `continue`. 3. **Ścieżki include.** `Global.asCurrentSceneryPath / name` — sprawdzić wielkość liter (na Linuksie `irt/IRT_sceneria.inc` vs `irt/irt_sceneria.inc`); funkcja dla głównego pliku już ma fallback na porównanie bez wielkości liter, include'y nie. 4. **Limit `files.size() < 8`** — magiczna liczba, warto nazwaną stałą z komentarzem. 5. **Ochrona przed pomyłką u źródła.** Skoro problemem jest przypadkowe „The scenery is here”, rozważyć potwierdzenie (popup) tego przycisku, gdy sceneria ma już `//$g` albo ułożone tory. Nowe przyciski to dobra droga powrotu, ale prewencja byłaby jeszcze lepsza. 6. Opis PR zawiera link do sesji Claude Code — do usunięcia przed merge (nie wnosi nic dla recenzenta).