投稿者 トピック: [110.0.1以降] 110.0で読み込めた古いセーブゲームが読み込めない(2)  (参照数 10766 回)

z9999+

  • 管理人
  • 急行
  • *
  • 投稿: 381
110.0で読み込めた古いセーブゲームが読み込めない。クラッシュする。

引用
Warning: strasse_t::rdwr():   Unknown street  replaced by gavel_road (old_max_speed 65284)
ERROR: grund_t::rdwr():   removing way from foundation at 0,-256
Please report all errors to
team@64.simutrans.com
ERROR: grund_t::rdwr():   invalid waytype 30!
Please report all errors to
team@64.simutrans.com
ERROR: dingliste_t::laden():   Too many objects (201326593) at (0,-256), some vehicle may not appear immediately.
Please report all errors to
team@64.simutrans.com
FATAL ERROR: dingliste_t::laden()
During loading: Unknown object type '0'
Aborting program execution ...

コード: [選択]
sim.exe caused an Integer Divide By Zero at location 005e0842 in module sim.exe.

Registers:
eax=0000000f ebx=075ce5e8 ecx=00000000 edx=00000000 esi=00000000 edi=00000000
eip=005e0842 esp=0023d048 ebp=0023d0f8 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:
005E0842  sim.exe:005E0842  log_t::fatal(char const*, char const*, ...)  log.cc:250
...
// 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;
}
...

0043F31C  sim.exe:0043F31C  dingliste_t::rdwr(karte_t*, loadsave_t*, koord3d)  dingliste.cc:985
...
}

> if(d  &&  d->get_typ()!=typ) {
dbg->warning( "dingliste_t::rdwr()","typ error : %i instead %i on %i,%i, object ignored!", d->get_typ(), typ, d->get_pos().x, d->get_pos().y );
d = NULL;
...

0042F3AB  sim.exe:0042F3AB  grund_t::rdwr(loadsave_t*)  grund.cc:370
...

// all objects on this tile
> dinge.rdwr(welt, file, get_pos());

// need to add a crossing for old games ...
...

0042DCC1  sim.exe:0042DCC1  fundament_t::fundament_t(karte_t*, loadsave_t*, koord)  fundament.cc:18
...
fundament_t::fundament_t(karte_t *welt, loadsave_t *file, koord pos ) : grund_t(welt, koord3d(pos,0) )
{
> rdwr(file);
slope = (uint8)hang_t::flach;
}
...

0059F02B  sim.exe:0059F02B  planquadrat_t::rdwr(karte_t*, loadsave_t*, koord)  simplan.cc:250
...
case grund_t::boden:    gr = new boden_t(welt, file, pos);                 break;
case grund_t::wasser:    gr = new wasser_t(welt, file, pos);                break;
> case grund_t::fundament:    gr = new fundament_t(welt, file, pos);       break;
case grund_t::tunnelboden:    gr = new tunnelboden_t(welt, file, pos);       break;
case grund_t::brueckenboden:    gr = new brueckenboden_t(welt, file, pos);     break;
...

005D714C  sim.exe:005D714C  karte_t::laden(loadsave_t*)  simworld.cc:4349
...
dbg->fatal("karte_t::laden()","Savegame file mangled (too short)!");
}
> plan[x+y*cached_groesse_gitter_x].rdwr(this, file, koord(x,y) );
}
display_progress(y, get_groesse_y()+stadt.get_count()+256);
...

005D6147  sim.exe:005D6147  karte_t::laden(char const*)  simworld.cc:4150
...
DBG_MESSAGE("karte_t::laden()","Savegame version is %d", file.get_version());

> laden(&file);

