ResourceManager::~ResourceManager()
{
    uint32 index;

    for(index = 0; index < images->size(); index++)
    {
        delete images->at(index);
    }

    for(index = 0; index < fonts->size(); index++)
    {
        delete fonts->at(index);
    }

    for(index = 0; index < audioData->size(); index++)
    {
        s3eFreeBase(audioData->at(index));
    }

    for(index = 0; index < groups->size(); index++)
    {
        IwGetResManager()->DestroyGroup(groups->at(index));
    }

    delete groups;
    delete images;
    delete fonts;
    delete audioSizes;
    delete audioData;
    delete texts;
}
	void SimpleAudioEngine::stopBackgroundMusic(bool bReleaseData)
	{
		s3eAudioStop();
		
		if (bReleaseData)
		{
			s3eFreeBase(g_AudioBuffer);
		}

	}
void Sounds::unloadSounds() {
	if(soundKeyMove != NULL) {
		s3eFreeBase(soundKeyMove->buffer);
		delete soundKeyMove;
		soundKeyMove = NULL;
	}
	if(soundOpenChest != NULL) {
		s3eFreeBase(soundOpenChest->buffer);
		delete soundOpenChest;
		soundOpenChest = NULL;
	}
	if(soundRestartLevel != NULL) {
		s3eFreeBase(soundRestartLevel->buffer);
		delete soundRestartLevel;
		soundRestartLevel = NULL;
	}
	if(soundDoor != NULL) {
		s3eFreeBase(soundDoor->buffer);
		delete soundDoor;
		soundDoor = NULL;
	}
	if(soundClick != NULL) {
		s3eFreeBase(soundClick->buffer);
		delete soundClick;
		soundClick = NULL;
	}
	if(soundMapLocked != NULL) {
		s3eFreeBase(soundMapLocked->buffer);
		delete soundMapLocked;
		soundMapLocked = NULL;
	}
	if(soundUnlockAchievement != NULL) {
		s3eFreeBase(soundUnlockAchievement->buffer);
		delete soundUnlockAchievement;
		soundMapLocked = NULL;
	}
	IGLog("Sounds unloaded");
}
	void SimpleAudioEngine::end()
	{
		s3eAudioStop();
		s3eFreeBase(g_AudioBuffer);
	}
	void SimpleAudioEngine::unloadEffect(const char* pszFilePath)
	{
		s3eFreeBase(g_SoundBuffer);
	}