RecolorSprites
en
EN
pl
PL

nfo

Contents

Wprowadzenie

Ponowne kolorowanie ikonek to pseudosprite używane do ponownego kolorowania innych ikonek, najczęściej do stosowania kolorów firmowych. Ponowny kolor sprite to po prostu ponowne mapowanie oryginalnej tabeli kolorów TTD.

Syntax

Ponowne kolorowanie 'sprite' ma następujący format:

<Sprite-number> * 257 00 <recolor-table>
Element Rozmiar Opis
<Sprite-number> dec Sekwencyjny numer 'sprite'
257 dec Całkowita liczba bajtów użytych w tej akcji, zawsze 257
00 B dosłowny (literal) 00
<recolor-table> 256*B Patrz poniżej

Description

00

Na pierwszy rzut oka łatwo pomylić zmiennokolorowego 'sprite' z działaniem 0, najczęściej w pociągach. Próba odczytania sprite'a odbarwiającego jako akcji 0 zwykle ujawni, że jest o wiele za dużo bajtów. Kolejną wskazówką jest to, że sprajniki o ponownym kolorze mają zawsze długość 257 bajtów.

Prawidłową metodą rozróżnienia sprite'ów od zera i akcji 0 jest zwrócenie uwagi, że sprite'y z ponownym kolorowaniem mogą pojawić się tylko w bloku Action5 lub ActionA, a akcja 0s może pojawić się tylko poza takim blokiem.

recolor-table

256-bajtowa tabela ponownego kolorowania. Bajt przy przesunięciu równym indeksowi koloru źródłowego określa kolor, który ma zostać narysowany.

Zauważ, że przesunięcia i bajty różnią się w zależności od tego, czy GRF jest ładowany do TTD DOS czy TTD Win. Jeśli utworzysz GRF, który zawiera sprite'y, może okazać się konieczne utrzymanie dwóch osobnych wersji, lub użyj Action7, który sprawdza zmienną 83, aby zabezpieczyć wprowadzającą akcję 5/A i sprite'y recolor.

Usage

Ponowne kolorowanie 'sprites' jest stosowane na jeden z dwóch sposobów.

Nieprzejrzysty

każdy piksel w ikonce jest sprawdzany w tabeli kolorów, a następnie kolor określony w tym przesunięciu jest rysowany na ekranie. Jeśli wynikowy kolor to 00 ("przezroczysty niebieski" ~transparent blue)), to jeśli bit sprite's compression ustawiony jest na nie , nic nie jest rysowane; w przeciwnym razie (tj. jeśli 'sprite' ma format danych fragmentów), rysowany jest rzeczywisty kolor 00 (czyli czarny).

Przezroczysty

Dla każdego piksela sprite, który nie jest przezroczysty, bieżący (ekranowy) kolor piksela w miejscu, w którym piksel sprite miałby zostać narysowany, jest sprawdzany w tabeli ponownego kolorowania, a następnie przerysowany w nowym kolorze. Jeśli wyszukiwanie ponownie koloru zwraca 00 ("przezroczysty niebieski"), wynikowy kolor jest w rzeczywistości czarny. Inne niż przezroczysty-niebieski/nieprzezroczysty-niebieski, rzeczywiste kolory pikseli w ikonce, która jest rysowana przezroczysto, są bez znaczenia.

Default recolour sprites

TTD definiuje już wiele przekolorowanych 'sprites' do różnych zastosowań, np. do półprzezroczystości szkła lub ponownego barwienia rurowych mostów, kolorów firmowych lub niektórych domów.

Sprite numer (dec) Sprite numer (hex) Opis
tłumaczenia wybranych wyróżnień
771 0x303 Pulsująca czerwona płytka jest rysowana, jeśli spróbujesz zbudować zły tunel lub podniesiesz/opuścisz ziemię, gdzie nie jest to możliwe
772 0x304 Sprawia, że ​​kwadrat jest czerwony. jest używany podczas usuwania szyn lub innych rzeczy
773 0x305 To rysuje niebieskawy kwadrat (na przykład obszary zlewni)
tłumaczenia na kolor firmy (kolory niebiesko-zielone są zastępowane)
775 0x307 company colour to dark blue
776 0x308 company colour to pale green
777 0x309 company colour to pink
778 0x30A company colour to yellow
779 0x30B company colour to red
780 0x30C company colour to light blue
781 0x30D company colour to green
782 0x30E company colour to dark green
783 0x30F company colour to blue
784 0x310 company colour to cream
785 0x311 company colour to mauve
786 0x312 company colour to purple
787 0x313 company colour to orange
788 0x314 company colour to brown
789 0x315 company colour to grey
790 0x316 company colour to white (ciemniejsze części są blue-ish)
tłumaczenie dla ikonek naziemnych infrastruktury
791 0x317 'czyste' tereny, dla kolei i dróg (przejazdy)
tłumaczenia dla koloru "brązowo-czerwonego" używanego przez niektóre budynki miejskie i mosty
795 0x31B structure to blue
796 0x31C structure to brownish (na przykład mosty wspornikowe)
797 0x31D structure to white
798 0x31E structure to red (e.g. bridges)
799 0x31F structure to green (e.g. bridges)
800 0x320 structure to concrete (e.g. suspension bridge)
801 0x321 structure to yellow (na przykład most wiszący + rurowy)
inne
802 0x322 efekt szkła
803 0x323 mapy do skali szarości (gazeta)
804 0x324 pojazd powypadkowy (szary)
1438 0x59E kościół czerwony
1439 0x59F church cream

W firmowym tłumaczeniu kolorów tłumaczenie na ciemnoniebieski (0x307) to tłumaczenie tożsamości, które zastępuje każdy kolor samym sobą. Możesz go użyć w przypadkach, gdy konieczne jest ponowne mapowanie, ale nie chcesz niczego zmieniać koloru.

Dual company colours

Obsługiwane przez OpenTTD 0.60.6 Obsługiwane przez TTDPatch 2.52.5 Możesz również użyć 'sprites' zmieniających kolor w dwóch firmach. Nie są one jednak domyślnymi 'sprites' TTD, a zatem nie mają ustalonych numerów 'sprites' . Możesz określić liczbę znaków dla pierwszego 'sprite' zmieniającego kolor na 2CC poprzez Patch Variable 11 . Następnie potrzebujesz Action 6 , aby wprowadzić potrzebne zmiany koloru do akcji w razie potrzeby.

Począwszy od numeru sprit ze zmiennej patcha 11, jest 256 'sprites' o zmienionym kolorze. Ich kolejność jest zgodna z domyślnymi kolorami firmy powyżej. Kolor drugiej firmy zmienia się co 16 'sprites' , więc dostępna jest każda kombinacja pierwszego i drugiego koloru:

Offset od pierwszego sprite (dec) Offset od pierwszego sprite (hex) Pierwszy kolor (zabarwienie 0xC6 do 0xCD) Drugi kolor (zabarwienie 0x50 to 0x57)
0 0x00 dark blue dark blue
1 0x01 pale green dark blue
: : : :
15 0x0F white dark blue
16 0x10 dark blue pale green
: : : :
31 0x1F white pale green
32 0x20 dark blue pink
: : : :
255 0xFF white white

Zauważysz w kodzie szesnastkowym, że niby przesunięcie odsunięcia reprezentuje pierwszy kolor firmy od 0 (ciemnoniebieski) do F (biały), a wysoki 'nibble' reprezentuje drugi kolor firmowy.