Exemplo n.º 1
0
    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 );
                    }
                }
            }
        }
    }
Exemplo n.º 2
0
void Damage::Repair () {
    DrawAreas();
    DrawAdditions();
    Reset();
}