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

Reply via email to