Example #1
0
    void TypeGroup::ReadStructure(ModuleReader &reader, const MemberHeader &header)
    {
        // Read the group members.
        Member *parent = GetParent();
        Module *module = GetModule();
        int count = header.memberSize/4;
        for(int i = 0; i < count; i++)
        {
            uint32_t id;
            reader >> id;

            // Get the member and check it..
            Member *member = module->GetMember(id);
            if(!member->IsClass() && !member->IsStructure() && !member->IsInterface())
                throw ModuleException("expected class/structure/interface member in type group.");

            // Store the member.
            buildings.push_back(static_cast<Structure*> (member));

            // Update his parent.
            if(member && parent)
                member->UpdateParent(parent);
        }
    }