Re: [Freeciv-Dev] (PR#39672) Bug and Suggestion report.
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
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
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
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
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
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
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
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
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
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