summaryrefslogtreecommitdiffstats
path: root/pokemod/Time.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pokemod/Time.cpp')
-rw-r--r--pokemod/Time.cpp94
1 files changed, 56 insertions, 38 deletions
diff --git a/pokemod/Time.cpp b/pokemod/Time.cpp
index 4d632e92..654c71ac 100644
--- a/pokemod/Time.cpp
+++ b/pokemod/Time.cpp
@@ -22,92 +22,110 @@
#include "Time.h"
-PokeGen::PokeMod::Time::Time(const Pokemod* par, const unsigned _id) :
- Object(_id, par),
+PokeGen::PokeMod::Time::Time(const Pokemod& par, const unsigned _id) :
+ Object(par, _id),
name(""),
startHour(0),
startMinute(0)
{
}
-PokeGen::PokeMod::Time::Time(const Pokemod* par, Ini& ini, const unsigned _id) :
- Object(_id, par)
+PokeGen::PokeMod::Time::Time(const Pokemod& par, const Time& t, const unsigned _id) :
+ Object(par, _id)
{
- ImportIni(ini, _id);
+ *this = t;
}
-bool PokeGen::PokeMod::Time::Validate()
+PokeGen::PokeMod::Time::Time(const Pokemod& par, const QString& fname, const unsigned _id) :
+ Object(par, _id)
{
- pokemod->ValidationMsg(QString("---Time \"%1\" with id %2---").arg(name).arg(id), Pokemod::V_Msg);
+ load(fname, _id);
+}
+
+bool PokeGen::PokeMod::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");
- isValid = false;
+ pokemod.validationMsg("Name not defined");
+ valid = false;
}
if (23 < startHour)
{
- pokemod->ValidationMsg("Invalid starting hour");
- isValid = false;
+ pokemod.validationMsg("Invalid starting hour");
+ valid = false;
}
if (59 < startMinute)
{
- pokemod->ValidationMsg("Invalid start minute");
- isValid = false;
+ pokemod.validationMsg("Invalid start minute");
+ valid = false;
}
- return isValid;
+ return valid;
}
-void PokeGen::PokeMod::Time::ImportIni(Ini& ini, const unsigned _id)
+void PokeGen::PokeMod::Time::load(const QString& fname, const unsigned _id)
{
+ Ini ini(fname);
if (_id == UINT_MAX)
- ini.GetValue("id", id);
+ ini.getValue("id", id);
else
id = _id;
- ini.GetValue("name", name, "");
- ini.GetValue("startHour", startHour, 0);
- ini.GetValue("startMinute", startMinute, 0);
+ ini.getValue("name", name, "");
+ ini.getValue("startHour", startHour, 0);
+ ini.getValue("startMinute", startMinute, 0);
}
-void PokeGen::PokeMod::Time::ExportIni(QFile& fout) const
+void PokeGen::PokeMod::Time::save() const
{
- Ini exTime("time");
- exTime.AddField("id", id);
- exTime.AddField("name", name);
- exTime.AddField("startHour", startHour);
- exTime.AddField("startMinute", startMinute);
- exTime.Export(fout);
+ 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 PokeGen::PokeMod::Time::SetName(const QString& n)
+void PokeGen::PokeMod::Time::setName(const QString& n)
{
name = n;
}
-bool PokeGen::PokeMod::Time::SetStartHour(const unsigned h)
+void PokeGen::PokeMod::Time::setStartHour(const unsigned h)
{
- if (h < 24)
- startHour = h;
- return (startHour == h);
+ if (24 <= h)
+ throw("Time: startHour out-of-bounds");
+ startHour = h;
}
-bool PokeGen::PokeMod::Time::SetStartMinute(const unsigned m)
+void PokeGen::PokeMod::Time::setStartMinute(const unsigned m)
{
- if (m < 60)
- startMinute = m;
- return (startMinute == m);
+ if (60 <= m)
+ throw("Time: startMinute out-of-bounds");
+ startMinute = m;
}
-QString PokeGen::PokeMod::Time::GetName() const
+QString PokeGen::PokeMod::Time::getName() const
{
return name;
}
-unsigned PokeGen::PokeMod::Time::GetStartHour() const
+unsigned PokeGen::PokeMod::Time::getStartHour() const
{
return startHour;
}
-unsigned PokeGen::PokeMod::Time::GetStartMinute() const
+unsigned PokeGen::PokeMod::Time::getStartMinute() const
{
return startMinute;
}
+
+PokeGen::PokeMod::Time& PokeGen::PokeMod::Time::operator=(const Time& rhs)
+{
+ if (this == &rhs)
+ return *this;
+ name = rhs.name;
+ startHour = rhs.startHour;
+ startMinute = rhs.startMinute;
+ return *this;
+}