Contents |
Wprowadzenie
0.6 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 1.2 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.