Skip to content

Instantly share code, notes, and snippets.

@Cheeseness
Created October 31, 2013 05:45
Show Gist options
  • Select an option

  • Save Cheeseness/7244813 to your computer and use it in GitHub Desktop.

Select an option

Save Cheeseness/7244813 to your computer and use it in GitHub Desktop.
Another attachment to NeverTrac ticket #85 ( [Neverball GitHub issue #15](https://github.com/Neverball/neverball/issues/15) ) by @mehdiym
diff -aur neverball-1.4.0/ball/main.c neverball-1.4.0-mod/ball/main.c
--- neverball-1.4.0/ball/main.c 2004-09-08 23:14:17.000000000 +0300
+++ neverball-1.4.0-mod/ball/main.c 2007-05-09 19:48:53.000000000 +0300
@@ -233,6 +233,9 @@
audio_init();
+ if (config_get_d(CONFIG_VOICE) == 0)
+ audio_mute_channel(1, 1);
+
/* Require 16-bit double buffer with 16-bit depth buffer. */
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 5);
diff -aur neverball-1.4.0/ball/st_conf.c neverball-1.4.0-mod/ball/st_conf.c
--- neverball-1.4.0/ball/st_conf.c 2004-09-08 23:29:02.000000000 +0300
+++ neverball-1.4.0-mod/ball/st_conf.c 2007-05-09 20:17:43.000000000 +0300
@@ -46,9 +46,13 @@
#define CONF_AUDHI 18
#define CONF_AUDLO 19
#define CONF_BACK 20
+#define CONF_VOION 21
+#define CONF_VOIOF 22
static int audlo_id;
static int audhi_id;
+static int voion_id;
+static int voiof_id;
static int music_id[11];
static int sound_id[11];
@@ -167,6 +171,28 @@
goto_state(&st_conf);
break;
+ case CONF_VOION:
+ if (config_get_d(CONFIG_VOICE) == 0)
+ {
+ config_set_d(CONFIG_VOICE, 1);
+ audio_mute_channel(1, 0);
+
+ gui_toggle(voion_id);
+ gui_toggle(voiof_id);
+ }
+ break;
+
+ case CONF_VOIOF:
+ if (config_get_d(CONFIG_VOICE) == 1)
+ {
+ config_set_d(CONFIG_VOICE, 0);
+ audio_mute_channel(1, 1);
+
+ gui_toggle(voion_id);
+ gui_toggle(voiof_id);
+ }
+ break;
+
case CONF_AUDHI:
audio_free();
config_set_d(CONFIG_AUDIO_RATE, 44100);
@@ -200,6 +226,11 @@
gui_toggle(sound_id[n]);
gui_toggle(sound_id[s]);
+
+ /* FIXME audio_volume resets volume for all channels. */
+
+ if (config_get_d(CONFIG_VOICE) == 0)
+ audio_mute_channel(1, 1);
}
if (200 <= i && i <= 210)
{
@@ -211,6 +242,11 @@
gui_toggle(music_id[n]);
gui_toggle(music_id[m]);
+
+ /* FIXME audio_volume resets volume for all channels. */
+
+ if (config_get_d(CONFIG_VOICE) == 0)
+ audio_mute_channel(1, 1);
}
}
@@ -238,6 +274,7 @@
int a = config_get_d(CONFIG_AUDIO_RATE);
int s = config_get_d(CONFIG_SOUND_VOLUME);
int m = config_get_d(CONFIG_MUSIC_VOLUME);
+ int v = config_get_d(CONFIG_VOICE);
if ((kd = gui_harray(jd)))
{
@@ -263,11 +300,13 @@
gui_state(kd, "Low", GUI_SML, CONF_TEXLO, (t == 2));
gui_state(kd, "High", GUI_SML, CONF_TEXHI, (t == 1));
}
+#if 0
if ((kd = gui_harray(jd)))
{
gui_state(kd, "Low", GUI_SML, CONF_GEOLO, (g == 0));
gui_state(kd, "High", GUI_SML, CONF_GEOHI, (g == 1));
}
+#endif
if ((kd = gui_harray(jd)))
{
gui_state(kd, "Off", GUI_SML, CONF_REFOF, (r == 0));
@@ -285,6 +324,11 @@
}
if ((kd = gui_harray(jd)))
{
+ voiof_id = gui_state(kd, "Off", GUI_SML, CONF_VOIOF, !v);
+ voion_id = gui_state(kd, "On", GUI_SML, CONF_VOION, v);
+ }
+ if ((kd = gui_harray(jd)))
+ {
int lo = (a == 22050);
int hi = (a == 44100);
@@ -341,10 +385,13 @@
gui_filler(jd);
gui_label(jd, "Textures", GUI_SML, GUI_ALL, 0, 0);
+#if 0
gui_label(jd, "Geometry", GUI_SML, GUI_ALL, 0, 0);
+#endif
gui_label(jd, "Reflection", GUI_SML, GUI_ALL, 0, 0);
gui_label(jd, "Background", GUI_SML, GUI_ALL, 0, 0);
gui_label(jd, "Shadow", GUI_SML, GUI_ALL, 0, 0);
+ gui_label(jd, "Voice", GUI_SML, GUI_ALL, 0, 0);
gui_label(jd, "Audio", GUI_SML, GUI_ALL, 0, 0);
gui_label(jd, "Sound Volume", GUI_SML, GUI_ALL, 0, 0);
gui_label(jd, "Music Volume", GUI_SML, GUI_ALL, 0, 0);
diff -aur neverball-1.4.0/share/audio.c neverball-1.4.0-mod/share/audio.c
--- neverball-1.4.0/share/audio.c 2004-08-28 22:20:42.000000000 +0300
+++ neverball-1.4.0-mod/share/audio.c 2007-05-09 19:47:23.000000000 +0300
@@ -102,6 +102,14 @@
}
}
+void audio_mute_channel(int c, int m)
+{
+ int v = config_get_d(CONFIG_SOUND_VOLUME) * MIX_MAX_VOLUME / 10;
+
+ if (audio_state)
+ Mix_Volume(c, m ? 0 : v);
+}
+
/*---------------------------------------------------------------------------*/
void audio_music_play(const char *filename)
diff -aur neverball-1.4.0/share/audio.h neverball-1.4.0-mod/share/audio.h
--- neverball-1.4.0/share/audio.h 2004-08-28 22:20:21.000000000 +0300
+++ neverball-1.4.0-mod/share/audio.h 2007-05-09 19:47:23.000000000 +0300
@@ -10,6 +10,8 @@
void audio_bind(int, int, const char *);
void audio_play(int, float);
+void audio_mute_channel(int, int);
+
void audio_music_queue(const char *);
void audio_music_play(const char *);
void audio_music_stop(void);
diff -aur neverball-1.4.0/share/config.c neverball-1.4.0-mod/share/config.c
--- neverball-1.4.0/share/config.c 2004-09-08 23:11:38.000000000 +0300
+++ neverball-1.4.0-mod/share/config.c 2007-05-09 19:47:23.000000000 +0300
@@ -82,6 +82,7 @@
config_set_d(CONFIG_FPS, DEFAULT_FPS);
config_set_d(CONFIG_SOUND_VOLUME, DEFAULT_SOUND_VOLUME);
config_set_d(CONFIG_MUSIC_VOLUME, DEFAULT_MUSIC_VOLUME);
+ config_set_d(CONFIG_VOICE, DEFAULT_VOICE);
config_set_d(CONFIG_JOYSTICK, DEFAULT_JOYSTICK);
config_set_d(CONFIG_JOYSTICK_DEVICE, DEFAULT_JOYSTICK_DEVICE);
config_set_d(CONFIG_JOYSTICK_AXIS_X, DEFAULT_JOYSTICK_AXIS_X);
@@ -159,6 +160,8 @@
config_set_d(CONFIG_SOUND_VOLUME, atoi(val));
else if (strcmp(key, "music_volume") == 0)
config_set_d(CONFIG_MUSIC_VOLUME, atoi(val));
+ else if (strcmp(key, "voice") == 0)
+ config_set_d(CONFIG_VOICE, atoi(val));
else if (strcmp(key, "joystick") == 0)
config_set_d(CONFIG_JOYSTICK, atoi(val));
else if (strcmp(key, "joystick_device") == 0)
@@ -263,6 +266,8 @@
option_d[CONFIG_SOUND_VOLUME]);
fprintf(fp, "music_volume %d\n",
option_d[CONFIG_MUSIC_VOLUME]);
+ fprintf(fp, "voice %d\n",
+ option_d[CONFIG_VOICE]);
fprintf(fp, "joystick %d\n",
option_d[CONFIG_JOYSTICK]);
fprintf(fp, "joystick_device %d\n",
diff -aur neverball-1.4.0/share/config.h neverball-1.4.0-mod/share/config.h
--- neverball-1.4.0/share/config.h 2004-07-22 00:35:21.000000000 +0300
+++ neverball-1.4.0-mod/share/config.h 2007-05-09 19:47:23.000000000 +0300
@@ -83,6 +83,7 @@
CONFIG_FPS,
CONFIG_SOUND_VOLUME,
CONFIG_MUSIC_VOLUME,
+ CONFIG_VOICE,
CONFIG_JOYSTICK,
CONFIG_JOYSTICK_DEVICE,
CONFIG_JOYSTICK_AXIS_X,
@@ -138,6 +139,7 @@
#define DEFAULT_FPS 0
#define DEFAULT_SOUND_VOLUME 10
#define DEFAULT_MUSIC_VOLUME 6
+#define DEFAULT_VOICE 1
#define DEFAULT_JOYSTICK 0
#define DEFAULT_JOYSTICK_DEVICE 0
#define DEFAULT_JOYSTICK_AXIS_X 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment