X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=0af298ee1bcdb5af172c564d53334fa9b6fed34a;hb=78731da5bda94be8ad5633fc5ef615c35db318a7;hp=67079ca5f2327f9e01c5def3c1856942a19ade60;hpb=8bc9d8febda30d07142948f6b892365d3e11a940;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index 67079ca5..0af298ee 100644 --- a/src/init.c +++ b/src/init.c @@ -226,6 +226,28 @@ void InitBitmapPointers() graphic_info[i].bitmap = graphic_info[i].bitmaps[IMG_BITMAP_STANDARD]; } +static void InitGlobalAnimImages() +{ + int i, j, k; + + for (i = 0; i < NUM_GLOBAL_ANIMS; i++) + { + for (j = 0; j < NUM_GLOBAL_ANIM_PARTS; j++) + { + for (k = 0; k < NUM_SPECIAL_GFX_ARGS; k++) + { + int graphic = global_anim_info[i].graphic[j][k]; + + if (graphic == IMG_UNDEFINED) + continue; + + // create textures from images for fast GPU blitting, if possible + CreateImageTextures(graphic); + } + } + } +} + #if 1 /* !!! FIX THIS (CHANGE TO USING NORMAL ELEMENT GRAPHIC DEFINITIONS) !!! */ void SetBitmaps_EM(Bitmap **em_bitmap) @@ -1313,8 +1335,13 @@ static void set_graphic_parameters_ext(int graphic, int *parameter, g->post_delay_random = parameter[GFX_ARG_POST_DELAY_RANDOM]; /* this is only used for toon animations */ - g->step_offset = parameter[GFX_ARG_STEP_OFFSET]; - g->step_delay = parameter[GFX_ARG_STEP_DELAY]; + g->step_offset = parameter[GFX_ARG_STEP_OFFSET]; + g->step_xoffset = parameter[GFX_ARG_STEP_XOFFSET]; + g->step_yoffset = parameter[GFX_ARG_STEP_YOFFSET]; + g->step_frames = parameter[GFX_ARG_STEP_FRAMES]; + g->step_delay = parameter[GFX_ARG_STEP_DELAY]; + g->direction = parameter[GFX_ARG_DIRECTION]; + g->position = parameter[GFX_ARG_POSITION]; /* this is only used for drawing font characters */ g->draw_xoffset = parameter[GFX_ARG_DRAW_XOFFSET]; @@ -1991,8 +2018,10 @@ static void ReinitializeGraphics() print_timestamp_time("InitBitmapPointers"); InitFontGraphicInfo(); /* initialize text drawing functions */ print_timestamp_time("InitFontGraphicInfo"); - InitGlobalAnimGraphicInfo(); /* initialize global animations */ + InitGlobalAnimGraphicInfo(); /* initialize global animation config */ print_timestamp_time("InitGlobalAnimGraphicInfo"); + InitGlobalAnimImages(); /* initialize global animation images */ + print_timestamp_time("InitGlobalAnimImages"); InitGraphicInfo_EM(); /* graphic mapping for EM engine */ print_timestamp_time("InitGraphicInfo_EM"); @@ -5267,7 +5296,9 @@ void InitGfx() init.busy.height = anim_initial.height; InitMenuDesignSettings_Static(); + InitGfxDrawBusyAnimFunction(DrawInitAnim); + InitGfxDrawGlobalAnimFunction(DrawGlobalAnim); /* use copy of busy animation to prevent change while reloading artwork */ init_last = init;