17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-11-11 22:29:03 +01:00
Files
maszyna/pr-reviews/PR-231.md

21 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Review PR #231 — driveruilayer: Allow to toggle AI driver from the menu
Autor: @dos1 · base: `master` · 1 plik, +13/−0
https://github.com/MaSzyna-EU07/maszyna/pull/231
**Werdykt: Request changes (drobne)**
## Podsumowanie
Nowe menu „Vehicle” z przełącznikiem „Autopilot”, wysyłające `aidriverenable` / `aidriverdisable` przez `m_relay`. Świetny pomysł dla nowych graczy, mała i czysta zmiana.
## Uwagi
1. **Warunek widoczności jest bardziej restrykcyjny niż klawiatura.** Menu jest ukryte, gdy `Global.RealisticControlMode && !DebugModeFlag` — zawsze, także gdy gracz siedzi w kabinie. Tymczasem `command_relay::post()` (input/command.cpp ~l. 891) blokuje komendy pojazdu w trybie realistycznym tylko przy `FreeFlyModeFlag`. Czyli Shift+Q w kabinie działa, a pozycja menu znika. Proponuję warunek zgodny z relay'em:
```cpp
bool const blocked = FreeFlyModeFlag && Global.RealisticControlMode && !DebugModeFlag;
```
i najlepiej `ImGui::BeginDisabled(blocked)` zamiast ukrywania — gracz widzi, że opcja istnieje.
2. **Skrót w menu.** `MenuItem` przyjmuje skrót — warto podać `"Shift+Q"` / `"Q"` (domyślne bindy z `driverkeyboardinput.cpp`), tak jak robią to pozycje w „Mode windows”. Uwaga: bindy są konfigurowalne, więc albo pobrać aktualny z mapy klawiszy, albo pominąć.
3. **Tłumaczenia.** `STR_C("Vehicle")` i `STR_C("Autopilot")` to nowe klucze — trzeba je dodać do `lang/*.po` w SVN (w repo jest tylko `editor_pl.po`). Proszę napisać w opisie PR, co dodać do SVN; bez tego gracze PL zobaczą angielskie napisy. Sprawdzić też, czy w innych miejscach UI tryb AI nie nazywa się inaczej (np. „AI driver”) — lepiej trzymać jedną nazwę.
4. **Multiplayer (#173)**: przy sterowaniu cudzym pojazdem/wspólną sesją przełączanie AI z menu może wymagać dodatkowych warunków — nie blokuje tego PR, ale warto mieć na uwadze.
5. Drobne: `auto const *driver` — `Mechanik` to wskaźnik nie-const, a `AIControllFlag` tylko czytamy, więc OK; Sonar może jednak zgłosić S6004 (zmienna używana tylko w warunku → `if (auto const *driver = …; driver && …)`).