TbBool erstat_check(void) { int stat_num,sdiff; // Don't check more often than every 7 turns if ((game.play_gameturn & 0x07) != 0) return false; stat_num = last_checked_stat_num; sdiff = erstat[stat_num].n - erstat[stat_num].nprv; // Display an error if any things were not created in this game turn if (sdiff != 0) { #if (BFDEBUG_LEVEL > 0) show_onscreen_msg(game.num_fps,"%s, %ld occurrences",erstat[stat_num].msg,sdiff); #else WARNLOG("%s, %ld occurrences",erstat[stat_num].msg,sdiff); #endif erstat[stat_num].nprv = erstat[stat_num].n; } last_checked_stat_num = (last_checked_stat_num+1) % (sizeof(erstat)/sizeof(erstat[0])); return (sdiff != 0); }
TbBool cumulative_screen_shot(void) { //_DK_cumulative_screen_shot();return; static long frame_number=0; char fname[255]; const char *fext; int w,h; switch (screenshot_format) { case 1: fext="raw"; break; case 2: fext="bmp"; break; default: ERRORLOG("Screenshot format incorrectly set."); return false; } long i; unsigned char *buf; long ssize; for (i=frame_number; i<10000; i++) { sprintf(fname, "scrshots/scr%05ld.%s", i, fext); if (!LbFileExists(fname)) break; } frame_number = i; if (frame_number >= 10000) { show_onscreen_msg(game.num_fps, "No free filename for screenshot."); return false; } sprintf(fname, "scrshots/scr%05ld.%s", frame_number, fext); w=MyScreenWidth/pixel_size; h=MyScreenHeight/pixel_size; buf = LbMemoryAlloc((w+3)*h+2048); if (buf == NULL) { ERRORLOG("Can't allocate buffer"); return false; } LbPaletteGet(cap_palette); switch (screenshot_format) { case 1: ssize=prepare_hsi_screenshot(buf,cap_palette); break; case 2: ssize=prepare_bmp_screenshot(buf,cap_palette); break; default: ssize=0; break; } if (ssize>0) ssize = LbFileSaveAt(fname, buf, ssize); LbMemoryFree(buf); if (ssize>0) show_onscreen_msg(game.num_fps, "File \"%s\" saved.", fname); else show_onscreen_msg(game.num_fps, "Cannot save \"%s\".", fname); frame_number++; return (ssize>0); }