Todas as páginas de formatos ↓
Tutoriais e referência

Glossário

Fonte: coreprime/kbot @ 0ab97bf · Editar no GitHub

Uma referência, comum a todos os formatos, do vocabulário que se repete na criação de mods para o Total Annihilation. Os termos têm links para a página em que são tratados com mais profundidade.


Objeto de ancoragem (anchor object)

Uma peça de 3DO com um vértice e nenhuma primitiva. Fica invisível durante o jogo. Serve como uma coordenada com nome para os comandos de script COB (emit-sfx from <anchor>;).

Arquivo compactado (archive)

Um arquivo 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 pixel de 16 bits usadas por um TAF truecolor. O ARGB4444 empacota 4 bits para cada um de alfa, vermelho, verde e azul (16 níveis de alfa suave). O ARGB1555 empacota 1 bit de alfa mais 5 bits para cada componente RGB (um recorte de bordas duras). O byte Format do quadro (4 ou 5) escolhe qual.

Célula de atributo (attribute cell)

Uma célula de 16×16 pixels de um mapa TNT (ou SCT). Cada bloco tem 32×32 px e, portanto, contém 4 células de atributo. As alturas, o posicionamento dos elementos e as regras de caminho e de construção são guardados por célula de atributo.

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 do COB para MOVE/TURN/SPIN recebem o eixo como operando embutido. Nos arquivos 3DO, o Y aponta para cima.

BOS

"Basic Object Script": a linguagem-fonte, parecida com C, dos scripts de animação e de comportamento das unidades. É compilada para COB. Escrita à mão pelos modders, e recuperada a partir do COB com kbot cob decompile.

COB

"Cobble": o bytecode baseado em pilha que o motor de fato executa. Veja COB / BOS.

Chunk de compressão (compression chunk)

Um bloco de no máximo 64 KiB depois de descomprimido, dentro de um arquivo HPI. Cada chunk tem o seu próprio cabeçalho SQSH, o método de compressão (LZ77 / ZLib / nenhum), um par de tamanhos e um embaralhamento XOR opcional numa segunda passada.

Paleta embutida (embedded palette)

Uma PAL acrescentada ao fim de um arquivo PCX, logo depois dos dados de pixels em RLE, precedida por um byte marcador 0x0C. 769 bytes no total.

Elemento (feature)

Um objeto estático, que não é uma unidade, posicionado num mapa TNT: árvore, rocha, depósito de metal, fonte geotérmica, campo de hidratação etc. É definido num arquivo features/**/*.tdf (veja TDF) e referenciado pelo nome no TNT.

Ponto fixo (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, e 0x00018000 = 1,5 unidade do mundo.

Área ocupada (footprint)

A caixa delimitadora de uma unidade ou de um elemento na grade, medida em células de atributo de 16 pixels (FootprintX × FootprintZ). O motor a usa no posicionamento de construções e no cálculo de caminhos.

Tick do jogo (game tick)

A unidade fundamental de tempo. 30 ticks por segundo. A maioria dos campos de tempo do COB e do GAF usa ticks.

HPI

Arquivo compactado "HAPI". Veja HPI / UFO / CCX / GP3.

Sobreposição em camadas (layering)

A forma como o motor combina vários arquivos compactados HPI na inicialização. Os arquivos de um arquivo compactado carregado depois encobrem os arquivos com o mesmo caminho nos arquivos compactados anteriores. A ordem de carregamento é (da menor para a maior prioridade): .hpi → .ufo → .ccx → .gp3.

Tabela de consulta (lookup table)

Um arquivo .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 cor parceira da mistura). Um .shd ou .lht tem 8.192 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 dela é exato. Uma tabela ausente, ou de qualquer outro tamanho, é reconstruída a partir da paleta. Veja PAL.

LZ77

A compressão por janela deslizante usada nos chunks do HPI quando CompMethod == 1. Janela de 4 KiB, correspondências de 2 a 17 bytes, bits de marcação a partir do menos significativo.

Rosa mágico (magic pink)

