extern char logo[256],sudoku[256],bgg[256],bgm[256];
extern char dig[30][256]; //циферки

extern char elfpath[256];
extern char filepath[256];

extern char elffolder[256];
extern char imgfolder[256];
extern char cfgfolder[256];
extern char sndfolder[256];
extern char sdkfolder[256];

char cdig[19][256];
extern int imgerrors;
extern int pngsizeerr;
extern int bgsizeerr;
extern int sudsizeerr;
extern int suh;
extern int mmenuc;

extern void sdk_read(char sdk_path[]);
extern void fileext();
extern int check_sudoku();
extern void clearSudoku();


void ElfFolderOperations()
{
 unsigned int err;
 
 //Получение путей каталогов
 int elfn = strlen(elfpath)-strlen((strrchr(elfpath,(int)'\\')+1));
 for (int i=0;i<=256;i++) elffolder[i]=elfpath[i];
 elffolder[elfn]='\0';
 sprintf(imgfolder,"%s%s",elffolder,"img\\");
 sprintf(cfgfolder,"%s%s",elffolder,"cfg\\");
 //sprintf(sndfolder,"%s%s",elffolder,"snd\\");
 sprintf(sdkfolder,"%s%s",elffolder,"sdk\\");
 
 //Проверка путя фаила
 if (filepath[1]==':') sdk_read(filepath);
 if (check_sudoku()==0) clearSudoku();
 
 //Проверка или создание каталогов
 if (isdir(imgfolder, &err)!=1) mkdir(imgfolder, &err);
 if (isdir(cfgfolder, &err)!=1) mkdir(cfgfolder, &err);
 //if (isdir(sndfolder, &err)!=1) mkdir(sndfolder, &err);
 if (isdir(sdkfolder, &err)!=1) mkdir(sdkfolder, &err);
 
 //Получение путей дополнительных фаилов и проверка на их наличие
 
 //Цифры
 for (int i = 0;i<10;i++) sprintf(dig[i],"%s%d.%s",imgfolder,0,"png");
 for (int i = 10;i<20;i++) sprintf(dig[i],"%s%d.%s",imgfolder,i-10,"png");
 for (int i = 21;i<30;i++) sprintf(dig[i],"%s%ds.%s",imgfolder,i-20,"png");
 
 sprintf(logo,"%s%s",imgfolder,"logo.png");
 sprintf(sudoku,"%s%s",imgfolder,"sudoku.png");
 sprintf(bgm,"%s%s",imgfolder,"bgm.png");
 sprintf(bgg,"%s%s",imgfolder,"bgg.png");
 sprintf(dig[20],"%s%d.%s",imgfolder,0,"png");
 
}

