void Queries::popIfTop(QueryPtr query) { LOG_TRACE_PARAMS(logGlobal, "query='%d'", query); if(!query) logGlobal->errorStream() << "The query is nullptr! Ignoring."; popIfTop(*query); }
void CAdventureAI::saveGame(BinarySerializer & h, const int version) /*saving */ { LOG_TRACE_PARAMS(logAi, "version '%i'", version); CGlobalAI::saveGame(h, version); bool hasBattleAI = static_cast<bool>(battleAI); h & hasBattleAI; if(hasBattleAI) { h & std::string(battleAI->dllName); battleAI->saveGame(h, version); } }
void CAdventureAI::saveGame(COSer<CSaveFile> &h, const int version) /*saving */ { LOG_TRACE_PARAMS(logAi, "version '%i'", version); CGlobalAI::saveGame(h, version); bool hasBattleAI = battleAI; h << hasBattleAI; if(hasBattleAI) { h << std::string(battleAI->dllName); battleAI->saveGame(h, version); } }
void Queries::popQuery(const CQuery &query) { LOG_TRACE_PARAMS(logGlobal, "query='%s'", query); assert(query.players.size()); for(auto player : query.players) { auto top = topQuery(player); if(top.get() == &query) popQuery(top); else logGlobal->traceStream() << "Cannot remove query " << query; } }
void CAdventureAI::loadGame(BinaryDeserializer & h, const int version) /*loading */ { LOG_TRACE_PARAMS(logAi, "version '%i'", version); CGlobalAI::loadGame(h, version); bool hasBattleAI = false; h & hasBattleAI; if(hasBattleAI) { std::string dllName; h & dllName; battleAI = CDynLibHandler::getNewBattleAI(dllName); assert(cbc); //it should have been set by the one who new'ed us battleAI->init(cbc); //battleAI->loadGame(h, version); } }
void Queries::popQuery(PlayerColor player, QueryPtr query) { LOG_TRACE_PARAMS(logGlobal, "player='%s', query='%s'", player % query); if(topQuery(player) != query) { logGlobal->traceStream() << "Cannot remove, not a top!"; return; } queries[player] -= query; auto nextQuery = topQuery(player); query->onRemoval(gh, player); //Exposure on query below happens only if removal didn't trigger any new query if(nextQuery && nextQuery == topQuery(player)) { nextQuery->onExposure(gh, query); } }
void Queries::addQuery(PlayerColor player, QueryPtr query) { LOG_TRACE_PARAMS(logGlobal, "player='%s', query='%s'", player % query); query->onAdding(gh, player); queries[player].push_back(query); }