added new screen fading option ".auto_delay_unit" (currently not used)
[rocksndiamonds.git] / src / init.c
index 3f060862a525d58b3a7c8c6d94cbed331db9f1f5..eb18b6da49da8f47cdd69267a4e5742512550655 100644 (file)
@@ -1297,12 +1297,15 @@ static void set_graphic_parameters_ext(int graphic, int *parameter,
   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->init_event = ANIM_EVENT_DEFAULT;
-  g->anim_event = ANIM_EVENT_DEFAULT;
+  g->post_delay_action = -1;
+  g->init_event = ANIM_EVENT_UNDEFINED;
+  g->anim_event = ANIM_EVENT_UNDEFINED;
   g->init_event_action = -1;
   g->anim_event_action = -1;
   g->draw_masked = FALSE;
@@ -1311,6 +1314,7 @@ static void set_graphic_parameters_ext(int graphic, int *parameter,
   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
@@ -1531,6 +1535,12 @@ static void set_graphic_parameters_ext(int graphic, int *parameter,
     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];
@@ -1572,6 +1582,8 @@ static void set_graphic_parameters_ext(int graphic, int *parameter,
     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)
@@ -1723,6 +1735,8 @@ static void InitGraphicInfo(void)
     -1
   };
 
+  FreeGlobalAnimEventInfo();
+
   checked_free(graphic_info);
 
   graphic_info = checked_calloc(num_images * sizeof(struct GraphicInfo));
@@ -6061,6 +6075,8 @@ void OpenAll(void)
 
   InitNetworkSettings();
 
+  InitRuntimeInfo();
+
   if (network.serveronly)
   {
 #if defined(PLATFORM_UNIX)
@@ -6095,6 +6111,8 @@ void OpenAll(void)
   InitVideoBuffer(WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH, setup.fullscreen);
   InitVideoOverlay();
 
+  InitEventFilter(FilterMouseMotionEvents);
+
   print_timestamp_time("[init video stuff]");
 
   InitElementPropertiesStatic();