From f545edad68715a8b387bdd9e6ef94e23aa44b4a1 Mon Sep 17 00:00:00 2001 From: nosogo Date: Sun, 5 Dec 2010 01:33:28 +0000 Subject: [PATCH] more fixes for editor --- mk/linux/glest.ini | 23 ++++----- source/g3d_viewer/main.cpp | 5 +- source/glest_game/graphics/renderer.cpp | 48 +++++++++---------- source/glest_map_editor/main.cpp | 33 ++++++++----- source/glest_map_editor/main.h | 2 + source/glest_map_editor/map.cpp | 17 ++++--- source/glest_map_editor/map.h | 6 ++- source/glest_map_editor/program.cpp | 9 +++- source/glest_map_editor/program.h | 2 + source/glest_map_editor/renderer.cpp | 13 +++-- source/glest_map_editor/renderer.h | 9 +++- .../include/graphics/gl/base_renderer.h | 2 +- .../include/graphics/graphics_interface.h | 12 ++--- .../sources/graphics/gl/base_renderer.cpp | 6 +-- source/shared_lib/sources/map/map_preview.cpp | 9 ++-- 15 files changed, 120 insertions(+), 76 deletions(-) diff --git a/mk/linux/glest.ini b/mk/linux/glest.ini index 690f8588..8ad58527 100644 --- a/mk/linux/glest.ini +++ b/mk/linux/glest.ini @@ -1,4 +1,5 @@ ; === propertyMap File === + AiLog=0 AiRedir=false AllowDownloadDataSynch=false @@ -15,8 +16,8 @@ ConsoleTimeout=20 DayTime=1000 DebugLogFile=debug.log DebugMode=false -DebugPerformance=false DebugNetwork=false +DebugPerformance=false DebugWorldSynch=false DepthBits=16 FactoryGraphics=OpenGL @@ -44,17 +45,17 @@ FontMenuNormalPrefix=-*-helvetica-*-r-*-*- FontMenuVeryBigBaseSize=25 FontSizeAdjustment=0 Lang=english -MaxLights=3 -;Masterserver=http://soft-haus.com/glest/cgi-bin/ -;MasterServerExternalPortList=80,143,587,21,110,25,443,993,995 -Masterserver=http://megaglest.pepper.freeit.org/masterserver/ +MapPreview=1 +MasterServerExternalPort=61357 MasterServerExternalPortList=61357,61358,61359,61360,61000,80,143,587,21,110,25,443,993,995,1080,8080 +Masterserver=http://megaglest.pepper.freeit.org/masterserver/ +MaxLights=3 NetPlayerName=newbie NetworkConsistencyChecks=true PhotoMode=false RefreshFrequency=75 -ScreenHeight=768 -ScreenWidth=1024 +ScreenHeight=1200 +ScreenWidth=1600 ServerIp=192.168.0.107 ServerPort=61357 ShadowAlpha=0.2 @@ -65,9 +66,9 @@ SoundStaticBuffers=16 SoundStreamingBuffers=4 SoundVolumeAmbient=80 SoundVolumeFx=80 -SoundVolumeMusic=90 +SoundVolumeMusic=10 StencilBits=0 -Textures3D=true -UnitParticles=true +Textures3D=1 +UnitParticles=1 UserData_Root=mydata/ -Windowed=false +Windowed=0 diff --git a/source/g3d_viewer/main.cpp b/source/g3d_viewer/main.cpp index 5b88da41..d8ed57e8 100644 --- a/source/g3d_viewer/main.cpp +++ b/source/g3d_viewer/main.cpp @@ -99,7 +99,7 @@ MainWindow::MainWindow(const string &modelPath) menuSpeed->Append(miSpeedSlower, wxT("&Slower\t-")); menuSpeed->Append(miSpeedFaster, wxT("&Faster\t+")); menuSpeed->AppendSeparator(); - menuSpeed->Append(miRestart, wxT("&Restart particles\tR")); + menuSpeed->Append(miRestart, wxT("&Restart particles\tR"), wxT("Restart particle animations, this also reloads model and particle files if they are changed")); menu->Append(menuSpeed, wxT("&Speed")); //custom color @@ -974,7 +974,8 @@ bool App::OnInit(){ std::cout << "glest_g3dviewer [G3D 3D-MODEL FILE]" << std::endl << std::endl; std::cout << "Displays glest 3D-models and unit/projectile/splash particle systems." << std::endl; std::cout << "rotate with left mouse button, zoom with right mouse button or mousewheel." << std::endl; - std::cout << "Use ctrl to load more than one particle system. Press R to restart particles." << std::endl << std::endl; + std::cout << "Use ctrl to load more than one particle system." << std::endl; + std::cout << "Press R to restart particles, this also reloads all files if they are changed." << std::endl << std::endl; exit (0); } modelPath= wxFNCONV(argv[1]); diff --git a/source/glest_game/graphics/renderer.cpp b/source/glest_game/graphics/renderer.cpp index 181f0a1d..5b623d5a 100644 --- a/source/glest_game/graphics/renderer.cpp +++ b/source/glest_game/graphics/renderer.cpp @@ -949,13 +949,13 @@ void Renderer::renderChatManager(const ChatManager *chatManager) { // white shadowed is default ( in the menu for example ) fontColor=Vec4f(1.f, 1.f, 1.f, 0.0f); } - + renderTextShadow( text, CoreData::getInstance().getConsoleFont(), fontColor, 300, 150); - + //textRenderer->begin(CoreData::getInstance().getConsoleFont()); //textRenderer->render(text, 300, 150); //textRenderer->end(); @@ -3172,20 +3172,20 @@ void Renderer::renderUnitsFast(bool renderingShadows) { glPushAttrib(GL_ENABLE_BIT| GL_TEXTURE_BIT); glEnable(GL_TEXTURE_2D); glAlphaFunc(GL_GREATER, 0.4f); - + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); - + //set color to the texture alpha glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PRIMARY_COLOR); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR); - + //set alpha to the texture alpha glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_TEXTURE); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA); } - + modelRenderer->begin(false, renderingShadows, false); glInitNames(); } @@ -3236,26 +3236,26 @@ void Renderer::renderUnitsFast(bool renderingShadows) { modelRenderStarted = true; glPushAttrib(GL_ENABLE_BIT| GL_TEXTURE_BIT); glDisable(GL_LIGHTING); - + if (!renderingShadows) { glDisable(GL_TEXTURE_2D); } else { glEnable(GL_TEXTURE_2D); glAlphaFunc(GL_GREATER, 0.4f); - + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); - + //set color to the texture alpha glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PRIMARY_COLOR); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR); - + //set alpha to the texture alpha glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_TEXTURE); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA); } - + modelRenderer->begin(false, renderingShadows, false); glInitNames(); @@ -4119,7 +4119,7 @@ VisibleQuadContainerCache & Renderer::getQuadCache( bool updateOnDirtyFrame, return quadCache; } -void Renderer::renderMapPreview( const MapPreview *map, bool renderAll, +void Renderer::renderMapPreview( const MapPreview *map, bool renderAll, int screenPosX, int screenPosY, Texture2D **renderToTexture) { float alt=0; @@ -4130,7 +4130,7 @@ void Renderer::renderMapPreview( const MapPreview *map, bool renderAll, float playerCrossSize=2; float clientW=renderMapWidth*cellSize; float clientH=renderMapHeight*cellSize;; - + const Metrics &metrics= Metrics::getInstance(); // stretch small maps to 128x128 @@ -4205,7 +4205,7 @@ void Renderer::renderMapPreview( const MapPreview *map, bool renderAll, //glEnable( GL_SCISSOR_TEST ); //glScissor(screenPosX, screenPosY,screenPosX-clientW, screenPosY-clientH); - + //int newX = screenPosX - (metrics.getVirtualW() / 2); //int newY = screenPosY - (metrics.getVirtualH() / 2); //int newX = 0; @@ -4401,21 +4401,21 @@ void Renderer::renderMapPreview( const MapPreview *map, bool renderAll, if(renderToTexture != NULL) { - //*renderToTexture = saveScreenToTexture(screenPosX, screenPosY, metrics.getVirtualW(), metrics.getVirtualH()); - //*renderToTexture = saveScreenToTexture(0, 0, metrics.getVirtualW(), metrics.getVirtualH()); + // *renderToTexture = saveScreenToTexture(screenPosX, screenPosY, metrics.getVirtualW(), metrics.getVirtualH()); + // *renderToTexture = saveScreenToTexture(0, 0, metrics.getVirtualW(), metrics.getVirtualH()); /* Texture2DGl *texture = static_cast(*renderToTexture); if(texture != NULL) { - //*renderToTexture = saveScreenToTexture(screenPosX, screenPosY, clientW, clientH); + // *renderToTexture = saveScreenToTexture(screenPosX, screenPosY, clientW, clientH); texture->dettachFrameBufferFromTexture(); // Signal the threads queue to add a screenshot save request - //MutexSafeWrapper safeMutex(&saveScreenShotThreadAccessor); - //saveScreenQueue.push_back(make_pair("bob.png",texture->getPixmap())); - //*renderToTexture=NULL; - //safeMutex.ReleaseLock(); + // MutexSafeWrapper safeMutex(&saveScreenShotThreadAccessor); + // saveScreenQueue.push_back(make_pair("bob.png",texture->getPixmap())); + // *renderToTexture=NULL; + // safeMutex.ReleaseLock(); - //texture->teardown_FBO_RBO(); + // texture->teardown_FBO_RBO(); } */ } @@ -4424,9 +4424,9 @@ void Renderer::renderMapPreview( const MapPreview *map, bool renderAll, // setLastRenderFps and calculate shadowsOffDueToMinRender void Renderer::setLastRenderFps(int value) { - lastRenderFps = value; + lastRenderFps = value; smoothedRenderFps=(MIN_FPS_NORMAL_RENDERING*smoothedRenderFps+lastRenderFps)/(MIN_FPS_NORMAL_RENDERING+1.0f); - + if(smoothedRenderFps>=MIN_FPS_NORMAL_RENDERING_TOP_THRESHOLD){ shadowsOffDueToMinRender=false; } diff --git a/source/glest_map_editor/main.cpp b/source/glest_map_editor/main.cpp index 531d9eca..71a5d51b 100755 --- a/source/glest_map_editor/main.cpp +++ b/source/glest_map_editor/main.cpp @@ -114,6 +114,7 @@ MainWindow::MainWindow() //view menuView = new wxMenu(); menuView->Append(miViewResetZoomAndPos, wxT("&Reset zoom and pos")); + menuView->AppendCheckItem(miViewGrid, wxT("&Grid")); menuView->AppendSeparator(); menuView->Append(miViewHelp, wxT("&Help...")); menuView->Append(miViewAbout, wxT("&About...")); @@ -293,15 +294,15 @@ MainWindow::MainWindow() toolbar2->AddTool(miBrushHeight +10, _("brush_height_p4"), wxBitmap(brush_height_p4)); toolbar2->AddTool(miBrushHeight +11, _("brush_height_p5"), wxBitmap(brush_height_p5)); toolbar2->AddSeparator(); - toolbar2->AddTool(miRadius + 1, _("radius1"), wxBitmap(radius_1)); - toolbar2->AddTool(miRadius + 2, _("radius2"), wxBitmap(radius_2)); - toolbar2->AddTool(miRadius + 3, _("radius3"), wxBitmap(radius_3)); - toolbar2->AddTool(miRadius + 4, _("radius4"), wxBitmap(radius_4)); - toolbar2->AddTool(miRadius + 5, _("radius5"), wxBitmap(radius_5)); - toolbar2->AddTool(miRadius + 6, _("radius6"), wxBitmap(radius_6)); - toolbar2->AddTool(miRadius + 7, _("radius7"), wxBitmap(radius_7)); - toolbar2->AddTool(miRadius + 8, _("radius8"), wxBitmap(radius_8)); - toolbar2->AddTool(miRadius + 9, _("radius9"), wxBitmap(radius_9)); + toolbar2->AddTool(miRadius + 1, _("radius1"), wxBitmap(radius_1), _("1 (1x1)")); + toolbar2->AddTool(miRadius + 2, _("radius2"), wxBitmap(radius_2), _("2 (3x3)")); + toolbar2->AddTool(miRadius + 3, _("radius3"), wxBitmap(radius_3), _("3 (5x5)")); + toolbar2->AddTool(miRadius + 4, _("radius4"), wxBitmap(radius_4), _("4 (7x7)")); + toolbar2->AddTool(miRadius + 5, _("radius5"), wxBitmap(radius_5), _("5 (9x9)")); + toolbar2->AddTool(miRadius + 6, _("radius6"), wxBitmap(radius_6), _("6 (11x11)")); + toolbar2->AddTool(miRadius + 7, _("radius7"), wxBitmap(radius_7), _("7 (13x13)")); + toolbar2->AddTool(miRadius + 8, _("radius8"), wxBitmap(radius_8), _("8 (15x15)")); + toolbar2->AddTool(miRadius + 9, _("radius9"), wxBitmap(radius_9), _("9 (17x17)")); toolbar2->Realize(); wxBoxSizer *boxsizer = new wxBoxSizer(wxVERTICAL); @@ -708,7 +709,7 @@ void MainWindow::onMenuEditInfo(wxCommandEvent &event) { void MainWindow::onMenuEditAdvanced(wxCommandEvent &event) { SimpleDialog simpleDialog; simpleDialog.addValue("Height Factor", intToStr(program->getMap()->getHeightFactor()),"(lower means map is more more zoomed in)"); - simpleDialog.addValue("Water Level", intToStr(program->getMap()->getWaterLevel()),"(which level water is visible but still walkable)"); + simpleDialog.addValue("Water Level", intToStr(program->getMap()->getWaterLevel()),"(water is visible below this, and walkable until 1.5 less)"); if (!simpleDialog.show("Advanced")) return; try { @@ -728,6 +729,13 @@ void MainWindow::onMenuViewResetZoomAndPos(wxCommandEvent &event) { onPaint(e); } +void MainWindow::onMenuViewGrid(wxCommandEvent &event) { + menuView->Check(miViewGrid, program->setGridOnOff()); // miViewGrid event.GetId() + wxPaintEvent e; + onPaint(e); +} + + void MainWindow::onMenuViewAbout(wxCommandEvent &event) { MsgDialog( this, @@ -739,8 +747,10 @@ void MainWindow::onMenuViewHelp(wxCommandEvent &event) { MsgDialog(this, wxT("Draw with left mouse\nMove viewport with right mouse drag\nZoom with center mouse drag, or mousewheel\n\ You can change brush in the same category with key 1-9\n\ +Height tool (blue) builds with integer height steps 0-20, \nwhile Gradient tool (red) uses any real number \n\ +Units can go over water as long as it is less than 1.5 deep\n\ A good idea is to put some stone, gold and tree near starting position\n\ -Starting position needs an open area for the tower and at starting units\n"), +Starting position needs an open area for the tower and the starting units\n"), wxT("Help")).ShowModal(); /* 5 away and 10x10 empty area? */ } @@ -996,6 +1006,7 @@ BEGIN_EVENT_TABLE(MainWindow, wxFrame) EVT_MENU(miEditAdvanced, MainWindow::onMenuEditAdvanced) EVT_MENU(miViewResetZoomAndPos, MainWindow::onMenuViewResetZoomAndPos) + EVT_MENU(miViewGrid, MainWindow::onMenuViewGrid) EVT_MENU(miViewAbout, MainWindow::onMenuViewAbout) EVT_MENU(miViewHelp, MainWindow::onMenuViewHelp) diff --git a/source/glest_map_editor/main.h b/source/glest_map_editor/main.h index 66973ae7..8e913656 100644 --- a/source/glest_map_editor/main.h +++ b/source/glest_map_editor/main.h @@ -123,6 +123,7 @@ private: miEditAdvanced, miViewResetZoomAndPos, + miViewGrid, miViewAbout, miViewHelp, @@ -222,6 +223,7 @@ public: void onMenuEditAdvanced(wxCommandEvent &event); void onMenuViewResetZoomAndPos(wxCommandEvent &event); + void onMenuViewGrid(wxCommandEvent &event); void onMenuViewAbout(wxCommandEvent &event); void onMenuViewHelp(wxCommandEvent &event); diff --git a/source/glest_map_editor/map.cpp b/source/glest_map_editor/map.cpp index ad74c9f2..3244df09 100644 --- a/source/glest_map_editor/map.cpp +++ b/source/glest_map_editor/map.cpp @@ -9,8 +9,9 @@ // License, or (at your option) any later version // ============================================================== -// This file is not used anoymore +// This file is not used anymore +/* #include "map.h" #include @@ -349,12 +350,12 @@ void Map::mirrorXY() { // copy leftbottom to topright } } } -/* -void Map::rotatecopyX(); -void Map::rotatecopyY(); -void Map::rotatecopyXY(); -void Map::rotatecopyCorner(); -*/ + +// void Map::rotatecopyX(); +// void Map::rotatecopyY(); +// void Map::rotatecopyXY(); +// void Map::rotatecopyCorner(); + void Map::changeSurface(int x, int y, int surface, int radius) { int i, j; @@ -804,4 +805,6 @@ void Map::applyNewHeight(float newHeight, int x, int y, int strenght) { }// end namespace +*/ + diff --git a/source/glest_map_editor/map.h b/source/glest_map_editor/map.h index e8ef2397..c98571ef 100644 --- a/source/glest_map_editor/map.h +++ b/source/glest_map_editor/map.h @@ -9,8 +9,9 @@ // License, or (at your option) any later version // ============================================================== -// This file is not used anoymore +// This file is not used anymore +/* #ifndef _MAPEDITOR_MAP_H_ #define _MAPEDITOR_MAP_H_ @@ -141,3 +142,6 @@ public: }// end namespace #endif + +*/ + diff --git a/source/glest_map_editor/program.cpp b/source/glest_map_editor/program.cpp index 96e7d6af..7122efc4 100644 --- a/source/glest_map_editor/program.cpp +++ b/source/glest_map_editor/program.cpp @@ -146,6 +146,7 @@ MapPreview *Program::map = NULL; Program::Program(int w, int h) { cellSize = 6; + grid=false; ofsetX = 0; ofsetY = 0; map = new MapPreview(); @@ -178,6 +179,7 @@ int Program::getResource(int x, int y) { } } +// TODO: move editor-specific code from shared_lib to here. void Program::glestChangeMapHeight(int x, int y, int Height, int radius) { map->glestChangeHeight((x - ofsetX) / cellSize, (y + ofsetY) / cellSize, Height, radius); } @@ -238,7 +240,7 @@ bool Program::redo() { } void Program::renderMap(int w, int h) { - renderer.renderMap(map, ofsetX, ofsetY, w, h, cellSize); + renderer.renderMap(map, ofsetX, ofsetY, w, h, cellSize, grid); } void Program::setRefAlt(int x, int y) { @@ -444,6 +446,11 @@ void Program::resetOfset() { cellSize = 6; } +bool Program::setGridOnOff() { + grid=!grid; + return grid; +} + void Program::setMapAdvanced(int altFactor, int waterLevel) { map->setAdvanced(altFactor, waterLevel); } diff --git a/source/glest_map_editor/program.h b/source/glest_map_editor/program.h index 4cfc78a0..b9efdb11 100644 --- a/source/glest_map_editor/program.h +++ b/source/glest_map_editor/program.h @@ -96,6 +96,7 @@ private: BaseRenderer renderer; int ofsetX, ofsetY; int cellSize; + bool grid; // show grid option //static Map *map; static MapPreview *map; friend class UndoPoint; @@ -151,6 +152,7 @@ public: void setOfset(int x, int y); void incCellSize(int i); void resetOfset(); + bool setGridOnOff(); int getObject(int x, int y); int getResource(int x, int y); diff --git a/source/glest_map_editor/renderer.cpp b/source/glest_map_editor/renderer.cpp index 24c39406..f83a5d2e 100644 --- a/source/glest_map_editor/renderer.cpp +++ b/source/glest_map_editor/renderer.cpp @@ -9,6 +9,9 @@ // License, or (at your option) any later version // ============================================================== +//this file is not used + +/* #include "renderer.h" @@ -37,7 +40,7 @@ void Renderer::init(int clientW, int clientH) { assertGl(); } -void Renderer::renderMap(MapPreview *map, int x, int y, int clientW, int clientH, int cellSize) { +void Renderer::renderMap(MapPreview *map, int x, int y, int clientW, int clientH, int cellSize, bool grid) { float alt; float showWater; @@ -129,13 +132,13 @@ void Renderer::renderMap(MapPreview *map, int x, int y, int clientW, int clientH glColor3fv((surfColor*2.f).ptr()); //left - if (i > 0 && map->getHeight(i - 1, j) < map->getHeight(i, j)) { + if (grid || (i > 0 && map->getHeight(i - 1, j) < map->getHeight(i, j))) { glBegin(GL_LINES); glVertex2i(i * cellSize, clientH - (j + 1) * cellSize); glVertex2i(i * cellSize, clientH - j * cellSize); glEnd(); } - if (j > 0 && map->getHeight(i, j - 1) < map->getHeight(i, j)) { + if (grid || (j > 0 && map->getHeight(i, j - 1) < map->getHeight(i, j))) { glBegin(GL_LINES); glVertex2i(i * cellSize, clientH - j * cellSize); glVertex2i((i + 1) * cellSize, clientH - j * cellSize); @@ -191,4 +194,8 @@ void Renderer::renderMap(MapPreview *map, int x, int y, int clientW, int clientH assertGl(); } + }// end namespace + +*/ + diff --git a/source/glest_map_editor/renderer.h b/source/glest_map_editor/renderer.h index 3a242d4d..8f3ad379 100644 --- a/source/glest_map_editor/renderer.h +++ b/source/glest_map_editor/renderer.h @@ -9,6 +9,11 @@ // License, or (at your option) any later version // ============================================================== + +//this file is not used + +/* + #ifndef _MAPEDITOR_RENDERER_H_ #define _MAPEDITOR_RENDERER_H_ @@ -25,9 +30,11 @@ namespace MapEditor { class Renderer { public: void init(int clientW, int clientH); - void renderMap(MapPreview *map, int x, int y, int clientW, int clientH, int cellSize); + void renderMap(MapPreview *map, int x, int y, int clientW, int clientH, int cellSize, bool grid=false); }; }// end namespace #endif + +*/ diff --git a/source/shared_lib/include/graphics/gl/base_renderer.h b/source/shared_lib/include/graphics/gl/base_renderer.h index d391dba4..ec81121e 100644 --- a/source/shared_lib/include/graphics/gl/base_renderer.h +++ b/source/shared_lib/include/graphics/gl/base_renderer.h @@ -27,7 +27,7 @@ public: ~BaseRenderer() { } virtual void initMapSurface(int clientW, int clientH); - virtual void renderMap(MapPreview *map, int x, int y, int clientW, int clientH, int cellSize); + virtual void renderMap(MapPreview *map, int x, int y, int clientW, int clientH, int cellSize, bool grid=false); }; }} // end namespace diff --git a/source/shared_lib/include/graphics/graphics_interface.h b/source/shared_lib/include/graphics/graphics_interface.h index 81c406c4..e36bfaad 100644 --- a/source/shared_lib/include/graphics/graphics_interface.h +++ b/source/shared_lib/include/graphics/graphics_interface.h @@ -3,9 +3,9 @@ // // Copyright (C) 2001-2008 Martio Figueroa // -// You can redistribute this code and/or modify it under -// the terms of the GNU General Public License as published -// by the Free Software Foundation; either version 2 of the +// You can redistribute this code and/or modify it under +// the terms of the GNU General Public License as published +// by the Free Software Foundation; either version 2 of the // License, or (at your option) any later version // ============================================================== @@ -41,11 +41,11 @@ public: class RendererMapInterface { public: virtual void initMapSurface(int clientW, int clientH) = 0; - virtual void renderMap(MapPreview *map, int x, int y, int clientW, int clientH, int cellSize) = 0; + virtual void renderMap(MapPreview *map, int x, int y, int clientW, int clientH, int cellSize, bool grid) = 0; }; // ===================================================== -// class GraphicsInterface +// class GraphicsInterface // /// Interface for the graphic engine // ===================================================== @@ -68,7 +68,7 @@ public: static GraphicsInterface &getInstance(); void setFactory(GraphicsFactory *graphicsFactory); - void setCurrentContext(Context *context); + void setCurrentContext(Context *context); Context *getCurrentContext() const {return currentContext;} GraphicsFactory *getFactory() const {return graphicsFactory;} diff --git a/source/shared_lib/sources/graphics/gl/base_renderer.cpp b/source/shared_lib/sources/graphics/gl/base_renderer.cpp index bb0dfb14..5cf2b1aa 100644 --- a/source/shared_lib/sources/graphics/gl/base_renderer.cpp +++ b/source/shared_lib/sources/graphics/gl/base_renderer.cpp @@ -36,7 +36,7 @@ void BaseRenderer::initMapSurface(int clientW, int clientH) { } void BaseRenderer::renderMap(MapPreview *map, int x, int y, - int clientW, int clientH, int cellSize) { + int clientW, int clientH, int cellSize, bool grid) { float alt=0; float showWater=0; @@ -112,14 +112,14 @@ void BaseRenderer::renderMap(MapPreview *map, int x, int y, // if (!found) { glColor3fv((surfColor*0.5f).ptr()); //left - if (i > 0 && map->getHeight(i - 1, j) > map->getHeight(i, j)) { + if (grid || (i > 0 && map->getHeight(i - 1, j) > map->getHeight(i, j))) { glBegin(GL_LINES); glVertex2i(i * cellSize, clientH - (j + 1) * cellSize); glVertex2i(i * cellSize, clientH - j * cellSize); glEnd(); } //down - if (j > 0 && map->getHeight(i, j - 1) > map->getHeight(i, j)) { + if (grid || (j > 0 && map->getHeight(i, j - 1) > map->getHeight(i, j))) { glBegin(GL_LINES); glVertex2i(i * cellSize, clientH - j * cellSize); glVertex2i((i + 1) * cellSize, clientH - j * cellSize); diff --git a/source/shared_lib/sources/map/map_preview.cpp b/source/shared_lib/sources/map/map_preview.cpp index d8342f18..920385de 100644 --- a/source/shared_lib/sources/map/map_preview.cpp +++ b/source/shared_lib/sources/map/map_preview.cpp @@ -83,8 +83,7 @@ int MapPreview::getStartLocationY(int index) const { static int get_dist(int delta_x, int delta_y) { float dx = (float)delta_x; float dy = (float)delta_y; - - return static_cast(sqrtf(dx * dx + dy * dy)); + return static_cast(sqrtf(dx * dx + dy * dy)+0.5); // round correctly } void MapPreview::glestChangeHeight(int x, int y, int height, int radius) { @@ -169,8 +168,8 @@ void MapPreview::pirateChangeHeight(int x, int y, int height, int radius) { } //std::cout << endl; - // A brush with radius n cells should have a true radius of n-1 distance - radius -= 1; + // // A brush with radius n cells should have a true radius of n-1 distance // No becasue then "radius" 1==2 + // radius -= 1; for (int i = x - radius; i <= x + radius; i++) { for (int j = y - radius; j <= y + radius; j++) { int dist = get_dist(i - x, j - y); @@ -360,7 +359,7 @@ void MapPreview::changeSurface(int x, int y, MapSurfaceType surface, int radius) for (j = y - radius + 1; j < y + radius; j++) { if (inside(i, j)) { dist = get_dist(i - x, j - y); - if (radius >= dist) { + if (radius > dist) { // was >= cells[i][j].surface = surface; } }