Re: [Freeciv-Dev] (PR#39672) Bug and Suggestion report.

2007-09-06 Thread Daniel Markstedt

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39672 

On 9/6/07, David Nuttall [EMAIL PROTECTED] wrote:

 URL: http://bugs.freeciv.org/Ticket/Display.html?id=39672 

 Good afternoon,

 I have noted the following problems and ideas while playing the latest beta of
 FreeCiv.

 FreeCiv Bugs:
 01.  On-line Help:  Wonders show Required=0 and Obsolete By as the tech
 required, instead of the technology advance that renders it obsolete.
 02.  Selecting Nations:  Choosing any ?nationgroup gives an empty list.
 03.  Games - Local Options:  Screen too long to fit on 1024 X 768 screen.  The
 program should check screen size.  The Ok and Cancel buttons on the bottom are
 inaccessible.
 04.  Sometimes focus goes to another application, which was just sitting in 
 the
 background, when closing pop-up window.

 FreeCiv suggestions:
 01.  On-line Help:  Give on-line help for the starting game options, not just
 the HTML files.
 02.  On-line Help:  Show path to each technology advance (not just what it
 allows, but what allows it).
 03.  On-line Help:  Put images from the tile set in the help display.
 04.  When picking a name from the listbox when selecting nations, the program
 should set the appropriate gender for the person, but let the player change it
 after.
 05.  Do not put up Welcome to Freeciv window with Game Options until the
 server is connected.
 06.  Show which wonders are obsolete on WorkList.

 I also have some crashes at various times.  I have not been able to determine 
 a
 consistent cause, but it always reports a General Protection Fault in 
 USER.(EXE
 OR DLL, I forget which).  It generally crashes after a couple of hours of 
 play.
  I have yet to complete a game after 6 or 7 attempts.

 I am running on a Windows 98, Celeron II, 400 MHz with 320 MB of RAM and
 somewhere around 30 GB of disk free on the partition containing Windows and
 Program Files.  Any other details or test you want, just ask.

 I will try the last stable instead.


 David Nuttall, Computer Specialist
 Nuttall Computer Consulting
 [EMAIL PROTECTED]



Hi David,

Reading your report I get the impression you are running the native
Win32 version. I suggest you try the SDL port instead. It is much more
stable. The only thing is that you have to use the command line to
save and load games.

BTW, your games are always autosaved every few turns. So even if the
game crashes, you should be able to resume playing without losing much
progress.

 ~Daniel



___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39674) freeciv-2.1.0-beta6: leader defends

2007-09-06 Thread Pepeto _

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39674 

 [EMAIL PROTECTED] - Jeu. Sep. 06 10:07:51 2007]:
 
 Hello,
 
 a behauvior which can be quite surprising if you are
 not aware of it:
 
 When a city is attacked, the unit with the best defense
 chances is choosen - even if it is the leader! Concrete:
 If a catapult attacks a city with a phalanx + leader, the
 leader will defend (and most likely die).

I think you are right. It's a half-implemented Freeciv feature more...

 
 IMHO the leader should try to stay out of the combat as
 long as he is not the only defender. He is the leader.
 Of course this only counts for cities and fortresses ...

Don't forget the option killstack from the ruleset...


___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] [Patch] Remove need for --enable-maintainer-mode

2007-09-06 Thread Marko Lindqvist
 Build rules should be sensible by default, not only with extra
configure parameters.

 This patch is for trunk only.
 For S2_1 this would add python as new build requirement for svn checkouts.


 - ML
diff -Nurd -X.diff_ignore freeciv/configure.ac freeciv/configure.ac
--- freeciv/configure.ac	2007-08-26 22:07:41.0 +0300
+++ freeciv/configure.ac	2007-09-06 15:48:54.0 +0300
@@ -46,8 +46,6 @@
 dnl Initialize automake stuff
 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
 
-AM_MAINTAINER_MODE
-
 FC_CHECK_AUTH
 
 dnl  no=do not compile server,  yes=compile server,  *=error
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


