[Commits] [wesnoth/wesnoth] 420f9e: recognize server messages to set a side to idle

GitHub noreply at github.com
Mon Mar 17 11:59:26 UTC 2014


  Branch: refs/heads/master
  Home:   https://github.com/wesnoth/wesnoth
  Commit: 420f9e806973a37299b3e5a86bf81d3c001b92e9
      https://github.com/wesnoth/wesnoth/commit/420f9e806973a37299b3e5a86bf81d3c001b92e9
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-03-16 (Sun, 16 Mar 2014)

  Changed paths:
    M src/playturn.cpp

  Log Message:
  -----------
  recognize server messages to set a side to idle


  Commit: 186e66cec6519606bca5e07209c9a557c78b5e71
      https://github.com/wesnoth/wesnoth/commit/186e66cec6519606bca5e07209c9a557c78b5e71
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-03-17 (Mon, 17 Mar 2014)

  Changed paths:
    M changelog
    M src/flg_manager.cpp
    M src/flg_manager.hpp
    M src/multiplayer_connect_engine.cpp
    M src/multiplayer_connect_engine.hpp
    M src/team.cpp
    M src/team.hpp

  Log Message:
  -----------
  fix bug #21758

in the refactor of mp_connect, one behavior from 1.10 that was
lost was that the host may not start a game until all sides have
chosen faction. we restore this, adding fields to the side engine
to fix in a robust manner, some debugging capabilities left over.


  Commit: 886c2390d8a9ea60c48eb2c0221a96b42816bb18
      https://github.com/wesnoth/wesnoth/commit/886c2390d8a9ea60c48eb2c0221a96b42816bb18
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-03-17 (Mon, 17 Mar 2014)

  Changed paths:
    M src/multiplayer_connect.cpp
    M src/multiplayer_connect_engine.cpp

  Log Message:
  -----------
  fixup party full bell

after fix of bug #21578, the behavior from 1.10, in which game may not
start until all sides have chosen factions as needed, was restored.
we move the party full bell appropriately.


  Commit: 736ceaa6c7e81882c9c5b2e932307b1f1ecb3bfd
      https://github.com/wesnoth/wesnoth/commit/736ceaa6c7e81882c9c5b2e932307b1f1ecb3bfd
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-03-17 (Mon, 17 Mar 2014)

  Changed paths:
    M changelog
    M src/multiplayer.cpp
    M src/playcampaign.cpp
    M src/playcampaign.hpp
    M src/playturn.cpp
    M src/server/game.cpp

  Log Message:
  -----------
  fix bug #18829

it turns out that when the "network_ai" controller type was introduced,
it was implemented on the server in the following way:

https://github.com/wesnoth/wesnoth/blob/a4f47a63c7b2c55fd7d8d3cd425ede256b39acdd/src/server/game.cpp#L464

change_controller requests to the type "ai" are always transformed
by the server into either "human_ai" for host or "network_ai" for client,
and in thunderstruck's refactor of the mp_connect dialogs, ai sides are
always set to "ai" in the WML sent to the server (and set this way on
the host).

however, because of code in play_campaign.cpp which long predated this
refactor, all sides on an mp client are either set to human (if that
player controls them) or "network", or "null".

this causes problems because if that player saves the game, the savegame
will record these sides at human controlled rather than ai controlled...
if the game is reloaded oos can occur, although I won't detail it here.

we update the play_campaign.cpp code to ensure that "ai" controller types
always resolve to human_ai or network_ai as appropriate. additionally,
we make sure that on the host, sides always resolve to human_ai rather
than ai. so the type "ai" should never be observed during an mp game,
and only during scenario configuration, and perhaps during replays.

additionally, we ensure in playturn.cpp that if the client gets a message
from the server to set a side to "ai" during the game, it will in fact
set it to "human_ai" or "network_ai", to preserve the invariant.

finally we also switch over observers to follow this behavior --
previously there was a hack here in the server which would make sure
that any observers which join see all sides as controlled by "human"

https://github.com/wesnoth/wesnoth/blob/a4f47a63c7b2c55fd7d8d3cd425ede256b39acdd/src/server/game.cpp#L197

in order that they do not attempt to substitute themselves for a player.

we change this by removing the hack, and programming the client to remember
if the player is an observer, and if so not attempting to substitute themself
at game start.


  Commit: b854aab437f157eea642131b882a4987a95c5b6b
      https://github.com/wesnoth/wesnoth/commit/b854aab437f157eea642131b882a4987a95c5b6b
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-03-17 (Mon, 17 Mar 2014)

  Changed paths:
    M src/playturn.cpp

  Log Message:
  -----------
  don't display network_ai sides as replacements for dropped sides

after 18829 fix, don't display "network_ai" sides as possible
controllers for a dropped side, as all ai sides now have this value.


  Commit: 2430b491df804700aecc4a43eab3aac3c2a17d56
      https://github.com/wesnoth/wesnoth/commit/2430b491df804700aecc4a43eab3aac3c2a17d56
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-03-17 (Mon, 17 Mar 2014)

  Changed paths:
    M src/gui/dialogs/mp_change_control.cpp

  Log Message:
  -----------
  don't show network_ai controllers in :give_control dialog


  Commit: f8a01890d119742ffc132771493489546f1c0052
      https://github.com/wesnoth/wesnoth/commit/f8a01890d119742ffc132771493489546f1c0052
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-03-17 (Mon, 17 Mar 2014)

  Changed paths:
    M src/server/server.cpp

  Log Message:
  -----------
  add debugging output to server


  Commit: ad4c57f22eef0390803e805629e0aa2ffdcbc4ce
      https://github.com/wesnoth/wesnoth/commit/ad4c57f22eef0390803e805629e0aa2ffdcbc4ce
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-03-17 (Mon, 17 Mar 2014)

  Changed paths:
    M src/game_display.cpp

  Log Message:
  -----------
  implement "last 5 chats" notification properly

(fixup 6d460b98271312f806fadfa037b7ea082e862a24)

proper code to find 5'th \n is:

		int endl_pos = -1;
		for (int ctr = 0; ctr < 5; ctr++)
			endl_pos = i->message.find('\n', endl_pos+1);

and not

		int endl_pos = 0;
		for (int ctr = 0; ctr < 5; ctr++)
			endl_pos = i->message.find('\n', endl_pos);


  Commit: cb6033ceb3766a36c593bc58953b3ffc77ff5256
      https://github.com/wesnoth/wesnoth/commit/cb6033ceb3766a36c593bc58953b3ffc77ff5256
  Author: Chris Beck <render787 at gmail.com>
  Date:   2014-03-17 (Mon, 17 Mar 2014)

  Changed paths:
    M changelog
    M src/flg_manager.cpp
    M src/flg_manager.hpp
    M src/game_display.cpp
    M src/gui/dialogs/mp_change_control.cpp
    M src/multiplayer.cpp
    M src/multiplayer_connect.cpp
    M src/multiplayer_connect_engine.cpp
    M src/multiplayer_connect_engine.hpp
    M src/playcampaign.cpp
    M src/playcampaign.hpp
    M src/playturn.cpp
    M src/server/game.cpp
    M src/server/server.cpp
    M src/team.cpp
    M src/team.hpp

  Log Message:
  -----------
  Merge branch 'server_set_to_idle'


Compare: https://github.com/wesnoth/wesnoth/compare/fcaf8b3fc755...cb6033ceb376


More information about the Commits mailing list