indoor/outdoor engine.., some feedback please

I would you have some small access violation like an array bounds overflow or something, that would cause your program to be evicted in W2K since it is a real OS and has pre-emption. Win9x/ME probably wouldn’t even notice.

Yup Harsman is right.

The prgramm trys to read data from a location it should not .

Narrowed it down to a function. This function gets called from 13 different location inside the program. Well I dont have the sourcecode, so I’ll give you the assembly snipped where its crashing, if you compile the app again (same options, but generate also a assembly listing file) you should have no problems finding it.

Function start:

00408F90 sub esp,8
00408F93 fld dword ptr [esp+0Ch]
00408F97 push esi
00408F98 mov esi,ecx
00408F9A push edi
00408F9B call 0041B318
00408FA0 fld dword ptr [esp+18h]
00408FA4 mov edi,eax
00408FA6 mov dword ptr [esp+8],edi
00408FAA call 0041B318
00408FAF mov edx,dword ptr [esi+98h]
00408FB5 mov esi,dword ptr [esi+9Ch]
00408FBB fild dword ptr [esp+8]
00408FBF mov ecx,edx
00408FC1 mov dword ptr [esp+0Ch],eax
00408FC5 imul ecx,eax
00408FC8 fsubr dword ptr [esp+14h]
00408FCC fild dword ptr [esp+0Ch]
00408FD0 add ecx,edi
00408FD2 inc eax
00408FD3 imul eax,edx
00408FD6 lea ecx,[ecx+ecx2]
00408FD9 add eax,edi
00408FDB fsubr dword ptr [esp+18h]
00408FDF fld dword ptr [esi+ecx
4+10h]
00408FE3 fld dword ptr ds:[42631Ch]
00408FE9 lea ecx,[esi+ecx4]
00408FEC lea edx,[eax+eax
2]
00408FEF fsub st,st(2)

/////////////////////////////////
Crashes here ---------->>>>>

00408FF1 mov eax,dword ptr [esi+edx*4+4]

00408FF5 lea edx,[esi+edx*4]
00408FF8 mov dword ptr [esp+18h],eax
00408FFC pop edi
00408FFD pop esi
00408FFE fstp dword ptr [esp]
00409002 fld st(2)
00409004 fcomp dword ptr [esp]
00409008 fnstsw ax
0040900A test ah,1
0040900D je 00409022
0040900F fld dword ptr [esp+10h]
00409013 mov ecx,dword ptr [ecx+4]
00409016 fadd st,st(1)
00409018 mov dword ptr [esp+0Ch],ecx
0040901C fsub dword ptr [esp+0Ch]
00409020 jmp 00409031
00409022 fld dword ptr [edx+10h]
00409025 fld dword ptr [esp+10h]
00409029 fadd st,st(2)
0040902B fsub st,st(1)
0040902D fstp dword ptr [esp+0Ch]
00409031 fld dword ptr ds:[42631Ch]
00409037 fsub st,st(4)
00409039 fld st(0)
0040903B fmul dword ptr [esp+0Ch]
0040903F fxch st(3)
00409041 fmul st,st(5)
00409043 faddp st(3),st
00409045 fxch st(2)
00409047 fmul dword ptr [esp]
0040904B fxch st(2)
0040904D fmul dword ptr [esp+10h]
00409051 fxch st(1)
00409053 fmul st,st(4)
00409055 faddp st(1),st
00409057 fmul st,st(2)
00409059 faddp st(1),st
0040905B fstp st(2)
0040905D fstp st(0)
0040905F add esp,8
00409062 ret 8

Function end

Hmmmmm… 6 multiplications and 3 adds at the function end, I wonder what that could be

Hope that helps

LG

BTW: If have a W2K version ready let me know and I testdrive it on a GeForce3