From 42f646d02c2b0343c5a7982ce188444aebd838ae Mon Sep 17 00:00:00 2001 From: Anselme Date: Thu, 19 May 2016 11:39:03 +0200 Subject: [PATCH] fixed bug --- .gitignore | 2 ++ generators/biome.cpp | 8 ++++---- src/drawwidget.cpp | 12 ++++++++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index c43115e..cf455fb 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,6 @@ build* *.so teams/*.dll +teams/*.so generators/*.dll +generators/*.so diff --git a/generators/biome.cpp b/generators/biome.cpp index e6454a5..d6f3f17 100644 --- a/generators/biome.cpp +++ b/generators/biome.cpp @@ -47,7 +47,7 @@ void create_biome_random(Map &map, int type); int check_nears_biomes(int x, int y); int check_nears_spawn(Map &map, int x, int y); int in_radius(int x,int y,t_biome e); -int generate(int x, int y); +Pixel::Type generate(int x, int y); void init_generator(); extern "C" void generate(Map *mapPtr) @@ -92,7 +92,7 @@ extern "C" void generate(Map *mapPtr) if (i == 0 || j == 0 || i == width-1 || j == height-1) map[i][j].type = Pixel::BEDROCK; else - map[i][j].type = generate(i,j); + map[i][j].type = generate(i, j); } } @@ -179,7 +179,7 @@ int in_radius(int x,int y,t_biome e){ return d < e.radius ? d : -1; } -int generate(int x, int y){ +Pixel::Type generate(int x, int y){ int i, j; int proba[5]; int sum, dist, ratio, val, seuil=0; @@ -211,7 +211,7 @@ int generate(int x, int y){ for (i=0;i<5;i++){ seuil += proba[i]; if(val < seuil) - return i+1; + return Pixel::Type(i+1); } }else{ val = rand()%100; diff --git a/src/drawwidget.cpp b/src/drawwidget.cpp index eb11aaf..8a2ce1d 100644 --- a/src/drawwidget.cpp +++ b/src/drawwidget.cpp @@ -14,7 +14,8 @@ DrawWidget::DrawWidget(QWidget *parent) : QOpenGLWidget(parent), m_Qt_fbo(NULL), - m_pipeline(NULL) + m_pipeline(NULL), + m_map(NULL) { new_simulation = false; update_needed = false; @@ -80,7 +81,7 @@ void DrawWidget::startSimulation(MapScene *map) void DrawWidget::mouseMoveEvent(QMouseEvent *event) { - if(grabbedMouse) + if(grabbedMouse && m_pipeline != NULL) { m_pipeline->cameraMove(event->globalX() - lastMousePos.x(), event->globalY() - lastMousePos.y()); repaint(); @@ -120,6 +121,9 @@ void DrawWidget::mouseReleaseEvent(QMouseEvent* event) void DrawWidget::wheelEvent(QWheelEvent *event) { - m_pipeline->cameraZoom(event->delta()); - repaint(); + if(m_pipeline != NULL) + { + m_pipeline->cameraZoom(event->delta()); + repaint(); + } }