X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=42e502dcd94996ea0212e08d9c2bd7d77b4d6e7f;hb=c38b8938950533926b72af227c38513fe665a8f6;hp=5dea5dfca4522d457075464fd2481c31b935a6e8;hpb=09e22b6b1f060be3ac1aca3937ff29c9d53e5866;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index 5dea5dfc..42e502dc 100644 --- a/src/init.c +++ b/src/init.c @@ -55,6 +55,8 @@ static char *image_filename[NUM_PICTURES] = #endif }; +static Bitmap *bitmap_font_initial = NULL; + static void InitSetup(void); static void InitPlayerInfo(void); static void InitLevelInfo(void); @@ -113,12 +115,14 @@ void OpenAll(void) InitEventFilter(FilterMouseMotionEvents); - InitGfx(); InitElementProperties(); /* initializes IS_CHAR() for el2gfx() */ InitElementInfo(); + InitGfx(); + InitLevelInfo(); InitLevelArtworkInfo(); + InitImages(); /* needs to know current level directory */ InitSound(); /* needs to know current level directory */ InitGadgets(); /* needs images + number of level series */ @@ -195,7 +199,8 @@ static void ReinitializeGraphics() InitGraphicInfo(); /* initialize graphic info from config file */ - InitFontInfo(new_graphic_info[IMG_MENU_FONT_BIG].bitmap, + InitFontInfo(bitmap_font_initial, + new_graphic_info[IMG_MENU_FONT_BIG].bitmap, new_graphic_info[IMG_MENU_FONT_MEDIUM].bitmap, new_graphic_info[IMG_MENU_FONT_SMALL].bitmap, new_graphic_info[IMG_MENU_FONT_EM].bitmap); @@ -398,7 +403,9 @@ void FreeTileClipmasks() void InitGfx() { +#if 0 int i; +#endif /* initialize some global variables */ global.frames_per_second = 0; @@ -415,32 +422,40 @@ void InitGfx() /* create additional image buffers for double-buffering */ bitmap_db_field = CreateBitmap(FXSIZE, FYSIZE, DEFAULT_DEPTH); bitmap_db_door = CreateBitmap(3 * DXSIZE, DYSIZE + VYSIZE, DEFAULT_DEPTH); -#if 1 - pix[PIX_DB_FIELD] = bitmap_db_field; - pix[PIX_DB_DOOR] = bitmap_db_door; -#endif +#if 0 pix[PIX_FONT_SMALL] = LoadCustomImage(image_filename[PIX_FONT_SMALL]); InitFontInfo(NULL, NULL, pix[PIX_FONT_SMALL], NULL); +#else + bitmap_font_initial = LoadCustomImage(image_filename[PIX_FONT_SMALL]); + + InitFontInfo(bitmap_font_initial, NULL, NULL, NULL, NULL); +#endif DrawInitText(WINDOW_TITLE_STRING, 20, FC_YELLOW); DrawInitText(WINDOW_SUBTITLE_STRING, 50, FC_RED); DrawInitText("Loading graphics:", 120, FC_GREEN); +#if 0 for (i=0; iidentifier; char *snd_new_identifier = artwork.snd_current->identifier; char *mus_new_identifier = artwork.mus_current->identifier; + boolean redraw_screen = FALSE; + + if (leveldir_current_identifier == NULL) + leveldir_current_identifier = leveldir_current->identifier; + +#if 0 + printf("CURRENT GFX: '%s' ['%s']\n", artwork.gfx_current->identifier, + leveldir_current->graphics_set); + printf("CURRENT LEV: '%s' / '%s'\n", leveldir_current_identifier, + leveldir_current->identifier); +#endif #if 0 printf("graphics --> '%s' ('%s')\n", @@ -527,30 +552,48 @@ void ReloadCustomArtwork() if (strcmp(artwork.gfx_current_identifier, gfx_new_identifier) != 0 || last_override_level_graphics != setup.override_level_graphics) { +#if 0 + printf("CHANGED GFX: '%s' -> '%s'\n", + artwork.gfx_current_identifier, gfx_new_identifier); +#endif + +#if 0 int i; +#endif setLevelArtworkDir(artwork.gfx_first); ClearRectangle(window, 0, 0, WIN_XSIZE, WIN_YSIZE); +#if 0 for (i=0; iidentifier; +#endif last_override_level_graphics = setup.override_level_graphics; + + redraw_screen = TRUE; } if (strcmp(artwork.snd_current_identifier, snd_new_identifier) != 0 || @@ -563,6 +606,8 @@ void ReloadCustomArtwork() artwork.snd_current_identifier = snd_new_identifier; last_override_level_sounds = setup.override_level_sounds; + + redraw_screen = TRUE; } if (strcmp(artwork.mus_current_identifier, mus_new_identifier) != 0 || @@ -575,6 +620,17 @@ void ReloadCustomArtwork() artwork.mus_current_identifier = mus_new_identifier; last_override_level_music = setup.override_level_music; + + redraw_screen = TRUE; + } + + if (redraw_screen) + { + InitGfxBackground(); + + /* force redraw of (open or closed) door graphics */ + SetDoorState(DOOR_OPEN_ALL); + CloseDoor(DOOR_CLOSE_ALL | DOOR_NO_DELAY); } #if 0 @@ -2546,7 +2602,9 @@ void Execute_Debug_Command(char *command) void CloseAllAndExit(int exit_value) { +#if 0 int i; +#endif StopSounds(); FreeAllSounds(); @@ -2556,8 +2614,13 @@ void CloseAllAndExit(int exit_value) FreeAllImages(); FreeTileClipmasks(); +#if 0 for (i=0; i