action = -1;
}
+ // for BD effect editor graphics, replace element with effect element, if exists
+ if (action != -1 && special == GFX_SPECIAL_ARG_EDITOR)
+ {
+ int element_bd = map_element_RND_to_BD_effect(element, action);
+ int element_ef = map_element_BD_to_RND_cave(element_bd);
+
+ if (element_ef != EL_UNKNOWN)
+ {
+ element = element_ef;
+ action = -1;
+ }
+ }
+
if (element >= MAX_NUM_ELEMENTS)
continue;
// optionally, the second movement tile can be specified as start tile
if (parameter[GFX_ARG_2ND_SWAP_TILES] != ARG_UNDEFINED_VALUE)
- g->swap_double_tiles= parameter[GFX_ARG_2ND_SWAP_TILES];
+ g->swap_double_tiles = parameter[GFX_ARG_2ND_SWAP_TILES];
// automatically determine correct number of frames, if not defined
if (parameter[GFX_ARG_FRAMES] != ARG_UNDEFINED_VALUE)
InitImageTextures(); // create textures for certain images
print_timestamp_time("InitImageTextures");
+ InitGraphicInfo_BD(); // graphic mapping for BD engine
+ print_timestamp_time("InitGraphicInfo_BD");
InitGraphicInfo_EM(); // graphic mapping for EM engine
print_timestamp_time("InitGraphicInfo_EM");
EL_AMOEBA_DRY,
EL_AMOEBA_FULL,
EL_BD_AMOEBA,
+ EL_BD_AMOEBA_2,
+ EL_BD_SLIME,
+ EL_BD_ACID,
+ EL_BD_BITER,
+ EL_BD_BITER_RIGHT,
+ EL_BD_BITER_UP,
+ EL_BD_BITER_LEFT,
+ EL_BD_BITER_DOWN,
+ EL_BD_BLADDER,
+ EL_BD_NUT,
EL_EMC_MAGIC_BALL,
EL_EMC_ANDROID,
EL_MM_GRAY_BALL,
{
EL_INTERNAL_CASCADE_BD_ACTIVE,
EL_INTERNAL_CASCADE_BD_NATIVE_ACTIVE,
+ EL_INTERNAL_CASCADE_BD_EFFECTS_ACTIVE,
EL_INTERNAL_CASCADE_EM_ACTIVE,
EL_INTERNAL_CASCADE_EMC_ACTIVE,
EL_INTERNAL_CASCADE_RND_ACTIVE,
{
EL_INTERNAL_CASCADE_BD,
EL_INTERNAL_CASCADE_BD_NATIVE,
+ EL_INTERNAL_CASCADE_BD_EFFECTS,
EL_INTERNAL_CASCADE_EM,
EL_INTERNAL_CASCADE_EMC,
EL_INTERNAL_CASCADE_RND,
// required if door size definitions have changed
InitGraphicCompatibilityInfo_Doors();
+ InitGfxBuffers_BD();
InitGfxBuffers_EM();
InitGfxBuffers_SP();
InitGfxBuffers_MM();
gfx.override_level_music = FALSE;
// now check if this level set has definitions for custom elements
- if (setup.override_level_graphics == AUTO ||
- setup.override_level_sounds == AUTO ||
- setup.override_level_music == AUTO)
+ if (setup.override_level_graphics == STATE_AUTO ||
+ setup.override_level_sounds == STATE_AUTO ||
+ setup.override_level_music == STATE_AUTO)
redefined_ce_found =
(CheckArtworkTypeForRedefinedCustomElements(ARTWORK_TYPE_GRAPHICS) |
CheckArtworkTypeForRedefinedCustomElements(ARTWORK_TYPE_SOUNDS) |
if (redefined_ce_found)
{
- // this level set has CE definitions: change "AUTO" to "FALSE"
+ // this level set has CE definitions: change "MODE_AUTO" to "FALSE"
gfx.override_level_graphics = (setup.override_level_graphics == TRUE);
gfx.override_level_sounds = (setup.override_level_sounds == TRUE);
gfx.override_level_music = (setup.override_level_music == TRUE);
}
else
{
- // this level set has no CE definitions: change "AUTO" to "TRUE"
+ // this level set has no CE definitions: change "MODE_AUTO" to "TRUE"
gfx.override_level_graphics = (setup.override_level_graphics != FALSE);
gfx.override_level_sounds = (setup.override_level_sounds != FALSE);
gfx.override_level_music = (setup.override_level_music != FALSE);
InitGfxBackground();
+ bd_open_all();
em_open_all();
sp_open_all();
mm_open_all();
FreeAllMusic();
CloseAudio(); // called after freeing sounds (needed for SDL)
+ bd_close_all();
em_close_all();
sp_close_all();