Walidator map (Map Validator)¶
Walidator map to zaawansowane narzędzie diagnostyczne wbudowane w program nEditor, stworzone z myślą o wykrywaniu ukrytych błędów w strukturze plików map symulatora OMSI 2.
Wiele krytycznych problemów z mapami w OMSI 2 objawia się lakonicznymi komunikatami (np. słynnym Fehler bei Bereichsprüfung, czyli błędem przekroczenia zakresu tablicy), pustym oknem logów (logfile.txt) lub niewczytywaniem wybranych kafli terenu. Walidator map analizuje całą strukturę plików tekstowych mapy i wskazuje konkretne linie, pliki oraz przyczyny potencjalnych awarii.

1. Uruchomienie i obsługa narzędzia¶
- W menu głównym nEditora kliknij przycisk Map Validator.
- W otwartym oknie kliknij przycisk Select OMSI 2 Map Folder.
- Wskaż katalog z mapą (np.
.../OMSI 2/maps/NazwaMapy). - Edytor automatycznie przeprowadzi pełną, wieloetapową weryfikację i przedstawi raport w konsoli z podziałem na komunikaty informacyjne, ostrzeżenia ([WARN]) oraz błędy krytyczne ([ERROR]).
2. Zakres przeprowadzanych kontroli¶
Walidator map sprawdza mapę pod kątem następujących reguł i anomalii:
A. Integralność struktury katalogu¶
- Sprawdza obecność głównego pliku konfiguracyjnego
global.cfg. W przypadku jego braku katalog jest odrzucany jako niepoprawny folder mapy. - Weryfikuje obecność folderu
TTData(odpowiedzialnego za rozkłady jazdy, ścieżki i przystanki autobusowe).
B. Weryfikacja kafli terenu [map] oraz duplikatów¶
- Zliczanie kafli: Analizuje sekcję
[map]w plikuglobal.cfgi sprawdza, czy wszystkie zadeklarowane pliki.mapfizycznie istnieją na dysku. - Wykrywanie duplikatów kafli: Wykrywa powielone wpisy tych samych współrzędnych
(X, Y)w sekcji[map]. - Ostrzeżenie przed błędem deduplikacji (Deduplication Risk):
> [!WARNING] Dlaczego duplikaty kafli są niebezpieczne?
> W niektórych mapach tworzonych latami w oryginalnym edytorze OMSI pojawiają się zduplikowane wpisy kafli w
global.cfg. Wiele zewnętrznych narzędzi próbuje je automatycznie "czyścić". Jeżeli jednak rozkłady jazdy w folderzeTTDataodwołują się do wyższych indeksów kafli, usunięcie duplikatów zmniejsza rozmiar tablicy kafli i natychmiast powoduje błąd Fehler bei Bereichsprüfung podczas uruchamiania gry! Walidator nEditora precyzyjnie ostrzega przed tym zjawiskiem.
C. Weryfikacja punktów startowych [entrypoints] i kwaternionów¶
- Zgodność deklaracji: Sprawdza poprawność zadeklarowanej liczby punktów startowych względem rzeczywistych wpisów.
- Walidacja kwaternionów obrotu 3D:
- Kwaterniony orientacji przestrzennej
(X, Y, Z, W)muszą tworzyć wektor jednostkowy o normie równej1.0. - Walidator wykrywa uszkodzone wartości, składowe przekraczające dozwolony zakres
[-1.0, 1.0]oraz błędy zaokrągleń powstałe w zewnętrznych edytorach, które prowadzą do natychmiastowego błędu przy próbie postawienia autobusu na danym punkcie startowym.
- Kwaterniony orientacji przestrzennej
- Poprawność indeksów kafli (
tileIndex): Sprawdza, czy punkt wejścia wskazuje na istniejący indeks kafla z sekcji[map]. - Weryfikacja numeru obiektu: Sprawdza, czy przypisany numer obiektu (
objectNumber) nie przekracza rzeczywistej liczby obiektów znajdujących się na danym kafelku.
D. Spójność bazy rozkładów jazdy i przystanków TTData¶
- Plik
Busstops.cfg:- Sprawdza, czy parametr
tileIndexkażdego przystanku mieści się w granicach dozwolonych indeksów kafli (0 .. LiczbaKafli - 1). Odwołanie do nieistniejącego indeksu kafla to bezpośrednia przyczyna awarii gry. - Wykrywa ryzyko kolizji z ewentualną deduplikacją kafli.
- Sprawdza, czy parametr
- Plik
StnLinks.cfg:- Weryfikuje wszystkie powiązania
[stnlink]oraz wpisy tras[stnlink_entry]. - Sprawdza poprawność indeksów kafli dla każdego segmentu trasy rozkładowej.
- Wykrywa anomalie w postaci nadmiernej liczby nieprzypisanych kafli (
tileIndex = -1), co świadczy o uszkodzonych lub częściowo wygenerowanych ścieżkach ruchu AI. - Weryfikuje, czy przystanki początkowe i końcowe (
from_id,to_id) istnieją w plikuBusstops.cfg.
- Weryfikuje wszystkie powiązania
- Pliki kursów
*.ttp(Time Table Trips):- Sprawdza obecność zdefiniowanych stacji
[station_typ1]oraz[station_typ2]w głównym wykazie przystankówBusstops.cfg.
- Sprawdza obecność zdefiniowanych stacji
E. Skala tekstur terenu [groundtex]¶
- Wykrywa wpisy tekstur podłoża w
global.cfg, których współczynnik skali przekracza wartość255(np.300). - Wartości powyżej 255 powodują przepełnienie pamięci w silniku OMSI i skutkują błędem Fehler bei Bereichsprüfung.
3. Podsumowanie raportu¶
Po zakończeniu skanowania na dole konsoli wyświetlane jest całościowe zestawienie: * Łączna liczba wykrytych błędów krytycznych (CRITICAL ERRORS), * Łączna liczba ostrzeżeń (Warnings), * Informacja o pomyślnym zaliczeniu wszystkich testów (All checks PASSED).