+/*
+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"
extern float screenwidth,screenheight;
extern float viewdistance;
extern int accountcampaignchoicesmade[10];
extern int accountcampaignchoices[10][5000];
-extern FSOUND_STREAM * strm[10];
+extern FSOUND_STREAM * strm[20];
extern "C" void PlaySoundEx(int channel, FSOUND_SAMPLE *sptr, FSOUND_DSPUNIT *dsp, signed char startpaused);
extern "C" void PlayStreamEx(int chan, FSOUND_STREAM *sptr, FSOUND_DSPUNIT *dsp, signed char startpaused);
FSOUND_StopSound(FSOUND_ALL);
+// this is causing problems on Linux, but we'll force an _exit() a little
+// later in the shutdown process. --ryan.
+#if !PLATFORM_LINUX
#define streamcount 20
#define samplecount 100
free(texture.data);
}
texture.data = 0;
+#endif
}
longnum=num2+num1*100000000;
char tempstring[256];
+ #if defined(__APPLE__)
+ sprintf (tempstring, "%s", registrationname);
+ #elif defined(_MSC_VER) || defined(__linux__)
sprintf (tempstring, "%s-windows", registrationname);
- longnuma = MD5_string ( tempstring);
+ #else
+ #error Please make sure you have the right registration key stuff here!
+ #endif
+ longnuma = MD5_string ( tempstring);
num1a = longnuma/100000000;
num2a = longnuma%100000000;
//if(num1a==num1&&num2a==num2)registered=1;
LOG("Initializing sound system...");
+ int output = -1;
+
+ #if PLATFORM_LINUX
+ extern bool cmdline(const char *cmd);
+ unsigned char rc = 0;
+ output = FSOUND_OUTPUT_ALSA; // Try alsa first...
+ if (cmdline("forceoss")) // ...but let user override that.
+ output = FSOUND_OUTPUT_OSS;
+ else if (cmdline("nosound"))
+ output = FSOUND_OUTPUT_NOSOUND;
+
+ FSOUND_SetOutput(output);
+ if ((rc = FSOUND_Init(44100, 32, 0)) == FALSE)
+ {
+ // if we tried ALSA and failed, fall back to OSS.
+ if ( (output == FSOUND_OUTPUT_ALSA) && (!cmdline("forcealsa")) )
+ {
+ FSOUND_Close();
+ output = FSOUND_OUTPUT_OSS;
+ FSOUND_SetOutput(output);
+ rc = FSOUND_Init(44100, 32, 0);
+ }
+ }
+
+ if (rc == FALSE)
+ {
+ FSOUND_Close();
+ output = FSOUND_OUTPUT_NOSOUND; // we tried! just do silence.
+ FSOUND_SetOutput(output);
+ rc = FSOUND_Init(44100, 32, 0);
+ }
+ #else
FSOUND_Init(44100, 32, 0);
+ #endif
FSOUND_SetSFXMasterVolume((int)(volume*255));