summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pacman-c++/mainwidget.cpp13
-rw-r--r--pacman-c++/mainwidget.h2
2 files changed, 13 insertions, 2 deletions
diff --git a/pacman-c++/mainwidget.cpp b/pacman-c++/mainwidget.cpp
index bf049f2..a3acc45 100644
--- a/pacman-c++/mainwidget.cpp
+++ b/pacman-c++/mainwidget.cpp
@@ -56,6 +56,11 @@ Transmission::map_t createDummyMap()
56MainWidget::MainWidget() 56MainWidget::MainWidget()
57 : currentKey(0) 57 : currentKey(0)
58{ 58{
59 visualMap.resize(Constants::map_size.width);
60 for (int i=0; i<visualMap.size(); ++i) {
61 visualMap[i].resize(Constants::map_size.height);
62 }
63
59 createGui(); 64 createGui();
60 updateMap(createDummyMap()); 65 updateMap(createDummyMap());
61} 66}
@@ -133,7 +138,7 @@ void MainWidget::updateMap(const Transmission::map_t& map)
133 Color::Color color = static_cast<Color::Color>(cur & Transmission::color_mask); 138 Color::Color color = static_cast<Color::Color>(cur & Transmission::color_mask);
134 qDebug() << "col=" << color; 139 qDebug() << "col=" << color;
135 140
136 PixmapItem *item = NULL; 141 PixmapItem* item = NULL;
137 if (cur & Transmission::block) 142 if (cur & Transmission::block)
138 { 143 {
139 unsigned int neighbours = Block::None; 144 unsigned int neighbours = Block::None;
@@ -194,6 +199,12 @@ void MainWidget::updateMap(const Transmission::map_t& map)
194 { 199 {
195 m_scene->addItem(item); 200 m_scene->addItem(item);
196 item->setPos(mapPositionToCoord(x, y)); 201 item->setPos(mapPositionToCoord(x, y));
202 PixmapItem* oldItem = visualMap[x][y];
203 visualMap[x][y] = item;
204 if (oldItem != NULL) {
205 m_scene->removeItem(item);
206 delete oldItem;
207 }
197 } 208 }
198 } 209 }
199 } 210 }
diff --git a/pacman-c++/mainwidget.h b/pacman-c++/mainwidget.h
index 36e5624..951b6c6 100644
--- a/pacman-c++/mainwidget.h
+++ b/pacman-c++/mainwidget.h
@@ -29,7 +29,7 @@ private:
29 29
30 void updateScore(); 30 void updateScore();
31 31
32 PixmapItem ** visualMap; 32 QVector< QVector< PixmapItem* > > visualMap;
33 33
34 // data conversion 34 // data conversion
35 QPoint mapPositionToCoord(unsigned int x, unsigned int y); 35 QPoint mapPositionToCoord(unsigned int x, unsigned int y);