X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=4735f046993612345e497337e7cf6e87e00ab436;hb=3c53030b9e20c59004046274e94eff2ee90d0ab5;hp=f074cd944f70cd21405d7b6f003383d564c97bfc;hpb=97baecdfcf386d972f6f8e6eec9ddfd3021ed7ed;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index f074cd94..4735f046 100644 --- a/src/init.c +++ b/src/init.c @@ -39,7 +39,7 @@ #define CONFIG_TOKEN_GLOBAL_BUSY "global.busy" #define DEBUG_PRINT_INIT_TIMESTAMPS TRUE -#define DEBUG_PRINT_INIT_TIMESTAMPS_DEPTH 1 +#define DEBUG_PRINT_INIT_TIMESTAMPS_DEPTH 0 static struct FontBitmapInfo font_initial[NUM_INITIAL_FONTS]; @@ -159,8 +159,8 @@ void DrawInitAnim() { struct GraphicInfo *graphic_info_last = graphic_info; int graphic = 0; - static unsigned long action_delay = 0; - unsigned long action_delay_value = GameFrameDelay; + static unsigned int action_delay = 0; + unsigned int action_delay_value = GameFrameDelay; int sync_frame = FrameCounter; int x, y; @@ -175,9 +175,9 @@ void DrawInitAnim() #if 0 { - static unsigned long last_counter = -1; - unsigned long current_counter = Counter(); - unsigned long delay = current_counter - last_counter; + static unsigned int last_counter = -1; + unsigned int current_counter = Counter(); + unsigned int delay = current_counter - last_counter; if (last_counter != -1 && delay > action_delay_value + 5) printf("::: DrawInitAnim: DELAY TOO LONG: %ld\n", delay); @@ -217,7 +217,7 @@ void DrawInitAnim() int height = graphic_info[graphic].height; int frame = getGraphicAnimationFrame(graphic, sync_frame); - getGraphicSource(graphic, frame, &src_bitmap, &src_x, &src_y); + getFixedGraphicSource(graphic, frame, &src_bitmap, &src_x, &src_y); BlitBitmap(src_bitmap, window, src_x, src_y, width, height, x, y); #else /* !!! this can only draw TILEX/TILEY size animations !!! */ @@ -862,8 +862,8 @@ void InitElementGraphicInfo() if (swap_movement_tiles_always || swap_movement_tiles_autodetected) { /* get current (wrong) backside tile coordinates */ - getGraphicSourceExt(graphic, 0, &dummy, &src_x_back, &src_y_back, - TRUE); + getFixedGraphicSourceExt(graphic, 0, &dummy, + &src_x_back, &src_y_back, TRUE); /* set frontside tile coordinates to backside tile coordinates */ g->src_x = src_x_back; @@ -1857,7 +1857,7 @@ static void InitGraphicInfo() static boolean clipmasks_initialized = FALSE; Pixmap src_pixmap; XGCValues clip_gc_values; - unsigned long clip_gc_valuemask; + unsigned int clip_gc_valuemask; GC copy_clipmask_gc = None; #endif @@ -1877,6 +1877,7 @@ static void InitGraphicInfo() IMG_BACKGROUND_TITLE, IMG_BACKGROUND_MAIN, IMG_BACKGROUND_LEVELS, + IMG_BACKGROUND_LEVELNR, IMG_BACKGROUND_SCORES, IMG_BACKGROUND_EDITOR, IMG_BACKGROUND_INFO, @@ -1967,7 +1968,7 @@ static void InitGraphicInfo() /* check if first animation frame is inside specified bitmap */ first_frame = 0; - getGraphicSource(i, first_frame, &src_bitmap, &src_x, &src_y); + getFixedGraphicSource(i, first_frame, &src_bitmap, &src_x, &src_y); #if 1 /* this avoids calculating wrong start position for out-of-bounds frame */ @@ -2001,7 +2002,7 @@ static void InitGraphicInfo() /* check if last animation frame is inside specified bitmap */ last_frame = graphic_info[i].anim_frames - 1; - getGraphicSource(i, last_frame, &src_bitmap, &src_x, &src_y); + getFixedGraphicSource(i, last_frame, &src_bitmap, &src_x, &src_y); if (src_x < 0 || src_y < 0 || src_x + width > src_bitmap_width || @@ -2015,6 +2016,7 @@ static void InitGraphicInfo() Error(ERR_INFO, "error: last animation frame (%d) out of bounds (%d, %d) [%d, %d]", last_frame, src_x, src_y, src_bitmap_width, src_bitmap_height); + Error(ERR_INFO, "::: %d, %d", width, height); Error(ERR_INFO, "custom graphic rejected for this element/action"); if (i == fallback_graphic) @@ -2028,7 +2030,7 @@ static void InitGraphicInfo() #if defined(TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND) /* currently we only need a tile clip mask from the first frame */ - getGraphicSource(i, first_frame, &src_bitmap, &src_x, &src_y); + getFixedGraphicSource(i, first_frame, &src_bitmap, &src_x, &src_y); if (copy_clipmask_gc == None) { @@ -5558,6 +5560,7 @@ void InitGfxBuffers() InitGfxScrollbufferInfo(FXSIZE, FYSIZE); InitGfxClipRegion(FALSE, -1, -1, -1, -1); + InitGfxBuffers_EM(); InitGfxBuffers_SP(); } @@ -6437,7 +6440,13 @@ void CloseAllAndExit(int exit_value) ClosePlatformDependentStuff(); if (exit_value != 0) + { + /* fall back to default level set (current set may have caused an error) */ + SaveLevelSetup_LastSeries_Deactivate(); + + /* tell user where to find error log file which may contain more details */ NotifyUserAboutErrorFile(); + } exit(exit_value); }