2 #ifndef WORLDSIM_WORLD_VIEWER_HPP 3 #define WORLDSIM_WORLD_VIEWER_HPP 36 #include <Device/Display/DisplayInterface.hpp> 37 #include <Device/Mouse/MouseInterface.hpp> 38 #include <Graphics/Render/Renderer.hpp> 39 #include <Game/WorldGenerator/Biome.hpp> 62 Renderer::placeColour4a(60,60,255,255,x,y,x+3,y+4);
71 Vector <RainDrop*> vRainDrop;
84 void init (
int _x1,
int _y1,
int _x2,
int _y2,
World* _world,
int _maxRain=10000,
double _rainPercentOfX=0.005)
91 RAIN_PER_FRAME = _rainPercentOfX*(x2-x1);
101 if ( world->
isRaining && vRainDrop.size() < MAX_RAIN )
103 for (
int i=0;i<RAIN_PER_FRAME;++i)
106 rain->
y = y2-rand.randomInt(20);
108 rain->
x = rand.randomInt(x2-x1);
110 vRainDrop.push(rain);
113 for (
int i=0;i<vRainDrop.size();++i)
115 vRainDrop(i)->drop(rand.randomInt(3)+18);
116 if (vRainDrop(i)->y < y1)
119 vRainDrop.removeSlot(i);
133 int mainViewX1, mainViewX2, mainViewY1, mainViewY2;
134 int mainViewNX, mainViewNY;
136 double localTileMantissa;
140 ArrayS2 <Vector <Texture* > > aScene;
203 centerTileX=0; centerTileY=0;
205 mainViewX1=0; mainViewX2=0;
206 mainViewY1=0; mainViewY2=0;
207 mainViewNX=0; mainViewNY=0;
225 showHoveredTile=
false;
237 territoryView =
false;
240 subterraneanMode =
false;
245 rainManager.
init(0,0,0,0,0);
254 centerTileX = world->
nX/2;
255 centerTileY = world->
nY/2;
266 if(_keyboard->isPressed(Keyboard::EQUALS) || _keyboard->isPressed(Keyboard::PLUS))
268 if (_keyboard->keyWasPressed)
274 if(_keyboard->isPressed(Keyboard::MINUS))
276 if (_keyboard->keyWasPressed)
287 if ( tilesToSkip > 0 )
293 { tileSize=2000000; }
303 { tileSize=1; ++tilesToSkip; }
316 worldLocal=_worldLocal;
323 if ( centerTileX < 0 )
327 if ( centerTileY < 0 )
331 if ( centerTileX > world->
nX )
333 centerTileX = world->
nX;
335 if ( centerTileY > world->
nY )
337 centerTileY = world->
nY;
343 if ( world==0 ) {
return false; }
352 centerTileX+=(panX-mouse->x)/((
float)tileSize/(tilesToSkip+1));
353 centerTileY+=(panY-mouse->y)/((
float)tileSize/(tilesToSkip+1));
358 if(mouse->isMiddleClick==
false)
362 if ( mouse->isMiddleClick)
370 if(mouse->isWheelDown)
373 mouse->isWheelDown=
false;
378 mouse->isWheelUp=
false;
381 normaliseCoordinates();
383 if ( mouse->isLeftClick ==
true )
385 world->
queryTile(hoveredXTile,hoveredYTile);
389 if (mouse->isRightClick)
398 void setPanel(
const int _x1,
const int _y1,
const int _x2,
const int _y2)
406 mainViewNX = mainViewX2-mainViewX1;
407 mainViewNY = mainViewY2-mainViewY1;
411 rainManager.
init(_x1,_y1,_x2,_y2,world);
414 inline void setCenterTile (
const double _centerTileX,
const double _centerTileY,
417 centerTileX = _centerTileX;
418 centerTileY = _centerTileY;
420 centerTileX += (_subTileX * localTileMantissa)+localTileMantissa/2;
421 centerTileY += (_subTileY * localTileMantissa)+localTileMantissa/2;
425 void toScreenCoords(
const int _tileX,
const int _tileY,
int * _pixelX,
int * _pixelY)
427 float centerTileXDecimal = centerTileX - (int)centerTileX;
428 float centerTileYDecimal = centerTileY - (int)centerTileY;
430 float centerTileXPixels = centerTileXDecimal*tileSize;
431 float centerTileYPixels = centerTileYDecimal*tileSize;
437 const int iCenterTileX = centerTileX;
440 const int tilesToDrawX = (mainViewNX/tileSize) + 1;
441 const int tilesToDrawY = (mainViewNY/tileSize) + 1;
443 int tileX=centerTileX;
444 int pixelTileX = mainViewX1+(mainViewNX/2) - centerTileXPixels;
445 while(pixelTileX>=mainViewX1)
449 pixelTileX-=tileSize;
451 const int revertTileX = tileX;
453 int tileY=centerTileY;
454 int pixelTileY = mainViewY1 + (mainViewNY/2) - centerTileYPixels;
459 pixelTileY-=tileSize;
463 int nExtraXTiles = _tileX - tileX;
464 int nExtraYTiles = _tileY - tileY;
466 if ( nExtraXTiles>=0 && nExtraYTiles>=0 )
468 *_pixelX = pixelTileX + (tileSize * nExtraXTiles);
469 *_pixelY = pixelTileY + (tileSize * nExtraYTiles);
480 void toTileCoords(
int pixelX,
int pixelY,
unsigned long int * absX,
unsigned long int * absY)
482 if (absX==0 || absY==0) {
return;}
484 if (pixelX<0 || pixelY<0 || pixelsPerLocalTile == 0)
490 int pixelDistanceX = pixelX - firstPixelX;
491 int pixelDistanceY = pixelY - firstPixelY;
493 if ( pixelDistanceX < 0 || pixelDistanceY < 0 )
500 *absX = firstTileAbsX + ((double)pixelDistanceX/pixelsPerLocalTile);
501 *absY = firstTileAbsY + ((double)pixelDistanceY/pixelsPerLocalTile);
512 std::cout<<
"ABORT: No world to render.\n";
517 Renderer::saveViewPort();
518 Renderer::resizeViewPort(mainViewX1,mainViewY1,mainViewX2,mainViewY2);
523 float centerTileXDecimal = centerTileX - (int)centerTileX;
524 float centerTileYDecimal = centerTileY - (int)centerTileY;
526 float pixelOffsetX = tileSize*centerTileXDecimal;
527 float pixelOffsetY = tileSize*centerTileYDecimal;
529 const int iCenterTileX = centerTileX;
531 const int tilesToDrawX = (mainViewNX/tileSize) + 1;
532 const int tilesToDrawY = (mainViewNY/tileSize) + 1;
534 int tileX=centerTileX;
535 int pixelTile = mainViewNX/2;
543 const int revertTileX = tileX;
545 int tileY=centerTileY;
546 pixelTile = mainViewNY/2;
553 Renderer::setTextureMode();
563 if ( tileSize > 4 && world->
isSafe(tileX,tileY) )
576 if ( wog == 0 ) {
continue; }
581 toScreenCoords(wog->
worldX,wog->
worldY,&wogPixelX,&wogPixelY);
584 if ( wogPixelX != -1000 && wogPixelY != -1000 )
586 Renderer::placeTexture4(wogPixelX,wogPixelY,wogPixelX+tileSize,wogPixelY+tileSize
587 ,wog->currentTexture(),
false);
591 Renderer::restoreViewPort();
605 if (active ==
false || world==0)
610 if ( centerTileX < 10 && demoScroll < 0 )
612 demoScroll = demoScroll * -1;
614 else if ( centerTileX > world->
nX - 10 && demoScroll > 0 )
616 demoScroll = demoScroll * -1;
618 centerTileX += demoScroll;
627 Renderer::saveViewPort();
628 Renderer::resizeViewPort(mainViewX1,mainViewY1,mainViewX2,mainViewY2);
635 float centerTileXDecimal = centerTileX - (int)centerTileX;
636 float centerTileYDecimal = centerTileY - (int)centerTileY;
637 float centerTileXPixels = centerTileXDecimal*tileSize;
638 float centerTileYPixels = centerTileYDecimal*tileSize;
640 const int iCenterTileX = centerTileX;
642 const int tilesToDrawX = (mainViewNX/tileSize) + 1;
643 const int tilesToDrawY = (mainViewNY/tileSize) + 1;
645 int tileX=centerTileX;
646 int pixelTileX = mainViewX1+(mainViewNX/2) - centerTileXPixels;
647 while(pixelTileX>=mainViewX1)
651 pixelTileX-=tileSize;
653 const int revertTileX = tileX;
655 int tileY=centerTileY;
656 int pixelTileY = mainViewY1 + (mainViewNY/2) - centerTileYPixels;
661 pixelTileY-=tileSize;
666 if (world->
isSafe(tileX,tileY))
676 firstPixelX=pixelTileX;
677 firstPixelY=pixelTileY;
681 if (lastMouseX >= mainViewX1 && lastMouseX <= mainViewX2
682 && lastMouseY >= mainViewY1 && lastMouseY <= mainViewY2 )
684 const int startingPX = pixelTileX;
685 const int startingPY = pixelTileY;
687 int diffX = (lastMouseX - startingPX)/tileSize;
688 int diffY = (lastMouseY - startingPY)/tileSize;
691 hoveredXTile = tileX + diffX;
692 hoveredYTile = tileY + diffY;
700 if ( tilesetMode ==
false )
702 renderColourMode(tileX,tileY,pixelTileX,pixelTileY);
706 renderTextureMode(tileX,tileY,pixelTileX,pixelTileY);
708 if(subterraneanMode==
false)
713 Renderer::restoreViewPort();
716 normaliseCoordinates();
723 float currentSubY = currentY;
724 float nextSubY = currentY + pixelsPerLocalTile;
726 int subTileSize = pixelsPerLocalTile;
727 if (subTileSize < 1) { subTileSize = 1; }
729 const enumBiome localBaseBiome = localMap->
baseBiome;
735 if ( nextSubY>=mainViewY1 && currentSubY <= mainViewY2 && floor(currentSubY) != floor(nextSubY) )
737 float currentPixel = currentX;
738 float nextPixel = currentX+pixelsPerLocalTile;
741 if ( nextPixel>=mainViewX1 && currentPixel <= mainViewX2 && floor(currentPixel) != floor(nextPixel) )
753 glColor4ub(255,255,255,255);
770 for (
int i=0;i<vText->size();++i)
772 Renderer::placeTexture4(currentPixel, currentSubY, ceil(nextPixel), ceil(nextSubY),
784 for (
int i=0;i<vText->size();++i)
786 Renderer::placeTexture4(currentPixel, currentSubY, ceil(nextPixel), ceil(nextSubY),
790 for(
int i=0;i<localMap->
dataSubterranean->aSubterranean(localXTile,localYTile).vObject.size();++i)
792 Renderer::placeTexture4(currentPixel, currentSubY, ceil(nextPixel), ceil(nextSubY),
794 (localXTile,localYTile).vObject(i)->currentTexture(),
false);
813 LocalTile* localTile = &localMap->
data->aLocalTile(localXTile,localYTile);
815 unsigned char lightValue = 80;
816 glColor3ub(lightValue,lightValue,lightValue);
822 for (
int i=0;i<vText->size();++i)
824 Renderer::placeTexture4(currentPixel, currentSubY, ceil(nextPixel), ceil(nextSubY),
830 glColor3ub(255,255,255);
835 LocalTile* localTile = &localMap->
data->aLocalTile(localXTile,localYTile);
847 unsigned char lightValue = localTile->
height+127;
848 if ( lightValue < 127 ) { lightValue += 127; }
851 int currentSecond = world->
calendar.second;
852 int sunsetCounter = currentSecond-50;
854 int currentMinute = world->
calendar.minute;
855 int currentHour = world->
calendar.hour;
858 glColor3ub(lightValue,lightValue,lightValue);
860 if (currentHour < 6 || currentHour > 19)
865 else if (currentHour == 6)
869 else if (currentHour == 19)
889 for (
int i=0;i<vText->size();++i)
891 Renderer::placeTexture4
892 (currentPixel, currentSubY, ceil(nextPixel), ceil(nextSubY), (*vText)(i),
false);
897 glColor3ub(255,255,255);
902 if (localTile->
bWall != 0 )
904 if ( (localTile->
bWall & 0b10001000) == 0b10001000)
906 Renderer::placeTexture4RotatedDegrees
907 (currentPixel, currentSubY, ceil(nextPixel), ceil(nextSubY),
910 if ( (localTile->
bWall & 0b00010001) == 0b00010001)
912 Renderer::placeTexture4RotatedDegrees
913 (currentPixel, currentSubY, ceil(nextPixel), ceil(nextSubY),
916 if ( (localTile->
bWall & 0b01000100) == 0b01000100)
918 Renderer::placeTexture4RotatedDegrees
919 (currentPixel, currentSubY, ceil(nextPixel), ceil(nextSubY),
922 if ( (localTile->
bWall & 0b00100010) == 0b00100010)
924 Renderer::placeTexture4
925 (currentPixel, currentSubY, ceil(nextPixel), ceil(nextSubY),
955 if ( lastMouseX > currentPixel && lastMouseX < ceil(nextPixel) && lastMouseY > currentSubY && lastMouseY < ceil(nextSubY) )
957 hoveredXTileLocal = localXTile;
958 hoveredAbsoluteX = hoveredXTile * LOCAL_MAP_SIZE + localXTile;
959 hoveredYTileLocal = localYTile;
960 hoveredAbsoluteY = hoveredYTile * LOCAL_MAP_SIZE + localYTile;
962 if ( showHoveredTile )
965 Renderer::placeBorder4(255,0,0,currentPixel, currentSubY, ceil(nextPixel)-1, ceil(nextSubY)-1);
966 Renderer::setTextureMode();
970 currentPixel=nextPixel;
971 nextPixel+=pixelsPerLocalTile;
974 currentSubY=nextSubY;
975 nextSubY+=pixelsPerLocalTile;
982 Renderer::setTextureMode();
983 const int revertTileX = tileX;
985 for (
int currentY = pixelTileY; currentY<mainViewNY; currentY+=tileSize)
988 glColor3ub(255,255,255);
990 for (
int currentX = pixelTileX; currentX<mainViewNX+tileSize; currentX+=tileSize)
992 if (world->
isSafe(tileX,tileY))
997 if ( tileSize >= 12 )
1013 renderLocalMap(localMap,currentX,currentY);
1018 if(world->
isLand(tileX,tileY)==
false)
1020 Renderer::placeTexture4(currentX, currentY, currentX+tileSize, currentY+tileSize,
1023 else if(world->
isLand(tileX,tileY)==
true)
1025 Renderer::placeTexture4(currentX, currentY, currentX+tileSize, currentY+tileSize,
1045 Renderer::placeTexture4(currentX, currentY, currentX+tileSize, currentY+tileSize,
1053 if(world->
isLand(tileX,tileY) && world->
aWorldTile(tileX,tileY).baseBiome == FOREST)
1055 Renderer::placeTexture4
1056 (currentX, currentY, currentX+tileSize, currentY+tileSize,
1059 else if(world->
isLand(tileX,tileY) &&world->
aWorldTile(tileX,tileY).baseBiome == JUNGLE)
1061 Renderer::placeTexture4
1064 if(world->
isLand(tileX,tileY) && world->
aWorldTile(tileX,tileY).baseBiome == MOUNTAIN &&
1065 world->
aWorldTile(tileX,tileY).active==
false)
1067 Renderer::placeTexture4
1068 (currentX, currentY, currentX+tileSize, currentY+tileSize,
1071 if(world->
isLand(tileX,tileY) && world->
aWorldTile(tileX,tileY).baseBiome == HILLY)
1073 Renderer::placeTexture4
1076 if(world->
isLand(tileX,tileY) && world->
aRiverID(tileX,tileY) != -1)
1078 Renderer::placeTexture4
1087 const Tribe* dominantTribe = world->
aWorldTile(tileX,tileY).getDominantInfluence();
1088 if (dominantTribe!=0)
1091 dominantTribe->
colourBlue, 150, currentX, currentY, currentX+tileSize, currentY+tileSize);
1110 Renderer::setColourMode();
1112 const int revertTileX = tileX;
1114 for (
int currentY = pixelTileY; currentY<mainViewNY; currentY+=tileSize)
1116 glBegin(GL_QUAD_STRIP);
1121 for (
int currentX = pixelTileX; currentX<mainViewNX+tileSize; currentX+=tileSize)
1123 if(world->
isSafe(tileX,tileY)==
true)
1125 glVertex2s(currentX,currentY);
1126 glVertex2s(currentX,currentY+tileSize);
1131 const Tribe* dominantTribe = world->
aWorldTile(tileX,tileY).getDominantInfluence();
1132 if (dominantTribe!=0)
1145 if(world->
isLand(tileX,tileY)==
false)
1150 else if(world->
isLand(tileX,tileY)==
true)
1162 if(world->
isSafe(tileX,tileY)==
true && world->
isLand(tileX,tileY)==
false)
1167 else if(world->
isSafe(tileX,tileY)==
true && world->
isLand(tileX,tileY)==
true)
1171 Texture * tex = world->
aWorldTile(tileX,tileY).currentTexture();
1174 glColor3ub(tex->averageRed,tex->averageGreen,tex->averageBlue);
1186 else if(world->
isSafe(tileX-1,tileY)==
true)
1188 glVertex2s(currentX,currentY);
1189 glVertex2s(currentX,currentY+tileSize);
1205 return mainViewNX/tileSize;
1210 return mainViewNY/tileSize;
1222 unsigned long int bX,bY;
1225 Renderer::setColourMode();
1226 glColor3ub(0,0,220);
1227 for (
int i=0;i<vRainDrop.size();++i)
1229 int rX = vRainDrop(i)->x;
1230 int rY = vRainDrop(i)->y;
1231 unsigned long int aX,aY;
1237 if ( (*
world)(aX,aY)->hasFloor == 0 )
1239 vRainDrop(i)->render();
1244 vRainDrop(i)->render();
1247 glColor3ub(255,255,255);
1248 Renderer::setTextureMode();
Texture TEX_WORLD_TERRAIN_JUNGLE
Definition: Driver_TextureList.hpp:123
Definition: World_Viewer.hpp:66
World_Local * worldLocal
Definition: World_Viewer.hpp:171
unsigned char colourRed
Definition: Tribe.hpp:32
char hasSeen(World_Local *, int, int, bool isSubterranean=false)
Definition: Character.cpp:632
void drop(int amount)
Definition: World_Viewer.hpp:56
virtual Vector< Texture * > * currentTextures()
Definition: LocalTile.cpp:247
int DEBUG_Y
Definition: Driver_Settings.cpp:239
Definition: World_Viewer.hpp:127
int firstPixelY
Definition: World_Viewer.hpp:160
RainManager()
Definition: World_Viewer.hpp:82
World * world
Definition: World_Viewer.hpp:170
const int LOCAL_MAP_SIZE
Definition: Driver_Settings.cpp:168
bool alternateTile
Definition: World_Viewer.hpp:176
WorldViewer()
Definition: World_Viewer.hpp:196
void toScreenCoords(const int _tileX, const int _tileY, int *_pixelX, int *_pixelY)
Definition: World_Viewer.hpp:425
Definition: World_Viewer.hpp:46
unsigned long int firstTileAbsY
Definition: World_Viewer.hpp:159
unsigned char bWall
Definition: LocalTile.hpp:55
int tileSize
Definition: World_Viewer.hpp:148
World world
Definition: Driver.cpp:43
bool FOG_OF_WAR
Definition: Driver_Settings.cpp:126
void toTileCoords(int pixelX, int pixelY, unsigned long int *absX, unsigned long int *absY)
Definition: World_Viewer.hpp:480
Vector< WorldObjectGlobal * > vWorldObjectGlobal
Definition: World.hpp:100
int centerLocalY
Definition: World_Viewer.hpp:163
void setCenterTile(const double _centerTileX, const double _centerTileY, const int _subTileX=LOCAL_MAP_SIZE/2, const int _subTileY=LOCAL_MAP_SIZE/2)
Definition: World_Viewer.hpp:414
bool tilesetMode
Definition: World_Viewer.hpp:187
bool isRaining
Definition: World.hpp:135
void render()
Definition: World_Viewer.hpp:603
Texture TEX_WORLD_TERRAIN_MOUNTAIN_00
Definition: Driver_TextureList.hpp:148
Definition: WorldObjectGlobal.hpp:17
void switchTarget(World_Local *_worldLocal)
Definition: World_Viewer.hpp:314
Definition: Driver_Settings.cpp:111
WorldViewer worldViewer
Definition: World_Viewer.hpp:1214
void setTileSize(const int _tileSize)
Definition: World_Viewer.hpp:307
ArrayS2< World_Local > aWorldTile
Definition: World.hpp:103
void queryTileLocal(int hoveredXTile, int hoveredYTile)
Definition: World.cpp:1986
int nY
Definition: World.hpp:65
int x
Definition: World_Viewer.hpp:49
ArrayS3< unsigned char > aTopoMap
Definition: World.hpp:97
int DEBUG_X
Definition: Driver_Settings.cpp:238
RainManager rainManager
Definition: World_Viewer.hpp:144
bool isGenerated(unsigned long int _absoluteX, unsigned long int _absoluteY)
Definition: World.cpp:481
RainDrop()
Definition: World_Viewer.hpp:51
int worldY
Definition: WorldObjectGlobal.hpp:22
Definition: World_Local.hpp:58
unsigned long int hoveredAbsoluteY
Definition: World_Viewer.hpp:181
void renderColourMode(int tileX, int tileY, float pixelTileX, float pixelTileY)
Definition: World_Viewer.hpp:1107
Texture TEX_WORLD_TERRAIN_GRASS_00
Definition: Driver_TextureList.hpp:74
Texture TEX_WORLD_TERRAIN_HILL
Definition: Driver_TextureList.hpp:151
void renderWorldIcons()
Definition: World_Viewer.hpp:506
int tilesToSkip
Definition: World_Viewer.hpp:184
Character * playerCharacter
Definition: Driver_Settings.cpp:105
void updateRain()
Definition: World_Viewer.hpp:98
unsigned char colourGreen
Definition: Tribe.hpp:33
int worldX
Definition: WorldObjectGlobal.hpp:22
#define ABSOLUTE_COORDINATE_NULL
Definition: Driver_Settings.cpp:218
double demoScroll
Definition: World_Viewer.hpp:194
short int lastMouseY
Definition: World_Viewer.hpp:168
int firstTileY
Definition: World_Viewer.hpp:158
bool panning
Definition: World_Viewer.hpp:173
bool landMode
Definition: World_Viewer.hpp:189
enumMenu activeMenu
Definition: Driver_Settings.cpp:113
bool showHoveredTile
Definition: World_Viewer.hpp:182
void renderLocalMap(World_Local *localMap, int currentX, int currentY)
Definition: World_Viewer.hpp:721
unsigned char colourBlue
Definition: Tribe.hpp:34
void setPanel(const int _x1, const int _y1, const int _x2, const int _y2)
Definition: World_Viewer.hpp:398
float panY
Definition: World_Viewer.hpp:174
short int height
Definition: LocalTile.hpp:62
bool territoryView
Definition: World_Viewer.hpp:186
void render()
Definition: World_Viewer.hpp:60
int nX
Definition: World.hpp:65
double getTilesNX()
Definition: World_Viewer.hpp:1203
double pixelsPerLocalTile
Definition: World_Viewer.hpp:164
bool isSafe(int _x, int _y)
Definition: World.cpp:470
double getTilesNY()
Definition: World_Viewer.hpp:1208
bool mouseEvent(Mouse *mouse)
Definition: World_Viewer.hpp:341
Definition: LocalTile.hpp:34
Data_Subterranean * dataSubterranean
Definition: World_Local.hpp:155
enumBiome baseBiome
Definition: World_Local.hpp:247
void updateScene()
Definition: World_Viewer.hpp:599
ArrayS2< int > aRiverID
Definition: World.hpp:109
int y
Definition: World_Viewer.hpp:49
std::atomic< bool > initialized
Definition: World_Local.hpp:176
Data * data
Definition: World_Local.hpp:154
void zoomOut()
Definition: World_Viewer.hpp:298
bool active
Definition: World_Viewer.hpp:146
void render()
Definition: World_Viewer.hpp:1217
bool isLand(int _x, int _y)
Definition: World.cpp:1182
Texture TEX_WALL_GREYBRICK_SOUTH
Definition: Driver_TextureList.hpp:224
int hoveredYTile
Definition: World_Viewer.hpp:179
Texture TEX_WORLD_TERRAIN_OCEAN_00
Definition: Driver_TextureList.hpp:103
bool keyboardEvent(Keyboard *_keyboard)
Definition: World_Viewer.hpp:261
int hoveredYTileLocal
Definition: World_Viewer.hpp:180
void normaliseCoordinates()
Definition: World_Viewer.hpp:321
void init(int _x1, int _y1, int _x2, int _y2, World *_world, int _maxRain=10000, double _rainPercentOfX=0.005)
Definition: World_Viewer.hpp:84
Texture TEX_WORLD_TERRAIN_RIVER_FULL
Definition: Driver_TextureList.hpp:92
bool subterraneanMode
Definition: World_Viewer.hpp:188
void renderTextureMode(int tileX, int tileY, float pixelTileX, float pixelTileY)
Definition: World_Viewer.hpp:980
virtual Texture * currentTexture()
Definition: World_Local.cpp:2832
Vector< World_Local * > vWorldLocal
Definition: World.hpp:105
double centerTileY
Definition: World_Viewer.hpp:154
Texture TEX_WORLD_TERRAIN_FOREST_TREES
Definition: Driver_TextureList.hpp:120
void queryTile(int hoveredXTile, int hoveredYTile)
Definition: World.cpp:1977
bool demoMode
Definition: World_Viewer.hpp:193
void centerView()
Definition: World_Viewer.hpp:249
Calendar calendar
Definition: World.hpp:131
void generateLocal(const int, const int)
Definition: World.cpp:1636
void zoomIn()
Definition: World_Viewer.hpp:285