All pastes #573882 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-06-18 10:04 UTC
rendered paste body
void load_hiscore()
{
	ostringstream filepath;
	
	#ifndef ALLEGRO_LINUX
	filepath << "./data/hiscore.dat";
	#endif
	
	#ifdef ALLEGRO_LINUX
	filepath << getenv("HOME") << "/.openinvaders/hiscore";
	#endif
	
	char hiscore_buffer[sizeof(hiscore)];
	
	ifstream hiscorefile;
	hiscorefile.open(filepath.str().c_str(),ios::binary);
	if(!hiscorefile.read(hiscore_buffer,sizeof(hiscore)))
	{
		cout << "Error reading highscore file\n";
	}
	hiscorefile.close();
	
	char *stuff_to_read = new char[sizeof(hiscore)];
	int *hiscore2 = new int;

	stuff_to_read=hiscore_buffer;
		
	memcpy(hiscore2,stuff_to_read,sizeof(hiscore));
	
	hiscore=*hiscore2;
	
	delete[] stuff_to_read;
	delete hiscore2;
}

void save_hiscore()
{		
	ostringstream filepath;
	
	#ifndef ALLEGRO_LINUX
	filepath << "./data/hiscore.dat";
	#endif
	
	#ifdef ALLEGRO_LINUX
	filepath << getenv("HOME") << "/.openinvaders";
	mkdir(filepath.str().c_str(),S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
	filepath << "/hiscore";	
	#endif
	
	ofstream hiscorefile;
	hiscorefile.open(filepath.str().c_str(),ios::binary);
	
	char *stuff_to_write=new char[sizeof(hiscore)];
	int *hiscore2=new int;

	*hiscore2=hiscore;
	memcpy(stuff_to_write,hiscore2,sizeof(hiscore));

	hiscorefile.write(stuff_to_write,sizeof(hiscore));
	
	hiscorefile.close();
	
	delete[] stuff_to_write;
	delete hiscore2;
}