int LoadLastDataSRDFile3()
{
	char strFileName[50]; 
	int reg_ptr = -1;
	int ln;
	if(setup_data.zdmroute_name[0]==0)
	{
		reg_ptr = Bfile_OpenFile(IniSRDFile, _OPENMODE_READ) ;
		if (reg_ptr >= 0) {
			ln=Bfile_GetFileSize(reg_ptr);
			if(ln>0)
			{   
				if(ln>=sizeof(setup_data.zdmroute_name)-1)
					ln=sizeof(setup_data.zdmroute_name)-1;
				Bfile_ReadFile(reg_ptr, setup_data.zdmroute_name,ln,0) ;
				setup_data.zdmroute_name[ln]=0;
			}
			Bfile_CloseFile(reg_ptr) ;
			//PopUpWin(1);
	        //locate(7,4);Print(setup_data.zdmroute_name);
	        //GetKey(&key);
			//sprintf(strFileName,"\\\\crd0\\SRD\\%s",setup_data.zdmroute_name);
			LoadSRDFile3(setup_data.zdmroute_name);
			return 1;
		}		
	}
	return 0;
}
Beispiel #2
0
void loadDataFromSave(Game_Data* data) {
    int i, hasLoadedSave;
    SaveData dataLoaded;
    hasLoadedSave = 0;
    data->fileHandle = Bfile_OpenFile(filename, _OPENMODE_READ);
    if(data->fileHandle>= 0) {
        hasLoadedSave = 1;
        //(char*)data->entry_highscores
        if(Bfile_ReadFile(data->fileHandle, &dataLoaded, sizeof(dataLoaded), -1) < sizeof(dataLoaded))
            hasLoadedSave = 0;
        else {
            Bfile_CloseFile(data->fileHandle);
            Bfile_DeleteFile(filename);
        }
    }

    if(!hasLoadedSave) {
        for(i = 0; i < 6; i++) {
            data->entry_highscores[i] = 0.0f;
        }
    } else {
        for(i = 0; i < 6; i++) {
            data->entry_highscores[i] = dataLoaded.highscores[i];
        }
    }

}
int SaveSRDFile3 (const char *file_name_c_a)
{
	FONTCHARACTER file_name_f[30];
	char file_name_c[30];
	int file_h;
	CalZDM();
	
	sprintf (file_name_c,"\\\\crd0\\ZDM\\%s",file_name_c_a);

	CharToFonts3(file_name_c,file_name_f);
	
	Bfile_DeleteFile (file_name_f);
	Bfile_CreateFile (file_name_f,
	zdmroute.size * sizeof(ZDMPOINT) + sizeof (ZDMROUTE));
	file_h = Bfile_OpenFile (file_name_f,_OPENMODE_WRITE);
	
	Bfile_SeekFile (file_h,0);
	Bfile_WriteFile (file_h,&zdmroute,sizeof(ZDMROUTE));
	
	Bfile_SeekFile (file_h,sizeof(ZDMROUTE));
	Bfile_WriteFile (file_h,zdmroute.set,zdmroute.size * sizeof(ZDMPOINT));

	Bfile_CloseFile (file_h);
	return 0;	
}
Beispiel #4
0
int	open_file (const char * cfname,int mode)
{
	fontc ffname[32];

	char_to_font(cfname,ffname);

	return Bfile_OpenFile(ffname,mode);
}
Beispiel #5
0
int memory_openfile(char *adresse, int mode)
{
  FONTCHARACTER *adr = memory_char2font(adresse);
  int i = Bfile_OpenFile(adr,mode);
  if(i<0) memory_error("openfile()","OpenFile()",i);

  free(adr);
  return i;
}
void SaveIniSRDFile3()
{
	int ptr = -1;
	int ln;
	Bfile_DeleteFile(IniSRDFile);
	ln=strlen(setup_data.zdmroute_name);
	if(ln==0)
		return;
	if (Bfile_CreateFile(IniSRDFile, ln) < 0) //Error("创建文件失败") ;
		return;
	//	else Error("创建文件OK") ;
	ptr = Bfile_OpenFile(IniSRDFile, _OPENMODE_WRITE) ;  // Bfile_OpenFile : 打开一个现有的文件。
	if (ptr >= 0) {
		Bfile_WriteFile(ptr, setup_data.zdmroute_name, ln) ;
		Bfile_CloseFile(ptr) ;
	}
}
Beispiel #7
0
int memory_save(char *adresse, void *data, int l)
{
  FONTCHARACTER *adr = memory_char2font(adresse);
  int x=0, handle;

  if(memory_exists(adresse)) x = Bfile_DeleteFile(adr);
  if(x<0) { memory_error("save()","DeleteFile()",x); free(adr); return x; }
  x = Bfile_CreateFile(adr,l+1);
  if(x<0) { memory_error("save()","CreateFile()",x); free(adr); return x; }
  handle = Bfile_OpenFile(adr,0x02);
  if(handle<0) { memory_error("save()","OpenFile()",handle); free(adr); return handle; }
  x = memory_writefile(handle,data,l);
  if(x<0) { memory_error("save()","WriteFile()",x); free(adr); return x; }
  memory_closefile(handle);

  free(adr);
  return 0;
}
///////////////////////////////////////////////////////////////
//							SRD
///////////////////////////////////////////////////////////////
int TestSRDFile3 (const char *file_name_c_a)
{
	FONTCHARACTER file_name_f[30];
	char file_name_c[30];
	int file_h;

	sprintf (file_name_c,"\\\\crd0\\ZDM\\%s",file_name_c_a);	

	CharToFonts3(file_name_c,file_name_f);
	file_h = Bfile_OpenFile (file_name_f,_OPENMODE_READ);
	
	if (file_h <0)
		return 0;
	else
	{
		Bfile_CloseFile (file_h);
		return 1;
	}
}
Beispiel #9
0
void *memory_load(char *adresse)
{
  FONTCHARACTER *adr = memory_char2font(adresse);
  int handle, x, size;
  void *p;

  if((handle=Bfile_OpenFile(adr,_OPENMODE_READ))<0) { memory_error("load()","OpenFile()",handle); return NULL; }
  size = Bfile_GetFileSize(handle)+1;
  p = calloc(size,1);

  if(!p) {
    memory_error("load()","malloc()",1);
    Bfile_CloseFile(handle); free(adr); return NULL; }
  if((x=Bfile_ReadFile(handle,p,size,0))<0) {
    memory_error("load()","ReadFile()",x);
    Bfile_CloseFile(handle); free(adr); return NULL; }

  Bfile_CloseFile(handle);
  free(adr);
  return p;
}
Beispiel #10
0
int LoadPMFile (const char *file_name_c_a)    
{
	FONTCHARACTER file_name_f[30];
	char file_name_c[30];
	int file_h;
	
	sprintf (file_name_c,"\\\\crd0\\PM\\%s",file_name_c_a);	

	PMCharToFont(file_name_c,file_name_f);

	file_h = Bfile_OpenFile (file_name_f,_OPENMODE_READ);
	if(file_h>=0){
	    //jdfroute_clr (&jdfroute);
	    Bfile_ReadFile(file_h,&pmroute,sizeof(PMROUTE),0);
	    pmroute.set = (PMPOINT*)calloc(pmroute.size,sizeof(PMPOINT));
	    Bfile_ReadFile(file_h,pmroute.set,sizeof(PMPOINT)* pmroute.size,sizeof(PMROUTE));
	    Bfile_CloseFile (file_h);
	    return 1;
	}
	return 0;
}
Beispiel #11
0
int SaveProj(void)
{
	
	int confile_ptr = -1 ;
	char temp_buffer[MAXLINE] ;

	confile_ptr = Bfile_OpenFile(configfile, _OPENMODE_READWRITE) ;
	if (confile_ptr < 0) return -1 ;

	sprintf(temp_buffer,"StakeD = %9.3f",allset.stake_d) ;
	confile_ptr = WriteINI(confile_ptr, allset.fpos.sk, temp_buffer,LATER,TRUE) ;
	sprintf(temp_buffer,"WitchMAX = %9.3f",allset.width_max) ;
	confile_ptr = WriteINI(confile_ptr, allset.fpos.wd, temp_buffer,LATER,FALSE) ;
	sprintf(temp_buffer,"XLTYPE = %9.3f",floor(allset.xl_type)) ;
	confile_ptr = WriteINI(confile_ptr, allset.fpos.xl, temp_buffer,LATER,FALSE) ;
	sprintf(temp_buffer,"PJMODE = %9.3f",floor(allset.pj_mode)) ;
	confile_ptr = WriteINI(confile_ptr, allset.fpos.pj, temp_buffer,NOW,FALSE) ;


	Bfile_CloseFile(confile_ptr) ;
	return 0;
}
int LoadSRDFile3 (const char *file_name_c_a)    
{
	FONTCHARACTER file_name_f[30];
	char file_name_c[30];
	int file_h;
	
	sprintf (file_name_c,"\\\\crd0\\ZDM\\%s",file_name_c_a);	

	CharToFonts3(file_name_c,file_name_f);

	file_h = Bfile_OpenFile (file_name_f,_OPENMODE_READ);
	if(file_h>=0){
	    zdmroute_clr (&zdmroute);
	    Bfile_ReadFile(file_h,&zdmroute,sizeof(ZDMROUTE),0);
	    zdmroute.set = (ZDMPOINT*)calloc(zdmroute.size,sizeof(ZDMPOINT));
	    Bfile_ReadFile(file_h,zdmroute.set,sizeof(ZDMPOINT)*zdmroute.size,sizeof(ZDMROUTE));
	
	    Bfile_CloseFile (file_h);
	    return 1;
	}
	return 0;
}
Beispiel #13
0
int SavePMFile (const char *file_name_c_a)
{
	FONTCHARACTER file_name_f[30];
	char file_name_c[30];
	int file_h;
	sprintf (file_name_c,"\\\\crd0\\PM\\%s",file_name_c_a);

	PMCharToFont(file_name_c,file_name_f);
	
	Bfile_DeleteFile (file_name_f);
	Bfile_CreateFile (file_name_f,
	pmroute.size * sizeof(PMPOINT) + sizeof (PMROUTE));
	file_h = Bfile_OpenFile (file_name_f,_OPENMODE_WRITE);
	
	Bfile_SeekFile (file_h,0);
	Bfile_WriteFile (file_h,&pmroute,sizeof(PMROUTE));
	
	Bfile_SeekFile (file_h,sizeof(JDFROUTE));
	Bfile_WriteFile (file_h,pmroute.set,pmroute.size * sizeof(JDFPOINT));

	Bfile_CloseFile (file_h);
	return 0;	
}
Beispiel #14
0
int Reopen(int file_ptr)
{
	Bfile_CloseFile(file_ptr) ;
	return Bfile_OpenFile(configfile, _OPENMODE_READWRITE_SHARE) ;
}
Beispiel #15
0
int InitConfig()
{
# ifdef RELEASE
FONTCHARACTER indexfile[] = { '\\','\\','f','l','s','0','\\','I','N','D','E','X','.','d','a','t' ,'\0'} ;
# else
FONTCHARACTER indexfile[] = { '\\','\\','c','r','d','0','\\','I','N','D','E','X','.','d','a','t' ,'\0'} ;
# endif
	int indexf_ptr = -1 ;
	int confile_ptr = -1 ;
	unsigned int prog = 0 ;
	int error_code = 0 ;
	double ini_version ;
	unsigned int ini_fpos ;
	
	
	//Get_MID() ;CheckReg("ABCDEF");
	confile_ptr = Bfile_OpenFile(configfile, _OPENMODE_READWRITE) ;
	if (confile_ptr < 0) {
		Warning("无配置文件 ", 3) ;
		return -1 ;
	} else {
		// DO NOTHING NOW
	}

	

	fpos = 0 ;
	stateT = 0 ;
	stateK = 0 ;
	stateV = 0 ;
	
	
	while (error_code == 0  && getline(confile_ptr) ) {
		prog = parse((char*)Linebuffer) ;
		switch (prog){
		case PROG_VER:
			ini_version = statebox.value ;
			ini_fpos = fpos ;
			break ;
		case PROG_SN:
			Get_MID() ;
			strcpy(regstr,statebox.str) ;
			if (CheckReg(regstr) == TRUE)  {
				if (strcmp(regstr,statebox.str) != 0 ){
					//定位到数值位置并写入 
					sprintf(Linebuffer,"SN = %s\r\n",regstr) ;
					confile_ptr = WriteINI(confile_ptr,fpos,Linebuffer,NOW,TRUE) ;	
					if (confile_ptr < 0 )  error_code = -1 ;
				}
			}
			break ;
		case PROG_X1:
			total_set.stat_point.x = statebox.value ;
			total_set.fpos.x1 = fpos ;
			break ;
		case PROG_Y1:
			total_set.stat_point.y = statebox.value ; 
			total_set.fpos.y1 = fpos ;
			break ;
		case PROG_H1:
			total_set.stat_point.z = statebox.value ; 
			total_set.fpos.h1 = fpos ;
			break ;
		case PROG_X2:
			total_set.bak_point.x = statebox.value ; 
			total_set.fpos.x2 = fpos ;
			break ;
		case PROG_Y2:
			total_set.bak_point.y = statebox.value ; 
			total_set.fpos.y2 = fpos ;
			break ;
		case PROG_H2:
			total_set.bak_point.z = statebox.value ; 
			total_set.fpos.h2 = fpos ;
			break ;
		case PROG_STH:
			total_set.station_ht = statebox.value ; 
		        total_set.fpos.sth = fpos ;
			break ;
		case PROG_PRH:
			total_set.prism_ht = statebox.value ; 
			total_set.fpos.prh = fpos ;
			break ;
		case PROG_STAKED:
			allset.stake_d = statebox.value ; 
			allset.fpos.sk = fpos ;
			break ;
		case PROG_WDMAX:
			allset.width_max = statebox.value ; 
			allset.fpos.wd = fpos ;
			break ;
		case PROG_XLTYPE:
			allset.xl_type = statebox.value ; 
			allset.fpos.xl = fpos ;
			break; 
		case PROG_PJMODE:
			allset.pj_mode = statebox.value ; 
			allset.fpos.pj = fpos ;
			break ;
		case PROG_CUPQ:	//平曲
			if (strcmp(statebox.str,"PQ1") == 0)  dbset.current_pq = dbset.pq1 ;
			else if (strcmp(statebox.str,"PQ2") == 0) dbset.current_pq = dbset.pq2 ;
			else if (strcmp(statebox.str,"PQ3") == 0) dbset.current_pq = dbset.pq3 ;
			else if (strcmp(statebox.str,"PQ4") == 0) dbset.current_pq = dbset.pq4 ;
			else if (strcmp(statebox.str,"PQ5") == 0) dbset.current_pq = dbset.pq5 ;
			else if (strcmp(statebox.str,"EMP") == 0) dbset.current_pq = NULL ;
			else error_code = -1 ;
			
			dbset.fpos.cupq = fpos ;
			break ;
		case PROG_PQ1:
			strcpy(dbset.pq1,statebox.str) ;
			dbset.fpos.pq1 = fpos ;
			break ;
		case PROG_PQ2:
			strcpy(dbset.pq2,statebox.str) ;
			dbset.fpos.pq2 = fpos ;
			break ;
		case PROG_PQ3:
			strcpy(dbset.pq3,statebox.str) ;
			dbset.fpos.pq3 = fpos ;
			break ;
		case PROG_PQ4:
			strcpy(dbset.pq4,statebox.str) ;
			dbset.fpos.pq4 = fpos ;
			break ;
		case PROG_PQ5:
			strcpy(dbset.pq5,statebox.str) ;
			dbset.fpos.pq5 = fpos ;
			break ;
		case PROG_CUSQ:	//竖曲
			if (strcmp(statebox.str,"SQ1") == 0)  dbset.current_sq = dbset.sq1 ;
			else if (strcmp(statebox.str,"SQ2") == 0) dbset.current_sq = dbset.sq2 ;
			else if (strcmp(statebox.str,"SQ3") == 0) dbset.current_sq = dbset.sq3 ;
			else if (strcmp(statebox.str,"SQ4") == 0) dbset.current_sq = dbset.sq4 ;
			else if (strcmp(statebox.str,"SQ5") == 0) dbset.current_sq = dbset.sq5 ;
			else if (strcmp(statebox.str,"EMP") == 0) dbset.current_sq = NULL ;
			else error_code = -1 ;
			
			dbset.s_fpos.cusq = fpos ;
			break ;
		case PROG_SQ1:
			strcpy(dbset.sq1,statebox.str) ;
			dbset.s_fpos.sq1 = fpos ;
			break ;
		case PROG_SQ2:
			strcpy(dbset.sq2,statebox.str) ;
			dbset.s_fpos.sq2 = fpos ;
			break ;
		case PROG_SQ3:
			strcpy(dbset.sq3,statebox.str) ;
			dbset.s_fpos.sq3 = fpos ;
			break ;
		case PROG_SQ4:
			strcpy(dbset.sq4,statebox.str) ;
			dbset.s_fpos.sq4 = fpos ;
			break ;
		case PROG_SQ5:
			strcpy(dbset.sq5,statebox.str) ;
			dbset.s_fpos.sq5 = fpos ;
			break ;
		case PROG_CUPLD:
			if (strncmp(statebox.str,"\\\\",2) == 0) {
				CharToFont(statebox.str,pld_FileName) ;
				pld_flag = TRUE ;
				//从索引文件中获取数据行数 
				indexf_ptr = Bfile_OpenFile(indexfile, _OPENMODE_READ_SHARE) ;
				ptlist_count = Bfile_GetFileSize(indexf_ptr) /  sizeof(DWORD) ;
				Bfile_CloseFile(indexf_ptr) ;
				
				//从路径中提取文件名 
				GetNamefromStr(name,statebox.str) ;
				
				//DebugS("%s",statebox.str) ;
			} else pld_flag = FALSE ;
			dbset.pld_pos = fpos ;
			break ;			
		case PROG_CUYS:	//线元法
			if (strcmp(statebox.str,"YS1") == 0)  dbset.current_ys = dbset.ys1 ;
			else if (strcmp(statebox.str,"YS2") == 0)  dbset.current_ys = dbset.ys2 ;
			else if (strcmp(statebox.str,"YS3") == 0)  dbset.current_ys = dbset.ys3 ;
			else if (strcmp(statebox.str,"YS4") == 0)  dbset.current_ys = dbset.ys4 ;
			else if (strcmp(statebox.str,"YS5") == 0)  dbset.current_ys = dbset.ys5 ;
			else if (strcmp(statebox.str,"YS6") == 0)  dbset.current_ys = dbset.ys6 ;
			else if (strcmp(statebox.str,"YS7") == 0)  dbset.current_ys = dbset.ys7 ;
			else if (strcmp(statebox.str,"YS8") == 0)  dbset.current_ys = dbset.ys8 ;
			else if (strcmp(statebox.str,"EMP") == 0) dbset.current_ys = NULL ;
			else error_code = -1 ;
			
			dbset.ys_fpos.cuys = fpos ;
			break ;
		case PROG_YS1:
			strcpy(dbset.ys1,statebox.str) ;
			dbset.ys_fpos.ys1 = fpos ;
			break ;
		case PROG_YS2:
			strcpy(dbset.ys2,statebox.str) ;
			dbset.ys_fpos.ys2 = fpos ;
			break ;
		case PROG_YS3:
			strcpy(dbset.ys3,statebox.str) ;
			dbset.ys_fpos.ys3 = fpos ;
			break ;
		case PROG_YS4:
			strcpy(dbset.ys4,statebox.str) ;
			dbset.ys_fpos.ys4 = fpos ;
			break ;
		case PROG_YS5:
			strcpy(dbset.ys5,statebox.str) ;
			dbset.ys_fpos.ys5 = fpos ;
			break ;
		case PROG_YS6:
			strcpy(dbset.ys6,statebox.str) ;
			dbset.ys_fpos.ys6 = fpos ;
			break ;
		case PROG_YS7:
			strcpy(dbset.ys7,statebox.str) ;
			dbset.ys_fpos.ys7 = fpos ;
			break ;
		case PROG_YS8:
			strcpy(dbset.ys8,statebox.str) ;
			dbset.ys_fpos.ys8 = fpos ;
			break ;
		case PROG_CUHP:
			if (strcmp(statebox.str,"EMP") == 0)  ;
			else strcpy(dbset.current_hp,statebox.str) ;
			dbset.hp_pos = fpos ;
			break ;
		case PROG_CUSD:
			if (strcmp(statebox.str,"SD1") == 0)  dbset.current_sd = dbset.sd1 ;
			else if (strcmp(statebox.str,"SD2") == 0)  dbset.current_sd = dbset.sd2 ;
			else if (strcmp(statebox.str,"SD3") == 0)  dbset.current_sd = dbset.sd3 ;
			else if (strcmp(statebox.str,"SD4") == 0)  dbset.current_sd = dbset.sd4 ;
			else if (strcmp(statebox.str,"SD5") == 0)  dbset.current_sd = dbset.sd5 ;
			else if (strcmp(statebox.str,"SD6") == 0)  dbset.current_sd = dbset.sd6 ;
			else if (strcmp(statebox.str,"SD7") == 0)  dbset.current_sd = dbset.sd7 ;
			else if (strcmp(statebox.str,"SD8") == 0)  dbset.current_sd = dbset.sd8 ;
			else if (strcmp(statebox.str,"EMP") == 0) dbset.current_sd = NULL ;
			else error_code = -1 ;
			dbset.sd_fpos.cusd = fpos ;
			break ;
		case PROG_SD1:
			strcpy(dbset.sd1,statebox.str) ;
			dbset.sd_fpos.sd1 = fpos ;
			break ;
		case PROG_SD2:
			strcpy(dbset.sd2,statebox.str) ;
			dbset.sd_fpos.sd2 = fpos ;
			break ;
		case PROG_SD3:
			strcpy(dbset.sd3,statebox.str) ;
			dbset.sd_fpos.sd3 = fpos ;
			break ;
		case PROG_SD4:
			strcpy(dbset.sd4,statebox.str) ;
			dbset.sd_fpos.sd4 = fpos ;
			break ;
		case PROG_SD5:
			strcpy(dbset.sd5,statebox.str) ;
			dbset.sd_fpos.sd5 = fpos ;
			break ;
		case PROG_SD6:
			strcpy(dbset.sd6,statebox.str) ;
			dbset.sd_fpos.sd6 = fpos ;
			break ;
		case PROG_SD7:
			strcpy(dbset.sd7,statebox.str) ;
			dbset.sd_fpos.sd7 = fpos ;
			break ;
		case PROG_SD8:
			strcpy(dbset.sd8,statebox.str) ;
			dbset.sd_fpos.sd8 = fpos ;
			break ;
		case PROG_ERR:
			break ;
		default:
			break ;
		}		
		fpos += strlen(Linebuffer);
	}
	if (ini_version == 1.11) {
		Warning("当前ver1.11",2) ;
		DebugS("按EXE确认升级\nini配置文件 ") ;
		if ( upgradeINI(1.11,confile_ptr,ini_fpos) == TRUE ) Warning("升级成功!",2) ;
		else Warning("升级失败!",2) ;
		error_code = -1 ;		//不管升级成功还是失败 均返回程序开始
	}
	else if (ini_version == 1.13) {
		Warning("当前ver1.13",2) ;
		DebugS("按EXE确认升级\nini配置文件 ") ;
		if ( upgradeINI(1.13,confile_ptr,ini_fpos) == TRUE ) Warning("升级成功!",2) ;
		else Warning("升级失败!",2) ;
		error_code = -1 ;		//不管升级成功还是失败 均返回程序开始
	}
	else if (ini_version == 1.17){
		Warning("当前ver1.17",2) ;
		DebugS("按EXE确认升级\nini配置文件 ") ;
		if ( upgradeINI(1.17,confile_ptr,ini_fpos) == TRUE ) Warning("升级成功!",2) ;
		else Warning("升级失败!",2) ;
		error_code = -1 ;		//不管升级成功还是失败 均返回程序开始
	}
	else if (ini_version == 1.171) {
		Warning("当前ver1.171",2) ; 
		DebugS("按EXE确认升级\nini配置文件 ") ;
		if ( upgradeINI(1.171,confile_ptr,ini_fpos) == TRUE ) Warning("升级成功!",2) ;
		else Warning("升级失败!",2) ;
		error_code = -1 ;		//不管升级成功还是失败 均返回程序开始
	}
	else if (ini_version == 1.172) {
		Warning("当前ver1.172",2) ; 
		DebugS("按EXE确认升级\nini配置文件 ") ;
		if ( upgradeINI(1.172,confile_ptr,ini_fpos) == TRUE ) Warning("升级成功!",2) ;
		else Warning("升级失败!",2) ;
		error_code = -1 ;		//不管升级成功还是失败 均返回程序开始
	}
	else if (ini_version == 1.19) ;//Warning("当前ver1.19",2) ; 
	else Warning("ini版本错误 ",2) ;
	
	Bfile_CloseFile(confile_ptr) ;
	
	return  error_code;
}
Beispiel #16
0
int AddIn_main(int isAppli, unsigned short OptionNum)
{
    SaveData dataToSave;
    int i;
    Game_Data data;
	// variables for fps calculation
    unsigned int fps = 0, frame = 0, tempsOrigine = RTC_GetTicks();
	// char string to display the fps
    unsigned char fps_text[8] = {0};
	// rand initialisation
    srand(RTC_GetTicks());

    // Key init
    data.shift_latch_value = 0;
    data.alpha_latch_value = 0;

    data.entry_highscores = NULL;
    data.entry_highscores = malloc(sizeof(float) * 6);
    if(data.entry_highscores == NULL)
        switch_to_state(OUT_OF_MEMORY, &data);


    data.entry_difficulties = NULL;
    data.entry_difficulties = malloc(sizeof(char*) * 6);
    if(data.entry_difficulties == NULL)
        switch_to_state(OUT_OF_MEMORY, &data);
    load_difficulty_names(data.entry_difficulties);


    loadDataFromSave(&data);
    switch_to_state(TITLE, &data);

    {
        char machin[] = "0";
        machin[0] = GetMPU() + '0';
        locate(1,1);
        Print(machin);
        GetKey(&i);

    }

    while(KeyUp(K_EXIT)){ // main loop
        // fps
        if(RTC_GetTicks() - tempsOrigine >= 32 )// if 1/4 seconds elapsed
        {
            fps = frame*4;
            frame = 0;
            tempsOrigine = RTC_GetTicks();
        }
        frame++;


        update(&data);
        draw(&data);

	// printing debug information

	// updating the screen
        ML_display_vram();
        ML_clear_vram();

        Sleep(1/0.06);
    }

    for(i = 0; i < 6; ++i)
        dataToSave.highscores[i] = data.entry_highscores[i];
    Bfile_CreateFile(filename, filesize);
    data.fileHandle = Bfile_OpenFile(filename, _OPENMODE_WRITE);
    if(data.fileHandle >= 0) {
        Bfile_WriteFile(data.fileHandle, &dataToSave, filesize);
        Bfile_CloseFile(data.fileHandle);
    }

    free(data.entry_highscores);

    return 1;
}