diff --git a/AI/BattleAI/BattleAI.h b/AI/BattleAI/BattleAI.h index d16c1efdf..73e42a12c 100644 --- a/AI/BattleAI/BattleAI.h +++ b/AI/BattleAI/BattleAI.h @@ -1,100 +1,100 @@ -/* - * BattleAI.h, part of VCMI engine - * - * Authors: listed in file AUTHORS in main folder - * - * License: GNU General Public License v2.0 or later - * Full text of license available in license.txt file, in main folder - * - */ -#pragma once -#include "../../lib/AI_Base.h" -#include "PotentialTargets.h" - -class CSpell; -class EnemyInfo; - -/* -struct CurrentOffensivePotential -{ - std::map ourAttacks; - std::map enemyAttacks; - - CurrentOffensivePotential(ui8 side) - { - for(auto stack : cbc->battleGetStacks()) - { - if(stack->attackerOwned == !side) - ourAttacks[stack] = PotentialTargets(stack); - else - enemyAttacks[stack] = PotentialTargets(stack); - } - } - - int potentialValue() - { - int ourPotential = 0, enemyPotential = 0; - for(auto &p : ourAttacks) - ourPotential += p.second.bestAction().attackValue(); - - for(auto &p : enemyAttacks) - enemyPotential += p.second.bestAction().attackValue(); - - return ourPotential - enemyPotential; - } -}; -*/ // These lines may be usefull but they are't used in the code. - -struct PossibleSpellcast -{ - const CSpell *spell; - BattleHex dest; - si32 value; -}; - -class CBattleAI : public CBattleGameInterface -{ - int side; - std::shared_ptr cb; - - //Previous setting of cb - bool wasWaitingForRealize, wasUnlockingGs; - -public: - CBattleAI(void); - ~CBattleAI(void); - - void init(std::shared_ptr CB) override; - void attemptCastingSpell(); - - BattleAction activeStack(const CStack * stack) override; //called when it's turn of that stack - BattleAction goTowards(const CStack * stack, BattleHex hex ); - - boost::optional considerFleeingOrSurrendering(); - - std::vector getTargetsToConsider(const CSpell *spell, const ISpellCaster * caster) const; - static int distToNearestNeighbour(BattleHex hex, const ReachabilityInfo::TDistances& dists, BattleHex *chosenHex = nullptr); - static bool isCloser(const EnemyInfo & ei1, const EnemyInfo & ei2, const ReachabilityInfo::TDistances & dists); - - void print(const std::string &text) const; - BattleAction useCatapult(const CStack *stack); - void battleStart(const CCreatureSet * army1, const CCreatureSet * army2, int3 tile, const CGHeroInstance * hero1, const CGHeroInstance * hero2, bool Side); - //void actionFinished(const BattleAction &action) override;//occurs AFTER every action taken by any stack or by the hero - //void actionStarted(const BattleAction &action) override;//occurs BEFORE every action taken by any stack or by the hero - //void battleAttack(const BattleAttack *ba) override; //called when stack is performing attack - //void battleStacksAttacked(const std::vector & bsa) override; //called when stack receives damage (after battleAttack()) - //void battleEnd(const BattleResult *br) override; - //void battleResultsApplied() override; //called when all effects of last battle are applied - //void battleNewRoundFirst(int round) override; //called at the beginning of each turn before changes are applied; - //void battleNewRound(int round) override; //called at the beginning of each turn, round=-1 is the tactic phase, round=0 is the first "normal" turn - //void battleStackMoved(const CStack * stack, std::vector dest, int distance) override; - //void battleSpellCast(const BattleSpellCast *sc) override; - //void battleStacksEffectsSet(const SetStackEffect & sse) override;//called when a specific effect is set to stacks - //void battleTriggerEffect(const BattleTriggerEffect & bte) override; - //void battleStart(const CCreatureSet *army1, const CCreatureSet *army2, int3 tile, const CGHeroInstance *hero1, const CGHeroInstance *hero2, bool side) override; //called by engine when battle starts; side=0 - left, side=1 - right - //void battleStacksHealedRes(const std::vector > & healedStacks, bool lifeDrain, bool tentHeal, si32 lifeDrainFrom) override; //called when stacks are healed / resurrected first element of pair - stack id, second - healed hp - //void battleNewStackAppeared(const CStack * stack) override; //not called at the beginning of a battle or by resurrection; called eg. when elemental is summoned - //void battleObstaclesRemoved(const std::set & removedObstacles) override; //called when a certain set of obstacles is removed from batlefield; IDs of them are given - //void battleCatapultAttacked(const CatapultAttack & ca) override; //called when catapult makes an attack - //void battleStacksRemoved(const BattleStacksRemoved & bsr) override; //called when certain stack is completely removed from battlefield -}; +/* + * BattleAI.h, part of VCMI engine + * + * Authors: listed in file AUTHORS in main folder + * + * License: GNU General Public License v2.0 or later + * Full text of license available in license.txt file, in main folder + * + */ +#pragma once +#include "../../lib/AI_Base.h" +#include "PotentialTargets.h" + +class CSpell; +class EnemyInfo; + +/* +struct CurrentOffensivePotential +{ + std::map ourAttacks; + std::map enemyAttacks; + + CurrentOffensivePotential(ui8 side) + { + for(auto stack : cbc->battleGetStacks()) + { + if(stack->attackerOwned == !side) + ourAttacks[stack] = PotentialTargets(stack); + else + enemyAttacks[stack] = PotentialTargets(stack); + } + } + + int potentialValue() + { + int ourPotential = 0, enemyPotential = 0; + for(auto &p : ourAttacks) + ourPotential += p.second.bestAction().attackValue(); + + for(auto &p : enemyAttacks) + enemyPotential += p.second.bestAction().attackValue(); + + return ourPotential - enemyPotential; + } +}; +*/ // These lines may be usefull but they are't used in the code. + +struct PossibleSpellcast +{ + const CSpell *spell; + BattleHex dest; + si32 value; +}; + +class CBattleAI : public CBattleGameInterface +{ + int side; + std::shared_ptr cb; + + //Previous setting of cb + bool wasWaitingForRealize, wasUnlockingGs; + +public: + CBattleAI(void); + ~CBattleAI(void); + + void init(std::shared_ptr CB) override; + void attemptCastingSpell(); + + BattleAction activeStack(const CStack * stack) override; //called when it's turn of that stack + BattleAction goTowards(const CStack * stack, BattleHex hex ); + + boost::optional considerFleeingOrSurrendering(); + + std::vector getTargetsToConsider(const CSpell *spell, const ISpellCaster * caster) const; + static int distToNearestNeighbour(BattleHex hex, const ReachabilityInfo::TDistances& dists, BattleHex *chosenHex = nullptr); + static bool isCloser(const EnemyInfo & ei1, const EnemyInfo & ei2, const ReachabilityInfo::TDistances & dists); + + void print(const std::string &text) const; + BattleAction useCatapult(const CStack *stack); + void battleStart(const CCreatureSet * army1, const CCreatureSet * army2, int3 tile, const CGHeroInstance * hero1, const CGHeroInstance * hero2, bool Side) override; + //void actionFinished(const BattleAction &action) override;//occurs AFTER every action taken by any stack or by the hero + //void actionStarted(const BattleAction &action) override;//occurs BEFORE every action taken by any stack or by the hero + //void battleAttack(const BattleAttack *ba) override; //called when stack is performing attack + //void battleStacksAttacked(const std::vector & bsa) override; //called when stack receives damage (after battleAttack()) + //void battleEnd(const BattleResult *br) override; + //void battleResultsApplied() override; //called when all effects of last battle are applied + //void battleNewRoundFirst(int round) override; //called at the beginning of each turn before changes are applied; + //void battleNewRound(int round) override; //called at the beginning of each turn, round=-1 is the tactic phase, round=0 is the first "normal" turn + //void battleStackMoved(const CStack * stack, std::vector dest, int distance) override; + //void battleSpellCast(const BattleSpellCast *sc) override; + //void battleStacksEffectsSet(const SetStackEffect & sse) override;//called when a specific effect is set to stacks + //void battleTriggerEffect(const BattleTriggerEffect & bte) override; + //void battleStart(const CCreatureSet *army1, const CCreatureSet *army2, int3 tile, const CGHeroInstance *hero1, const CGHeroInstance *hero2, bool side) override; //called by engine when battle starts; side=0 - left, side=1 - right + //void battleStacksHealedRes(const std::vector > & healedStacks, bool lifeDrain, bool tentHeal, si32 lifeDrainFrom) override; //called when stacks are healed / resurrected first element of pair - stack id, second - healed hp + //void battleNewStackAppeared(const CStack * stack) override; //not called at the beginning of a battle or by resurrection; called eg. when elemental is summoned + //void battleObstaclesRemoved(const std::set & removedObstacles) override; //called when a certain set of obstacles is removed from batlefield; IDs of them are given + //void battleCatapultAttacked(const CatapultAttack & ca) override; //called when catapult makes an attack + //void battleStacksRemoved(const BattleStacksRemoved & bsr) override; //called when certain stack is completely removed from battlefield +}; diff --git a/launcher/modManager/cmodlistmodel_moc.h b/launcher/modManager/cmodlistmodel_moc.h index dce474ded..8e0071d9b 100644 --- a/launcher/modManager/cmodlistmodel_moc.h +++ b/launcher/modManager/cmodlistmodel_moc.h @@ -78,7 +78,7 @@ class CModFilterModel : public QSortFilterProxyModel bool filterMatchesThis(const QModelIndex & source) const; - bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const; + bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override; public: void setTypeFilter(int filteredType, int filterMask); diff --git a/launcher/modManager/cmodlistview_moc.h b/launcher/modManager/cmodlistview_moc.h index 705bbd492..f107814c3 100644 --- a/launcher/modManager/cmodlistview_moc.h +++ b/launcher/modManager/cmodlistview_moc.h @@ -27,9 +27,9 @@ class CModListView : public QWidget SettingsListener settingsListener; bool repositoriesChanged; - void showEvent(QShowEvent * event); + void showEvent(QShowEvent * event) override; - void keyPressEvent(QKeyEvent * event); + void keyPressEvent(QKeyEvent * event) override; void setupModModel(); void setupFilterModel(); diff --git a/launcher/modManager/imageviewer_moc.h b/launcher/modManager/imageviewer_moc.h index a09ce9557..11f6e7df8 100644 --- a/launcher/modManager/imageviewer_moc.h +++ b/launcher/modManager/imageviewer_moc.h @@ -19,8 +19,8 @@ public: static void showPixmap(QPixmap & pixmap, QWidget *parent = 0); protected: - void mousePressEvent(QMouseEvent * event); - void keyPressEvent(QKeyEvent * event); + void mousePressEvent(QMouseEvent * event) override; + void keyPressEvent(QKeyEvent * event) override; QSize calculateWindowSize(); diff --git a/server/CGameHandler.cpp b/server/CGameHandler.cpp index 8d25d6a7e..c20b895f0 100644 --- a/server/CGameHandler.cpp +++ b/server/CGameHandler.cpp @@ -93,7 +93,7 @@ public: template class CApplyOnGH : public CBaseForGHApply { public: - bool applyOnGH(CGameHandler *gh, CConnection *c, void *pack, PlayerColor player) const + bool applyOnGH(CGameHandler *gh, CConnection *c, void *pack, PlayerColor player) const override { T *ptr = static_cast(pack); ptr->c = c; @@ -106,7 +106,7 @@ template <> class CApplyOnGH : public CBaseForGHApply { public: - bool applyOnGH(CGameHandler *gh, CConnection *c, void *pack, PlayerColor player) const + bool applyOnGH(CGameHandler *gh, CConnection *c, void *pack, PlayerColor player) const override { logGlobal->error("Cannot apply on GH plain CPack!"); assert(0);