Re-ran indent on all .c & .h source code files
Like so --
find . -name "*.c" -or -name "*.h" -exec indent -nbfda -npcs -npsl -bli0 --no-tabs {} \;
The `indent` invocation differs from the last one noted in
CHANGES.txt (from 2006!?), in that I've added "--no-tabs",
to ensure indents are all space-based.
This commit is contained in:
parent
09f332367f
commit
cc05925d9e
99 changed files with 31659 additions and 27102 deletions
|
|
@ -49,7 +49,8 @@ static unsigned int fretwork_update_rectangle_width; //the width of the updat
|
|||
static unsigned int fretwork_update_rectangle_height; //the height of the update_rectangle
|
||||
static SDL_Rect modification_rect;
|
||||
static SDL_Surface *canvas_backup;
|
||||
static SDL_Surface *fretwork_one_back, *fretwork_three_back, *fretwork_four_back, *fretwork_corner_back;
|
||||
static SDL_Surface *fretwork_one_back, *fretwork_three_back,
|
||||
*fretwork_four_back, *fretwork_corner_back;
|
||||
|
||||
|
||||
// Housekeeping functions
|
||||
|
|
@ -57,7 +58,8 @@ static SDL_Surface *fretwork_one_back, *fretwork_three_back, *fretwork_four_back
|
|||
Uint32 fretwork_api_version(void);
|
||||
int fretwork_modes(magic_api * api, int which);
|
||||
void fretwork_set_color(magic_api * api, Uint8 r, Uint8 g, Uint8 b);
|
||||
static void fretwork_colorize(magic_api * api, SDL_Surface * dest, SDL_Surface * src);
|
||||
static void fretwork_colorize(magic_api * api, SDL_Surface * dest,
|
||||
SDL_Surface * src);
|
||||
int fretwork_init(magic_api * api);
|
||||
int fretwork_get_tool_count(magic_api * api);
|
||||
SDL_Surface *fretwork_get_icon(magic_api * api, int which);
|
||||
|
|
@ -66,20 +68,28 @@ int fretwork_get_group(magic_api * api, int which);
|
|||
char *fretwork_get_description(magic_api * api, int which, int mode);
|
||||
int fretwork_requires_colors(magic_api * api, int which);
|
||||
void fretwork_release(magic_api * api, int which,
|
||||
SDL_Surface * canvas, SDL_Surface * snapshot, int x, int y, SDL_Rect * update_rect);
|
||||
SDL_Surface * canvas, SDL_Surface * snapshot, int x,
|
||||
int y, SDL_Rect * update_rect);
|
||||
void fretwork_shutdown(magic_api * api);
|
||||
void fretwork_switchin(magic_api * api, int which, int mode, SDL_Surface * canvas, SDL_Surface * snapshot);
|
||||
void fretwork_switchout(magic_api * api, int which, int mode, SDL_Surface * canvas, SDL_Surface * snapshot);
|
||||
void fretwork_switchin(magic_api * api, int which, int mode,
|
||||
SDL_Surface * canvas, SDL_Surface * snapshot);
|
||||
void fretwork_switchout(magic_api * api, int which, int mode,
|
||||
SDL_Surface * canvas, SDL_Surface * snapshot);
|
||||
#define POINT_TYPE typeof(((SDL_Rect *)NULL)->x)
|
||||
inline void fretwork_extract_coords_from_segment(unsigned int segment, POINT_TYPE * x, POINT_TYPE * y);
|
||||
inline void fretwork_extract_coords_from_segment(unsigned int segment,
|
||||
POINT_TYPE * x,
|
||||
POINT_TYPE * y);
|
||||
void fretwork_click(magic_api * api, int which, int mode,
|
||||
SDL_Surface * canvas, SDL_Surface * snapshot, int x, int y, SDL_Rect * update_rect);
|
||||
SDL_Surface * canvas, SDL_Surface * snapshot, int x,
|
||||
int y, SDL_Rect * update_rect);
|
||||
|
||||
|
||||
|
||||
void fretwork_drag(magic_api * api, int which, SDL_Surface * canvas,
|
||||
SDL_Surface * snapshot, int ox, int oy, int x, int y, SDL_Rect * update_rect);
|
||||
static void fretwork_draw_wrapper(void *ptr, int which, SDL_Surface * canvas, SDL_Surface * last, int x, int y);
|
||||
SDL_Surface * snapshot, int ox, int oy, int x, int y,
|
||||
SDL_Rect * update_rect);
|
||||
static void fretwork_draw_wrapper(void *ptr, int which, SDL_Surface * canvas,
|
||||
SDL_Surface * last, int x, int y);
|
||||
inline unsigned int fretwork_get_segment(int x, int y);
|
||||
|
||||
|
||||
|
|
@ -90,7 +100,8 @@ Uint32 fretwork_api_version(void)
|
|||
return (TP_MAGIC_API_VERSION);
|
||||
}
|
||||
|
||||
int fretwork_modes(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED)
|
||||
int fretwork_modes(magic_api * api ATTRIBUTE_UNUSED,
|
||||
int which ATTRIBUTE_UNUSED)
|
||||
{
|
||||
return (MODE_PAINT | MODE_FULLSCREEN);
|
||||
}
|
||||
|
|
@ -107,7 +118,8 @@ void fretwork_set_color(magic_api * api, Uint8 r, Uint8 g, Uint8 b)
|
|||
}
|
||||
|
||||
/* Adapted from flower.c */
|
||||
static void fretwork_colorize(magic_api * api, SDL_Surface * dest, SDL_Surface * src)
|
||||
static void fretwork_colorize(magic_api * api, SDL_Surface * dest,
|
||||
SDL_Surface * src)
|
||||
{
|
||||
int x, y;
|
||||
Uint8 r, g, b, a;
|
||||
|
|
@ -116,14 +128,16 @@ static void fretwork_colorize(magic_api * api, SDL_Surface * dest, SDL_Surface *
|
|||
SDL_LockSurface(dest);
|
||||
|
||||
for (y = 0; y < src->h; y++)
|
||||
{
|
||||
for (x = 0; x < src->w; x++)
|
||||
{
|
||||
for (x = 0; x < src->w; x++)
|
||||
{
|
||||
SDL_GetRGBA(api->getpixel(src, x, y), src->format, &r, &g, &b, &a);
|
||||
SDL_GetRGBA(api->getpixel(src, x, y), src->format, &r, &g, &b, &a);
|
||||
|
||||
api->putpixel(dest, x, y, SDL_MapRGBA(dest->format, fretwork_r, fretwork_g, fretwork_b, a));
|
||||
}
|
||||
api->putpixel(dest, x, y,
|
||||
SDL_MapRGBA(dest->format, fretwork_r, fretwork_g,
|
||||
fretwork_b, a));
|
||||
}
|
||||
}
|
||||
|
||||
SDL_UnlockSurface(src);
|
||||
SDL_UnlockSurface(dest);
|
||||
|
|
@ -135,15 +149,19 @@ int fretwork_init(magic_api * api)
|
|||
char fname[1024];
|
||||
Uint8 i; //is always < 4, so Uint8 seems to be a good idea
|
||||
|
||||
fretwork_images = (char **)malloc(sizeof(char *) * 4);
|
||||
fretwork_images = (char **) malloc(sizeof(char *) * 4);
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
fretwork_images[i] = (char *)malloc(sizeof(char) * 1024);
|
||||
fretwork_images[i] = (char *) malloc(sizeof(char) * 1024);
|
||||
|
||||
snprintf(fretwork_images[0], 1024 * sizeof(char), "%simages/magic/fretwork_one.png", api->data_directory);
|
||||
snprintf(fretwork_images[1], 1024 * sizeof(char), "%simages/magic/fretwork_three.png", api->data_directory);
|
||||
snprintf(fretwork_images[2], 1024 * sizeof(char), "%simages/magic/fretwork_four.png", api->data_directory);
|
||||
snprintf(fretwork_images[3], 1024 * sizeof(char), "%simages/magic/fretwork_corner.png", api->data_directory);
|
||||
snprintf(fretwork_images[0], 1024 * sizeof(char),
|
||||
"%simages/magic/fretwork_one.png", api->data_directory);
|
||||
snprintf(fretwork_images[1], 1024 * sizeof(char),
|
||||
"%simages/magic/fretwork_three.png", api->data_directory);
|
||||
snprintf(fretwork_images[2], 1024 * sizeof(char),
|
||||
"%simages/magic/fretwork_four.png", api->data_directory);
|
||||
snprintf(fretwork_images[3], 1024 * sizeof(char),
|
||||
"%simages/magic/fretwork_corner.png", api->data_directory);
|
||||
|
||||
fretwork_one = IMG_Load(fretwork_images[0]);
|
||||
fretwork_three = IMG_Load(fretwork_images[1]);
|
||||
|
|
@ -157,7 +175,8 @@ int fretwork_init(magic_api * api)
|
|||
img_w = fretwork_one->w;
|
||||
img_h = fretwork_one->h;
|
||||
|
||||
snprintf(fname, sizeof(fname), "%ssounds/magic/fretwork.ogg", api->data_directory);
|
||||
snprintf(fname, sizeof(fname), "%ssounds/magic/fretwork.ogg",
|
||||
api->data_directory);
|
||||
fretwork_snd = Mix_LoadWAV(fname);
|
||||
|
||||
return (1);
|
||||
|
|
@ -172,37 +191,48 @@ SDL_Surface *fretwork_get_icon(magic_api * api, int which ATTRIBUTE_UNUSED)
|
|||
{
|
||||
char fname[1024];
|
||||
|
||||
snprintf(fname, sizeof(fname), "%simages/magic/fretwork.png", api->data_directory);
|
||||
snprintf(fname, sizeof(fname), "%simages/magic/fretwork.png",
|
||||
api->data_directory);
|
||||
|
||||
return (IMG_Load(fname));
|
||||
}
|
||||
|
||||
int fretwork_get_group(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED)
|
||||
int fretwork_get_group(magic_api * api ATTRIBUTE_UNUSED,
|
||||
int which ATTRIBUTE_UNUSED)
|
||||
{
|
||||
return MAGIC_TYPE_PAINTING;
|
||||
}
|
||||
|
||||
char *fretwork_get_name(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED)
|
||||
char *fretwork_get_name(magic_api * api ATTRIBUTE_UNUSED,
|
||||
int which ATTRIBUTE_UNUSED)
|
||||
{
|
||||
return strdup(gettext_noop("Fretwork"));
|
||||
}
|
||||
|
||||
char *fretwork_get_description(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED, int mode)
|
||||
char *fretwork_get_description(magic_api * api ATTRIBUTE_UNUSED,
|
||||
int which ATTRIBUTE_UNUSED, int mode)
|
||||
{
|
||||
if (mode == MODE_PAINT)
|
||||
return strdup(gettext_noop("Click and drag to draw repetitive patterns."));
|
||||
return
|
||||
strdup(gettext_noop("Click and drag to draw repetitive patterns."));
|
||||
else
|
||||
return strdup(gettext_noop("Click to surround your picture with repetitive patterns."));
|
||||
return
|
||||
strdup(gettext_noop
|
||||
("Click to surround your picture with repetitive patterns."));
|
||||
}
|
||||
|
||||
int fretwork_requires_colors(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED)
|
||||
int fretwork_requires_colors(magic_api * api ATTRIBUTE_UNUSED,
|
||||
int which ATTRIBUTE_UNUSED)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
void fretwork_release(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED,
|
||||
SDL_Surface * canvas ATTRIBUTE_UNUSED, SDL_Surface * snapshot ATTRIBUTE_UNUSED,
|
||||
int x ATTRIBUTE_UNUSED, int y ATTRIBUTE_UNUSED, SDL_Rect * update_rect ATTRIBUTE_UNUSED)
|
||||
void fretwork_release(magic_api * api ATTRIBUTE_UNUSED,
|
||||
int which ATTRIBUTE_UNUSED,
|
||||
SDL_Surface * canvas ATTRIBUTE_UNUSED,
|
||||
SDL_Surface * snapshot ATTRIBUTE_UNUSED,
|
||||
int x ATTRIBUTE_UNUSED, int y ATTRIBUTE_UNUSED,
|
||||
SDL_Rect * update_rect ATTRIBUTE_UNUSED)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -229,14 +259,18 @@ void fretwork_shutdown(magic_api * api ATTRIBUTE_UNUSED)
|
|||
free(fretwork_status_of_segments);
|
||||
}
|
||||
|
||||
void fretwork_switchin(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED, int mode ATTRIBUTE_UNUSED,
|
||||
SDL_Surface * canvas, SDL_Surface * snapshot ATTRIBUTE_UNUSED)
|
||||
void fretwork_switchin(magic_api * api ATTRIBUTE_UNUSED,
|
||||
int which ATTRIBUTE_UNUSED, int mode ATTRIBUTE_UNUSED,
|
||||
SDL_Surface * canvas,
|
||||
SDL_Surface * snapshot ATTRIBUTE_UNUSED)
|
||||
{
|
||||
//we've to compute the quantity of segments in each direction
|
||||
|
||||
canvas_backup = SDL_CreateRGBSurface(SDL_SWSURFACE, canvas->w, canvas->h, canvas->format->BitsPerPixel,
|
||||
canvas->format->Rmask, canvas->format->Gmask, canvas->format->Bmask,
|
||||
canvas->format->Amask);
|
||||
canvas_backup =
|
||||
SDL_CreateRGBSurface(SDL_SWSURFACE, canvas->w, canvas->h,
|
||||
canvas->format->BitsPerPixel, canvas->format->Rmask,
|
||||
canvas->format->Gmask, canvas->format->Bmask,
|
||||
canvas->format->Amask);
|
||||
|
||||
SDL_BlitSurface(canvas, NULL, canvas_backup, NULL);
|
||||
fretwork_segments_x = fretwork_math_ceil(canvas->w, img_w);
|
||||
|
|
@ -246,8 +280,10 @@ void fretwork_switchin(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNU
|
|||
}
|
||||
|
||||
|
||||
void fretwork_switchout(magic_api * api ATTRIBUTE_UNUSED, int which ATTRIBUTE_UNUSED, int mode ATTRIBUTE_UNUSED,
|
||||
SDL_Surface * canvas ATTRIBUTE_UNUSED, SDL_Surface * snapshot ATTRIBUTE_UNUSED)
|
||||
void fretwork_switchout(magic_api * api ATTRIBUTE_UNUSED,
|
||||
int which ATTRIBUTE_UNUSED, int mode ATTRIBUTE_UNUSED,
|
||||
SDL_Surface * canvas ATTRIBUTE_UNUSED,
|
||||
SDL_Surface * snapshot ATTRIBUTE_UNUSED)
|
||||
{
|
||||
free(fretwork_status_of_segments);
|
||||
fretwork_status_of_segments = NULL;
|
||||
|
|
@ -260,7 +296,7 @@ inline int fretwork_math_ceil(int x, int y)
|
|||
{
|
||||
int temp;
|
||||
|
||||
temp = (int)x / y;
|
||||
temp = (int) x / y;
|
||||
if (x % y)
|
||||
return temp + 1;
|
||||
else
|
||||
|
|
@ -279,10 +315,12 @@ inline unsigned int fretwork_get_segment(int x, int y)
|
|||
return (yy - 1) * fretwork_segments_x + xx;
|
||||
}
|
||||
|
||||
inline void fretwork_extract_coords_from_segment(unsigned int segment, POINT_TYPE * x, POINT_TYPE * y)
|
||||
inline void fretwork_extract_coords_from_segment(unsigned int segment,
|
||||
POINT_TYPE * x,
|
||||
POINT_TYPE * y)
|
||||
{
|
||||
*x = ((segment % fretwork_segments_x) - 1) * img_w; //useful to set update_rect as small as possible
|
||||
*y = (int)(segment / fretwork_segments_x) * img_h;
|
||||
*y = (int) (segment / fretwork_segments_x) * img_h;
|
||||
}
|
||||
|
||||
/* static void fretwork_flip(void * ptr, SDL_Surface * dest, SDL_Surface * src) */
|
||||
|
|
@ -296,81 +334,87 @@ inline void fretwork_extract_coords_from_segment(unsigned int segment, POINT_TYP
|
|||
/* api->putpixel(dest, x, y, api->getpixel(src, x, src->h-y)); */
|
||||
/* } */
|
||||
|
||||
static void fretwork_flip_flop(void *ptr, SDL_Surface * dest, SDL_Surface * src)
|
||||
static void fretwork_flip_flop(void *ptr, SDL_Surface * dest,
|
||||
SDL_Surface * src)
|
||||
{
|
||||
magic_api *api = (magic_api *) ptr;
|
||||
POINT_TYPE x, y;
|
||||
|
||||
for (x = 0; x < dest->w; x++)
|
||||
for (y = 0; y < dest->h; y++)
|
||||
api->putpixel(dest, dest->w - 1 - x, dest->h - 1 - y, api->getpixel(src, x, y));
|
||||
api->putpixel(dest, dest->w - 1 - x, dest->h - 1 - y,
|
||||
api->getpixel(src, x, y));
|
||||
}
|
||||
|
||||
static void fretwork_rotate(void *ptr, SDL_Surface * dest, SDL_Surface * src, _Bool direction)
|
||||
static void fretwork_rotate(void *ptr, SDL_Surface * dest, SDL_Surface * src,
|
||||
_Bool direction)
|
||||
//src and dest must have same size
|
||||
{
|
||||
magic_api *api = (magic_api *) ptr;
|
||||
POINT_TYPE x, y;
|
||||
|
||||
if (direction) //rotate -90 degs
|
||||
{
|
||||
for (x = 0; x < dest->w; x++)
|
||||
for (y = 0; y < dest->h; y++)
|
||||
api->putpixel(dest, x, y, api->getpixel(src, y, src->h - 1 - x));
|
||||
}
|
||||
{
|
||||
for (x = 0; x < dest->w; x++)
|
||||
for (y = 0; y < dest->h; y++)
|
||||
api->putpixel(dest, x, y, api->getpixel(src, y, src->h - 1 - x));
|
||||
}
|
||||
else //rotate +90 degs
|
||||
{
|
||||
for (x = 0; x < dest->w; x++)
|
||||
for (y = 0; y < dest->h; y++)
|
||||
api->putpixel(dest, x, y, api->getpixel(src, src->h - y - 1, x));
|
||||
}
|
||||
{
|
||||
for (x = 0; x < dest->w; x++)
|
||||
for (y = 0; y < dest->h; y++)
|
||||
api->putpixel(dest, x, y, api->getpixel(src, src->h - y - 1, x));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
void fretwork_click(magic_api * api, int which, int mode,
|
||||
SDL_Surface * canvas, SDL_Surface * snapshot, int x, int y, SDL_Rect * update_rect)
|
||||
SDL_Surface * canvas, SDL_Surface * snapshot, int x,
|
||||
int y, SDL_Rect * update_rect)
|
||||
{
|
||||
int left_x, right_x, top_y, bottom_y;
|
||||
|
||||
fretwork_segment_modified_last = 0;
|
||||
if (mode == MODE_PAINT)
|
||||
{
|
||||
fretwork_segment_last_clicked = fretwork_get_segment(x, y);
|
||||
fretwork_drag(api, which, canvas, snapshot, x, y, x, y, update_rect);
|
||||
}
|
||||
{
|
||||
fretwork_segment_last_clicked = fretwork_get_segment(x, y);
|
||||
fretwork_drag(api, which, canvas, snapshot, x, y, x, y, update_rect);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (fretwork_full_runs <=
|
||||
min(fretwork_segments_x, fretwork_segments_y) / 2)
|
||||
{
|
||||
if (fretwork_full_runs <= min(fretwork_segments_x, fretwork_segments_y) / 2)
|
||||
{
|
||||
left_x = img_w * fretwork_full_runs;
|
||||
right_x = img_w * fretwork_segments_x - img_w * fretwork_full_runs;
|
||||
top_y = img_h * fretwork_full_runs;
|
||||
bottom_y = img_h * fretwork_segments_y - img_h * (fretwork_full_runs - 1);
|
||||
left_x = img_w * fretwork_full_runs;
|
||||
right_x = img_w * fretwork_segments_x - img_w * fretwork_full_runs;
|
||||
top_y = img_h * fretwork_full_runs;
|
||||
bottom_y =
|
||||
img_h * fretwork_segments_y - img_h * (fretwork_full_runs - 1);
|
||||
|
||||
//left line
|
||||
api->line((void *)api, which, canvas, snapshot, left_x, top_y, left_x, bottom_y, img_w / 2,
|
||||
fretwork_draw_wrapper);
|
||||
//left line
|
||||
api->line((void *) api, which, canvas, snapshot, left_x, top_y, left_x,
|
||||
bottom_y, img_w / 2, fretwork_draw_wrapper);
|
||||
|
||||
//top line
|
||||
api->line((void *)api, which, canvas, snapshot, left_x, top_y, right_x, top_y, img_w / 2,
|
||||
fretwork_draw_wrapper);
|
||||
//top line
|
||||
api->line((void *) api, which, canvas, snapshot, left_x, top_y, right_x,
|
||||
top_y, img_w / 2, fretwork_draw_wrapper);
|
||||
|
||||
//bottom line
|
||||
api->line((void *)api, which, canvas, snapshot, left_x, bottom_y, right_x, bottom_y, img_w / 2,
|
||||
fretwork_draw_wrapper);
|
||||
//bottom line
|
||||
api->line((void *) api, which, canvas, snapshot, left_x, bottom_y,
|
||||
right_x, bottom_y, img_w / 2, fretwork_draw_wrapper);
|
||||
|
||||
//right line
|
||||
api->line((void *)api, which, canvas, snapshot, right_x, top_y, right_x, bottom_y, img_w / 2,
|
||||
fretwork_draw_wrapper);
|
||||
//right line
|
||||
api->line((void *) api, which, canvas, snapshot, right_x, top_y,
|
||||
right_x, bottom_y, img_w / 2, fretwork_draw_wrapper);
|
||||
|
||||
fretwork_full_runs += 1;
|
||||
update_rect->x = 0;
|
||||
update_rect->y = 0;
|
||||
update_rect->w = canvas->w;
|
||||
update_rect->h = canvas->h;
|
||||
}
|
||||
fretwork_full_runs += 1;
|
||||
update_rect->x = 0;
|
||||
update_rect->y = 0;
|
||||
update_rect->w = canvas->w;
|
||||
update_rect->h = canvas->h;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static Uint8 fretwork_select_image(Uint16 segment)
|
||||
|
|
@ -378,44 +422,49 @@ static Uint8 fretwork_select_image(Uint16 segment)
|
|||
int take_up, take_down;
|
||||
int val_up, val_down, val_left, val_right;
|
||||
int from_top = 0, from_bottom = 0, from_left = 0, from_right = 0;
|
||||
int from_top_right = 0, from_top_left = 0, from_bottom_right = 0, from_bottom_left = 0;
|
||||
int from_top_right = 0, from_top_left = 0, from_bottom_right =
|
||||
0, from_bottom_left = 0;
|
||||
int TOP = 0, BOTTOM = 0, LEFT = 0, RIGHT = 0;
|
||||
|
||||
//Checking from were we come...
|
||||
if (fretwork_segment_modified_last > 0)
|
||||
{
|
||||
if (segment == fretwork_segment_modified_last + 1)
|
||||
from_left = 1;
|
||||
else if (segment == fretwork_segment_modified_last - 1)
|
||||
from_right = 1;
|
||||
else if (segment == fretwork_segment_modified_last - fretwork_segments_x)
|
||||
from_bottom = 1;
|
||||
else if (segment == fretwork_segment_modified_last + fretwork_segments_x)
|
||||
from_top = 1;
|
||||
{
|
||||
if (segment == fretwork_segment_modified_last + 1)
|
||||
from_left = 1;
|
||||
else if (segment == fretwork_segment_modified_last - 1)
|
||||
from_right = 1;
|
||||
else if (segment == fretwork_segment_modified_last - fretwork_segments_x)
|
||||
from_bottom = 1;
|
||||
else if (segment == fretwork_segment_modified_last + fretwork_segments_x)
|
||||
from_top = 1;
|
||||
|
||||
// Very very few cases will reach this, segments are joining by the corner
|
||||
// We need to add a new segment to join by side, adding clockwise
|
||||
else if (segment == fretwork_segment_modified_last + fretwork_segments_x + 1)
|
||||
{
|
||||
from_top_left = 1;
|
||||
fretwork_segment_to_add = segment - fretwork_segments_x;
|
||||
}
|
||||
else if (segment == fretwork_segment_modified_last + fretwork_segments_x - 1)
|
||||
{
|
||||
from_top_right = 1;
|
||||
fretwork_segment_to_add = segment + 1;
|
||||
}
|
||||
else if (segment == fretwork_segment_modified_last - fretwork_segments_x - 1)
|
||||
{
|
||||
from_bottom_right = 1;
|
||||
fretwork_segment_to_add = segment + fretwork_segments_x;
|
||||
}
|
||||
else if (segment == fretwork_segment_modified_last - fretwork_segments_x + 1)
|
||||
{
|
||||
from_bottom_left = 1;
|
||||
fretwork_segment_to_add = segment - 1;
|
||||
}
|
||||
// Very very few cases will reach this, segments are joining by the corner
|
||||
// We need to add a new segment to join by side, adding clockwise
|
||||
else if (segment ==
|
||||
fretwork_segment_modified_last + fretwork_segments_x + 1)
|
||||
{
|
||||
from_top_left = 1;
|
||||
fretwork_segment_to_add = segment - fretwork_segments_x;
|
||||
}
|
||||
else if (segment ==
|
||||
fretwork_segment_modified_last + fretwork_segments_x - 1)
|
||||
{
|
||||
from_top_right = 1;
|
||||
fretwork_segment_to_add = segment + 1;
|
||||
}
|
||||
else if (segment ==
|
||||
fretwork_segment_modified_last - fretwork_segments_x - 1)
|
||||
{
|
||||
from_bottom_right = 1;
|
||||
fretwork_segment_to_add = segment + fretwork_segments_x;
|
||||
}
|
||||
else if (segment ==
|
||||
fretwork_segment_modified_last - fretwork_segments_x + 1)
|
||||
{
|
||||
from_bottom_left = 1;
|
||||
fretwork_segment_to_add = segment - 1;
|
||||
}
|
||||
}
|
||||
|
||||
take_up = segment - fretwork_segments_x;
|
||||
if (take_up <= 0)
|
||||
|
|
@ -424,7 +473,7 @@ static Uint8 fretwork_select_image(Uint16 segment)
|
|||
val_up = fretwork_status_of_segments[take_up];
|
||||
|
||||
take_down = segment + fretwork_segments_x;
|
||||
if (take_down > (signed)(fretwork_segments_x * fretwork_segments_y))
|
||||
if (take_down > (signed) (fretwork_segments_x * fretwork_segments_y))
|
||||
val_down = SEG_NONE;
|
||||
else
|
||||
val_down = fretwork_status_of_segments[take_down];
|
||||
|
|
@ -440,9 +489,9 @@ static Uint8 fretwork_select_image(Uint16 segment)
|
|||
val_right = fretwork_status_of_segments[segment + 1];
|
||||
|
||||
if (from_left || (val_left & SEG_RIGHT) || from_bottom_left)
|
||||
{
|
||||
LEFT = 1;
|
||||
}
|
||||
{
|
||||
LEFT = 1;
|
||||
}
|
||||
if (from_right || (val_right & SEG_LEFT) || from_top_right)
|
||||
RIGHT = 1;
|
||||
if (from_top || (val_up & SEG_BOTTOM) || from_top_left)
|
||||
|
|
@ -480,8 +529,10 @@ static Uint8 fretwork_select_image(Uint16 segment)
|
|||
}
|
||||
|
||||
|
||||
static void fretwork_draw(void *ptr, int which ATTRIBUTE_UNUSED, SDL_Surface * canvas,
|
||||
SDL_Surface * last ATTRIBUTE_UNUSED, int x, int y ATTRIBUTE_UNUSED, unsigned int segment)
|
||||
static void fretwork_draw(void *ptr, int which ATTRIBUTE_UNUSED,
|
||||
SDL_Surface * canvas,
|
||||
SDL_Surface * last ATTRIBUTE_UNUSED, int x,
|
||||
int y ATTRIBUTE_UNUSED, unsigned int segment)
|
||||
{
|
||||
magic_api *api = (magic_api *) ptr;
|
||||
SDL_Surface *result, *temp;
|
||||
|
|
@ -491,7 +542,8 @@ static void fretwork_draw(void *ptr, int which ATTRIBUTE_UNUSED, SDL_Surface * c
|
|||
use_temp = 0;
|
||||
if ((segment < 1) | (segment > fretwork_segments_x * fretwork_segments_y))
|
||||
return;
|
||||
fretwork_extract_coords_from_segment(segment, &modification_rect.x, &modification_rect.y);
|
||||
fretwork_extract_coords_from_segment(segment, &modification_rect.x,
|
||||
&modification_rect.y);
|
||||
modification_rect.h = img_w;
|
||||
modification_rect.w = img_h;
|
||||
|
||||
|
|
@ -502,73 +554,81 @@ static void fretwork_draw(void *ptr, int which ATTRIBUTE_UNUSED, SDL_Surface * c
|
|||
|
||||
fretwork_status_of_segments[segment] = image; //and write it to global table
|
||||
|
||||
result = SDL_CreateRGBSurface(SDL_SWSURFACE, img_w, img_h, fretwork_one->format->BitsPerPixel,
|
||||
fretwork_one->format->Rmask, fretwork_one->format->Gmask, fretwork_one->format->Bmask,
|
||||
fretwork_one->format->Amask);
|
||||
result =
|
||||
SDL_CreateRGBSurface(SDL_SWSURFACE, img_w, img_h,
|
||||
fretwork_one->format->BitsPerPixel,
|
||||
fretwork_one->format->Rmask,
|
||||
fretwork_one->format->Gmask,
|
||||
fretwork_one->format->Bmask,
|
||||
fretwork_one->format->Amask);
|
||||
|
||||
temp = SDL_CreateRGBSurface(SDL_SWSURFACE, img_w, img_h, fretwork_one->format->BitsPerPixel,
|
||||
fretwork_one->format->Rmask, fretwork_one->format->Gmask, fretwork_one->format->Bmask,
|
||||
fretwork_one->format->Amask);
|
||||
temp =
|
||||
SDL_CreateRGBSurface(SDL_SWSURFACE, img_w, img_h,
|
||||
fretwork_one->format->BitsPerPixel,
|
||||
fretwork_one->format->Rmask,
|
||||
fretwork_one->format->Gmask,
|
||||
fretwork_one->format->Bmask,
|
||||
fretwork_one->format->Amask);
|
||||
|
||||
SDL_BlitSurface(canvas_backup, &modification_rect, result, NULL);
|
||||
|
||||
switch (image)
|
||||
{
|
||||
case 0:
|
||||
case SEG_TOP_BOTTOM:
|
||||
SDL_BlitSurface(canvas_backup, &modification_rect, result, NULL);
|
||||
SDL_BlitSurface(fretwork_one, NULL, result, NULL);
|
||||
break;
|
||||
{
|
||||
case 0:
|
||||
case SEG_TOP_BOTTOM:
|
||||
SDL_BlitSurface(canvas_backup, &modification_rect, result, NULL);
|
||||
SDL_BlitSurface(fretwork_one, NULL, result, NULL);
|
||||
break;
|
||||
|
||||
case SEG_LEFT_RIGHT:
|
||||
SDL_BlitSurface(canvas_backup, &modification_rect, result, NULL);
|
||||
fretwork_rotate(api, temp, fretwork_one, 1);
|
||||
use_temp = 1;
|
||||
break;
|
||||
case SEG_LEFT_RIGHT:
|
||||
SDL_BlitSurface(canvas_backup, &modification_rect, result, NULL);
|
||||
fretwork_rotate(api, temp, fretwork_one, 1);
|
||||
use_temp = 1;
|
||||
break;
|
||||
|
||||
case SEG_LEFT_RIGHT_TOP_BOTTOM:
|
||||
SDL_BlitSurface(canvas_backup, &modification_rect, result, NULL);
|
||||
SDL_BlitSurface(fretwork_four, NULL, result, NULL);
|
||||
break;
|
||||
case SEG_LEFT_RIGHT_TOP_BOTTOM:
|
||||
SDL_BlitSurface(canvas_backup, &modification_rect, result, NULL);
|
||||
SDL_BlitSurface(fretwork_four, NULL, result, NULL);
|
||||
break;
|
||||
|
||||
case SEG_LEFT_RIGHT_TOP:
|
||||
SDL_BlitSurface(fretwork_three, NULL, result, NULL);
|
||||
break;
|
||||
case SEG_LEFT_RIGHT_TOP:
|
||||
SDL_BlitSurface(fretwork_three, NULL, result, NULL);
|
||||
break;
|
||||
|
||||
case SEG_LEFT_RIGHT_BOTTOM:
|
||||
fretwork_flip_flop(api, temp, fretwork_three);
|
||||
use_temp = 1;
|
||||
break;
|
||||
case SEG_LEFT_RIGHT_BOTTOM:
|
||||
fretwork_flip_flop(api, temp, fretwork_three);
|
||||
use_temp = 1;
|
||||
break;
|
||||
|
||||
case SEG_LEFT_TOP_BOTTOM:
|
||||
fretwork_rotate(api, temp, fretwork_three, 0);
|
||||
use_temp = 1;
|
||||
break;
|
||||
case SEG_LEFT_TOP_BOTTOM:
|
||||
fretwork_rotate(api, temp, fretwork_three, 0);
|
||||
use_temp = 1;
|
||||
break;
|
||||
|
||||
case SEG_RIGHT_TOP_BOTTOM:
|
||||
fretwork_rotate(api, temp, fretwork_three, 1);
|
||||
use_temp = 1;
|
||||
break;
|
||||
case SEG_RIGHT_TOP_BOTTOM:
|
||||
fretwork_rotate(api, temp, fretwork_three, 1);
|
||||
use_temp = 1;
|
||||
break;
|
||||
|
||||
case SEG_RIGHT_TOP:
|
||||
SDL_BlitSurface(fretwork_corner, NULL, result, NULL);
|
||||
break;
|
||||
case SEG_RIGHT_TOP:
|
||||
SDL_BlitSurface(fretwork_corner, NULL, result, NULL);
|
||||
break;
|
||||
|
||||
case SEG_RIGHT_BOTTOM:
|
||||
fretwork_rotate(api, temp, fretwork_corner, 1);
|
||||
use_temp = 1;
|
||||
break;
|
||||
case SEG_RIGHT_BOTTOM:
|
||||
fretwork_rotate(api, temp, fretwork_corner, 1);
|
||||
use_temp = 1;
|
||||
break;
|
||||
|
||||
case SEG_LEFT_TOP:
|
||||
fretwork_rotate(api, temp, fretwork_corner, 0);
|
||||
use_temp = 1;
|
||||
break;
|
||||
case SEG_LEFT_TOP:
|
||||
fretwork_rotate(api, temp, fretwork_corner, 0);
|
||||
use_temp = 1;
|
||||
break;
|
||||
|
||||
case SEG_LEFT_BOTTOM:
|
||||
fretwork_flip_flop(api, temp, fretwork_corner);
|
||||
use_temp = 1;
|
||||
break;
|
||||
}
|
||||
case SEG_LEFT_BOTTOM:
|
||||
fretwork_flip_flop(api, temp, fretwork_corner);
|
||||
use_temp = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (use_temp)
|
||||
SDL_BlitSurface(temp, NULL, result, NULL);
|
||||
|
|
@ -580,58 +640,67 @@ static void fretwork_draw(void *ptr, int which ATTRIBUTE_UNUSED, SDL_Surface * c
|
|||
}
|
||||
|
||||
|
||||
static void fretwork_draw_wrapper(void *ptr, int which, SDL_Surface * canvas, SDL_Surface * last, int x, int y)
|
||||
static void fretwork_draw_wrapper(void *ptr, int which, SDL_Surface * canvas,
|
||||
SDL_Surface * last, int x, int y)
|
||||
{
|
||||
fretwork_segment_modified = fretwork_get_segment(x, y);
|
||||
|
||||
fretwork_draw((void *)ptr, which, canvas, last, x, y, fretwork_segment_modified);
|
||||
fretwork_draw((void *) ptr, which, canvas, last, x, y,
|
||||
fretwork_segment_modified);
|
||||
|
||||
if (fretwork_segment_modified_last > 0)
|
||||
|
||||
{
|
||||
fretwork_draw((void *)ptr, which, canvas, last, x, y, fretwork_segment_modified_last);
|
||||
fretwork_extract_coords_from_segment(fretwork_segment_start_rectangle, &modification_rect.x,
|
||||
&modification_rect.y);
|
||||
modification_rect.w = fretwork_update_rectangle_width * img_w;
|
||||
modification_rect.h = fretwork_update_rectangle_height * img_h;
|
||||
}
|
||||
{
|
||||
fretwork_draw((void *) ptr, which, canvas, last, x, y,
|
||||
fretwork_segment_modified_last);
|
||||
fretwork_extract_coords_from_segment(fretwork_segment_start_rectangle,
|
||||
&modification_rect.x,
|
||||
&modification_rect.y);
|
||||
modification_rect.w = fretwork_update_rectangle_width * img_w;
|
||||
modification_rect.h = fretwork_update_rectangle_height * img_h;
|
||||
}
|
||||
|
||||
if (fretwork_segment_to_add > 0)
|
||||
{
|
||||
fretwork_draw((void *)ptr, which, canvas, last, x, y, fretwork_segment_to_add);
|
||||
fretwork_draw((void *)ptr, which, canvas, last, x, y, fretwork_segment_modified_last);
|
||||
fretwork_segment_to_add = 0;
|
||||
}
|
||||
{
|
||||
fretwork_draw((void *) ptr, which, canvas, last, x, y,
|
||||
fretwork_segment_to_add);
|
||||
fretwork_draw((void *) ptr, which, canvas, last, x, y,
|
||||
fretwork_segment_modified_last);
|
||||
fretwork_segment_to_add = 0;
|
||||
}
|
||||
|
||||
fretwork_segment_modified_last = fretwork_segment_modified;
|
||||
}
|
||||
|
||||
void fretwork_drag(magic_api * api, int which,
|
||||
SDL_Surface * canvas, SDL_Surface * snapshot, int ox, int oy, int x, int y, SDL_Rect * update_rect)
|
||||
SDL_Surface * canvas, SDL_Surface * snapshot, int ox,
|
||||
int oy, int x, int y, SDL_Rect * update_rect)
|
||||
{
|
||||
int start_x, end_x, start_y, end_y, segment_start, segment_end, w, h;
|
||||
|
||||
if ((x < canvas->w) && (y < canvas->h) && (ox < canvas->w) && (oy < canvas->h) && ((signed)x > 0) && ((signed)y > 0)
|
||||
&& ((signed)ox > 0) && ((signed)oy > 0))
|
||||
{
|
||||
api->line((void *)api, which, canvas, snapshot, ox, oy, x, y, img_w / 2, fretwork_draw_wrapper);
|
||||
// This should be improved, maybe passed to fretwork_draw()
|
||||
start_x = min(ox, x);
|
||||
end_x = max(ox, x);
|
||||
start_y = min(oy, y);
|
||||
end_y = max(oy, y);
|
||||
segment_start = fretwork_get_segment(start_x - img_w, start_y - img_h);
|
||||
segment_end = fretwork_get_segment(end_x + img_w, end_y + img_h);
|
||||
if ((x < canvas->w) && (y < canvas->h) && (ox < canvas->w)
|
||||
&& (oy < canvas->h) && ((signed) x > 0) && ((signed) y > 0)
|
||||
&& ((signed) ox > 0) && ((signed) oy > 0))
|
||||
{
|
||||
api->line((void *) api, which, canvas, snapshot, ox, oy, x, y, img_w / 2,
|
||||
fretwork_draw_wrapper);
|
||||
// This should be improved, maybe passed to fretwork_draw()
|
||||
start_x = min(ox, x);
|
||||
end_x = max(ox, x);
|
||||
start_y = min(oy, y);
|
||||
end_y = max(oy, y);
|
||||
segment_start = fretwork_get_segment(start_x - img_w, start_y - img_h);
|
||||
segment_end = fretwork_get_segment(end_x + img_w, end_y + img_h);
|
||||
|
||||
x = ((segment_start % fretwork_segments_x) - 1) * img_w;
|
||||
y = (int)(segment_start / fretwork_segments_x) * img_h;
|
||||
w = ((segment_end % fretwork_segments_x) - 1) * img_w - x + img_w;
|
||||
h = (int)(segment_end / fretwork_segments_x) * img_h - y + img_h;
|
||||
x = ((segment_start % fretwork_segments_x) - 1) * img_w;
|
||||
y = (int) (segment_start / fretwork_segments_x) * img_h;
|
||||
w = ((segment_end % fretwork_segments_x) - 1) * img_w - x + img_w;
|
||||
h = (int) (segment_end / fretwork_segments_x) * img_h - y + img_h;
|
||||
|
||||
update_rect->x = x;
|
||||
update_rect->y = y;
|
||||
update_rect->w = w;
|
||||
update_rect->h = h;
|
||||
}
|
||||
update_rect->x = x;
|
||||
update_rect->y = y;
|
||||
update_rect->w = w;
|
||||
update_rect->h = h;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue