N-pt perspective Magic tools: Sound effects!
This commit is contained in:
parent
761c948962
commit
3e662b9edc
6 changed files with 59 additions and 25 deletions
|
|
@ -6,7 +6,7 @@ Copyright (c) 2002-2023
|
||||||
Various contributors (see below, and CHANGES.txt)
|
Various contributors (see below, and CHANGES.txt)
|
||||||
https://tuxpaint.org/
|
https://tuxpaint.org/
|
||||||
|
|
||||||
June 17, 2002 - July 20, 2023
|
June 17, 2002 - December 23, 2023
|
||||||
|
|
||||||
* Design and Coding:
|
* Design and Coding:
|
||||||
|
|
||||||
|
|
@ -147,6 +147,19 @@ June 17, 2002 - July 20, 2023
|
||||||
(https://freesound.org/people/kentnelson64/sounds/647221/)
|
(https://freesound.org/people/kentnelson64/sounds/647221/)
|
||||||
Creative Commons 0 license by "kentnelson64"
|
Creative Commons 0 license by "kentnelson64"
|
||||||
|
|
||||||
|
1-point, 2-point, and 3-point Perspective tools
|
||||||
|
by Bill Kendrick <bill@newbreedsoftware.com>
|
||||||
|
Sounds:
|
||||||
|
+ Select: "Gummibandloop_121.wav"
|
||||||
|
(https://freesound.org/people/von_Gardener/sounds/473829/)
|
||||||
|
Creative Commons 0 by https://freesound.org/people/von_Gardener/
|
||||||
|
+ Click: "Rubber Band"
|
||||||
|
(https://freesound.org/people/IndigoRay/sounds/241869/)
|
||||||
|
Creative Commons 0 by https://freesound.org/people/IndigoRay/
|
||||||
|
+ Release: "Elastic band c note"
|
||||||
|
(https://freesound.org/people/mudflea2/sounds/708182/)
|
||||||
|
Creative Commons 0 by https://freesound.org/people/mudflea2/
|
||||||
|
|
||||||
3D Glasses, Color Sep., & Double Vision magic tools
|
3D Glasses, Color Sep., & Double Vision magic tools
|
||||||
by Bill Kendrick <bill@newbreedsoftware.com>
|
by Bill Kendrick <bill@newbreedsoftware.com>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,19 +6,31 @@ Copyright (c) 2002-2023
|
||||||
Various contributors (see below, and AUTHORS.txt)
|
Various contributors (see below, and AUTHORS.txt)
|
||||||
https://tuxpaint.org/
|
https://tuxpaint.org/
|
||||||
|
|
||||||
2023.December.22 (0.9.32)
|
2023.December.23 (0.9.32)
|
||||||
* New Magic Tools:
|
* New Magic Tools:
|
||||||
----------------
|
----------------
|
||||||
* 1-point Perspective (vanishing point)
|
* Vanishing point magic tools:
|
||||||
Choose a vanishing point, and then draw lines that always
|
+ 1-point Perspective ("1-Point Select" & "1-Point Draw")
|
||||||
point towards it, or are vertical or horizontal.
|
Choose a vanishing point, and then draw lines that always
|
||||||
Bill Kendrick <bill@newbreedsoftware.com>
|
point towards it, or are vertical or horizontal.
|
||||||
|
+ 2-point Perspective ("2-Point Select" & "2-Point Draw")
|
||||||
* 2-point Perspective (vanishing point)
|
Choose two vanishing points, and then draw lines that always
|
||||||
Choose two vanishing points, and then draw lines that always
|
point towards them, along the horizon defined by them,
|
||||||
point towards them, along the horizon defined by them,
|
or perpendicular to that horizon.
|
||||||
or perpendicular to that horizon.
|
+ 3-point Perspective ("3-Point Select" & "3-Point Draw")
|
||||||
Bill Kendrick <bill@newbreedsoftware.com>
|
Choose three vanishing points, and then draw lines that always
|
||||||
|
point towards them, or along the horizon defined by the first two.
|
||||||
|
+ Code: Bill Kendrick <bill@newbreedsoftware.com>
|
||||||
|
+ Sounds:
|
||||||
|
- Select: "Gummibandloop_121.wav"
|
||||||
|
(https://freesound.org/people/von_Gardener/sounds/473829/)
|
||||||
|
Creative Commons 0 by von_Gardener
|
||||||
|
- Click: "Rubber Band"
|
||||||
|
(https://freesound.org/people/IndigoRay/sounds/241869/)
|
||||||
|
Creative Commons 0 by IndigoRay
|
||||||
|
- Release: "Elastic band c note"
|
||||||
|
(https://freesound.org/people/mudflea2/sounds/708182/)
|
||||||
|
Creative Commons 0 by mudflea2
|
||||||
|
|
||||||
* Improvements to "Text" & "Label" tools:
|
* Improvements to "Text" & "Label" tools:
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
|
||||||
BIN
magic/sounds/n_pt_persp_click.ogg
Normal file
BIN
magic/sounds/n_pt_persp_click.ogg
Normal file
Binary file not shown.
BIN
magic/sounds/n_pt_persp_release.ogg
Normal file
BIN
magic/sounds/n_pt_persp_release.ogg
Normal file
Binary file not shown.
BIN
magic/sounds/n_pt_persp_select.ogg
Normal file
BIN
magic/sounds/n_pt_persp_select.ogg
Normal file
Binary file not shown.
|
|
@ -32,13 +32,17 @@ enum
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const char *sound_filenames[NUM_TOOLS] = {
|
enum {
|
||||||
"", // FIXME
|
SND_SELECT,
|
||||||
"", // FIXME
|
SND_DRAW_CLICK,
|
||||||
"", // FIXME
|
SND_DRAW_RELEASE,
|
||||||
"", // FIXME
|
NUM_SNDS
|
||||||
"", // FIXME
|
};
|
||||||
"", // FIXME
|
|
||||||
|
const char *sound_filenames[NUM_SNDS] = {
|
||||||
|
"n_pt_persp_select.ogg",
|
||||||
|
"n_pt_persp_click.ogg",
|
||||||
|
"n_pt_persp_release.ogg",
|
||||||
};
|
};
|
||||||
|
|
||||||
const char *icon_filenames[NUM_TOOLS] = {
|
const char *icon_filenames[NUM_TOOLS] = {
|
||||||
|
|
@ -140,7 +144,7 @@ int n_pt_persp_init(magic_api * api, Uint32 disabled_features ATTRIBUTE_UNUSED)
|
||||||
int i;
|
int i;
|
||||||
char filename[1024];
|
char filename[1024];
|
||||||
|
|
||||||
for (i = 0; i < NUM_TOOLS; i++)
|
for (i = 0; i < NUM_SNDS; i++)
|
||||||
{
|
{
|
||||||
snprintf(filename, sizeof(filename), "%s/sounds/magic/%s", api->data_directory,
|
snprintf(filename, sizeof(filename), "%s/sounds/magic/%s", api->data_directory,
|
||||||
sound_filenames[i]);
|
sound_filenames[i]);
|
||||||
|
|
@ -258,7 +262,7 @@ void n_pt_persp_shutdown(magic_api * api ATTRIBUTE_UNUSED)
|
||||||
SDL_FreeSurface(n_pt_persp_snapshot);
|
SDL_FreeSurface(n_pt_persp_snapshot);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < NUM_TOOLS; i++) {
|
for (i = 0; i < NUM_SNDS; i++) {
|
||||||
if (sound_effects[i] != NULL) {
|
if (sound_effects[i] != NULL) {
|
||||||
Mix_FreeChunk(sound_effects[i]);
|
Mix_FreeChunk(sound_effects[i]);
|
||||||
}
|
}
|
||||||
|
|
@ -318,6 +322,8 @@ void n_pt_persp_click(magic_api * api, int which, int mode ATTRIBUTE_UNUSED,
|
||||||
} else {
|
} else {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
api->playsound(sound_effects[SND_DRAW_CLICK], (x * 255) / canvas->w, 255);
|
||||||
|
|
||||||
/* Start drawing a line */
|
/* Start drawing a line */
|
||||||
SDL_BlitSurface(canvas, NULL, n_pt_persp_snapshot, NULL);
|
SDL_BlitSurface(canvas, NULL, n_pt_persp_snapshot, NULL);
|
||||||
|
|
||||||
|
|
@ -380,6 +386,8 @@ void n_pt_persp_vanish_pt_moved(magic_api * api, int which, SDL_Surface * canvas
|
||||||
update_rect->y = 0;
|
update_rect->y = 0;
|
||||||
update_rect->w = canvas->w;
|
update_rect->w = canvas->w;
|
||||||
update_rect->h = canvas->h;
|
update_rect->h = canvas->h;
|
||||||
|
|
||||||
|
api->playsound(sound_effects[SND_SELECT], 128, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -655,8 +663,6 @@ void n_pt_persp_work(magic_api * api, int which,
|
||||||
update_rect->y = 0;
|
update_rect->y = 0;
|
||||||
update_rect->w = canvas->w;
|
update_rect->w = canvas->w;
|
||||||
update_rect->h = canvas->h;
|
update_rect->h = canvas->h;
|
||||||
|
|
||||||
api->playsound(sound_effects[which], (x * 255) / canvas->w, 255);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -666,7 +672,7 @@ void n_pt_persp_release(magic_api * api, int which,
|
||||||
{
|
{
|
||||||
if (which == TOOL_1PT_SELECT) {
|
if (which == TOOL_1PT_SELECT) {
|
||||||
/* 1-point perspective - vanishing point drag released */
|
/* 1-point perspective - vanishing point drag released */
|
||||||
/* No-op */
|
api->stopsound();
|
||||||
} else if (which == TOOL_2PT_SELECT) {
|
} else if (which == TOOL_2PT_SELECT) {
|
||||||
/* 2-point perspective - vanishing point drag released */
|
/* 2-point perspective - vanishing point drag released */
|
||||||
if (abs(a2_pt_x[0] - a2_pt_x[1]) < SNAP) {
|
if (abs(a2_pt_x[0] - a2_pt_x[1]) < SNAP) {
|
||||||
|
|
@ -678,12 +684,15 @@ void n_pt_persp_release(magic_api * api, int which,
|
||||||
a2_pt_x[1] -= (SNAP / 2);
|
a2_pt_x[1] -= (SNAP / 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
api->stopsound();
|
||||||
} else if (which == TOOL_3PT_SELECT) {
|
} else if (which == TOOL_3PT_SELECT) {
|
||||||
/* 3-point perspective - vanishing point drag released */
|
/* 3-point perspective - vanishing point drag released */
|
||||||
/* FIXME */
|
api->stopsound();
|
||||||
} else {
|
} else {
|
||||||
/* Draw the line (for real) */
|
/* Draw the line (for real) */
|
||||||
n_pt_persp_work(api, which, canvas, x, y, update_rect, 0);
|
n_pt_persp_work(api, which, canvas, x, y, update_rect, 0);
|
||||||
|
|
||||||
|
api->playsound(sound_effects[SND_DRAW_RELEASE], (x * 255) / canvas->w, 255);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue