Houses
en
EN
pl
PL

nfo

Contents

Wprowadzenie

Zmienne

Zmienna Rozmiar Wersja* Opis
40 B Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.52.5 Etap konstrukcji i wartości pseudolosowe
41 B Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.52.5 Wiek budynku w latach (a ściślej mówiąc, różnica między bieżącym rokiem a rokiem, w którym budynek został wybudowany). Zwraca wartość 255 dla budynków starszych niż 255 lat.
42 B Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.5 (alpha 43)2.5 Strefa miasta, w której znajduje się budynek.
43 B Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.52.5 Typ terenu: 0 normalny, 1 pustynia, 2 lasy deszczowe, 4 na lub powyżej linii śniegu
44 D Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.5 (alpha 43)2.5 Zliczanie Budynku
45 B Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.5 (alpha 38)2.5 Bity do rozbudowy miasta
46 B Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.5 (alpha 67)2.5 Bieżąca ramka animacji
47 D Obsługiwane przez OpenTTD 0.7 (r14294)0.7 Obsługiwane przez TTDPatch 2.6 (r2020)2.6 Współrzędna XY budynku
60 D Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.5 (alpha 56)2.5 Liczenia innych budowli
61 D Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.5 (alpha 56)2.5 Liczenia innych budowli
62 D Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.5 (alpha 72)2.5 Informacje o terenie dla pobliskich kafli
63 B Obsługiwane przez OpenTTD 0.70.7 Obsługiwane przez TTDPatch 2.6 (r1665)2.6 Aktualna ramka animacji kafli pobliskiego domu
64 B Obsługiwane przez OpenTTD 1.2 (r23070)1.2 Obsługiwane przez TTDPatch 2.6 (r1672)2.6 Historia przyjmowania ładunków na pobliskich stacjach
65 B Obsługiwane przez OpenTTD 0.7 (r13603)0.7 Obsługiwane przez TTDPatch 2.6 (r2242)2.6 Odległość najbliższego domu spełniającego podane kryterium
66 D Obsługiwane przez OpenTTD 1.01.0 Obsługiwane przez TTDPatch 2.6 (r2246)2.6 Klasa i ID pobliskiego kafla domu
67 D Obsługiwane przez OpenTTD 1.01.0 Obsługiwane przez TTDPatch 2.6 (r2246)2.6 GRFID pobliskiego kafla domu
80+x

Brak zdefiniowanej i nigdy nie będzie, ponieważ budynki miejskie nie mają wewnętrznej struktury. Próba uzyskania dostępu do tych zmiennych powoduje awarię TTD.

* Określona wersja jest najwcześniej znana z obsługi zmiennej w jej bieżącej formie. Niektóre zmienne mogły być dostępne wcześniej.

Opis

Etap konstrukcji i wartości pseudolosowe (40)

Bity Znaczenie
0..1 Stan budowy: 0..2: różne stany budowy, 3: budowa zakończona
2..3 Wartość pseudolosowa. W rzeczywistości nie jest to przypadek, ale pochodzi z położenia budynku. Stare budynki używają tej wartości do losowego dobierania kolorów. TTDPatch ma lepszy sposób na losowanie rzeczy, ale nadal możesz użyć tej wartości, aby naśladować niezałatane zachowanie TTD. Zauważ, że sąsiednie kafle nie mają gwarancji, że będą miały te same pseudolosowe bity

Strefa miejscowości (42)

Strefa miasta, w której znajduje się budynek. Wartość wynosi od 0 do 4, gdzie 0 jest najbardziej oddaloną strefą miasta. Mniejsze miasta mają mniej stref. Drogi są gładkie w strefie 0 i 1, utwardzone w strefie 2, drzewa w strefie 3 i latarnie w strefie 4

Zliczanie budynku (44)

Zwraca dword LLllCCcc, gdzie cc oznacza, ile budynków bieżącego typu można znaleźć w bieżącym mieście, podczas gdy CC jest takie samo dla całej mapy. II i LL są podobne do CC i CC, ale zawierają liczbę kafli o tej samej klasie co bieżąca. Dla kafli, które nie mają żadnej klasy, ll i LL są zawsze równe zero. Zastąpione stare typy są uważane za nowy typ, którym zostały zastąpione. Podczas callback 17 bieżący budynek nie jest jeszcze na mapie i dlatego nie jest liczony. W innych przypadkach liczba budynków wynosi co najmniej jeden, ponieważ liczony jest również obecny budynek.

