Hello,
I am having a scene that shows wile loading imagelists or 3D objects and textures:
Nothing special. The Omegatimer is still enbled.Code:procedure TCommandoForm.do_loadingscene; var no: integer; begin if boolloaded=false then begin no:=random(9); if (no=0) or (lastscene=d3dlogo) then play_oggspeech('MC-please-stand-by-dist.ogg') else if no=1 then play_oggspeech('funk-dudel-dist.ogg') else if no=2 then play_oggspeech('funk-dudel-echo.ogg') else if no=3 then play_oggspeech('MC-pwease-stand-by1b-dist.ogg') else if no=4 then play_oggspeech('MC-pwease-stand-by2-dist.ogg') else if no=5 then play_oggspeech('MC-pwease-stand-by3-dist.ogg') else if no=6 then play_oggspeech('MC-pwease-stand-by4b-dist.ogg') else if no=7 then play_oggspeech('MC-pwease-stand-by5-dist.ogg') else if no=8 then play_oggspeech('MC-pwease-stand-by6b-dist.ogg'); boolloaded:=true; end; xenScreen.BeginRender; xenScreen.ClearScreen(0,0,0,0); set_camera; draw_skymap; set_sunlight; draw_asteroids(false); xenscreen.device.setrenderstate(d3drs_alphablendenable,dword(true)); xenscreen.Device.setTextureStageState(0, D3DTSS_COLOROP,D3DTOP_modulate); xenscreen.Device.setTextureStageState(0, D3DTSS_COLORARG1, D3DTA_texture); xenscreen.Device.setTextureStageState(1, D3DTSS_COLOROP,D3DTOP_modulate); xenscreen.Device.setTextureStageState(1, D3DTSS_COLORARG1, D3DTA_diffuse); imagelistloading.ImageList.Items[0].draw(350,350,0,0.5,0.5,1,1,255,255,255,255,false,0,bmnormal); if nextscene=glevelsurface then printmidfast(250,'LOADING SURFACE MISSION...') else if nextscene=gstormspace then printmidfast(250,'LOADING ASTEROID STORM BONUS MISSION...') else if nextscene=glevelspace then printmidfast(250,'LOADING SPACE MISSION...') else if nextscene=gshop then printmidfast(250,'LOADING SHOP AND SPACE MISSION...') else if nextscene=d3dmap then printmidfast(250,'LOADING 3D XENIDIS MAP') else if nextscene=d3dintro then printmidfast(250,'LOADING INTRO...') else if nextscene=gmedicspace then printmidfast(250,'LOADING MEDIC BONUS MISSION'); printmidfast(500,sloadtext); printmidfast(530,sloadtext2); xenscreen.EndRender; end;
So it should be called from time to time.
but it does not, it is called one time and shows a screen but the when I start loading, it is not called anymore by the timer. I would like to have a progressbar here but it wont move.
In the routine where I load all the needed stuff, I added some application.ProcessMessages;
between two loadings but does not seem to help?
How do I get the timer also working when loading imagelists or 3D stuff?
Thanks,
firle



Reply With Quote



