mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-17 20:58:07 +02:00
Reduced usage of global variables - removed or made const / constexpr
This commit is contained in:
parent
6e399eb21a
commit
4c70abbeb5
@ -10,7 +10,6 @@
|
||||
#pragma once
|
||||
#include "../../lib/battle/CUnitState.h"
|
||||
#include "../../CCallback.h"
|
||||
#include "common.h"
|
||||
#include "StackWithBonuses.h"
|
||||
|
||||
#define BATTLE_TRACE_LEVEL 0
|
||||
|
@ -49,7 +49,6 @@ CBattleAI::~CBattleAI()
|
||||
|
||||
void CBattleAI::initBattleInterface(std::shared_ptr<Environment> ENV, std::shared_ptr<CBattleCallback> CB)
|
||||
{
|
||||
setCbc(CB);
|
||||
env = ENV;
|
||||
cb = CB;
|
||||
playerID = *CB->getPlayerID();
|
||||
@ -121,7 +120,6 @@ void CBattleAI::activeStack(const BattleID & battleID, const CStack * stack )
|
||||
};
|
||||
|
||||
BattleAction result = BattleAction::makeDefend(stack);
|
||||
setCbc(cb); //TODO: make solid sure that AIs always use their callbacks (need to take care of event handlers too)
|
||||
|
||||
auto start = std::chrono::high_resolution_clock::now();
|
||||
|
||||
|
@ -2,7 +2,6 @@ set(battleAI_SRCS
|
||||
AttackPossibility.cpp
|
||||
BattleAI.cpp
|
||||
BattleEvaluator.cpp
|
||||
common.cpp
|
||||
EnemyInfo.cpp
|
||||
PossibleSpellcast.cpp
|
||||
PotentialTargets.cpp
|
||||
@ -17,7 +16,6 @@ set(battleAI_HEADERS
|
||||
AttackPossibility.h
|
||||
BattleAI.h
|
||||
BattleEvaluator.h
|
||||
common.h
|
||||
EnemyInfo.h
|
||||
PotentialTargets.h
|
||||
PossibleSpellcast.h
|
||||
|
@ -1,23 +0,0 @@
|
||||
/*
|
||||
* common.cpp, 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
|
||||
*
|
||||
*/
|
||||
#include "StdInc.h"
|
||||
#include "common.h"
|
||||
|
||||
std::shared_ptr<CBattleCallback> cbc;
|
||||
|
||||
void setCbc(std::shared_ptr<CBattleCallback> cb)
|
||||
{
|
||||
cbc = cb;
|
||||
}
|
||||
|
||||
std::shared_ptr<CBattleCallback> getCbc()
|
||||
{
|
||||
return cbc;
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
/*
|
||||
* common.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
|
||||
|
||||
class CBattleCallback;
|
||||
|
||||
template<typename Key, typename Val, typename Val2>
|
||||
const Val getValOr(const std::map<Key, Val> &Map, const Key &key, const Val2 defaultValue)
|
||||
{
|
||||
//returning references here won't work: defaultValue must be converted into Val, creating temporary
|
||||
auto i = Map.find(key);
|
||||
if(i != Map.end())
|
||||
return i->second;
|
||||
else
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
void setCbc(std::shared_ptr<CBattleCallback> cb);
|
||||
std::shared_ptr<CBattleCallback> getCbc();
|
@ -15,7 +15,7 @@
|
||||
#define strcpy_s(a, b, c) strncpy(a, c, b)
|
||||
#endif
|
||||
|
||||
static const char *g_cszAiName = "Battle AI";
|
||||
static const char * const g_cszAiName = "Battle AI";
|
||||
|
||||
extern "C" DLL_EXPORT int GetGlobalAiVersion()
|
||||
{
|
||||
|
@ -11,7 +11,6 @@
|
||||
|
||||
#include "CEmptyAI.h"
|
||||
|
||||
std::set<CGlobalAI*> ais;
|
||||
extern "C" DLL_EXPORT int GetGlobalAiVersion()
|
||||
{
|
||||
return AI_INTERFACE_VER;
|
||||
|
@ -16,7 +16,7 @@
|
||||
namespace NKAI
|
||||
{
|
||||
|
||||
HitMapInfo HitMapInfo::NoThreat;
|
||||
const HitMapInfo HitMapInfo::NoThreat;
|
||||
|
||||
double HitMapInfo::value() const
|
||||
{
|
||||
@ -285,8 +285,6 @@ const HitMapNode & DangerHitMapAnalyzer::getTileThreat(const int3 & tile) const
|
||||
return hitMap[tile.x][tile.y][tile.z];
|
||||
}
|
||||
|
||||
const std::set<const CGObjectInstance *> empty = {};
|
||||
|
||||
std::set<const CGObjectInstance *> DangerHitMapAnalyzer::getOneTurnAccessibleObjects(const CGHeroInstance * enemy) const
|
||||
{
|
||||
std::set<const CGObjectInstance *> result;
|
||||
|
@ -18,7 +18,7 @@ struct AIPath;
|
||||
|
||||
struct HitMapInfo
|
||||
{
|
||||
static HitMapInfo NoThreat;
|
||||
static const HitMapInfo NoThreat;
|
||||
|
||||
uint64_t danger;
|
||||
uint8_t turn;
|
||||
|
@ -17,7 +17,7 @@
|
||||
namespace NKAI
|
||||
{
|
||||
|
||||
SecondarySkillEvaluator HeroManager::wariorSkillsScores = SecondarySkillEvaluator(
|
||||
const SecondarySkillEvaluator HeroManager::wariorSkillsScores = SecondarySkillEvaluator(
|
||||
{
|
||||
std::make_shared<SecondarySkillScoreMap>(
|
||||
std::map<SecondarySkill, float>
|
||||
@ -46,7 +46,7 @@ SecondarySkillEvaluator HeroManager::wariorSkillsScores = SecondarySkillEvaluato
|
||||
std::make_shared<AtLeastOneMagicRule>()
|
||||
});
|
||||
|
||||
SecondarySkillEvaluator HeroManager::scountSkillsScores = SecondarySkillEvaluator(
|
||||
const SecondarySkillEvaluator HeroManager::scountSkillsScores = SecondarySkillEvaluator(
|
||||
{
|
||||
std::make_shared<SecondarySkillScoreMap>(
|
||||
std::map<SecondarySkill, float>
|
||||
@ -332,7 +332,7 @@ void WisdomRule::evaluateScore(const CGHeroInstance * hero, SecondarySkill skill
|
||||
score += 1.5;
|
||||
}
|
||||
|
||||
std::vector<SecondarySkill> AtLeastOneMagicRule::magicSchools = {
|
||||
const std::vector<SecondarySkill> AtLeastOneMagicRule::magicSchools = {
|
||||
SecondarySkill::AIR_MAGIC,
|
||||
SecondarySkill::EARTH_MAGIC,
|
||||
SecondarySkill::FIRE_MAGIC,
|
||||
|
@ -58,8 +58,8 @@ public:
|
||||
class DLL_EXPORT HeroManager : public IHeroManager
|
||||
{
|
||||
private:
|
||||
static SecondarySkillEvaluator wariorSkillsScores;
|
||||
static SecondarySkillEvaluator scountSkillsScores;
|
||||
static const SecondarySkillEvaluator wariorSkillsScores;
|
||||
static const SecondarySkillEvaluator scountSkillsScores;
|
||||
|
||||
CCallback * cb; //this is enough, but we downcast from CCallback
|
||||
const Nullkiller * ai;
|
||||
@ -114,7 +114,7 @@ public:
|
||||
class AtLeastOneMagicRule : public ISecondarySkillRule
|
||||
{
|
||||
private:
|
||||
static std::vector<SecondarySkill> magicSchools;
|
||||
static const std::vector<SecondarySkill> magicSchools;
|
||||
|
||||
public:
|
||||
void evaluateScore(const CGHeroInstance * hero, SecondarySkill skill, float & score) const override;
|
||||
|
@ -332,7 +332,7 @@ std::vector<CGPathNode *> AINodeStorage::calculateNeighbours(
|
||||
return neighbours;
|
||||
}
|
||||
|
||||
EPathfindingLayer phisycalLayers[2] = {EPathfindingLayer::LAND, EPathfindingLayer::SAIL};
|
||||
constexpr std::array phisycalLayers = {EPathfindingLayer::LAND, EPathfindingLayer::SAIL};
|
||||
|
||||
bool AINodeStorage::increaseHeroChainTurnLimit()
|
||||
{
|
||||
|
@ -18,7 +18,7 @@
|
||||
|
||||
using namespace NKAI;
|
||||
|
||||
CCreatureSet emptyArmy;
|
||||
const CCreatureSet emptyArmy;
|
||||
|
||||
bool HeroExchangeArmy::needsLastStack() const
|
||||
{
|
||||
|
@ -14,7 +14,7 @@
|
||||
#define strcpy_s(a, b, c) strncpy(a, c, b)
|
||||
#endif
|
||||
|
||||
static const char * g_cszAiName = "Nullkiller";
|
||||
static const char * const g_cszAiName = "Nullkiller";
|
||||
|
||||
extern "C" DLL_EXPORT int GetGlobalAiVersion()
|
||||
{
|
||||
|
@ -16,7 +16,7 @@
|
||||
#define strcpy_s(a, b, c) strncpy(a, c, b)
|
||||
#endif
|
||||
|
||||
static const char *g_cszAiName = "Stupid AI 0.1";
|
||||
static const char * const g_cszAiName = "Stupid AI 0.1";
|
||||
|
||||
extern "C" DLL_EXPORT int GetGlobalAiVersion()
|
||||
{
|
||||
|
@ -148,7 +148,7 @@ BuildingID::DWELL_LVL_4_UP, BuildingID::DWELL_LVL_5_UP, BuildingID::DWELL_LVL_6_
|
||||
static const std::vector<BuildingID> unitGrowth = { BuildingID::HORDE_1, BuildingID::HORDE_1_UPGR, BuildingID::HORDE_2, BuildingID::HORDE_2_UPGR };
|
||||
static const std::vector<BuildingID> _spells = { BuildingID::MAGES_GUILD_1, BuildingID::MAGES_GUILD_2, BuildingID::MAGES_GUILD_3,
|
||||
BuildingID::MAGES_GUILD_4, BuildingID::MAGES_GUILD_5 };
|
||||
static const std::vector<BuildingID> extra = { BuildingID::MARKETPLACE, BuildingID::BLACKSMITH, BuildingID::RESOURCE_SILO, BuildingID::SPECIAL_1, BuildingID::SPECIAL_2,
|
||||
static const std::vector<BuildingID> extra = { BuildingID::MARKETPLACE, BuildingID::BLACKSMITH, BuildingID::RESOURCE_SILO, BuildingID::SPECIAL_1, BuildingID::SPECIAL_2,
|
||||
BuildingID::SPECIAL_3, BuildingID::SPECIAL_4, BuildingID::SHIPYARD }; // all remaining buildings
|
||||
|
||||
bool BuildingManager::getBuildingOptions(const CGTownInstance * t)
|
||||
|
@ -14,7 +14,7 @@
|
||||
#define strcpy_s(a, b, c) strncpy(a, c, b)
|
||||
#endif
|
||||
|
||||
static const char * g_cszAiName = "VCAI";
|
||||
static const char * const g_cszAiName = "VCAI";
|
||||
|
||||
extern "C" DLL_EXPORT int GetGlobalAiVersion()
|
||||
{
|
||||
|
@ -56,7 +56,6 @@ namespace po = boost::program_options;
|
||||
namespace po_style = boost::program_options::command_line_style;
|
||||
|
||||
static std::atomic<bool> quitRequestedDuringOpeningPlayback = false;
|
||||
static po::variables_map vm;
|
||||
|
||||
#ifndef VCMI_IOS
|
||||
void processCommand(const std::string &message);
|
||||
@ -118,6 +117,8 @@ int main(int argc, char * argv[])
|
||||
#endif
|
||||
std::cout << "Starting... " << std::endl;
|
||||
po::options_description opts("Allowed options");
|
||||
po::variables_map vm;
|
||||
|
||||
opts.add_options()
|
||||
("help,h", "display help and exit")
|
||||
("version,v", "display version information and exit")
|
||||
|
@ -30,7 +30,7 @@
|
||||
#define VCMI_SOUND_FILE(y) #y,
|
||||
|
||||
// sounds mapped to soundBase enum
|
||||
static std::string sounds[] = {
|
||||
static const std::string sounds[] = {
|
||||
"", // invalid
|
||||
"", // todo
|
||||
VCMI_SOUND_LIST
|
||||
|
@ -562,27 +562,6 @@ void HeroSlots::swapArmies()
|
||||
LOCPLINT->cb->swapGarrisonHero(town);
|
||||
}
|
||||
|
||||
class SORTHELP
|
||||
{
|
||||
public:
|
||||
bool operator() (const CIntObject * a, const CIntObject * b)
|
||||
{
|
||||
auto b1 = dynamic_cast<const CBuildingRect *>(a);
|
||||
auto b2 = dynamic_cast<const CBuildingRect *>(b);
|
||||
|
||||
if(!b1 && !b2)
|
||||
return intptr_t(a) < intptr_t(b);
|
||||
if(b1 && !b2)
|
||||
return false;
|
||||
if(!b1 && b2)
|
||||
return true;
|
||||
|
||||
return (*b1)<(*b2);
|
||||
}
|
||||
};
|
||||
|
||||
SORTHELP buildSorter;
|
||||
|
||||
CCastleBuildings::CCastleBuildings(const CGTownInstance* Town):
|
||||
town(Town),
|
||||
selectedBuilding(nullptr)
|
||||
@ -650,6 +629,21 @@ void CCastleBuildings::recreate()
|
||||
buildings.push_back(std::make_shared<CBuildingRect>(this, town, toAdd));
|
||||
}
|
||||
|
||||
auto const & buildSorter = [] (const CIntObject * a, const CIntObject * b)
|
||||
{
|
||||
auto b1 = dynamic_cast<const CBuildingRect *>(a);
|
||||
auto b2 = dynamic_cast<const CBuildingRect *>(b);
|
||||
|
||||
if(!b1 && !b2)
|
||||
return intptr_t(a) < intptr_t(b);
|
||||
if(b1 && !b2)
|
||||
return false;
|
||||
if(!b1 && b2)
|
||||
return true;
|
||||
|
||||
return (*b1)<(*b2);
|
||||
};
|
||||
|
||||
boost::sort(children, buildSorter); //TODO: create building in blit order
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@ public:
|
||||
|
||||
return A->getNameTranslated() < B->getNameTranslated();
|
||||
}
|
||||
} spellsorter;
|
||||
};
|
||||
|
||||
CSpellWindow::CSpellWindow(const CGHeroInstance * _myHero, CPlayerInterface * _myInt, bool openOnBattleSpells):
|
||||
CWindowObject(PLAYER_COLORED | (settings["gameTweaks"]["enableLargeSpellbook"].Bool() ? BORDERED : 0)),
|
||||
@ -293,6 +293,8 @@ void CSpellWindow::processSpells()
|
||||
if(!spell->isCreatureAbility() && myHero->canCastThisSpell(spell) && searchTextFound)
|
||||
mySpells.push_back(spell);
|
||||
}
|
||||
|
||||
SpellbookSpellSorter spellsorter;
|
||||
std::sort(mySpells.begin(), mySpells.end(), spellsorter);
|
||||
|
||||
//initializing sizes of spellbook's parts
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
std::function<bool(const int3 &)> AREA_NO_FILTER = [](const int3 & t)
|
||||
const std::function<bool(const int3 &)> AREA_NO_FILTER = [](const int3 & t)
|
||||
{
|
||||
return true;
|
||||
};
|
||||
|
@ -30,7 +30,7 @@ class CMapGenerator;
|
||||
class Modificator;
|
||||
class CRandomGenerator;
|
||||
|
||||
extern std::function<bool(const int3 &)> AREA_NO_FILTER;
|
||||
extern const std::function<bool(const int3 &)> AREA_NO_FILTER;
|
||||
|
||||
typedef std::list<std::shared_ptr<Modificator>> TModificators;
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
#define strcpy_s(a, b, c) strncpy(a, c, b)
|
||||
#endif
|
||||
|
||||
static const char *g_cszAiName = "Lua interpreter";
|
||||
static const char * const g_cszAiName = "Lua interpreter";
|
||||
|
||||
VCMI_LIB_NAMESPACE_BEGIN
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user