-void setElementChangePages(struct ElementInfo *ei, int change_pages)
-{
- int change_page_size = sizeof(struct ElementChangeInfo);
-
- ei->num_change_pages = MAX(1, change_pages);
-
- ei->change_page =
- checked_realloc(ei->change_page, ei->num_change_pages * change_page_size);
-
- if (ei->current_change_page >= ei->num_change_pages)
- ei->current_change_page = ei->num_change_pages - 1;
-
- ei->change = &ei->change_page[ei->current_change_page];
-}
-
-void setElementChangeInfoToDefaults(struct ElementChangeInfo *eci)
-{
- int x, y;
-
- eci->events = CE_BITMASK_DEFAULT;
- eci->target_element = EL_EMPTY_SPACE;
-
- eci->delay_fixed = 0;
- eci->delay_random = 0;
- eci->delay_frames = -1; /* later set to reliable default value */
-
- eci->trigger_element = EL_EMPTY_SPACE;
-
- eci->explode = FALSE;
- eci->use_content = FALSE;
- eci->only_complete = FALSE;
- eci->use_random_change = FALSE;
- eci->random = 0;
- eci->power = CP_NON_DESTRUCTIVE;
-
- for(x=0; x<3; x++)
- for(y=0; y<3; y++)
- eci->content[x][y] = EL_EMPTY_SPACE;
-
- eci->player_action = 0;
- eci->collide_action = 0;
- eci->other_action = 0;
-
- eci->pre_change_function = NULL;
- eci->change_function = NULL;
- eci->post_change_function = NULL;
-}
-