Japanese Simutrans Forum
日本語simutransフォーラム => バグレポート => トピック開設者: z9999+ さんの発言 2011/12/11 20:32
-
rev5003 can't load savegame which was saved in 111.0.
Message: simlinemgmt_t::rdwr(): number of lines=0
Message: spieler_t::rdwr(): player 3: loading 0 halts.
Message: spieler_t::int_undo(): undo tiles 0
Message: simlinemgmt_t::rdwr(): number of lines=0
FATAL ERROR: loadsave_t::rdwr_str()
string longer (12589) than allowed size (256)
Aborting program execution ...
sim.exe caused an Integer Divide By Zero at location 00560c63 in module sim.exe.
Registers:
eax=0000000f ebx=0049711a ecx=00000000 edx=00000000 esi=081ca2d8 edi=00000000
eip=00560c63 esp=0023df40 ebp=0023dfb8 iopl=0 nv up ei pl zr ac po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000256
Call stack:
00560C63 sim.exe:00560C63 log_t::fatal(char const*, char const*, ...) log.cc:252
...
// generate a division be zero error, if the user request it
static int make_this_a_division_by_zero = 0;
> printf("%i", 15 / make_this_a_division_by_zero);
make_this_a_division_by_zero &= 0xFF;
}
...
0043E4B6 sim.exe:0043E4B6 loadsave_t::rdwr_str(char*, unsigned) loadsave.cc:695
...
dbg->fatal( "loadsave_t::rdwr_str()","string longer (%i) than allowed size (%i)", len, size );
}
> read(s, len);
s[len] = '\0';
}
...
004EE750 sim.exe:004EE750 spieler_t::rdwr(loadsave_t*) simplay.cc:733
...
void spieler_t::rdwr(loadsave_t *file)
{
> xml_tag_t sss( file, "spieler_t" );
sint32 halt_count=0;
...
004DC2F6 sim.exe:004DC2F6 ai_t::rdwr(loadsave_t*) ai.cc:547
...
{
spieler_t::rdwr(file);
> if( file->get_version()<111001 ) {
// do not know about ai_t
return;
...
004EAA8C sim.exe:004EAA8C ai_passenger_t::rdwr(loadsave_t*) ai_passenger.cc:1383
...
// then check, if we have to do something or the game is too old ...
> if(file->get_version()<101000) {
// ignore saving, reinit on loading
if( file->is_loading() ) {
...
00559CD1 sim.exe:00559CD1 karte_t::laden(loadsave_t*) simworld.cc:4537
...
if( spieler[i] ) {
spieler[i]->rdwr(file);
> settings.automaten[i] = spieler[i]->is_active();
}
else {
...
00558528 sim.exe:00558528 karte_t::laden(char const*) simworld.cc:4184
...
laden(&file);
> if( umgebung_t::networkmode ) {
clear_command_queue();
}
...
-
Yes, spieler_t is saved twice. I reverted Dwachs change today.