ゲーム終了時にクラッシュする。r4038では発生しなかった。
Crash on exiting game. This problem didn't happen at least until r4038.
sim4049d.exe caused an Access Violation at location 006628b0 in module sim4049d.exe Reading from location 00000004.
Registers:
eax=068134c0 ebx=00000008 ecx=00000004 edx=0023e950 esi=01cb9bad edi=112cfe80
eip=006628b0 esp=0023e928 ebp=0023e928 iopl=0 nv up ei pl nz na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202
Call stack:
006628B0 sim4049d.exe:006628B0 ding_t::get_pos() const simdings.h:304
...
* @see ding_t#ding_t
*/
> inline koord3d get_pos() const {return pos;}
// only zeiger_t overlays this function, so virtual definition is overkill
...
005BBAF6 sim4049d.exe:005BBAF6 karte_t::play_sound_area_clipped(koord, sound_info) const simworld.cc:3753
...
{
if(is_sound) {
> const int dist = koord_distance( pos, zeiger->get_pos() );
if(dist < 100) {
...
00542DDB sim4049d.exe:00542DDB spieler_t::buche(long long, koord, player_cost) simplay.cc:481
...
info.pri = 0;
> welt->play_sound_area_clipped(pos, info);
}
}
...
0055BC64 sim4049d.exe:0055BC64 convoi_t::destroy() simconvoi.cc:2623
...
// pay the current value
> besitzer_p->buche( calc_restwert(), get_pos().get_2d(), COST_NEW_VEHICLE );
besitzer_p->buche( -calc_restwert(), COST_ASSETS );
...
005AAF66 sim4049d.exe:005AAF66 karte_t::destroy() simworld.cc:502
...
while (!convoi_array.empty()) {
convoihandle_t cnv = convoi_array.back();
> cnv->destroy();
}
convoi_array.clear();
...
0057E2D5 sim4049d.exe:0057E2D5 simu_main(int, char**) simmain.cc:1142
...
}
> welt->destroy();// some compiler aparently do not like accessing welt during destroy
delete welt;
welt = NULL;
...
005F0327 sim4049d.exe:005F0327 WinMain simsys_w16.cc:805
...
}
> simu_main(argc, argv);
timeEndPeriod(1);
...
005F10FA sim4049d.exe:005F10FA dr_play_sample(int, int) win32_sound.cc:103
...
last_sample_nr = sample_number;
}
> }
...
00401247 sim4049d.exe:00401247
00401298 sim4049d.exe:00401298
7C817077 kernel32.dll:7C817077 RegisterWaitForInputIdle
Debug: karte_t::interactive: calling win_poll_event
Debug: karte_t::interactive: can I get some sleep?
Debug: interrupt_check: called from (karte_t::interactive())
Debug: interrupt_check: called from (karte_t::interactive())
Debug: karte_t::interactive: end of sleep
Debug: karte_t::interactive: point of loop return
Debug: karte_t::interactive: decide to play a sound
Debug: karte_t::interactive: end of sound
Debug: karte_t::interactive: calling win_poll_event
Message: karte_t::destroy(): destroying world
Message: karte_t::destroy(): label clear
Message: automobil_t::set_convoi(): 00000000
Message: convoi_t::unset_line(): removing old destinations from line=202, fpl=0947EAB8