///////////////////////////////////////////////////////////////////////////// // Name: pokemod/Time.cpp // Purpose: Define the start of a time of day in the PokéMod // Author: Ben Boeckel // Modified by: Ben Boeckel // Created: Wed Feb 28 21:00:46 2007 // Copyright: ©2007-2008 Ben Boeckel and Nerdy Productions // Licence: // 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, either version 3 of the License, or // (at your option) any later version. // // 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, see . ///////////////////////////////////////////////////////////////////////////// #include "Pokemod.h" #include "Time.h" Time::Time(const Pokemod* par, const int _id) : Object("Time", par, _id), name(""), startHour(0), startMinute(0) { } Time::Time(const Pokemod* par, const Time& t, const int _id) : Object("Time", par, _id) { *this = t; } Time::Time(const Pokemod* par, const QString& fname, const int _id) : Object("Time", par, _id) { load(fname, _id); } bool Time::validate() const { bool valid = true; pokemod->validationMsg(QString("---Time \"%1\" with id %2---").arg(name).arg(id), Pokemod::V_Msg); if (name == "") { pokemod->validationMsg("Name not defined"); valid = false; } if (23 < startHour) { pokemod->validationMsg("Invalid starting hour"); valid = false; } if (59 < startMinute) { pokemod->validationMsg("Invalid start minute"); valid = false; } return valid; } void Time::load(const QString& fname, const int _id) throw(Exception) { Ini ini(fname); if (_id == -1) ini.getValue("id", id); else id = _id; ini.getValue("name", name, ""); ini.getValue("startHour", startHour, 0); ini.getValue("startMinute", startMinute, 0); } void Time::save() const throw(Exception) { Ini ini; ini.addField("id", id); ini.addField("name", name); ini.addField("startHour", startHour); ini.addField("startMinute", startMinute); ini.save(QString("%1/time/%2.pini").arg(pokemod->getPath()).arg(name)); } void Time::setName(const QString& n) { name = n; } void Time::setStartHour(const int h) throw(BoundsException) { if (24 <= h) throw(BoundsException(className, "startHour")); startHour = h; } void Time::setStartMinute(const int m) throw(BoundsException) { if (60 <= m) throw(BoundsException(className, "startMinute")); startMinute = m; } QString Time::getName() const { return name; } int Time::getStartHour() const { return startHour; } int Time::getStartMinute() const { return startMinute; } Time& Time::operator=(const Time& rhs) { if (this == &rhs) return *this; name = rhs.name; startHour = rhs.startHour; startMinute = rhs.startMinute; return *this; }