位图 · bei.pm
此页面所描述的文件格式基于对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) | 类型 | 指明图像的类型。这似乎是一个位掩码:
|
0x0012 | uint(16) | 调色板 | 定义应使用的PRT文件中的调色板 |
PRT文件的数据结构指示了用于精灵的位图是如何构建的。这些位图作为单个组件,用于组合多个精灵的动画帧。
具体的图像数据则隐藏在游戏目录中的
op2_art.BMP文件中。
为什么这个位图文件具有一个(大部分情况下正确的)RIFF位图头目前尚不清楚。Outpost 2可能使用系统API加载图形,暂时采用该头并覆盖相应的可变字段。
像素数据在BMP文件中的位置是 Offset + uint32-Offset, 这个Offset可以在BMP文件的地址0x000A找到(RIFF位图数据偏移),并且是从左上角到右下角的逐行排列。
单色1bpp图形可以被绘制成: 颜色0表示完全透明,而颜色1表示半透明的黑色/灰色,因为单色图形通常用于动画中的车辆和建筑阴影。
因此,可以组合许多图形。