2 #ifndef WORLDSIM_WORLD_HPP 3 #define WORLDSIM_WORLD_HPP 23 #include <Graphics/Png/Png.hpp> 24 #include <File/FileManager.hpp> 25 #include <Container/ArrayS2/ArrayS2.hpp> 26 #include <Interface/IdleTick/IdleTickInterface.hpp> 27 #include <Interface/LogicTick/LogicTickInterface.hpp> 28 #include <System/Time/Timer.hpp> 29 #include <System/Time/Calendar.hpp> 30 #include <File/SaveFileManager.hpp> 31 #include <Math/Random/GlobalRandom.hpp> 32 #include <Game/NameGen/NameGen.hpp> 46 class World:
public LogicTickInterface,
public IdleTickInterface,
public SaveFileInterface
49 RandomNonStatic random;
52 ArrayS2 <enumBiome> aTerrain;
58 #if defined WILDCAT_THREADING 150 inline LocalTile*
operator() (
unsigned long int _x,
unsigned long int _y,
const bool subterranean=
false);
157 bool absoluteToRelative (
const unsigned long int _absoluteX,
const unsigned long int _absoluteY,
int * _globalX,
int * _globalY,
int * _localX,
int * _localY);
160 bool isGenerated(
unsigned long int _absoluteX,
unsigned long int _absoluteY);
182 void generateWorld (
const std::string ,
const int ,
const int ,
int ,
int ,
const bool ,
const bool ,
const bool ,
const double );
198 bool addRace (
int , std::string );
209 Vector <HasXY2 <unsigned long int> *> *
rayTraceLOS (
unsigned long int _x,
unsigned long int _y,
const int RANGE,
const bool ,
const bool subterranean=
false);
210 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);
220 bool isLand(
int _x,
int _y);
221 inline bool isLand(HasXY*);
225 bool isSafe (
int _x,
int _y);
227 bool isSafe (
unsigned long int _x,
unsigned long int _y);
269 std::string
getTileType (
const int _x,
const int _y);
271 void queryTile(
int hoveredXTile,
int hoveredYTile);
285 Vector <Tribe*>*
getTribesOn(
const int ,
const int );
~World()
Definition: World.cpp:77
Tribe * getNearestConnectedTribe(Tribe *, bool sameRace=true)
Definition: World.cpp:2234
HasXY * getRandomTileOfType(enumBiome _type)
Definition: World.cpp:1963
World astronomical detail container This class stores astronomical data from the perspective of the W...
Definition: World_Astronomy.hpp:36
Vector< World_Landmass * > vLandmass
Definition: World.hpp:112
World_Biome * getBiome(const int id)
Definition: World.cpp:2071
void addInfluence(Tribe *tribe, int amount)
Definition: World.cpp:1996
int dailyCounter
Definition: World.hpp:93
Vector< Civ * > vCiv
Definition: World.hpp:126
int landmassSeed
Definition: World.hpp:90
int getTileFertility(const int, const int)
Definition: World.cpp:1823
void generateTribes(int, int, int)
Definition: World.cpp:819
std::string worldFilePath
Definition: World.hpp:85
bool hasFreeTerritory(int landmassID)
Definition: World.cpp:2097
void generateWorld(const std::string, const int, const int, int, int, const bool, const bool, const bool, const double)
Definition: World.cpp:1355
long long unsigned int ticksBacklog
Definition: World.hpp:76
Definition: Tribe_Dwarven.hpp:22
bool active
Definition: World.hpp:56
void unloadLocal(const int, const int)
Definition: World.cpp:1771
Vector< WorldObjectGlobal * > vWorldObjectGlobal
Definition: World.hpp:100
void evolveToCiv(Tribe *)
Definition: World.cpp:896
Vector< HasXY * > vAllTiles2
Definition: World.hpp:120
bool isRaining
Definition: World.hpp:135
bool prepareAdventureMode(Character *)
Definition: World.cpp:2285
virtual void save()
Definition: World.cpp:2436
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:529
int simY
Definition: World.hpp:69
ArrayS2< World_Local > aWorldTile
Definition: World.hpp:103
Definition: World_Biome.hpp:46
void queryTileLocal(int hoveredXTile, int hoveredYTile)
Definition: World.cpp:1986
int nY
Definition: World.hpp:65
int monthlyCounter
Definition: World.hpp:94
HasXY * getRandomLandTile()
Definition: World.cpp:1949
unsigned long int maximumX
Definition: World.hpp:67
ArrayS3< unsigned char > aTopoMap
Definition: World.hpp:97
unsigned long int maximumY
Definition: World.hpp:67
bool isGenerated(unsigned long int _absoluteX, unsigned long int _absoluteY)
Definition: World.cpp:481
void startSimulation()
Definition: World.cpp:190
std::string strSavePath
Definition: World.hpp:84
int simX
Definition: World.hpp:69
void incrementTicksBacklog(long long unsigned int)
Definition: World.cpp:928
std::string name
Definition: World.hpp:83
void buildArrays(WorldGenerator2 &wg)
Definition: World.cpp:1198
Definition: World_Local.hpp:58
Definition: Tribe_Elf.hpp:22
Vector< Vector< int > *> vAllTiles
Definition: World.hpp:117
Tribe * getDominantInfluence(const int, const int)
Definition: World.cpp:2032
Vector< Tribe * > * getTribesOn(const int, const int)
Definition: World.cpp:1807
World()
Definition: World.cpp:42
int queryWorldY
Definition: World.hpp:72
int getSurroundingFertility(const int _x, const int _y)
Definition: World.cpp:1834
void controlCharacter(Character *)
Definition: World.cpp:2182
void idleTick()
Definition: World.cpp:1123
int queryWorldX
Definition: World.hpp:72
bool putObject(WorldObjectGlobal *_object, int x=-1, int y=-1)
Definition: World.cpp:420
World_Local * getTile(const int, const int)
Definition: World.cpp:2277
Vector< WorldObjectGlobal * > * getNeighboringObjects(WorldObjectGlobal *)
Definition: World.cpp:452
bool addRace(int, std::string)
void degradeInfluence(int amount=1)
Definition: World.cpp:2005
unsigned char seaLevel
Definition: World.hpp:122
int nX
Definition: World.hpp:65
Timer relinquishTimer
Definition: World.hpp:78
void nameRegions()
Definition: World.cpp:416
Definition: Character.hpp:29
void getRandomTile(int *x, int *y)
Definition: World.cpp:1903
bool incrementContinuous
Definition: World.hpp:77
Definition: World_MapManager.hpp:33
int getHighestInfluence(const int, const int)
Definition: World.cpp:2045
Character * getRandomCharacter()
Definition: World.cpp:501
bool handleTickBacklog()
Definition: World.cpp:1082
bool isSafe(int _x, int _y)
Definition: World.cpp:470
void buildMinimap()
Definition: World.cpp:2412
void logicTick()
Definition: World.cpp:1044
Definition: Tribe_Human.hpp:21
World_Astronomy astronomy
Definition: World.hpp:88
Definition: LocalTile.hpp:34
ArrayS2< int > aRiverID
Definition: World.hpp:109
bool generated
Definition: World.hpp:61
Vector< World_Biome * > vBiome
Definition: World.hpp:113
ArrayS2< unsigned char > aGoodEvil
Definition: World.hpp:128
int getHuntingYield(const int _x, const int _y)
Definition: World.cpp:1858
void incrementTicks(int)
Definition: World.cpp:934
Tribe * combatCheck(Tribe *)
Definition: World.cpp:2259
unsigned char mountainLevel
Definition: World.hpp:123
bool removeObject(WorldObjectGlobal *_object)
Definition: World.cpp:446
std::string getLandmassName(const int, const int)
Definition: World.cpp:2056
int queryWorldYLocal
Definition: World.hpp:74
void destroyInfluence(Tribe *tribe)
Definition: World.cpp:2016
bool isLand(int _x, int _y)
Definition: World.cpp:1182
bool absoluteToRelative(const unsigned long int _absoluteX, const unsigned long int _absoluteY, int *_globalX, int *_globalY, int *_localX, int *_localY)
Definition: World.cpp:160
int getPopulation()
Definition: World.cpp:1909
std::string getTileType(const int _x, const int _y)
Definition: World.cpp:1894
Calendar lastDate
Definition: World.hpp:132
int queryWorldXLocal
Definition: World.hpp:74
void updateMaps()
Definition: World.cpp:1050
ArrayS2< WorldObject * > aWorldObject
Definition: World.hpp:99
Vector< Tribe * > vTribe
Definition: World.hpp:125
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:615
Vector< World_Local * > vWorldLocal
Definition: World.hpp:105
int nFreeTerritory(int landmassID)
Definition: World.cpp:2138
std::string getBiomeName(const int, const int)
Definition: World.cpp:2084
void queryTile(int hoveredXTile, int hoveredYTile)
Definition: World.cpp:1977
ArrayS2< int > aBiomeID
Definition: World.hpp:108
Calendar calendar
Definition: World.hpp:131
bool loadWorld(std::string)
Definition: World.cpp:2306
void generateLocal(const int, const int)
Definition: World.cpp:1636
World_Local * operator()(const int _x, const int _y)
Definition: World.cpp:82