位图 · bei.pm

发布于 2015年11月19日·更新于 2025年02月13日·中文
此文本是通过OpenAI GPT-4o Mini 自动翻译的。

此页面所描述的文件格式基于对Dynamix, Inc.Sierra Entertainment知识产权的技术分析。
该知识产权现属于Activision Publishing, Inc. / Activision Blizzard, Inc.,目前由Microsoft Corp.持有。

这些信息是通过逆向工程数据分析收集的,目的是为了档案保存和与历史数据的互操作性。
没有使用任何专有或机密的规格。

该游戏目前可以在gog.com上以下载形式购买。

地址 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF 字符
0x0000 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
0x0010 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- . . . . . . . . . . . . . . . .
偏移量 数据类型 名称 解释
0x0000 uint(32) 对齐宽度

表示像素数据行的宽度(以字节为单位)- 因为这些行是对齐到4字节边界的。

因此,可以快速跳转到特定的图像行。

为什么这个值单独存储,尽管可以计算出来,这一点尚不清楚。
这可能是为了优化渲染代码。

0x0004 uint(32) 偏移

指定位图中第一行的偏移量

0x0008 uint(32) 高度

指定图像的高度(以像素为单位)

0x000c uint(32) 宽度

指定图像的宽度(以像素为单位)

0x0010 uint(16) 类型

指明图像的类型。这似乎是一个位掩码:

  • 0x04 被设置时表示这是一个 1bpp 图形。
  • 0x40 被设置时表示这是一个需要实现窗口化的图形。
0x0012 uint(16) 调色板

定义应使用的PRT文件中的调色板

PRT文件的数据结构指示了用于精灵的位图是如何构建的。这些位图作为单个组件,用于组合多个精灵的动画帧。

具体的图像数据则隐藏在游戏目录中的 op2_art.BMP文件中。
为什么这个位图文件具有一个(大部分情况下正确的)RIFF位图头目前尚不清楚。Outpost 2可能使用系统API加载图形,暂时采用该头并覆盖相应的可变字段。

像素数据在BMP文件中的位置是 Offset + uint32-Offset, 这个Offset可以在BMP文件的地址0x000A找到(RIFF位图数据偏移),并且是从左上角到右下角的逐行排列。

单色1bpp图形可以被绘制成: 颜色0表示完全透明,而颜色1表示半透明的黑色/灰色,因为单色图形通常用于动画中的车辆和建筑阴影。

因此,可以组合许多图形。

受保护的住宅模块 (普利茅斯)