Glossário
Fonte: coreprime/kbot @ 0ab97bf · Editar no GitHub
Uma referência, comum a todos os formatos, do vocabulário recorrente da criação de mods para o Total Annihilation. Cada termo remete para a página onde é tratado com mais profundidade.
Objeto âncora (anchor object)
Uma peça de 3DO com um vértice e zero primitivas. É invisível
durante o jogo; serve de coordenada com nome para os comandos de script
COB (emit-sfx from <anchor>;).
Arquivo (archive)
Um ficheiro HPI / UFO / CCX / GP3. As quatro extensões têm o mesmo formato no disco e só diferem na ordem de carregamento.
ARGB4444 / ARGB1555
As duas codificações de píxeis de 16 bits usadas por um TAF
truecolor. O ARGB4444 reserva 4 bits a cada um dos canais alfa, vermelho,
verde e azul (16 níveis de alfa suave); o ARGB1555 junta um alfa de 1 bit
a 5 bits por cada canal RGB (um recorte nítido). O byte Format de um
fotograma (4 ou 5) indica qual.
Célula de atributos (attribute cell)
Uma célula de 16×16 píxeis num mapa TNT (ou SCT). Cada mosaico tem 32×32 px e contém, portanto, 4 células de atributos. As alturas, a colocação dos elementos e a possibilidade de passar e de construir são guardadas por célula de atributos.
Eixo (axis)
No COB e no 3DO, um ID numérico que identifica um dos três eixos de
rotação: 0 = X, 1 = Y, 2 = Z. Os opcodes COB de
MOVE/TURN/SPIN recebem o eixo como operando em linha. Nos ficheiros
3DO, o Y aponta para cima.
BOS
"Basic Object Script": a linguagem de código-fonte, parecida com C, dos
scripts de animação e de comportamento das unidades. Compila para
COB. Os modders escrevem-na à mão; kbot cob decompile
recupera-a a partir do COB.
COB
"Cobble": o bytecode baseado em pilha que o motor executa de facto. Veja COB / BOS.
Bloco de compressão (compression chunk)
Um bloco de 64 KiB ou menos, depois de descomprimido, dentro de um ficheiro HPI. Cada bloco tem o seu próprio cabeçalho SQSH, método de compressão (LZ77 / ZLib / nenhum), par de tamanhos e uma segunda passagem opcional de baralhamento por XOR.
Paleta incorporada (embedded palette)
Uma PAL acrescentada a um ficheiro PCX, logo a seguir
aos dados de píxeis RLE, precedida de um byte marcador 0x0C. 769 bytes
no total.
Elemento (feature)
Um objeto estático, que não é uma unidade, colocado num mapa
TNT: árvore, rocha, jazida de metal, fonte geotérmica, campo de
hidratação, etc. É definido num ficheiro features/**/*.tdf (veja
TDF) e o TNT refere-o pelo nome.
Vírgula fixa (fixed-point)
O sistema de coordenadas dos modelos 3DO. Cada coordenada int32
representa value / 65536.0 unidades do espaço do mundo. Assim,
0x00010000 = exatamente 1 unidade do mundo; 0x00018000 = 1.5 unidades
do mundo.
Área ocupada (footprint)
A caixa delimitadora de uma unidade ou de um elemento na grelha, expressa
em células de atributos de 16 píxeis (FootprintX × FootprintZ). O
motor usa-a para colocar construções e para o cálculo de caminhos.
Tick do jogo (game tick)
A unidade de tempo fundamental. 30 ticks por segundo. A maior parte dos campos de tempo do COB e do GAF usa ticks.
HPI
Arquivo "HAPI". Veja HPI / UFO / CCX / GP3.
Sobreposição de camadas (layering)
A forma como o motor combina vários arquivos HPI no arranque. Os
ficheiros de um arquivo carregado mais tarde escondem os ficheiros com o
mesmo caminho nos arquivos anteriores. A ordem de carregamento é (da
prioridade mais baixa para a mais alta): .hpi → .ufo → .ccx →
.gp3.
Tabela de consulta (lookup table)
Um ficheiro .alp, .lht ou .shd: linhas de 256 índices da paleta
(não RGB), uma coluna por cor de origem. Um .alp tem 65 536 bytes
(256 linhas, uma por cada cor com que se mistura); um .shd ou .lht tem
8192 bytes (32 linhas, uma por nível de sombra ou de luz). O motor procura
a cor atual na linha de que precisa, e o resultado é outro índice da
paleta, que pode ser desenhado pelo processo normal de 8 bpp. O jogo só usa
uma tabela quando o tamanho é exato; uma tabela em falta, ou com qualquer
outro tamanho, é reconstruída a partir da paleta. Veja PAL.
LZ77
A compressão de janela deslizante usada nos blocos HPI quando
CompMethod == 1. Janela de 4 KiB, correspondências de 2-17 bytes, bits de
marcação lidos a partir do LSB.
Rosa mágico (magic pink)
O índice 9 da paleta canónica do TA (#5454FC). As ferramentas de edição
usam-no como cor de preenchimento das zonas transparentes nos ficheiros
PCX/GAF de origem, e é a chave guardada em muitos fotogramas GAF, o que o
torna transparente nesses fotogramas. Fora disso, é uma cor como outra
qualquer. Veja Chave de transparência.
Nome do objeto (object name)
O nome base, em minúsculas, partilhado pelos ficheiros 3DO,
COB e PCX de uma unidade. Declara-se no FBI,
no campo Objectname. É diferente de UnitName, o identificador externo
usado pelas outras configurações.
OTA
"Online Total Annihilation": o ficheiro auxiliar de metadados de um mapa TNT. Texto simples no formato TDF (TDF). Contém o nome da missão, a descrição, o briefing para a IA, as posições iniciais e indicações sobre o ambiente.
Imagem com paleta (paletted image)
Um mapa de bits cujos valores de píxel são índices de 8 bits para uma PAL separada de 256 entradas, em vez de triplos RGB diretos. Todos os recursos visíveis incluídos no TA usam paleta: PCX, GAF, SCT, os píxeis dos mosaicos TNT e os minimapas incorporados. A exceção notável são as animações TAF truecolor do TA: Kingdoms.
Peça (piece)
Um subobjeto com nome dentro de um 3DO. Os scripts COB
manipulam as peças pelo nome (turn turret1 to y-axis [90] speed [60];).
Esquema (schema)
Uma configuração de jogo alternativa, com nome, dentro do ficheiro OTA que acompanha um TNT. Os diferentes esquemas contêm normalmente disposições diferentes das posições iniciais, para números diferentes de jogadores.
Nível do mar (sea level)
O campo SeaLevel do cabeçalho de um TNT. Qualquer célula de
atributos cujo byte Height seja inferior ao nível do mar é tratada
como submersa. Um mapa com SeaLevel == 0 não tem nada submerso; com
SeaLevel == 255, tem tudo submerso.
Secção (section)
Um ficheiro SCT. Os blocos de mosaicos reutilizáveis que o editor TAE da Cavedog juntava para construir os mapas TNT finais.
Máscara de sinais (signal mask)
Uma máscara de bits declarada num script COB
(set-signal-mask <n>) que determina que mensagens signal interrompem a
instância atual do script. Serve para cancelar de forma limpa as animações
Walk/Aim/Idle quando o estado muda.
Lado (side)
ARM ou CORE no TA; Aramon, Taros, Veruna ou Zhon no TA: Kingdoms. É
declarado para cada unidade no campo Side do FBI; também
determina com que paleta de lado uma animação GAF é renderizada
no TA: Kingdoms.
SQSH
O marcador (0x48535153 LE) no início de cada bloco comprimido de um
HPI. Uma referência bem-humorada ao facto de os blocos serem
dados "espremidos" (squashed).
Subfotograma (sub-frame)
Um fotograma GAF aninhado. Um único fotograma visível de uma animação pode ser a composição de vários subfotogramas copiados por ordem, cada um com o seu deslocamento de origem e os seus dados de píxeis.
TAF
Uma animação truecolor do TA: Kingdoms. Reutiliza a disposição do
contentor GAF, mas guarda píxeis
ARGB4444 / ARGB1555 de 16 bits em vez de índices da
paleta, pelo que traz a sua própria cor e o seu próprio alfa. A extensão
.taf é partilhada com ficheiros com paleta ao estilo GAF; o byte de
formato de cada fotograma distingue-os.
Tick
Veja tick do jogo.
Mosaico (tile)
Um bloco de 32×32 píxeis dos gráficos do mapa. A unidade de visualização
fundamental do TNT e do SCT. A grelha de mosaicos é
indexada em uint16, o que permite, em teoria, até 65 536 mosaicos únicos
por mapa.
Chave de transparência (transparency key)
O índice da paleta que um fotograma GAF guarda como transparente. O jogo não desenha os píxeis com esse valor num fotograma em bruto; num fotograma comprimido, os píxeis transparentes são as séries de salto, e os restantes píxeis são desenhados mesmo quando são iguais à chave. Não há um índice transparente para toda a paleta: o terreno, os minimapas, os fundos PCX e as texturas dos modelos desenham todos os índices, incluindo o índice 0 da paleta (preto). Os fotogramas TAF truecolor não têm chave: a transparência vem do canal alfa de cada píxel.
Truecolor
Um mapa de bits que guarda uma cor (e um alfa) por píxel, em vez de um índice de uma paleta. É a exceção na arte do TA, que de resto usa sempre paleta: as animações TAF do TA: Kingdoms usam píxeis ARGB4444 / ARGB1555 de 16 bits.
TSF
"TAF Source Format": a forma de texto legível, delimitada por chavetas, de
um TAF. O carregador da interface do TA: Kingdoms lê o .tsf
diretamente para os fundos dos menus; kbot taf decompile gera-o e
kbot taf compile volta a lê-lo. Veja TAF / TSF.
Sistema de ficheiros virtual (VFS)
A árvore combinada de ficheiros que o motor (e kbot mount / kbot mcp)
vê depois de sobrepor todos os arquivos da família HPI de uma
raiz de instalação. Permite referir um ficheiro como units/ARMCOM.fbi sem
se preocupar se está em totala1.hpi, em ccdata.ccx ou numa pasta
desempacotada.
Célula vazia (void cell)
Uma célula de atributos TNT com Feature == 0xFFFC. Marca
terreno intransponível (paredes de desfiladeiros, limites de águas
profundas) que não é em si um elemento, mas deve ser tratado como se lá
estivesse um.
Yardmap
Uma grelha ASCII de várias linhas num FBI que descreve as
restrições de cada célula da área ocupada por uma construção. Letras
comuns: o = terreno livre, c = fechado (construído), w = só água.