-#else
-
-void getGraphicSourceObjectExt_EM(int tile, int frame_em,
- Bitmap **src_bitmap, int *src_x, int *src_y,
- Bitmap **crumbled_src_bitmap,
- int *crumbled_src_x, int *crumbled_src_y,
- int x, int y)
-{
- int element = object_mapping[tile].element_rnd;
- int action = object_mapping[tile].action;
- int direction = object_mapping[tile].direction;
- boolean is_backside = object_mapping[tile].is_backside;
- boolean action_removing = (action == ACTION_DIGGING ||
- action == ACTION_SNAPPING ||
- action == ACTION_COLLECTING);
- int effective_element = (frame_em > 0 ? element :
- is_backside ? EL_EMPTY :
- action_removing ? EL_EMPTY :
- element);
- int graphic = (direction == MV_NONE ?
- el_act2img(effective_element, action) :
- el_act_dir2img(effective_element, action, direction));
- int crumbled = (direction == MV_NONE ?
- el_act2crm(effective_element, action) :
- el_act_dir2crm(effective_element, action, direction));
- int base_graphic = el_act2img(effective_element, ACTION_DEFAULT);
- int base_crumbled = el_act2crm(effective_element, ACTION_DEFAULT);
- boolean has_crumbled_graphics = (base_crumbled != base_graphic);
- struct GraphicInfo *g = &graphic_info[graphic];
- struct GraphicInfo *g_crumbled = &graphic_info[crumbled];
- int sync_frame;
-
-#if 0
- printf("::: GET: %d, %d: '%s'\n", x, y, EL_NAME(element));
-#endif
-
-#if 0
- if (GfxFrame[x][y] < 8)
- printf("::: %d, %d: %d [%s]\n", x, y, GfxFrame[x][y], EL_NAME(element));
-#endif
-
-#if 1
- if (frame_em == 7) /* reset animation frame for certain elements */
- {
- if (tile == Xboom_1 ||
- tile == Ybug_w_n ||
- tile == Ybug_n_e ||
- tile == Ybug_e_s ||
- tile == Ybug_s_w ||
- tile == Ybug_e_n ||
- tile == Ybug_s_e ||
- tile == Ybug_w_s ||
- tile == Ybug_n_w ||
- tile == Ytank_w_n ||
- tile == Ytank_n_e ||
- tile == Ytank_e_s ||
- tile == Ytank_s_w ||
- tile == Ytank_e_n ||
- tile == Ytank_s_e ||
- tile == Ytank_w_s ||
- tile == Ytank_n_w)
- GfxFrame[x][y] = 0;
- }
-#endif
-
-#if 1
- if (graphic_info[graphic].anim_global_sync)
- sync_frame = FrameCounter;
- else if (IN_FIELD(x, y, MAX_LEV_FIELDX, MAX_LEV_FIELDY))
- sync_frame = GfxFrame[x][y];
- else
- sync_frame = 0; /* steel border */
-#else
- if (graphic_info[graphic].anim_global_sync)
- sync_frame = FrameCounter;
- else
- sync_frame = 7 - frame_em;
-#endif
-
- SetRandomAnimationValue(x, y);
-
- int frame = getAnimationFrame(g->anim_frames,
- g->anim_delay,
- g->anim_mode,
- g->anim_start_frame,
- sync_frame);
-
-#if 0
- if (graphic == IMG_DEFAULT_EXPLODING)
- printf("::: IMG_DEFAULT_EXPLODING: (%d, %d), %d => %d [%d]\n",
- tile, frame_em, sync_frame, frame, Xboom_1);
-#endif
-
- getGraphicSourceExt(graphic, frame, src_bitmap, src_x, src_y, FALSE);
-
-#if 0
- if (x == 1 && y == 1 && frame == 0)
- printf("--> %d, %d, %d\n", *crumbled_src_x, *crumbled_src_y, tile);
-#endif
-
-#if 0
- getGraphicSource(crumbled, frame, crumbled_src_bitmap,
- crumbled_src_x, crumbled_src_y);
-#endif
-
-#if 1
- /* (updating the "crumbled" graphic definitions is probably not really needed,
- as animations for crumbled graphics can't be longer than one EMC cycle) */
-
- *crumbled_src_bitmap = NULL;
- *crumbled_src_x = 0;
- *crumbled_src_y = 0;
-
- if (has_crumbled_graphics && crumbled != IMG_EMPTY_SPACE)
- {
- int frame_crumbled = getAnimationFrame(g_crumbled->anim_frames,
- g_crumbled->anim_delay,
- g_crumbled->anim_mode,
- g_crumbled->anim_start_frame,
- sync_frame);
-
- getGraphicSource(crumbled, frame_crumbled, crumbled_src_bitmap,
- crumbled_src_x, crumbled_src_y);
- }
-#endif
-}
-
-#endif
-
-void getGraphicSourcePlayerExt_EM(int player_nr, int anim, int frame_em,
- Bitmap **src_bitmap, int *src_x, int *src_y)