#define BUTTON_1 4
#define BUTTON_2 5
+/* values for special "focus player" bitmasks */
+#define BIT_SET_FOCUS 6
+
/* values for move directions and special "button" key bitmasks */
#define MV_NONE 0
#define MV_LEFT (1 << MV_BIT_LEFT)
#define KEY_BUTTON (KEY_BUTTON_1 | KEY_BUTTON_2)
#define KEY_ACTION (KEY_MOTION | KEY_BUTTON)
+#define KEY_SET_FOCUS (1 << BIT_SET_FOCUS)
+
#define MV_DIR_FROM_BIT(x) ((x) < NUM_DIRECTIONS ? 1 << (x) : \
(x) == MV_BIT_UPLEFT ? MV_UPLEFT : \
(x) == MV_BIT_UPRIGHT ? MV_UPRIGHT : \
#define ANIM_CE_VALUE (1 << 5)
#define ANIM_CE_SCORE (1 << 6)
#define ANIM_REVERSE (1 << 7)
+#define ANIM_OPAQUE_PLAYER (1 << 8)
/* values for special (non game element) animation modes */
-#define ANIM_HORIZONTAL (1 << 8)
-#define ANIM_VERTICAL (1 << 9)
-#define ANIM_STATIC_PANEL (1 << 10)
+#define ANIM_HORIZONTAL (1 << 9)
+#define ANIM_VERTICAL (1 << 10)
+#define ANIM_STATIC_PANEL (1 << 11)
#define ANIM_DEFAULT ANIM_LOOP
#define CURSOR_DEFAULT 0
#define CURSOR_PLAYFIELD 1
+/* fundamental game speed values */
+#define ONE_SECOND_DELAY 1000 /* delay value for one second */
+#define GAME_FRAME_DELAY 20 /* frame delay in milliseconds */
+#define FFWD_FRAME_DELAY 10 /* 200% speed for fast forward */
+#define FRAMES_PER_SECOND (ONE_SECOND_DELAY / GAME_FRAME_DELAY)
/* maximum playfield size supported by libgame functions */
#define MAX_PLAYFIELD_WIDTH 128
#define ARTWORK_FIRST_NODE(artwork, type) \
((type) == ARTWORK_TYPE_GRAPHICS ? \
- (artwork).gfx_first : \
+ (artwork).gfx_first : \
(type) == ARTWORK_TYPE_SOUNDS ? \
- (artwork).snd_first : \
+ (artwork).snd_first : \
(artwork).mus_first)
#define ARTWORK_CURRENT_IDENTIFIER_PTR(artwork, type) \
struct FontBitmapInfo
{
Bitmap *bitmap;
+
int src_x, src_y; /* start position of animation frames */
int width, height; /* width/height of each animation frame */
- int draw_x, draw_y; /* offset for drawing font characters */
+
+ int draw_xoffset; /* offset for drawing font characters */
+ int draw_yoffset; /* offset for drawing font characters */
+
int num_chars;
int num_chars_per_line;
boolean el_dynamic;
boolean el_headlines;
+
+ boolean show_element_token;
};
struct SetupEditorCascadeInfo
boolean ask_on_escape;
boolean ask_on_escape_editor;
boolean quick_switch;
+ boolean input_on_focus;
+ boolean prefer_aga_graphics;
char *graphics_set;
char *sounds_set;
char *imported_from; /* optional comment for imported levels or artwork */
char *imported_by; /* optional comment for imported levels or artwork */
+ char *graphics_set_ecs; /* special EMC custom graphics set (ECS graphics) */
+ char *graphics_set_aga; /* special EMC custom graphics set (AGA graphics) */
char *graphics_set; /* optional custom graphics set (level tree only) */
char *sounds_set; /* optional custom sounds set (level tree only) */
char *music_set; /* optional custom music set (level tree only) */
Bitmap *ZoomBitmap(Bitmap *, int, int);
void CreateBitmapWithSmallBitmaps(Bitmap *, int);
+void ScaleBitmap(Bitmap *, int);
void SetMouseCursor(int);