由于神秘岛4的.m4b包文件不存在免打包的方法,! |/ O, h' m' t- f$ @
所以,我根据这个包文件的具体情况想出一个懒汉式打包新方法。- p( E A; I4 E0 i; ^8 ?) _
6 {$ h4 F1 e# V' @2 O6 @9 e
说出来其实很简单。
2 n3 H, y! u8 E4 y我们把要更新的文件逐个加到包文件的末尾,然后更新文件头对应文件的文件大小和偏移量即可。% U; X( N; f' d6 f! o- ~) b
也就是说,同一个子文件在包文件中存在新旧2个版本,旧版本弃之不用,而头部的信息和$ `( m3 F# W5 t% @
新版本子文件相对应。
# G, E( S2 u4 R2 B* {
7 I. O3 P( s/ ^) h# t当然,这个方法有一定的局限性,就是不能增加新文件。7 u. ^! c0 o- Q: T( b; B* q
否则后面的偏移量就不对了。1 n, U8 T: T$ x. t4 d
就神秘岛4而言,我估计tga文件的大小是可变的,所以不需要增加文件。
! Y4 [1 g8 a* R- Q, ]( V
( m# g* @3 |6 E) l2 T$ H5 E这个方法,对于一些复杂格式的包文件,可以大大简化制作打包器的过程。
9 l; n7 p) H5 K h% j. L连解包器和解包过程也可以省略了。以后有其他合适的游戏也可以考虑用这个方法打包。 |