extern Light light;
extern Skeleton testskeleton;
extern int numsounds;
-extern int channels[100];
extern Terrain terrain;
//extern Sprites sprites;
extern int kTextureSize;
extern float texdetail;
extern float realtexdetail;
-extern float terraindetail;
extern float volume;
extern Objects objects;
extern int detail;
extern bool trilinear;
extern bool osx;
extern bool musictoggle;
-extern Weapons weapons;
-extern Person player[maxplayers];
-extern int numplayers;
extern int environment;
extern bool ambientsound;
extern float multiplier;
extern int difficulty;
extern float tintr,tintg,tintb;
extern float slomospeed;
-extern char mapname[256];
extern bool gamestarted;
extern int numdialogues;
extern int accountcampaignchoicesmade[10];
extern int accountcampaignchoices[10][5000];
-extern OPENAL_STREAM * strm[20];
-
-extern "C" void PlaySoundEx(int channel, OPENAL_SAMPLE *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused);
-extern "C" void PlayStreamEx(int chan, OPENAL_STREAM *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused);
-
void LOG(const std::string &fmt, ...)
{
// !!! FIXME: write me.
// 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
- for (i=0; i < samplecount; ++i)
+ for (i=0; i < sounds_count; ++i)
{
OPENAL_Sample_Free(samp[i]);
}
- for (i=0; i < streamcount; ++i)
- {
- OPENAL_Stream_Close(strm[i]);
- }
-
OPENAL_Close();
if (texture.data)
{
}
-void Game::LoadSounds()
-{
- LOGFUNC;
-
- LOG(std::string("Loading sounds..."));
-
- OPENAL_3D_SetDopplerFactor(0);
-
- OPENAL_SetSFXMasterVolume((int)(volume*255));
-
- if(visibleloading){LoadingScreen(); loadscreencolor=5;}
- loadAllSounds();
-}
-
void Game::LoadTexture(const char *fileName, GLuint *textureid,int mipmap, bool hasalpha)
{
GLuint type;
if(detail==2){
texdetail=1;
- terraindetail=1;
}
if(detail==1){
texdetail=2;
- terraindetail=1;
}
if(detail==0){
texdetail=4;
- terraindetail=1;
- //terraindetail=2;
- }
-
- memset(channels, 0xff, sizeof(channels));
- for (int it = 0; it < 20; ++it)
- {
- strm[it] = NULL;
}
LOG("Initializing sound system...");
#endif
OPENAL_SetSFXMasterVolume((int)(volume*255));
+ loadAllSounds();
- strm[stream_music3] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:music3.mp3"), OPENAL_2D, 0, 0); if(visibleloading){LoadingScreen(); loadscreencolor=0;}
- OPENAL_Stream_SetMode(strm[stream_music3], OPENAL_LOOP_NORMAL);
-
- if(musictoggle){
-// PlaySoundEx( stream_music3, strm[stream_music3], NULL, true);
- PlayStreamEx(stream_music3, strm[stream_music3], 0, true);
- OPENAL_SetPaused(channels[stream_music3], false);
- OPENAL_SetVolume(channels[stream_music3], 256);
- }
-
- FadeLoadingScreen(20);
-
- if(ambientsound){
- strm[stream_wind] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:wind.mp3"), OPENAL_2D, 0, 0); if(visibleloading){LoadingScreen(); loadscreencolor=5;}
- OPENAL_Stream_SetMode(strm[stream_wind], OPENAL_LOOP_NORMAL);
-
- FadeLoadingScreen(30);
-
- strm[stream_desertambient] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:desertambient.mp3"), OPENAL_2D, 0, 0); if(visibleloading){LoadingScreen(); loadscreencolor=5;}
- OPENAL_Stream_SetMode(strm[stream_desertambient], OPENAL_LOOP_NORMAL);
- }
-
- FadeLoadingScreen(40);
-
- strm[stream_firesound] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:fire.ogg"), OPENAL_2D, 0, 0); if(visibleloading){LoadingScreen(); loadscreencolor=5;}
- OPENAL_Stream_SetMode(strm[stream_firesound], OPENAL_LOOP_NORMAL);
-
- FadeLoadingScreen(50);
-
- //if(musictoggle){
- strm[stream_music1grass] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:music1grass.mp3"), OPENAL_2D, 0, 0); if(visibleloading){LoadingScreen(); loadscreencolor=1;}
- OPENAL_Stream_SetMode(strm[stream_music1grass], OPENAL_LOOP_NORMAL);
-
- strm[stream_music1snow] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:music1snow.mp3"), OPENAL_2D, 0, 0); if(visibleloading){LoadingScreen(); loadscreencolor=2;}
- OPENAL_Stream_SetMode(strm[stream_music1snow], OPENAL_LOOP_NORMAL);
-
- FadeLoadingScreen(60);
-
- strm[stream_music1desert] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:music1desert.mp3"), OPENAL_2D, 0, 0); if(visibleloading){LoadingScreen(); loadscreencolor=3;}
- OPENAL_Stream_SetMode(strm[stream_music1desert], OPENAL_LOOP_NORMAL);
-
- FadeLoadingScreen(80);
- strm[stream_music2] = OPENAL_Sample_Load(OPENAL_FREE, ConvertFileName(":Data:Sounds:music2.ogg"), OPENAL_2D, 0, 0); if(visibleloading){LoadingScreen(); loadscreencolor=4;}
- OPENAL_Stream_SetMode(strm[stream_music2], OPENAL_LOOP_NORMAL);
-
- //}
-
-
- FadeLoadingScreen(90);
-
+ if(musictoggle)
+ emit_stream_np(stream_music3);
LoadTexture(":Data:Textures:Cursor.png",&cursortexture,0,1);
visibleloading=1;
- /*musicvolume[3]=512;
- PlaySoundEx( music4, samp[music4], NULL, true);
- OPENAL_SetPaused(channels[music4], false);
- OPENAL_SetVolume(channels[music4], 512);
- */
loadtime=0;
stillloading=1;
if(detail==2){
texdetail=1;
- terraindetail=1;
}
if(detail==1){
texdetail=2;
- terraindetail=1;
}
if(detail==0){
texdetail=4;
- terraindetail=1;
- //terraindetail=2;
}
realtexdetail=texdetail;
gravity=-10;
texscale=.2/megascale/viewdistdetail;
- terrain.scale=3*megascale*terraindetail*viewdistdetail;
+ terrain.scale=3*megascale*viewdistdetail;
viewer.x=terrain.size/2*terrain.scale;
viewer.z=terrain.size/2*terrain.scale;
glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 0, 0, kTextureSize, kTextureSize, 0);
}
- //}
- LoadSounds();
-
- /*PlaySoundEx( consolesuccesssound, samp[consolesuccesssound], NULL, true);
- OPENAL_SetVolume(channels[consolesuccesssound], 256);
- OPENAL_SetPaused(channels[consolesuccesssound], false);
- */
if(targetlevel!=7){
- float gLoc[3]={0,0,0};
- float vel[3]={0,0,0};
- PlaySoundEx( fireendsound, samp[fireendsound], NULL, true);
- OPENAL_3D_SetAttributes(channels[fireendsound], gLoc, vel);
- OPENAL_SetVolume(channels[fireendsound], 256);
- OPENAL_SetPaused(channels[fireendsound], false);
+ emit_sound_at(fireendsound);
}
stillloading=0;