17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-11-09 01:20:32 +01:00
Files
maszyna/pr-reviews/PR-165.md

3.4 KiB
Raw Blame History

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

  1. 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.
  2. 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.
  3. 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).
  4. Font fonts/lcdd.ttf — to asset z SVN. Fallback jest (dobrze), ale PR musi powiedzieć, co dodać do SVN i w jakiej kolejności.
  5. Znany błąd VelNext == -1 — do poprawy przed merge (wyświetlać „—” albo nic).
  6. Tłumaczenia — nowe STR_C(...) wymagają wpisów w lang/*.po w SVN; @spot57 zwracał uwagę na jakość polskich tekstów.
  7. 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.
  8. Autor sam pytał o przełączenie na draft — sugeruję to zrobić, dopóki pkt 1–4 nie są rozwiązane.