Glossario
Un riferimento trasversale a tutti i formati per il vocabolario ricorrente del modding di Total Annihilation. Ogni termine rimanda alla pagina in cui è trattato più a fondo.
Oggetto di ancoraggio (anchor object)
Un pezzo di un 3DO con un vertice e zero primitive. È invisibile
durante il gioco; serve da coordinata con nome per i comandi degli script
COB (emit-sfx from <anchor>;).
Archivio (archive)
Un file HPI / UFO / CCX / GP3. Le quattro estensioni indicano lo stesso formato su disco e differiscono solo per l'ordine di caricamento.
ARGB4444 / ARGB1555
Le due codifiche di pixel a 16 bit usate da un TAF truecolor.
ARGB4444 impacchetta 4 bit ciascuno di alfa, rosso, verde e blu (16 livelli
di alfa sfumato); ARGB1555 impacchetta un alfa a 1 bit più 5 bit ciascuno
di RGB (un ritaglio netto). Il byte Format di un frame (4 o 5) sceglie
quale delle due.
Cella degli attributi (attribute cell)
Una cella di 16×16 pixel in una mappa TNT (o SCT). Ogni tile è di 32×32 px e contiene quindi 4 celle degli attributi. Altezze, posizionamenti degli elementi e percorribilità/edificabilità sono memorizzati per cella degli attributi.
Asse (axis)
Nel contesto di COB e 3DO, un ID numerico che identifica uno dei tre assi
di rotazione: 0 = X, 1 = Y, 2 = Z. Gli opcode COB per
MOVE/TURN/SPIN ricevono l'asse come operando inline. Nei file 3DO
l'asse Y è quello verso l'alto.
BOS
"Basic Object Script": il linguaggio sorgente in stile C per gli script di
animazione e comportamento delle unità. Si compila in COB. Lo
scrivono a mano i modder; kbot cob decompile lo ricava dai COB.
COB
"Cobble": il bytecode basato su stack che il motore esegue davvero. Vedi COB / BOS.
Chunk di compressione (compression chunk)
Un blocco, di 64 KiB o meno una volta decompresso, all'interno di un file HPI. Ogni chunk ha la propria intestazione SQSH, il proprio metodo di compressione (LZ77 / ZLib / nessuno), una coppia di dimensioni e un eventuale secondo passaggio di rimescolamento XOR.
Palette incorporata (embedded palette)
Una PAL accodata a un file PCX, subito dopo i dati dei
pixel in RLE, preceduta da un byte marcatore 0x0C. 769 byte in tutto.
Elemento (feature)
Un oggetto statico, che non è un'unità, piazzato su una mappa
TNT: albero, roccia, giacimento di metallo, sfiatatoio
geotermico, campo d'idratazione, ecc. È definito in un file
features/**/*.tdf (vedi TDF) e richiamato per nome dal TNT.
Virgola fissa (fixed-point)
Il sistema di coordinate dei modelli 3DO. Ogni coordinata int32
rappresenta value / 65536.0 unità dello spazio del mondo. Quindi
0x00010000 = esattamente 1 unità del mondo; 0x00018000 = 1,5 unità del
mondo.
Ingombro (footprint)
Il riquadro di delimitazione sulla griglia di un'unità o di un elemento,
espresso in celle degli attributi da 16 pixel (FootprintX ×
FootprintZ). Il motore lo usa per il posizionamento delle costruzioni e
per il pathfinding.
Tick di gioco (game tick)
L'unità di tempo fondamentale. 30 tick al secondo. La maggior parte dei campi di temporizzazione in COB e GAF usa i tick.
HPI
Archivio "HAPI". Vedi HPI / UFO / CCX / GP3.
Stratificazione (layering)
Il modo in cui il motore combina più archivi HPI all'avvio. I file
di un archivio caricato più tardi oscurano i file con lo stesso percorso
negli archivi precedenti. L'ordine di caricamento è (dalla priorità più
bassa alla più alta): .hpi → .ufo → .ccx → .gp3.
Tabella di ricerca (lookup table)
Un file .alp, .lht o .shd: righe di 256 indici della palette (non
RGB), una colonna per ogni colore di partenza. Un .alp è di 65.536 byte
(256 righe, una per partner di fusione); un .shd o un .lht è di 8.192
byte (32 righe, una per livello di ombra o di luce). Il motore cerca il
colore corrente nella riga che gli serve, e il risultato è un altro indice
della palette che si può disegnare con la normale pipeline a 8 bpp. Il
gioco usa una tabella solo quando la sua dimensione è esatta; una tabella
mancante, o di qualsiasi altra dimensione, viene ricostruita dalla palette.
Vedi PAL.
LZ77
La compressione a finestra scorrevole usata nei chunk HPI quando
CompMethod == 1. Finestra di 4 KiB, corrispondenze da 2 a 17 byte, bit di
tag LSB-first.
Rosa magico (magic pink)
L'indice 9 della palette canonica di TA (#5454FC). Usato dagli strumenti
di editing come colore di riempimento per le regioni trasparenti nei file
PCX/GAF di partenza, ed è la chiave memorizzata di molti frame GAF, il che
lo rende trasparente in quei frame. Altrove è un colore normale. Vedi
Chiave di trasparenza.
Nome dell'oggetto (object name)
Il nome di base in minuscolo condiviso dai file 3DO,
COB e PCX di un'unità. È dichiarato nell'FBI
come campo Objectname. Si distingue da UnitName, che è l'identificatore
esterno usato dalle altre configurazioni.
OTA
"Online Total Annihilation": il file di metadati che accompagna una mappa TNT. Testo semplice in formato TDF (TDF). Contiene nome della missione, descrizione, istruzioni per l'IA, posizioni di partenza, indicazioni sull'ambiente.
Immagine con palette (paletted image)
Una bitmap i cui valori dei pixel sono indici a 8 bit in una PAL separata di 256 voci, invece di terne RGB dirette. Ogni asset visibile distribuito con TA usa una palette: PCX, GAF, SCT, i pixel dei tile dei TNT e le minimappe incorporate. L'eccezione degna di nota sono le animazioni TAF truecolor di TA: Kingdoms.
Pezzo (piece)
Un sotto-oggetto con nome in un 3DO. Gli script COB
manipolano i pezzi per nome (turn turret1 to y-axis [90] speed [60];).
Schema
Una configurazione di partita alternativa, con un nome, all'interno del file OTA gemello di un TNT. Schemi diversi di solito ospitano disposizioni delle posizioni di partenza diverse per numeri di giocatori diversi.
Livello del mare (sea level)
Il campo SeaLevel nell'intestazione di un TNT. Qualsiasi cella
degli attributi il cui byte Height è minore del livello del mare è
considerata sott'acqua. Una mappa con SeaLevel == 0 non ha niente
sott'acqua; con SeaLevel == 255 è tutto sott'acqua.
Sezione (section)
Un file SCT. I blocchi di tile riutilizzabili che l'editor TAE di Cavedog cuciva insieme per costruire le mappe TNT finali.
Maschera dei segnali (signal mask)
Una maschera di bit dichiarata in uno script COB
(set-signal-mask <n>) che determina quali messaggi signal
interromperanno per prelazione l'istanza corrente dello script. Si usa per
annullare in modo pulito le animazioni Walk/Aim/Idle quando lo stato
cambia.
Fazione (side)
ARM o CORE in TA; Aramon, Taros, Veruna o Zhon in TA: Kingdoms. Si dichiara
per ogni unità nel campo Side dell'FBI; in TA: Kingdoms conta
anche per scegliere la palette di fazione con cui verrà disegnata
un'animazione GAF.
SQSH
Il marcatore (0x48535153 LE) all'inizio di ogni chunk compresso in un
HPI. Un riferimento scherzoso al fatto che i chunk sono dati
"schiacciati" (squashed).
Sotto-frame (sub-frame)
Un frame GAF annidato. Un singolo frame visibile dell'animazione può essere la composizione di più sotto-frame copiati sullo schermo (blit) in ordine, ciascuno con il proprio offset di origine e i propri dati dei pixel.
TAF
Un'animazione truecolor di TA: Kingdoms. Riusa la struttura del
contenitore GAF ma memorizza pixel
ARGB4444 / ARGB1555 a 16 bit invece di indici della
palette, quindi porta con sé i propri colori e il proprio alfa.
L'estensione .taf è condivisa con i file con palette in stile GAF: a
distinguerli è il byte del formato di ciascun frame.
Tick
Vedi tick di gioco.
Tile
Un blocco di 32×32 pixel della grafica di una mappa. L'unità di
visualizzazione fondamentale per TNT e SCT. La griglia
dei tile è indicizzata con uint16, il che in teoria permette fino a
65.536 tile unici per mappa.
Chiave di trasparenza (transparency key)
L'indice della palette che un frame GAF indica come trasparente. Il gioco non disegna i pixel di quel valore in un frame grezzo; in un frame compresso i pixel trasparenti sono i suoi run saltati, e gli altri pixel vengono disegnati anche quando sono uguali alla chiave. Non esiste un indice trasparente valido per tutta la palette: terreno, minimappe, fondali PCX e texture dei modelli disegnano ogni indice, compreso l'indice 0 della palette (nero). I frame TAF truecolor non hanno una chiave: la trasparenza viene invece dal canale alfa di ogni pixel.
Truecolor
Una bitmap che memorizza un colore (e un alfa) per pixel invece di un indice in una palette. È l'eccezione alla grafica di TA, altrimenti universalmente con palette: le animazioni TAF di TA: Kingdoms usano pixel ARGB4444 / ARGB1555 a 16 bit.
TSF
"TAF Source Format": la forma testuale leggibile, delimitata da graffe, di
un TAF. Il caricatore dell'interfaccia di TA: Kingdoms legge i
.tsf direttamente per gli sfondi dei menu; kbot taf decompile lo
produce e kbot taf compile lo rilegge. Vedi TAF / TSF.
Filesystem virtuale (VFS)
L'albero unificato di file che il motore (e kbot mount / kbot mcp) vede
dopo aver sovrapposto tutti gli archivi della famiglia HPI
presenti nella radice di un'installazione. Permette di riferirsi a un file
come units/ARMCOM.fbi senza preoccuparsi se si trovi in totala1.hpi, in
ccdata.ccx o in una directory appiattita.
Cella vuota (void cell)
Una cella degli attributi di un TNT con Feature == 0xFFFC.
Indica un terreno impraticabile (pareti di canyon, confini di acque
profonde) che non è di per sé un elemento, ma va trattato come se ce ne
fosse uno.
Yardmap
Una griglia ASCII su più righe in un FBI che descrive le
restrizioni di ogni cella dell'ingombro di un edificio. Le lettere comuni:
o = terreno aperto, c = chiuso (occupato dalla costruzione), w = solo
acqua.