当前位置: 首页>>代码示例>>C++>>正文


C++ IStreamReader::readUint32方法代码示例

本文整理汇总了C++中athena::io::IStreamReader::readUint32方法的典型用法代码示例。如果您正苦于以下问题:C++ IStreamReader::readUint32方法的具体用法?C++ IStreamReader::readUint32怎么用?C++ IStreamReader::readUint32使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在athena::io::IStreamReader的用法示例。


在下文中一共展示了IStreamReader::readUint32方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: magic

CPASDatabase::CPASDatabase(Athena::io::IStreamReader& in)
{
    CFourCC magic(in);
    if (magic != skPAS4FourCC)
        THROW_INVALID_DATA_EXCEPTION("Invalid PASDatabase magic expected 'PAS4'' got 0x%.4s", magic);

    atUint32 stateCount = in.readUint32();
    m_defaultState = in.readInt32();
    if (m_defaultState == ~0)
        return;

    while ((stateCount--) > 0)
    {
        SPASAnimState state;
        state.unknown1 = in.readUint32();
        atUint32 parmInfoCount = in.readUint32();
        atUint32 animInfoCount = in.readUint32();

        for (atUint32 i = 0; i < parmInfoCount; i++)
        {
            SPASParmInfo info;
            info.type = (EParmType)in.readUint32();
            info.unknown1 = in.readUint32();
            info.unknown2 = in.readFloat();

            for (atUint32 j = 0; j < 2; j++)
            {
                switch(info.type)
                {
                case eInt32:
                {
                    atInt32 tmp = in.readInt32();
                    info.parameters[j] = CPASInt32Paramater(tmp);
                }
                    break;
                case eUint32:
                {
                    atUint32 tmp = in.readUint32();
                    info.parameters[j] = CPASUint32Parameter(tmp);
                }
                    break;
                case eEnum:
                {
                    atUint32 tmp = in.readUint32();
                    info.parameters[j] = CPASEnumParameter(tmp);
                }
                    break;
                case eReal32:
                {
                    float tmp = in.readFloat();
                    info.parameters[j] = CPASReal32Parameter(tmp);
                }
                    break;
                case eBool:
                {
                    bool tmp = in.readBool();
                    info.parameters[j] = CPASBoolParameter(tmp);
                }
                    break;
                }
            }
            state.parmInfo.push_back(info);
        }

        for (atUint32 i = 0; i < animInfoCount; i++)
        {
            SPASAnimInfo info;
            info.unknown1 = in.readUint32();
            for (atUint32 j = 0; j < parmInfoCount; j++)
            {
                switch(state.parmInfo[j].type)
                {
                case eInt32:
                {
                    atInt32 tmp = in.readInt32();
                    info.parameters.push_back(CPASInt32Paramater(tmp));
                }
                    break;
                case eUint32:
                {
                    atUint32 tmp = in.readUint32();
                    info.parameters.push_back(CPASUint32Parameter(tmp));
                }
                    break;
                case eEnum:
                {
                    atUint32 tmp = in.readUint32();
                    info.parameters.push_back(CPASEnumParameter(tmp));
                }
                    break;
                case eReal32:
                {
                    float tmp = in.readFloat();
                    info.parameters.push_back(CPASReal32Parameter(tmp));
                }
                    break;
                case eBool:
                {
                    bool tmp = in.readBool();
                    info.parameters.push_back(CPASBoolParameter(tmp));
//.........这里部分代码省略.........
开发者ID:Antidote,项目名称:MetPrimeTools,代码行数:101,代码来源:CPASDatabase.cpp


注:本文中的athena::io::IStreamReader::readUint32方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。