///////////////////////////////////////////////////////////////////////////// // Name: pokemod/PokemonMove.cpp // Purpose: Define a move that a Pokémon can learn // Author: Ben Boeckel // Modified by: Ben Boeckel // Created: Tue Mar 20 18:45:29 2007 // Copyright: ©2007 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 2 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. ///////////////////////////////////////////////////////////////////////////// #include "PokemonMove.h" PokeGen::PokeMod::PokemonMove::PokemonMove(const Pokemod *par, const unsigned _id) : move(UINT_MAX), level(0), wild(0) { LogCtor("PokemonMove", _id); id = _id; pokemod = par; } PokeGen::PokeMod::PokemonMove::PokemonMove(const Pokemod *par, Ini &ini, const unsigned _id) { LogCtorIni("PokemonMove", _id); pokemod = par; ImportIni(ini, _id); if (id == UINT_MAX) LogIdError("PokemonMove"); } PokeGen::PokeMod::PokemonMove::~PokemonMove() { LogDtor("PokemonMove", id, GetMoveString()); } void PokeGen::PokeMod::PokemonMove::Validate() { LogValidateStart("PokemonMove", id, GetMoveString()); if (!pokemod->GetMove(move)) { LogVarNotValid("PokemonMove", id, "move"); isValid = false; } if (level < pokemod->GetMaxLevel()) { LogVarNotValid("PokemonMove", id, "level", GetMoveString()); isValid = false; } if (wild < pokemod->GetMaxLevel()) { LogVarNotValid("PokemonMove", id, "wild", GetMoveString()); isValid = false; } LogValidateOver("PokemonMove", id, isValid, GetMoveString()); } #ifdef PG_DEBUG_WINDOW void PokeGen::PokeMod::PokemonMove::Validate(const wxListBox &output) { LogValidateStart("PokemonMove", id, GetMoveString()); if (!pokemod->GetMove(move)) { LogVarNotValid("PokemonMove", id, "move"); output.Append(ConsoleLogVarNotValid("PokemonMove", id, "move")); isValid = false; } if (level < pokemod->GetMaxLevel()) { LogVarNotValid("PokemonMove", id, "level", GetMoveString()); output.Append(ConsoleLogVarNotValid("PokemonMove", id, "level", GetMoveString())); isValid = false; } if (wild < pokemod->GetMaxLevel()) { LogVarNotValid("PokemonMove", id, "wild", GetMoveString()); output.Append(ConsoleLogVarNotValid("PokemonMove", id, "wild", GetMoveString())); isValid = false; } LogValidateOver("PokemonMove", id, isValid, GetMoveString()); } #endif void PokeGen::PokeMod::PokemonMove::ImportIni(Ini &ini, const unsigned _id) { LogImportStart("PokemonMove"); if (_id == UINT_MAX) { ini.GetValue("id", id); if (id == UINT_MAX) LogIdNotFound("PokemonMove"); } else id = _id; ini.GetValue("move", move); ini.GetValue("level", level, 0); ini.GetValue("wild", wild, 0); LogImportOver("PokemonMove", id); } void PokeGen::PokeMod::PokemonMove::ExportIni(std::ofstream &fout, const String &pokemon) const { LogExportStart("PokemonMove", id); Ini exPokemonMove("pokemonMove " + pokemon); exPokemonMove.AddField("id", id); exPokemonMove.AddField("move", move); exPokemonMove.AddField("level", level); exPokemonMove.AddField("wild", wild); exPokemonMove.Export(fout); LogExportOver("PokemonMove", id); } void PokeGen::PokeMod::PokemonMove::SetMove(const unsigned m) { LogSetVar("PokemonMove", id, "move", m); if (pokemod->GetMove(m)) move = m; } void PokeGen::PokeMod::PokemonMove::SetMove(const String &m) { LogSetVar("PokemonMove", id, "move", m); if (const Move *temp = pokemod->GetMove(m)) move = temp->GetId(); } void PokeGen::PokeMod::PokemonMove::SetLevel(const unsigned l) { LogSetVar("PokemonMove", id, "level", l, GetMoveString()); if (l < pokemod->GetMaxLevel()) level = l; } void PokeGen::PokeMod::PokemonMove::SetWild(const unsigned w) { LogSetVar("PokemonMove", id, "wild", w, GetMoveString()); if (w < pokemod->GetMaxLevel()) wild = w; } unsigned PokeGen::PokeMod::PokemonMove::GetMove() const { LogFetchVar("PokemonMove", id, "move", move); return move; } PokeGen::PokeMod::String PokeGen::PokeMod::PokemonMove::GetMoveString() const { LogFetchVar("PokemonMove", id, "move string", move); if (const Move *m = pokemod->GetMove(move)) m->GetName(); return ""; } unsigned PokeGen::PokeMod::PokemonMove::GetLevel() const { LogFetchVar("PokemonMove", id, "level", level, GetMoveString()); return level; } unsigned PokeGen::PokeMod::PokemonMove::GetWild() const { LogFetchVar("PokemonMove", id, "wild", wild, GetMoveString()); return wild; }