From 57e3e48eb558b73077c2b5b4e531ee1cd75b0fbf Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 11 Apr 2011 02:11:10 +0200 Subject: - second cleanup: move game/round points inside array - order is defined by Color::order[] used by server and client (gui too) --- pacman-c++/constants.h | 4 ++++ pacman-c++/mainwidget.cpp | 33 ++++++++++++--------------------- pacman-c++/pacman.proto | 8 ++------ pacman-c++/server.cpp | 15 ++++++++------- 4 files changed, 26 insertions(+), 34 deletions(-) diff --git a/pacman-c++/constants.h b/pacman-c++/constants.h index d81f474..e7330ae 100644 --- a/pacman-c++/constants.h +++ b/pacman-c++/constants.h @@ -30,6 +30,10 @@ namespace Color green = (1 << 2), max = (1 << 2), }; + + /* colororder used in protocol and gui */ + const Color order[] = + { Color::red, Color::blue, Color::green, Color::none }; } // constants for data transmission to client diff --git a/pacman-c++/mainwidget.cpp b/pacman-c++/mainwidget.cpp index f5d4b7f..9c53513 100644 --- a/pacman-c++/mainwidget.cpp +++ b/pacman-c++/mainwidget.cpp @@ -41,10 +41,10 @@ void MainWidget::createGui() QVBoxLayout *layout = new QVBoxLayout(this); QHBoxLayout *scoreLayout = new QHBoxLayout(); - for (unsigned int i = 1; i < 4; ++i) + for (unsigned int i = 0; Color::order[i] != Color::none ; ++i) { - QGroupBox *scoreBox = new QGroupBox(QString("Spieler %1").arg(i), this); - scoreBox->setObjectName(QString("actor%1").arg(i)); + QGroupBox *scoreBox = new QGroupBox(QString("Spieler %1").arg(i + 1), this); + scoreBox->setObjectName(QString("actor%1").arg(i + 1)); scoreBox->setCheckable(true); connect(scoreBox, SIGNAL(clicked()), this, SLOT(playerScoreClicked())); scoreLayout->addWidget(scoreBox); @@ -80,24 +80,15 @@ void MainWidget::createGui() void MainWidget::updateScore(const ProtoBuf::MapUpdate& packet) { - QLabel *turnPointsLbl; - QLabel *allPointsLbl; - - //TODO: change proto and move that inside an array - turnPointsLbl = dynamic_cast(m_playerScoreLayouts.at(0)->itemAtPosition(0,1)->widget()); - allPointsLbl = dynamic_cast(m_playerScoreLayouts.at(0)->itemAtPosition(1,1)->widget()); - turnPointsLbl->setText(QString::number(packet.round_points_red())); - allPointsLbl->setText(QString::number(packet.game_points_red())); - - turnPointsLbl = dynamic_cast(m_playerScoreLayouts.at(1)->itemAtPosition(0,1)->widget()); - allPointsLbl = dynamic_cast(m_playerScoreLayouts.at(1)->itemAtPosition(1,1)->widget()); - turnPointsLbl->setText(QString::number(packet.round_points_blue())); - allPointsLbl->setText(QString::number(packet.game_points_blue())); - - turnPointsLbl = dynamic_cast(m_playerScoreLayouts.at(2)->itemAtPosition(0,1)->widget()); - allPointsLbl = dynamic_cast(m_playerScoreLayouts.at(2)->itemAtPosition(1,1)->widget()); - turnPointsLbl->setText(QString::number(packet.round_points_green())); - allPointsLbl->setText(QString::number(packet.game_points_green())); + for(unsigned i = 0; Color::order[i] != Color::none; ++i) + { + QGridLayout *score = m_playerScoreLayouts.at(i); + QLabel *turnPointsLbl = dynamic_cast(score->itemAtPosition(0, 1)->widget()); + turnPointsLbl->setText(QString::number(packet.round_points(i))); + + QLabel *allPointsLbl = dynamic_cast(score->itemAtPosition(1, 1)->widget()); + allPointsLbl->setText(QString::number(packet.round_points(i))); + } } Transmission::field_t MainWidget::translateKey(int key) diff --git a/pacman-c++/pacman.proto b/pacman-c++/pacman.proto index 3a09702..0472697 100644 --- a/pacman-c++/pacman.proto +++ b/pacman-c++/pacman.proto @@ -7,12 +7,8 @@ message KeyPressUpdate { //TODO move points inside array message MapUpdate { repeated uint32 field = 1 [packed=true]; - required uint32 round_points_red = 2; - required uint32 round_points_green = 3; - required uint32 round_points_blue = 4; - required uint32 game_points_red = 5; - required uint32 game_points_green = 6; - required uint32 game_points_blue = 7; + repeated uint32 round_points = 2; + repeated uint32 game_points = 3; } message WhoAmI { diff --git a/pacman-c++/server.cpp b/pacman-c++/server.cpp index 144043b..4715ec6 100644 --- a/pacman-c++/server.cpp +++ b/pacman-c++/server.cpp @@ -89,7 +89,7 @@ Transmission::map_t Server::calculateUpdates() return map; } -QSharedPointer< ProtoBuf::MapUpdate > Server::createUpdatePacket(Transmission::map_t map) +QSharedPointer Server::createUpdatePacket(Transmission::map_t map) { QSharedPointer updatePacket = QSharedPointer(new ProtoBuf::MapUpdate); @@ -99,12 +99,13 @@ QSharedPointer< ProtoBuf::MapUpdate > Server::createUpdatePacket(Transmission::m for (unsigned int y = 0; y < Constants::map_size.height; ++y) updatePacket->add_field(map[x][y]); } - updatePacket->set_round_points_red(m_actors.value(Color::red)->getRoundPoints()); - updatePacket->set_game_points_red(m_actors.value(Color::red)->getGamePoints()); - updatePacket->set_round_points_green(m_actors.value(Color::green)->getRoundPoints()); - updatePacket->set_game_points_green(m_actors.value(Color::green)->getGamePoints()); - updatePacket->set_round_points_blue(m_actors.value(Color::blue)->getRoundPoints()); - updatePacket->set_game_points_blue(m_actors.value(Color::blue)->getGamePoints()); + + for(unsigned i = 0; Color::order[i] != Color::none; ++i) + { + updatePacket->add_round_points(m_actors.value(Color::order[i])->getRoundPoints()); + updatePacket->add_game_points(m_actors.value(Color::order[i])->getGamePoints()); + } + //qDebug() << "field sz "<< updatePacket->field_size(); return updatePacket; } -- cgit v1.2.3