I think you have changed the behaviour here. Only the current player can normally press space to make the fall of bonus box fastest. It have to be discussed I guess.
Florian Köberle a écrit : > --- > lib/wormux/include/WORMUX_action.h | 1 + > src/game/game.cpp | 16 ++++++++++++++++ > src/game/game.h | 1 + > src/include/action_handler.cpp | 7 +++++++ > src/interface/man_machine_interface.cpp | 6 +----- > 5 files changed, 26 insertions(+), 5 deletions(-) > > diff --git a/lib/wormux/include/WORMUX_action.h > b/lib/wormux/include/WORMUX_action.h > index cc612b9..489154a 100644 > --- a/lib/wormux/include/WORMUX_action.h > +++ b/lib/wormux/include/WORMUX_action.h > @@ -116,6 +116,7 @@ public: > > // Bonus Box > ACTION_DROP_BONUS_BOX, > + ACTION_REQUEST_BONUS_BOX_DROP, > > // ######################################################## > ACTION_NETWORK_PING, > diff --git a/src/game/game.cpp b/src/game/game.cpp > index c4b6fcd..0f0eee8 100644 > --- a/src/game/game.cpp > +++ b/src/game/game.cpp > @@ -632,6 +632,22 @@ bool Game::NewBox() > return true; > } > > +void Game::RequestBonusBoxDrop() > +{ > + ObjBox* current_box = Game::GetInstance()->GetCurrentBox(); > + if (current_box != NULL) { > + if (Network::GetInstance()->IsTurnMaster()) { > + Action a(Action::ACTION_DROP_BONUS_BOX); > + Network::GetInstance()->SendActionToAll(a); > + > + current_box->DropBox(); > + } else { > + Action a(Action::ACTION_REQUEST_BONUS_BOX_DROP); > + Network::GetInstance()->SendActionToAll(a); > + } > + } > +} > + > void Game::SetState(game_loop_state_t new_state, bool begin_game) > { > if (begin_game && > diff --git a/src/game/game.h b/src/game/game.h > index 69b7a0c..94dc429 100644 > --- a/src/game/game.h > +++ b/src/game/game.h > @@ -153,5 +153,6 @@ public: > bool NewBox(); > void SetCurrentBox(ObjBox * current_box) { current_ObjBox = current_box; }; > ObjBox * GetCurrentBox() { return current_ObjBox; }; > + void RequestBonusBoxDrop(); > }; > #endif // GAME_H > diff --git a/src/include/action_handler.cpp b/src/include/action_handler.cpp > index 968f116..26037c7 100644 > --- a/src/include/action_handler.cpp > +++ b/src/include/action_handler.cpp > @@ -325,6 +325,12 @@ static void Action_DropBonusBox (Action */*a*/) > } > } > > +static void Action_RequestBonusBoxDrop (Action */*a*/) > +{ > + if (Network::GetInstance()->IsTurnMaster()) > + Game::GetInstance()->RequestBonusBoxDrop(); > +} > + > // ######################################################## > > static void Action_Rules_SetGameMode (Action *a) > @@ -999,6 +1005,7 @@ void Action_Handler_Init() > > // Bonus box > ActionHandler::GetInstance()->Register (Action::ACTION_DROP_BONUS_BOX, > "BONUSBOX_drop_box", &Action_DropBonusBox); > + ActionHandler::GetInstance()->Register > (Action::ACTION_REQUEST_BONUS_BOX_DROP, "BONUSBOX_request_box_drop", > &Action_RequestBonusBoxDrop); > // ######################################################## > ActionHandler::GetInstance()->Register (Action::ACTION_NETWORK_PING, > "NETWORK_ping", &Action_Network_Ping); > ActionHandler::GetInstance()->Register > (Action::ACTION_NETWORK_RANDOM_INIT, "NETWORK_random_init", > &Action_Network_RandomInit); > diff --git a/src/interface/man_machine_interface.cpp > b/src/interface/man_machine_interface.cpp > index bc480fa..ea9ee87 100644 > --- a/src/interface/man_machine_interface.cpp > +++ b/src/interface/man_machine_interface.cpp > @@ -266,11 +266,7 @@ void ManMachineInterface::HandleKeyReleased(const Key_t > &key) > if (key == KEY_SHOOT) { > > if (Game::GetInstance()->ReadState() == Game::END_TURN) { > - ObjBox* current_box = Game::GetInstance()->GetCurrentBox(); > - if (current_box != NULL) { > - Action * a = new Action(Action::ACTION_DROP_BONUS_BOX); > - ActionHandler::GetInstance()->NewAction(a); > - } > + Game::GetInstance()->RequestBonusBoxDrop(); > } else if (Game::GetInstance()->ReadState() == Game::PLAYING && > ActiveTeam().IsLocal() && > !ActiveCharacter().IsDead()) { > _______________________________________________ Wormux-dev mailing list Wormux-dev@gna.org https://mail.gna.org/listinfo/wormux-dev