void ElfFolderCheck()
{
  
 FSTATS stat;
 unsigned int err;
 
 //Проверка
 
 for (int i=0;i<10;i++) sprintf(cdig[i],"%s%d%s",imgfolder,i,".png");
 for (int i=10;i<19;i++) sprintf(cdig[i],"%s%ds%s",imgfolder,i-9,".png");
 
 for (int i=0;i<19;i++) if (GetFileStats(cdig[i], &stat, &err)==-1 && stat.size) imgerrors++;

 if (GetFileStats(logo, &stat, &err)==-1 && stat.size) imgerrors++;
 if (GetFileStats(sudoku, &stat, &err)==-1 && stat.size) imgerrors++;
 if (GetFileStats(bgm, &stat, &err)==-1 && stat.size) imgerrors++;
 if (GetFileStats(bgg, &stat, &err)==-1 && stat.size) imgerrors++;

 
 

 //Проверка разрешения 0.png - 9.png и 1s,png - 9s.png
 int wp = GetImgWidth((int)dig[0]);
 int hp = GetImgHeight((int)dig[0]);
   
 for (int i=0;i<19;i++)
  {
   if (wp != GetImgWidth((int)cdig[i])) pngsizeerr = 1;
   if (hp != GetImgHeight((int)cdig[i])) pngsizeerr = 1;
  }
 //Проверка разрешения bgg.png и bgm.png
 if (GetImgWidth((int)bgg)!=SCRW) bgsizeerr=1;
 if (GetImgWidth((int)bgm)!=SCRW) bgsizeerr=1;
 if (GetImgHeight((int)bgg)!=SCRH) bgsizeerr=1;
 if (GetImgHeight((int)bgm)!=SCRH) bgsizeerr=1;
 
  //Проверка разрешения (высоты) sudoku.png
  suh = (SCRH/2 - (GetFontYSIZE(FONT_SMALL_BOLD)*mmenuc)/2) - 2;
  if (GetImgHeight((int)sudoku)>suh) sudsizeerr=1;
 
 if (imgerrors>0) 
  {
    char png_help_path[256];
    char png_help_txt[344] = 
      {
	0x5C, 0x69, 0x6D, 0x67, 0x5C, 0x2A, 0x2E, 0x70, 0x6E, 0x67, 0x20, 0x5B, 0xD8, 0x20, 0x78, 0x20, 
	0xC2, 0x5D, 0x0D, 0x0A, 0x2D, 0x20, 0x62, 0x67, 0x67, 0x2E, 0x70, 0x6E, 0x67, 0x20, 0x5B, 0xC2, 
	0xE0, 0xF8, 0x20, 0xFD, 0xEA, 0xF0, 0xE0, 0xED, 0x5D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2D, 0x20, 
	0xD4, 0xEE, 0xED, 0x20, 0xE8, 0xE3, 0xF0, 0xEE, 0xE2, 0xEE, 0xE3, 0xEE, 0x20, 0xEE, 0xEA, 0xED, 
	0xE0, 0x0D, 0x0A, 0x2D, 0x20, 0x62, 0x67, 0x6D, 0x2E, 0x70, 0x6E, 0x67, 0x20, 0x5B, 0xC2, 0xE0, 
	0xF8, 0x20, 0xFD, 0xEA, 0xF0, 0xE0, 0xED, 0x5D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2D, 0x20, 0xD4, 
	0xEE, 0xED, 0x20, 0xEC, 0xE5, 0xED, 0xFE, 0x0D, 0x0A, 0x2D, 0x20, 0x6C, 0x6F, 0x67, 0x6F, 0x2E, 
	0x70, 0x6E, 0x67, 0x20, 0x5B, 0x39, 0x30, 0x78, 0x39, 0x30, 0x5D, 0x20, 0x20, 0x20, 0x20, 0x20, 
	0x20, 0x20, 0x20, 0x2D, 0x20, 0xCB, 0xEE, 0xE3, 0xEE, 0xF2, 0xE8, 0xEF, 0x0D, 0x0A, 0x2D, 0x20, 
	0x73, 0x75, 0x64, 0x6F, 0x6B, 0x75, 0x2E, 0x70, 0x6E, 0x67, 0x20, 0x5B, 0x31, 0x32, 0x39, 0x78, 
	0x33, 0x32, 0x5D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2D, 0x20, 0xC7, 0xE0, 0xE3, 0xEE, 0xEB, 0xEE, 
	0xE2, 0xEE, 0xEA, 0x20, 0xEC, 0xE5, 0xED, 0xFE, 0x0D, 0x0A, 0x2D, 0x20, 0x30, 0x2E, 0x70, 0x6E, 
	0x67, 0x20, 0x5B, 0x31, 0x30, 0x78, 0x31, 0x30, 0x5D, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 
	0x20, 0x20, 0x20, 0x20, 0x2D, 0x20, 0xD1, 0xEA, 0xF0, 0xFB, 0xF2, 0xE0, 0xFF, 0x20, 0xEA, 0xEB, 
	0xE5, 0xF2, 0xEA, 0xE0, 0x0D, 0x0A, 0x2D, 0x20, 0x31, 0x2E, 0x70, 0x6E, 0x67, 0x20, 0x2D, 0x20, 
	0x39, 0x2E, 0x70, 0x6E, 0x67, 0x20, 0x5B, 0x31, 0x30, 0x78, 0x31, 0x30, 0x5D, 0x20, 0x20, 0x20, 
	0x2D, 0x20, 0xCE, 0xF2, 0xEA, 0xF0, 0xFB, 0xF2, 0xFB, 0xE5, 0x20, 0xEA, 0xEB, 0xE5, 0xF2, 0xEA, 
	0xE8, 0x0D, 0x0A, 0x2D, 0x20, 0x31, 0x73, 0x2E, 0x70, 0x6E, 0x67, 0x20, 0x2D, 0x20, 0x39, 0x73, 
	0x2E, 0x70, 0x6E, 0x67, 0x20, 0x5B, 0x31, 0x30, 0x78, 0x31, 0x30, 0x5D, 0x20, 0x2D, 0x20, 0xC7, 
	0xE0, 0xF0, 0xE0, 0xED, 0xE5, 0xE5, 0x20, 0xE8, 0xE7, 0xE2, 0xE5, 0xF1, 0xF2, 0xED, 0xFB, 0xE5, 
	0x20, 0xEA, 0xEB, 0xE5, 0xF2, 0xEA, 0xE8, 0x0D, 0x0A, 0xC8, 0xF2, 0xEE, 0xE3, 0xEE, 0x3A, 0x20, 
	0x32, 0x33, 0x20, 0x2A, 0x2E, 0x70, 0x6E, 0x67
      };
    sprintf(png_help_path,"%s%s",elffolder,"png_help.txt");
    fileext(png_help_path,png_help_txt,sizeof(png_help_txt));
  }
}
 

