由于神秘岛4的.m4b包文件不存在免打包的方法,. z6 N! ?* J$ Y& f4 d7 }
所以,我根据这个包文件的具体情况想出一个懒汉式打包新方法。
) Q4 }" s. O" f* U9 _; F
5 P9 t5 y, _6 O" O0 |说出来其实很简单。7 Y1 y6 h: M/ t, E- h- j# h8 F
我们把要更新的文件逐个加到包文件的末尾,然后更新文件头对应文件的文件大小和偏移量即可。
% R- r" u# ?, E G$ }# p也就是说,同一个子文件在包文件中存在新旧2个版本,旧版本弃之不用,而头部的信息和
6 w+ R/ s# ?5 z; {+ h新版本子文件相对应。
% l" b7 M, L% h% Q
9 C9 z+ M0 x( w, k0 C. H当然,这个方法有一定的局限性,就是不能增加新文件。
# l! n1 H$ ^" ~- i0 R5 M! @, Z, y否则后面的偏移量就不对了。
0 q8 n+ a* M' R: _8 N就神秘岛4而言,我估计tga文件的大小是可变的,所以不需要增加文件。
% d; Y; L& q, p, Q1 J$ [/ @$ Y
O2 i% _! z* a. h9 x8 m这个方法,对于一些复杂格式的包文件,可以大大简化制作打包器的过程。
0 E1 v; E! b8 e6 s连解包器和解包过程也可以省略了。以后有其他合适的游戏也可以考虑用这个方法打包。 |