Plăci · bei.pm

Publicat pe 19.11.2015·Actualizat pe 13.02.2025·Română
Acest text a fost tradus automat prin OpenAI GPT-4o Mini.

Formatele de fișier descrise pe această pagină se bazează pe analiza tehnică a proprietății intelectuale de la Dynamix, Inc. și Sierra Entertainment.
Proprietatea intelectuală este astăzi parte a masei Activision Publishing, Inc. / Activision Blizzard, Inc. și este deținută în prezent de Microsoft Corp..

Informațiile au fost adunate prin Inginerie Inversă și Analiza Datelor în scopul arhivării și interoperabilității cu datele istorice.
Nu au fost folosite specificații proprietare sau confidențiale.

Jocul poate fi achiziționat în prezent de la gog.com ca descărcare.

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF caractere
0x0000 50 42 4d 50 -- -- -- -- -- -- -- -- -- -- -- -- P B M P . . . . . . . . . . . .
Offset Tip de date Denumire Explicație
0x0000 uint(32) Bite Magice
0x0004 uint(24) Lungimea blocului
0x0007 uint(8) Steaguri

Tile-urile sunt un format grafic bitmap specific pentru Outpost-2. Acestea se extind pe 13 seturi de tile-uri, numite "wells" (well0000.bmp până la well0012.bmp), ce se află în interiorul volumului maps.vol.

În cadrul seturilor de tile-uri / Wells se regăsesc următoarele:

Nume fișier Conținut
well0000.bmp O grafică de 32x32px, de culoare albastră - ideală pentru a testa dacă încărcătorul de imagini funcționează
well0001.bmp Conține rocă deschisă, lanțuri montane pe roca deschisă și numeroase variante de cratere de impact în rocă deschisă
well0002.bmp Conține 'Doodads' din rocă deschisă - adică elemente care pot fi plasate pentru a decora (sau intenționat ca structură, cum ar fi ziduri) pe roca deschisă, inclusiv vegetație
well0003.bmp Conține o structură crustată pe roca deschisă
well0004.bmp Conține rocă închisă, lanțuri montane pe roca închisă și numeroase variante de cratere de impact în rocă închisă
well0005.bmp Conține 'Doodads' din rocă închisă - adică elemente care pot fi plasate pentru a decora (sau intenționat ca structură, cum ar fi ziduri) pe roca închisă
well0006.bmp Conține o structură crustată pe roca închisă, precum și tranziții între roca deschisă și cea închisă
well0007.bmp Conține lavă, inclusiv 4-5 cadre de animație pentru fiecare
well0008.bmp Conține nisip și numeroase variante de cratere de impact în nisip
well0009.bmp Conține 'Doodads' din nisip - adică elemente care pot fi plasate pentru a decora (sau intenționat ca structură, cum ar fi ziduri) pe nisip
well0010.bmp Conține câte 48 de tranziții de la nisip la rocă deschisă și închisă
well0011.bmp Conține capetele polare ale hărții, cu rocă închisă ca substrat
well0012.bmp Conține capetele polare ale hărții, cu rocă deschisă ca substrat

Este recomandat pentru o implementare precisă să nu se redea în avans tile-urile pentru a le salva în cache, deoarece datele pentru ciclul zi/noapte trebuie să fie încă procesate - și ar genera foarte, foarte multe date.

Tile-urile sunt grafice 8bpp cu paletă indexată, fiecare având o rezoluție de 32x32 pixeli, aranjate unele peste altele. Într-un astfel de set de tile-uri pot exista însă mult mai multe

Containerul principal este format din 2 secțiuni: head și data.

Antetul Plăcilor

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF caractere
0x0000 68 65 61 64 -- -- -- -- -- -- -- -- -- -- -- -- h e a d . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Offset Tip de date Denumire Explicație
0x0000 uint(32) Bite Magice
0x0004 uint(24) Lungimea blocului
0x0007 uint(8) Steaguri
0x0008 uint(32) Versiune / Steaguri?

Aici ar putea fi vorba despre o indicație a versiunii formatului de fișier; în toate fișierele pe care le am, a fost prezentă valoarea 0x02

0x000c uint(32) Lățime (Rezoluție orizontală)

Indică cât de lată este fișierul imagine (în pixeli).

La toate puțurile din Outpost 2, aici se va aștepta valoarea 0x20 sau 32.

0x0010 uint(32) Înălțime (Rezoluție verticală)

Indică cât de înaltă este fișierul imagine (în pixeli).

La toate puțurile din Outpost 2, aici se va aștepta valoarea 0x20 sau 32.

0x0014 uint(32) Adâncimea culorii?

Semnificația acestui valor este necunoscută.

Deoarece acesta conține valoarea 8 în toate fișierele verificate, ar putea fi vorba despre o specificație a adâncimii de culoare.

0x0018 uint(32) Adâncimea culorii 2?

Semnificația acestei valori este necunoscută.

Este posibil să fie vorba despre o adâncime de culoare 'țintă'.

În urma acestor informații, va urma un fișier de paletă în format RIFF standardizat. Specificația exactă se găsește - deoarece paletele apar și în alte locuri - sub Palete.

Datele Plăcilor

Adr x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF caractere
0x0000 64 61 74 61 -- -- -- -- -- -- -- -- -- -- -- -- d a t a . . . . . . . . . . . .
Offset Tip de date Denumire Explicație
0x0000 uint(32) Bite Magice
0x0004 uint(24) Lungimea blocului
0x0007 uint(8) Steaguri

În cele din urmă, urmează datele pixelilor brute, de sus în stânga, pe rând, spre jos dreapta.
Valoarea datelor pentru graficele care sunt de obicei prezentate ca bitmap-uri 8bpp corespunde indexului culorii în paleta de culori.

Datele pixelilor încep din colțul din stânga sus și se termină în colțul din dreapta jos.

Engine-ul de joc desenează tile-urile *probabil* la cerere.
Asta pare să se datoreze, printre altele, ciclului zi-noapte, care cunoaște 32 de nuanțe ale tile-urilor individuale. Se pare că de fiecare dată se scade 'puțin' din valoarea de luminozitate. Valorile exacte nu au fost încă stabilite, lucrez pe baza calculelor

v *= (daylight / 48) + 0.25;

cu datele HSV ale pixelilor, unde daylight este o valoare de 0-31 iar v este o valoare între 0-1. În plus, trebuie să se țină cont că pe hartă există câte un margine de 16 tile-uri pe stânga și pe dreapta (acesta servește pentru spawn-ul invizibil al unităților).

În plus, ciclul zi-noapte pare să actualizeze doar o coloană a hărții pentru fiecare ciclu de joc.
Un ciclu zi-noapte accelerat arată astfel:

Vizualizarea ciclului zi-noapte