22#ifndef MADS_CORE_MAGIC_H
23#define MADS_CORE_MAGIC_H
25#include "mads/core/general.h"
29#define MAGIC_LOWER_LEFT 1
30#define MAGIC_LOWER_RIGHT 2
31#define MAGIC_UPPER_LEFT 3
32#define MAGIC_UPPER_RIGHT 4
37#define MAGIC_IMMEDIATE 0
38#define MAGIC_THRU_BLACK 1
39#define MAGIC_SECRET_FUJI 2
41#define MAGIC_SWAP_BACKGROUND 0
42#define MAGIC_SWAP_FOREGROUND 1
57extern byte magic_color_flags[3];
58extern byte magic_color_values[3];
59extern int magic_low_fade_bound;
60extern int magic_high_fade_bound;
61extern int magic_special_center_x;
62extern int magic_special_center_y;
65extern void magic_get_grey_values(
Palette *pal,
byte *grey_value,
66 int base_color,
int num_colors);
67extern void magic_grey_palette(
Palette *pal);
78extern void magic_grey_popularity(
byte *grey_list,
byte *grey_table,
int num_colors);
79extern void magic_set_color_flags(
byte r,
byte g,
byte b);
80extern void magic_set_color_values(
byte r,
byte g,
byte b);
81extern void magic_map_to_grey_ramp(
Palette *pal,
int base_color,
int num_colors,
83extern void magic_grey_ramp_palette(
Palette &pal,
int num_greys);
87extern void magic_wait_for_fade_start(
long *completion_deadline,
int steps,
88 int fade_step_rate,
int minimum_black_ticks);
89extern void magic_fade_to_grey(
Palette &pal,
byte *map_pointer,
90 int base_color,
int num_colors,
int base_grey,
int num_greys,
91 int tick_delay,
int steps,
int fade_step_rate = 0);
95extern void magic_fade_from_grey(
RGBcolor *pal,
Palette target,
int base_color,
96 int num_colors,
int base_grey,
int num_greys,
int tick_delay,
int steps,
97 int fade_step_rate = 0,
long *completion_deadline =
nullptr,
98 int minimum_black_ticks = 0);
116extern void magic_screen_change_corner(
Buffer *new_screen,
Palette &pal,
int corner_id,
117 int buffer_base_x,
int buffer_base_y,
int screen_base_x,
int screen_base_y,
118 int thru_black,
int set_palette,
int tick_delay);
135extern void magic_screen_change_edge(
Buffer *new_screen,
Palette &pal,
int edge_id,
136 int buffer_base_x,
int buffer_base_y,
int screen_base_x,
int screen_base_y,
137 int thru_black,
int set_palette,
int tick_delay);
156extern void magic_screen_change_circle(
Buffer *new_screen,
Palette &pal,
157 int inward_flag,
int buffer_base_x,
int buffer_base_y,
158 int screen_base_x,
int screen_base_y,
int thru_black,
int set_palette,
159 int tick_delay,
int pixel_rate);
160extern void magic_shrink_buffer(
Buffer *from,
Buffer *unto);
161extern int magic_shrinking_buffer(
Buffer *source,
Buffer *rear,
int grow_flag,
162 int buffer_base_x,
int buffer_base_y,
int screen_base_x,
int screen_base_y,
164extern void magic_swap_me_in_the_dark_baby(
byte *swap,
Palette &pal,
int start);
165extern void magic_swap_foreground(
byte *background_table,
Palette background_palette);
173extern int magic_closest_color(
RGBcolor *match_color,
byte *list,
int list_wrap,
179extern int magic_hash_color(
RGBcolor *hash_color);
Definition: atari-screen.h:42