Original Post
Okay, I spent too much time on this already so I'll just come out and see if the folks at GameDev.net can square me away. I was recently working on my OpenGL demo and I am having a bit of an issue with my primary menu which I created. It has 3 options: Play Demo, Change Display Settings, and Quit. I have a variable named gameStatus which can be set to 0 (menu is up) 1 (game is loading) and 2 (game has loaded now render scene). So pseudo code in my Message Loop looks something like: if (gameStatus == 0) { loadMenuStuff(); } else if (gameStatus == 1) { loadLevelData();} else if (gameStatus == 2) { camera.Update(); // Which also checks for gravity and collision camera.CheckForMovement(); RenderScene(); } AND MY LOAD LEVEL DATA ROUTINE showLoadingMenu(); loadPlayerModel(); loadArena(); loadModelTextures(); gameStatus = 2; Here is the problem. The loadLevelData function loads the level and character models as well as textures and after those lines is set to launch the rendering of the scene. What happens is that (even though I set the gamestatus AFTER loading the models) it appears the burden of the hard drive causes the gravity and stuff to affect the model before its even properly loaded and it ends up going through the arena. Also, you will notice that I have a showLoadingMenu in there as well BEFORE the models are loaded. The disk access also seems to be slowing that process down and the menu doesn't change until after the models have been loaded. If I load all models and textures before displaying the menu all works well. Obviously thats not the best way though to be able to select from multiple arenas and player models and such (I wouldn't think). I also thought of putting my menu in my init code and drawing before the messageloop using a while clause. Then load and run the message loop. Anyone know if this would work? Sorry this is kind of lengthy. Just thought I would hear any ideas...