# Review PR #165 — feat: optional in-game HUD overlay (speed, vehicle data, notch, signals, CA/SHP) Autor: @DJ-YASHITAKA · base: `master` · 11 plików, +2210/−11 · ostatnia aktualizacja 10.10 https://github.com/MaSzyna-EU07/maszyna/pull/165 **Werdykt: Request changes — przypadkowe regresje w `Globals.h`, konflikty; proponuję zamienić na draft** ## Podsumowanie Przeciągalny HUD (prędkość z kolorowaniem limitu, łuki napięcia/prądu/pozycji/bocznika, nastawnik, sygnały, CA/SHP), tryby Standard/Custom/Off, okno personalizacji, konfiguracja w osobnym `hud.ini`. F1 przełącza tryby HUD, stary „Driving Aid” przechodzi pod Shift+F1. ## Uwagi blokujące 1. **Niezwiązane zmiany w `utilities/Globals.h` — wyglądają na błąd przy merge:** - `targetfps { 60.0f }` → `{ 0.0f }` — zmienia domyślny limit klatek wszystkim graczom, - usunięty wpis `{"dynamicbrake", &uart_conf.dynamicenable}` z konfiguracji UART — psuje odczyt `eu07.ini` dla sprzętu UART (łamie zasadę „every existing file must still be read the way it was”). Oba trzeba przywrócić. 2. **Konflikty** — GitHub pokazuje stan `dirty`. Od 10.10 na `master` weszło sporo zmian w `driveruilayer`/`Train.h`, więc rebase będzie konieczny. 3. **F1 zmienia znaczenie.** Gracze od lat mają pod F1 „Driving Aid”, a teraz dostaną cykl trybów HUD. Wg `CLAUDE.md` funkcja zmieniająca to, co symulator pokazuje, ma się dać wyłączyć w `eu07.ini`, a po wyłączeniu wszystko ma działać jak wcześniej — w tym klawisz F1. Proponuję: HUD domyślnie **wyłączony**, F1 bez zmian, osobny skrót/menu dla HUD (albo F1 przełącza HUD dopiero gdy `gui.hud.enabled yes`). 4. **Domyślny stan jest niejasny.** `hud_config::enabled { true }`, `mode { 0 }` (= Standard), a komentarz w `driveruilayer.cpp` mówi „fresh installs start OFF”. Proszę ustalić jedno i zgodnie z `CLAUDE.md` (pkt 3) — domyślnie wyłączony. ## Pozostałe uwagi 5. **Gdzie leży `hud.ini`.** W dyskusji padło „game directory”. Gra z Steam/GOG bywa w `Program Files`, gdzie zapis się nie uda. `eu07.ini` jest czytane z profilu użytkownika (`user_config_path`) — `hud.ini` powinno iść tą samą ścieżką (czytanie z profilu, potem z folderu gry). Komentarz w `Globals.cpp` też wymaga aktualizacji, bo dyskusja w PR przewijała się między `eu07.ini` a `hud.ini`. 6. **`friend class hud_panel`** w `TTrain` i `TController` — HUD czyta prywatne pola. Lepiej dodać publiczne gettery `const` dla tego, co HUD potrzebuje (`fBlinkTimer` itd.), żeby UI nie wiązało się z wnętrzem klas. 7. **Konfiguracja w `Globals.h`**: kilkadziesiąt pól z tablicami C (`float arc_r[4]`, `int arc_col[4]`…) w globalnym `Global` — przenieść do własnego nagłówka HUD i użyć `std::array` (Sonar S5945). 8. **Font `fonts/lcdd.ttf`** — to asset z SVN. Fallback jest (dobrze), ale PR musi powiedzieć, co dodać do SVN i w jakiej kolejności. 9. **Znany błąd `VelNext == -1`** — do poprawy przed merge (wyświetlać „—” albo nic). 10. **Tłumaczenia** — nowe `STR_C(...)` wymagają wpisów w `lang/*.po` w SVN; @spot57 zwracał uwagę na jakość polskich tekstów. 11. **UX** — uwagi @spot57 i @maj00r (układ odporny na długość tłumaczeń, łuki zamiast pasków, bez dokładnego odwzorowania świateł) — warto odpisać, które przyjęte. 12. Autor sam pytał o przełączenie na draft — sugeruję to zrobić, dopóki pkt 1–4 nie są rozwiązane.