Industries
en
EN
pl
PL

nfo

Contents

Produkcja Przemysłowa Callback

Branże nie mają bezpośrednio z nimi grafiki (mają grafikę poprzez kafle), więc nie mogą mieć tradycyjnej akcji 2. Jednak nadal mogą używać akcji 2 do specjalnego celu: wywołań produkcyjnych. Oddzwonienie produkcyjne może dokładnie określić, w jaki sposób przemysł produkuje ładunek, ale wymaga to więcej niż 15 bitów, które może zwrócić normalny oddzwonienie.

Gdy w branży 21 są ustawione bity 1 lub 2, jego produkcja jest zmieniana. Zamiast natychmiastowego przetwarzania przychodzącego ładunku, pamięta, ile jednostek czeka i korzysta z mechanizmu zwrotnego produkcji, aby zdecydować, ile ładunku należy wyprodukować.

Oddzwonienie produkcyjne jest obsługiwane w łańcuchu akcji 2.  Zazwyczaj będzie istniał podłańcuch (sub-chain) wielu wariantów 2 dla logiki przed ostateczną wersją 2 obsługującą produkcję cb.  ID pierwszej odmiany 2 w łańcuchu podrzędnym powinien być jawnie obsługiwany przez sprawdzenie produkcji cb przy użyciu var 0C.  Nie polegaj na traktowaniu podrzędnego łańcucha produkcyjnego cb jako domyślnego ID dla wariantu 2 sprawdzającego 0C, może to mieć nieoczekiwane wyniki.  Jednak ID wariantu 2 obsługującego samą produkcyjną cb powinien być domyślnym ID dla kontroli 0C.  Ma sens?

Format

W przypadku wywołania zwrotnego produkcji dane działania 2 wyglądają następująco:

Format version 00

 <Sprite-number> * <Length> 02 0A <set-id> <version> <subtract-in-1> <subtract-in-2> <subtract-in-3> 
<add-out-1> <add-out-2> <again> 
Element Rozmiar Opis
<Sprite-number> dec Kolejny sprite numer
<length> dec Całkowita liczba bajtów użytych w tym działaniu
02 B Definiuje action 02
0A B feature 0A=industries
<set-id> B ID dla tej definicji
<version> B wersja produkcji-callback format, 00
<subtract-in-1..3> W Kwoty, które należy odjąć od przychodzących ładunków oczekujących na przetworzenie. (Podpisane) ~Signed
<add-out-1/2> W Kwoty, które należy dodać do wyprodukowanych ładunków. (Niepodpisane) ~Unsigned
<again> B Powtórzyć wywołanie zwrotne, jeśli nie jest zerowe, nie powtarzać, jeśli 00. [1]
  1.   Przypis.Przed TTDPatch 2.0.1 alfa 73 jedynymi ważnymi wartościami były 01 i 00..

Format version 01

Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.6 (r1307)2.6

 <Sprite-number> * <Length> 02 0A <set-id> <version> <subtract-in-1> <subtract-in-2> <subtract-in-3> 
<add-out-1> <add-out-2> <again> 
Element Rozmiar Opis
<Sprite-number> dec Kolejny numer 'sprite'
<length> dec Całkowita liczba bajtów użytych w tej akcji
02 B Definiuje akcję 02
0A B funkcja 0A=branże
<set-id> B ID tej definicji
<version> B wersja formatu produkcji-callback, 01
<subtract-in-1..3> B Liczba rejestrów zawierających kwoty do odjęcia od przychodzących ładunków oczekujących na przetworzenie.
<add-out-1/2> B Numery rejestrów, które zawierają kwoty, które należy dodać do wyprodukowanych ładunków.
<again> B Numer rejestru <again> . Powtórz 'callback', jeśli wartość rejestru  nie jest zerem, inaczej nie powtarzaj

Format version 02

Obsługiwane przez OpenTTD 1.9 (e66cec8f)1.9 Nieobsługiwane przez TTDPatch

 <Sprite-number> * <Length> 02 0A <set-id> <version> <numinputs> (<inputcargo> <subtract-in>)* 
