User:Extrazi/specs.tt/GRFResourceManagement/Pl

From OpenTTD
< User:Extrazi(Difference between revisions)
Jump to: navigation, search
m (: pl , link : GRFActionsDetailed#Byte order)
m (Description of GRM-ops)
(3 intermediate revisions by one user not shown)
Line 9: Line 9:
 
Od czasu TTDPatch 2.0.1 alpha 51 możliwe było użycie działania D w celu uczestniczenia we wspólnym zarządzaniu zasobami.
 
Od czasu TTDPatch 2.0.1 alpha 51 możliwe było użycie działania D w celu uczestniczenia we wspólnym zarządzaniu zasobami.
  
Ta funkcja jest przydatna w celu uniknięcia konfliktów zasobów między plikami grf. Plik może sprawdzać dostępne zasoby, sprawdzać, czy niektóre identyfikatory są dostępne i/lub oznaczać je jako zastrzeżone. Następnie akcja 6 wprowadzi rzeczywiste wartości do odpowiednich wpisów akcji, na przykład akcja 0 lub 3 dla pojazdów, a akcja A dla duszków. Alternatywnie można użyć innej akcji D, aby ustawić zmienną 99 i odpowiednio dopasować identyfikatory odpowiednich akcji.
+
Ta funkcja jest przydatna w celu uniknięcia konfliktów zasobów między plikami grf. Plik może sprawdzać dostępne zasoby, sprawdzać, czy niektóre identyfikatory są dostępne i/lub oznaczać je jako zastrzeżone. Następnie akcja 6 wprowadzi rzeczywiste wartości do odpowiednich wpisów akcji, na przykład akcja 0 lub 3 dla pojazdów, a akcja A dla 'sprites' . Alternatywnie można użyć innej akcji D, aby ustawić zmienną 99 i odpowiednio dopasować identyfikatory odpowiednich akcji.
  
If the requested resources are not available, the grf file will be deactivated and be shown with an orange colour in the GRF Status Window, as well as a message indicating the type of resource that was not available. Note that previously allocated resources will not be freed if this happens, therefore you must first ''check'' that ''all'' of the resources are available before reserving ''any'' of them. This means if you have more than one type of resource that is required, you need two action D entries for each type, first one action D for each type using the "check" or "find" operation, after all of which follow the action D entries for each type using the "reserve" or "mark" operation.
+
Jeśli żądane zasoby nie są dostępne, plik grf zostanie dezaktywowany i wyświetlony w pomarańczowym kolorze w oknie statusu GRF, a także komunikat wskazujący typ zasobu, który był niedostępny. Pamiętaj, że wcześniej przydzielone zasoby nie zostaną zwolnione, jeśli tak się stanie, dlatego musisz najpierw ''sprawdzić'' <small>''(check)''</small> , czy ''wszystkie'' <small>''(all)''</small>  zasoby są dostępne, zanim zarezerwujesz ''dowolne'' <small>''(any)''</small> z nich. Oznacza to, że jeśli wymagany jest więcej niż jeden typ zasobu, potrzebne są dwa wpisy akcji D dla każdego typu, pierwsza jedna akcja D dla każdego typu za pomocą operacji "sprawdź" lub "znajdź" <small>''(find)''</small>, po których wszystkie wykonaj akcję Wpisy D dla każdego typu przy użyciu operacji "zarezerwować" <small>''(reserve)''</small> lub "zaznaczyć" <small>''(mark)''</small>.
  
 
Ten typ akcji D jest ignorowany podczas inicjalizacji (ponieważ zasoby również nie zostały jeszcze zainicjowane), a parametr docelowy zostanie wówczas ustawiony na 0.
 
Ten typ akcji D jest ignorowany podczas inicjalizacji (ponieważ zasoby również nie zostały jeszcze zainicjowane), a parametr docelowy zostanie wówczas ustawiony na 0.
  
'''Please note:''' This resource management is cooperative. That means that grf files that do not use it can still access all IDs, and the patch will never know about it. Only those grf files that use this resource management will "know" of each other and can be sure not to use conflicting resources. If another grf file then uses a "reserved" ID without telling the patch via an action D, there is nothing that will prevent it from doing so.
+
'''Proszę zanotować:''' To zarządzanie zasobami jest oparte na współpracy. Oznacza to, że pliki grf, które go nie używają, mogą nadal uzyskiwać dostęp do wszystkich ID''`y'' , a łatka nigdy się o tym nie dowie. Tylko te pliki GRF, które korzystają z tego zarządzania zasobami, będą się "wiedzieć" <small>''(know)''</small> o sobie i będą mieć pewność, że nie będą używać sprzecznych zasobów. Jeśli inny plik grf użyje wtedy "zarezerwowanego" <small>''(reserved)''</small> identyfikatora bez podania łaty poprzez akcję D, nic nie stoi na przeszkodzie, aby to zrobić.
  
 
== Syntax ==
 
== Syntax ==
Line 22: Line 22:
  
 
{|
 
{|
!Element!![[GRFActionsDetailed|Size]]!!Description
+
!Element!![[user:extrazi/specs.tt/GRFActionsDetailed/Pl|Size]]!!Description
  
 
|-
 
|-
Line 49: Line 49:
 
|}
 
|}
  
W przypadku operacji sprawdzania, oznaczania, sprawdzania bezawaryjnego i uzyskiwania informacji o właścicielu <target> musi zawierać pierwszy identyfikator, który będzie obsługiwany.
+
W przypadku operacji sprawdzania, oznaczania, sprawdzania bezawaryjnego i uzyskiwania informacji o właścicielu <target> musi zawierać pierwszy ID, który będzie obsługiwany.
  
 
== Description of GRM-ops ==
 
== Description of GRM-ops ==
Line 84: Line 84:
 
Działanie D zwraca wynik (jeśli istnieje) w danym parametrze <target>. Jeśli wynik zostanie oznaczony jako "(none)" w powyższej tabeli, parametr <target> nie zostanie zmodyfikowany.
 
Działanie D zwraca wynik (jeśli istnieje) w danym parametrze <target>. Jeśli wynik zostanie oznaczony jako "(none)" w powyższej tabeli, parametr <target> nie zostanie zmodyfikowany.
  
The "reserve" and "find" operations will try to find a contiguous block of <count> entries, and store the first number in the target parameter of the action D. If not enough entries can be found, the grf file is deactivated. For OpenTTD it's not useful to split large blocks into multiple smaller blocks, as it is unlikely that even a large block can't be found in the 16777216 allocatable sprites.
+
Operacje "Zarezerwuj" i "Znajdź" spróbują znaleźć ciągły blok <count> wpisów i zapiszą pierwszą liczbę w parametrze docelowym akcji D. Jeśli nie można znaleźć wystarczającej liczby wpisów, plik grf jest dezaktywowany. W przypadku OpenTTD nie jest użyteczne dzielenie dużych bloków na wiele mniejszych bloków, ponieważ jest mało prawdopodobne, aby nawet dużego bloku nie można było znaleźć w 'sprites' 16777216, które można przypisać.
  
The "check" and "mark" operations use the value stored in the ''target'' parameter of the action D, and check/mark the block of <count> entries starting from that number. If not all entries are available, the grf file is deactivated.
+
Operacje "sprawdź" i "zaznacz" wykorzystują wartość zapisaną w parametrze ''cel'' <small>''(target)''</small> akcji D i zaznaczają 'check/mark' blok <count> pozycji zaczynając od tej liczby. Jeśli nie wszystkie wpisy są dostępne, plik grf jest dezaktywowany.
  
 
Wersje bezawaryjne działają dokładnie tak, jak ich zwykłe odpowiedniki, ale ustawiają parametr <target> na -1 (FFFFFFFF), jeśli zasoby są niedostępne, co można sprawdzić za pomocą akcji 7. Nie dezaktywują pliku grf. Jeśli się powiedzie, nic nie robią. Są one przydatne, jeśli plik chce dobrowolnie pominąć niektóre modyfikacje w przypadku, gdy inne pliki już je zmieniły.
 
Wersje bezawaryjne działają dokładnie tak, jak ich zwykłe odpowiedniki, ale ustawiają parametr <target> na -1 (FFFFFFFF), jeśli zasoby są niedostępne, co można sprawdzić za pomocą akcji 7. Nie dezaktywują pliku grf. Jeśli się powiedzie, nic nie robią. Są one przydatne, jeśli plik chce dobrowolnie pominąć niektóre modyfikacje w przypadku, gdy inne pliki już je zmieniły.
  
Typically, the "reserve" or "find" operations will be used for files that modify only a few vehicles. For (mostly) complete sets, the "check" and "mark" operations are more useful, because it is often not feasible to remap the IDs of an entire set, so these operations will simply make sure that all needed IDs are available.
+
Zazwyczaj operacje  "rezerwowania" lub  "znajdowania " będą stosowane w przypadku plików modyfikujących tylko kilka pojazdów. W przypadku (głównie) kompletnych zestawów operacje  "sprawdź" "zaznacz" są bardziej przydatne, ponieważ często nie jest możliwe ponowne mapowanie identyfikatorów całego zestawu, więc operacje te po prostu upewnią się, że wszystkie potrzebne identyfikatory są dostępne.
  
For each feature, multiple "find" operations will check for different size blocks, but will always return the same base entry number, so "find" should only be called once for each feature.
+
Dla każdej funkcji wiele operacji "znajdź" sprawdzi, czy bloki mają różne rozmiary, ale zawsze zwróci ten sam podstawowy numer wpisu, więc "znajdź" należy wywoływać tylko raz dla każdej funkcji.
  
 
== Support for features ==
 
== Support for features ==
Line 120: Line 120:
 
|}
 
|}
  
0 = unsafe, the IDs may change when loading game
+
0 = niebezpieczne, ID''`y'' mogą ulec zmianie podczas ładowania gry
  
X = safe to use
+
X = bezpieczny w użyciu
  
<nowiki>*</nowiki> = safe but useless
+
<nowiki>*</nowiki> = bezpieczne, ale bezużyteczne
  
- = do not use
+
- = nie używać
  
W przypadku nowych ładunków, identyfikatory 00..1F odnoszą się do samych identyfikatorów ładunku (np. ID 0B jest dostępny w klimacie umiarkowanym, a 0C..1F we wszystkich klimatach), podczas gdy identyfikatory 20..3F odnoszą się do numeru bitu z podpory. 08 plus 20 (np. ID 2D, będący bitem 0D=fruit , jest dostępny we wszystkich klimatach oprócz tropikalnego). Musisz sprawdzić i oznaczyć oba typy identyfikatorów dla poprawnego działania.
+
W przypadku nowych ładunków, identyfikatory 00..1F odnoszą się do samych ID''`ów'' ładunku (np. ID 0B jest dostępny w klimacie umiarkowanym, a 0C..1F we wszystkich klimatach), podczas gdy ID''`y'' 20..3F odnoszą się do numeru bitu z podpory. 08 plus 20 (np. ID 2D, będący bitem 0D=fruit , jest dostępny we wszystkich klimatach oprócz tropikalnego). Musisz sprawdzić i oznaczyć oba typy ID''`ów'' dla poprawnego działania.

Revision as of 18:44, 30 June 2020


pl
PL

Contents

Wprowadzenie

Zapobieganie konfliktom przy ograniczonych zasobach


Od czasu TTDPatch 2.0.1 alpha 51 możliwe było użycie działania D w celu uczestniczenia we wspólnym zarządzaniu zasobami.

Ta funkcja jest przydatna w celu uniknięcia konfliktów zasobów między plikami grf. Plik może sprawdzać dostępne zasoby, sprawdzać, czy niektóre identyfikatory są dostępne i/lub oznaczać je jako zastrzeżone. Następnie akcja 6 wprowadzi rzeczywiste wartości do odpowiednich wpisów akcji, na przykład akcja 0 lub 3 dla pojazdów, a akcja A dla 'sprites' . Alternatywnie można użyć innej akcji D, aby ustawić zmienną 99 i odpowiednio dopasować identyfikatory odpowiednich akcji.

Jeśli żądane zasoby nie są dostępne, plik grf zostanie dezaktywowany i wyświetlony w pomarańczowym kolorze w oknie statusu GRF, a także komunikat wskazujący typ zasobu, który był niedostępny. Pamiętaj, że wcześniej przydzielone zasoby nie zostaną zwolnione, jeśli tak się stanie, dlatego musisz najpierw sprawdzić (check) , czy wszystkie (all) zasoby są dostępne, zanim zarezerwujesz dowolne (any) z nich. Oznacza to, że jeśli wymagany jest więcej niż jeden typ zasobu, potrzebne są dwa wpisy akcji D dla każdego typu, pierwsza jedna akcja D dla każdego typu za pomocą operacji "sprawdź" lub "znajdź" (find), po których wszystkie wykonaj akcję Wpisy D dla każdego typu przy użyciu operacji "zarezerwować" (reserve) lub "zaznaczyć" (mark).

Ten typ akcji D jest ignorowany podczas inicjalizacji (ponieważ zasoby również nie zostały jeszcze zainicjowane), a parametr docelowy zostanie wówczas ustawiony na 0.

Proszę zanotować: To zarządzanie zasobami jest oparte na współpracy. Oznacza to, że pliki grf, które go nie używają, mogą nadal uzyskiwać dostęp do wszystkich ID`y , a łatka nigdy się o tym nie dowie. Tylko te pliki GRF, które korzystają z tego zarządzania zasobami, będą się "wiedzieć" (know) o sobie i będą mieć pewność, że nie będą używać sprzecznych zasobów. Jeśli inny plik grf użyje wtedy "zarezerwowanego" (reserved) identyfikatora bez podania łaty poprzez akcję D, nic nie stoi na przeszkodzie, aby to zrobić.

Syntax

<Sprite-number> * <Length> 0D <target> 00 <GRM-op> FE FF <feature> <count>
Element Size Description
0D B Defines action 0D
<target> B Target parameter. See also below.
00 B Assignment
<GRM-op> B Resource operation to perform. See below.
FE B Defines a special variable access
FF B Prevent conflicts with ReadingOtherGRFParameters
<feature> B Feature to operate on. See below.
<count> W Number of IDs to operate on.

W przypadku operacji sprawdzania, oznaczania, sprawdzania bezawaryjnego i uzyskiwania informacji o właścicielu <target> musi zawierać pierwszy ID, który będzie obsługiwany.

Description of GRM-ops

Dostępne są następujące operacje:

Każda operacja ma również odpowiednią sekwencję zmiany znaczenia, zgodnie z listą. Zobacz the discussion of escape sequences w celu uzyskania dalszych informacji na temat sekwencji specjalnych.

Number Escape Operation Result Meaning
00 \DR Reserve First found ID find available resource ID and mark as in use
01 \DF Find First found ID find available resource ID but do not mark
02 \DC Check (none) check whether given resources (ID stored in the <target> variable) are available
03 \DM Mark (none) check that the given resources are available, and if so mark as in use
04 \DnF No-fail Find (see below) like "Find", but does not deactive the grf if no IDs found
05 \DnC No-fail Check (see below) like "Check", but does not deactive the grf if there is a conflict
06 \DO Get Owner GRF-ID of owner Retrieve GRFID that has reserved the given ID (or 0 if not reserved)

Działanie D zwraca wynik (jeśli istnieje) w danym parametrze <target>. Jeśli wynik zostanie oznaczony jako "(none)" w powyższej tabeli, parametr <target> nie zostanie zmodyfikowany.

Operacje "Zarezerwuj" i "Znajdź" spróbują znaleźć ciągły blok <count> wpisów i zapiszą pierwszą liczbę w parametrze docelowym akcji D. Jeśli nie można znaleźć wystarczającej liczby wpisów, plik grf jest dezaktywowany. W przypadku OpenTTD nie jest użyteczne dzielenie dużych bloków na wiele mniejszych bloków, ponieważ jest mało prawdopodobne, aby nawet dużego bloku nie można było znaleźć w 'sprites' 16777216, które można przypisać.

Operacje "sprawdź" i "zaznacz" wykorzystują wartość zapisaną w parametrze cel (target) akcji D i zaznaczają 'check/mark' blok <count> pozycji zaczynając od tej liczby. Jeśli nie wszystkie wpisy są dostępne, plik grf jest dezaktywowany.

Wersje bezawaryjne działają dokładnie tak, jak ich zwykłe odpowiedniki, ale ustawiają parametr <target> na -1 (FFFFFFFF), jeśli zasoby są niedostępne, co można sprawdzić za pomocą akcji 7. Nie dezaktywują pliku grf. Jeśli się powiedzie, nic nie robią. Są one przydatne, jeśli plik chce dobrowolnie pominąć niektóre modyfikacje w przypadku, gdy inne pliki już je zmieniły.

Zazwyczaj operacje "rezerwowania" lub "znajdowania " będą stosowane w przypadku plików modyfikujących tylko kilka pojazdów. W przypadku (głównie) kompletnych zestawów operacje "sprawdź" i "zaznacz" są bardziej przydatne, ponieważ często nie jest możliwe ponowne mapowanie identyfikatorów całego zestawu, więc operacje te po prostu upewnią się, że wszystkie potrzebne identyfikatory są dostępne.

Dla każdej funkcji wiele operacji "znajdź" sprawdzi, czy bloki mają różne rozmiary, ale zawsze zwróci ten sam podstawowy numer wpisu, więc "znajdź" należy wywoływać tylko raz dla każdej funkcji.

Support for features

Obsługiwane są następujące funkcje i kombinacje funkcji/GRM-op:

Feature Reserve Find Check Mark Get Notes
00 (trains)
0
0
X
X
X
01 (road vehicles)
0
0
X
X
X
02 (ships)
0
0
X
X
X
03 (aircraft)
0
0
X
X
X
08 (general sprites)
X
X
*
*
-
0B (cargos)
-
-
X
X
X
see below

0 = niebezpieczne, ID`y mogą ulec zmianie podczas ładowania gry

X = bezpieczny w użyciu

* = bezpieczne, ale bezużyteczne

- = nie używać

W przypadku nowych ładunków, identyfikatory 00..1F odnoszą się do samych ID`ów ładunku (np. ID 0B jest dostępny w klimacie umiarkowanym, a 0C..1F we wszystkich klimatach), podczas gdy ID`y 20..3F odnoszą się do numeru bitu z podpory. 08 plus 20 (np. ID 2D, będący bitem 0D=fruit , jest dostępny we wszystkich klimatach oprócz tropikalnego). Musisz sprawdzić i oznaczyć oba typy ID`ów dla poprawnego działania.

Personal tools