]> git.jsancho.org Git - lugaru.git/blobdiff - Source/GameDraw.cpp
Fixed Xcode project.
[lugaru.git] / Source / GameDraw.cpp
index 700ef1190ca9d70121cfdc638c2bba8471ecb04f..ec4ec3f6e7d96eef6eed0d4d153e60c962c4141b 100644 (file)
@@ -1,4 +1,26 @@
-#include "Game.h"      
+/*
+Copyright (C) 2003, 2010 - Wolfire Games
+
+This file is part of Lugaru.
+
+Lugaru is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+
+#include "Game.h"
+#include "openal_wrapper.h"
 
 using namespace std;
 
@@ -153,9 +175,9 @@ extern float accountcampaigntime[10];
 
 extern bool gamestarted;
 
-extern FSOUND_SAMPLE   *samp[100];
+extern OPENAL_SAMPLE   *samp[100];
 extern int channels[100];
-extern "C"     void PlaySoundEx(int channel, FSOUND_SAMPLE *sptr, FSOUND_DSPUNIT *dsp, signed char startpaused);
+extern "C"     void PlaySoundEx(int channel, OPENAL_SAMPLE *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused);
 
 /*********************> DrawGLScene() <*****/
 long long Game::MD5_string (char *string){
@@ -1071,10 +1093,10 @@ int Game::DrawGLScene(void)
                                                                if(dialogueboxsound[whichdialogue][indialogue]==-2)whichsoundplay=firestartsound;
                                                                if(dialogueboxsound[whichdialogue][indialogue]==-3)whichsoundplay=consolesuccesssound;
                                                                if(dialogueboxsound[whichdialogue][indialogue]==-4)whichsoundplay=consolefailsound;
-                                                               PlaySoundEx( whichsoundplay, samp[whichsoundplay], NULL, TRUE);
-                                                               FSOUND_3D_SetAttributes(channels[whichsoundplay], gLoc, vel);
-                                                               FSOUND_SetVolume(channels[whichsoundplay], 256);
-                                                               FSOUND_SetPaused(channels[whichsoundplay], FALSE);
+                                                               PlaySoundEx( whichsoundplay, samp[whichsoundplay], NULL, true);
+                                                               OPENAL_3D_SetAttributes(channels[whichsoundplay], gLoc, vel);
+                                                               OPENAL_SetVolume(channels[whichsoundplay], 256);
+                                                               OPENAL_SetPaused(channels[whichsoundplay], false);
                                                        }
                                                }
                                        }
@@ -2218,6 +2240,10 @@ int Game::DrawGLScene(void)
        }
 
        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 );
@@ -2480,7 +2506,7 @@ int Game::DrawGLScene(void)
                                movex[10]=0;
                                movey[10]=0;
                                
-                               sprintf (menustring[11], "Volume: %d%", (int)(volume*100));
+                               sprintf (menustring[11], "Volume: %d%%", (int)(volume*100));
                                startx[11]=10+60;
                                starty[11]=155;
                                endx[11]=startx[11]+strlen(menustring[11])*10;
@@ -2662,7 +2688,7 @@ int Game::DrawGLScene(void)
 
                                if(accountcampaignchoicesmade[accountactive])
                                        for(i=0;i<accountcampaignchoicesmade[accountactive];i++){
-                                               sprintf (menustring[7+i], campaigndescription[levelorder[i]]);
+                                               sprintf (menustring[7+i], "%s", campaigndescription[levelorder[i]]);
                                                startx[7+i]=30+120+campaignlocationx[levelorder[i]]*400/512;
                                                starty[7+i]=30+30+(512-campaignlocationy[levelorder[i]])*400/512;
                                                endx[7+i]=startx[7+i]+10;
@@ -2673,7 +2699,7 @@ int Game::DrawGLScene(void)
 
                                        if(campaignchoicenum>0)
                                                for(i=accountcampaignchoicesmade[accountactive];i<accountcampaignchoicesmade[accountactive]+campaignchoicenum;i++){
-                                                       sprintf (menustring[7+i], campaigndescription[levelorder[i]]);
+                                                       sprintf (menustring[7+i], "%s", campaigndescription[levelorder[i]]);
                                                        startx[7+i]=30+120+campaignlocationx[campaignchoicewhich[i-(accountcampaignchoicesmade[accountactive])]]*400/512;
                                                        starty[7+i]=30+30+(512-campaignlocationy[campaignchoicewhich[i-(accountcampaignchoicesmade[accountactive])]])*400/512;
                                                        endx[7+i]=startx[7+i]+10;