Piastrelle · bei.pm

Pubblicato il 19/11/2015·Aggiornato il 13/02/2025·Italiano
Questo testo è stato tradotto automaticamente tramite OpenAI GPT-4o Mini.

I formati di file descritti in questa pagina si basano sull'analisi tecnica della proprietà intellettuale di Dynamix, Inc. e Sierra Entertainment.
La proprietà intellettuale è attualmente parte del patrimonio di Activision Publishing, Inc. / Activision Blizzard, Inc. ed è attualmente di proprietà di Microsoft Corp..

Le informazioni sono state raccolte tramite Reverse Engineering e analisi dei dati a scopo di archiviazione e interoperabilità con dati storici.
Non sono state utilizzate specifiche proprietarie o riservate.

Il gioco è attualmente disponibile per l'acquisto come download su gog.com.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF caratteri
0x0000 50 42 4d 50 -- -- -- -- -- -- -- -- -- -- -- -- P B M P . . . . . . . . . . . .
Offset Tipo di dato Nome Spiegazione
0x0000 uint(32) Byte Magici
0x0004 uint(24) Lunghezza del blocco
0x0007 uint(8) Bandiere

I tiles sono un formato grafico bitmap specifico per Outpost-2. Si estendono su 13 tileset, chiamati "wells" (well0000.bmp fino a well0012.bmp), che si trovano all'interno del volume maps.vol.

I tileset / Wells contengono quanto segue:

Nome file Contenuto
well0000.bmp Un'immagine blu di 32x32px - ideale per testare se il proprio caricatore di immagini funziona
well0001.bmp Contiene rocce chiare, catene montuose su rocce chiare e innumerevoli varianti di crateri da impatto su rocce chiare
well0002.bmp Contiene 'Doodads' di rocce chiare - elementi che possono essere posizionati per decorare (o intenzionalmente come struttura, come ad esempio muri) su rocce chiare, compresa la vegetazione
well0003.bmp Contiene una struttura a crosta su rocce chiare
well0004.bmp Contiene rocce scure, catene montuose su rocce scure e innumerevoli varianti di crateri da impatto su rocce scure
well0005.bmp Contiene 'Doodads' di rocce scure - elementi che possono essere posizionati per decorare (o intenzionalmente come struttura, come ad esempio muri) su rocce scure
well0006.bmp Contiene una struttura a crosta su rocce scure, così come transizioni tra rocce chiare e scure
well0007.bmp Contiene lava, inclusi 4-5 frame di animazione della stessa
well0008.bmp Contiene sabbia e innumerevoli varianti di crateri da impatto nella sabbia
well0009.bmp Contiene 'Doodads' di sabbia - elementi che possono essere posizionati per decorare (o intenzionalmente come struttura, come ad esempio muri) sulla sabbia
well0010.bmp Contiene 48 transizioni da sabbia a rocce chiare e scure
well0011.bmp Contiene le calotte polari della mappa, con rocce scure come sottostrato
well0012.bmp Contiene le calotte polari della mappa, con rocce chiare come sottostrato

È consigliabile per una realizzazione accurata non rendere in anticipo i tiles per metterli in cache, poiché i dati per il ciclo giorno/notte devono ancora essere elaborati - e ci sarebbero moltissimi dati.

I tiles sono grafica 8bpp con palette indicizzata, ciascuno con risoluzione 32x32 pixel, disposti tra di loro. In un tileset così creato, però, possono esserci molti più

Il contenitore principale è composto da 2 sezioni: head e data.

Intestazione delle Piastrelle

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF caratteri
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Tipo di dato Nome Spiegazione
0x0000 uint(32) Byte Magici
0x0004 uint(24) Lunghezza del blocco
0x0007 uint(8) Bandiere
0x0008 uint(32) Versione / Bandierine?

Potrebbe trattarsi di un'indicazione della versione del formato del file; in tutti i file a mia disposizione era presente il valore 0x02

0x000c uint(32) Larghezza (Risoluzione Orizzontale)

Indica quanto è larga la file immagine (in pixel).

Per tutti i pozzi di Outpost 2, qui si aspetterà il valore 0x20 o 32.

0x0010 uint(32) Altezza (Risoluzione verticale)

Indica l'altezza del file immagine (in pixel).

In tutti i pozzi di Outpost 2, qui ci si aspetta il valore 0x20 o 32.

0x0014 uint(32) Profondità del colore?

Il significato di questo valore è sconosciuto.

Poiché in tutti i file esaminati è presente il valore 8, potrebbe trattarsi di un'indicazione della profondità del colore.

0x0018 uint(32) Profondità di colore 2?

Il significato di questo valore è sconosciuto.

Potrebbe trattarsi di una profondità di colore 'target'.

Secondo queste indicazioni, seguirà un file di palette in formato RIFF standardizzato. La specifica esatta si trova - poiché le palette compaiono anche altrove - sotto Palette.

Dati delle piastrelle

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF caratteri
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Offset Tipo di dato Nome Spiegazione
0x0000 uint(32) Byte Magici
0x0004 uint(24) Lunghezza del blocco
0x0007 uint(8) Bandiere

Infine, seguono i dati dei pixel puri, riga per riga da sinistra in alto a destra in basso.
Il valore dei dati per le grafiche generalmente presenti come bitmap a 8bpp corrisponde all'indice del colore nella tavolozza.

I dati dei pixel iniziano in alto a sinistra e terminano in basso a destra.

Il motore di gioco disegna i tiles *probabilmente* su richiesta.
Questo sembra essere dovuto, tra l'altro, al ciclo giorno-notte che prevede 32 gradazioni di singoli tiles. Apparentemente, viene sottratto 'un po'' dal valore di luminosità. Valori precisi non sono ancora stati determinati, sto lavorando sulla base di calcolo

v *= (daylight / 48) + 0.25;

con i dati HSV dei pixel, dove daylight è un valore da 0-31 e v è un valore compreso tra 0-1. Inoltre, è da considerare che sulla mappa esiste un margine di 16 tiles a sinistra e a destra (che serve per la generazione invisibile delle unità).

In aggiunta, sembra che il ciclo giorno-notte aggiorni solo una colonna della mappa per ogni ciclo di gioco.
Un ciclo giorno-notte accelerato appare quindi come segue:

Visualizzazione del ciclo giorno-notte