Codejie's C++ Space

Using C++

M2过程:加载部分写完

    终于将M2文件的加载过程写好了,30+个段,写的要吐血,后面还有SKIN文件要加载,唉,真的要吐血了~下面是M2文件的Header格式,虽说每个M2文件不会包括全部的段,但段指示部分还是存在的,只是其size和offset为零罢了。

M2::Header_t
struct Header_t
{
    unsigned 
char m_acIdent[4];
    unsigned 
int m_uiVersion;
    DataPair_t m_stName;
    unsigned 
int m_uiModelFlag;
    DataPair_t m_stSequence;
    DataPair_t m_stAnim;
    DataPair_t m_stAnimLookup;
    DataPair_t m_stBone;
    DataPair_t m_stBoneLookup;
    DataPair_t m_stVertex;
    unsigned 
int m_uiView;
    DataPair_t m_stColor;
    DataPair_t m_stTexture;
    DataPair_t m_stTransparency;
    DataPair_t m_stTexAnim;
    DataPair_t m_stTexReplace;
    DataPair_t m_stRenderFlag;
    DataPair_t m_stBoneTable;
    DataPair_t m_stTexLookup;
    DataPair_t m_stTexTable;
    DataPair_t m_stTransLookup;
    DataPair_t m_stTexAnimLookup;
    
char m_acUnknFloat[14 * sizeof(float)];
    DataPair_t m_stBoundTriangle;
    DataPair_t m_stBoundVertex;
    DataPair_t m_stBoundNormal;
    DataPair_t m_stAttachment;
    DataPair_t m_stAttachLookup;
    DataPair_t m_stAttachment2;
    DataPair_t m_stLight;
    DataPair_t m_stCamera;
    DataPair_t m_stCameraLookup;
    DataPair_t m_stRibbon;
    DataPair_t m_stParticle;

    
int Read(CFileBuffer& fb);
};


    快写完才发现各段的结构和加载方式是很很类似的,都是size指定有多少个块,offset指示从哪里开始加载。这样的方法完全可以使用template实现的,我咋么这么作呢?累的半死又难看,唉,改!

posted on 2009-04-02 16:37 codejie 阅读(213) 评论(0)  编辑 收藏 引用 所属分类: C++MPQ - WOW


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

Using C++

导航

统计

留言簿(73)

随笔分类(513)

积分与排名

最新评论

阅读排行榜

评论排行榜