Re: [Freeciv-Dev] (PR#10775) incomplete helptext

2007-09-06 Thread Egor Vyscrebentsov

URL: http://bugs.freeciv.org/Ticket/Display.html?id=10775 

On Mon, 3 Sep 2007 17:12:58 -0700 Egor Vyscrebentsov wrote:

 Version 2 of patch. Working, looks not so awful.

All had been written before us - helpdata.c#insert_requirement()

Double \n\n at the end of every req line looks not good though.
I suggest to remove one. (At trunk, at least.)

_This_ patch is ready for inclusion into S2_1, however.

PS. I want to resurrect an old good tradition of commiting patch
by not an author, so I'm not going to commit this patch myself.

-- 
Thanks, evyscr

Index: client/helpdata.c
===
--- client/helpdata.c	(revision 13508)
+++ client/helpdata.c	(working copy)
@@ -645,6 +645,7 @@
 .type = REQ_BUILDING,
 .value = {.building = which}
   };
+  bool has_req = FALSE;
 
   assert(buf);
   buf[0] = '\0';
@@ -655,11 +656,24 @@
   }
 
   imp = improvement_by_number(which);
-  
+
   if (imp-helptext  imp-helptext[0] != '\0') {
 cat_snprintf(buf, bufsz, %s\n\n, _(imp-helptext));
   }
 
+  requirement_vector_iterate(imp-reqs, preq) {
+insert_requirement(preq, buf, bufsz);
+has_req = TRUE;
+  } requirement_vector_iterate_end;
+
+#if 0
+  if (has_req) {
+cat_snprintf(buf, bufsz, \n);
+  } else {
+/*cat_snprintf(buf, bufsz, _(Requires: Nothing\n\n));*/
+  }
+#endif
+
   if (tech_exists(improvement_by_number(which)-obsolete_by)) {
 cat_snprintf(buf, bufsz,
 		 _(* The discovery of %s will make %s obsolete.\n),
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39676) [Patch] Script to help auth server setup

2007-09-06 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39676 

 This should make it much easier to setup authentication enabled
server (if you have auth enabled freeciv binaries)

 1) Install MySQL. This should be easy with any modern distribution
 2) Create user and (empty) database to MySQL for Freeciv to use
 3) Run this script

 We can get rid of (2) by improving this script a bit.

 Now I wonder if any distribution would be interested in providing two
Freeciv server packages; one without authentication, and one with
authentication (with MySQL dependency)


 - ML



setup_auth_server.sh
Description: Bourne shell script
___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


Re: [Freeciv-Dev] gui-mui

2007-09-06 Thread Daniel Markstedt
On 8/25/07, Per I. Mathisen [EMAIL PROTECTED] wrote:
 On Fri, 24 Aug 2007, William Allen Simpson wrote:
  (Ignoring the problem that gui-mui still only handles a single unit.)

 gui-mui has not been updated in a very long time, and should probably just
 be removed from S2_1 and trunk. Amiga users can perhaps use gui-sdl?
 (Amiga users still exist?)

- Per


Could we remove it soon? All those gui-mui specific strings are very
annoying when starting up a new localization (I'm working on a Korean
translation). Let's at least remove gui-mui/* from freeciv.pot...

 ~Daniel

___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


[Freeciv-Dev] (PR#39678) [Patch] Requirement list sanity checking

2007-09-06 Thread Marko Lindqvist

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39678 

 This adds checking of requirement list sanity to ruleset load. S2_1 version.

 Currently outputs only number of conflicting requirement type (not
very user-friendly error message). Functionality to access requirement
type names outside requirements.c is needed before this can be fixed
(and this should be fixed before committing)


 - ML

diff -Nurd -X.diff_ignore freeciv/common/effects.c freeciv/common/effects.c
--- freeciv/common/effects.c	2007-08-21 21:41:47.0 +0300
+++ freeciv/common/effects.c	2007-09-07 03:38:15.0 +0300
@@ -1019,3 +1019,21 @@
   } requirement_list_iterate_end;
 }
 
