Azulejos · bei.pm

Publicado em 19/11/2015·Atualizado em 13/02/2025·Português
Este texto foi traduzido automaticamente pelo OpenAI GPT-4o Mini.

Os formatos de arquivo descritos nesta página são baseados na análise técnica da propriedade intelectual de Dynamix, Inc. e Sierra Entertainment.
A propriedade intelectual faz parte da massa da Activision Publishing, Inc. / Activision Blizzard, Inc. e atualmente é de propriedade da Microsoft Corp..

As informações foram coletadas através de Engenharia Reversa e Análise de Dados para fins de arquivamento e interoperabilidade com dados históricos.
Nenhuma especificação proprietária ou confidencial foi utilizada.

O jogo pode ser adquirido atualmente como download em gog.com.

Endereço 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 . . . . . . . . . . . .
Deslocamento Tipo de dado Designação Explicação
0x0000 uint(32) Bytes Mágicos
0x0004 uint(24) Comprimento do bloco
0x0007 uint(8) Bandeiras

Os Tiles são um formato de gráfico bitmap específico do Outpost-2. Eles se estendem por 13 conjuntos de tiles, chamados de "wells" (well0000.bmp até well0012.bmp), que estão dentro do volume maps.vol.

Os conjuntos de tiles / wells contêm o seguinte:

Nome do arquivo Conteúdo
well0000.bmp Uma imagem azul de 32x32px - ideal para testar se o carregador de imagens está funcionando
well0001.bmp Contém rochas claras, cadeias de montanhas sobre rochas claras e inúmeras variantes de crateras de impacto em rochas claras
well0002.bmp Contém 'Doodads' de rochas claras - ou seja, elementos que podem ser colocados para decorar (ou intencionalmente como estrutura, como muros) em rochas claras, incluindo vegetação
well0003.bmp Contém uma estrutura semelhante a crosta em rochas claras
well0004.bmp Contém rochas escuras, cadeias de montanhas sobre rochas escuras e inúmeras variantes de crateras de impacto em rochas escuras
well0005.bmp Contém 'Doodads' de rochas escuras - ou seja, elementos que podem ser colocados para decorar (ou intencionalmente como estrutura, como muros) em rochas escuras
well0006.bmp Contém uma estrutura semelhante a crosta em rochas escuras, assim como transições entre rochas claras e escuras
well0007.bmp Contém lava, incluindo 4-5 quadros de animação da mesma
well0008.bmp Contém areia e inúmeras variantes de crateras de impacto em areia
well0009.bmp Contém 'Doodads' de areia - ou seja, elementos que podem ser colocados para decorar (ou intencionalmente como estrutura, como muros) em areia
well0010.bmp Contém 48 transições de areia para rochas claras e escuras
well0011.bmp Contém as calotas polares do mapa, com rochas escuras como fundo
well0012.bmp Contém as calotas polares do mapa, com rochas claras como fundo

É altamente recomendável, para uma implementação precisa, não renderizar os tiles antecipadamente para que possam ser armazenados em cache, pois os dados para o ciclo dia/noite ainda precisam ser processados - e haveria uma quantidade muito grande de dados.

Os tiles são gráficos 8bpp com paleta indexada, cada um com resolução de 32x32 pixels, dispostos entre si. Em um tileset assim formado, no entanto, pode haver muito mais.

O contêiner principal é composto por 2 seções: head e data.

Cabeçalho dos Azulejos

Endereço 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 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
Deslocamento Tipo de dado Designação Explicação
0x0000 uint(32) Bytes Mágicos
0x0004 uint(24) Comprimento do bloco
0x0007 uint(8) Bandeiras
0x0008 uint(32) Versão / Bandeiras?

Isso poderia ser uma indicação da versão do formato de arquivo; em todos os arquivos que tenho, o valor aqui era 0x02

0x000c uint(32) Largura (Resolução Horizontal)

Indica a largura do arquivo de imagem (em pixels).

Para todos os poços do Outpost 2, o valor esperado aqui será 0x20 ou 32.

0x0010 uint(32) Altura (Resolução Vertical)

Indica a altura do arquivo de imagem (em pixels).

Para todos os poços do Outpost 2, aqui o valor 0x20 ou 32 deve ser esperado.

0x0014 uint(32) Profundidade de cor?

A importância deste valor é desconhecida.

Como ele contém o valor 8 em todos os arquivos verificados, pode ser uma indicação de profundidade de cor.

0x0018 uint(32) Profundidade de cor 2?

A importância deste valor é desconhecida.

Pode ser uma profundidade de cor 'destino'.

Após essas informações, haverá ainda um arquivo de paleta disponível no formato RIFF padronizado. A especificação exata pode ser encontrada - uma vez que as paletas também aparecem em outros lugares - em Paletas.

Dados dos Azulejos

Endereço 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 . . . . . . . . . . . .
Deslocamento Tipo de dado Designação Explicação
0x0000 uint(32) Bytes Mágicos
0x0004 uint(24) Comprimento do bloco
0x0007 uint(8) Bandeiras

Finalmente, seguem os dados de pixel brutos, da esquerda para cima, linha por linha, até a parte inferior direita.
O valor dos dados nas gráficos, que geralmente estão na forma de bitmaps 8bpp, corresponde ao índice da cor na paleta de cores.

Dados de pixel começam no canto superior esquerdo e terminam no canto inferior direito.

A engine de jogo provavelmente desenha os tiles *sob demanda*.
Isso parece ser devido ao ciclo dia-noite, que conhece 32 graduações de tiles individuais. Aparentemente, o valor de luminosidade é diminuído 'um pouco' a cada vez. Valores exatos ainda não foram determinados, estou trabalhando com a base de cálculo

v *= (daylight / 48) + 0.25;

usando os dados HSV dos pixels, onde daylight é um valor de 0-31 e v é um valor entre 0-1. Além disso, é importante considerar que no mapa ainda existem bordas de 16 tiles à esquerda e à direita (que servem para o aparecimento invisível de unidades).

Além disso, o ciclo dia-noite parece atualizar apenas uma coluna do mapa a cada ciclo de jogo.
Um ciclo dia-noite acelerado se parece com o seguinte:

Visualização do ciclo dia-noite