Exemplo n.º 1
0
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;
		}
	}
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
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;
}