2020-08-03 18:45:14 +00:00
|
|
|
|
// Blits the hardcoded diamond, star, or snowflake sprites in the given [col]
|
|
|
|
|
// to the given position.
|
2020-08-20 19:59:45 +00:00
|
|
|
|
void shape8x8_diamond_put(screen_x_t left, vram_y_t top, int col);
|
|
|
|
|
void shape8x8_star_put(screen_x_t left, vram_y_t top, int col);
|
|
|
|
|
void shape8x8_flake_put(screen_x_t left, vram_y_t top, int col);
|
2020-09-25 16:24:33 +00:00
|
|
|
|
|
2021-08-15 16:31:15 +00:00
|
|
|
|
// Blits the given [cel] of the hardcoded invincibility sprites to the given
|
|
|
|
|
// position.
|
|
|
|
|
void shape8x8_invincibility_put(screen_x_t left, vram_y_t top, int cel);
|
|
|
|
|
|
2021-08-15 16:55:14 +00:00
|
|
|
|
// Attempts to unblit a 8×8 sprite, but ends up unblitting a 16×8 rectangle
|
|
|
|
|
// instead.
|
|
|
|
|
#define shape8x8_sloppy_unput(left, top) \
|
2021-09-26 14:46:21 +00:00
|
|
|
|
egc_copy_rect_1_to_0_16_word_w(left, top, 8, 8);
|
2021-08-15 16:55:14 +00:00
|
|
|
|
|
2020-09-25 16:24:33 +00:00
|
|
|
|
void shape_ellipse_arc_put(
|
|
|
|
|
screen_x_t center_x,
|
|
|
|
|
vram_y_t center_y,
|
|
|
|
|
pixel_t radius_x,
|
|
|
|
|
pixel_t radius_y,
|
|
|
|
|
int col,
|
|
|
|
|
unsigned char angle_step,
|
|
|
|
|
unsigned char angle_start,
|
|
|
|
|
unsigned char angle_end
|
|
|
|
|
);
|
2020-09-25 17:08:22 +00:00
|
|
|
|
|
2021-09-19 16:43:34 +00:00
|
|
|
|
#define shape_circle_put(center_x, center_y, radius, col, angle_step) \
|
|
|
|
|
shape_ellipse_arc_put( \
|
|
|
|
|
center_x, center_y, radius, radius, col, angle_step, 0x00, 0xFF \
|
|
|
|
|
);
|
|
|
|
|
|
2020-09-25 17:08:22 +00:00
|
|
|
|
// Makes a sloppy attempt at restoring the pixels along the given ellipse arc
|
|
|
|
|
// from VRAM page 1, but ends up restoring horizontal 16×1 lines along that
|
|
|
|
|
// arc.
|
|
|
|
|
void shape_ellipse_arc_sloppy_unput(
|
|
|
|
|
screen_x_t center_x,
|
|
|
|
|
vram_y_t center_y,
|
|
|
|
|
pixel_t radius_x,
|
|
|
|
|
pixel_t radius_y,
|
|
|
|
|
unsigned char angle_step,
|
|
|
|
|
unsigned char angle_start,
|
|
|
|
|
unsigned char angle_end
|
|
|
|
|
);
|
2021-09-19 16:43:34 +00:00
|
|
|
|
|
|
|
|
|
#define shape_circle_sloppy_unput(center_x, center_y, radius, angle_step) \
|
|
|
|
|
shape_ellipse_arc_sloppy_unput( \
|
|
|
|
|
center_x, center_y, radius, radius, angle_step, 0x00, 0xFF \
|
|
|
|
|
);
|