Symulator EU07 (i nie tylko) > Na warsztacie
Exe od wersji 470
firleju:
Tak. A nawet lepiej jak obojętnie jaki. Kod jest tak zamotany, że to bajka :D
firleju:
Teoretycznie znalazłem przyczynę przeskakiwania co chwilę VelNext w niektórych przypadkach. Prawdopodobnie winne było użycie funkcji Min0R, która nie jest przewidziana do użycia z wartością -1 jako największą. Zaminiłem na własną Global::Mni0RSpeed i wygląda, że działa.
Sawi:
Po ostatnich testach stwierdzam, że kod bywa bardzo kapryśny.
firleju:
Znalazłem drugi błąd od surgeona. Tym razem to będzie chwilka wyjaśnienia.
Błąd polegał na tym, że jeśli pociąg był w trybie Shunt (al bez łączenia) to nie widział sygnałów z tyłu jeśli coś stało przed nim (np dwie lokomotywy na torze postojowym).
Teraz dlaczego: aby wywołać funkcję skanowania do tyłu trzeba być w trybie shunt lub connect oraz prędkość VelNext ma być równa 0 (ma być przeszkoda przed nim). Następnie jest sprawdzane czy jest w trybie connect (użycie shunt z odpowiednimi parametrami), jeśli jest to sprawdź czy jest coś przed nim. Jeśli nie ma to skanuj także do tyłu. Dla samego shunt skanowanie powinno być zawsze.
Błąd polegał na nieprawidłowym sprawdzeniu flagi i w związku z tym tryb shunt był traktowany w tym miejscu tak samo jak connect. To było łatwe do poprawienia. Nie jestem natomiast pewien konsekwencji innych zapisów. Gdyż jeśli dobrze rozumiem zapis w kodzie to jeśli manewrujemy lokiem i chcemy go zatrzymać między dwoma semaforami i następnie odwrócić i pojechać gdzieś coś podpiąć, a przed nami będzie tabor w odległości mniejszej niż 1000 m to lok się nie odwróci na sygnał.
Czy to się tak zachowuje czy nie?
Stele:
Manewry na connecie były problematyczne z innych względów, które chyba Ra zdążył poprawić. By nie kusić losu manewrujemy na shuncie i wprowadzamy w connecta dopiero na ostatniej prostej gdy już widzi przed sobą do czego ma się podłączyć. Ciężko więc będzie to przetestować.
Nawigacja
[#] Następna strona
Idź do wersji pełnej