From e94d9893b8753e72adb92b2c5eb203830ddf641c Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Sat, 21 Jul 2007 01:39:22 +0000 Subject: Moved to GPLv3 and Qt4, Changed String -> QString, other minor fixes git-svn-id: https://pokegen.svn.sourceforge.net/svnroot/pokegen/trunk@23 6ecfd1a5-f3ed-3746-8530-beee90d26b22 --- pokemod/MapTrainerTeam.cpp | 249 ++++++++++++++++++++++----------------------- 1 file changed, 124 insertions(+), 125 deletions(-) (limited to 'pokemod/MapTrainerTeam.cpp') diff --git a/pokemod/MapTrainerTeam.cpp b/pokemod/MapTrainerTeam.cpp index 2c9d42c4..56286885 100644 --- a/pokemod/MapTrainerTeam.cpp +++ b/pokemod/MapTrainerTeam.cpp @@ -6,19 +6,18 @@ // Created: Tue Mar 20 19:20:21 2007 // Copyright: ©2007 Ben Boeckel and Nerdy Productions // Licence: -// This program is free software; you can redistribute it and/or modify +// 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 2 of the License, or +// 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, write to the Free Software Foundation, Inc., -// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// with this program. If not, see . ///////////////////////////////////////////////////////////////////////////// #include "MapTrainerTeam.h" @@ -59,44 +58,44 @@ void PokeGen::PokeMod::MapTrainerTeam::Validate() LogOutOfRange("MapTrainerTeam", id, "level", level, GetSpeciesString()); isValid = false; } - if (GetItemCount() <= pokemod->GetHoldItems()) - { - std::map idChecker; - std::map itemChecker; - for (std::vector::const_iterator i = items.begin(); i != items.end(); ++i) - { - if (!pokemod->GetItem(*i)) - { - LogVarNotValid("MapTrainerTeam", id, "item"); - isValid = false; - } - ++idChecker[*i]; - ++itemChecker[pokemod->GetItem(*i)->GetName()]; - } - for (std::map::const_iterator i = idChecker.begin(); i != idChecker.end(); ++i) - { - if (1 < i->second) - { - LogDuplicateId("MapTrainerTeam", id, "item", i->first); - isValid = false; - } - } - for (std::map::const_iterator i = itemChecker.begin(); i != itemChecker.end(); ++i) - { - if (1 < i->second) - { - LogDuplicateSubmodule("MapTrainerTeam", id, "item", i->first); - isValid = false; - } - } - } - else if (GetItemCount()) - { - Log::Write(String("MapTrainerTeam Validation: Too many held items in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - else - LogSubmoduleEmpty("MapTrainerTeam", id, "item"); + if (GetItemCount() <= pokemod->GetHoldItems()) + { + QMap idChecker; + QMap itemChecker; + for (QList::ConstIterator i = items.begin(); i != items.end(); ++i) + { + if (!pokemod->GetItem(*i)) + { + LogVarNotValid("MapTrainerTeam", id, "item"); + isValid = false; + } + ++idChecker[*i]; + ++itemChecker[pokemod->GetItem(*i)->GetName()]; + } + for (QMap::ConstIterator i = idChecker.begin(); i != idChecker.end(); ++i) + { + if (1 < i.value()) + { + LogDuplicateId("MapTrainerTeam", id, "item", i.key()); + isValid = false; + } + } + for (QMap::ConstIterator i = itemChecker.begin(); i != itemChecker.end(); ++i) + { + if (1 < i.value()) + { + LogDuplicateSubmodule("MapTrainerTeam", id, "item", i.key()); + isValid = false; + } + } + } + else if (GetItemCount()) + { + Log::Write(QString("MapTrainerTeam Validation: Too many held items in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + isValid = false; + } + else + LogSubmoduleEmpty("MapTrainerTeam", id, "item"); LogValidateOver("MapTrainerTeam", id, isValid, GetSpeciesString()); } @@ -110,32 +109,32 @@ void PokeGen::PokeMod::MapTrainerTeam::ImportIni(Ini &ini, const unsigned _id) LogIdNotFound("MapTrainerTeam"); } else - id = _id; - unsigned i; - unsigned j; - items.clear(); + id = _id; + unsigned i; + unsigned j; + items.clear(); ini.GetValue("species", species); - ini.GetValue("level", level, 1); - ini.GetValue("numItems", i, 0); - for (unsigned k = 0; k < i; ++k) - { - ini.GetValue(String("item-%u", k), j); - if (k != UINT_MAX) - items.push_back(j); + ini.GetValue("level", level, 1); + ini.GetValue("numItems", i, 0); + for (unsigned k = 0; k < i; ++k) + { + ini.GetValue(QString("item-%u", k), j); + if (k != UINT_MAX) + items.append(j); } LogImportOver("MapTrainerTeam", id); } -void PokeGen::PokeMod::MapTrainerTeam::ExportIni(std::ofstream &fout, const String &map, const unsigned trainerId) const +void PokeGen::PokeMod::MapTrainerTeam::ExportIni(QFile &fout, const QString &map, const unsigned trainerId) const { LogExportStart("MapTrainerTeam", id); - Ini exMapTrainerTeam(String("MapTrainerTeam %u ", trainerId) + map); + Ini exMapTrainerTeam(QString("MapTrainerTeam %u ", trainerId) + map); exMapTrainerTeam.AddField("id", id); exMapTrainerTeam.AddField("species", species); - exMapTrainerTeam.AddField("level", level); - exMapTrainerTeam.AddField("numItems", GetItemCount()); + exMapTrainerTeam.AddField("level", level); + exMapTrainerTeam.AddField("numItems", GetItemCount()); for (unsigned i = 0; i < GetItemCount(); ++i) - exMapTrainerTeam.AddField(String("item-%u", i), items[i]); + exMapTrainerTeam.AddField(QString("item-%u", i), items[i]); exMapTrainerTeam.Export(fout); LogExportOver("MapTrainerTeam", id); } @@ -147,7 +146,7 @@ void PokeGen::PokeMod::MapTrainerTeam::SetSpecies(const unsigned s) species = s; } -void PokeGen::PokeMod::MapTrainerTeam::SetSpecies(const String &s) +void PokeGen::PokeMod::MapTrainerTeam::SetSpecies(const QString &s) { LogSetVar("MapTrainerTeam", id, "species string", s); if (const Pokemon *p = pokemod->GetPokemon(s)) @@ -167,7 +166,7 @@ unsigned PokeGen::PokeMod::MapTrainerTeam::GetSpecies() const return species; } -PokeGen::PokeMod::String PokeGen::PokeMod::MapTrainerTeam::GetSpeciesString() const +QString PokeGen::PokeMod::MapTrainerTeam::GetSpeciesString() const { LogFetchVar("MapTrainerTeam", id, "species string", species); if (const Pokemon *p = pokemod->GetPokemon(species)) @@ -181,66 +180,66 @@ unsigned PokeGen::PokeMod::MapTrainerTeam::GetLevel() const return level; } -unsigned PokeGen::PokeMod::MapTrainerTeam::GetItem(const unsigned i) const -{ - LogSubmoduleFetch("MapTrainerTeam", id, "item", i); - if (i < GetItemCount() <= i) - return items[i]; - LogSubmoduleFetchFail("MapTrainerTeam", id, "item", i); - return UINT_MAX; -} - -unsigned PokeGen::PokeMod::MapTrainerTeam::GetItemCount() const -{ - LogSubmoduleCount("MapTrainerTeam", id, "item"); - return items.size(); -} - -void PokeGen::PokeMod::MapTrainerTeam::NewItem(const unsigned i) -{ - LogSubmoduleNew("MapTrainerTeam", id, "item", i); - if ((GetItemCount() < pokemod->GetHoldItems()) && pokemod->GetItem(i)) - items.push_back(i); -} - -void PokeGen::PokeMod::MapTrainerTeam::NewItem(const String &n) -{ - LogSubmoduleNew("MapTrainerTeam", id, "item", n); - if (GetItemCount() < pokemod->GetHoldItems()) - { - if (const Item *i = pokemod->GetItem(n)) - items.push_back(i->GetId()); - } -} - -void PokeGen::PokeMod::MapTrainerTeam::DeleteItem(const unsigned i) -{ - LogSubmoduleRemoveStart("MapTrainerTeam", id, "item", i); - if (i < GetItemCount()) - DeleteItemByID(items[i]); - else - LogSubmoduleRemoveFail("MapTrainerTeam", id, "item", i); -} - -void PokeGen::PokeMod::MapTrainerTeam::DeleteItem(const String &n) -{ - LogSubmoduleRemoveStart("MapTrainerTeam", id, "item", n); - if (const Item *i = pokemod->GetItem(n)) - DeleteItemByID(i->GetId()); - else - LogSubmoduleRemoveFail("MapTrainerTeam", id, "item", n); -} - -void PokeGen::PokeMod::MapTrainerTeam::DeleteItemByID(const unsigned _id) -{ - LogSubmoduleRemoveStart("MapTrainerTeam", id, "item", _id); - for (std::vector::iterator i = items.begin(); i != items.end(); ++i) - { - if (*i == _id) - { - LogSubmoduleRemoved("MapTrainerTeam", id, "item", _id); - items.erase(i); - } - } - LogSubmoduleRemoveFail("MapTrainerTeam", id, "item", _id); -} +unsigned PokeGen::PokeMod::MapTrainerTeam::GetItem(const unsigned i) const +{ + LogSubmoduleFetch("MapTrainerTeam", id, "item", i); + if (i < GetItemCount() <= i) + return items[i]; + LogSubmoduleFetchFail("MapTrainerTeam", id, "item", i); + return UINT_MAX; +} + +unsigned PokeGen::PokeMod::MapTrainerTeam::GetItemCount() const +{ + LogSubmoduleCount("MapTrainerTeam", id, "item"); + return items.size(); +} + +void PokeGen::PokeMod::MapTrainerTeam::NewItem(const unsigned i) +{ + LogSubmoduleNew("MapTrainerTeam", id, "item", i); + if ((GetItemCount() < pokemod->GetHoldItems()) && pokemod->GetItem(i)) + items.append(i); +} + +void PokeGen::PokeMod::MapTrainerTeam::NewItem(const QString &n) +{ + LogSubmoduleNew("MapTrainerTeam", id, "item", n); + if (GetItemCount() < pokemod->GetHoldItems()) + { + if (const Item *i = pokemod->GetItem(n)) + items.append(i->GetId()); + } +} + +void PokeGen::PokeMod::MapTrainerTeam::DeleteItem(const unsigned i) +{ + LogSubmoduleRemoveStart("MapTrainerTeam", id, "item", i); + if (i < GetItemCount()) + DeleteItemByID(items[i]); + else + LogSubmoduleRemoveFail("MapTrainerTeam", id, "item", i); +} + +void PokeGen::PokeMod::MapTrainerTeam::DeleteItem(const QString &n) +{ + LogSubmoduleRemoveStart("MapTrainerTeam", id, "item", n); + if (const Item *i = pokemod->GetItem(n)) + DeleteItemByID(i->GetId()); + else + LogSubmoduleRemoveFail("MapTrainerTeam", id, "item", n); +} + +void PokeGen::PokeMod::MapTrainerTeam::DeleteItemByID(const unsigned _id) +{ + LogSubmoduleRemoveStart("MapTrainerTeam", id, "item", _id); + for (QList::Iterator i = items.begin(); i != items.end(); ++i) + { + if (*i == _id) + { + LogSubmoduleRemoved("MapTrainerTeam", id, "item", _id); + items.erase(i); + } + } + LogSubmoduleRemoveFail("MapTrainerTeam", id, "item", _id); +} -- cgit