Wprowadzenie
Zmienne
Zmienna | Rozmiar | Wersja | Opis |
---|---|---|---|
40 | D | 1.1 2.6 | Pozycja względna, jak Industry Tile var43 |
41 | W | 1.1 2.6 | Informacje o kaflach, patrz poniżej |
42 | D | 1.1 2.6 | Data konstrukcji od roku 0 |
43 | B | 1.1 2.6 | Licznik animacji, patrz poniżej |
44 | B | 1.1 2.6 | Informacje o założycielu obiektu |
45 | D | 1.1 2.6 | Uzyskaj town zone i odległość 'Manhatańską' od najbliższego miasta |
46 | D | 1.1 2.6 | Uzyskaj kwadrat odległości euklidesowej od najbliższego miasta |
47 | B | 1.1 2.6 | Kolor obiektu |
48 | B | 1.1 2.6 | Widoki obiektów |
60 | W | 1.1 2.6 | Uzyskaj typ obiektu i widok z przesunięciem |
61 | B | 1.1 2.6 | Uzyskaj losowe bity z przesunięciem |
62 | D | 1.1 2.6 | Informacje o terenie pobliskich kafli |
63 | W | 1.1 2.6 | Licznik animacji pobliskiego kafla |
64 | D | 1.1 2.6 | Liczba obiektów, odległość najbliższej instancji |
Opis
Informacje o kaflach (41)
Zwracana wartość ma format ss0t, gdzie t jest typem terenu, na którym znajduje się kafel, takie same wartości jak canal var81.
Począwszy od TTDPatch r2088, ss zawiera dane nachylenia kafla, taki sam format jak dla industrytile var60 . Znaczenie poszczególnych bitów to:
Bit | Znaczenie |
---|---|
0 | Zachodni róg znajduje się powyżej najniższego |
1 | Południowy róg znajduje się powyżej najniższego |
2 | Wschodni róg znajduje się powyżej najniższego |
3 | Północny róg jest powyżej najniższego |
4 | Kafel ma strome nachylenie (*) |
(*) - Strome zbocza mają ten bit plus 3 punkty podniesione, co daje im wartości 0x17, 0x1B, 0x1D i 0x1E.
Licznik Animacji (43)
Ten bajt pobiera rzeczywistą wartość licznika animacji (zwróć uwagę, że aby to zadziałało, należy ustawić akcję 0, właściwość 10, bit 6).
Informacje o założycielu obiektu (44)
Ten bajt zawiera identyfikator firmy, która sfinansowała obiekt, lub 10 godzin, jeśli obiekt został umieszczony w edytorze scenariuszy.
Uzyskanie town zone i odległości 'Manhatańskiej' od najbliższego miasta (45)
Jak industry var65 , ale zamiast przesunięcia używana jest bieżący kafel.
Uzyskanie kwadratu odległości euklidesowej od najbliższego miasta (46)
Jak industry var66 , ale zamiast przesunięcia zastosowano bieżący kafel.
Kolor obiektu (47)
Ten bajt zwraca kolor obiektu.
(od TTDPatch r2351 i OpenTTD r21259)
Uzyskanie widoków obiektów (48)
Zwrócona wartość oznacza określony widok obiektu. Liczba i ranga set-ID muszą być zgodne z wartością podaną w obiekcie action0 prop17, tj. Dla obiektu z 4 widokami prop48 może zwracać wartości 0 .. 4. Od OpenTTD r21455.
Pobranie typu obiektu z przesunięciem (60)
Parametr tej zmiennej jest przesunięciem od bieżącego kafla. Niby-nibble zawiera podpisane przesunięcie X (to znaczy 0h=0, 1h=+1 ... 7h=+7, 8h=-8, 9h=-7 ... Fh=-1 ), high-nibble zawiera Przesunięcie Y Dlatego parametr 00h uzyskuje dostęp do samego bieżącego kafla.
Wartość zmiennej ma format
rrrvtttt
Uzyskanie losowych bitów z przesunięciem (61)
Zwraca te same wartości, co industry var61 . Odsuń go od bieżącego kafla i jest 'signed'.
Aby uzyskać losowe bity z kafla przy użyciu przesunięcia względem północnego kafla obiektu, patrz przykład poniżej.
Informacje o terenie pobliskich kafli (62)
Zwraca te same wartości co industry tile var60 . 'Odsuń' go od bieżącego kafla i jest 'signed' .
Aby uzyskać informacje o terenie z kafla za pomocą przesunięcia względem północnego kafla obiektu, zobacz poniższy przykład.
Licznik animacji pobliskiego kafla (63)
Zwraca var43 innego kafla podanego przez podpisane przesunięcie.
Aby pobrać licznik animacji z kafla za pomocą przesunięcia względem północnego kafla obiektu, zobacz poniższy przykład.
Liczba obiektów, odległość najbliższej instancji (64)
Zwraca te same wartości, co industry var67 . Odległość jest od bieżącego kafla.
Przykłady
Zdobycie losowych bitów kafla północnego
Poniższy kod wykorzystuje zmienne 40, 61 i 7B do odczytu losowych bitów północnego kafla obiektu.
0 * 0 02 0F xx 81 40 30 FF // Uzyskaj względne położenie kafla obiektu jako yx \2^ 1A 20 77 // Podaj liczby w bitach 0..3 i 4..7 ... \2+ 1A 20 11 // ... (tutaj możemy opcjonalnie wstawić inny (pozytywny) ∆ przesunięcie, aby uzyskać inny kafel względem kafla północnego) \2^ 1A 20 88 // ... (musimy podzielić xor na dwie części, więc bity 0..3 ∆ nie wpływają na bity 4..7) \2rst 7B 61 00 FF // Zdobądź losowe kawałki z północnego kafla ...