+/**
+  Iterate through all the effects in cache, and call callback for each.
+  This is currently not very generic implementation, as we have only one user;
+  ruleset sanity checking. If any callback returns FALSE, there is no
+  further checking and this will return FALSE.
+**/
+bool iterate_effect_cache(iec_cb cb)
+{
+  assert(cb != NULL);
+
+  effect_list_iterate(ruleset_cache.tracker, peffect) {
+if (!cb(peffect)) {
+  return FALSE;
+}
+  } effect_list_iterate_end;
+
+  return TRUE;
+}
diff -Nurd -X.diff_ignore freeciv/common/effects.h freeciv/common/effects.h
--- freeciv/common/effects.h	2007-08-13 22:23:46.0 +0300
+++ freeciv/common/effects.h	2007-09-07 02:22:43.0 +0300
@@ -223,5 +223,7 @@
 Impr_type_id ai_find_source_building(struct player *pplayer,
  enum effect_type effect_type);
 
-#endif  /* FC__EFFECTS_H */
+typedef bool (*iec_cb)(const struct effect*);
+bool iterate_effect_cache(iec_cb cb);
 
+#endif  /* FC__EFFECTS_H */
diff -Nurd -X.diff_ignore freeciv/server/ruleset.c freeciv/server/ruleset.c
--- freeciv/server/ruleset.c	2007-09-01 04:51:56.0 +0300
+++ freeciv/server/ruleset.c	2007-09-07 03:35:49.0 +0300
@@ -32,6 +32,7 @@
 #include nation.h
 #include packets.h
 #include registry.h
+#include requirements.h
 #include shared.h
 #include support.h
 #include tech.h
