//============================================================================== void MarkerList::ValueTreeWrapper::applyTo (MarkerList& markerList) { const int numMarkers = getNumMarkers(); StringArray updatedMarkers; for (int i = 0; i < numMarkers; ++i) { const ValueTree marker (state.getChild (i)); const String name (marker [nameProperty].toString()); markerList.setMarker (name, RelativeCoordinate (marker [posProperty].toString())); updatedMarkers.add (name); } for (int i = markerList.getNumMarkers(); --i >= 0;) if (! updatedMarkers.contains (markerList.getMarker (i)->name)) markerList.removeMarker (i); }
unsigned int Enclosure::getRandomRespawnMarker(void) { // build list of respawn markers std::vector<unsigned int> respawnIds; for( unsigned int i=0; i<getNumMarkers(); i++ ) { if( getMarkerFlags(i) & mtRespawn ) respawnIds.push_back( i ); } //tsynique if (respawnIds.size() == 0) return 0; assert( respawnIds.size() ); unsigned int result = unsigned int( getCore()->getRandToolkit()->getUniform( 0, float( respawnIds.size() ) ) ); result = result > respawnIds.size()-1 ? respawnIds.size()-1 : result; return respawnIds[result]; }