<numoutputs> (<outputcargo> <add-out>)* <again> 
Element rozmiar Opis
<Sprite-number> dec Kolejny numer 'sprite'
<length> dec Całkowita liczba bajtów użytych w tej akcji
02 B Definiuje akcję 02
0A B funkcja 0A=branże
<set-id> B ID tej definicji
<version> B wersja formatu produkcja-callback, 02
<numinput> B Liczba (<inputcargo> <subtract-in>) par do 'naśladowania'.
<inputcargo> B Cargotyp z tabeli translacji ładunku.
<subtract-in> B Numer rejestru zawierającego kwoty do odjęcia od przychodzących ładunków oczekujących na przetworzenie.
<numoutput> B Liczba (<outputcargo> <add-out>) par do 'naśladowania'.
<outputcargo> B Cargotyp z tabeli translacji ładunku.
<add-out> B Numer rejestru przechowującego kwoty, które mają być dodane do wyprodukowanych ładunków.
<again> B Numer rejestru <again> . Powtórz wywołanie zwrotne, jeśli wartość rejestru  jest różna od zera, w przeciwnym razie nie powtarzaj

Details

Całkowita liczba oczekujących ładunków nie może być ujemna.  Jeśli podasz więcej niż faktycznie czekającą kwotę, przychodząca kwota zostanie wyzerowana. Możesz użyć ujemnych wartości odejmowania, aby zwiększyć ilość oczekującego ładunku.

Podczas tego wywołania zwrotnego najniższy bajt zmiennej 18 zawiera przyczynę wywołania, wywołania zwrotnego: 0, jeśli zostało wywołane z powodu przychodzącego ładunku, 1, jeśli zostało wywołane podczas przetwarzania okresowego. Bity 8-23 zawierają liczbę wywołań zwrotnych w tej pętli, tj. 0 dla pierwszego połączenia, 1 dla drugiego etc.)

Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.5 (2.0.1 alpha 73)2.5 Dla TTDPatch 2.0.1 alfa 73 i wyższych bity 24-31 zmiennej 18 zawierają <again> wartość poprzedniego wywołania (najniższy bajt tylko w przypadku wersji 1) lub 0, jeśli jest to pierwsze wywołanie. Można to wykorzystać do uzyskania informacji o stanie podczas pętli, ponieważ można przekazać informacje do następnej iteracji.

Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.5 (2.5 beta 5)2.5 Od wersji TTDPatch 2.5 beta 5 można zażądać losowych bitów w zmiennej 10, ustawiając bit 15 właściwości 1A. Te bity nie zostaną ponownie zrandomizowane, gdy ponownie oddzwonisz, ustawiając niezerową wartość "ponownie" (again) ; są losowe tylko dla pierwszego połączenia.

Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.6 (r1307)2.6 Korzystając z formatu wersji 1, dostępnego od TTDPatch 2.6 r1307, możesz dynamicznie decydować o instrukcjach. Zamiast stałych podajesz numery rejestrów zawierające potrzebne wartości; możesz obliczyć te wartości wcześniej w łańcuchu akcji2. Rejestry mają długość 4 bajtów i są uważane za podpisane. Ujemne wartości dodatków nie mają sensu i są ignorowane. Wyniki są zaciśnięte w dozwolonym zakresie (0..65535 zarówno dla przychodzących, jak i wychodzących ilości ładunku).

Obsługiwane przez OpenTTD 1.9 (e66cec8f)1.9 Nieobsługiwane przez TTDPatch Korzystając z formatu wersji 2, można wyświetlić więcej ładunków wejściowych i wyjściowych niż w wersji 1. Rodzaje ładunków są określone zgodnie z tabelą translacji ładunków; kwoty są określone w rejestrach jak w wersji 1. Wymienione typy ładunków, które nie są akceptowane / produkowane przez przemysł (właściwości 10..11, 25..26, oddzwanianie 14B..14C) są ignorowane.