mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-11-08 14:59:43 +01:00
2.6 KiB
2.6 KiB
Review PR #259 — fix(cab): a diesel with only the starter button stops its engine with the main switch off command
Autor: @jerrrrycho · base: master · 4 pliki, +136/−1 · Fixes eu07/maszyna#427
https://github.com/MaSzyna-EU07/maszyna/pull/259
Werdykt: Approve z drobnymi uwagami
Podsumowanie
SM03/SM04/2Ls150 (i DL2, ST44, TEM2) mają w kabinie tylko main_on_bt. OnCommand_linebreakeropen() dla takich pojazdów tylko animowało przycisk i wychodziło — silnika nie dało się zgasić. Teraz dla DieselEngine/DieselElectric komenda otwiera obwód (MainSwitch(false)), a przycisk rozruchu nie jest animowany.
Co jest dobrze
- Bardzo dobra analiza przyczyny (automatyczna pompa paliwa + przetwornica podtrzymująca 110 V).
- Tabela „przed/po” z gry, lista dotkniętych pojazdów — zgodnie z
CLAUDE.md(zmiana zachowania z istniejącymi danymi jest opisana). - Świadome nieruszanie kwestii „pozycja 0 = stop” (to zmiana danych, wymaga decyzji).
Uwagi
- Testy nie pokrywają właściwej zmiany. Testy sprawdzają
MainSwitch(false)w fizyce, co działało już przed PR. Zmieniona jest gałąź wTTrain::OnCommand_linebreakeropen(), której testy nie dotykają (TTrain nie jest linkowany w unit testach?). TestREQUIRE(shunter->MainCircuitOpensWithStarterOnly())sprawdza tylko typ silnika. Proponuję albo opisać to uczciwie w komentarzu testu, albo wydzielić decyzję „czy komenda otwiera obwód” do funkcji, którą da się przetestować bezTTrain(np. wolna funkcja przyjmująca: jestmain_off_bt/main_bt/main_on_bt+ typ silnika). - Nazwa
MainCircuitOpensWithStarterOnly()myli. Funkcja nie sprawdza nic o kabinie/starterze — tylko typ silnika. CzytającTrain.cppmożna pomyśleć, że sprawdza konfigurację przycisków. Propozycja:MainSwitchOffStopsEngine()alboIsDieselEngine(); warunek o samymmain_on_btzostaje wTrain.cpp. - ST44 / TEM2 — dotąd gaszone pompą paliwa, teraz także
m. Warto upewnić się u twórców tych pojazdów (lub w dokumentacji), że to pożądane — w realu TEM2 ma przycisk „stop silnika”, więc raczej tak, ale niech to będzie świadome. - Brak wizualnej reakcji po
mna tych pojazdach — uzasadnione (trzymany przycisk uruchomiłby silnik), ale gracz może sądzić, że klawisz nie działa. Może dźwięk przełącznika (dsbSwitch) mimo braku animacji? TerazfMainRelayTimer = 0daje dźwięk przekaźnika — proszę potwierdzić, że coś słychać. - Test JSON
diesel_shunter.json— dobry, ale_commentzawiera opis SM03; warto dodać nazwę pliku.fiz, z którego pochodzą parametry, żeby dało się je zaktualizować.