// Ryzom - MMORPG Framework // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero 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 Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #include "stdpch.h" #include "nel/misc/types_nl.h" #include "nel/misc/common.h" #include "nel/misc/command.h" #include "nel/misc/path.h" #include "npc_description_messages.h" #include "../../server/src/ai_share/ai_share.h" using namespace NLMISC; using namespace std; //--------------------------------------------------------------------------------------- // Stuff used for management of log messages bool VerboseNpcDescriptionMsgLog=false; #define LOG if (!VerboseNpcDescriptionMsgLog) {} else nlinfo CNpcChatProfile::CNpcChatProfile(const CNpcChatProfile &other0, const CNpcChatProfile &other1) { uint i,j; // run through shop types in other0 - trying to add to output shop type list for (i=0;i tmpVal; f.serial(tmpKey); f.serialCont(tmpVal); Scripts.insert(make_pair(tmpKey,tmpVal)); } } else { size = Scripts.size(); f.serial(size); for (TScripts::iterator it = Scripts.begin(); it != Scripts.end(); ++it) { //std::string tmp = it->first; nlWrite(f, serial, it->first); nlWrite(f, serialCont, it->second); } } } void CCustomLootTable::serial(NLMISC::IStream &f) { f.serial(LootSets); f.serial(MoneyFactor); f.serial(MoneyProba); f.serial(MoneyBase); } void CCustomLootTableManager::serial(NLMISC::IStream &f) { uint16 size; if (f.isReading()) { Tables.clear(); f.serial(size); uint32 i = 0; for (; i < size; ++i) { //std::string tmpKey; CCustomElementId tmpKey; CCustomLootTable tmpVal; f.serial(tmpKey); f.serial(tmpVal); Tables.insert(make_pair(tmpKey,tmpVal)); } } else { size = Tables.size(); f.serial(size); for (TCustomLootTable::iterator it = Tables.begin(); it != Tables.end(); ++it) { nlWrite(f, serial, it->first); nlWrite(f, serial, it->second); } } } //--------------------------------------------------------------------------------------- // Control over verbose nature of logging //--------------------------------------------------------------------------------------- NLMISC_COMMAND(verboseNpcDescriptionMsgLog,"Turn on or off or check the state of verbose AI->EGS NPC description message logging","") { if(args.size()>1) return false; if(args.size()==1) { if(args[0]==string("on")||args[0]==string("ON")||args[0]==string("true")||args[0]==string("TRUE")||args[0]==string("1")) VerboseNpcDescriptionMsgLog=true; if(args[0]==string("off")||args[0]==string("OFF")||args[0]==string("false")||args[0]==string("FALSE")||args[0]==string("0")) VerboseNpcDescriptionMsgLog=false; } nlinfo("verbose Logging is %s",VerboseNpcDescriptionMsgLog?"ON":"OFF"); return true; }