Od pewnego czasu dalsze prace nad EXE nie posuwają się do przodu, postanowiłem więc udostępnić wersję 231. W archiwum nie ma pliku informacyjnego, ponieważ przede wszystkim dopracowywane były funkcjonalności już obecne w wersji 212. Do prawidłowego działania na PC2010 wymagany jest zestaw plików E3D umieszczony w poprzedniej wiadomości. AI ma przesyłane sygnały jak w 212, w związku z tym wymagane są pewne zmiany w sceneriach (między innymi skanuje tory na mniejszą odległość i nie widzi tarcz ostrzegawczych, a jedynie semafory).
http://eu07.pl/userfiles/4245/EU07_231.7z
Zakres zmian:
1. Poprawione globalne eventlauncheryMiały działać w 212, ale się okazało, że nie działają.
2. Otwieranie drzwi EZT na przystankachTaki bajer. EN57 po zatrzymaniu na W4 otwiera drzwi ze wskazanej strony. Wymaga to napisania rozkładu oraz odpowiedniego ponazywania W4 w scenerii, a także przypisania odczytu W4 do toru. W załączeniu TD z wstawionymi W4 dla rozkładu z Quarka.
3. Poprawione stawanie na pierwszej i ostatniej stacjiPonieważ w rozkładzie czas dla pierwszej stacji jest zapisywany w identyczny sposób jak dla przelotu, musi być ona specjalnie traktowana, aby AI się zatrzymało. Wyjątkiem jest sytuacja, gdy nazwa początkowej stacji w relacji jest inna niż pierwsza pozycja w rozkładzie (czyli rozkład jest niepełny, dla pociągów pojawiających się na krańcu scenerii). Po dojechaniu do ostatniej stacji AI wykonuje kolejną komendę z listy. Na chwilę obecną jest to komenda
Shunt, czyli przełączenie w tryb manewrowy (w tym trybie AI podjedzie pod najbliższy semafor).
4. Poprawione trapezowate drogiZostały wyłączone ograniczenia na dopuszczalne zmiany trapezowania, wprowadzone wraz z dodaniem tej funkcjonalności. Wcześniej różnice większe niż pięciokrotne były ignorowane.
5. Poprawione połączenie komórki pamięci z toremDotychczas event
UpdateValues wysyłał komendę do wszystkich pojazdów znajdujących się na wskazanym torze. Zostało to zmienione na wysyłanie komendy do AI, dzięki czemu można uruchomić pociąg znajdujący się na konkretnym torze bez konieczności używania
Event0. Na przykład można uruchomić nieaktywny pociąg o określonej godzinie bez użycia semafora.
6. Potwierdzanie eventów SwitchPrzy współpracy z serwerem ruchu w Rainsted dotychczas potwierdzeniem przełożenia zwrotnicy był event
Multiple o nazwie zakończonej plusem albo minusem. Sprawiało to problemy przy wykrywaniu stanu rozjazdów krzyżowych. Obecnie wysyłana jest informacja bezpośrednio przy zmianie stanu zwrotnicy.
Kierunek dalszych zmian nie został jeszcze jednoznacznie określony. Między innymi skłaniam się do przepisania AI do C++. Ale równie dobrze może się okazać, że wcześniej wyjdzie mi wczytywanie scenerii z pliku RSF albo dynamiczne zarządzanie teksturami i modelami (sceneria uruchomi się szybciej, bo nie będzie wymagane wczytanie wszystkiego na początku).
2011-10-07:W załączeniu jeszcze jedna sceneria demonstracyjna, rozszerzona względem poprzedniej o "wybudzanie" EN57 za pomocą globalnego eventlaunchera, ustawionego na godzinę 10:10. Sceneria uruchamia się z godziną 10:09. Pierwszy odjazd spod W4 jest wg rozkładu o godzinie 10:16 — AI powinno zdążyć podjechać. Drugi odjazd jest o 10:23, w zależności od FPS AI może zrobić kółko przed czasem albo się nieco spóźnić.
Co do dalszych prac, to AI zostało już przepisane na C++.
W związku z pytaniami wyjaśniam, iż załączone scenerie należy wypakować do folderu
scenery. Służą one wyłącznie do demonstracji działania rozkładu oraz uruchamiania pociągów AI i są raczej przeznaczone jako wzór dla ewentualnych autorów nowych scenerii. Normalnie nie ma potrzeby ich pobierania ani używania.