File indexing completed on 2025-03-16 03:51:22
0001 /*************************************************************************** 0002 * copyright : (C) 2004-2007 by Gael de Chalendar 0003 * email : kleag@free.fr 0004 ***************************************************************************/ 0005 0006 /*************************************************************************** 0007 * * 0008 * This program is free software; you can redistribute it and/or modify * 0009 * it under the terms of the GNU General Public License as published by * 0010 * the Free Software Foundation; either either version 2 0011 of the License, or (at your option) any later version.of the License, or * 0012 * (at your option) any later version. * 0013 * * 0014 * You should have received a copy of the GNU General Public License 0015 * along with this program; if not, write to the Free Software 0016 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 0017 * 02110-1301, USA 0018 ***************************************************************************/ 0019 0020 #include "skinSpritesData.h" 0021 0022 #include <QTextStream> 0023 0024 #include <KLocalizedString> 0025 #include <KMessageBox> 0026 0027 namespace Ksirk{ 0028 namespace Sprites { 0029 0030 0031 0032 SkinSpritesData* SkinSpritesData::m_singleton = nullptr; 0033 0034 SkinSpritesData::SkinSpritesData() 0035 { 0036 } 0037 0038 SkinSpritesData::~SkinSpritesData() 0039 { 0040 delete m_singleton; 0041 m_singleton = nullptr; 0042 } 0043 0044 const SkinSpritesData& SkinSpritesData::single() 0045 { 0046 if (m_singleton == nullptr) 0047 { 0048 m_singleton = new SkinSpritesData(); 0049 m_singleton->init(); 0050 } 0051 return *m_singleton; 0052 } 0053 0054 SkinSpritesData& SkinSpritesData::changeable() 0055 { 0056 if (m_singleton == nullptr) 0057 { 0058 m_singleton = new SkinSpritesData(); 0059 m_singleton->init(); 0060 } 0061 return *m_singleton; 0062 } 0063 0064 /** setup default values for default skin sprites */ 0065 void SkinSpritesData::init() 0066 { 0067 m_intDatas.clear(); 0068 m_strDatas.clear(); 0069 } 0070 0071 0072 const QString& SkinSpritesData::skin() const 0073 { 0074 return m_skin; 0075 } 0076 0077 void SkinSpritesData::skin(const QString& newSkin) 0078 { 0079 m_skin = newSkin; 0080 } 0081 0082 int SkinSpritesData::intData(const QString& name) const 0083 { 0084 QMap<QString, int>::const_iterator it = m_intDatas.find(name); 0085 if (it == m_intDatas.end()) 0086 { 0087 QString msg; 0088 QTextStream(&msg) << i18n("Error - Unknown skin int data: ") << name; 0089 KMessageBox::error(nullptr, msg, i18n("Fatal Error")); 0090 exit(1); 0091 } 0092 else 0093 { 0094 return *it; 0095 } 0096 } 0097 0098 const QString& SkinSpritesData::strData(const QString& name) const 0099 { 0100 QMap<QString, QString>::const_iterator it = m_strDatas.find(name); 0101 if (it == m_strDatas.end()) 0102 { 0103 QString msg; 0104 QTextStream(&msg) << i18n("Error - Unknown skin string data: ") << name; 0105 KMessageBox::error(nullptr, msg, i18n("Fatal Error")); 0106 exit(1); 0107 } 0108 else 0109 { 0110 return *it; 0111 } 0112 } 0113 0114 void SkinSpritesData::strData(const QString& name, const QString& data) 0115 { 0116 m_strDatas[name] = data; 0117 } 0118 0119 void SkinSpritesData::intData(const QString& name, int data) 0120 { 0121 m_intDatas[name] = data; 0122 } 0123 0124 0125 } // closing namespace GameLogic 0126 } // closing namespace Ksirk