(PR#11066) Units that cannot be obsoleted trigger assert for AI
"Gregory Berkolaiko" <[email protected]> Wed, 17 Nov 2004 22:03:44 -0800
| Newsgroups | gmane.games.freeciv.ai |
|---|---|
| Message-ID | <[email protected]> |
<URL: http://rt.freeciv.org/Ticket/Display.html?id=11066 > In advmilitary.c: 819 !can_build_unit_direct(pcity, unit_types[unit_type].obsoleted_by)) But obsoleted_by can be -1 (meaning nobody obsoletes it). But can_build_unit functions have just been made more strict, which causes and assert. I attach a patch but would rather have can_build_unit_* changed to the previous behaviour -- if a looney type is supplied, the answer is of course FALSE. Gr
obsoleted.diff
(text/plain, 925 B)
Index: ai/advmilitary.c
===================================================================
RCS file: /home/freeciv/CVS/freeciv/ai/advmilitary.c,v
retrieving revision 1.176
diff -u -r1.176 advmilitary.c
--- ai/advmilitary.c 30 Oct 2004 14:04:54 -0000 1.176
+++ ai/advmilitary.c 18 Nov 2004 05:59:35 -0000
@@ -815,8 +815,10 @@
if ((move_type == LAND_MOVING || (move_type == SEA_MOVING && shore))
&& tech_req != A_LAST
- && (tech_dist > 0 ||
- !can_build_unit_direct(pcity, unit_types[unit_type].obsoleted_by))
+ && (tech_dist > 0
+ || unit_types[unit_type].obsoleted_by == -1
+ || !can_build_unit_direct(pcity,
+ unit_types[unit_type].obsoleted_by))
&& unit_types[unit_type].attack_strength > 0 /* or we'll get SIGFPE */
&& move_type == orig_move_type) {
/* TODO: Case for Airport. -- Raahul */