if(  umgebung_t::networkmode  ) {
...

004F17AC  sim.exe:004F17AC  loadsave_frame_t::action(char const*)  loadsave_frame.cc:70
...
{
if(do_load) {
> welt->laden(filename);
}
else {
...

0050C44B  sim.exe:0050C44B  savegame_frame_t::action_triggered(gui_action_creator_t*, value_t)  savegame_frame.cc:354
...
if(action_btn) {
set_focus( NULL );
> action(buf);
destroy_win(this);
}
...

00654A74  sim.exe:00654A74  gui_action_creator_t::call_listeners(value_t)  gui_action_creator.h:36
...
{
slist_iterator_tpl<action_listener_t *> iter (listeners);
> while (iter.next() && !iter.get_current()->action_triggered(this, v)) {}
}

...

0048838D  sim.exe:0048838D  button_t::infowin_event(event_t const*)  gui_button.cc:443
...
}
else {
> call_listeners( (long)0 );
}
}
...

004D2CD4  sim.exe:004D2CD4  gui_container_t::infowin_event(event_t const*)  gui_container.cc:171
...

// CAUTION : call to infowin_event() should not delete the component itself!
> swallowed = komp->infowin_event(&ev2);

// focused component of this container can only be one of its immediate children
...

004935C1  sim.exe:004935C1  gui_scrollpane_t::infowin_event(event_t const*)  gui_scrollpane.cc:102
...

// hand event to component
> swallow = komp->infowin_event(&ev2);

// Knightly : check if we need to scroll to the focused component
...

004D2CD4  sim.exe:004D2CD4  gui_container_t::infowin_event(event_t const*)  gui_container.cc:171
...

// CAUTION : call to infowin_event() should not delete the component itself!
> swallowed = komp->infowin_event(&ev2);

// focused component of this container can only be one of its immediate children
...

004D42AF  sim.exe:004D42AF  gui_frame_t::infowin_event(event_t const*)  gui_frame.cc:100
...
event_t ev2 = *ev;
translate_event(&ev2, 0, -TITLEBAR_HEIGHT);
> return container.infowin_event(&ev2);
}

...

0050CA1A  sim.exe:0050CA1A  savegame_frame_t::infowin_event(event_t const*)  savegame_frame.cc:439
...
return true;// swallowed
}
> return gui_frame_t::infowin_event(ev);
}

...

005C0B8E  sim.exe:005C0B8E  check_pos_win(event_t*)  simwin.cc:1272
...
event_t wev = *ev;
translate_event(&wev, -wins[i].pos.x, -wins[i].pos.y);
> wins[i].gui->infowin_event( &wev );
}
}
...

005DC2DF  sim.exe:005DC2DF  karte_t::interactive(unsigned)  simworld.cc:5571
...

DBG_DEBUG4("karte_t::interactive", "calling check_pos_win");
> swallowed = check_pos_win(&ev);

if(  !swallowed  ) {
...

00595A0F  sim.exe:00595A0F  simu_main(int, char**)  simmain.cc:1201
...

// run the loop
> welt->interactive(quit_month);

new_world = true;
...

006098C7  sim.exe:006098C7  WinMain  simsys_w16.cc:805
...
}

> simu_main(argc, argv);
timeEndPeriod(1);

...

0060A69A  sim.exe:0060A69A  dr_play_sample(int, int)  win32_sound.cc:103
...
last_sample_nr = sample_number;
}
> }

...

00401247  sim.exe:00401247
004012B8  sim.exe:004012B8
7C817077  kernel32.dll:7C817077  RegisterWaitForInputIdle


z9999+

  • 管理人
  • 急行
  • *
  • 投稿: 381
This patch below could read old savegames.
This seems to need to read old tunnel. (partly reverted r4338)

boden/tunnelboden.cc:25
引用

	
grund_t::rdwr(file);
	
// since it has no trees, we do not need to invoke boden_t

引用

	
rdwr(file);
« 最終編集: 2011/05/06 06:06 by z9999+ »

dwachs

  • 各駅停車
  • *
  • 投稿: 9
could you upload the savegame?

z9999+

  • 管理人
  • 急行
  • *
  • 投稿: 381

dwachs

  • 各駅停車
  • *
  • 投稿: 9
thank you! Now I realized what was the actual error.

z9999+

  • 管理人
  • 急行
  • *
  • 投稿: 381
Thank you for resolving the problem.
I think this commit below also needs to revert.

https://github.com/aburch/simutrans/commit/effa504b8e86a86fae8eacf566f54e4bd613e0f6
引用
FIX: xml tunnels are loadable again

git-svn-id: svn://tron.homeunix.org/simutrans/simutrans/trunk@4361 8aca7d54-2c30-db11-9de9-000461428c89 Markus Pristovsek (author)
March 19, 2011

This problem is reported here.
http://forum.simutrans.com/index.php?topic=7892.0