2 #ifndef WORLDSIM_WORLD_HPP 3 #define WORLDSIM_WORLD_HPP 27 #include <Graphics/Png/Png.hpp> 28 #include <File/FileManager.hpp> 29 #include <Container/ArrayS2/ArrayS2.hpp> 30 #include <Interface/IdleTick/IdleTickInterface.hpp> 31 #include <Interface/LogicTick/LogicTickInterface.hpp> 32 #include <System/Time/Timer.hpp> 34 #include <File/SaveFileManager.hpp> 35 #include <Math/Random/GlobalRandom.hpp> 36 #include <Game/Language/NameGenerator.cpp> 50 class World:
public LogicTickInterface,
public IdleTickInterface,
public SaveFileInterface
53 RandomNonStatic random;
56 ArrayS2 <enumBiome> aTerrain;
68 #if defined WILDCAT_THREADING 168 inline LocalTile*
operator() (
unsigned long int _x,
unsigned long int _y,
const bool subterranean=
false);
175 bool absoluteToRelative (
const unsigned long int _absoluteX,
const unsigned long int _absoluteY,
int * _globalX,
int * _globalY,
int * _localX,
int * _localY);
178 bool isGenerated(
unsigned long int _absoluteX,
unsigned long int _absoluteY);
206 void generateWorld (
const std::string ,
const int ,
const int ,
int ,
int ,
const bool ,
const bool ,
const bool ,
const double );
218 bool addRace (
int , std::string );
235 Vector <HasXY2 <unsigned long int> *> *
rayTraceLOS (
unsigned long int _x,
unsigned long int _y,
const int RANGE,
const bool ,
const bool subterranean=
false);
236 void rayTrace (
unsigned long int _x1,
unsigned long int _y1,
unsigned long int _x2,
unsigned long int _y2, Vector <HasXY2 <unsigned long int> *> * vVisibleTiles,
bool subterranean=
false);
246 bool isLand(
int _x,
int _y);
247 inline bool isLand(HasXY*);
251 bool isSafe (
int _x,
int _y);
253 bool isSafe (
unsigned long int _x,
unsigned long int _y);
296 std::string
getTileType (
const int _x,
const int _y);
298 void queryTile(
int hoveredXTile,
int hoveredYTile);
312 Vector <Tribe*>*
getTribesOn(
const int ,
const int );
~World()
Definition: World.cpp:81
Tribe * getNearestConnectedTribe(Tribe *, bool sameRace=true)
Definition: World.cpp:2386
HasXY * getRandomTileOfType(enumBiome _type)
Definition: World.cpp:2105
World astronomical detail container This class stores astronomical data from the perspective of the W...
Definition: World_Astronomy.hpp:36
bool generateMythology()
Definition: World.cpp:205
Vector< World_Landmass * > vLandmass
Definition: World.hpp:122
World_Biome * getBiome(const int id)
Definition: World.cpp:2212
void addInfluence(Tribe *tribe, int amount)
Definition: World.cpp:2137
int dailyCounter
Definition: World.hpp:103
Vector< Civ * > vCiv
Definition: World.hpp:136
int landmassSeed
Definition: World.hpp:100
int getTileFertility(const int, const int)
Definition: World.cpp:1964
void generateTribes(int, int, int)
Definition: World.cpp:853
std::string worldFilePath
Definition: World.hpp:95
bool hasFreeTerritory(int landmassID)
Definition: World.cpp:2249
void generateWorld(const std::string, const int, const int, int, int, const bool, const bool, const bool, const double)
Definition: World.cpp:1469
long long unsigned int ticksBacklog
Definition: World.hpp:86
Definition: Tribe_Dwarven.hpp:24
bool active
Definition: World.hpp:65
void unloadLocal(const int, const int)
Definition: World.cpp:1912
Vector< WorldObjectGlobal * > vWorldObjectGlobal
Definition: World.hpp:110
void evolveToCiv(Tribe *)
Definition: World.cpp:967
Vector< HasXY * > vAllTiles2
Definition: World.hpp:130
bool isRaining
Definition: World.hpp:148
bool prepareAdventureMode(Character *)
Definition: World.cpp:2453
virtual void save()
Definition: World.cpp:2604
Definition: WorldObjectGlobal.hpp:17
Vector< HasXY2< unsigned long int > * > * rayTraceLOS(unsigned long int _x, unsigned long int _y, const int RANGE, const bool, const bool subterranean=false)
Definition: World.cpp:563
int simY
Definition: World.hpp:79
ArrayS2< World_Local > aWorldTile
Definition: World.hpp:113
void generateHumans(int)
Definition: World.cpp:961
Definition: World_Biome.hpp:46
void queryTileLocal(int hoveredXTile, int hoveredYTile)
Definition: World.cpp:2127
int nY
Definition: World.hpp:75
int monthlyCounter
Definition: World.hpp:104
HasXY * getRandomLandTile()
Definition: World.cpp:2090
unsigned long int maximumX
Definition: World.hpp:77
ArrayS3< unsigned char > aTopoMap
Definition: World.hpp:107
void incrementDeities(int)
Definition: World.cpp:1143
unsigned long int maximumY
Definition: World.hpp:77
bool isGenerated(unsigned long int _absoluteX, unsigned long int _absoluteY)
Definition: World.cpp:515
void startSimulation()
Definition: World.cpp:218
std::string strSavePath
Definition: World.hpp:94
bool hasSettlement(const int, const int)
Definition: World.cpp:2436
int simX
Definition: World.hpp:79
int deityTicks
Definition: World.hpp:151
void incrementTicksBacklog(long long unsigned int)
Definition: World.cpp:1016
void generateDwarves(int)
Definition: World.cpp:915
std::string name
Definition: World.hpp:93
void buildArrays(WorldGenerator2 &wg)
Definition: World.cpp:1312
Definition: World_Local.hpp:58
Definition: Tribe_Elf.hpp:23
Vector< Vector< int > *> vAllTiles
Definition: World.hpp:127
Tribe * getDominantInfluence(const int, const int)
Definition: World.cpp:2173
Vector< Tribe * > * getTribesOn(const int, const int)
Definition: World.cpp:1948
World()
Definition: World.cpp:45
int queryWorldY
Definition: World.hpp:82
int getSurroundingFertility(const int _x, const int _y)
Definition: World.cpp:1975
void controlCharacter(Character *)
Definition: World.cpp:2334
void idleTick()
Definition: World.cpp:1237
int queryWorldX
Definition: World.hpp:82
bool putObject(WorldObjectGlobal *_object, int x=-1, int y=-1)
Definition: World.cpp:454
World_Local * getTile(const int, const int)
Definition: World.cpp:2429
Vector< WorldObjectGlobal * > * getNeighboringObjects(WorldObjectGlobal *)
Definition: World.cpp:486
bool addRace(int, std::string)
void degradeInfluence(int amount=1)
Definition: World.cpp:2146
Mythology_Manager mythologyManager
Definition: World.hpp:145
unsigned char seaLevel
Definition: World.hpp:132
int nX
Definition: World.hpp:75
Timer relinquishTimer
Definition: World.hpp:88
void nameRegions()
Definition: World.cpp:450
Definition: Character.hpp:38
void getRandomTile(int *x, int *y)
Definition: World.cpp:2044
bool incrementContinuous
Definition: World.hpp:87
Definition: World_MapManager.hpp:33
EventManager eventManager
Definition: World.hpp:144
int getHighestInfluence(const int, const int)
Definition: World.cpp:2186
Character * getRandomCharacter()
Definition: World.cpp:535
bool handleTickBacklog()
Definition: World.cpp:1195
bool isSafe(int _x, int _y)
Definition: World.cpp:504
void buildMinimap()
Definition: World.cpp:2580
void logicTick()
Definition: World.cpp:1137
Definition: Tribe_Human.hpp:21
World_Astronomy astronomy
Definition: World.hpp:98
Definition: LocalTile.hpp:34
ArrayS2< int > aRiverID
Definition: World.hpp:119
bool generated
Definition: World.hpp:71
Definition: Mythology.hpp:111
Vector< World_Biome * > vBiome
Definition: World.hpp:123
ArrayS2< unsigned char > aGoodEvil
Definition: World.hpp:138
int getHuntingYield(const int _x, const int _y)
Definition: World.cpp:1999
void incrementTicks(int)
Definition: World.cpp:1024
Tribe * combatCheck(Tribe *)
Definition: World.cpp:2411
unsigned char mountainLevel
Definition: World.hpp:133
bool removeObject(WorldObjectGlobal *_object)
Definition: World.cpp:480
std::string getLandmassName(const int, const int)
Definition: World.cpp:2197
int queryWorldYLocal
Definition: World.hpp:84
void destroyInfluence(Tribe *tribe)
Definition: World.cpp:2157
bool isLand(int _x, int _y)
Definition: World.cpp:1296
bool absoluteToRelative(const unsigned long int _absoluteX, const unsigned long int _absoluteY, int *_globalX, int *_globalY, int *_localX, int *_localY)
Definition: World.cpp:175
int getPopulation()
Definition: World.cpp:2050
Definition: World_Events.cpp:150
std::string getTileType(const int _x, const int _y)
Definition: World.cpp:2035
Calendar lastDate
Definition: World.hpp:142
int queryWorldXLocal
Definition: World.hpp:84
void updateMaps()
Definition: World.cpp:1163
ArrayS2< WorldObject * > aWorldObject
Definition: World.hpp:109
Vector< Tribe * > vTribe
Definition: World.hpp:135
void generateElves(int)
Definition: World.cpp:958
Definition: Civ_Dwarven.hpp:14
void rayTrace(unsigned long int _x1, unsigned long int _y1, unsigned long int _x2, unsigned long int _y2, Vector< HasXY2< unsigned long int > *> *vVisibleTiles, bool subterranean=false)
Definition: World.cpp:649
Vector< World_Local * > vWorldLocal
Definition: World.hpp:115
int nFreeTerritory(int landmassID)
Definition: World.cpp:2290
std::string getBiomeName(const int, const int)
Definition: World.cpp:2237
void queryTile(int hoveredXTile, int hoveredYTile)
Definition: World.cpp:2118
ArrayS2< int > aBiomeID
Definition: World.hpp:118
bool loadWorld(std::string)
Definition: World.cpp:2474
void generateLocal(const int, const int)
Definition: World.cpp:1756
World_Local * operator()(const int _x, const int _y)
Definition: World.cpp:91