<URL: http://bugs.freeciv.org/Ticket/Display.html?id=40517 >
On Thu, 9 Oct 2008 Egor Vyscrebentsov wrote: > On Tue, 7 Oct 2008 Joan Creus wrote: > > > 2008/10/7 Egor Vyscrebentsov <evyscr/gmail.com> > > > > > > base_list (and therefore base_buf) for archers at [39,40] (line 1278) > > > is "????��x�ſ-�\017\b\214�ſ �\b��". Most of these symbols are illegal. > > > > > > activity_list for same unit is "????". Wonder if this was one more > > > out-of-pointer'ing? > > > > > It looks like the problem my be in the saving rather than in the loading? > > Yes. The problem is in player_save_units() and player_load_units(). > player_save_units() set target base char to '?', and this char isn't > changed in several cases. player_load_units() assumes that loaded > char is one of [0-9a-f]. > > Quickest (not the best) fix is > > - } else if (base_buf) { > + } else if (base_buf && base_buf[j] != '?') { > > at server/savegame.c:1862 After some thoughts I've decided that this fix is proper. > This is the first part of problem. The second part is that in > savegame file base_list is longer than activity_list. - orders_buf[len] = dir_buf[len] = act_buf[len] = '\0'; + orders_buf[len] = dir_buf[len] = act_buf[len] = base_buf[len] = '\0'; at server/savegame.c:3473 -- Thanks, evyscr _______________________________________________ Freeciv-dev mailing list Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev