由于神秘岛4的.m4b包文件不存在免打包的方法,1 y8 m3 ^- S; V7 s! x7 k8 t
所以,我根据这个包文件的具体情况想出一个懒汉式打包新方法。
- `. d! E/ x9 U9 C4 P9 S7 v# b6 l3 C) |2 x% M! h3 n7 S
说出来其实很简单。$ w" t1 Y v' D& S
我们把要更新的文件逐个加到包文件的末尾,然后更新文件头对应文件的文件大小和偏移量即可。
( p% z5 n' ^& X+ m- T7 q& j6 T也就是说,同一个子文件在包文件中存在新旧2个版本,旧版本弃之不用,而头部的信息和
5 K: R. {* [" h' B: T- D新版本子文件相对应。
. O9 p: h _7 W1 S; k/ X n4 e1 T, Y! Z' G% R0 |/ K' G. Q
当然,这个方法有一定的局限性,就是不能增加新文件。
4 }% r( ]% w: K3 p否则后面的偏移量就不对了。# l6 r$ P7 h. W( V% U0 a
就神秘岛4而言,我估计tga文件的大小是可变的,所以不需要增加文件。- d! H: R" @ R' ]7 O1 c- B
3 D3 W: v3 { l3 H这个方法,对于一些复杂格式的包文件,可以大大简化制作打包器的过程。4 V/ O. w! S* X. g/ A1 S
连解包器和解包过程也可以省略了。以后有其他合适的游戏也可以考虑用这个方法打包。 |