summaryrefslogtreecommitdiff
path: root/server/game.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'server/game.cpp')
-rw-r--r--server/game.cpp41
1 files changed, 21 insertions, 20 deletions
diff --git a/server/game.cpp b/server/game.cpp
index 1f43e9b..26d0ce4 100644
--- a/server/game.cpp
+++ b/server/game.cpp
@@ -101,18 +101,19 @@ void Game::round_update_draw() {
// Construct and send state to each client.
for(int i = 0; i < 4; i++) {
- State state;
+ Player::State state[4];
- state.players[0] = players[i].get_state();
- state.players[1] = players[(i + 1) % 4].get_state_filtered();
- state.players[2] = players[(i + 2) % 4].get_state_filtered();
- state.players[3] = players[(i + 3) % 4].get_state_filtered();
+ state[0] = players[i].get_state();
+ state[1] = players[(i + 1) % 4].get_state_filtered();
+ state[2] = players[(i + 2) % 4].get_state_filtered();
+ state[3] = players[(i + 3) % 4].get_state_filtered();
+ Actions a;
if(i == current_player) {
- state.possible_actions = possible_actions;
+ a = possible_actions;
}
- players[i].client->round_state(state);
+ players[i].client->round_state(state[0], state[1], state[2], state[3], Tiles(), a);
}
// Await action from client.
@@ -126,21 +127,21 @@ void Game::round_update_discard() {
// Construct and send state to each client.
for(int i = 0; i < 4; i++) {
- State state;
+ Player::State state[4];
- state.players[0] = players[i].get_state();
- state.players[1] = players[(i + 1) % 4].get_state_filtered();
- state.players[2] = players[(i + 2) % 4].get_state_filtered();
- state.players[3] = players[(i + 3) % 4].get_state_filtered();
+ state[0] = players[i].get_state();
+ state[1] = players[(i + 1) % 4].get_state_filtered();
+ state[2] = players[(i + 2) % 4].get_state_filtered();
+ state[3] = players[(i + 3) % 4].get_state_filtered();
+ Actions a;
if(i != current_player) {
- Actions a = players[i].get_actions_discard(discarded_tile);
- if(a) {
- state.possible_actions = possible_actions[i] = a;
+ if(a = players[i].get_actions_discard(discarded_tile)) {
+ possible_actions[i] = a;
}
}
- players[i].client->round_state(state);
+ players[i].client->round_state(state[0], state[1], state[2], state[3], Tiles(), a);
}
preceding_action = Action::Pass;
@@ -275,13 +276,13 @@ void Game::Player::round_start() {
client->round_start();
}
-State::Player Game::Player::get_state() {
- State::Player state = {hand, open, pond};
+Game::Player::State Game::Player::get_state() {
+ State state = {hand, open, pond};
return state;
}
-State::Player Game::Player::get_state_filtered() {
- State::Player state = {hand, open, pond};
+Game::Player::State Game::Player::get_state_filtered() {
+ State state = {hand, open, pond};
return state;
}