O índice 9 da paleta canônica do TA (#5454FC). As ferramentas de edição o usam como cor de preenchimento das regiões transparentes nos arquivos PCX/GAF de origem, e ele é a chave guardada de muitos quadros GAF, o que o torna transparente nesses quadros. Em qualquer outro lugar, é uma cor comum. Veja Chave de transparência.

Nome do objeto (object name)

O nome-base em minúsculas comum aos arquivos 3DO, COB e PCX de uma unidade. Declarado no FBI no campo Objectname. É diferente de UnitName, que é o identificador externo usado pelas outras configurações.

OTA

"Online Total Annihilation": o arquivo acompanhante de metadados de um mapa TNT. Texto simples no formato TDF (TDF). Traz o nome da missão, a descrição, as instruções para a IA, as posições iniciais e indicações sobre o ambiente.

Imagem com paleta (paletted image)

Um bitmap cujos valores de pixel são índices de 8 bits numa PAL separada de 256 entradas, em vez de trios RGB diretos. Todos os recursos visíveis distribuídos com o TA usam paleta: PCX, GAF, SCT, os pixels dos blocos do TNT e os minimapas embutidos. A exceção notável são as animações TAF truecolor do TA: Kingdoms.

Peça (piece)

Um subobjeto com nome num 3DO. Os scripts COB manipulam as peças pelo nome (turn turret1 to y-axis [90] speed [60];).

Esquema (schema)

Uma configuração alternativa de partida, com nome, dentro do arquivo OTA irmão de um TNT. Esquemas diferentes costumam ter disposições diferentes de posições iniciais para números diferentes de jogadores.

Nível do mar (sea level)

O campo SeaLevel do cabeçalho de um TNT. Toda célula de atributo cujo byte Height seja menor que o nível do mar é tratada como submersa. Um mapa com SeaLevel == 0 não tem nada debaixo d'água; com SeaLevel == 255, tudo fica debaixo d'água.

Seção (section)

Um arquivo SCT. Os pedaços de blocos reutilizáveis que o editor TAE da Cavedog juntava para montar 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 quais mensagens signal vão interromper a instância atual do script. Usada 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 por unidade no campo Side do FBI. No TA: Kingdoms, também define com qual paleta de lado uma animação GAF é renderizada.

SQSH

O marcador (0x48535153 LE) no início de cada chunk comprimido de um HPI. Uma referência bem-humorada ao fato de os chunks serem dados "espremidos" (squashed).

Subquadro (sub-frame)

Um quadro GAF aninhado. Um único quadro visível de animação pode ser a composição de vários subquadros copiados em ordem, cada um com o seu próprio deslocamento de origem e os seus dados de pixels.

TAF

Uma animação truecolor do TA: Kingdoms. Reaproveita a estrutura do contêiner GAF, mas guarda pixels de 16 bits ARGB4444 / ARGB1555 em vez de índices da paleta, por isso traz as suas próprias cores e o seu alfa. A extensão .taf é compartilhada com arquivos com paleta no estilo GAF: o byte de formato de cada quadro os distingue.

Tick

Veja tick do jogo.

Bloco (tile)

Um pedaço de 32×32 pixels dos gráficos de um mapa. A unidade fundamental de exibição do TNT e do SCT. A grade de blocos é indexada em uint16, o que permite, em teoria, até 65.536 blocos únicos por mapa.

Chave de transparência (transparency key)

O índice da paleta que um quadro GAF guarda como transparente. O jogo deixa sem desenhar os pixels com esse valor num quadro sem compressão. Num quadro comprimido, os pixels transparentes são os seus trechos pulados, e os outros pixels são desenhados mesmo quando são iguais à chave. Não existe um índice transparente para a paleta inteira: o terreno, os minimapas, os fundos em PCX e as texturas dos modelos desenham todos os índices, inclusive o índice 0 (preto). Os quadros TAF truecolor não têm chave: a transparência vem do canal alfa de cada pixel.

Truecolor

Um bitmap que guarda uma cor (e um alfa) por pixel, em vez de um índice numa paleta. É a exceção à arte do TA, que de resto usa paleta em tudo: as animações TAF do TA: Kingdoms usam pixels de 16 bits ARGB4444 / ARGB1555.

TSF

"TAF Source Format": a forma em texto legível, delimitada por chaves, de um TAF. O carregador da interface do TA: Kingdoms lê .tsf diretamente para os fundos dos menus. kbot taf decompile o gera, e kbot taf compile o lê de volta. Veja TAF / TSF.

Sistema de arquivos virtual (VFS)

A árvore mesclada de arquivos que o motor (e kbot mount / kbot mcp) enxerga depois de sobrepor em camadas todos os arquivos compactados da família HPI da raiz de uma instalação. Permite referenciar um arquivo como units/ARMCOM.fbi sem se preocupar se ele está em totala1.hpi, em ccdata.ccx ou numa pasta desempacotada.

Célula de vazio (void cell)

Uma célula de atributo de 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 houvesse um ali.

Yardmap

Uma grade 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.