本文整理汇总了C++中Terrain::SetModified方法的典型用法代码示例。如果您正苦于以下问题:C++ Terrain::SetModified方法的具体用法?C++ Terrain::SetModified怎么用?C++ Terrain::SetModified使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Terrain
的用法示例。
在下文中一共展示了Terrain::SetModified方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Paint
void TerrainLattice::Paint(ParaEngine::TextureEntity* detailTexture, float brushRadius, float brushIntensity, float maxIntensity, bool erase, float x, float y)
{
Terrain * AffectedTerrainTiles[4];
Terrain * pCenterTerrain = GetTerrainAtPoint(x, y);
if(pCenterTerrain==NULL || pCenterTerrain->IsEmpty())
return;
float fLogicalBrushRadius = brushRadius;
AffectedTerrainTiles[0] = GetTerrainAtPoint(x+fLogicalBrushRadius, y+fLogicalBrushRadius);
AffectedTerrainTiles[1] = GetTerrainAtPoint(x+fLogicalBrushRadius, y-fLogicalBrushRadius);
AffectedTerrainTiles[2] = GetTerrainAtPoint(x-fLogicalBrushRadius, y+fLogicalBrushRadius);
AffectedTerrainTiles[3] = GetTerrainAtPoint(x-fLogicalBrushRadius, y-fLogicalBrushRadius);
for(int i=0;i<4; i++)
{
Terrain * pTerrain = AffectedTerrainTiles[i];
bool bDraw = true;
for(int k=i-1;k>=0; --k)
{
if(AffectedTerrainTiles[k] == pTerrain)
{
bDraw = false;
break;
}
}
if(bDraw && pTerrain != NULL && (! pTerrain->IsEmpty()))
{
pTerrain->SetModified(true, MODIFIED_TEXTURE);
pTerrain->Paint(detailTexture, brushRadius, brushIntensity, maxIntensity, erase, x,y);
}
}
}
示例2: SetAllLoadedModified
void TerrainLattice::SetAllLoadedModified(bool bIsModified, DWORD dwModifiedBits)
{
bool bSaveConfigFile = false;
TerrainTileCacheMap_type::iterator itCurCP, itEndCP = m_pCachedTerrains.end();
for( itCurCP = m_pCachedTerrains.begin(); itCurCP != itEndCP; ++ itCurCP)
{
Terrain* pTerrain = (*itCurCP).second.pTerrain;
pTerrain->SetModified(bIsModified, dwModifiedBits);
}
}
示例3: SaveTerrain
void TerrainLattice::SaveTerrain(bool bHeightMap, bool bTextures)
{
bool bSaveConfigFile = false;
TerrainTileCacheMap_type::iterator itCurCP, itEndCP = m_pCachedTerrains.end();
for( itCurCP = m_pCachedTerrains.begin(); itCurCP != itEndCP; ++ itCurCP)
{
Terrain* pTerrain = (*itCurCP).second.pTerrain;
if(pTerrain->IsModified())
{
if(pTerrain->IsEmpty()){
pTerrain->SetModified(false, MODIFIED_ALL);
}
else
{
int x,y;
pTerrain->GetLatticePosition(x,y);
string sConfig = CGlobals::GetWorldInfo()->GetTerrainConfigFile(x,y);
if(pTerrain->m_sConfigFile != sConfig)
{
pTerrain->m_sConfigFile = sConfig;
pTerrain->SetModified(true, MODIFIED_CONFIGURATION | MODIFIED_TEXTURE);
if (m_pLoader)
{
m_pLoader->UpdateTileConfigFile(x,y, sConfig);
}
bSaveConfigFile = true;
}
pTerrain->SaveToFile();
pTerrain->SetModified(false, MODIFIED_ALL);
}
}
}
// save global world config file if any terrain tile is newly created.
if(m_bIsGlobalConfigModified || bSaveConfigFile)
{
if(m_pLoader){
m_pLoader->SaveWorldConfigFile();
}
}
m_bIsGlobalConfigModified = false;
}
示例4: SetContentModified
void CGlobalTerrain::SetContentModified(float x, float y, bool bIsModified, DWORD dwModifiedBits)
{
if (m_nTerrainType == LATTICED_TERRAIN)
{
if (m_pTerrainLattice)
{
Terrain * pTerrain = m_pTerrainLattice->GetTerrainAtPoint(x, y);
if (pTerrain)
{
return pTerrain->SetModified(bIsModified, dwModifiedBits);
}
}
}
else if (m_nTerrainType == SINGLE_TERRAIN)
{
if (m_pTerrainSingle)
return m_pTerrainSingle->SetModified(bIsModified, dwModifiedBits);
}
}
示例5: ReplaceTexture
bool CGlobalTerrain::ReplaceTexture(float x, float y, int nIndex, TextureEntity* TextureAsset)
{
Terrain * pTerrain = GetTerrainAtPoint(x, y);
if (pTerrain && (nIndex >= 0 || TextureAsset != 0))
{
if (nIndex >= 0)
{
if (pTerrain->GetTextureSet())
{
if (TextureAsset)
{
if (pTerrain->GetTextureSet()->ReplaceTexture(nIndex, TextureAsset))
{
pTerrain->SetModified(true, MODIFIED_TEXTURE);
return true;
}
}
else
{
// True to normalize mask of the undeleted layers.
bool bNormalizeMask = true;
pTerrain->GetTextureSet()->RemoveTexture(nIndex, pTerrain, bNormalizeMask);
}
}
}
else if (nIndex == -1)
{
// -1: common texture, which is repeated several times over each terrain tile surface.
pTerrain->SetTerrainCommonTextureFile(TextureAsset->GetKey());
return true;
}
else if (nIndex == -2)
{
// -2: main texture, which is chopped and mapped to the entire terrain surface.
pTerrain->SetTerrainBaseTextureFile(TextureAsset->GetKey());
return true;
}
}
return false;
}