void C4Def::LoadRankFaces(C4Group &hGroup) { // clear any previous if (pRankSymbols) delete pRankSymbols; pRankSymbols = NULL; // load new if (hGroup.AccessEntry(C4CFN_RankFacesPNG)) { pRankSymbols = new C4FacetSurface(); if (!pRankSymbols->GetFace().ReadPNG(hGroup, false)) { delete pRankSymbols; pRankSymbols = NULL; } } // set size if (pRankSymbols) { pRankSymbols->Set(&pRankSymbols->GetFace(), 0, 0, pRankSymbols->GetFace().Hgt, pRankSymbols->GetFace().Hgt); int32_t Q; pRankSymbols->GetPhaseNum(iNumRankSymbols, Q); if (!iNumRankSymbols) { delete pRankSymbols; pRankSymbols = NULL; } else { if (pRankNames) { // if extended rank names are defined, subtract those from the symbol count. The last symbols are used as overlay iNumRankSymbols = std::max<int32_t>(1, iNumRankSymbols - pRankNames->GetExtendedRankNum()); } fRankSymbolsOwned = true; } } }
bool C4MassMoverSet::Load(C4Group &hGroup) { // clear previous Clear(); Default(); size_t iBinSize,iMoverSize=sizeof(C4MassMover); if (!hGroup.AccessEntry(C4CFN_MassMover,&iBinSize)) return false; if ((iBinSize % iMoverSize)!=0) return false; // load new Count = iBinSize / iMoverSize; if (!hGroup.Read(Set,iBinSize)) return false; return true; }
bool C4Def::LoadParticleDef(C4Group &hGroup) { bool fSuccess = true; // particle def? if (hGroup.AccessEntry(C4CFN_ParticleCore)) { // def loading not successful; abort after reading sounds fSuccess = false; // create new particle def C4ParticleDef *pParticleDef = new C4ParticleDef(); // load it if (!pParticleDef->Load(hGroup)) { // not successful :( - destroy it again delete pParticleDef; } // done } return fSuccess; }