用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
xoyojank的公告
<p>MSN: xoyojank@live.cn</p> <p><a href="http://cid-0009c239038bcec9.groups.live.com">Nebula引擎研究群</a>:43893646</p> <embed type="application/x-shockwave-flash" src="http://www.taotao.com/res/ttlist.swf" flashvars="qq=80877101&num=20&style=1" quality="autohigh" wmode="transparent" width="180" height="400"></embed>
文章分类
Nebula Device
Nebula3 - Google Code
Nebula3 SDK Nov 2009
The Brain Dump(RSS)
The Nebula Device
常用链接
AMD Developer Central
DevMaster.net(RSS)
Gamasutra
GameDev.Net
NVIDIA Developer Zone
OpenGL ES 2.0 API
Real-Time Rendering(RSS)
WoWDev
设计模式
佩服
Azure(RSS)
cp的小屋(RSS)
Effulgent(RSS)
eXtreme3D(RSS)
LangFox(RSS)
Siney(RSS)
SixWater's
云风(RSS)
千里马肝(RSS)
平民程序(RSS)
友情链接
CG迷途大熊猫(RSS)
cometeor的专栏(RSS)
EddyLib
EndDuke的专栏(RSS)
xuebai5
小志(RSS)
秒大刀的城堡(RSS)
存档

原创  MPQ 文件系统完成 收藏

基于StormLib, 参考N3的ZipFileSystem实现了一个MpqFileSystem

有一点要注意, 文件路径里不能用'/', 都要用'\\' @_@

mpq文件包里的文件是不保存文件名(或目录名)的, 也就是说打包后的文件是不可逆的. 但是在每个文件包的根目录下都有一个(listfile)文件, 里面包含了文件包中的文件名列表

(为什么listfile文件最后有一段空字符串呢???)

没有去实现写入的功能, 虽然StormLib可以添加文件, 不过对于游戏只需要读就可以了

mpq有一点比zip有优势, 那就是可以进行Seek...这样就支持流式的文件加载了.

而且对于wav可以采用特殊的压缩算法来增大压缩率. 不过我对wav没好印象的说...

用XACT可以播放xWMA, 用DirectShow可以播放WMV(我晕, 我怎么又跟着M$混了. 没办法啊, 谁叫fmod之类的商用收费来着)

嗯...写完记得要测试.....(BOSS说这才是专业的一种表现-_-)


嗯, 为了比较方便, 把文件名都转换成小写了....不过linux下不是大小写区分的么, 那linux程序员写的打包程序会不会也区别文件名的大小写, HOHO~

发表于 @ 2008年12月28日 02:55:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:StormLib Functions | 新一篇:封面

  • 发表评论
  • 评论内容:
  •  
Copyright © xoyojank
Powered by CSDN Blog