void InitImageTextures(void)
{
+ static int texture_graphics[] =
+ {
+ IMG_GFX_REQUEST_BUTTON_TOUCH_YES,
+ IMG_GFX_REQUEST_BUTTON_TOUCH_NO,
+ IMG_GFX_REQUEST_BUTTON_TOUCH_CONFIRM,
+ IMG_GFX_GAME_BUTTON_TOUCH_STOP,
+ IMG_GFX_GAME_BUTTON_TOUCH_PAUSE,
+ IMG_MENU_BUTTON_TOUCH_BACK,
+ IMG_MENU_BUTTON_TOUCH_NEXT,
+ IMG_MENU_BUTTON_TOUCH_BACK2,
+ IMG_MENU_BUTTON_TOUCH_NEXT2,
+ -1
+ };
int i, j, k;
FreeAllImageTextures();
}
}
}
-}
-#if 1
-// !!! FIX THIS (CHANGE TO USING NORMAL ELEMENT GRAPHIC DEFINITIONS) !!!
-void SetBitmaps_EM(Bitmap **em_bitmap)
-{
- em_bitmap[0] = graphic_info[IMG_EMC_OBJECT].bitmap;
- em_bitmap[1] = graphic_info[IMG_EMC_SPRITE].bitmap;
+ for (i = 0; texture_graphics[i] > -1; i++)
+ CreateImageTextures(texture_graphics[i]);
}
-#endif
-
-#if 0
-// !!! FIX THIS (CHANGE TO USING NORMAL ELEMENT GRAPHIC DEFINITIONS) !!!
-void SetBitmaps_SP(Bitmap **sp_bitmap)
-{
- *sp_bitmap = graphic_info[IMG_SP_OBJECTS].bitmap;
-}
-#endif
static int getFontBitmapID(int font_nr)
{
g->clone_from = -1; // do not use clone graphic
g->init_delay_fixed = 0;
g->init_delay_random = 0;
+ g->init_delay_action = -1;
g->anim_delay_fixed = 0;
g->anim_delay_random = 0;
+ g->anim_delay_action = -1;
g->post_delay_fixed = 0;
g->post_delay_random = 0;
+ g->post_delay_action = -1;
g->init_event = ANIM_EVENT_UNDEFINED;
g->anim_event = ANIM_EVENT_UNDEFINED;
g->init_event_action = -1;
g->fade_delay = -1;
g->post_delay = -1;
g->auto_delay = -1;
+ g->auto_delay_unit = AUTO_DELAY_UNIT_DEFAULT;
g->align = ALIGN_CENTER; // default for title screens
g->valign = VALIGN_MIDDLE; // default for title screens
g->sort_priority = 0; // default for title screens
else
g->anim_frames = 1;
- if (g->anim_frames == 0) // frames must be at least 1
+ if (g->anim_frames < 1) // frames must be at least 1
g->anim_frames = 1;
g->anim_frames_per_line =
parameter[GFX_ARG_FRAMES_PER_LINE] : anim_frames_per_line);
g->anim_delay = parameter[GFX_ARG_DELAY];
- if (g->anim_delay == 0) // delay must be at least 1
+ if (g->anim_delay < 1) // delay must be at least 1
g->anim_delay = 1;
g->anim_mode = parameter[GFX_ARG_ANIM_MODE];
g->init_event_action = parameter[GFX_ARG_INIT_EVENT_ACTION];
if (parameter[GFX_ARG_ANIM_EVENT_ACTION] != ARG_UNDEFINED_VALUE)
g->anim_event_action = parameter[GFX_ARG_ANIM_EVENT_ACTION];
+ if (parameter[GFX_ARG_INIT_DELAY_ACTION] != ARG_UNDEFINED_VALUE)
+ g->init_delay_action = parameter[GFX_ARG_INIT_DELAY_ACTION];
+ if (parameter[GFX_ARG_ANIM_DELAY_ACTION] != ARG_UNDEFINED_VALUE)
+ g->anim_delay_action = parameter[GFX_ARG_ANIM_DELAY_ACTION];
+ if (parameter[GFX_ARG_POST_DELAY_ACTION] != ARG_UNDEFINED_VALUE)
+ g->post_delay_action = parameter[GFX_ARG_POST_DELAY_ACTION];
// used for toon animations and global animations
g->step_offset = parameter[GFX_ARG_STEP_OFFSET];
g->x = parameter[GFX_ARG_X]; // (may be uninitialized,
g->y = parameter[GFX_ARG_Y]; // unlike src_x and src_y)
+ if (g->step_delay < 1) // delay must be at least 1
+ g->step_delay = 1;
+
// this is only used for drawing font characters
g->draw_xoffset = parameter[GFX_ARG_DRAW_XOFFSET];
g->draw_yoffset = parameter[GFX_ARG_DRAW_YOFFSET];
g->post_delay = parameter[GFX_ARG_POST_DELAY];
if (parameter[GFX_ARG_AUTO_DELAY] != ARG_UNDEFINED_VALUE)
g->auto_delay = parameter[GFX_ARG_AUTO_DELAY];
+ if (parameter[GFX_ARG_AUTO_DELAY_UNIT] != ARG_UNDEFINED_VALUE)
+ g->auto_delay_unit = parameter[GFX_ARG_AUTO_DELAY_UNIT];
if (parameter[GFX_ARG_ALIGN] != ARG_UNDEFINED_VALUE)
g->align = parameter[GFX_ARG_ALIGN];
if (parameter[GFX_ARG_VALIGN] != ARG_UNDEFINED_VALUE)
EL_BOMB,
EL_NUT,
EL_AMOEBA_DROP,
+ EL_AMOEBA_DROPPING,
EL_QUICKSAND_FULL,
EL_QUICKSAND_FAST_FULL,
EL_MAGIC_WALL_FULL,
InitVideoBuffer(WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH, setup.fullscreen);
InitVideoOverlay();
+ InitEventFilter(FilterMouseMotionEvents);
+
print_timestamp_time("[init video stuff]");
InitElementPropertiesStatic();