diff --git a/docs/AUTHORS.txt b/docs/AUTHORS.txt index f241e9a1a..0fea3c543 100644 --- a/docs/AUTHORS.txt +++ b/docs/AUTHORS.txt @@ -6,7 +6,7 @@ Copyright (c) 2002-2024 Various contributors (see below, and CHANGES.txt) https://tuxpaint.org/ -June 17, 2002 - July 26, 2024 +June 17, 2002 - September 17, 2024 * Design and Coding: @@ -171,9 +171,19 @@ June 17, 2002 - July 26, 2024 Creative Commons Attribution 3.0 by stinkhorn + Comic Dots magic tool + by Bill Kendrick + + Comic Dots sound effect + Based on "superhero theme" + + Creative Commons Attribution 4.0 by Luis Humanoide + + Bloom magic tool by Bill Kendrick - Googly Eyes sound effect: "Torch Crackle.wav" + + Bloom sound effect: "Torch Crackle.wav" (https://freesound.org/people/kentnelson64/sounds/647221/) Creative Commons 0 license by "kentnelson64" diff --git a/docs/CHANGES.txt b/docs/CHANGES.txt index af28d300e..32031b366 100644 --- a/docs/CHANGES.txt +++ b/docs/CHANGES.txt @@ -11,9 +11,11 @@ https://tuxpaint.org/ ---------------- * WIP "Comic Dots", draws repeating dots (using a multiply blend) to simulate the "Ben Day process" of coloring/shading. - Bill Kendrick - - TODO needs icons - - TODO needs sound effects + + Code & icon Bill Kendrick + + Sound effect based on "superhero theme", + Creative Commons Attribution 4.0 by Luis Humanoide + + - TODO needs icon Closes https://sourceforge.net/p/tuxpaint/feature-requests/257/ * Improvements to Fill tool: diff --git a/magic/sounds/comic_dots.ogg b/magic/sounds/comic_dots.ogg new file mode 100644 index 000000000..fd87e322d Binary files /dev/null and b/magic/sounds/comic_dots.ogg differ diff --git a/magic/src/comicdot.c b/magic/src/comicdot.c index fb8110e5c..27edc1d2f 100644 --- a/magic/src/comicdot.c +++ b/magic/src/comicdot.c @@ -83,7 +83,7 @@ int comicdot_init(magic_api * api, Uint8 disabled_features ATTRIBUTE_UNUSED, Uin char fname[1024]; int i; - snprintf(fname, sizeof(fname), "%ssounds/magic/xor.ogg", api->data_directory); // FIXME + snprintf(fname, sizeof(fname), "%ssounds/magic/comic_dots.ogg", api->data_directory); comicdot_snd = Mix_LoadWAV(fname); /* Load base pattern image */ @@ -222,7 +222,7 @@ void comicdot_drag(magic_api * api, int which, SDL_Surface * canvas, update_rect->w = (x + comicdot_radius) - update_rect->x; update_rect->h = (y + comicdot_radius) - update_rect->y; - api->playsound(comicdot_snd, (x * 255) / canvas->w, 255); + api->playsound(comicdot_snd, 64 + ((x * 127) / canvas->w), 255); } void comicdot_click(magic_api * api, int which, int mode, @@ -251,6 +251,12 @@ void comicdot_release(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUS SDL_Surface * last ATTRIBUTE_UNUSED, int x ATTRIBUTE_UNUSED, int y ATTRIBUTE_UNUSED, SDL_Rect * update_rect ATTRIBUTE_UNUSED) { + /* FIXME: Would be nice to be able to ask Tux Paint to pause + the sound (`Mix_Pause()`), and then resume (`Mix_Resume()`) + (or start new (`Mix_PlayChannel()`) if nothing is currently playing) + on click/drag. That way the sound won't start over every time + you make small stroke. */ + api->stopsound(); } void comicdot_shutdown(magic_api * api ATTRIBUTE_UNUSED)