mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-11-08 19:52:47 +01:00
2.8 KiB
2.8 KiB
Review PR #261 — feat(cab): 401Da oil pump lamp and slotted speedometer lever
Autor: @jerrrrycho · base: master · 7 plików, +218/−1 · Closes eu07/maszyna#546
https://github.com/MaSzyna-EU07/maszyna/pull/261
Werdykt: Request changes — wydzielić poprawkę AVX2, reszta OK
Podsumowanie
- Nowa lampka
i-oilpump:(pompa smarowania wstępnego; gaśnie po uruchomieniu silnika). - Nowy klucz
.mmdanimslottedlever:— dźwignia z jarzmem napędzana czopem wiązara (napęd prędkościomierza). - Dodatkowe testy opóźnienia startu sprężarki (
CompressorStartDelay, już na master z #217). - Poprawka builda:
GLM_FORCE_AVX2tylko gdy kompilator faktycznie celuje w AVX2.
Uwagi
- Poprawka AVX2 powinna być osobnym PR-em. To ważna poprawka (crash na CPU bez AVX2 przy
ENABLE_AVX2=OFF), niezwiązana z 401Da. Osobny PR szybciej przejdzie review, łatwiej ją zcherry-pickować na gałąź wydania 26.11 i nafeat/gl46-migration, i będzie widoczna w changelogu. Sama zmiana (#elif defined(__AVX2__)) jest poprawna dla MSVC (/arch:AVX2) i GCC (-mavx2). animslottedlever:— kompatybilność OK (nowy opcjonalny klucz; bez niego nic się nie zmienia). Proszę o:- wpis do dokumentacji formatu
.mmd(wiki), skoro żaden pojazd jeszcze go nie używa, - informację, czy brak submodelu ma logować błąd
Bad model— dla nowej funkcji to OK (prawdziwy błąd danych).
- wpis do dokumentacji formatu
- Matematyka bez testu.
slottedlever_angle()to czysta funkcja geometrii, a nie jest testowana tylko dlatego, że siedzi wTDynamicObject. Proponuję przenieść ją do małego nagłówka (np.utilities/albo wolna funkcja w anonimowym namespace + deklaracja w nagłówku testowalnym) i dopisać testy: oś wewnątrz okręgu → pełny obrót, okrąg przez oś → wahanie ±90°. float3wSetRotate(float3(1,0,0), angle)— #224 właśnie migrujefloat3dnaglm. Nowy kod lepiej od razu naglm::vec3, żeby nie powiększać konfliktu.update_slottedlevers()jest wołane wABuLittleUpdate()poza sprawdzeniem odległości (ObjSqrDist < 50*50) — dla pustego wektora to nic nie kosztuje, ale dla pojazdów z dźwigniami liczy się zawsze. Rozważyć wołanie razem z animacjami kół (te same warunki LOD).- Indeks
wheelid: waruneklever.axle < iAnimType[ANIM_WHEELS] && lever.axle < pAnimations.size()zakłada, że animacje kół są na początkupAnimations— proszę o komentarz albo assert. - Lampka
i-oilpump:pokazujeOilPump.is_active. Dla pojazdów, gdzie pompa oleju pracuje cały czas (nie tylko smarowanie wstępne), lampka będzie świecić stale — to raczej poprawne, ale warto opisać semantykę w dokumentacji.mmd. - Opis: „SM42 stood in for the diesel” — test z prawdziwym modelem 401Da jest w „Known issues”; OK, ale niech ktoś od modelu 401Da potwierdzi przed wydaniem.