Wprowadzenie
Definiowanie właściwości nowych stacji.
W przeciwieństwie do pojazdów, nowe stacje nie mają odpowiednika TTD. W związku z tym można wybrać dowolne identyfikatory i w rzeczywistości zostaną one przydzielone automatycznie. W akcji 0 podajesz tylko identyfikatory w stosunku do zestawu, tj. Identyfikator pierwszego typu stacji to 00, drugi typ stacji to 01 itd..
W TTDPatch każda gra może mieć tylko 255 identyfikatorów stacji dla wszystkich aktywnych plików grf.
Jedyną właściwością, którą musisz ustawić dla każdego ID stacji, jest 08 (oprócz zdefiniowania dla niej action 3 ), wszystko inne można pozostawić domyślnie. Musi to być pierwsza właściwość ustawiona dla każdego ID stacji, ponieważ ID stacji jest faktycznie niezdefiniowany, dopóki nie zostanie mu przypisana klasa za pośrednictwem właściwości 08. Ponadto wszystkie ID`y stacji muszą uzyskać swoje klasy we właściwej kolejności, zaczynając od ID 00.
Właściwości
Numer | Rozmiar | Wersja | Opis |
---|---|---|---|
08 | D | 0.6 2.5 | ID klasy, patrz poniżej |
09 | V | 0.6 2.5 | Układ sprite, patrz poniżej |
0A | B | 0.6 2.5 | Skopiuj układ sprite |
0B | B | 0.6 2.5 | Flagi callback |
0C | B | 0.6 2.5 | Maska bitowa wyłączonych numerów platform |
0D | B | 0.6 2.5 | Maska bitowa wyłączonych długości platform |
0E | V | 0.6 2.5 | Zdefiniuj układ niestandardowy, patrz poniżej |
0F | B | 0.6 2.5 | Skopiuj niestandardowy układ z IDstacji podanego przez argument |
10 | W | 0.6 2.5 | Próg mały/dużo |
11 | B | 0.6 2.5 | Umieszczenie pylonu |
12 | D | 0.6 2.5 | Maska bitowa wyzwalaczy typu cargo dla losowych 'sprites' |
13 | B | 0.6 2.5 | Flagi ogólne |
14 | B | 0.6 2.5 | Umieszczenie 'przewodu' napowietrznego |
15 | B | 0.6 2.5 | Może pociąg wprowadzić kafel |
16 | W | 0.7 2.5 | Informacje o animacji |
17 | B | 0.7 2.5 | Prędkość animacji |
18 | W | 0.7 2.5 | Wyzwalacze animacji |
19 | V | Wyznaczanie tras drogowych (zarezerwowane do użytku w przyszłości) | |
1A | V | 1.2 | Zaawansowany układ sprite'ów z modyfikatorami rejestru |
Nieoficjalne uzupełnienia i zmiany. Nie polegaj na nich, aby kiedykolwiek działały w ten sposób w OpenTTD lub TTDPatch:
Numbe | Rozmiar | Wersja | Opis |
---|---|---|---|
1B | 8*B | whatever-PP | Minimalna wysokość mostu dla mostów nad stacjami |
Opis
Klasa stacji (08)
TTDPatch grupuje zestawy nowej grafiki stacji w różne klasy. Klasy można wybrać z górnej listy rozwijanej w oknie konstrukcyjnym, a poszczególne stacje w klasie z dolnej listy rozwijanej. Ponadto każda stacja może zmienić swój wygląd za pomocą variational i/lub random działania 2 wpisów.
Tylko dwie klasy są wstępnie zdefiniowane:
Nazwae | Class ID | Przeznaczenie do stacji |
---|---|---|
DFLT | 44 46 4C 54 | Domyślnie brak specjalnego typu stacji |
WAYP | 57 41 59 50 | Stacje non-cargo, waypointy, 'signal boxes' etc. |
Możesz po prostu użyć innych klas niż powyższe, o ile nie jest (więcej niż (obecnie)) 16 klas używanych we wszystkich aktywnych plikach .grf w dowolnym momencie.
Gdy zbudowana zostanie stacja WAYP, nie będzie ona przyjmować ładunku ani nie będzie ładunku z pobliskich gałęzi przemysłu lub miast. Pociągi nie zatrzymują się na stacjach WAYP, niezależnie od kolejności non-stop i/lub przełącznika non-stop.
Układ sprite (09)
Kontroluje to, które 'sprites' są wyświetlane, gdzie są wyświetlane i w jakiej kolejności. Właściwość jest zmiennej wielkości i zawiera dane dla wszystkich 8 możliwych typów kafli stacji. Jeśli ta właściwość jest ustawiona, liczba w odpowiedniej action 1 nie musi być równa 12 (hex), może to być dowolna liczba, a dowolna liczba 'sprites' może być wyświetlana w dowolnej kolejności.
W ten sposób dane są określone jako dane dla wszystkich ośmiu kafli:
<num> <data1> <data2> ... <datan>
Rozmiar | Nazwa | Znaczenie |
---|---|---|
B* | num | Liczba różnych obsługiwanych kafli (patrz poniżej) |
V | data1... | Dane o zmiennej wielkości dla każdego z plików <num> kafli, jak określono poniżej |
Liczba obsługiwanych kafli
- Zwykle jest to 8, ale możesz też podać mniej
- Korzystanie z flagi oddzwaniania bit 1, określenie więcej też ma sens
- Ta wartość musi być taka sama dla wszystkich stacji ustawionych przez tę akcję 0, nawet jeśli musi zostać powtórzona dla śmigła. 09 definicja każdego ID stacji
(Zauważ, że num jest rozszerzonym bajtem, patrz GRFActionsDetailed.)
Zawartość każdego (zwykle ośmiu) zestawów danych jest albo nowym układem ikonek:
Rozmiar | Nazwa | Znaczenie |
---|---|---|
D | groundsprite | sprite do rysowania po szynach; jest to domyślnie sprite TTD, ale z bitem 31 ustawionym można określić action 1 sprite (42D + X) |
V | spritedata | dane dla 'sprites' stacji, patrz poniżej; każdy ma rozmiar 10 bajtów, a może być ich kilka |
B | 80 | dosłowne 80 kończy listę sprite'ów dla tego kafla |
lub, alternatywnie, instrukcja użycia układu TTD przy użyciu czterech bajtów zerowych 00 00 00 00 zamiast bajtów dna naziemnego. Możesz użyć the online sprite ID converter , aby wyszukać ID`y 'sprite', których możesz użyć dla wszystkich klimatów.
Można narysować dwa rodzaje 'sprites' . Jeden typ to taki, który ustanawia nową ramkę ograniczającą 3D do użytku przez sortownik 'sprites' . Drugi typ dzieli obwiednię 3D poprzednich ikonek. Nie może być większy niż 'sprite' , który ustanowił obwiednię, ani żadna jej część nie może znajdować się poza tym polem. Dla uproszczenia powinien mieć dokładnie takie same wymiary, jak 'sprite' , z którym dzieli obwiednię. Ten ostatni typ jest obsługiwany na ekranie okna budowy stacji tylko od TTDPatch 2.6 r1684.
Spritedata ikonek z własnym obwiednią ma ten format:
Rozmiar | Nazwa | Znaczenie |
---|---|---|
B | xofs | x-offset od północnego narożnika kafla |
B | yofs | y-offset from northern tile corner |
B | zofs | z-offset from northern tile corner |
B | xextent | rozmiar sprite'a w kierunku x |
B | yextent | size of sprite in y direction |
B | zextent | size of sprite in z direction |
D | sprite | numer 'sprite' do narysowania |
Spritedata 'sprites' dzielących obwiednię ma ten format:
Rozmiar | Nazwa | Znaczenie |
---|---|---|
B | xofs | x-offset w stosunku do poprzedniego 'sprite' |
B | yofs | y-offset relative to previous sprite |
B | 80 | dosłowne 80 |
B | 00 | (ignorowane) |
B | 00 | (ignored) |
B | 00 | (ignored) |
D | sprite | numer 'sprite' do narysowania |
Od OpenTTD r18959 możesz narysować wiele 'sprite' ziemi na kafel, co jest przydatne, jeśli chcesz użyć zwykłej kafla podłogowej szyny / trawy / betonu, ale nadal musisz dodać do niej funkcje bez korzystania z nowej ramki ograniczającej. Aby to zrobić, użyj składni ikonek współużytkujących poprzednią ramkę ograniczającą, ale użyj jej przed definicją pierwszej ramki ograniczającej. xpixeloffset i ypixeloffset odnoszą się do zwykłego miejsca kafli naziemnych. Ta sama funkcja jest również częściowo obsługiwana w TTDPatch, ponieważ TTDPatch 2.6 r2312: TTDPatch ignoruje pola xofs i yofs i zawsze używa (0,0) dla offsetu. Jeśli tworzysz GRF, który musi być zgodny zarówno z OpenTTD, jak i TTDPatch, zawsze powinieneś utrzymywać xofs i yofs zero, aby uzyskać ten sam efekt w obu grach. Zauważ jednak, że obie implementacje nie biorą pod uwagę setting of prop13 bit 0 , dlatego te "liczne 'sprites' naziemne" (multiple ground sprites) muszą zawsze być częścią zestawu 'sprite' budynku i nie mogą być częścią inny zestaw ikonek dla ikonek naziemnych.
Liczba ikonek może mieć następujące wartości (pamiętaj, aby używać małego endiana, tj. Odwróconej kolejności bajtów):
Numer | Sprite |
---|---|
0000042D+X | użyj sprite X z odpowiedniego bloku action 1 (tj. 0000042D dla pierwszego, 0000042E dla drugiego, etc.) |
0000842D+X | to samo, ale narysuj to, używając firmowej translacji kolorów |
0322442D+X | to samo, ale rysuj w trybie przezroczystym (rzeczywiste kolory 'sprite' są całkowicie pomijane); obsługiwane w wyświetlaniu okna konstrukcji stacji od wersji TTDPatch 2.6 r1683 |
RRRR842D+X | rysuj sprite'a z translacją koloru zdefiniowanym w sprite RRRR; dostępny od TTDPatch 2.6 r1683 |
Przy ustawionym bicie 31 ten 'sprites' będzie odnosił się do 'sprite' TTD, a nie 'sprite' akcji 1. Dla pierwszego 'sprite' naziemnego obowiązuje odwrotne znaczenie.
W zależności od rodzaju szyny sprajty mogą uzyskać dodatkowe przesunięcia (offsets) :
Normal/electrified rail | Monorail | Maglev | |
---|---|---|---|
TTD sprites | 0 | 82 | 164 |
Action 1 sprite (pierwszy grunt sprite) | 0 | 1 | 2 |
Action 1 sprite (inne 'sprites' w układzie) | 0 | 0 | 0 |
Tak więc 'sprites' TTD i pierwszy 'sprite' naziemny są pod wpływem typu szyny, podczas gdy inne 'sprites' akcji 1 w układzie nie są. Przesunięcie "82" odnosi się do przesunięcia między domyślnymi 'sprites' torowymi TTD; jeśli używasz niedziałających naziemnych ikonek, które nie pochodzą z akcji 1, musisz dostarczyć fałszywe numery ikon, które zapobiegawczo odwrócą przesunięcia (to znaczy, potrzebujesz różnych układów ikon dla każdego typu linii, dla którego twoja stacja jest dostępna).
Ustawienie bitu 30 wymusza normalne wyświetlanie tego 'sprite' nawet w trybie "przezroczystych budynków" (transparent buildings) (obsługiwane tylko w TTDPatch 2.6 r1695 i późniejszych).
Poniżej znajduje się przykład połączonych 'sprites' , a także przezroczystych 'sprites' (np. Na dachu stacji).
Zauważ, że współrzędne tutaj są współrzędnymi 3D, przy czym x biegnie od prawego górnego rogu do lewego dolnego, zaś y biegnie od lewego górnego rogu do prawego dolnego rogu, przy czym wymiary kafli wynoszą 16 x 16 (i 8 dla jednego poziomu wysokości). Oznacza to, że wartości xiy powinny zawsze zawierać się w przedziale 0–15 (dziesiętnie).
Różni się to i jest niezależne od przesunięć x/y używanych w rzeczywistym pliku .NFO. Obwiednia 3D jest używana przez sortownik sprite'ów TTD do określenia kolejności rysowania 'sprites' , a także do wskazania, które 'sprites' mają rysować, ponieważ te, których ramka graniczna wykracza poza aktualnie aktualizowany prostokąt ekranu, nie zostaną narysowane. Upewnij się, że obwiednia 3D jest wystarczająco duża, aby pomieścić całego 'sprite' , ale nie tak duża, aby sortownik 'sprite' nie mógł określić, które 'sprites' powinny być z przodu.
Oznacza to, że kolejność określania 'sprites' jest nieistotna. 'Sprites' będą rysowane od tyłu do przodu, w kolejności, którą sortownik 'sprite' określa jako prawidłowy, z ich ramek ograniczających. Istnieją jednak dwa wyjątki:
- 'Sprites' dzielące to samo obwiednię zawsze będą rysowane w podanej kolejności.
- Okno wyświetlania konstrukcji stacji nie korzysta z sortownika 'sprites' . Kafle, które mogą być wyświetlane w tym oknie, muszą być określone we właściwej kolejności rysowania, od tyłu do przodu.
Skopiuj układ sprite (0A)
To nie jest właściwość jako taka, ale działanie. Jako argument przyjmuje bajt interpretowany jako ID stacji do skopiowania niestandardowego układu ikonki.
Flagi callback (0B)
W przypadku stacji można zdefiniować następujące callbacks poprzez ustawienie odpowiedniego bitu we właściwości 0B:
Bit | Wartość | Zmienna wartość 0C | 'Callback' |
---|---|---|---|
0 | 1 | 13 | Czy udostępnić stację w oknie konstrukcyjnym (niezerowy 'zwrot' 'callback') czy nie ('callback' zwraca zero) |
1 | 2 | 14 | Użyj 'callback', aby wybrać układ sprite |
2 | 4 | 141 | Wybierz następną klatkę animacji |
3 | 8 | 142 | Zdecyduj o szybkości animacji |
4 | 10 | 149 | Niestandardowa kontrola nachylenia |
Bit to bit, który musisz ustawić, robisz to poprzez dodanie wszystkich wartości dla wszystkich bitów. Zmienna wartość 0C to ta, dla której zostanie ustawiona zmienna 0C, do sprawdzania jej w VarAction2 dla wywołań zwrotnych.
Wybór liczby peronów i długości (0C, 0D)
Domyślnie dla wszystkich stacji dostępne są wszystkie długości platform i dowolna liczba platform. Korzystając z tych właściwości, możesz wybrać, które mają być niedostępne, ustawiając odpowiedni bit we właściwości.
Wartości są bajtami używanymi jako maska bitowa. Bity od 0 do 6 kontrolują dostępność liczby lub długości od 1 do 7, a bit 7 kontroluje dostępność przycisku "+7" . Każdy ustawiony bit wyłącza odpowiednią długość lub liczbę platform.
W celu zapewnienia zgodności z "największymi wyłączeniami" (largestations off) musi być dostępna co najmniej jedna długość od 1 do 5 (bity od 0 do 4) i jedna liczba platform od 1 do 4 (bity od 0 do 3), tzn. Co najmniej jeden z tych bitów musi być nieoprawny.
definiowanie układu niestandardowego (0E)
Pozwala to wybrać, który typ kafla jest budowany, na którym kaflu nowo budowany
stacja. Istnieją cztery różne typy, które TTD zwykle określa jako
Typ kafla | Wygląd |
---|---|
00 | zwykła platforma |
02 | platforma z zabudową |
04 | platforma z 'roof', lewa strona |
06 | platforma z 'roof', prawa strona |
Te liczby są używane dla stacji w kierunku NE-SW lub te liczby plus jeden dla stacji w kierunku NW-SE. Aby zdefiniować niestandardowy układ, użyj tego formatu:
Rozmiar | Nazwa | Znaczenie |
---|---|---|
B | length | długość platform dla tego układu |
B | number | liczba platform dla tego układu |
V | tiles | długość*liczba bajtów typów kafli, jedna platforma po drugiej, tylko 00, 02, 04 lub 06 są dozwolone jako wartości |
Powtarzaj to tak często, jak to konieczne, aby zdefiniować układy dla wszystkich obsługiwanych kombinacji długości i liczby. Zakończ definicje 00 00 (długość zerowa i liczba zerowa). Wszelkie niezdefiniowane kombinacje zostaną zbudowane przy użyciu domyślnego układu TTD. Zauważ, że łatwiejsze może być rysowanie różnych zestawów ikonek za pomocą VarAction2 w oparciu o station variable 40 , zamiast redefiniowania układu. Ponadto callback 24 zostanie wykorzystany do dalszego dostosowania układu zgodnie z definicją tej właściwości (lub TTD, jeśli nie jest dostępny układ prop 0E). Może to być również łatwiejsze niż zdefiniowanie układu prop 0E dla każdej kombinacji długości i liczby platform.
kopiowanie układu niestandardowego (0F)
Podobnie jak właściwość 0A, kopiuje 'niestandardowy' układ z ID-stacji podanego przez argument.
Próg mały/dużo (10)
Ilość ładunku do zamiany z "małego" na "dużo" ładunku. TTDPatch dzieli pełny zakres ilości ładunku (od 0 do 4095) na dwa oddzielne podzakresy, "mało" i "dużo" ładunku. Umożliwia to lepszą kontrolę grafiki opartej na ilości ładunku (w razie potrzeby). Właściwość 10 określa, przy jakiej ilości ładunku łata ma się przełączać z jednego do drugiego podzakresu. Więcej informacji można znaleźć w Action 2 for stations .
Umieszczenie pylonu (11) i ułożenie przewodu (14)
'Prop.' 11 określa, które typy kafli powinny mieć pylony, gdy są używane z naelektryzowanymi ścieżkami. Domyślnie kafle 0-3 (domyślne stacje bez dachu) mają pylony, a kafle 4-7 (domyślne stacje z dachem) nie. Jest to nieco maska typów kafli, a nieco ustawiony oznacza, że należy narysować pylon. Typy kafli tutaj nie biorą pod uwagę callback 14 , ale raczej typ, w jakim został zbudowany, tj. Z prop. 0E.
Prop. 14 działa w podobny sposób, z tym wyjątkiem, że ustawia typy kafli, na których powinny być wyświetlane przewody nie . Przy domyślnej wartości "00" druty są wyświetlane wszędzie, a dla każdego zestawu bitów przewód jest pomijany na tym typie kafla.
Tej właściwości należy używać tylko wtedy, gdy druty powodują problemy z sortownikiem 'sprites' , ponieważ nawet jeśli drut jest zasłonięty przez halę stacji lub podobną, powinien nadal pokazywać się w trybie przezroczystym, aby każdy kafel mógł być łatwo zweryfikowana jako zelektryfikowana.
Typy ładunków dla losowych wyzwalaczy (12)
Określa, które typy ładunku powinny uruchamiać ponowną randomizację. Rodzaje ładunków podane są jako maska bitowa bitów z kolumny 3 (typ B) w CargoTypes. Jeśli nic nie jest ustawione (ustawienie domyślne), nie wystąpią żadne losowe wyzwalacze, aby zaoszczędzić czas procesora.
W wersji 7 i nowszych GRF zmienia się interpretacja bitów. Zamiast numerów szczelin ładunkowych zależnych od klimatu (typ B) musisz ustawić bity niezależnego od klimatu identyfikatora ładunku (typ A).
Flagi ogólne (13)
Bit | Wartość | Wersja | Znaczenie |
---|---|---|---|
0 | 1 | 0.7 2.5 | użyj innego zestawu dla 'sprite' naziemnych ('wariant' 10 to 1 dla 'sprites' naziemnych, w przeciwnym razie 0) |
1 | 2 | 0.6 2.5 | przy obliczaniu ilości ładunku do wyświetlenia należy podzielić ilość przez rozmiar stacji (aby zasymulować ładunek rozłożony na obszarze stacji) |
2 | 4 | 0.7 2.5 | callback 141 potrzebuje losowych bitów w 'zmiennej' 10 |
3 | 8 | 1.0 2.6 | Użyj niestandardowych fundamentów na nachylonych kaflach (najniższy bajt var. 10 to 2 dla podstawy sprite'y |
4 | 10 | 1.0 2.6 | Gdy bit 3 jest ustawiony, użyj rozszerzonego bloku fundamentowego zamiast prostego |
Bit 3 działa nieco podobnie do bitu 0: wybór twojego 'sprite' zostanie ponownie wywołany, z 2 w najniższym bajcie variable 10 . Jeśli łańcuch zakończy się wynikiem wywołania zwrotnego, program przyjmie, że wybór fundamentu nie powiódł się, i użyje domyślnych 'sprites' Foundaton. Niskie słowo variable 18 będzie zawierać typ kafla bieżącego kafla; jeśli masz włączone callback 14 , będzie to jego wartość zwracana - w przeciwnym razie używane są domyślne typy TTD (platforma z budynkiem, platforma z lewym dachem itp.). W obu przypadkach jeden jest dodawany do orientacji NW-SE, na wypadek, gdyby twoja stacja potrzebowała różnych fundamentów w zależności od jej orientacji. Bity 16 i 17 są ustawiane, jeśli fundamenty NW i NE mają zostać połączone z odpowiednim sąsiadującym kaflem, więc nie należy rysować odpowiedniej krawędzi w ikonce fundamentu. Inne bity zmiennej 10 i zmiennej 18 są zarezerwowane do wykorzystania w przyszłości.
Twój kod wyboru 'sprite' powinien wybrać blok 'sprite' fundacji. Zawartość tego bloku zależy od tego, czy bit 4 jest ustawiony, czy nie.
- Bit 4 czysty (proste podstawy):
Program połączy potrzebny fundament z tych 8 'sprites' w zależności od aktualnego nachylenia. Nie musisz przejmować się danymi scalania w bitach 16..17 variable 18 ; zostanie to załatwione automatycznie poprzez dodanie siódmego i ósmego 'sprite' tylko w razie potrzeby.
- Zestaw bitów 4 (rozszerzone podstawy):
Musisz mieć jednego 'sprite' na każde nachylenie, które jest możliwe poniżej stacji kolejowej. Właściwy zostanie automatycznie wybrany w zależności od aktualnego nachylenia. Jednak nie obsługuje samego scalania, więc potrzebujesz czterech bloków fundamentowych: jeden bez usuniętych krawędzi, jeden z usuniętą krawędzią NW, jeden z usuniętą krawędzią NE i jeden z usuniętymi obydwoma krawędziami północnymi. Twój kod wyboru 'sprite' jest odpowiedzialny za wybranie poprawności tych bloków zgodnie z informacjami o scaleniu w variable 18.
W obu przypadkach można wprowadzić dodatkową wartość do rejestru 100h, która posłuży jako przesunięcie w wybranym bloku. Jeśli nie zmodyfikujesz rejestru 100h podczas łańcucha, domyślnie będzie to 0. Ważne jest, aby wymiary tych 'sprites' pozostały takie same - dlatego bit 6 w prawdziwych 'sprites' musi być ustawiony, aby GRFCodec nie przyciął pustych niebieskich obszarów . Odsunięcie tych fundamentów musi wynosić -31 w kierunku X i -9 w kierunku Y.
Może pociąg wprowadzić kafel (15)
Jak rekwizyty. 11 i 14, ta wartość zawiera osiem bitów odnoszących się do ośmiu możliwych rodzajów kafli. Jeśli bit jest ustawiony, pociągi nie mogą przejeżdżać ani wchodzić na żadne kafle tego typu.
Informacje o animacji (16)
Niższy bajt określa liczbę klatek animacji pomniejszoną o jedną, więc 00 oznacza 1 klatkę, 01 oznacza 2 klatki itp. Maksymalna liczba klatek wynosi 256, chociaż możesz mieć pewne problemy, jeśli twoja animacja przekracza liczbę klatek FD (253). Górny bajt musi wynosić 0 dla animacji nie zapętlonych i 01 dla animacji zapętlonych. Każda inna wartość jest zarezerwowana do wykorzystania w przyszłości. Ponadto, jeśli całe słowo zawiera FFFF, animacja jest wyłączona dla tej stacji (jest to wartość domyślna). Ponieważ nie możesz mieć właściwości dla poszczególnych kafli stacji, ta właściwość dotyczy każdego kafla stacji. Jeśli nie chcesz animować niektórych kafli, powinieneś sprawdzić bieżącą pozycję podczas callback 140 i zwrócić FD, jeśli bieżący kafel nie trzeba być animowanym. Jeśli potrzebujesz także animacji o różnej długości na kafel, musisz użyć callback 141 .
Prędkość animacji (17)
Znaczenie jest takie samo jak dla house property 1B , ale dolny limit to 0 zamiast 2, więc najszybsza możliwa animacja zmienia klatki przy każdym tyknięciu gry (27ms). Wartość domyślna to 2.
Wyzwalacze animacji (18)
Jest to nieco maska zdarzeń, które powinny uruchomić callback 140 , umożliwiając zmianę stanu animacji
Bit | Wartość | Wersja | Znaczenie | Zdarza się | Var 18 |
---|---|---|---|---|---|
0 | 1 | 0.7 2.5 | Część stacji jest zbudowana | nowo zbudowane kafle | |
1 | 2 | 0.7 2.5 | Nowy ładunek przybywa na stację | cała stacja | [1] |
2 | 4 | 0.7 2.5 | Rodzaj ładunku zostaje usunięty ze stacji | cała stacja | [1] |
3 | 8 | 0.7 2.5 | Pociąg wjeżdża na stację (rozpoczyna załadunek/rozładunek) | platforma, na której znajduje się pociąg | |
4 | 10 | 0.7 2.5 | Stacja odjeżdża z pociągu (zakończony załadunek/rozładunek) | platforma, na której znajduje się pociąg | |
5 | 20 | 1.2 2.5 | Pociąg ładuje/rozładowuje ładunek | Pociąg ładuje / rozładowuje ładunek | |
6 | 40 | 0.7 2.5 | Co 250 tyknięć | cała stacja |
Pozostałe bity są zarezerwowane dla przyszłych wyzwalaczy, na razie muszą wynosić zero.
Kolumna "dzieje się" (happens on) informuje, które kafle będą callback 140 .
- ↑ 1.0 1.1 Bity 8..15 z var 18 zawierają typ wyzwalającego ładunku. Jeśli twój GRF ma tabelę translacji ładunku, typ ładunku będzie indeksem w tej tabeli lub FFh, jeśli ładunku nie ma w tabeli. Jeśli nie masz tabeli translacji ładunku, typ ładunku będzie po prostu numerem typu ładunku zależnym od klimatu.
Wyznaczanie tras drogowych (19 - zarezerwowane do użytku w przyszłości)
Pozwoli mieć informacje o trasach dla pojazdów drogowych na dworcach
ogólnie rzecz biorąc, musisz odmówić pojazdowi szynowemu podróżującemu śmigłem 15
Ta właściwość nie jest jeszcze zaimplementowana .
Zaawansowany układ sprite'ów z modyfikatorami rejestru (1A)
1A <num-layouts> <0x40 + num-sprites> <groundsprite> <flags> [<register/value>]... [ <buildingsprite> <flags> ( <xoffset> <yoffset> <zoffset> <xextent> <yextent> <zextent>
| <xpixeloffset> <ypixeloffset> 80)
[<register/value>]... ]...
Aby uzyskać więcej informacji, zobacz tutaj na teraz.
Minimalna wysokość mostu (1B)
Ta właściwość pozwala budować mosty nad stacjami.
Właściwość wysokość mostu określa minimalne prześwity wymagane dla mostu dla każdego z czterech tile types tej stacji (lub zero, aby nie pozwolić na żaden most). Wartości podano w "height level" jednostek (1 level == 8px).
Wysokość (1) | Wygląd |
---|---|
x1 y1 | zwykła platforma |
x2 y2 | platforma z zabudową |
x3 y3 | platforma z 'roof', lewa strona |
x4 y4 | platforma z 'roof', prawa strona |
(1) gdzie wartości są jednobajtowymi parami (kierunek x, kierunek y) wyrażone w notacji szesnastkowej.
'Składnia':
1B <1st pair> <2nd pair> <3rd pair> <4th pair>
1B x1 y1 x2 y2 x3 y3 x4 y4
1B 01 01 02 02 03 03 03 03 // 8px 16px 24px 24px
Ta właściwość jest obecnie dostępna tylko dla pakietu poprawek JGR (wer. 0.26.0 i nowszych) oraz rozwojowego 'widelca' "Nowe funkcje mapy" (New Map Features) (NMF) OpenTTD.
Przykłady
Używanie układów sprite TTD dla niektórych kafli
Aby użyć układu TTD, używasz 00 00 00 00
dla naziemnej liczby 'sprites' i odrzuć wszystko inne.
Więc zamiast na przykład
F4 03 00 00 00 00 00 10 05 02 2E 84 00 00 00 0B 00 10 05 02 30 84 00 00 80
właśnie umieściłeś
00 00 00 00
Korzystanie z przezroczystych sprites
Możesz użyć przezroczystych 'sprites' , aby na przykład dach był półprzezroczysty, jak w stacjach TTD. Dach stacji TTD jest tak wykonany:
00 00 10 10 10 0A 37 84 00 00 00 00 80 00 00 00 3B 44 22 03
Pierwszym 'sprite' jest nieprzezroczysta rama dachu, narysowana w kolorach firmowych (ma ustawiony bit 15). Druga część to specjalny "połączony" (linked) 'sprites' bez własnego obwiedni, podobnie jak poprzedni 'sprite' . Dokonuje się tego poprzez ustawienie przesunięcia z na 80.
Aby ten drugi 'sprite' był przezroczysty, bit 14 jest ustawiany w numerze 'sprite' , a górne słowo jest ustawione na 322 (*), więc 0322443B oznacza pobranie 'sprite' 43B i narysowanie go w trybie przezroczystym. Kolory tego 'sprite' są całkowicie ignorowane, każdy piksel w kolorze 0 jest w pełni przezroczysty, a wszystkie pozostałe piksele są półprzezroczyste (zasadniczo powodując, że to, co jest rysowane, staje się ciemniejsze).
(*) To jest recolour sprite dla efektu szkła.