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/Dialog.cpp | 1360 ++++++++++++++++++++++------------------------------ 1 file changed, 580 insertions(+), 780 deletions(-) (limited to 'pokemod/Dialog.cpp') diff --git a/pokemod/Dialog.cpp b/pokemod/Dialog.cpp index 6f7210d9..41ed2dea 100644 --- a/pokemod/Dialog.cpp +++ b/pokemod/Dialog.cpp @@ -6,19 +6,18 @@ // Created: Wed Feb 28 21:05:56 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 "Dialog.h" @@ -47,774 +46,575 @@ PokeGen::PokeMod::Dialog::~Dialog() void PokeGen::PokeMod::Dialog::Validate() { - LogValidateStart("Dialog", id); - if (dialog == "") - { - LogVarNotSet("Dialog", id, "dialog"); - isValid = false; - } - if (dialog.Count('%') % 2) - { - Log::Write(String("Dialog Validation: Command delimiter mismatch in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - else - { - unsigned curCmd = DC_END; - unsigned numArgs = 0; - for (unsigned i = 0; i < dialog.length(); ++i) - { - switch (dialog[i]) - { - case '%': - switch (curCmd) - { - case DC_FLIP_FLAG ... DC_EXIT: - if (numArgs != DialogCommandNumArgs[curCmd]) - { - Log::Write(String("Dialog Validation: Invalid number of arguments (%u) for %s (%u wanted) in %u", numArgs, DialogCommandStr[curCmd], DialogCommandNumArgs[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case DC_MENU: - if (!(numArgs % 2)) - { - Log::Write(String("Dialog Validation: Argument mismatch for Menu in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case DC_END: - String curCmdStr; - for (; (dialog[i] != '%') && (dialog[i] != '#'); ++i) - curCmdStr.append(1, dialog[i]); - if (((curCmd = FindIn(DC_END, curCmdStr, DialogCommandAbbrStr)) == DC_END)) - { - if (curCmdStr != "") - { - Log::Write(String("Dialog Validation: Invalid command \"%s\" in %u", curCmdStr.c_str(), id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - curCmd = DC_END; - } - numArgs = 0; - } - break; - case '#': - if (curCmd != DC_END) - { - String arg; - unsigned tempU; - unsigned long tempUL; - Map *map = NULL; - for (; (dialog[i] != '%') && (dialog[i] != '#'); ++i) - arg.append(1, dialog[i]); - ++numArgs; - switch (curCmd) - { - case DC_FLIP_FLAG: - case DC_SET_FLAG: - case DC_UNSET_FLAG: - case DC_RANDOMIZE_FLAG: - if (numArgs == 1) - { - if (!arg.Convert(tempUL)) - { - Log::Write(String("Dialog Validation: Bad flag in \"%s\" on %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_TEST_FLAG: - switch (numArgs) - { - case 1: - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Test Flag\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - if (!arg.Convert(tempUL)) - { - Log::Write(String("Dialog Validation: Bad flag in \"Test Flag\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 3: - case 4: - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"Test Flag\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_DIALOG: - if (numArgs == 1) - { - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Dialog\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else if (numArgs == 2) - { - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"Dialog\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_YES_NO: - case DC_DELETE_MOVE: - switch (numArgs) - { - case 1: - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - case 3: - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"%s\" in %u", numArgs, DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_ITEM_SHOP: - if (numArgs == 1) - { - if (!(arg.Convert(tempU) ? pokemod->GetStore(tempU) : pokemod->GetStore(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Test Flag\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_GIVE_ITEM: - case DC_TAKE_ITEM: - case DC_CHECK_ITEM: - switch (numArgs) - { - case 1: - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - if (!(arg.Convert(tempU) ? pokemod->GetItem(tempU) : pokemod->GetItem(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #2 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 3: - case 4: - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"%s\" in %u", numArgs, DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_COIN_LIST: - if (numArgs == 1) - { - if (!(arg.Convert(tempU) ? pokemod->GetCoinList(tempU) : pokemod->GetCoinList(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Coin List\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_TEACH_MOVE: - switch (numArgs) - { - case 1: - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Teach Move\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - if (!(arg.Convert(tempU) ? pokemod->GetMove(tempU) : pokemod->GetMove(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #2 in \"Teach Move\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 3: - case 4: - case 5: - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"Teach Move\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_CHECK_MOVE: - switch (numArgs) - { - case 1: - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Check Move\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - if ((arg != "Lead") && (arg != "All") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #2 in \"Check Move\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 3: - if (!(arg.Convert(tempU) ? pokemod->GetMove(tempU) : pokemod->GetMove(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #3 in \"Check Move\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 4: - case 5: - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"Check Move\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_GIVE_POKEMON: - switch (numArgs) - { - case 1: - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Give Pokémon\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - if (!(arg.Convert(tempU) ? pokemod->GetPokemon(tempU) : pokemod->GetPokemon(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #3 in \"Give Pokémon\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 3: - if ((arg != "false") && (arg != "true") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #3 in \"Give Pokémon\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 4: - if (arg.Convert(tempUL)) - { - if (pokemod->GetMaxLevel() < tempUL) - { - Log::Write(String("Dialog Validation: Higher level than allowed in \"Give Pokémon\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else - { - Log::Write(String("Dialog Validation: Invalid argument #4 in \"Give Pokémon\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 5: - if (!arg.Convert(tempUL)) - { - Log::Write(String("Dialog Validation: Invalid argument #5 in \"Give Pokémon\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 6: - case 7: - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"Give Pokémon\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_TAKE_POKEMON: - case DC_VIEW_POKEMON: - case DC_CHECK_SPECIES: - switch (numArgs) - { - case 1: - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - if (!(arg.Convert(tempU) ? pokemod->GetPokemon(tempU) : pokemod->GetPokemon(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #2 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 3: - case 4: - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"%s\" in %u", numArgs, DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_SHOW_POKEMON: - if (numArgs == 1) - { - if (!(arg.Convert(tempU) ? pokemod->GetPokemon(tempU) : pokemod->GetPokemon(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #2 in \"Show Pokémon\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_GIVE_MONEY: - if (numArgs == 1) - { - if (arg.Convert(tempUL)) - { - if (pokemod->GetMaxMoney() < tempUL) - { - Log::Write(String("Dialog Validation: More money given than can be held in \"Give Money\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Give Money\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_TAKE_MONEY: - switch (numArgs) - { - case 1: - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Take Money\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - if (arg.Convert(tempUL)) - { - if (pokemod->GetMaxMoney() < tempUL) - { - Log::Write(String("Dialog Validation: More money taken than can be held in \"Take Money\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else - { - Log::Write(String("Dialog Validation: Invalid argument #2 in \"Take Money\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 3: - case 4: - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"Take Money\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_MOVE_EFFECT: - case DC_CHECK_DIRECTION: - switch (numArgs) - { - case 1: - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - if (!(map = (arg.Convert(tempU) ? (Map *)pokemod->GetMap(tempU) : (Map *)pokemod->GetMap(arg)))) - { - Log::Write(String("Dialog Validation: Invalid argument #2 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 3: - if (map) - { - if (!(arg.Convert(tempU) ? map->GetMapEffect(tempU) : map->GetMapEffect(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #3 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else if ((arg != "Player") && (arg != "-1")) - Log::Write(String("Dialog Validation: Unable to validate argument #3 in \"%s\" in %u", id), PM_DEBUG_ERROR); - break; - case 4: - if ((arg != "Up") && (arg != "Down") && (arg != "Left") && (arg != "Right") && ((arg != "Random") || (curCmd == DC_CHECK_DIRECTION)) && (arg != "0") && (arg != "1") && (arg != "2") && (arg != "3") && ((arg != "4") || (curCmd == DC_CHECK_DIRECTION))) - { - Log::Write(String("Dialog Validation: Invalid argument #4 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 5: - case 6: - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"%s\" in %u", numArgs, DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_TURN_EFFECT: - switch (numArgs) - { - case 1: - if (!(map = (arg.Convert(tempU) ? (Map *)pokemod->GetMap(tempU) : (Map *)pokemod->GetMap(arg)))) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Turn Effect\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - if (map) - { - if (!(arg.Convert(tempU) ? map->GetMapEffect(tempU) : map->GetMapEffect(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #2 in \"Turn Effect\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else if ((arg != "Player") && (arg != "-1")) - Log::Write(String("Dialog Validation: Unable to validate argument #2 in \"Turn Effect\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - break; - case 4: - if ((arg != "Up") && (arg != "Down") && (arg != "Left") && (arg != "Right") && (arg != "Random") && (arg != "0") && (arg != "1") && (arg != "2") && (arg != "3") && (arg != "4")) - { - Log::Write(String("Dialog Validation: Invalid argument #3 in \"Turn Effect\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_CHECK_ROSTER: - case DC_CHECK_LEVELS: - case DC_CHECK_MONEY: - switch (numArgs) - { - case 1: - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - if ((arg != "<") && (arg != ">") && (arg != "=")) - { - Log::Write(String("Dialog Validation: Invalid argument #2 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 3: - if (arg.Convert(tempUL)) - { - if (((curCmd == DC_CHECK_ROSTER) ? pokemod->GetMaxParty() : ((curCmd == DC_CHECK_LEVELS) ? pokemod->GetMaxLevel() : pokemod->GetMaxMoney())) < tempUL) - { - Log::Write(String("Dialog Validation: More %s than can be carried in \"%s\" in %u", (curCmd == DC_CHECK_ROSTER) ? "party members" : ((curCmd == DC_CHECK_LEVELS) ? "level" : "money"), DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else - { - Log::Write(String("Dialog Validation: Invalid argument #3 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 4: - case 5: - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"%s\" in %u", numArgs, DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_CHECK_HELD_ITEMS: - switch (numArgs) - { - case 1: - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Check Held Items\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - case 3: - case 4: - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"Check Held Items\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_TRADE: - switch (numArgs) - { - case 1: - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Trade\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - case 3: - if (!(arg.Convert(tempU) ? pokemod->GetPokemon(tempU) : pokemod->GetPokemon(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"Trade\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - case 4: - if (!arg.Convert(tempUL)) - { - Log::Write(String("Dialog Validation: Invalid argument #4 in \"Trade\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 5: - case 6: - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"Trade\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_DAYCARE: - if (numArgs == 1) - { - if (!arg.Convert(tempUL)) - { - Log::Write(String("Dialog Validation: Invalid argument #4 in \"Daycare\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_BATTLE: - if (numArgs == 1) - { - if (!(map = (arg.Convert(tempU) ? (Map *)pokemod->GetMap(tempU) : (Map *)pokemod->GetMap(arg)))) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Battle\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else if (numArgs == 2) - { - if (map) - { - if (!(arg.Convert(tempU) ? map->GetMapTrainer(tempU) : map->GetMapTrainer(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #2 in \"Battle\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else - Log::Write(String("Dialog Validation: Unable to validate argument #2 in \"Battle\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - } - break; - case DC_BADGE: - if (numArgs == 1) - { - if (!(arg.Convert(tempU) ? pokemod->GetBadge(tempU) : pokemod->GetBadge(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Badge\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_WARP: - if (numArgs == 1) - { - if (!(map = (arg.Convert(tempU) ? (Map *)pokemod->GetMap(tempU) : (Map *)pokemod->GetMap(arg)))) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Warp\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else if (numArgs == 2) - { - if (map) - { - if (!(arg.Convert(tempU) ? map->GetMapWarp(tempU) : map->GetMapWarp(arg))) - { - Log::Write(String("Dialog Validation: Invalid argument #2 in \"Warp\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else - Log::Write(String("Dialog Validation: Unable to validate argument #2 in \"Warp\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - } - break; - case DC_NAME: - case DC_MAP_SIGN: - if (numArgs == 1) - { - if (arg == "") - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_MUSIC: - case DC_SOUND_EFFECT: - if (numArgs == 1) - { - if (!Path(pokemod->GetPath() + "sound/" + arg).DoesExist()) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"%s\" in %u", DialogCommandStr[curCmd], id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_TIMER: - switch (numArgs) - { - case 1: - if ((arg != "Time") && (arg != "Step") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Timer\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - if (!arg.Convert(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #2 in \"Timer\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 3: - if (!arg.Convert(tempU) || !pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #3 in \"Timer\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_WILD_SCOPE: - if (numArgs == 1) - { - if (!arg.Convert(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Wild Scope\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_SAFARI: - switch (numArgs) - { - case 1: - if (const Item *item = (arg.Convert(tempU) ? pokemod->GetItem(tempU) : pokemod->GetItem(arg))) - { - unsigned i = 0; - unsigned j = 0; - bool temp = false; - while ((i < item->GetItemEffectCount()) || !temp) - { - if (const ItemEffect *e = item->GetItemEffect(j++)) - { - ++i; - if (e->GetEffect() == IE_BALL) - temp = true; - } - } - if (!temp) - { - Log::Write(String("Dialog Validation: Item in argument #1 in \"Safari\" in %u isn\'t a PokéBall", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Safari\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 2: - if (!arg.Convert(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #2 in \"Safari\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - break; - case 3: - if (!arg.Convert(tempU) || (pokemod->GetMaxParty() < tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #3 in \"Safari\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - break; - case DC_MENU: - if (numArgs == 1) - { - if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) - { - Log::Write(String("Dialog Validation: Invalid argument #1 in \"Menu\" in %u", id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else if (numArgs % 2) - { - if (arg.Convert(tempU)) - { - if (!pokemod->GetDialog(tempU)) - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"Menu\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"Menu\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - else if (arg == "") - { - Log::Write(String("Dialog Validation: Invalid argument #%u in \"Menu\" in %u", numArgs, id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); - isValid = false; - } - } - } - } - } + LogValidateStart("Dialog", id); + if (dialog == "") + { + LogVarNotSet("Dialog", id, "dialog"); + isValid = false; + } + if (dialog.count('%') % 2) + { + Log::Write(QString("Dialog Validation: Command delimiter mismatch in %1").arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + isValid = false; + } + else + { + unsigned curCmd = DC_END; + unsigned numArgs = 0; + for (long i = 0; i < dialog.length(); ++i) + { + switch (dialog.at(i).toAscii()) + { + case '%': + switch (curCmd) + { + case DC_FLIP_FLAG ... DC_EXIT: + if (numArgs != DialogCommandNumArgs[curCmd]) + { + Log::Write(QString("Dialog Validation: Invalid number of arguments (%1) for %2 (%3 wanted) in %4").arg(numArgs).arg(DialogCommandStr[curCmd]).arg(DialogCommandNumArgs[curCmd]).arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + isValid = false; + } + break; + case DC_MENU: + if (!(numArgs % 2)) + { + Log::Write(QString("Dialog Validation: Argument mismatch for Menu in %1").arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + isValid = false; + } + break; + case DC_END: + QString curCmdStr; + for (; (dialog.at(i) != '%') && (dialog.at(i) != '#'); ++i) + curCmdStr += dialog.at(i); + if (((curCmd = FindIn(DC_END, curCmdStr, DialogCommandAbbrStr)) == DC_END)) + { + if (curCmdStr != "") + { + Log::Write(QString("Dialog Validation: Invalid command \"%1\" in %2").arg(curCmdStr).arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + isValid = false; + } + curCmd = DC_END; + } + numArgs = 0; + } + break; + case '#': + if (curCmd != DC_END) + { + QString arg; + for (; (dialog.at(i) != '%') && (dialog.at(i) != '#'); ++i) + arg += dialog.at(i); + bool okU; + bool okUL; + unsigned tempU = arg.toUInt(&okU); + unsigned long tempUL = arg.toULong(&okUL); + unsigned invError = 0; + Map *map = NULL; + ++numArgs; + switch (curCmd) + { + case DC_FLIP_FLAG: + case DC_SET_FLAG: + case DC_UNSET_FLAG: + case DC_RANDOMIZE_FLAG: + if (numArgs == 1) + { + if (!okUL) + { + Log::Write(QString("Dialog Validation: Bad flag in \"%1\" on %2").arg(DialogCommandStr[curCmd]).arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + isValid = false; + } + } + break; + case DC_TEST_FLAG: + switch (numArgs) + { + case 1: + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + break; + case 2: + if (!okUL) + { + Log::Write(QString("Dialog Validation: Bad flag in \"Test Flag\" in %1").arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + isValid = false; + } + break; + case 3: + case 4: + if (!okU || !pokemod->GetDialog(tempU)) + invError = numArgs; + } + break; + case DC_DIALOG: + if (numArgs == 1) + { + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + } + else if (numArgs == 2) + { + if (!okU || !pokemod->GetDialog(tempU)) + invError = 2; + } + break; + case DC_YES_NO: + case DC_DELETE_MOVE: + switch (numArgs) + { + case 1: + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + break; + case 2: + case 3: + if (!okU || !pokemod->GetDialog(tempU)) + invError = numArgs; + } + break; + case DC_ITEM_SHOP: + if (numArgs == 1) + { + if (!(okU ? pokemod->GetStore(tempU) : pokemod->GetStore(arg))) + invError = 1; + } + break; + case DC_GIVE_ITEM: + case DC_TAKE_ITEM: + case DC_CHECK_ITEM: + switch (numArgs) + { + case 1: + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + break; + case 2: + if (!(okU ? pokemod->GetItem(tempU) : pokemod->GetItem(arg))) + invError = 2; + break; + case 3: + case 4: + if (!okU || !pokemod->GetDialog(tempU)) + invError = numArgs; + } + break; + case DC_COIN_LIST: + if (numArgs == 1) + { + if (!(okU ? pokemod->GetCoinList(tempU) : pokemod->GetCoinList(arg))) + invError = 1; + } + break; + case DC_TEACH_MOVE: + switch (numArgs) + { + case 1: + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + break; + case 2: + if (!(okU ? pokemod->GetMove(tempU) : pokemod->GetMove(arg))) + invError = 2; + break; + case 3: + case 4: + case 5: + if (!okU || !pokemod->GetDialog(tempU)) + invError = numArgs; + } + break; + case DC_CHECK_MOVE: + switch (numArgs) + { + case 1: + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + break; + case 2: + if ((arg != "Lead") && (arg != "All") && (arg != "0") && (arg != "1")) + invError = 2; + break; + case 3: + if (!(okU ? pokemod->GetMove(tempU) : pokemod->GetMove(arg))) + invError = 3; + break; + case 4: + case 5: + if (!okU || !pokemod->GetDialog(tempU)) + invError = numArgs; + } + break; + case DC_GIVE_POKEMON: + switch (numArgs) + { + case 1: + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + break; + case 2: + if (!(okU ? pokemod->GetPokemon(tempU) : pokemod->GetPokemon(arg))) + invError = 2; + break; + case 3: + if ((arg != "false") && (arg != "true") && (arg != "0") && (arg != "1")) + invError = 3; + break; + case 4: + if (okUL) + { + if (pokemod->GetMaxLevel() < tempUL) + { + Log::Write(QString("Dialog Validation: Higher level than allowed in \"Give Pokďż˝mon\" in %1").arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + isValid = false; + } + } + else + invError = 4; + break; + case 5: + if (!okUL) + invError = 5; + break; + case 6: + case 7: + if (!okU || !pokemod->GetDialog(tempU)) + invError = numArgs; + } + break; + case DC_TAKE_POKEMON: + case DC_VIEW_POKEMON: + case DC_CHECK_SPECIES: + switch (numArgs) + { + case 1: + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + break; + case 2: + if (!(okU ? pokemod->GetPokemon(tempU) : pokemod->GetPokemon(arg))) + invError = 2; + break; + case 3: + case 4: + if (!okU || !pokemod->GetDialog(tempU)) + invError = numArgs; + } + break; + case DC_SHOW_POKEMON: + if (numArgs == 1) + { + if (!(okU ? pokemod->GetPokemon(tempU) : pokemod->GetPokemon(arg))) + invError = 1; + } + break; + case DC_GIVE_MONEY: + if (numArgs == 1) + { + if (okUL) + { + if (pokemod->GetMaxMoney() < tempUL) + { + Log::Write(QString("Dialog Validation: More money given than can be held in \"Give Money\" in %1").arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + isValid = false; + } + } + else + invError = 1; + } + break; + case DC_TAKE_MONEY: + switch (numArgs) + { + case 1: + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + break; + case 2: + if (okUL) + { + if (pokemod->GetMaxMoney() < tempUL) + { + Log::Write(QString("Dialog Validation: More money taken than can be held in \"Take Money\" in %1").arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + isValid = false; + } + } + else + invError = 2; + break; + case 3: + case 4: + if (!okU || !pokemod->GetDialog(tempU)) + invError = numArgs; + } + break; + case DC_MOVE_EFFECT: + case DC_CHECK_DIRECTION: + switch (numArgs) + { + case 1: + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + break; + case 2: + if (!(map = (okU ? (Map *)pokemod->GetMap(tempU) : (Map *)pokemod->GetMap(arg)))) + invError = 2; + break; + case 3: + if (map) + { + if (!(okU ? map->GetMapEffect(tempU) : map->GetMapEffect(arg))) + invError = 3; + } + else if ((arg != "Player") && (arg != "-1")) + Log::Write(QString("Dialog Validation: Unable to validate argument #3 in \"%1\" in %2").arg(DialogCommandStr[curCmd]).arg(id), PM_DEBUG_ERROR); + break; + case 4: + if ((arg != "Up") && (arg != "Down") && (arg != "Left") && (arg != "Right") && ((arg != "Random") || (curCmd == DC_CHECK_DIRECTION)) && (arg != "0") && (arg != "1") && (arg != "2") && (arg != "3") && ((arg != "4") || (curCmd == DC_CHECK_DIRECTION))) + invError = 4; + break; + case 5: + case 6: + if (!okU || !pokemod->GetDialog(tempU)) + invError = numArgs; + } + break; + case DC_TURN_EFFECT: + switch (numArgs) + { + case 1: + if (!(map = (okU ? (Map *)pokemod->GetMap(tempU) : (Map *)pokemod->GetMap(arg)))) + invError = 1; + break; + case 2: + if (map) + { + if (!(okU ? map->GetMapEffect(tempU) : map->GetMapEffect(arg))) + invError = 2; + } + else if ((arg != "Player") && (arg != "-1")) + Log::Write(QString("Dialog Validation: Unable to validate argument #2 in \"Turn Effect\" in %1").arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + break; + case 3: + if ((arg != "Up") && (arg != "Down") && (arg != "Left") && (arg != "Right") && (arg != "Random") && (arg != "0") && (arg != "1") && (arg != "2") && (arg != "3") && (arg != "4")) + invError = 3; + } + break; + case DC_CHECK_ROSTER: + case DC_CHECK_LEVELS: + case DC_CHECK_MONEY: + switch (numArgs) + { + case 1: + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + break; + case 2: + if ((arg != "<") && (arg != ">") && (arg != "=")) + invError = 2; + break; + case 3: + if (okUL) + { + if (((curCmd == DC_CHECK_ROSTER) ? pokemod->GetMaxParty() : ((curCmd == DC_CHECK_LEVELS) ? pokemod->GetMaxLevel() : pokemod->GetMaxMoney())) < tempUL) + { + Log::Write(QString("Dialog Validation: More %1 than can be carried in \"%2\" in %3").arg((curCmd == DC_CHECK_ROSTER) ? "party members" : ((curCmd == DC_CHECK_LEVELS) ? "level" : "money")).arg(DialogCommandStr[curCmd]).arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + isValid = false; + } + } + else + invError = 3; + break; + case 4: + case 5: + if (!okU || !pokemod->GetDialog(tempU)) + invError = numArgs; + } + break; + case DC_CHECK_HELD_ITEMS: + switch (numArgs) + { + case 1: + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + break; + case 2: + case 3: + case 4: + if (!okU || !pokemod->GetDialog(tempU)) + invError = numArgs; + } + break; + case DC_TRADE: + switch (numArgs) + { + case 1: + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + break; + case 2: + case 3: + if (!(okU ? pokemod->GetPokemon(tempU) : pokemod->GetPokemon(arg))) + invError = numArgs; + case 4: + if (!okUL) + invError = 4; + break; + case 5: + case 6: + if (!okU || !pokemod->GetDialog(tempU)) + invError = numArgs; + } + break; + case DC_DAYCARE: + if (numArgs == 1) + { + if (!okUL) + invError = 1; + } + break; + case DC_BATTLE: + if (numArgs == 1) + { + if (!(map = (okU ? (Map *)pokemod->GetMap(tempU) : (Map *)pokemod->GetMap(arg)))) + invError = 1; + } + else if (numArgs == 2) + { + if (map) + { + if (!(okU ? map->GetMapTrainer(tempU) : map->GetMapTrainer(arg))) + invError = 2; + } + else + Log::Write(QString("Dialog Validation: Unable to validate argument #2 in \"Battle\" in %1").arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + } + break; + case DC_BADGE: + if (numArgs == 1) + { + if (!(okU ? pokemod->GetBadge(tempU) : pokemod->GetBadge(arg))) + invError = 1; + } + break; + case DC_WARP: + if (numArgs == 1) + { + if (!(map = (okU ? (Map *)pokemod->GetMap(tempU) : (Map *)pokemod->GetMap(arg)))) + invError = 1; + } + else if (numArgs == 2) + { + if (map) + { + if (!(okU ? map->GetMapWarp(tempU) : map->GetMapWarp(arg))) + invError = 2; + } + else + Log::Write(QString("Dialog Validation: Unable to validate argument #2 in \"Warp\" in %1").arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + } + break; + case DC_NAME: + case DC_MAP_SIGN: + if (numArgs == 1) + { + if (arg == "") + invError = 1; + } + break; + case DC_MUSIC: + case DC_SOUND_EFFECT: + if (numArgs == 1) + { + if (!Path(pokemod->GetPath() + "sound/" + arg).DoesExist()) + invError = 1; + } + break; + case DC_TIMER: + switch (numArgs) + { + case 1: + if ((arg != "Time") && (arg != "Step") && (arg != "0") && (arg != "1")) + invError = 1; + break; + case 2: + if (!okU) + invError = 2; + break; + case 3: + if (!okU || !pokemod->GetDialog(tempU)) + invError = 3; + } + break; + case DC_WILD_SCOPE: + if (numArgs == 1) + { + if (!okU) + invError = 1; + } + break; + case DC_SAFARI: + switch (numArgs) + { + case 1: + if (const Item *item = (okU ? pokemod->GetItem(tempU) : pokemod->GetItem(arg))) + { + unsigned i = 0; + unsigned j = 0; + bool temp = false; + while ((i < item->GetItemEffectCount()) || !temp) + { + if (const ItemEffect *e = item->GetItemEffect(j++)) + { + ++i; + if (e->GetEffect() == IE_BALL) + temp = true; + } + } + if (!temp) + { + Log::Write(QString("Dialog Validation: Item in argument #1 in \"Safari\" in %1 isn\'t a Pokďż˝Ball").arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + isValid = false; + } + } + else + invError = 1; + break; + case 2: + if (!okU) + invError = 2; + break; + case 3: + if (!okU || (pokemod->GetMaxParty() < tempU)) + invError = 3; + } + break; + case DC_MENU: + if (numArgs == 1) + { + if ((arg != "Call") && (arg != "Goto") && (arg != "0") && (arg != "1")) + invError = 1; + } + else if (numArgs % 2) + { + if (okU) + { + if (!pokemod->GetDialog(tempU)) + invError = numArgs; + } + else + invError = numArgs; + } + else if (arg == "") + invError = numArgs; + } + if (invError) + { + Log::Write(QString("Dialog Validation: Invalid argument %1 in \"%2\" in %3").arg(invError).arg(DialogCommandStr[curCmd]).arg(id), PM_DEBUG_ERROR | PM_DEBUG_VALIDATION); + isValid = false; + } + } + } + } } LogValidateOver("Dialog", id, isValid); } @@ -834,7 +634,7 @@ void PokeGen::PokeMod::Dialog::ImportIni(Ini &ini, const unsigned _id) LogImportOver("Dialog", id); } -void PokeGen::PokeMod::Dialog::ExportIni(std::ofstream &fout) const +void PokeGen::PokeMod::Dialog::ExportIni(QFile &fout) const { LogExportStart("Dialog", id); Ini exDialog("dialog"); @@ -844,24 +644,24 @@ void PokeGen::PokeMod::Dialog::ExportIni(std::ofstream &fout) const LogExportOver("Dialog", id); } -void PokeGen::PokeMod::Dialog::SetDialog(const String &d) +void PokeGen::PokeMod::Dialog::SetDialog(const QString &d) { LogSetVar("Dialog", id, "dialog", d); dialog = d; } -PokeGen::PokeMod::String PokeGen::PokeMod::Dialog::GetDialog() const +QString PokeGen::PokeMod::Dialog::GetDialog() const { LogFetchVar("Dialog", id, "dialog", dialog); return dialog; } -void PokeGen::PokeMod::Dialog::InsertDialogCommand(const String &cmd, const unsigned pos) +void PokeGen::PokeMod::Dialog::InsertDialogCommand(const QString &cmd, const long pos) { - Log::Write(String("Dialog: Inserting dialog command %s into %u at %u", cmd.c_str(), id, pos), PM_DEBUG_INFO); + Log::Write(QString("Dialog: Inserting dialog command %1 into %2 at %3").arg(cmd).arg(id).arg(pos), PM_DEBUG_INFO); if (dialog.length() < pos) { - Log::Write(String("Dialog: Position out-of-range in %u", id), PM_DEBUG_ERROR); + Log::Write(QString("Dialog: Position out-of-range in %1").arg(id), PM_DEBUG_ERROR); return; } dialog.insert(pos, cmd); -- cgit