2 #ifndef WORLDSIM_WORLD_LOCAL_HPP 3 #define WORLDSIM_WORLD_LOCAL_HPP 41 #include <Interface/IdleTick/IdleTickInterface.hpp> 42 #include <Interface/LogicTick/LogicTickInterface.hpp> 43 #include <Game/Calendar/Calendar.hpp> 44 #include <Math/Random/RandomLehmer.hpp> 45 #include <Container/Bitfield/Bitfield.hpp> 58 class World_Local:
public LogicTickInterface,
public IdleTickInterface,
public HasTexture
67 Vector <WorldObject_Tree*> vTree;
99 ArrayS2 <unsigned char> aStaticID;
122 ArrayS2 <LocalTile> aLocalTile;
123 ArrayS2 <Static*> aStatic;
145 struct Data_Subterranean
147 ArrayS2 <LocalTile> aSubterranean;
151 std::map<Tribe*,int> mInfluence;
284 void init(
const int _globalX,
const int _globalY,
const enumBiome _biomeID,
const int _seed ,
const int _hasRiver );
304 void generateHeightMap(
const short int c0=0,
const short int c1=0,
const short int c2=0,
const short int c3=0,
305 const short int c4=0,
const short int c5=0,
const short int c6=0,
const short int c7=0,
const unsigned int _seed=0);
318 bool put (
Item* ,
int ,
int ,
bool subterranean=
false);
319 bool put (
Character* ,
int ,
int ,
bool subterranean=
false);
320 bool put (
Creature* ,
int ,
int ,
bool subterranean=
false);
323 bool put (
WorldObject* _object, HasXY* _xy,
bool subterranean=
false);
324 bool put (
Item* _object, HasXY* _xy,
bool subterranean=
false);
325 bool put (
Character* _object, HasXY* _xy,
bool subterranean=
false);
326 bool put (
Creature* _object, HasXY* _xy,
bool subterranean=
false);
329 bool put (
WorldObject* _object, HasXY _xy,
bool subterranean=
false);
330 bool put (
Item* _object, HasXY _xy,
bool subterranean=
false);
331 bool put (
Character* _object, HasXY _xy,
bool subterranean=
false);
332 bool put (
Creature* _object, HasXY _xy,
bool subterranean=
false);
335 bool put (
Static* _static,
int ,
int ,
bool subterranean =
false);
336 bool put (
Static* _static, HasXY _xy,
bool subterranean =
false);
337 bool put (
Static* _static, HasXY* _xy,
bool subterranean =
false);
393 Vector <HasXY*> *
rayTraceLOS (
int ,
int ,
const int ,
const bool subterranean=
false);
397 Vector <HasXY2 <unsigned long int> *> *
rayTraceLOS (
long unsigned int ,
long unsigned int ,
const int );
400 void rayTrace (
int ,
int ,
int ,
int , Vector <HasXY*> * ,
const bool subterranean=
false);
Texture texFar
Definition: World_Local.hpp:163
unsigned short int centerHeight
Definition: World_Local.hpp:214
Definition: Creature.hpp:34
Creature * spawnCreature()
void rayTrace(int, int, int, int, Vector< HasXY *> *, const bool subterranean=false)
Definition: World_Local.cpp:2720
enumDirection
Definition: Driver_Settings_Enums.hpp:32
World_Biome * biome
Definition: World_Local.hpp:158
bool canMove
Definition: World_Local.hpp:193
std::atomic< bool > active
Definition: World_Local.hpp:177
Definition: WorldObject.hpp:18
void removeInfluence(Tribe *tribe, int amount)
Definition: World_Local.cpp:3077
Vector< Creature * > vCreature
Definition: World_Local.hpp:269
Calendar localDate
Definition: World_Local.hpp:165
Vector< Character * > * getAdjacentCharacters(int, int)
Definition: World_Local.cpp:2913
void generateHeightMap(const short int c0=0, const short int c1=0, const short int c2=0, const short int c3=0, const short int c4=0, const short int c5=0, const short int c6=0, const short int c7=0, const unsigned int _seed=0)
Definition: World_Local.cpp:906
short int baseMetal
Definition: World_Local.hpp:185
bool moveObject(WorldObject *, int, int)
Definition: World_Local.cpp:1855
void addInfluence(Tribe *tribe, int amount)
Definition: World_Local.cpp:3053
ArrayS2< int > aFullHeight
Definition: World_Local.hpp:218
Definition: Static.hpp:24
Vector< Item * > vItem
Definition: World_Local.hpp:273
void destroyInfluence(Tribe *tribe)
Definition: World_Local.cpp:3114
bool hasCave
Definition: World_Local.hpp:168
short int biomeID
Definition: World_Local.hpp:200
short int globalX
Definition: World_Local.hpp:174
Definition: World_Biome.hpp:46
void updateTickBacklog(Calendar)
Definition: World_Local.cpp:3042
bool load()
Definition: World_Local.cpp:1530
void incrementTicks(int nTicks)
Definition: World_Local.cpp:3003
unsigned int nFloraDifficult
Definition: World_Local.hpp:209
AbstractData * abstractData
Definition: World_Local.hpp:156
Definition: World_Local.hpp:58
Definition: WorldObject_Tree.hpp:26
std::string getSaveData()
Definition: World_Local.cpp:1283
long long unsigned int ticksBacklog
Definition: World_Local.hpp:244
bool isLand()
Definition: World_Local.cpp:3154
std::string getTerrainName()
Definition: World_Local.cpp:3149
std::atomic< bool > threadAccess
Definition: World_Local.hpp:175
void unload()
Definition: World_Local.cpp:111
Vector< HasXY * > * getRandomWalk(int)
Definition: World_Local.cpp:2968
bool contains(WorldObject *)
Definition: World_Local.cpp:2548
bool wander(WorldObject *)
Definition: World_Local.cpp:2253
bool generateSubterranean()
Definition: World_Local.cpp:796
bool isSafe(int, int)
Definition: World_Local.cpp:344
bool hasRuin
Definition: World_Local.hpp:169
bool isBlockingView(int, int)
Definition: World_Local.cpp:2990
short int nY
Definition: World_Local.hpp:242
int testValue
Definition: World_Local.hpp:179
short int hasRiver
Definition: World_Local.hpp:202
LocalTile * operator()(int _x, int _y)
Definition: World_Local.cpp:334
HasXY * getRandomNeighbor(HasXY *)
Definition: World_Local.cpp:2939
ArrayS2< char > aHeightDiff
Definition: World_Local.hpp:215
short int globalY
Definition: World_Local.hpp:174
Definition: Character.hpp:38
short int landID
Definition: World_Local.hpp:198
virtual ~World_Local()
Definition: World_Local.cpp:77
short int nX
Definition: World_Local.hpp:242
Tribe * getDominantInfluence()
Definition: World_Local.cpp:3124
bool moveUp(WorldObject *)
Definition: World_Local.cpp:2212
void degradeInfluence(int amount)
Definition: World_Local.cpp:3100
HasXY * getRandomTile()
Definition: World_Local.cpp:2929
Definition: LocalTile.hpp:34
unsigned int nFloraGrass
Definition: World_Local.hpp:207
std::atomic< short int > globalY_TS
Definition: World_Local.hpp:173
unsigned long int accessNumber
Definition: World_Local.hpp:160
Data_Subterranean * dataSubterranean
Definition: World_Local.hpp:155
enumBiome baseBiome
Definition: World_Local.hpp:247
void init(const int _globalX, const int _globalY, const enumBiome _biomeID, const int _seed, const int _hasRiver)
Definition: World_Local.cpp:139
std::atomic< short int > globalX_TS
Definition: World_Local.hpp:172
unsigned int nFloraGood
Definition: World_Local.hpp:208
Vector< Character * > vCharacter
Definition: World_Local.hpp:271
std::atomic< bool > initialized
Definition: World_Local.hpp:176
bool moveDown(WorldObject *)
Definition: World_Local.cpp:2173
Data * data
Definition: World_Local.hpp:154
short int baseFertility
Definition: World_Local.hpp:192
bool generate(bool cache=true, World_Local *c0=0, World_Local *c1=0, World_Local *c2=0, World_Local *c3=0, World_Local *c4=0, World_Local *c5=0, World_Local *c6=0, World_Local *c7=0)
Definition: World_Local.cpp:366
char riverConnections
Definition: World_Local.hpp:203
bool put(WorldObject *, int, int, bool subterranean=false)
Definition: World_Local.cpp:1652
Vector< HasXY * > * rayTraceLOS(int, int, const int, const bool subterranean=false)
Definition: World_Local.cpp:2575
virtual Texture * currentTexture()
Definition: World_Local.cpp:3159
bool erase(WorldObject *)
Definition: World_Local.cpp:2477
World_Local()
Definition: World_Local.cpp:28
int getDominantInfluenceValue()
Definition: World_Local.cpp:3138
bool save()
Definition: World_Local.cpp:1405
Vector< WorldObject * > vObjectGeneric
Definition: World_Local.hpp:275