Skip to content

Commit

Permalink
Cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
danij-deng committed Feb 24, 2013
1 parent 9513ba9 commit 76d1f9c
Showing 1 changed file with 28 additions and 41 deletions.
69 changes: 28 additions & 41 deletions doomsday/client/src/def_main.cpp
Expand Up @@ -1086,6 +1086,28 @@ static void rebuildMaterialDecorations(Material &material, ded_material_t const
// Is this valid? (A zero number of stages signifies the last).
if(!lightDef.stageCount.num) break;

for(int k = 0; k < lightDef.stageCount.num; ++k)
{
ded_decorlight_stage_t *stage = &lightDef.stages[k];

if(stage->up)
{
defineLightmap(*reinterpret_cast<de::Uri const *>(stage->up));
}
if(stage->down)
{
defineLightmap(*reinterpret_cast<de::Uri const *>(stage->down));
}
if(stage->sides)
{
defineLightmap(*reinterpret_cast<de::Uri const *>(stage->sides));
}
if(stage->flare)
{
defineFlaremap(*reinterpret_cast<de::Uri const *>(stage->flare));
}
}

MaterialDecoration *decor = MaterialDecoration::fromDef(lightDef);
material.addDecoration(*decor);
}
Expand Down Expand Up @@ -1120,32 +1142,6 @@ static void interpretMaterialDef(ded_material_t &def)
if(!App_Materials().validateUri(uri, 0, (verbose >= 1)))
return;

for(int i = 0; i < DED_MAX_MATERIAL_DECORATIONS; ++i)
{
ded_material_decoration_t *lig = &def.decorations[i];
for(int k = 0; k < lig->stageCount.num; ++k)
{
ded_decorlight_stage_t *stage = &lig->stages[k];

if(stage->up)
{
defineLightmap(*reinterpret_cast<de::Uri const *>(stage->up));
}
if(stage->down)
{
defineLightmap(*reinterpret_cast<de::Uri const *>(stage->down));
}
if(stage->sides)
{
defineLightmap(*reinterpret_cast<de::Uri const *>(stage->sides));
}
if(stage->flare)
{
defineFlaremap(*reinterpret_cast<de::Uri const *>(stage->flare));
}
}
}

// Have we already created a manifest for this?
MaterialManifest *manifest = &App_Materials().newManifest(App_Materials().scheme(uri.scheme()), uri.path());
if(!manifest)
Expand Down Expand Up @@ -1183,25 +1179,16 @@ static void interpretMaterialDef(ded_material_t &def)
// An entirely new material?
if(!manifest->hasMaterial())
{
Material &material = *(new Material(*manifest));

// Associate the new material with the manifest.
manifest->setMaterial(&material);
// Instantiate and associate the new material with the manifest.
manifest->setMaterial(new Material(*manifest));

// Include the material in the scheme-agnostic list of instances.
App_Materials().addMaterial(material);
}
else
{
// Updating the existing material.
#ifdef __CLIENT__
Material &material = manifest->material();

/// @todo We should be able to rebuild the variants.
material.clearVariants();
#endif
App_Materials().addMaterial(manifest->material());
}

/*
* (Re)configure the material:
*/
Material &material = manifest->material();

Material::Flags newFlags;
Expand Down

0 comments on commit 76d1f9c

Please sign in to comment.