Hi there, this small patch allows to precache the sounds before loading a map (and does it properly), so you have no delays even when game starts. Pretty simple patch, I think I should have added it to sample cache from the very beginning.
Since attaches aren't allowed, I put the file here: http://rcl.mine.nu/outbound/wormux/precaching-proper.diff Or, alternatively, you can copy it from this message. Cheers, Dmitry 'RCL' Rekman Index: src/sound/sample_cache.cpp =================================================================== --- src/sound/sample_cache.cpp (revision 4016) +++ src/sound/sample_cache.cpp (working copy) @@ -146,3 +146,8 @@ return it->second; } +void SampleCache::Precache( const std::string & file_name ) +{ + Mix_Chunk * precache = LoadSound( file_name ); + FreeChunk( precache ); // this does not remove the sample from cache +}; Index: src/sound/jukebox.cpp =================================================================== --- src/sound/jukebox.cpp (revision 4016) +++ src/sound/jukebox.cpp (working copy) @@ -381,6 +381,9 @@ // Inserting sound sample in list m_soundsamples.insert(sound_sample(profile+"/"+sample, sample_filename)); + + // Precache + m_cache.Precache( sample_filename.c_str() ); } // The profile is loaded Index: src/sound/sample_cache.h =================================================================== --- src/sound/sample_cache.h (revision 4016) +++ src/sound/sample_cache.h (working copy) @@ -57,9 +57,11 @@ public: void Clear (); + void Precache ( const std::string & file_name ); Mix_Chunk * LoadSound ( const std::string & file_name ); void FreeChunk ( Mix_Chunk * pchk ); + SampleCache ( size_t memory_limit = 0 ); virtual ~SampleCache () { Clear(); } }; _______________________________________________ Wormux-dev mailing list Wormux-dev@gna.org https://mail.gna.org/listinfo/wormux-dev