1 #include "lc_global.h" 2 #include <stdlib.h> 3 #include "group.h" 4 #include "lc_file.h" 5 lcGroup()6lcGroup::lcGroup() 7 { 8 mGroup = nullptr; 9 } 10 FileLoad(lcFile * File)11void lcGroup::FileLoad(lcFile* File) 12 { 13 qint32 GroupIndex; 14 char Name[LC_MAX_GROUP_NAME + 1]; 15 16 File->ReadU8(); 17 File->ReadBuffer(Name, sizeof(Name)); 18 mName = QString::fromUtf8(Name); 19 File->ReadVector3(); 20 File->ReadS32(&GroupIndex, 1); 21 mGroup = (lcGroup*)(quintptr)GroupIndex; 22 } 23 CreateName(const lcArray<lcGroup * > & Groups)24void lcGroup::CreateName(const lcArray<lcGroup*>& Groups) 25 { 26 if (!mName.isEmpty()) 27 { 28 bool Found = false; 29 for (const lcGroup* const Group : Groups) 30 { 31 if (Group->mName == mName) 32 { 33 Found = true; 34 break; 35 } 36 } 37 38 if (!Found) 39 return; 40 } 41 42 int Max = 0; 43 QString Prefix = QApplication::tr("Group #"); 44 const int Length = Prefix.length(); 45 46 for (const lcGroup* const Group : Groups) 47 { 48 const QString& Name = Group->mName; 49 50 if (Name.startsWith(Prefix)) 51 { 52 bool Ok = false; 53 int GroupNumber = Name.mid(Length).toInt(&Ok); 54 if (Ok && GroupNumber > Max) 55 Max = GroupNumber; 56 } 57 } 58 59 mName = Prefix + QString::number(Max + 1); 60 } 61