Changeset View
Changeset View
Standalone View
Standalone View
source/graphics/MiniMapTexture.cpp
Show First 20 Lines • Show All 512 Lines • ▼ Show 20 Lines | void CMiniMapTexture::RenderFinalTexture( | ||||
// to change an entity size so often. | // to change an entity size so often. | ||||
// Radius with instancing is lower because an entity has a more round shape. | // Radius with instancing is lower because an entity has a more round shape. | ||||
const float entityRadius = static_cast<float>(m_MapSize) / 128.0f * (m_UseInstancing ? 5.0 : 6.0f); | const float entityRadius = static_cast<float>(m_MapSize) / 128.0f * (m_UseInstancing ? 5.0 : 6.0f); | ||||
if (doUpdate) | if (doUpdate) | ||||
{ | { | ||||
m_Icons.clear(); | m_Icons.clear(); | ||||
CSimulation2::InterfaceList ents = m_Simulation.GetEntitiesWithInterface(IID_Minimap); | CSimulation2::InterfaceList comps = m_Simulation.GetComponentsByInterface(IID_Minimap); | ||||
VertexArrayIterator<float[2]> attrPos = m_AttributePos.GetIterator<float[2]>(); | VertexArrayIterator<float[2]> attrPos = m_AttributePos.GetIterator<float[2]>(); | ||||
VertexArrayIterator<u8[4]> attrColor = m_AttributeColor.GetIterator<u8[4]>(); | VertexArrayIterator<u8[4]> attrColor = m_AttributeColor.GetIterator<u8[4]>(); | ||||
m_EntitiesDrawn = 0; | m_EntitiesDrawn = 0; | ||||
MinimapUnitVertex v; | MinimapUnitVertex v; | ||||
std::vector<MinimapUnitVertex> pingingVertices; | std::vector<MinimapUnitVertex> pingingVertices; | ||||
pingingVertices.reserve(MAX_ENTITIES_DRAWN / 2); | pingingVertices.reserve(MAX_ENTITIES_DRAWN / 2); | ||||
Show All 9 Lines | if (doUpdate) | ||||
float iconsOpacity = 1.0f; | float iconsOpacity = 1.0f; | ||||
CFG_GET_VAL("gui.session.minimap.icons.opacity", iconsOpacity); | CFG_GET_VAL("gui.session.minimap.icons.opacity", iconsOpacity); | ||||
float iconsSizeScale = 1.0f; | float iconsSizeScale = 1.0f; | ||||
CFG_GET_VAL("gui.session.minimap.icons.sizescale", iconsSizeScale); | CFG_GET_VAL("gui.session.minimap.icons.sizescale", iconsSizeScale); | ||||
bool iconsCountOverflow = false; | bool iconsCountOverflow = false; | ||||
entity_pos_t posX, posZ; | entity_pos_t posX, posZ; | ||||
for (CSimulation2::InterfaceList::const_iterator it = ents.begin(); it != ents.end(); ++it) | for (CSimulation2::InterfaceList::const_iterator it = comps.begin(); it != comps.end(); ++it) | ||||
{ | { | ||||
ICmpMinimap* cmpMinimap = static_cast<ICmpMinimap*>(it->second); | ICmpMinimap* cmpMinimap = static_cast<ICmpMinimap*>(it->second); | ||||
if (cmpMinimap->GetRenderData(v.r, v.g, v.b, posX, posZ)) | if (cmpMinimap->GetRenderData(v.r, v.g, v.b, posX, posZ)) | ||||
{ | { | ||||
LosVisibility vis = cmpRangeManager->GetLosVisibility(it->first, m_Simulation.GetSimContext().GetCurrentDisplayedPlayer()); | LosVisibility vis = cmpRangeManager->GetLosVisibility(it->first, m_Simulation.GetSimContext().GetCurrentDisplayedPlayer()); | ||||
if (vis != LosVisibility::HIDDEN) | if (vis != LosVisibility::HIDDEN) | ||||
{ | { | ||||
v.a = 255; | v.a = 255; | ||||
▲ Show 20 Lines • Show All 170 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator