Plăci · bei.pm
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 |
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 |
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 |
0x0014 | uint(32) | Adâncimea culorii? | Semnificația acestui valor este necunoscută. Deoarece acesta conține valoarea |
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.
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: