void AreaSystem::Update( float delta ) { if( CONF.GetBool( "debugRenderAreas", true ) ) { DrawAreas(); } for (std::vector<Entity>::iterator areaIt = m_bags[0].m_entities.begin(); areaIt != m_bags[0].m_entities.end(); areaIt++) { AreaComponent * areaAC = WGETC<AreaComponent>(*areaIt); WorldPositionComponent * areaWPC = WGETC<WorldPositionComponent>(*areaIt); rioterContainList[*areaIt].clear(); for (std::vector<Entity>::iterator riotIt = m_bags[1].m_entities.begin(); riotIt != m_bags[1].m_entities.end(); riotIt++) { WorldPositionComponent *rioterWPC = WGETC<WorldPositionComponent>(*riotIt); UnitTypeComponent *type = WGETC<UnitTypeComponent>(*riotIt); if( type->type == Core::UnitType::Rioter ) { if( Core::AreaUtility::CheckPointInsideNode( WorldPositionComponent::GetVec3(*rioterWPC), areaAC->vertices, WorldPositionComponent::GetVec3(*areaWPC))) { rioterContainList[*areaIt].push_back( *riotIt ); } } } } }
void Damage::Repair () { DrawAreas(); DrawAdditions(); Reset(); }