X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=cf83e5043229b5cef9326927bf2ddd34db6e83f6;hb=3f5f1e9af1b0c10a0b0486c579c55c5e6947807d;hp=48cb8973be387bf5d7d68985b3cfcd9cf2c275ec;hpb=8d7a5267680e5bb2dbe9925e3d20ef32fda0c734;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index 48cb8973..cf83e504 100644 --- a/src/init.c +++ b/src/init.c @@ -551,6 +551,15 @@ void InitFontGraphicInfo() font_bitmap_info[font_bitmap_id].width = graphic_info[graphic].width; font_bitmap_info[font_bitmap_id].height = graphic_info[graphic].height; + font_bitmap_info[font_bitmap_id].offset_x = + (graphic_info[graphic].offset_x != 0 ? + graphic_info[graphic].offset_x : + graphic_info[graphic].width); + font_bitmap_info[font_bitmap_id].offset_y = + (graphic_info[graphic].offset_y != 0 ? + graphic_info[graphic].offset_y : + graphic_info[graphic].height); + font_bitmap_info[font_bitmap_id].draw_xoffset = graphic_info[graphic].draw_xoffset; font_bitmap_info[font_bitmap_id].draw_yoffset = @@ -1048,6 +1057,8 @@ void InitElementGraphicInfo() default_action_graphic = element_info[EL_SP_DEFAULT].graphic[act]; if (IS_SB_ELEMENT(i) && element_info[EL_SB_DEFAULT].graphic[act] != -1) default_action_graphic = element_info[EL_SB_DEFAULT].graphic[act]; + if (IS_MM_ELEMENT(i) && element_info[EL_MM_DEFAULT].graphic[act] != -1) + default_action_graphic = element_info[EL_MM_DEFAULT].graphic[act]; if (IS_BD_ELEMENT(i) && element_info[EL_BD_DEFAULT].crumbled[act] != -1) default_action_crumbled = element_info[EL_BD_DEFAULT].crumbled[act]; @@ -1055,6 +1066,8 @@ void InitElementGraphicInfo() default_action_crumbled = element_info[EL_SP_DEFAULT].crumbled[act]; if (IS_SB_ELEMENT(i) && element_info[EL_SB_DEFAULT].crumbled[act] != -1) default_action_crumbled = element_info[EL_SB_DEFAULT].crumbled[act]; + if (IS_MM_ELEMENT(i) && element_info[EL_MM_DEFAULT].crumbled[act] != -1) + default_action_crumbled = element_info[EL_MM_DEFAULT].crumbled[act]; /* !!! needed because EL_EMPTY_SPACE treated as IS_SP_ELEMENT !!! */ /* !!! make this better !!! */ @@ -1927,6 +1940,8 @@ static void InitElementSoundInfo() default_action_sound = element_info[EL_SP_DEFAULT].sound[act]; if (IS_SB_ELEMENT(i) && element_info[EL_SB_DEFAULT].sound[act] != -1) default_action_sound = element_info[EL_SB_DEFAULT].sound[act]; + if (IS_MM_ELEMENT(i) && element_info[EL_MM_DEFAULT].sound[act] != -1) + default_action_sound = element_info[EL_MM_DEFAULT].sound[act]; /* !!! needed because EL_EMPTY_SPACE treated as IS_SP_ELEMENT !!! */ /* !!! make this better !!! */ @@ -4683,25 +4698,6 @@ void InitElementPropertiesEngine(int engine_version) InitElementGraphicInfo(); } -void InitElementPropertiesAfterLoading(int engine_version) -{ - int i; - - /* set some other uninitialized values of custom elements in older levels */ - if (engine_version < VERSION_IDENT(3,1,0,0)) - { - for (i = 0; i < NUM_CUSTOM_ELEMENTS; i++) - { - int element = EL_CUSTOM_START + i; - - element_info[element].access_direction = MV_ALL_DIRECTIONS; - - element_info[element].explosion_delay = 17; - element_info[element].ignition_delay = 8; - } - } -} - void InitElementPropertiesGfxElement() { int i; @@ -5058,6 +5054,7 @@ void Execute_Command(char *command) static void InitSetup() { LoadSetup(); /* global setup info */ + LoadSetup_AutoSetup(); /* global auto setup info */ /* set some options from setup file */ @@ -5890,6 +5887,10 @@ void KeyboardAutoRepeatOffUnlessAutoplay() void DisplayExitMessage(char *format, va_list ap) { + // also check for initialized video (headless flag may be temporarily unset) + if (program.headless || !video.initialized) + return; + // check if draw buffer and fonts for exit message are already available if (drawto == NULL || font_initial[NUM_INITIAL_FONTS - 1].bitmap == NULL) return; @@ -6003,6 +6004,7 @@ void OpenAll() print_timestamp_time("[init setup/config stuff]"); + InitVideoDefaults(); InitVideoDisplay(); InitVideoBuffer(WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH, setup.fullscreen); @@ -6044,6 +6046,7 @@ void OpenAll() em_open_all(); sp_open_all(); + mm_open_all(); if (global.autoplay_leveldir) {