Author: jtn Date: Mon Nov 17 11:35:36 2014 New Revision: 27067 URL: http://svn.gna.org/viewcvs/freeciv?rev=27067&view=rev Log: Revert fix for bug #22474 (emit "tech_researched" signal to all teammates sharing research) to avoid consequent trouble with Philosophy in the multiplayer ruleset.
Suggested by pepeto. See gna bug #22782. Modified: branches/S2_4/server/diplhand.c branches/S2_4/server/scripting/api_server_edit.c branches/S2_4/server/techtools.c Modified: branches/S2_4/server/diplhand.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_4/server/diplhand.c?rev=27067&r1=27066&r2=27067&view=diff ============================================================================== --- branches/S2_4/server/diplhand.c (original) +++ branches/S2_4/server/diplhand.c Mon Nov 17 11:35:36 2014 @@ -31,7 +31,6 @@ #include "map.h" #include "packets.h" #include "player.h" -#include "research.h" #include "unit.h" /* common/scriptcore */ @@ -432,15 +431,11 @@ advance_name_for_player(pdest, pclause->value), nation_plural_for_player(pgiver)); - players_iterate(aplayer) { - if (player_research_get(pdest) == player_research_get(aplayer)) { - script_server_signal_emit("tech_researched", 3, - API_TYPE_TECH_TYPE, - advance_by_number(pclause->value), - API_TYPE_PLAYER, aplayer, - API_TYPE_STRING, "traded"); - } - } players_iterate_end; + script_server_signal_emit("tech_researched", 3, + API_TYPE_TECH_TYPE, + advance_by_number(pclause->value), + API_TYPE_PLAYER, pdest, + API_TYPE_STRING, "traded"); do_dipl_cost(pdest, pclause->value); found_new_tech(pdest, pclause->value, FALSE, TRUE); } Modified: branches/S2_4/server/scripting/api_server_edit.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_4/server/scripting/api_server_edit.c?rev=27067&r1=27066&r2=27067&view=diff ============================================================================== --- branches/S2_4/server/scripting/api_server_edit.c (original) +++ branches/S2_4/server/scripting/api_server_edit.c Mon Nov 17 11:35:36 2014 @@ -252,35 +252,29 @@ Tech_Type *api_edit_give_technology(lua_State *L, Player *pplayer, Tech_Type *ptech, const char *reason) { - struct player_research *presearch; Tech_type_id id; Tech_Type *result; LUASCRIPT_CHECK_STATE(L, NULL); LUASCRIPT_CHECK_ARG_NIL(L, pplayer, 2, Player, NULL); - presearch = player_research_get(pplayer); if (ptech) { id = advance_number(ptech); } else { - if (presearch->researching == A_UNSET) { + if (player_research_get(pplayer)->researching == A_UNSET) { choose_random_tech(pplayer); } - id = presearch->researching; + id = player_research_get(pplayer)->researching; } if (player_invention_state(pplayer, id) != TECH_KNOWN) { do_free_cost(pplayer, id); found_new_tech(pplayer, id, FALSE, TRUE); result = advance_by_number(id); - players_iterate(aplayer) { - if (presearch == player_research_get(aplayer)) { - script_server_signal_emit("tech_researched", 3, - API_TYPE_TECH_TYPE, result, - API_TYPE_PLAYER, aplayer, - API_TYPE_STRING, reason); - } - } players_iterate_end; + script_server_signal_emit("tech_researched", 3, + API_TYPE_TECH_TYPE, result, + API_TYPE_PLAYER, pplayer, + API_TYPE_STRING, reason); return result; } else { return NULL; Modified: branches/S2_4/server/techtools.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_4/server/techtools.c?rev=27067&r1=27066&r2=27067&view=diff ============================================================================== --- branches/S2_4/server/techtools.c (original) +++ branches/S2_4/server/techtools.c Mon Nov 17 11:35:36 2014 @@ -124,15 +124,11 @@ /* do all the updates needed after finding new tech */ found_new_tech(plr, research->researching, TRUE, TRUE); - players_iterate(aplayer) { - if (research == player_research_get(aplayer)) { - script_server_signal_emit("tech_researched", 3, - API_TYPE_TECH_TYPE, - advance_by_number(researched_tech), - API_TYPE_PLAYER, aplayer, - API_TYPE_STRING, "researched"); - } - } players_iterate_end; + script_server_signal_emit("tech_researched", 3, + API_TYPE_TECH_TYPE, + advance_by_number(researched_tech), + API_TYPE_PLAYER, plr, + API_TYPE_STRING, "researched"); } /**************************************************************************** @@ -182,16 +178,11 @@ do_free_cost(pplayer, i); found_new_tech(pplayer, i, FALSE, TRUE); - players_iterate(aplayer) { - if (player_research_get(pplayer) - == player_research_get(aplayer)) { - script_server_signal_emit("tech_researched", 3, - API_TYPE_TECH_TYPE, - advance_by_number(i), - API_TYPE_PLAYER, aplayer, - API_TYPE_STRING, "stolen"); - } - } players_iterate_end; + script_server_signal_emit("tech_researched", 3, + API_TYPE_TECH_TYPE, + advance_by_number(i), + API_TYPE_PLAYER, pplayer, + API_TYPE_STRING, "stolen"); break; } } @@ -1029,15 +1020,11 @@ do_conquer_cost(pplayer, stolen_tech); found_new_tech(pplayer, stolen_tech, FALSE, TRUE); - players_iterate(aplayer) { - if (player_research_get(pplayer) == player_research_get(aplayer)) { - script_server_signal_emit("tech_researched", 3, - API_TYPE_TECH_TYPE, - advance_by_number(stolen_tech), - API_TYPE_PLAYER, aplayer, - API_TYPE_STRING, "stolen"); - } - } players_iterate_end; + script_server_signal_emit("tech_researched", 3, + API_TYPE_TECH_TYPE, + advance_by_number(stolen_tech), + API_TYPE_PLAYER, pplayer, + API_TYPE_STRING, "stolen"); return stolen_tech; }; _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits