<URL: http://bugs.freeciv.org/Ticket/Display.html?id=40517 >

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?
> >
> > orders_list and dir_list also look strange.

orders_list and dir_list are ok.

> 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

This is the first part of problem. The second part is that in
savegame file base_list is longer than activity_list. Now I have
no idea why.

Thanks, evyscr

Freeciv-dev mailing list

Reply via email to