> 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.
No, you could drop a box with space even as non turn master. That's why
this patch was necessary.
>
> 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
>
>


_______________________________________________
Wormux-dev mailing list
Wormux-dev@gna.org
https://mail.gna.org/listinfo/wormux-dev

Répondre à