<URL: http://bugs.freeciv.org/Ticket/Display.html?id=38323 >
civserver: ../../src.patched/server/techtools.c:278: found_new_tech:
Assertion `tech_is_available(plr, tech_found) || tech_found ==
(200-2)' failed.
#3 0x0000000000415b1f in found_new_tech (plr=0x760c48, tech_found=5,
was_discovery=false, saving_bulbs=true)
at ../../src.patched/server/techtools.c:278
next_tech = <value optimized out>
bonus_tech_hack = <value optimized out>
was_first = <value optimized out>
had_embassies = {0, 0, 4897441, 0, 84, 0, 4897441, 0, 1, 0,
4898788, 0, 2034368, 1077692614, 4897441, 0, 1, 0, 4898788, 0, 2034368,
1077692614, 6976164, 0, 41, 0, 7819944, 0, 0, 0, 7819948, 0}
pcity = <value optimized out>
research = (struct player_research *) 0x6a9234
__PRETTY_FUNCTION__ = "found_new_tech"
#4 0x0000000000415c82 in give_initial_techs (plr=0x760c48)
at ../../src.patched/server/techtools.c:614
nation = (struct nation_type *) 0x8b7600
#5 0x000000000040c0da in srv_main ()
at ../../src.patched/server/srv_main.c:1889
No locals.
#6 0x0000000000403868 in main (argc=3, argv=0x7fff9cd344a8)
at ../../src.patched/server/civserver.c:256
inx = 3
showhelp = false
showvers = false
option = <value optimized out>
Nation does not have root_req for its initial tech. At least ruleset
sanity checking is needed so that game gives sensible error message to
ruleset author. This is not trivial as we need to check if *nations*
are legal, but tech_is_available() works on *players*.
It also seems to me that this crash might happen if initial root_req
is simply processed later than than tech depending on it.
Found while testing Mongols scenario...
- ML
_______________________________________________
Freeciv-dev mailing list
[email protected]
https://mail.gna.org/listinfo/freeciv-dev