Od czasu do czasu na forum poruszana bywa sprawa obsługi sygnalizatorów powtarzających na sceneriach.
Chciałbym tu przedstawić swoje rozwiązanie, które stosuję z powodzeniem od 10 lat.
A. Założenia i działanie:
1. Automatyczna obsługa kolejnych powtarzaczy odbywa się kaskadowo – na zasadzie domina – przez powiązane nazwy. Nie trzeba też przesyłać jawnie żadnych nazw w parametrach „inców” (jak to np. ma miejsce w przypadku tarcz ostrzegawczych). Opisywana metoda jest niezależna od obsługi tarcz ostrzegawczych.
2. Semafor wywołuje event ustawiający sygnał na pierwszym powtarzaczu, który następnie ustawia drugi powtarzacz, a ten z kolei trzeci.
3. Nazwy powtarzaczy muszą być utworzone przez odpowiednie rozszerzenie nazwy semafora. Tu przyjęto następującą konwencję z przyrostkami (przykład dla semafora o nazwie „
Zc_B”). Kolejne powtarzacze (maksymalnie 3) powinny mieć nazwy: „
Zc_B_pi”, „
Zc_B_pii”, „
Zc_B_piii”.
4. Odpowiednie eventy znajdują się w plikach .inc semaforów z przyrostkiem –ps (np. ss5zpcpby-ps.inc) oraz „incach” powtarzaczy z przyrostkiem –d (np. ps3pzbyy-d.inc). W .inc semaforów jest „(p1)_pi_
sygnałpowtarzający”. We wszystkich „incach” z przyrostkiem -d wywołanie sygnału na następnym powtarzaczu to „(p1)i_
sygnałpowtarzający”.
5. Ostatni powtarzacz w kolejności powinien mieć „zwyczajny” .inc (bo nic dalej nie przekazuje) – i tak jest np. przy tylko jednym powtarzaczu.
Jednorazowe, prawidłowe wstawienie na scenerii semaforów i powiązanych powtarzaczy z właściwymi nazwami i „incami” pozwala zapomnieć na zawsze o obsłudze powtarzaczy – odbywa się ona automatycznie.
B. Uwagi do nazw sygnalizatorów powtarzających.
Przyjęta konwencja z przyrostkami nie odpowiada oznaczeniom występującym na planach schematycznych posterunków (gdzie np. jest ISpB, IISpB, IIISpB do semafora B). Tam nazwy są lokalne dla posterunku. Symulator wymaga nazw unikalnych dla całej scenerii. Czyli dla naszego przykładu to mogłoby być np.
ISp-Zc_B albo prościej
ip_Zc_B itd. Oczywiście taki wariant z przedrostkami można przyjąć i to by działało tak samo jak z przyrostkami (wywołanie w ss*-sp.inc semaforów „ip_(p1)_
sygnałpowtarzający” i w incach –d: „i(p1)_
sygnałpowtarzający”).
Wersję z przyrostkami przyjęto głównie dlatego, że na listach sygnałów w edytorze, sortowanych alfabetycznie, nazwy powtarzaczy znajdują się w grupie obok nazwy semafora, co ułatwia ich szukanie i ewentualne dokonywanie zmian/poprawek i w ogóle panowanie nad nimi wśród tysięcy nazw dla całej większej scenerii. Poza tym automatyczna obsługa powtarzaczy powoduje, że formy ich nazw są nieistotne np. dla scenarzystów. Natomiast dla użytkowników symulatora powtarzacze mają widoczne na tabliczkach właściwe „rzeczywiste” oznaczenia ustawione w czasie tworzenia scenerii.
Poza wszystkim okazało się też , że od wersji exe 171023 dodawanie przedrostków do parametru przestało działać.
C. Pliki do testowania/użycia dla zainteresowanych
W załączeniu poniżej jest link do archiwum z dostosowanymi plikami .inc semaforów (ss*-ps.inc) i powtarzaczy (ps*-d.inc). Znajdują się tam pliki, które stosuję na swojej scenerii. Inne semafory łatwo dostosować przez analogię. Uwaga: w/w „inci” odwołują się do starszych modeli .t3d (takie nadal wykorzystowuję i są one ciągle dostępne w nowej paczce). Dołączony jest też podobny zestaw dla nowych modeli semaforów i powtarzaczy – dla odróżnienia do nazw „inców” dodano na końcu „n” (ss*-psn.inc i ps*-dn.inc, można je sobie przemianować). Pliki należy rozpakować do katalogu „scenery”.
W archiwum jest też mikroscenka do testowania obsługi powtarzaczy. Blisko siebie ustawione semafor, trzy sygnalizatory powtarzające i tarcza ostrzegawcza pozwalają obserwować zmianę sygnałów. Sygnały na semaforze można ustawiać ręcznie kombinacjami klawiszy shift1, shift2,....shift0. W pliku .scn można dla testów samemu wstawiać różne .inc semaforów i powtarzaczy. Oczywiście obsługa niektórych sygnałów oraz tarczy ostrzegawczej zależy od rodzaju semafora.
https://eu07.pl/userfiles/24693/_SP-obsluga_automat.7z