Re: core file on civserver, http://civserver.freeciv.org/games/44510

Raimar Falke <rf13-r/[email protected]>
Newsgroups gmane.games.freeciv.devel,gmane.games.freeciv.general
Message-ID <[email protected]>
On Mon, Oct 21, 2002 at 09:32:44PM -0700, [email protected] wrote:

Found and fixed. The problem is that if choose_goal_tech returns 0
than player->research.researching isn't updated. So we have to call
choose_random_tech to choose any random researchable tech.

It was rare because it was triggered by "techlevel 50".

	Raimar

-- 
 email: rf13-r/[email protected]
 "The Internet is really just a series of bottlenecks 
  joined by high speed networks."
    -- Sam Wilson
techlevel1.diff (text/plain, 1.4 KB)
Index: server/plrhand.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/server/plrhand.c,v
retrieving revision 1.246
diff -u -r1.246 plrhand.c
--- server/plrhand.c	2002/10/09 14:10:17	1.246
+++ server/plrhand.c	2002/10/22 22:48:52
@@ -546,8 +546,7 @@
     set_invention(plr, nation->init_techs[i], TECH_KNOWN);
   }
 
-
-  for (i=0;i<tech;i++) {
+  for (i = 0; i < tech; i++) {
     update_research(plr);
     choose_random_tech(plr); /* could be choose_goal_tech -- Syela */
     set_invention(plr, plr->research.researching, TECH_KNOWN);
@@ -555,7 +554,9 @@
 
   /* Mark the reachable techs */
   update_research(plr);
-  choose_goal_tech(plr);
+  if (choose_goal_tech(plr) == 0) {
+    choose_random_tech(plr);
+  }
 }
 
 /**************************************************************************
Index: server/report.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/server/report.c,v
retrieving revision 1.34
diff -u -r1.34 report.c
--- server/report.c	2002/10/09 16:12:17	1.34
+++ server/report.c	2002/10/22 22:48:53
@@ -341,7 +341,7 @@
 
 static int get_research(struct player *pplayer)
 {
-  return (pplayer->score.techout * 100) / MAX(total_bulbs_required(pplayer), 1);
+  return (pplayer->score.techout * 100) / total_bulbs_required(pplayer);
 }
 
 static int get_literacy(struct player *pplayer)
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.