1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-30 15:15:31 +00:00

Fix windows builds

Can't instantiate a container (at least with MSVC) without knowing the exact size of the object being stored, forward-declares only work with pointers.
I couldn't see a simple way to remove the forward declare, so pointers and memory management it is.
This commit is contained in:
Alexander "Ace" Olofsson 2015-11-30 13:36:15 +01:00
parent e49bce7b40
commit b085c09f86
2 changed files with 7 additions and 6 deletions

View file

@ -104,9 +104,10 @@ namespace MWSound
SoundBufferList::iterator sfxiter = mSoundBuffers.begin();
for(;sfxiter != mSoundBuffers.end();++sfxiter)
{
if(sfxiter->mHandle)
mOutput->unloadSound(sfxiter->mHandle);
sfxiter->mHandle = 0;
if((*sfxiter)->mHandle)
mOutput->unloadSound((*sfxiter)->mHandle);
(*sfxiter)->mHandle = 0;
delete (*sfxiter);
}
mUnusedBuffers.clear();
}
@ -145,8 +146,8 @@ namespace MWSound
min = std::max(min, 1.0f);
max = std::max(min, max);
Sound_Buffer *sfx = &*mSoundBuffers.insert(mSoundBuffers.end(),
Sound_Buffer("Sound/"+sound->mSound, volume, min, max)
Sound_Buffer *sfx = *mSoundBuffers.insert(mSoundBuffers.end(),
new Sound_Buffer("Sound/"+sound->mSound, volume, min, max)
);
mVFS->normalizeFilename(sfx->mResourceName);

View file

@ -56,7 +56,7 @@ namespace MWSound
float mVoiceVolume;
float mFootstepsVolume;
typedef std::deque<Sound_Buffer> SoundBufferList;
typedef std::deque<Sound_Buffer*> SoundBufferList;
// List of sound buffers, grown as needed. New enties are added to the
// back, allowing existing Sound_Buffer references/pointers to remain
// valid.