Action12
en
EN
pl
PL

nfo

Contents

Wprowadzenie

Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.5 (2.0.1 alpha 73)2.5 Ta akcja umożliwia ładowanie i definiowanie glifów dla dowolnego Unicode znak w BMP (Basic Multilingual Plane), tj. do U+FFFF .

Note: Jeśli załadowany zostanie jakikolwiek plik .grf zawierający akcję 12 (nawet jeśli jest nieaktywny), TTDPatch przechodzi w tryb UTF-8. Zmienia to sposób przetwarzania wprowadzania znaków i sposób przechowywania niestandardowych ciągów w grze (są one konwertowane na kodowanie UTF-8). Nie można temu zapobiec, a ze względu na możliwe błędy w trybie UTF-8 zaleca się umieszczanie wszystkich glifów czcionek w osobnych plikach .grf, aby nie były ładowane w przypadku problemów.

Format

Dane wyglądają następująco:

<sprite-number> * <length> 12 <num-def> (<font> <num-char> <base-char>){n}
Element Rozmiar Opis
<sprite-number> dec Sekwencyjny numer 'sprite'
<length> dec Łączna liczba bajtów w akcji
12 B Action 12
num-def B Liczba definicji
font B Czcionka, dla której mają być dostarczane glify (glyphs)
num-char B Liczba kolejnych glifów
base-char W Pierwszy znak Unicode, dla którego mają być dostarczane glify

Po akcji 12 muszą być prawdziwymi 'sprites' dla wszystkich glifów, tyle samo 'sprites' , ile wszystkich <num-char> dodanych.

'Sprites' glifów mogą używać tylko kolorów 00 (przezroczysty), 01 (pierwszy plan) i 02 (cień). 'Sprite', który używa koloru cienia, NIE MOŻE używać porcjowanego (chunked) formatu danych.

Opis

sprite-number

Aktualny numer 'sprite'.

length

Całkowita liczba bajtów w tym działaniu 12.

num-def

Określa liczbę następujących definicji, z których każda ma <font>, <num-char> i <base-char>.

font

Czcionka do zdefiniowania glifów. Wartość może wynosić 0 dla czcionki proporcjonalnej normalnego rozmiaru, 1 dla czcionki proporcjonalnej małego rozmiaru, 2 dla czcionki proporcjonalnej dużego rozmiaru lub Obsługiwane przez OpenTTD 1.2 (23274)1.2 Nieobsługiwane przez TTDPatch 3 dla nieproporcjonalnego rozmiaru normalnego czcionka.

num-char

Liczba znaków w zakresie.

base-char

Pierwszy znak Unicode w zakresie, który udostępnia glify.  Może to być dowolny znak Unicode w BMP.

Zauważ, że wszystkie znaki definicji (tj. <font> <num-char> <base-char> triplet) muszą mieścić się w "bloku" (block) 128 znaków, tzn. Nie można zdefiniować znaków U+00E0..U+011F z jedną definicją; zamiast tego musisz podzielić go na U+00E0..U+00FF i U+0100..U+011F, ponieważ są to dwa różne bloki.

Przykład

583 * 10 12 02 00 08 F8 00 00 0C 00 01
Bajt Znaczenie
583 <sprite-number>
10 <length> akcji w bajtach; start liczenia od 12 (<action>)
12 <action>: ustawia tego pseudo-sprite, aby działał jako akcja 12
02 <num-def>: definiujemy dwa zakresy znaków
00 <font>: pierwszy zakres, definiujący czcionkę 0 (normalny rozmiar)
08 <num-char>: zdefiniowanie 8 znaków w rzędzie
F8 00 <base-char>: 'znak' U+00F8 jest pierwszym znakiem
00 <font>: drugi zakres, również definiujący czcionkę 0 (normalny rozmiar)
0C <num-char>: zdefiniowanie kolejnych 12 znaków
00 01 <base-char>: znak U+0100 to pierwszy znak

Dlatego działanie 12 określa glify znaków Unicode U+00F8..U+010B. Są one podzielone na dwie definicje, ponieważ definicja nie może przekroczyć granicy bloku.

Po tej akcji 12 śledzi 20 prawdziwych 'sprites' zawierających glify dla powyższych postaci.