Format SBT: Różnice pomiędzy wersjami
(→Format pliku) |
|||
Linia 10: | Linia 10: | ||
== Format pliku == | == Format pliku == | ||
− | Na początku pliku znajduje się nagłówek | + | Na początku pliku znajduje się nagłówek. |
− | |||
{| class="wikitable" | {| class="wikitable" | ||
! Bajt | ! Bajt | ||
Linia 28: | Linia 27: | ||
| 8 (1x unsigned int) | | 8 (1x unsigned int) | ||
| Numer wersji formatu (wersji pliku?) | | Numer wersji formatu (wersji pliku?) | ||
+ | |- | ||
+ | | 64 | ||
+ | | 8 (1x unsigned int) | ||
+ | | Liczba sekcji | ||
|} | |} | ||
Wersja z 07:27, 31 maj 2022
Spis treści
Informacje ogólne
Plik SBT (Scenery Binary Terrain) jest plikiem binarnym zawierającym dane terenu. Dane te są podzielone na sekcje, co w zamyśle ma umożliwić szybsze wczytywanie scenerii i jej dynamiczne ładowanie bez potrzeby wczytywania całej scenerii do pamięci, jak to ma miejsce w przypadku plików tekstowych.
Plik tworzony jest podczas wczytywania scenariusza. Wszystkie trójkąty terenu oraz linie z plików tekstowych (SCN, SCM, INC) są w ramach sekcji łączone w większe grupy siatek i w tej formie zapisywane do pliku SBT. Późniejsze ładowanie tego samego scenariusza będzie już używało danych z pliku SBT, a co za tym idzie - wczytywanie będzie dużo szybsze.
Ponieważ nie istnieje sposób na rozpoznanie, które scenariusze korzystają z takiego samego terenu i otoczenia, plik SBT tworzony jest osobno dla każdego scenariusza.
Generowanie plików SBT można wyłączyć wpisem w eu07.ini
file.binary.terrain no
Format pliku
Na początku pliku znajduje się nagłówek.
Bajt | Rozmiar i typ danych | Opis |
---|---|---|
0 | 32 (4x string) | Nagłówek pliku - ciąg znaków "EU07" |
32 | 24 (3x string) | Nagłówek regionu - ciąg znaków "SBT" |
56 | 8 (1x unsigned int) | Numer wersji formatu (wersji pliku?) |
64 | 8 (1x unsigned int) | Liczba sekcji |
Sekcja (section)
Sekcje zapisane są jedna za drugą, a każda z nich zaczyna się od:
1. Indeksu sekcji (unsigned int, 4 bajty)
2. Rozmiaru sekcji (unsigned int, 4 bajty)
3. Ilości shape'ów w sekcji (unsigned int, 4 bajty)
Po tych danych zapisane są dane shape'ów. Za shape'ami zapisane są dane komórek.
Komórka (cell)
Komórki zapisane są jedna za drugą, a każda z nich zaczyna się od:
1. Centrum bounding boxa (3 liczby double)
2. Promienia bounding boxa (float, 4 bajty)
3. Ilości nieprzezroczystych shape'ów w komórce (unsigned int, 4 bajty)
Tutaj zapisane są dane shape'ów.
4. Ilości przezroczystych shape'ów w komórce (unsigned int, 4 bajty)
Tutaj zapisane są dane shape'ów.
5. Ilości lines w komórce (unsigned int, 4 bajty)
Tutaj zapisane są dane shape'ów