diff -ru server/plrhand.c server-mod/plrhand.c --- server/plrhand.c 2002-08-18 18:12:07.000000000 +0200 +++ server-mod/plrhand.c 2002-08-18 21:47:37.000000000 +0200 @@ -165,19 +165,32 @@ } /************************************************************************** -Main update loop, for each player at end of turn. +Main update loops, for each player at end of turn. +One for ai_activities +One for the building and movement restoring and so on +One for the gotos from the new turn +Perhaps there functions are to less, because should the lib give a free +tech although someone gets electricity the same round? **************************************************************************/ -void update_player_activities(struct player *pplayer) +void update_player_ai_endturn_activities(struct player *pplayer) { if (pplayer->ai.control) { ai_do_last_activities(pplayer); /* why was this AFTER aliveness? */ - } + } +} + +void update_player_building_activities(struct player *pplayer) +{ great_library(pplayer); update_revolution(pplayer); player_restore_units(pplayer); /*note: restoring move point moved to update_unit_activities*/ update_city_activities(pplayer); pplayer->research.changed_from=-1; +} + +void update_player_movement_activities(struct player *pplayer) +{ update_unit_activities(pplayer); update_player_aliveness(pplayer); } Only in server-mod/: plrhand.c.orig diff -ru server/plrhand.h server-mod/plrhand.h --- server/plrhand.h 2002-08-18 20:56:45.000000000 +0200 +++ server-mod/plrhand.h 2002-08-18 21:47:37.000000000 +0200 @@ -27,7 +27,9 @@ void server_player_init(struct player *pplayer, bool initmap); void server_remove_player(struct player *pplayer); void begin_player_turn(struct player *pplayer); -void update_player_activities(struct player *pplayer); +void update_player_ai_endturn_activities(struct player *pplayer); +void update_player_building_activities(struct player *pplayer); +void update_player_movement_activities(struct player *pplayer); void handle_player_revolution(struct player *pplayer); void handle_player_rates(struct player *pplayer, Only in server-mod/: plrhand.h.orig diff -ru server/srv_main.c server-mod/srv_main.c --- server/srv_main.c 2002-08-18 18:12:03.000000000 +0200 +++ server-mod/srv_main.c 2002-08-18 21:47:37.000000000 +0200 @@ -417,11 +417,38 @@ int i; nocity_send = TRUE; + /* ai moves */ for(i=0; iname); - update_player_activities(pplayer); + update_player_ai_endturn_activities(pplayer); + /* ai unit activity has been moved UP -- Syela */ + + flush_packets(); + /* update_player_activities calls update_unit_activities which + causes *major* network traffic */ + } + /* city buildings, unit refreshing */ + + for(i=0; iname); + update_player_building_activities(pplayer); + /* ai unit activity has been moved UP -- Syela */ + + flush_packets(); + /* update_player_activities calls update_unit_activities which + causes *major* network traffic */ + } + + /* movement of units */ + for(i=0; iname); + update_player_movement_activities(pplayer); /* ai unit activity has been moved UP -- Syela */ flush_packets(); Only in server-mod/: srv_main.c.oric