Ticket #86: leocad-0.78.1-infotype.patch

File leocad-0.78.1-infotype.patch, 1018 bytes (added by marcus, 4 years ago)

Patch to fix parsing of "type" field in piece information

  • common/pieceinf.cpp

    old new  
    511511        {
    512512                bytes += 1 + 2 * *bytes;
    513513                lcuint32* info = (lcuint32*)bytes;
    514                 lcuint32 type = *info;
     514                lcuint32 type = LCUINT32(*info);
    515515
    516516                switch (type)
    517517                {
     
    643643
    644644                while (*info)
    645645                {
    646                         if (*info == LC_MESH)
     646                        lcuint32 type = LCUINT32(*info);
     647                        if (type == LC_MESH)
    647648                        {
    648649                                info++;
    649650                                lcuint32 NumColors = LCUINT32(*info);
     
    725726                                        }
    726727                                }
    727728                        }
    728                         else if ((*info == LC_STUD) || (*info == LC_STUD3))
     729                        else if ((type == LC_STUD) || (type == LC_STUD3))
    729730                        {
    730731                                info++;
    731732                                int ColorIndex = lcGetColorIndex(LCUINT32(*info));
     
    745746                                SectionIndices[gEdgeColor * 2 + 1] += 4 * SIDES;
    746747                                NumIndices += 4 * SIDES;
    747748                        }
    748                         else if ((*info == LC_STUD2) || (*info == LC_STUD4))
     749                        else if ((type == LC_STUD2) || (type == LC_STUD4))
    749750                        {
    750751                                info++;
    751752                                int ColorIndex = lcGetColorIndex(LCUINT32(*info));