From f1a2d179062dfaf53f805395407a2c666eedf36e Mon Sep 17 00:00:00 2001 From: manuel Date: Wed, 6 Apr 2011 17:25:11 +0200 Subject: make pictures color index based --- pacman-c++/mainwidget.cpp | 50 +++++++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 23 deletions(-) (limited to 'pacman-c++/mainwidget.cpp') diff --git a/pacman-c++/mainwidget.cpp b/pacman-c++/mainwidget.cpp index ad11bf2..819088c 100644 --- a/pacman-c++/mainwidget.cpp +++ b/pacman-c++/mainwidget.cpp @@ -172,25 +172,23 @@ Transmission::map_t createDummyMap() map[x + 3][y + 2] |= Color::none | Transmission::block; x += 5; - /* - map[4][3] |= Color::green ^ Transmission::block; - - map[5][3] |= Color::none ^ Transmission::block; - map[6][3] |= Color::none ^ Transmission::block; - map[7][3] |= Color::red ^ Transmission::block; - - map[7][5] |= Transmission::bonuspoint; - - map[5][5] |= Color::blue; - map[5][5] |= Transmission::pacman; - map[5][5] |= Transmission::direction_left; + map[15][16] |= Color::red | Transmission::block; + map[15][17] |= Color::blue | Transmission::block; + map[15][18] |= Color::green | Transmission::block; + map[15][19] |= Transmission::bonuspoint; - map[7][5] |= Transmission::bonuspoint;*/ - - map[15][15] |= Color::blue; + map[15][15] |= Color::red; map[15][15] |= Transmission::pacman; map[15][15] |= Transmission::direction_left; + map[16][15] |= Color::blue; + map[16][15] |= Transmission::pacman; + map[16][15] |= Transmission::direction_left; + + map[17][15] |= Color::green; + map[17][15] |= Transmission::pacman; + map[17][15] |= Transmission::direction_left; + return map; } @@ -250,11 +248,15 @@ void MainWidget::createGui() void MainWidget::updateScore() { QMapIterator i(m_actors); - while (i.hasNext()) { + while (i.hasNext()) + { i.next(); - int id = i.key() - 1; - if (id == 4) { - id = 3; + int id = (i.key() >> 1); + if (id > (Color::max >> 1)) + { + /* player #4 isn't supported in score */ + Q_ASSERT(false); + continue; } QLabel *turnPointsLbl = dynamic_cast(m_playerScoreLayouts.at(id)->itemAtPosition(0,1)->widget()); @@ -274,10 +276,10 @@ void MainWidget::updateMap(const Transmission::map_t& map) const Transmission::field_t &cur = map[x][y]; if (cur == 0) continue; - qDebug() << "not 0 at x=" << x << ", y=" << y << ", val=" << cur; + //qDebug() << "not 0 at x=" << x << ", y=" << y << ", val=" << cur; Color::Color color = static_cast(cur & Transmission::color_mask); - qDebug() << "col=" << color; + //qDebug() << "col=" << color; PixmapItem* item = NULL; if (cur & Transmission::block) @@ -303,7 +305,7 @@ void MainWidget::updateMap(const Transmission::map_t& map) { Actor *actor = m_actors.value(color, 0); if (actor == 0) { // 0 entspricht NULL ;) - qDebug() << "new actor of col" << color; + //qDebug() << "new actor of col" << color; actor = new Actor(color); m_actors[color] = actor; m_scene->addItem(actor); @@ -342,13 +344,15 @@ void MainWidget::updateMap(const Transmission::map_t& map) item->setPos(mapPositionToCoord(x, y)); PixmapItem* oldItem = visualMap[x][y]; visualMap[x][y] = item; - if (oldItem != NULL) { + if (oldItem != NULL) + { m_scene->removeItem(item); delete oldItem; } } } } + updateScore(); } -- cgit v1.2.3