]> git.jsancho.org Git - lugaru.git/blobdiff - Source/GameDraw.cpp
This ugly hack makes text input usable on fast systems. :(
[lugaru.git] / Source / GameDraw.cpp
index d35125e267f2816cc037eb4067dbc480d89a07a8..16d845a53b35d1ee0126818af9a8123ee56c81ae 100644 (file)
@@ -189,7 +189,7 @@ long long Game::MD5_string (char *string){
        //return 1111111111111111;
 }
 
-int Game::DrawGLScene(GLvoid)                                                                  
+int Game::DrawGLScene(void)
 {      
        static float texcoordwidth,texcoordheight;
        static float texviewwidth, texviewheight;
@@ -1939,7 +1939,7 @@ int Game::DrawGLScene(GLvoid)
 
                if(drawmode!=normalmode){
                        glEnable(GL_TEXTURE_2D);
-                       //glFinish();
+                       glFinish();
                        if(!drawtoggle||drawmode!=realmotionblurmode||(drawtoggle==2||change==1)){
                                if(screentexture){
 
@@ -2218,6 +2218,10 @@ int Game::DrawGLScene(GLvoid)
        }
 
        if(mainmenu){
+#if USE_SDL
+        // !!! FIXME: hack: clamp framerate in menu so text input works correctly on fast systems.
+        SDL_Delay(15);
+#endif
                glDrawBuffer(GL_BACK);
                glReadBuffer(GL_BACK);
                glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );
@@ -2250,8 +2254,7 @@ int Game::DrawGLScene(GLvoid)
                }
                if(lastcheck>.5||oldmainmenu!=mainmenu){
                        if(mainmenu==5){
-                               //                              ifstream ipstream(":Data:Campaigns:main.txt");  
-                               ifstream ipstream("./Data/Campaigns/main.txt"); 
+                               ifstream ipstream(ConvertFileName(":Data:Campaigns:main.txt"));
                                //campaignnumlevels=0;
                                //accountcampaignchoicesmade[accountactive]=0;
                                ipstream.ignore(256,':');
@@ -3941,8 +3944,14 @@ int Game::DrawGLScene(GLvoid)
 
        //glFlush();
        if(drawmode!=motionblurmode||mainmenu){
+        #if !USE_SDL
+        // this prevents menus from rendering if you hit ESC during
+        //  motion blur sequences...maybe SDL is buffering differently?
                if(drawmode!=motionblurmode)
                        swap_gl_buffers();
+        #else
+               swap_gl_buffers();
+        #endif
        }
 
        //myassert(glGetError() == GL_NO_ERROR);