Created
October 31, 2013 05:45
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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