(PR#10561) Re: AI starts many wonders but never finishes any

"Per I. Mathisen" <per-0/[email protected]>
Newsgroups gmane.games.freeciv.ai
Message-ID <[email protected]>
<URL: http://rt.freeciv.org/Ticket/Display.html?id=10561 >

Here is a patch to improve this problem: Make AI advisor (used when
production finished for both human and AI) use the proper function that
is used by the AI to change productions. This limits the number of
wonders built at the same time to one, as before. Other cities may build
caravans.

  - Per
wonder1.diff (text/x-patch, 1.2 KB)
Index: server/cityturn.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/server/cityturn.c,v
retrieving revision 1.269
diff -u -r1.269 cityturn.c
--- server/cityturn.c	19 Oct 2004 06:46:57 -0000	1.269
+++ server/cityturn.c	30 Oct 2004 15:00:33 -0000
@@ -52,6 +52,7 @@
 #include "aicity.h"
 #include "aidata.h"
 #include "ailog.h"
+#include "aitools.h"
 
 #include "cityturn.h"
 
@@ -565,19 +566,12 @@
 **************************************************************************/
 void advisor_choose_build(struct player *pplayer, struct city *pcity)
 {
-  Impr_Type_id id = -1;
-  int val = 0;
+  struct ai_choice choice;
 
   /* See what AI has to say */
-  impr_type_iterate(i) {
-    if (pcity->ai.building_want[i] > val
-        && can_build_improvement(pcity, i)) {
-      val = pcity->ai.building_want[i];
-      id = i;
-    }
-  } impr_type_iterate_end;
-  if (id >= 0 && id < B_LAST) {
-    change_build_target(pplayer, pcity, id, FALSE, E_IMP_AUTO);
+  ai_advisor_choose_building(pcity, &choice);
+  if (choice.choice >= 0 && choice.choice < B_LAST) {
+    change_build_target(pplayer, pcity, choice.choice, FALSE, E_IMP_AUTO);
     return;
   }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.