- Fix crash when changing maps
- Fix message not sent when switching to generated map
/*
* Hedgewars, a free turn based strategy game
* Copyright (c) 2007 Andrey Korotaev <unC0Rr@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#include "SDLs.h"
#include "SDL.h"
#include "hwconsts.h"
SDLInteraction::SDLInteraction()
{
music = NULL;
SDL_Init(SDL_INIT_VIDEO);
SDL_Init(SDL_INIT_AUDIO);
Mix_OpenAudio(22050, 0x8010, 2, 512);
Mix_VolumeMusic(50);
}
SDLInteraction::~SDLInteraction()
{
SDL_Quit();
}
QStringList SDLInteraction::getResolutions() const
{
QStringList result;
SDL_Rect **modes;
modes = SDL_ListModes(NULL, SDL_FULLSCREEN);
if((modes == (SDL_Rect **)0) || (modes == (SDL_Rect **)-1))
{
result << "640x480";
} else
{
for(int i = 0; modes[i]; ++i)
if ((modes[i]->w >= 640) && (modes[i]->h >= 480))
result << QString("%1x%2").arg(modes[i]->w).arg(modes[i]->h);
}
return result;
}
void SDLInteraction::StartMusic()
{
if (!music)
music = Mix_LoadMUS(QString(datadir->absolutePath() + "/Music/main theme.ogg").toAscii().constData());
Mix_FadeInMusic(music, -1, 3000);
}
void SDLInteraction::StopMusic()
{
Mix_FadeOutMusic(2000);
}