Using this library, I've added a Fog Of War element to the game. Basically, I'm just assigning a view range for my soldiers/towers/bases and making the lighting reach that radius:
// In EntityFactory::CreateSoldier()
ltbl::Light_Point *light = NULL;
// if local User, set light source for Fog of War
if (LocalUserId == userId) {
light = CreateLight(Soldier.ViewRange, position);
}
// Add light to graphics component for this soldier
TGraphicsObject *graphicComp = new TGraphicsObject(Soldier.ImageName, SOLDIERS_LAYER, light);
ltbl::Light_Point* TEntityFactory::CreateLight(cpFloat radius, cpVect position)
{
sf::Vector2u size = pApp->getSize();
double xPos = position.x;
double yPos = (double)size.y - position.y;
// Create a light
ltbl::Light_Point* light = new ltbl::Light_Point();
light->m_intensity = 1.0f;
light->m_center = Vec2f(xPos, yPos);
light->m_radius = radius;
light->m_size = 10.0f;
light->m_spreadAngle = ltbl::pifTimes2;
light->m_softSpreadAngle = 0.0f;
light->m_color = Color3f(1.0f, 1.0f, 1.0f);
light->CalculateAABB();
light->m_bleed = 0.0f;
light->m_linearizeFactor = 1.0f;
LightSystem->AddLight(light);
light->SetAlwaysUpdate(false);
return light;
}
This produces what I'm looking for. Granted, it looks a little weird as a typical Fog Of War, but I'm excited about the library, so I'm using it!
Here are a few pics of it with my base footsoldiers.