From ef640257a16877594412a8a70e0ad1d91d2a1dd2 Mon Sep 17 00:00:00 2001 From: gfgtdf Date: Mon, 21 May 2018 03:29:58 +0200 Subject: [PATCH] wb: dont resend 'bump_later' commands these caused 'illegal whiteboard data' messages from the mp server. (cherry-picked from commit 5dffb16d5eefd0bc014ffceeafd231c20a7d0791) --- src/whiteboard/side_actions.cpp | 13 +++++++------ src/whiteboard/side_actions.hpp | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/whiteboard/side_actions.cpp b/src/whiteboard/side_actions.cpp index 2a545f345a7f..df19411e49c9 100644 --- a/src/whiteboard/side_actions.cpp +++ b/src/whiteboard/side_actions.cpp @@ -489,7 +489,7 @@ namespace } //move action toward front of queue -side_actions::iterator side_actions::bump_earlier(side_actions::iterator position) +side_actions::iterator side_actions::bump_earlier(side_actions::iterator position, bool send_to_net) { if(resources::whiteboard->has_planned_unit_map()) { ERR_WB << "Modifying action queue while temp modifiers are applied!!!" << std::endl; @@ -529,8 +529,9 @@ side_actions::iterator side_actions::bump_earlier(side_actions::iterator positio << ", bumping action #" << action_number << "/" << last_position << " to position #" << action_number - 1 << "/" << last_position << ".\n"; - resources::whiteboard->queue_net_cmd(team_index_, make_net_cmd_bump_later(position - 1)); - + if (send_to_net) { + resources::whiteboard->queue_net_cmd(team_index_, make_net_cmd_bump_later(position - 1)); + } actions_.bump_earlier(position); LOG_WB << "After bumping earlier, " << *this << "\n"; @@ -538,7 +539,7 @@ side_actions::iterator side_actions::bump_earlier(side_actions::iterator positio } //move action toward back of queue -side_actions::iterator side_actions::bump_later(side_actions::iterator position) +side_actions::iterator side_actions::bump_later(iterator position, bool send_to_net) { assert(position < end()); @@ -546,7 +547,7 @@ side_actions::iterator side_actions::bump_later(side_actions::iterator position) if(position == end()) { return end(); } - position = bump_earlier(position); + position = bump_earlier(position, send_to_net); if(position == end()) { return end(); } @@ -840,7 +841,7 @@ void side_actions::execute_net_cmd(const net_cmd& cmd) action_ptr first_action = *itor; action_ptr second_action = itor[1]; - bump_later(itor); + bump_later(itor, false); LOG_WB << "Command received: action bumped later from turn #" << turn << ", position #" << pos << "\n"; diff --git a/src/whiteboard/side_actions.hpp b/src/whiteboard/side_actions.hpp index 09574c0e0bf2..292b208ad4d7 100644 --- a/src/whiteboard/side_actions.hpp +++ b/src/whiteboard/side_actions.hpp @@ -378,14 +378,14 @@ class side_actions: public std::enable_shared_from_this * i.e. at the front of the queue by one position. * @return The action's new position. */ - iterator bump_earlier(iterator position); + iterator bump_earlier(iterator position, bool send_to_net = true); /** * Moves an action later in the execution order. * i.e. at the back of the queue by one position. * @return The action's new position. */ - iterator bump_later(iterator position); + iterator bump_later(iterator position, bool send_to_net = true); /** * Deletes the action at the specified position.