Bity do rozbudowy miasta (45)

Bit Wartośc Znaczenie
0 1 Ustaw, jeśli TTD aktualnie tworzy losowe miasto, wyczyść w przeciwnym razie. UWAGA: podczas gdy TTD generuje losowe miasto, zmienne miasta 82 (ludność miasta) i B6 (liczba budynków) są nieprawidłowe. Licznik populacji zawiera populację wygenerowanych budynków _ jeszcze_, co oznacza, że ​​ostateczna wartość może być większa niż otrzymana. Z drugiej strony zmienna liczby budynków jest z pewnością wyższa niż będzie to wartość końcowa. Jeśli chcesz sprawdzić te zmienne podczas callback 17, być może będziesz musiał sprawdzić również zmienną 45 i dokonać regulacji, jeśli ten bit jest ustawiony.

Inne bity są obecnie zarezerwowane do wykorzystania w przyszłości.

Bieżąca ramka animacji (46)

Wyświetlana jest bieżąca klatka animacji. Jeśli nie używasz wywołań animacji, mieści się ona między zerem a wartością ustawioną we właściwości 1A. Oddzwanianie animacji może ustawić dowolną wartość z zakresu od 0 do 127.

Włączenie animacji na kaflu domu poprzez ustawienie właściwości 9, 1A i prawdopodobnie 1B zapewnia, że ​​zmienna 46 rzeczywiście zmienia się z czasem, a budynek jest przerysowywany za każdym razem, gdy zmienia się zmienna 46. Oznacza to, że możesz użyć VarAction2, aby wybrać bieżącą klatkę zgodnie ze zmienną 46. Pamiętaj, że ten rodzaj animacji wymaga więcej czasu procesora i więcej 'sprites', więc jeśli to możliwe, powinieneś preferować animację paletową.

Współrzędna XY budynku (47)

Współrzędna kafla, w której znajduje się ta część budynku.  Jeśli budynek nie został jeszcze zbudowany, np. Podczas callback 17 , zwróconą wartością będzie proponowana lokalizacja.  Format var to RRRRXXXX.

Liczenia innych budowli (60, 61)

Dla zmiennej 60 parametrem jest stary numer typu domu. Dla zmiennej 61 jest to nowy numer typu domu zdefiniowany w bieżącym pliku GRF.

Zmienne te działają jak zmienna 44, ale liczą dany typ domu zamiast bieżącego.

Należy pamiętać, że w przeciwieństwie do losowej grafiki, zmiany deterministycznej grafiki budynku nie przerysowują automatycznie budynku (z wyjątkiem sytuacji, gdy zmienia się stan konstrukcji lub zmienna 46), co powoduje tymczasowe usterki grafiki, gdy widoczny budynek zmienia swoją grafikę. Te usterki można naprawić, przewijając budynek poza zasięgiem wzroku, a następnie ponownie.

Informacje o terenie dla pobliskich kafli (62)

Ta zmienna działa dokładnie tak, jak var. 60 for industry tiles , z wyjątkiem tego, że bit 0 części bb jest niezdefiniowany.

Aktualna ramka animacji kafli pobliskiego domu (63)

Parametr tej zmiennej jest przesunięciem względem położenia 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 Chociaż możesz zapytać o obszar 16x16 za pomocą tych parametrów, obecnie nie ma potrzeby używania przesunięć innych niż -1, 0 i +1; jeśli zapytasz o kafel, który nie należy do tego samego budynku, co bieżący, wynik jest bez znaczenia. Może to być nawet śmieci, jeśli pytany kafel wcale nie jest kaflem domowym.

Cargo acceptance history of nearby stations (64)

Parametrem tej zmiennej jest identyfikator ładunku. GRFv≥7 Jeśli twój GRF ma wersję 7 lub nowszą i ma tabelę translacji ładunku, jest to indeks do tej tabeli; w przeciwnym razie jest to numer przedziału ładunkowego. Ponadto rejestr GRF 100h powinien zawierać przesunięcie względem bieżącego kafla (użyj 0 dla bieżącego kafla). Najniższy bajt zawiera przesunięcie X ze znakiem, a następny wyższy bajt zawiera przesunięcie Y ze znakiem.

