Allowed for more than 14 Magic tools.

Began work to add new Magic tools: Tint, Darken, Cartoon.
This commit is contained in:
William Kendrick 2004-12-11 11:21:16 +00:00
parent c8ee015738
commit 6a26679fa1
5 changed files with 105 additions and 45 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 791 B

BIN
data/images/magic/tint.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 B

View file

@ -8,13 +8,10 @@
bill@newbreedsoftware.com bill@newbreedsoftware.com
http://www.newbreedsoftware.com/tuxpaint/ http://www.newbreedsoftware.com/tuxpaint/
June 29, 2002 - December 6, 2004 June 29, 2002 - December 11, 2004
*/ */
#include "tip_tux.h"
/* What tools are available: */ /* What tools are available: */
enum { enum {
@ -25,20 +22,25 @@ enum {
MAGIC_FLIP, MAGIC_FLIP,
MAGIC_BLUR, MAGIC_BLUR,
MAGIC_BLOCKS, MAGIC_SMUDGE,
MAGIC_NEGATIVE,
MAGIC_FADE, MAGIC_FADE,
MAGIC_DARKEN,
MAGIC_CHALK, MAGIC_CHALK,
MAGIC_DRIP, MAGIC_BLOCKS,
MAGIC_THICK, MAGIC_THICK,
MAGIC_THIN, MAGIC_THIN,
MAGIC_FILL, MAGIC_NEGATIVE,
MAGIC_SMUDGE, MAGIC_TINT,
MAGIC_DRIP,
MAGIC_CARTOON,
MAGIC_FILL,
NUM_MAGICS NUM_MAGICS
}; };
@ -53,19 +55,24 @@ const char * const magic_names[NUM_MAGICS] = {
gettext_noop("Flip"), gettext_noop("Flip"),
gettext_noop("Blur"), gettext_noop("Blur"),
gettext_noop("Blocks"), gettext_noop("Smudge"),
gettext_noop("Negative"),
gettext_noop("Fade"), gettext_noop("Fade"),
gettext_noop("Darken"),
gettext_noop("Chalk"), gettext_noop("Chalk"),
gettext_noop("Drip"), gettext_noop("Blocks"),
gettext_noop("Thick"), gettext_noop("Thick"),
gettext_noop("Thin"), gettext_noop("Thin"),
gettext_noop("Fill"), gettext_noop("Negative"),
gettext_noop("Smudge"), gettext_noop("Tint"),
gettext_noop("Drip"),
gettext_noop("Cartoon"),
gettext_noop("Fill")
}; };
@ -79,25 +86,30 @@ const char * const magic_tips[NUM_MAGICS] = {
gettext_noop("Click to flip the picture upside-down."), gettext_noop("Click to flip the picture upside-down."),
gettext_noop("Click and move the mouse around to blur the picture."), gettext_noop("Click and move the mouse around to blur the picture."),
gettext_noop("Click and move the mouse around to make the picture blocky."), gettext_noop("Click and move the mouse around to smudge the picture."),
gettext_noop("Click and move the mouse around to draw a negative."),
gettext_noop("Click and move to fade the colors."), gettext_noop("Click and move to fade the colors."),
gettext_noop("Click and move to darken the colors."),
gettext_noop("Click and move the mouse around to turn the picture into a chalk drawing."), gettext_noop("Click and move the mouse around to turn the picture into a chalk drawing."),
gettext_noop("Click and move the mouse around to make the picture drip."), gettext_noop("Click and move the mouse around to make the picture blocky."),
gettext_noop("Click and move the mouse to thicken the picture."), gettext_noop("Click and move the mouse to thicken the picture."),
gettext_noop("Click and move the mouse to thin the picture."), gettext_noop("Click and move the mouse to thin the picture."),
gettext_noop("Click in the picture to fill that area with color."), gettext_noop("Click and move the mouse around to draw a negative."),
gettext_noop("Click and move the mouse around to smudge the picture."), gettext_noop("Click and move the mouse around to change the picture's color."),
gettext_noop("Click and move the mouse around to make the picture drip."),
gettext_noop("Click and move the mouse around to turn the picture into a cartoon."),
gettext_noop("Click in the picture to fill that area with color.")
}; };
/* Tool icon filenames: */ /* Tool icon filenames: */
const char * const magic_img_fnames[NUM_TOOLS] = { const char * const magic_img_fnames[NUM_MAGICS] = {
DATA_PREFIX "images/magic/rainbow.png", DATA_PREFIX "images/magic/rainbow.png",
DATA_PREFIX "images/magic/sparkles.png", DATA_PREFIX "images/magic/sparkles.png",
@ -105,23 +117,28 @@ const char * const magic_img_fnames[NUM_TOOLS] = {
DATA_PREFIX "images/magic/flip.png", DATA_PREFIX "images/magic/flip.png",
DATA_PREFIX "images/magic/blur.png", DATA_PREFIX "images/magic/blur.png",
DATA_PREFIX "images/magic/blocks.png", DATA_PREFIX "images/magic/smudge.png",
DATA_PREFIX "images/magic/negative.png",
DATA_PREFIX "images/magic/fade.png", DATA_PREFIX "images/magic/fade.png",
DATA_PREFIX "images/magic/darken.png",
DATA_PREFIX "images/magic/chalk.png", DATA_PREFIX "images/magic/chalk.png",
DATA_PREFIX "images/magic/drip.png", DATA_PREFIX "images/magic/blocks.png",
DATA_PREFIX "images/magic/thick.png", DATA_PREFIX "images/magic/thick.png",
DATA_PREFIX "images/magic/thin.png", DATA_PREFIX "images/magic/thin.png",
DATA_PREFIX "images/magic/fill.png", DATA_PREFIX "images/magic/negative.png",
DATA_PREFIX "images/magic/smudge.png" DATA_PREFIX "images/magic/tint.png",
DATA_PREFIX "images/magic/drip.png",
DATA_PREFIX "images/magic/cartoon.png",
DATA_PREFIX "images/magic/fill.png"
}; };
/* FIXME: Should we should different Tux icons depending on magic, /* FIXME: Should we show different Tux icons depending on magic,
like tools? */ like tools? */

View file

@ -681,7 +681,7 @@ static int colors_are_selectable;
static int been_saved; static int been_saved;
static char file_id[32]; static char file_id[32];
static char starter_id[32]; static char starter_id[32];
static int brush_scroll, stamp_scroll, font_scroll; static int brush_scroll, stamp_scroll, font_scroll, magic_scroll;
static int eraser_sound; static int eraser_sound;
static char texttool_str[256]; static char texttool_str[256];
@ -950,6 +950,7 @@ int main(int argc, char * argv[])
brush_scroll = 0; brush_scroll = 0;
stamp_scroll = 0; stamp_scroll = 0;
font_scroll = 0; font_scroll = 0;
magic_scroll = 0;
reset_avail_tools(); reset_avail_tools();
@ -1704,7 +1705,7 @@ static void mainloop(void)
else if (cur_tool == TOOL_MAGIC) else if (cur_tool == TOOL_MAGIC)
{ {
num_things = NUM_MAGICS; num_things = NUM_MAGICS;
thing_scroll = 0; thing_scroll = magic_scroll;
} }
else if (cur_tool == TOOL_ERASER) else if (cur_tool == TOOL_ERASER)
{ {
@ -2052,6 +2053,7 @@ static void mainloop(void)
} }
cur_magic = cur_thing; cur_magic = cur_thing;
magic_scroll = thing_scroll;
draw_tux_text(TUX_GREAT, magic_tips[cur_magic], 1); draw_tux_text(TUX_GREAT, magic_tips[cur_magic], 1);
@ -2334,7 +2336,7 @@ static void mainloop(void)
else if (cur_tool == TOOL_MAGIC) else if (cur_tool == TOOL_MAGIC)
{ {
num_things = NUM_MAGICS; num_things = NUM_MAGICS;
thing_scroll = 0; thing_scroll = magic_scroll;
} }
do_draw = 0; do_draw = 0;
@ -2485,6 +2487,7 @@ static void mainloop(void)
} }
cur_magic = cur_thing; cur_magic = cur_thing;
magic_scroll = thing_scroll;
draw_tux_text(TUX_GREAT, magic_tips[cur_magic], 1); draw_tux_text(TUX_GREAT, magic_tips[cur_magic], 1);
@ -2673,7 +2676,7 @@ static void mainloop(void)
else if (cur_tool == TOOL_MAGIC) else if (cur_tool == TOOL_MAGIC)
{ {
num_things = NUM_MAGICS; num_things = NUM_MAGICS;
thing_scroll = 0; thing_scroll = magic_scroll;
} }
@ -6794,7 +6797,7 @@ static void draw_toolbar(void)
static void draw_magic(void) static void draw_magic(void)
{ {
int i; int magic, i, max, off_y;
SDL_Rect dest; SDL_Rect dest;
@ -6803,15 +6806,54 @@ static void draw_magic(void)
draw_image_title(TITLE_MAGIC, WINDOW_WIDTH - 96); draw_image_title(TITLE_MAGIC, WINDOW_WIDTH - 96);
for (i = 0; i < 14 + TOOLOFFSET; i++) if (NUM_MAGICS > 14 + TOOLOFFSET)
{ {
dest.x = WINDOW_WIDTH - 96 + ((i % 2) * 48); off_y = 24;
dest.y = ((i / 2) * 48) + 40; max = 12 + TOOLOFFSET;
dest.x = WINDOW_WIDTH - 96;
dest.y = 40;
if (i < NUM_MAGICS) if (magic_scroll > 0)
{ {
if (i == cur_magic) SDL_BlitSurface(img_scroll_up, NULL, screen, &dest);
}
else
{
SDL_BlitSurface(img_scroll_up_off, NULL, screen, &dest);
}
dest.x = WINDOW_WIDTH - 96;
dest.y = 40 + 24 + ((6 + TOOLOFFSET / 2) * 48);
if (magic_scroll < NUM_MAGICS - 12 - TOOLOFFSET)
{
SDL_BlitSurface(img_scroll_down, NULL, screen, &dest);
}
else
{
SDL_BlitSurface(img_scroll_down_off, NULL, screen, &dest);
}
}
else
{
off_y = 0;
max = 14 + TOOLOFFSET;
}
for (magic = magic_scroll;
magic < magic_scroll + max;
magic++)
{
i = magic - magic_scroll;
dest.x = ((i % 2) * 48) + (WINDOW_WIDTH - 96);
dest.y = ((i / 2) * 48) + 40 + off_y;
if (magic < NUM_MAGICS)
{
if (magic == cur_magic)
{ {
SDL_BlitSurface(img_btn_down, NULL, screen, &dest); SDL_BlitSurface(img_btn_down, NULL, screen, &dest);
} }
@ -6821,16 +6863,17 @@ static void draw_magic(void)
} }
dest.x = WINDOW_WIDTH - 96 + ((i % 2) * 48) + 4; dest.x = WINDOW_WIDTH - 96 + ((i % 2) * 48) + 4;
dest.y = ((i / 2) * 48) + 40 + 4; dest.y = ((i / 2) * 48) + 40 + 4 + off_y;
SDL_BlitSurface(img_magics[i], NULL, screen, &dest); SDL_BlitSurface(img_magics[magic], NULL, screen, &dest);
dest.x = WINDOW_WIDTH - 96 + ((i % 2) * 48) + 4 + dest.x = WINDOW_WIDTH - 96 + ((i % 2) * 48) + 4 +
(40 - img_magic_names[i]->w) / 2; (40 - img_magic_names[magic]->w) / 2;
dest.y = ((i / 2) * 48) + 40 + 4 + (44 - img_magic_names[i]->h); dest.y = (((i / 2) * 48) + 40 + 4 +
(44 - img_magic_names[magic]->h) + off_y);
SDL_BlitSurface(img_magic_names[i], NULL, screen, &dest); SDL_BlitSurface(img_magic_names[magic], NULL, screen, &dest);
} }
else else
{ {