summaryrefslogtreecommitdiffstats
path: root/pacman-c++
diff options
context:
space:
mode:
Diffstat (limited to 'pacman-c++')
-rw-r--r--pacman-c++/constants.h4
-rw-r--r--pacman-c++/mainwidget.cpp33
-rw-r--r--pacman-c++/pacman.proto8
-rw-r--r--pacman-c++/server.cpp15
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
30 green = (1 << 2), 30 green = (1 << 2),
31 max = (1 << 2), 31 max = (1 << 2),
32 }; 32 };
33
34 /* colororder used in protocol and gui */
35 const Color order[] =
36 { Color::red, Color::blue, Color::green, Color::none };
33} 37}
34 38
35// constants for data transmission to client 39// 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()
41 QVBoxLayout *layout = new QVBoxLayout(this); 41 QVBoxLayout *layout = new QVBoxLayout(this);
42 QHBoxLayout *scoreLayout = new QHBoxLayout(); 42 QHBoxLayout *scoreLayout = new QHBoxLayout();
43 43
44 for (unsigned int i = 1; i < 4; ++i) 44 for (unsigned int i = 0; Color::order[i] != Color::none ; ++i)
45 { 45 {
46 QGroupBox *scoreBox = new QGroupBox(QString("Spieler %1").arg(i), this); 46 QGroupBox *scoreBox = new QGroupBox(QString("Spieler %1").arg(i + 1), this);
47 scoreBox->setObjectName(QString("actor%1").arg(i)); 47 scoreBox->setObjectName(QString("actor%1").arg(i + 1));
48 scoreBox->setCheckable(true); 48 scoreBox->setCheckable(true);
49 connect(scoreBox, SIGNAL(clicked()), this, SLOT(playerScoreClicked())); 49 connect(scoreBox, SIGNAL(clicked()), this, SLOT(playerScoreClicked()));
50 scoreLayout->addWidget(scoreBox); 50 scoreLayout->addWidget(scoreBox);
@@ -80,24 +80,15 @@ void MainWidget::createGui()
80 80
81void MainWidget::updateScore(const ProtoBuf::MapUpdate& packet) 81void MainWidget::updateScore(const ProtoBuf::MapUpdate& packet)
82{ 82{
83 QLabel *turnPointsLbl; 83 for(unsigned i = 0; Color::order[i] != Color::none; ++i)
84 QLabel *allPointsLbl; 84 {
85 85 QGridLayout *score = m_playerScoreLayouts.at(i);
86 //TODO: change proto and move that inside an array 86 QLabel *turnPointsLbl = dynamic_cast<QLabel*>(score->itemAtPosition(0, 1)->widget());
87 turnPointsLbl = dynamic_cast<QLabel*>(m_playerScoreLayouts.at(0)->itemAtPosition(0,1)->widget()); 87 turnPointsLbl->setText(QString::number(packet.round_points(i)));
88 allPointsLbl = dynamic_cast<QLabel*>(m_playerScoreLayouts.at(0)->itemAtPosition(1,1)->widget()); 88
89 turnPointsLbl->setText(QString::number(packet.round_points_red())); 89 QLabel *allPointsLbl = dynamic_cast<QLabel*>(score->itemAtPosition(1, 1)->widget());
90 allPointsLbl->setText(QString::number(packet.game_points_red())); 90 allPointsLbl->setText(QString::number(packet.round_points(i)));
91 91 }
92 turnPointsLbl = dynamic_cast<QLabel*>(m_playerScoreLayouts.at(1)->itemAtPosition(0,1)->widget());
93 allPointsLbl = dynamic_cast<QLabel*>(m_playerScoreLayouts.at(1)->itemAtPosition(1,1)->widget());
94 turnPointsLbl->setText(QString::number(packet.round_points_blue()));
95 allPointsLbl->setText(QString::number(packet.game_points_blue()));
96
97 turnPointsLbl = dynamic_cast<QLabel*>(m_playerScoreLayouts.at(2)->itemAtPosition(0,1)->widget());
98 allPointsLbl = dynamic_cast<QLabel*>(m_playerScoreLayouts.at(2)->itemAtPosition(1,1)->widget());
99 turnPointsLbl->setText(QString::number(packet.round_points_green()));
100 allPointsLbl->setText(QString::number(packet.game_points_green()));
101} 92}
102 93
103Transmission::field_t MainWidget::translateKey(int key) 94Transmission::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 {
7//TODO move points inside array 7//TODO move points inside array
8message MapUpdate { 8message MapUpdate {
9 repeated uint32 field = 1 [packed=true]; 9 repeated uint32 field = 1 [packed=true];
10 required uint32 round_points_red = 2; 10 repeated uint32 round_points = 2;
11 required uint32 round_points_green = 3; 11 repeated uint32 game_points = 3;
12 required uint32 round_points_blue = 4;
13 required uint32 game_points_red = 5;
14 required uint32 game_points_green = 6;
15 required uint32 game_points_blue = 7;
16} 12}
17 13
18message WhoAmI { 14message 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()
89 return map; 89 return map;
90} 90}
91 91
92QSharedPointer< ProtoBuf::MapUpdate > Server::createUpdatePacket(Transmission::map_t map) 92QSharedPointer<ProtoBuf::MapUpdate> Server::createUpdatePacket(Transmission::map_t map)
93{ 93{
94 QSharedPointer<ProtoBuf::MapUpdate> updatePacket = 94 QSharedPointer<ProtoBuf::MapUpdate> updatePacket =
95 QSharedPointer<ProtoBuf::MapUpdate>(new ProtoBuf::MapUpdate); 95 QSharedPointer<ProtoBuf::MapUpdate>(new ProtoBuf::MapUpdate);
@@ -99,12 +99,13 @@ QSharedPointer< ProtoBuf::MapUpdate > Server::createUpdatePacket(Transmission::m
99 for (unsigned int y = 0; y < Constants::map_size.height; ++y) 99 for (unsigned int y = 0; y < Constants::map_size.height; ++y)
100 updatePacket->add_field(map[x][y]); 100 updatePacket->add_field(map[x][y]);
101 } 101 }
102 updatePacket->set_round_points_red(m_actors.value(Color::red)->getRoundPoints()); 102
103 updatePacket->set_game_points_red(m_actors.value(Color::red)->getGamePoints()); 103 for(unsigned i = 0; Color::order[i] != Color::none; ++i)
104 updatePacket->set_round_points_green(m_actors.value(Color::green)->getRoundPoints()); 104 {
105 updatePacket->set_game_points_green(m_actors.value(Color::green)->getGamePoints()); 105 updatePacket->add_round_points(m_actors.value(Color::order[i])->getRoundPoints());
106 updatePacket->set_round_points_blue(m_actors.value(Color::blue)->getRoundPoints()); 106 updatePacket->add_game_points(m_actors.value(Color::order[i])->getGamePoints());
107 updatePacket->set_game_points_blue(m_actors.value(Color::blue)->getGamePoints()); 107 }
108
108 //qDebug() << "field sz "<< updatePacket->field_size(); 109 //qDebug() << "field sz "<< updatePacket->field_size();
109 return updatePacket; 110 return updatePacket;
110} 111}