Wprowadzenie
Zmienne
Zmienna | Rozmiar | Wersja* | Opis |
---|---|---|---|
40 | B | 0.6 2.5 | Etap konstrukcji i wartości pseudolosowe |
41 | B | 0.6 2.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 | 0.6 2.5 | Strefa miasta, w której znajduje się budynek. |
43 | B | 0.6 2.5 | Typ terenu: 0 normalny, 1 pustynia, 2 lasy deszczowe, 4 na lub powyżej linii śniegu |
44 | D | 0.6 2.5 | Zliczanie Budynku |
45 | B | 0.6 2.5 | Bity do rozbudowy miasta |
46 | B | 0.6 2.5 | Bieżąca ramka animacji |
47 | D | 0.7 2.6 | Współrzędna XY budynku |
60 | D | 0.6 2.5 | Liczenia innych budowli |
61 | D | 0.6 2.5 | Liczenia innych budowli |
62 | D | 0.6 2.5 | Informacje o terenie dla pobliskich kafli |
63 | B | 0.7 2.6 | Aktualna ramka animacji kafli pobliskiego domu |
64 | B | 1.2 2.6 | Historia przyjmowania ładunków na pobliskich stacjach |
65 | B | 0.7 2.6 | Odległość najbliższego domu spełniającego podane kryterium |
66 | D | 1.0 2.6 | Klasa i ID pobliskiego kafla domu |
67 | D | 1.0 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)
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" .
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:
- Generalfixes jest włączony, a miscmods.noextendstationrange jest wyłączony
- Włączono dowolne ładowanie, ładowanie nowych lub nieregularne stacje
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:
- FFFFFFFFh jeśli wybrany kafel nie jest kaflem domu
- 00000000h jeśli wybrany dom jest starym typem domu
- w przeciwnym razie GRFID GRF, który zdefiniował typ wybranego domu