diff -r 0f6669da2fcb -r 44d9045b26ff QTfrontend/gameconfig.cpp --- a/QTfrontend/gameconfig.cpp Mon Jul 24 22:37:34 2006 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,128 +0,0 @@ -/* - * Hedgewars, a worms-like game - * Copyright (c) 2006 Andrey Korotaev - * - * Distributed under the terms of the BSD-modified licence: - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * with the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO - * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include "gameconfig.h" - -GameConfig::GameConfig(HWForm * FormWidgets) - : QObject() -{ - Form = FormWidgets; - - cfgdir.setPath(cfgdir.homePath()); - if (!cfgdir.exists(".hedgewars")) - { - if (!cfgdir.mkdir(".hedgewars")) - { - QMessageBox::critical(0, - tr("Error"), - tr("Cannot create directory %1").arg("/.hedgewars"), - tr("Quit")); - return ; - } - } - cfgdir.cd(".hedgewars"); - - QFile settings(cfgdir.absolutePath() + "/options"); - if (settings.open(QIODevice::ReadOnly)) - { - QTextStream stream(&settings); - stream.setCodec("UTF-8"); - QString str; - - while (!stream.atEnd()) - { - str = stream.readLine(); - if (str.startsWith(";")) continue; - if (str.startsWith("resolution ")) - { - Form->ui.CBResolution->setCurrentIndex(str.mid(11).toLong()); - } else - if (str.startsWith("fullscreen ")) - { - Form->ui.CBFullscreen->setChecked(str.mid(11).toLong()); - } else - if (str.startsWith("sound ")) - { - Form->ui.CBEnableSound->setChecked(str.mid(6).toLong()); - } else - if (str.startsWith("nick ")) - { - Form->ui.editNetNick->setText(str.mid(5)); - } - } - settings.close(); - } -} - -QStringList GameConfig::GetTeamsList() -{ - return cfgdir.entryList(QStringList("*.cfg")); -} - -void GameConfig::SaveOptions() -{ - QFile settings(cfgdir.absolutePath() + "/options"); - if (!settings.open(QIODevice::WriteOnly)) - { - QMessageBox::critical(0, - tr("Error"), - tr("Cannot save options to file %1").arg(settings.fileName()), - tr("Quit")); - return ; - } - QTextStream stream(&settings); - stream.setCodec("UTF-8"); - stream << "; Generated by Hedgewars, do not modify" << endl; - stream << "resolution " << Form->ui.CBResolution->currentIndex() << endl; - stream << "fullscreen " << Form->ui.CBFullscreen->isChecked() << endl; - stream << "sound " << Form->ui.CBEnableSound->isChecked() << endl; - stream << "nick " << Form->ui.editNetNick->text() << endl; - settings.close(); -} - -int GameConfig::vid_Resolution() -{ - return Form->ui.CBResolution->currentIndex(); -} - -bool GameConfig::vid_Fullscreen() -{ - return Form->ui.CBFullscreen->isChecked(); -} - -bool GameConfig::isSoundEnabled() -{ - return Form->ui.CBEnableSound->isChecked(); -}