Wprowadzenie
Zmienne
| Zmienna | Rozmiar | Wersja | Opis |
|---|---|---|---|
| 40 | D |
|
Pozycja względna, jak Industry Tile var43 |
| 41 | W |
|
Informacje o kaflach, patrz poniżej |
| 42 | D |
|
Data konstrukcji od roku 0 |
| 43 | B |
|
Licznik animacji, patrz poniżej |
| 44 | B |
|
Informacje o założycielu obiektu |
| 45 | D |
|
Uzyskaj town zone i odległość 'Manhatańską' od najbliższego miasta |
| 46 | D |
|
Uzyskaj kwadrat odległości euklidesowej od najbliższego miasta |
| 47 | B |
|
Kolor obiektu |
| 48 | B |
|
Widoki obiektów |
| 60 | W |
|
Uzyskaj typ obiektu i widok z przesunięciem |
| 61 | B |
|
Uzyskaj losowe bity z przesunięciem |
| 62 | D |
|
Informacje o terenie pobliskich kafli |
| 63 | W |
|
Licznik animacji pobliskiego kafla |
| 64 | D |
|
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
...
