private static Drawable getDTRatingMarker(final Resources res, final boolean supportsRating, final float difficulty, final float terrain, final boolean applyScaling) {
        final int hashcode = new HashCodeBuilder().append(difficulty + "" + terrain).append(applyScaling).append(supportsRating).toHashCode(); // due to -1*-1 being the same as 1*1 this needs to be a string

        synchronized (overlaysCache) {
            CacheMarker marker = overlaysCache.get(hashcode);
            if (marker == null) {
                marker = new CacheMarker(hashcode, createDTRatingMarker(res, supportsRating, difficulty, terrain, applyScaling));
                overlaysCache.put(hashcode, marker);
            }
            return marker.getDrawable();
        }
    }
Conditional expression to choose if we need the floppy overlay or not.

@param cacheListType The cache list currently used
@return True if the floppy overlay should be displayed
main/src/main/java/cgeo/geocaching/utils/MapMarkerUtils.java