Exemple #1
0
void CreateSourceFolders(int parent_index)
{
	int i,jj;
	int nGames = GetNumGames();
	int start_folder = numFolders;
	LPTREEFOLDER lpFolder = treeFolders[parent_index];

	// no games in top level folder
	SetAllBits(lpFolder->m_lpGameBits,FALSE);

	for (jj = 0; jj < nGames; jj++)
	{
		const char *s = GetDriverFilename(jj);
                			
		if (s == NULL || s[0] == '\0')
			continue;

		// look for an extant source treefolder for this game
		// (likely to be the previous one, so start at the end)
		for (i=numFolders-1;i>=start_folder;i--)
		{
			if (strcmp(treeFolders[i]->m_lpTitle,s) == 0)
			{
				AddGame(treeFolders[i],jj);
				break;
			}
		}
		if (i == start_folder-1)
		{
			// nope, it's a source file we haven't seen before, make it.
			LPTREEFOLDER lpTemp;
			lpTemp = NewFolder(s, next_folder_id++, parent_index, IDI_SOURCE,
							   GetFolderFlags(numFolders));
			AddFolder(lpTemp);
			AddGame(lpTemp,jj);
		}
	}
}
Exemple #2
0
int load_driver_driverinfo(const game_driver *drv, char *buffer, int bufsize, int filenum)
{
	int drivinfo = 0;
	char source_file[40];
	char tmp[100];
	std::string temp = core_filename_extract_base(drv->source_file);
	strcpy(source_file, temp.c_str());

	*buffer = 0;

	if (filenum)
		snprintf(filename, ARRAY_LENGTH(filename), "%s\\messinfo.dat", GetDatsDir());
	else
		snprintf(filename, ARRAY_LENGTH(filename), "%s\\mameinfo.dat", GetDatsDir());

	/* Print source code file */
	snprintf(tmp, ARRAY_LENGTH(tmp), "\n\nSOURCE: %s\n\n", source_file);
	strcat(buffer, tmp);

	/* Try to open mameinfo datafile - driver section*/
	if (ParseOpen(filename))
	{
		if (filenum)
		{
			/* create index if necessary */
			if (messdriv_idx)
				drivinfo = 1;
			else
				drivinfo = (index_datafile (&messdriv_idx, 1) != 0);

			/* load informational text (append) */
			if (messdriv_idx)
			{
				int len = strlen(buffer);
				int err = load_datafile_text(drv, buffer + len, bufsize - len, messdriv_idx, DATAFILE_TAG_DRIV, 1, 1);

				if (err)
					drivinfo = 0;
			}
		}
		else
		{
			/* create index if necessary */
			if (driv_idx)
				drivinfo = 1;
			else
				drivinfo = (index_datafile (&driv_idx, 1) != 0);

			/* load informational text (append) */
			if (driv_idx)
			{
				int len = strlen(buffer);
				int err = load_datafile_text(drv, buffer + len, bufsize - len, driv_idx, DATAFILE_TAG_DRIV, 1, 1);

				if (err)
					drivinfo = 0;
			}
		}
		ParseClose();
	}

	strcat(buffer, "\nGAMES SUPPORTED:\n");

	for (int i = 0; i < driver_list::total(); i++)
	{
		if (!strcmp(source_file, GetDriverFilename(i)) && !(DriverIsBios(i)))
		{
			strcat(buffer, driver_list::driver(i).description);
			strcat(buffer,"\n");
		}
	}

	strcat(buffer, "\n\n");
	return (drivinfo == 0);
}