Rain: Support sizes
This commit is contained in:
parent
be1486ccdc
commit
1f6f7bb746
2 changed files with 30 additions and 7 deletions
|
|
@ -6,7 +6,7 @@ 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.April.22 (0.9.30)
|
2023.April.23 (0.9.30)
|
||||||
* Improvements to Stamp tool:
|
* Improvements to Stamp tool:
|
||||||
---------------------------
|
---------------------------
|
||||||
* Avoid playing English descriptive sound for a stamp
|
* Avoid playing English descriptive sound for a stamp
|
||||||
|
|
@ -55,6 +55,7 @@ https://tuxpaint.org/
|
||||||
+ Noise
|
+ Noise
|
||||||
+ Pixels
|
+ Pixels
|
||||||
+ Puzzle
|
+ Puzzle
|
||||||
|
+ Rain
|
||||||
+ Rainbow & Smooth Rainbow
|
+ Rainbow & Smooth Rainbow
|
||||||
+ Remove Color, Keep Color
|
+ Remove Color, Keep Color
|
||||||
+ Ripples
|
+ Ripples
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
(See COPYING.txt)
|
(See COPYING.txt)
|
||||||
|
|
||||||
Last updated: February 12, 2023
|
Last updated: April 23, 2023
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
@ -45,8 +45,8 @@
|
||||||
void rain_click(magic_api *, int, int, SDL_Surface *, SDL_Surface *, int, int,
|
void rain_click(magic_api *, int, int, SDL_Surface *, SDL_Surface *, int, int,
|
||||||
SDL_Rect *);
|
SDL_Rect *);
|
||||||
|
|
||||||
static const int rain_SIZE = 30;
|
static int rain_SIZE = 30;
|
||||||
static const int rain_AMOUNT = 200;
|
static int rain_AMOUNT = 200;
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
|
|
@ -78,7 +78,7 @@ const char *rain_descs[rain_NUM_TOOLS][2] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
Uint32 rain_api_version(void);
|
Uint32 rain_api_version(void);
|
||||||
int rain_init(magic_api * api);
|
int rain_init(magic_api * api, Uint32 disabled_features);
|
||||||
int rain_get_tool_count(magic_api * api);
|
int rain_get_tool_count(magic_api * api);
|
||||||
SDL_Surface *rain_get_icon(magic_api * api, int which);
|
SDL_Surface *rain_get_icon(magic_api * api, int which);
|
||||||
char *rain_get_name(magic_api * api, int which);
|
char *rain_get_name(magic_api * api, int which);
|
||||||
|
|
@ -104,6 +104,10 @@ void rain_switchin(magic_api * api, int which, int mode,
|
||||||
void rain_switchout(magic_api * api, int which, int mode,
|
void rain_switchout(magic_api * api, int which, int mode,
|
||||||
SDL_Surface * canvas);
|
SDL_Surface * canvas);
|
||||||
int rain_modes(magic_api * api, int which);
|
int rain_modes(magic_api * api, int which);
|
||||||
|
Uint8 rain_accepted_sizes(magic_api * api, int which, int mode);
|
||||||
|
Uint8 rain_default_size(magic_api * api, int which, int mode);
|
||||||
|
void rain_set_size(magic_api * api, int which, int mode, SDL_Surface * canvas, SDL_Surface * last, Uint8 size, SDL_Rect * update_rect);
|
||||||
|
|
||||||
|
|
||||||
Uint32 rain_api_version(void)
|
Uint32 rain_api_version(void)
|
||||||
{
|
{
|
||||||
|
|
@ -113,14 +117,14 @@ Uint32 rain_api_version(void)
|
||||||
//Checks if a a pixel is inside a raindrop shape centered on the origin
|
//Checks if a a pixel is inside a raindrop shape centered on the origin
|
||||||
static int rain_inRainShape(double x, double y, double r)
|
static int rain_inRainShape(double x, double y, double r)
|
||||||
{
|
{
|
||||||
if (sqrt(x * x + y * y) < (r * pow(cos(atan2(x, y)), 10.0)))
|
if (sqrt(x * x + y * y) < (r * pow(cos(atan2(x, y)), (float) (rain_SIZE / 3.0))))
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int rain_init(magic_api * api)
|
int rain_init(magic_api * api, Uint32 disabled_features ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
|
|
@ -334,3 +338,21 @@ int rain_modes(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED)
|
||||||
{
|
{
|
||||||
return (MODE_FULLSCREEN | MODE_PAINT);
|
return (MODE_FULLSCREEN | MODE_PAINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Uint8 rain_accepted_sizes(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED, int mode ATTRIBUTE_UNUSED)
|
||||||
|
{
|
||||||
|
/* Size affects both fullscreen and paint mode, in Rain tool! */
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
Uint8 rain_default_size(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED, int mode ATTRIBUTE_UNUSED)
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
void rain_set_size(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED, int mode ATTRIBUTE_UNUSED, SDL_Surface * canvas ATTRIBUTE_UNUSED, SDL_Surface * last ATTRIBUTE_UNUSED, Uint8 size, SDL_Rect * update_rect ATTRIBUTE_UNUSED)
|
||||||
|
{
|
||||||
|
rain_SIZE = size * 15;
|
||||||
|
rain_AMOUNT = 400 / size;
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue