大话2新地图放在newscene下面
以下是wangdali对新地图格式的整理,我自己也修改了一部分
***********************************************************************
Map File New Format
Dali Wang <wdl@sina.com>
2004-05-09 起稿 @Changchun
2006-02-16 整理 @Haikou
2006-02-20 整理 @Haikou
======================= MAP HEAD =============================
4字节 0.1M (M1.0) 0x302E314D
4字节 地图的宽度
4字节 地图的高度
4*n字节 地图单元的引索 n=地图的宽度/640*2 * 地图高度/480*2
==============================================================
===================MASK==============================
4字节 未知数据,包括这4字节,可跳过
4字节 mask数量n
接下来是 n * 4字节 MASK索引
只需要知道这么多,有了索引,跳到对应的位置读取mask就好了
==============================================================
======================= Unit Data ============================
4字节 地图单元引索的开始位置。
n*4字节 n为上面的值,n为0时不存在。
4字节 GEPJ (JPEG)
4字节 大小
n字节 数据
4字节 LLEC (CELL)
4字节 大小
n字节 数据
4字节 BRIG (GIRB)
4字节 大小
n字节 数据
4字节 结束单元(0x00 0x00 0x00 0x00)。
==============================================================
0.1M 新地图文件头
Index 数据块引索
Unknown n字节,未知用途(暂称为HEAD)
GEPJ(JPEG) 图象数据
LLEC(CELL) 地图规则,一字节代表一个游戏坐标
GIRB(BRIG) 光亮规则
:
:
:
GEPJ(JPEG) 图象数据
LLEC(CELL) 地图规则,一字节代表一个游戏坐标
GIRB(BRIG) 光亮规则
***********************************************************************
新地图的JPEG比较简单。每一个地图单元UNIT中,都保存了“几乎”完整的普通JPEG数据,不想旧地图head 和 body分开。
但是这部分的JPEG数据也需要特殊的处理
简单来说就是把JPEG数据中的FFDA数据段的长度由00 09改到00 0C,并在FFDA段的最后面加上00 3F 00。
然后开始扫描直到FFD9,把这中间所有的FF,都改为FF 00。这样处理后,就是可直接读取的JPEG数据了。
网友评论