diff options
Diffstat (limited to 'pacman-c++/mainwidget.cpp')
| -rw-r--r-- | pacman-c++/mainwidget.cpp | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/pacman-c++/mainwidget.cpp b/pacman-c++/mainwidget.cpp index 809e786..fe1ba9c 100644 --- a/pacman-c++/mainwidget.cpp +++ b/pacman-c++/mainwidget.cpp | |||
| @@ -25,8 +25,18 @@ Transmission::map_t createDummyMap() | |||
| 25 | map[0][0] |= Color::none ^ Transmission::block; | 25 | map[0][0] |= Color::none ^ Transmission::block; |
| 26 | map[0][1] |= Color::none ^ Transmission::block; | 26 | map[0][1] |= Color::none ^ Transmission::block; |
| 27 | map[0][2] |= Color::none ^ Transmission::block; | 27 | map[0][2] |= Color::none ^ Transmission::block; |
| 28 | map[0][3] |= Color::none ^ Transmission::block; | ||
| 29 | map[0][4] |= Color::none ^ Transmission::block; | ||
| 30 | map[0][5] |= Color::none ^ Transmission::block; | ||
| 28 | map[1][0] |= Color::none ^ Transmission::block; | 31 | map[1][0] |= Color::none ^ Transmission::block; |
| 29 | map[2][0] |= Color::none ^ Transmission::block; | 32 | map[2][0] |= Color::none ^ Transmission::block; |
| 33 | map[1][3] |= Color::none ^ Transmission::block; | ||
| 34 | map[2][3] |= Color::none ^ Transmission::block; | ||
| 35 | map[3][3] |= Color::none ^ Transmission::block; | ||
| 36 | map[2][4] |= Color::none ^ Transmission::block; | ||
| 37 | map[2][5] |= Color::none ^ Transmission::block; | ||
| 38 | map[2][2] |= Color::none ^ Transmission::block; | ||
| 39 | map[2][1] |= Color::none ^ Transmission::block; | ||
| 30 | 40 | ||
| 31 | map[4][3] |= Color::green ^ Transmission::block; | 41 | map[4][3] |= Color::green ^ Transmission::block; |
| 32 | 42 | ||
| @@ -124,9 +134,24 @@ void MainWidget::updateMap(const Transmission::map_t& map) | |||
| 124 | Color::Color color = static_cast<Color::Color>(cur & Transmission::color_mask); | 134 | Color::Color color = static_cast<Color::Color>(cur & Transmission::color_mask); |
| 125 | qDebug() << "col=" << color; | 135 | qDebug() << "col=" << color; |
| 126 | 136 | ||
| 127 | PixmapItem *item = 0; | 137 | PixmapItem *item = NULL; |
| 128 | if (cur & Transmission::block) | 138 | if (cur & Transmission::block) |
| 129 | item = new Block(color); | 139 | { |
| 140 | unsigned int neighbours = Block::None; | ||
| 141 | // check left side | ||
| 142 | if (x > 0 && map[x - 1][y] & Transmission::block) | ||
| 143 | neighbours |= Block::Left; | ||
| 144 | // check right side | ||
| 145 | if (x < Constants::map_size.width && map[x + 1][y] & Transmission::block) | ||
| 146 | neighbours |= Block::Right; | ||
| 147 | // check upside | ||
| 148 | if (y > 0 && map[x][y - 1] & Transmission::block) | ||
| 149 | neighbours |= Block::Up; | ||
| 150 | // check down side | ||
| 151 | if (y < Constants::map_size.height && map[x][y + 1] & Transmission::block) | ||
| 152 | neighbours |= Block::Down; | ||
| 153 | item = new Block(color, neighbours); | ||
| 154 | } | ||
| 130 | else if (cur & Transmission::bonuspoint) | 155 | else if (cur & Transmission::bonuspoint) |
| 131 | item = new BonusPoint(); | 156 | item = new BonusPoint(); |
| 132 | else if (cur & Transmission::pacman) | 157 | else if (cur & Transmission::pacman) |
| @@ -166,7 +191,7 @@ void MainWidget::updateMap(const Transmission::map_t& map) | |||
| 166 | else | 191 | else |
| 167 | Q_ASSERT(false); | 192 | Q_ASSERT(false); |
| 168 | 193 | ||
| 169 | if(item != 0) | 194 | if (item != NULL) |
| 170 | { | 195 | { |
| 171 | m_scene->addItem(item); | 196 | m_scene->addItem(item); |
| 172 | item->setPos(mapPositionToCoord(x, y)); | 197 | item->setPos(mapPositionToCoord(x, y)); |
