站位编辑,过段时间再写...因为现在有大侠写了资源提取工具,我暂时不用自己去写了哇
-------------------------------------------------------------------------------------------------------
本来想偷懒的,但是不知道为什么OGRE的资源要一个一个写文件夹,很囧...那我要全部载入怎么办...
索性研究AXP格式,只载入AXP,就方便多了啊
用UE打开对比了一下,大概格式已经清楚了,
游戏的包文件其实都有一些共同的东西:文件头,文件索引表和文件数据。
文件头可以找到文件索引表的位置,
文件索引表一般每条索引会包含文件名、文件位置、文件长度三个数据。(但天龙的文件名没放索引表里面,而是放在AXP文件的末尾)
有了这个索引表,文件数据就可以读取出来.
总结一下寻找的过程就是:
文件头->索引表->文件数据
打开UE,按照下面的偏移地址(UE左边显示的地址)找对应信息就可以了哇,我直接给出比较重要的文件格式,
其他什么版本号,链表指针地址之类不重要的就直接忽略
偏移地址 数据类型 存储的数据的作用
0x10 UINT 存储的是文件索引表的地址 (就是00060028h)
0x14 UINT 资源的个数
0x60028 UINT 第一个资源数据的地址(就是00160028h)
0x60028 + 0x4 UINT 第一个资源数据的长度
0x60028 + 0x8 UINT 第一个资源数据的标志位,有0x00000000和0x80000000两个标识,应该是空闲/使用标志或文件是否存在的标志
0x60028 + (n-1)*0xC UINT 第n-1个资源数据的地址
0x60028 + (n-1)*0xC + 0x4 UINT 第n-1个资源数据的长度
0x60028 + (n-1)*0xC + 0x8 UINT 第n-1个资源数据的标志位,有0x00000000和0x80000000两个标识
数据的地址和大小都知道了,就可以读取数据了
但是还缺少数据文件的名字,
在AXP文件最最下面一个区域就是存贮的文件路径,文件名字和文件类型,文件大小等数据
而且都是按文件索引顺序排下来.
-----------------------------------------------------------------
文件头和索引表之间有一堆文件名表的东西,暂时不知道怎么用,反正文件名已经有了,无视
数据格式知道了,有空我再写载入程序.