由于神秘岛4的.m4b包文件不存在免打包的方法,& d# \) [5 ]. c/ N) s0 ^) \
所以,我根据这个包文件的具体情况想出一个懒汉式打包新方法。
! }/ Y, g D. W$ }8 f9 ?! k! ?- ~/ Z& ]& f' S; r
说出来其实很简单。5 f7 E0 P# f0 Y6 r! p
我们把要更新的文件逐个加到包文件的末尾,然后更新文件头对应文件的文件大小和偏移量即可。* U2 j% l7 h7 j/ S" S
也就是说,同一个子文件在包文件中存在新旧2个版本,旧版本弃之不用,而头部的信息和! J3 _) C" b, A& k
新版本子文件相对应。 O& V R( c) M$ g" [ C% g. C
+ z+ L, O* H; l) ~' N7 ~
当然,这个方法有一定的局限性,就是不能增加新文件。
+ N7 P3 }' z/ g7 g+ q" ~- ~# s否则后面的偏移量就不对了。3 Y. b* Y) j0 c
就神秘岛4而言,我估计tga文件的大小是可变的,所以不需要增加文件。
2 A0 N" f0 A( e" y7 _/ T" T j; J' w. J' R; E& m6 n( @+ v
这个方法,对于一些复杂格式的包文件,可以大大简化制作打包器的过程。5 Z3 r+ M# M3 W0 B9 O' F4 h1 W. l
连解包器和解包过程也可以省略了。以后有其他合适的游戏也可以考虑用这个方法打包。 |