由于神秘岛4的.m4b包文件不存在免打包的方法,
, Y) ~. B+ s, C- ^# l所以,我根据这个包文件的具体情况想出一个懒汉式打包新方法。6 G% ~3 V" g$ ^" ], S2 y( K4 _
( K* b# N: V* A' p& L3 o: b
说出来其实很简单。# j2 }+ z Q* v
我们把要更新的文件逐个加到包文件的末尾,然后更新文件头对应文件的文件大小和偏移量即可。& T& \$ Y* w# D1 U
也就是说,同一个子文件在包文件中存在新旧2个版本,旧版本弃之不用,而头部的信息和
/ q' i1 n2 @2 ]# g$ q. S/ {! d( ^0 ~新版本子文件相对应。
* l* u3 ^9 y1 ]# ]
& ~( x' E+ i+ ?7 u5 L( ?当然,这个方法有一定的局限性,就是不能增加新文件。* {- c6 c& `* I2 [
否则后面的偏移量就不对了。# v [$ [3 T" f# M' ]4 E0 Q, ~
就神秘岛4而言,我估计tga文件的大小是可变的,所以不需要增加文件。
+ K3 ?- @" O/ p3 b, G& }4 K$ W3 k! f0 E
这个方法,对于一些复杂格式的包文件,可以大大简化制作打包器的过程。% W2 ]4 k- y+ P, ?9 K
连解包器和解包过程也可以省略了。以后有其他合适的游戏也可以考虑用这个方法打包。 |