X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=975f1cbce85c7c69d62b4005b1061ad5633c379d;hb=3645fa5ebfa77f03efbf95560bcb3249f3bc1ce4;hp=fd931a67cf5fbd5935eb42ba0414120acc61ad36;hpb=fcff323a32f4c00f2c750eb26560f7fa8f3de5d7;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index fd931a67..975f1cbc 100644 --- a/src/init.c +++ b/src/init.c @@ -1271,6 +1271,19 @@ static void InitElementSpecialGraphicInfo(void) 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; @@ -2446,6 +2459,8 @@ static void ReinitializeGraphics(void) 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"); @@ -4276,6 +4291,16 @@ void InitElementPropertiesStatic(void) 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, @@ -4572,6 +4597,7 @@ void InitElementPropertiesStatic(void) { 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, @@ -4597,6 +4623,7 @@ void InitElementPropertiesStatic(void) { 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, @@ -5727,6 +5754,7 @@ void InitGfxBuffers(void) // required if door size definitions have changed InitGraphicCompatibilityInfo_Doors(); + InitGfxBuffers_BD(); InitGfxBuffers_EM(); InitGfxBuffers_SP(); InitGfxBuffers_MM(); @@ -6628,6 +6656,7 @@ void OpenAll(void) InitGfxBackground(); + bd_open_all(); em_open_all(); sp_open_all(); mm_open_all(); @@ -6746,6 +6775,7 @@ void CloseAllAndExit(int exit_value) FreeAllMusic(); CloseAudio(); // called after freeing sounds (needed for SDL) + bd_close_all(); em_close_all(); sp_close_all();