@@ -3265,11 +3266,128 @@
 }
 
 /**
+  Check if requirement list is free of conflicting requirements.
+  max_tiles is number of tiles that can provide requirement. Value -1
+  disables checking based on number of tiles.
+
+  Returns TRUE iff everything ok.
+**/
+static bool sanity_check_req_list(const struct requirement_list *preqs,
+  int max_tiles,
+  const char *list_for)
+{
+  int reqs_of_type[REQ_LAST];
+  int i;
+
+  /* Initialize requirement counters */
+  for (i = 0; i  REQ_LAST; i++) {
+reqs_of_type[i] = 0;
+  }
+
+  requirement_list_iterate(preqs, preq) {
+int rc;
+
+/* Add to counter */
+reqs_of_type[preq-source.type]++;
+rc = reqs_of_type[preq-source.type];
+
+if (rc  1) {
+  /* Multiple requirements of same the type */
+  switch (preq-source.type) {
+   case REQ_GOV:
+   case REQ_NATION:
+   case REQ_UNITTYPE:
+   case REQ_UNITCLASS:
+   case REQ_OUTPUTTYPE:
+   case REQ_SPECIALIST:
+   case REQ_MINSIZE: /* Breaks nothing, but has no sense either */
+ /* There can be only one requirement of these types
+  * Requirements might be identical, but we consider multiple
+  * declarations error anyway. */
+
+ /* TODO: Get real requirement type text instead of just type number. */
+ freelog(LOG_ERROR,
+ %s: Requirement list has multiple %d type requirements,
+ list_for, preq-source.type);
+ return FALSE;
+ break;
+
+   case REQ_SPECIAL:
+   case REQ_TERRAIN:
+ /* There can be only up to max_tiles requirements of these types */
+ if (max_tiles != 1  rc  max_tiles) {
+   freelog(LOG_ERROR,
+   %s: Requirement list has more %d type requirements than 
+   can ever be fullfilled.,
+   list_for, preq-source.type);
+   return FALSE;
+ }
+ break;
+
+   case REQ_NONE:
+   case REQ_TECH:
+   case REQ_BUILDING:
+   case REQ_UNITFLAG:
+ /* Can have multiple requirements of these types */
+ break;
+  }
+}
+  } requirement_list_iterate_end;
+
+  return TRUE;
+}
+
+/**
+  Check that requirement vector and negated requirements vector do not have
+  confliciting requirements.
+
+  Returns TRUE iff everything ok.
+**/
+static bool sanity_check_req_nreq_list(const struct requirement_list *preqs,
+   const struct requirement_list 

[Freeciv-Dev] (PR#39677) freeciv crashes while updating unit

2007-09-06 Thread [EMAIL PROTECTED]

URL: http://bugs.freeciv.org/Ticket/Display.html?id=39677 

I am running Freeciv version 2.1.0-beta6 (beta version) gui-sdl

I got the following error when trying to upgrade a unit:

 civclient 
2: Using Video Output: x11
2: 480, 27, 0
2: area.h = 410
2: 768, 27, 0
2: area.h = 614
2: 768, 27, 0
2: area.h = 614
2: 768, 27, 0
2: area.h = 614
2: 768, 27, 0
2: area.h = 614
civclient: repodlgs.c:171: popup_upgrade_unit_callback: Assertion
`(ut1) != ((void *)0)  (utype_by_number((ut1)-index) == (ut1))'
failed.
Aborted

The game died :(





I am running Freeciv version 2.1.0-beta6 (beta version) gui-sdl

I got the following error when trying to upgrade a unit:

 civclient 
2: Using Video Output: x11
2: 480, 27, 0
2: area.h = 410
2: 768, 27, 0
2: area.h = 614
2: 768, 27, 0
2: area.h = 614
2: 768, 27, 0
2: area.h = 614
2: 768, 27, 0
2: area.h = 614
civclient: repodlgs.c:171: popup_upgrade_unit_callback: Assertion `(ut1) != ((void *)0)  (utype_by_number((ut1)-index) == (ut1))' failed.
Aborted

The game died :(


___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


Re: [Freeciv-Dev] freeciv ported to skyos

2007-09-06 Thread Daniel Markstedt
Thanks for the update Peter!

I made this into a 'news story' on the main wiki page. :)

Don't forget to add the package to our 'more distros' page:
http://freeciv.wikia.com/wiki/More_distributions (a link would do.)

Best
~Daniel

On 9/2/07, Peter Speybrouck [EMAIL PROTECTED] wrote:
 Hi, just wanted to inform you guys that the latest beta (2.1.0-beta6)
 compiles and runs fine on SkyOS with only a very minor patch (below).

 I could send you the binary package if you want, but since skyos is
 still evolving, it might need to be recompiled in the future so we
 will host it ourself for now.

 Some screenshots here:
 http://www.skyos.org/?q=node/621


 begin patch -

 --- utility/shared.c.orig   2007-09-01 19:11:56 +
 +++ utility/shared.c2007-09-01 18:10:36 +
 @@ -1337,7 +1337,7 @@
  ***/
  void dont_run_as_root(const char *argv0, const char *fallback)
  {
 -#if (defined(ALWAYS_ROOT) || defined(__EMX__) || defined(__BEOS__))
 +#if (defined(ALWAYS_ROOT) || defined(__EMX__) || defined(__BEOS__) ||
 defined(__SKYOS__))
   return;
  #else
   if (getuid()==0 || geteuid()==0) {

 --- end patch ---

 ___
 Freeciv-dev mailing list
 Freeciv-dev@gna.org
 https://mail.gna.org/listinfo/freeciv-dev


___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev


Re: [Freeciv-Dev] (PR#10775) incomplete helptext

2007-09-06 Thread Egor Vyscrebentsov

URL: http://bugs.freeciv.org/Ticket/Display.html?id=10775 

On Thu, 6 Sep 2007 Marko Lindqvist wrote:

 On 06/09/07, Egor Vyscrebentsov  wrote:
 
  All had been written before us - helpdata.c#insert_requirement()

  That's good for S2_1 at least.
  Some parts of your earlier patches would help, if we try to produce a
 bit more concise help texts in the future.

  Double \n\n at the end of every req line looks not good though.
  I suggest to remove one. (At trunk, at least.)

  At trunk: definitely. Not sure about S2_1.

9 lines change. I think that they look too not good to be kept.
Ready to change all translations, which are not actively maintained.
(Once again: IMHO, we shouldn't count string frozing as a holy cow;
giving translators knowledge of changes has much sense.)

  Should add one after whole requirement block (unless it is empty).

  _This_ patch is ready for inclusion into S2_1, however.

  We have to decide what to do with that outcommented block. Either we
 use it, or we remove it (in which case that meaningless has_req
 variable must go also).

Sure. I prefer first variant.

  If we keep it, I suggest text to say Always available.

obsolete_by... If we can replace all the obsolete_by with negated
requirement, than your suggestion should come into. But this is not
for S2_1...

-- 
Thanks, evyscr



___
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev