void CLevelGraph::draw_restrictions () { CSpaceRestrictionManager::SPACE_RESTRICTIONS::const_iterator I = Level().space_restriction_manager().restrictions().begin(); CSpaceRestrictionManager::SPACE_RESTRICTIONS::const_iterator E = Level().space_restriction_manager().restrictions().end(); CRandom R; for ( ; I != E; ++I) { if (!(*I).second->m_ref_count) continue; if (!(*I).second->initialized()) continue; u8 b = u8(R.randI(255)); u8 g = u8(R.randI(255)); u8 r = u8(R.randI(255)); xr_vector<u32>::const_iterator i = (*I).second->border().begin(); xr_vector<u32>::const_iterator e = (*I).second->border().end(); for ( ; i != e; ++i) { Fvector temp = ai().level_graph().vertex_position(*i); temp.y += .1f; Level().debug_renderer().draw_aabb(temp,.05f,.05f,.05f,D3DCOLOR_XRGB(r,g,b)); } #ifdef USE_FREE_IN_RESTRICTIONS CSpaceRestriction::FREE_IN_RESTRICTIONS::const_iterator II = (*I).second->m_free_in_restrictions.begin(); CSpaceRestriction::FREE_IN_RESTRICTIONS::const_iterator EE = (*I).second->m_free_in_restrictions.end(); for ( ; II != EE; ++II) { xr_vector<u32>::const_iterator i = (*II).m_restriction->border().begin(); xr_vector<u32>::const_iterator e = (*II).m_restriction->border().end(); for ( ; i != e; ++i) { Fvector temp = ai().level_graph().vertex_position(*i); temp.y += .1f; Level().debug_renderer().draw_aabb(temp,.05f,.05f,.05f,D3DCOLOR_XRGB(255,0,0)); } { xr_vector<u32>::const_iterator i = (*II).m_restriction->border().begin(); xr_vector<u32>::const_iterator e = (*II).m_restriction->border().end(); for ( ; i != e; ++i) { Fvector temp = ai().level_graph().vertex_position(*i); temp.y += .1f; Level().debug_renderer().draw_aabb(temp,.05f,.05f,.05f,D3DCOLOR_XRGB(0,255,0)); } } } #endif } }
u8 EDetailManager::GetRandomObject(u32 color_index) { ColorIndexPairIt CI=m_ColorIndices.find(color_index); R_ASSERT(CI!=m_ColorIndices.end()); int k = DetailRandom.randI(0,CI->second.size()); DetailIt it = std::find(objects.begin(),objects.end(),CI->second[k]); VERIFY(it!=objects.end()); return u8(it-objects.begin()); }
int operator()(int n) {return gen.randI(n);}