Zwrócona wartość wygląda następująco:

Numer bitu Znaczenie
0 Ładunek ten był kiedyś przyjmowany na pobliskiej stacji
1 Ten ładunek został przyjęty na pobliskiej stacji w zeszłym miesiącu
2 Ładunek ten został przyjęty na pobliskiej stacji w tym miesiącu
3 Ładunek ten został przyjęty na pobliskiej stacji od ostatniego okresowego przetwarzania (co ma miejsce co 250 cykli)
4 Ten ładunek jest jednym z typów, które wywołały callback 148 (tylko podczas callback 148)
other bits niezdefiniowane; zarezerwowane do użytku w przyszłości

W pobliżu znajduje się stacja, jeśli wybrany kafel znajduje się w obszarze akceptacji. Dlatego możesz podać 'przesunięcie'- inne kafle w budynku z wieloma kaflami mogą mieć różne stacje "w pobliżu" .

Obsługiwane przez TTDPatch Informacje wymagane dla tej zmiennej są przechowywane w strukturze station2 i dlatego działają tylko wtedy, gdy obecna jest struktura station2. Struktura station2 jest obecna, jeśli spełniony jest jeden z poniższych warunków:

Jeśli struktura station2 nie jest obecna, zwracana wartość jest zawsze równa zero.

Odległość najbliższego domu spełniającego podane kryterium (65)

Spowoduje to wykonanie cyklicznego wyszukiwania wokół bieżącego kafla, próbując znaleźć inny kafel domu, który będzie pasował do tego samego typu, klasy lub GRFID. (Uwaga: inne kafle domu pochodzącego nie będą pasować.)  Wynikiem wyszukiwania będzie Manhattan distance między oboma kaflami lub 0, jeśli nie znaleziono kafla domu spełniającej podane kryteria.

Parametr tej zmiennej składa się z dwóch części:

Bity 0..5 wskazują promień wyszukiwania, które ma zostać wykonane (podane w metrach Manhattanu). Maksymalny promień wyszukiwania to 63, a minimalny to 1. Promień 0 jest uważany za zarezerwowany - nie używaj.

Bity 6..7 wskazują rodzaj wyszukiwania, które należy przeprowadzić:

0: Wyszukaj według typu domu zdefiniowanego w pliku grf

1: Wyszukaj według klasy budynku

2: Wyszukaj według GRFID

Podobnie jak inne zmienne wyszukiwania, pamiętaj, że jest to procesor intensywny

Klasa i ID pobliskiego kafla domu (66)

Parametr tej zmiennej jest przesunięciem względem położenia 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 Zwrócona wartość ma następującą strukturę:

Wysokie słowo Informacje o klasie domu

FFFFh jeśli wybrany kafel nie jest kaflem domu

0000h jeśli wybrany dom nie ma określonej klasy (w tym starych domów, które nie mogą mieć klasy)

01XXh jeśli wybrany dom został zdefiniowany w aktualnym GRF z klasą XX

02XXh jeśli wybrany dom został zdefiniowany w innym GRF z klasą XX
Niskie słowo Informacje o ID domu

FFFFh jeśli wybrany kafel nie jest kaflem domu

00XXh jeśli wybrany dom jest starym typem XX

01XXh jeśli wybrany dom został zdefiniowany w aktualnym GRF z ID XX

02XXh jeśli wybrany dom został zdefiniowany w innym GRF o ID XX

W przypadku, gdy wybrany dom pochodzi z innego GRF, musisz użyć zmiennej 67 (patrz poniżej), aby znaleźć odpowiedni GRFID i zidentyfikować dokładny typ domu. Należy pamiętać, że zmienna 67 jest tańsza do obliczenia niż ta, więc jeśli szukasz konkretnej kombinacji GRFID/houseID, powinieneś najpierw spróbować dopasować GRFID, a uzyskać zmienną 66 tylko wtedy, gdy GRFID pasuje.

GRFID pobliskiego kafla domu (67)

Parametr tej zmiennej jest przesunięciem względem położenia 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 Zwrócona wartość jest jedną z następujących czynności:

Przykład