Przegląd
Zmienna | Rozmiar | Wersje | Opis | ||
---|---|---|---|---|---|
VA2 |
A6/7/9/D (odczyt) |
ActD (zapisanie) |
|||
00 | 80 | W | 0.6 2.0 | aktualna data (liczona jako dni od 1920)[1] | |
01 | 81 | B | 0.6 2.0 | Bieżący rok (liczyć od 1920 r., Maks. 2175 nawet w grze 'wiecznej')[1] | |
02 | 82 | B/D | 0.6 2.0 |
bieżący miesiąc (0–11) w bitach 0–7; wyższe bajty zawierają niepotrzebne 'junk'.[1] 0.7 Ponieważ OpenTTD r13594 'dzień miesiąca' (0–30) jest przechowywany w bitach 8–12, bit 15 jest ustawiany w leapyear, a 'dzień roku' (0–364 lub 365) jest przechowywany w bitach 16–24. Wszystkie pozostałe bity są zastrzeżone i powinny być zamaskowane. |
|
03 | 83 | B | 0.6 2.0 | Current climate: 00 = temp, 01 = arctic, 02 = trop, 03 = toyland | |
84 | D | 0.6 2.0 | GRF loading stage, zerknij poniżej | ||
85 | B | 0.6 2.0 | TTDPatch flags: tylko dla testów bitowych | ||
06 | 86 | B | 0.6 2.0 | Strona ruchu drogowego: bit 4 clear=left, set=right; inne bity są zastrzeżone i muszą być zamaskowane. | |
(87) | (87) | B | Nie jest już używany od TTDPatch 2.0. (była szerokość znaku "€") | ||
88 | 4*B | 0.6 2.0 | Sprawdza określony GRFID (patrz condition-types)[2] | ||
09 | 89 | W | 0.6 2.0 | ułamek daty, zwiększany o 0x375 dla każdego tiku silnika | |
0A | 8A | W | 0.6 2.0 | licznik animacji, zwiększany co tyknięcie | |
0B | 8B | D | 2.0 | TTDPatch version, zerknij poniżej [3][4] | |
0C | W | 0.6 2.5 | current callback ID (feature-specific), ustaw na 00, gdy nie ma callback | ||
0D | 8D | B | 0.6 2.5 | TTD version, 0=DOS, 1=Windows | |
0E | 8E | 8E | B | 0.6 2.5 | Przesunięcie Y (Y-Offset) dla 'sprites' pociągu |
0F | 8F | 8F | 3*B | 0.6 2.5 | Czynniki kosztowe typu torów kolejowych |
10 | D | 0.6 2.5 | Extra callback info 1, zerknij poniżej. | ||
11 | B | 2.5 | aktualny typ narzędzia szynowego (dla callbacks na stacjach ) | ||
12 | 92 | B | 0.6 2.5 | Tryb gry, 0 na ekranie tytułowym, 1 w grze i 2 w edytorze | |
13 | 93 | 93 | W | 2.5 | Przesunięcie odświeżania płytki przesunięte w lewo [5] |
14 | 94 | 94 | W | 2.5 | Odświeżanie płytki przesunięte w prawo [5] |
15 | 95 | 95 | W | 2.5 | Odświeżanie płytki przesunięte w górę [5] |
16 | 96 | 96 | W | 2.5 | Odświeżanie płytki przesunięte w dół [5] |
97 | 97 | B | 2.5 | Naprawiono wysokość linii śniegu [6][7] | |
18 | D | 0.6 2.5 | Extra callback info 2, zerknij poniżej. | ||
99 | 99 | D | 2.5 | Global ID offset | |
1A | 9A | D | 0.6 2.5 | Zawsze ustawia wszystkie bity; możesz użyć tego do bezwarunkowych skoków | |
1B | B | 2.5 | opcje wyświetlania; bit 0=town names, 1=station names, 2=signs, 3=animation, 4=transparency, 5=full detail | ||
1C | D | 0.6 2.5 | wynik z najnowszej VarAction2 | ||
1D | 9D | D | 0.6 2.5 | TTD Platform, 0=TTDPatch, 1=OpenTTD [4] | |
1E | 9E | 9E | D | 0.6 2.5 | Różne. Funkcje GRF |
9F | D | 2.5 | tylko do zapisu: ustawienia zależne od ustawień regionalnych | ||
20 | B | 0.6 2.5 | Aktualna wysokość linii śniegu, FFh, jeśli w ogóle nie ma śniegu [7] | ||
21 | A1 | D | 0.6 | OpenTTD version, zerknij poniżej. [4] | |
22 | A2 | D | 0.7 2.6 | Level trudności: 00= easy, 01=medium, 02=hard, 03=custom | |
23 | A3 | D | 0.7 2.6 | Bieżący format długiej daty | |
24 | A4 | D | 0.7 2.6 | Bieżący rok zerowy na podstawie | |
25 | D | 0.7 | GRFID grf, który zawiera odpowiednie Action3. Przydatne podczas uzyskiwania dostępu do "powiązanego" (related) obiektu. Obecnie obsługiwane tylko dla pojazdów. |
Wszystkie inne numery zmiennych są zastrzeżone i nie wolno ich używać.
- ↑ 1.0 1.1 1.2 0.7 W grach wieloosobowych OpenTTD nie zgłasza bieżącej daty i roku działaniom 6,7,9 i D, ale datę i rok załadowania gry. Powodem jest to, że zauważono, że użycie tej zmiennej prowadzi do desynchronizacji w grach sieciowych.
- ↑ Wartość zmiennej 88 można przetestować tylko za pomocą testów GRFID.
- ↑ OpenTTD zgłasza dowolny arbitralny numer wersji TTDPatch 2.6, aby stare GRF działały, ale nie wiedzą o OpenTTD. Nie polegaj na tym w przypadku nowych NewGRF.
- ↑ 4.0 4.1 4.2 Zasadniczo nie jest przydatne sprawdzanie zmiennych wersji za pomocą Akcji 7. Jeśli chcesz pominąć niektóre akcje, które są niekompatybilne z niektórymi wersjami, chcesz je pominąć na wszystkich etapach ładowania. Tak więc użyj działania 9.
- ↑ 5.0 5.1 5.2 5.3 Zerknij Action D aby uzyskać więcej informacji na temat przesunięć odświeżania kaflów i ich zastosowania.
- ↑ Ta zmienna jest przestarzałym sposobem ustawiania wysokości linii śniegu za pomocą NewGRF za pomocą ActionD. Zostaje zastąpione przez Action 0 snow line height table. Aby odczytać bieżącą linię śniegu za pomocą VarAct2 w uruchomionej grze użyj zamiast tego zmiennej 20.
- ↑ 7.0 7.1 GRFv≤7 Dla GRF w wersji 7 i niższej zmienne te są wielokrotnościami 8; GRFv≥8 dla GRF w wersji 8 i wyższej bezpośrednio podają poziom wysokości jako wielokrotność 1.
Special variables
Faza ładowania GRF (- / 84)
Zmienna 84 jest zmienną BYTE do TTDPatch 2.5r1220. Jego niższy bajt (bity 0..7) ma wartość 0 dla etapów ładowania początkowego i GRF oraz 01 dla wszystkich innych etapów. Pozostałe bity są maską bitową, a włączenie dolnego bajtu ma następujące znaczenie:
TTDPatch Version (0B / 8B)
Zmienna 8B ma następujący format: MMmrbbbb (choć zakodowany w little endian jako bb bb mr MM)
Element | Znaczenie | Wartość |
---|---|---|
MM | major | 'Pierwszy numer' TTDPatch version |
m | minor | Drugi numer wersji TTDPatch |
r | revision | Trzecia liczba wersji TTDPatch[1] |
bbbb | build | Dziesięć razy liczba wersji alfa / beta (do włącznie z TTDPatch 2.5 beta 5), wersja SVN (od TTDPatch 2.5 beta 5 r418 on) |
Przykłady
Wersja | Zmienna 8B | Elementy |
---|---|---|
1.9.1 alpha 50 | 019101F4 | MM=01, m=9, r=1, bbbb=50*10=01F4 |
2.0 beta 4 | 02040028 | MM=02, m=0, r=4[1], bbbb=4*10=0028 |
2.0 final | 02070046 | MM=02, m=0, r=7[1], bbbb=70=0046 |
2.0 rev 1 | 02070050 | MM=02, m=0, r=7[1], bbbb=80=0050 |
2.0.1 alpha 3 | 020A001E | MM=02, m=0, r=10[1], bbbb=3*10=001E |
2.5 beta 2 | 02500014 | MM=02, m=5, r=0, bbbb=2*10=0014 |
2.5 rev631 | 02500631 | MM=02, m=5, r=0, bbbb=631=0631 |
- ↑ 1.0 1.1 1.2 1.3 1.4 Dla TTDPatch 2.0, r=7 i dla serii TTDPatch 2.0.1 , r=10 ze względu na przeoczenie, które wykorzystało r=1..4 dla TTDPatch 2.0 beta 1..4.
Aby poprawnie wykryć wersje z TTDPatch 2.5 rev419 i nowsze, sprawdź tę zmienną. 8B ma wartość 02500419 lub wyższą lub zamień 0419 na rzeczywistą wymaganą wersję (używając numeru wersji jako cyfr szesnastkowych). Ponieważ wersje SVN są współużytkowane z innymi gałęziami łat, ważne jest sprawdzenie faktycznej wersji łaty, a także rewizji (revision) SVN.
Y-Offset for train sprites (0E / 8E)
Ponieważ 'sprite' pociągu muszą normalnie mieć takie same odsunięcia (offsets) na mapie iw widoku zajezdni, pojawią się albo za nisko na mapie, albo za wysoko w widoku zajezdni. Ta zmienna przesuwa wszystkie pojazdy w widoku składu o tyle pikseli.
1.0 Ponieważ OpenTTD r16867 ta zmienna działa na plik grf, to znaczy: Wpływa tylko na pociągi zdefiniowane w tym samym grf.
Rail track type cost factors (0F / 8F)
Ta zmienna jest zbiorem trzech bajtów, które są używane jako mnożniki kosztów śledzenia, gdy przełącznik "trackcostdiff" jest włączony. Wartość 08 jest wartością bazową używaną przez standardowe TTD.
Domyślne są następujące:
'Wartość' | 'Rodzaje kolei' | 'Ustawienie zelektryfikowanych kolei' |
---|---|---|
08, 10, 18 | Regular, Monorail, Maglev | off |
08, 0D, 10 | Regular, Electric, Monorail/Maglev | on |
Extra callback info (10 / -) and (18 / -)
Te zmienne mają znaczenie specyficzne dla wywołania zwrotnego. Są one opisane wzdłuż osoby callbacks.
Ponadto są używane poza funkcjami zwrotnymi do tych specjalnych celów:
Feature | Używanie |
---|---|
Vehicles | Służy do rozróżniania rysunków pojazdów w GUI lub na mapie. Zobacz Action2. |
Stations | Służy do komponowania kafli stacji ze sprite'ami z różnych łańcuchów Action-1-2-3 lub do rysowania niestandardowych fundamentów. Zobacz General station flags i 'AdvancedSpriteLayout'. |
Railtypes | Służy do rozróżniania między typem portalu tunelu a żądanym sygnałem. Aby uzyskać szczegółowe informacje, zobacz odpowiednio Railtype tunnel portal overlay lub Railtype signal sprites . |
Tile refresh offsets (13,14,15,16 / 93,94,95,96)
Te cztery zmienne należą do eksperymentalnej funkcji TTDPatch. Jednak ich definicja opiera się na niepełnym zrozumieniu algorytmu rysowania w TTD, więc w rzeczywistości nie osiągają tego, co mieli zrobić. Rozważ tę historyczną treść.
Te cztery przesunięcia określają rozmiar i położenie odświeżonego prostokąta, gdy TTD zdecyduje się odświeżyć płytkę. Podstawą obliczeń jest współrzędna pikselowa północnego rogu płytki.
Po obliczeniu TTD odejmuje od niej offset_left, aby uzyskać współrzędną x lewej krawędzi, dodaje offset_right, aby uzyskać współrzędną x prawej krawędzi, odejmuje offset_up, aby uzyskać współrzędną y górnej krawędzi i dodaje offset_down, aby uzyskać współrzędną y dolnej krawędzi. Powoduje to odświeżenie pikseli (offset_left+offset_right)*(offset_up+offset_down) pikseli. Domyślne wartości tych zmiennych wynoszą odpowiednio 31, 36, 122 i 32.
Odczytywanie tych wartości nie jest zbyt przydatne, ale możesz je modyfikować również za pomocą akcji D, więc twoje 'sprites' , które przekroczyłyby pierwotne limity, mogą być nadal przerysowane i odpowiednio animowane. Pamiętaj, że TTD używa tych wartości dla każdego kafelka, więc podanie zbyt wysokich wartości może spowolnić grę. Należy również pamiętać, że te zmienne są określone jako dwory ze względów technicznych, ale zostanie użyte tylko dolne słowo.
Ponieważ te wartości są globalne dla całej gry, nie powinieneś po prostu nadpisywać ich działaniem D. Zamiast tego powinieneś najpierw sprawdzić, czy są one wystarczająco duże, używając działania 7, a jeśli nie, pomiń działanie D. W ten sposób zmienne zostaną ustawione na maksymalną potrzebną wartość, a nie tylko wartość potrzebną dla ostatniego GRF na liście.
Snow line height (- / 97)
Jest to aktywne tylko wtedy, gdy przełącznik tempsnowline jest włączony. Domyślnie jest to FF (bez śniegu) i 38 (wersja GRF < 8) lub. 07 (wersja GRF >= 8) odpowiednio w klimacie umiarkowanym i arktycznym.
- GRFv≤7 W przypadku GRF w wersji 7 i niższej należy ustawić wielokrotność 8, co stanowi jeden poziom różnicy wysokości.
- GRFv≥8 Dla GRF w wersji 8 i wyższej poziom wysokości jest ustawiany bezpośrednio jako wielokrotność 1.
Global ID offset (- / 99)
Ustawienie tej zmiennej doda podaną wartość do wszystkich odpowiednich identyfikatorów w kolejnych działaniach 0, działaniach 3 (przesłonięcie barwników z wyjątkiem ~'except' ), działaniach 4 (z wyjątkiem teksty ogólne ) i działaniach A. Jest to wygodniejszy sposób zastosowania wyniku żądania zasobu GRF. Ustawienie tej zmiennej dotyczy tylko bieżącego pliku .grf.
Szczegółowo wpływa na następujące elementy:
Action | Element modyfikowany |
---|---|
0 | <Id> (tj. nie numery 'właściwości') |
3 | <Ids...> (tj. nie dotyczy typów ładunków ani 'ID' ładunków, również nie do nadpisywania barw) |
4 | <Offset> (jednak nie w przypadku tekstów ogólnych) |
A | <First-sprite> |
Display options (1B / -)
Definicja zmiennej 1B jest nieco zależna od funkcji. W przypadku obiektów, które można rysować w sposób przezroczysty (stacje, mosty, domy, kafelki przemysłowe i obiekty), bit 4 jest ustawiany, jeśli bieżący element zostanie narysowany normalnie, i jasne, czy bieżący element zostanie narysowany w sposób przezroczysty. Do tych celów lotniska to stacje. Dla wszystkich innych funkcji bit 4 jest niezdefiniowany.
Misc. GRF Features (1E / 9E)
Ta zmienna jest globalną maską bitową różnych funkcji łatek, które może włączyć plik grf. Proszę ustawić bity tylko za pomocą operacji 08 (bitowe OR) lub, jeśli jest to absolutnie konieczne, usunąć niektóre bity za pomocą operacji 07 (bitowe AND). To gwarantuje, że nie zepsujesz ustawień innych plików GRF.
Bit | Vartość | Wersja | 'Feature' |
---|---|---|---|
0 | 1 | 2.5 | Pozwala drzewom i polom na pustyni |
1 | 2 | 0.6 2.5 | Pokazuje chodnik i światła w pustynnych miastach |
2 | 4 | 2.5 | Pola mają wysokość, używając ramki ograniczającej 3D |
3 | 8 | 0.6 2.5 | Wyświetla pojazdy kolejowe o pełnej szerokości 32 pikseli w oknie zajezdni (zamiast 29 pikseli)[1] |
4 | 10 | 1.2 2.6 | Włącz wywołanie zwrotne efektów dźwiękowych otoczenia 144 |
5 | 20 | 2.5/2.6 | Włącz sieci trakcyjne na trzecim typie toru (tylko przy włączonej kolei zelektryfikowanej) |
6 | 40 | 1.5 | Włącz użycie drugiego zestawu kamiennych kafli. (sprite'y od 4042 do 4061) |
31 | 80000000 | 2.5 | Tylko do ustawienia przez ttdpbase (w) .grf w celu identyfikacji |
Uwagi (Remarks):
- ↑ Since 1.0 ta flaga działa na plik grf, to znaczy: Dotyczy tylko pociągów zdefiniowanych w tym samym GRF.
Przykładowy kod ustawienia bitu 3:
24 * 9 0D 9E 08 9E FF 08 00 00 00
(Tutaj pierwsze 08 wskazuje bitową operację OR, a 08 00 00 00 jest wartością OR var. 9E z.)
Locale-dependent settings (1F / 9F)
Ta zmienna jest podwójnym słowem w formacie rrccmmll, gdzie jest znaczenie bajtów:
Bajt | Znaczenie |
---|---|
rr | Zarezerwowane do użytku w przyszłości, po prostu ustaw tutaj zero |
cc | Domyślna waluta używana przy pierwszym uruchomieniu gry. Może być większy niż 5, aby wybrać jedną z walut dodanych za pośrednictwem większej liczby walut. Jeśli ta wartość jest większa niż 5, a więcej walut jest wyłączone, zamiast nich zostaną użyte dolary amerykańskie. |
mm | Domyślny system pomiaru, który będzie używany przy pierwszym uruchomieniu gry. 00h oznacza system imperialny (mile), 01h oznacza system metryczny (kilometry), inne wartości są zabronione. |
ll | ID języka Ustawiając ten bajt, możesz zastąpić domyślny identyfikator języka i pozwolić innym GRF na dostarczanie poprawnie zlokalizowanych tekstów. (Drugi GRF może sprawdzić tę wartość w akcji 4s) |
Odczyt tej zmiennej nie jest wiarygodny, więc musisz tylko do niej pisać. Należy również pamiętać, że części cc i mm są uwzględniane tylko podczas ładowania ekranu tytułowego po raz pierwszy, zmiana ich później jest ignorowana.
NOTE: Ta zmienna jest resetowana po etapie inicjalizacji. Uwzględniane są tylko zmiany na etapie aktywacji. W ten sposób GRF wyłączone w newgrf.cfg nie zmienią języka i/lub ustawień domyślnych. Jeśli chcesz zmodyfikować część cc lub mm, upewnij się, że odpowiednie działanie D nie jest pomijane przez wcześniejsze działanie 7 lub 9. W szczególności, jeśli twój GRF nie jest dostępny dla klimatu tropikalnego, upewnij się, że ustawiłeś zmienną 9F przed sprawdzeniem klimatu, ponieważ domyślnym ekranem tytułowym jest zwrotnik, a sprawdzenie klimatu nie powiedzie się.
OpenTTD Version (21 / A1)
Zmienna A1 ma następujący format: Mmrbbbbb (choć zakodowany w małym endianie jako bb bb rb Mm). Ta zmienna ma tylko przydatne znaczenie, gdy zmienna 9D ma wartość 1 (OpenTTD). Ta zmienna może być używana od OpenTTD r11330.
Element | Znaczenie | Wartość |
---|---|---|
M | major | Pierwsza liczba OpenTTD version |
m | minor | Drugi numer wersji OpenTTD |
r | revision | Trzecia liczba wersji OpenTTD |
bbbbb | build | Wersje stabilne mają ustawione 80000h. ≤1.8 Kiedy OpenTTD był wersjonowany przy użyciu SVN, niższe bity zawierały wersję SVN. Od OpenTTD 1.9 te bity są nieużywane. |
Obecność 80000h (zestaw bitów 19) oznacza, że wydanie ma zawsze wyższy numer wersji niż jakiekolwiek kompilacje prowadzące do tego wydania.
Przykłady
Wersja | Zmienna A1 | Elementy |
---|---|---|
0.6.0 r11330 | 06002C42 | M=0, m=6, r=0, bbbbb=11330=2C42 |
0.6.0 (release) | 06080000 | M=0, m=6, r=0, bbbbb=0=80000 ('due' do wydania) |