projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20020427-5-src
[rocksndiamonds.git]
/
src
/
init.c
diff --git
a/src/init.c
b/src/init.c
index 5923322a7b265303c68486889628a3fba959c527..ef6586f701c4f6465f59766db271a4c1a7fb0555 100644
(file)
--- a/
src/init.c
+++ b/
src/init.c
@@
-45,6
+45,7
@@
static void InitPlayerInfo(void);
static void InitLevelInfo(void);
static void InitArtworkInfo(void);
static void InitNetworkServer(void);
static void InitLevelInfo(void);
static void InitArtworkInfo(void);
static void InitNetworkServer(void);
+static void InitSoundServer(void);
static void InitSound(void);
static void InitGfx(void);
static void InitGfxBackground(void);
static void InitSound(void);
static void InitGfx(void);
static void InitGfxBackground(void);
@@
-74,7
+75,7
@@
void OpenAll(void)
InitArtworkInfo(); /* needed before loading gfx, sound & music */
InitCounter();
InitArtworkInfo(); /* needed before loading gfx, sound & music */
InitCounter();
- InitSound();
+ InitSound
Server
();
InitJoysticks();
InitRND(NEW_RANDOMIZE);
InitJoysticks();
InitRND(NEW_RANDOMIZE);
@@
-89,6
+90,7
@@
void OpenAll(void)
InitLevelInfo();
InitGadgets(); /* needs to know number of level series */
InitLevelInfo();
InitGadgets(); /* needs to know number of level series */
+ InitSound(); /* needs to know current level directory */
InitGfxBackground();
InitToons();
InitGfxBackground();
InitToons();
@@
-151,39
+153,55
@@
void InitNetworkServer()
#endif
}
#endif
}
-
void InitSound
()
+
static void ReloadCustomSounds
()
{
int i;
{
int i;
- OpenAudio();
+#if 1
+ printf("DEBUG: reloading sounds '%s' ...\n", artwork.sounds_set_current);
+#endif
+
+ FreeAllSounds();
+ InitSoundList(NUM_SOUNDS);
for(i=0; i<NUM_SOUNDS; i++)
for(i=0; i<NUM_SOUNDS; i++)
- {
- if (!LoadCustomSound(sound_name[i]))
- {
- Error(ERR_WARN, "sounds deactivated");
+ LoadSoundToList(sound_name[i], i);
+}
- audio.sound_available = FALSE;
- audio.loops_available = FALSE;
- audio.sound_enabled = FALSE;
+static void ReloadCustomMusic()
+{
+#if 1
+ printf("DEBUG: reloading music '%s' ...\n", artwork.music_set_current);
+#endif
- return;
- }
- }
+ FreeAllMusic();
- num_bg_loops = LoadCustomMusic();
+ LoadCustomMusic();
+}
+
+static void InitSoundServer()
+{
+ OpenAudio();
+ SetAudioReloadFunctions(ReloadCustomSounds, ReloadCustomMusic);
StartSoundserver();
}
StartSoundserver();
}
-void InitTileClipmasks()
+static void InitSound()
+{
+ InitReloadSounds(artwork.snd_current->name);
+ InitReloadMusic(artwork.mus_current->name);
+}
+
+static void InitTileClipmasks()
{
#if defined(TARGET_X11)
{
#if defined(TARGET_X11)
- GC copy_clipmask_gc;
XGCValues clip_gc_values;
unsigned long clip_gc_valuemask;
#if defined(TARGET_X11_NATIVE)
XGCValues clip_gc_values;
unsigned long clip_gc_valuemask;
#if defined(TARGET_X11_NATIVE)
+ GC copy_clipmask_gc;
+
static struct
{
int start;
static struct
{
int start;
@@
-1602,8
+1620,9
@@
void CloseAllAndExit(int exit_value)
int i;
StopSounds();
int i;
StopSounds();
- FreeSounds(NUM_SOUNDS);
- CloseAudio();
+ FreeAllSounds();
+ FreeAllMusic();
+ CloseAudio(); /* called after freeing sounds (needed for SDL) */
FreeTileClipmasks();
for(i=0; i<NUM_BITMAPS; i++)
FreeTileClipmasks();
for(i=0; i<NUM_BITMAPS; i++)