More aggressive caching. In general, this makes Stepmania avoid looking in the song directory at all if the song is in the cache, in order to load songs faster. All the RadarValue calculations were also rolled into one to reduce the time needed to build the cache.

This commit is contained in:
Kyzentun
2015-03-23 11:35:30 -06:00
parent 05f455cc17
commit a2798e16f4
10 changed files with 502 additions and 457 deletions
-21
View File
@@ -11,23 +11,9 @@ class Song;
struct AttackArray;
class TimingData;
/** @brief A limited selection of the RadarValues. */
struct RadarStats
{
/** @brief The number of tap notes in the song. */
int taps;
/** @brief The number of jumps in the song. */
int jumps;
/** @brief The number of 3 panel hits in the song. */
int hands;
/** @brief The number of 4 panel hits in the song. */
int quads;
};
void PlaceAutoKeysound( NoteData &out, int row, TapNote akTap );
int FindLongestOverlappingHoldNoteForAnyTrack( const NoteData &in, int iRow );
void LightTransformHelper( const NoteData &in, NoteData &out, const vector<int> &aiTracks );
RadarStats CalculateRadarStatsFast( const NoteData &in, RadarStats &out );
/**
* @brief Utility functions that deal with NoteData.
@@ -68,13 +54,6 @@ namespace NoteDataUtil
// later. -Kyz
void AutogenKickbox(const NoteData& in, NoteData& out, const TimingData& timing, StepsType out_type, int nonrandom_seed);
// radar values - return between 0.0 and 1.2
float GetStreamRadarValue( const NoteData &in, float fSongSeconds );
float GetVoltageRadarValue( const NoteData &in, float fSongSeconds );
float GetAirRadarValue( const NoteData &in, float fSongSeconds );
float GetFreezeRadarValue( const NoteData &in, float fSongSeconds );
float GetChaosRadarValue( const NoteData &in, float fSongSeconds );
void CalculateRadarValues( const NoteData &in, float fSongSeconds, RadarValues& out );
/**