美文网首页
底层 - 直读官方 - 新地图中的JPEG解析

底层 - 直读官方 - 新地图中的JPEG解析

作者: 1f872d1e3817 | 来源:发表于2018-08-30 11:11 被阅读0次

    大话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数据了。

    相关文章

      网友评论

          本文标题:底层 - 直读官方 - 新地图中的JPEG解析

          本文链接:https://www.haomeiwen.com/subject/tgrrwftx.html