コード例 #1
0
ファイル: campaign_entry.c プロジェクト: evktalo/cdogs-sdl
bool CampaignEntryTryLoad(
	CampaignEntry *entry, const char *path, campaign_mode_e mode)
{
	char *buf;
	int numMissions;
	if (!IsCampaignOK(path, &buf, &numMissions))
	{
		return false;
	}
	// cap length of title
	size_t maxLen = 70;
	if (strlen(buf) > maxLen)
	{
		buf[maxLen] = '\0';
	}
	char title[256];
	sprintf(title, "%s (%d)", buf, numMissions);
	CampaignEntryInit(entry, title, mode);
	CSTRDUP(entry->Filename, PathGetBasename(path));
	CSTRDUP(entry->Path, path);
	entry->IsBuiltin = false;
	entry->NumMissions = numMissions;
	CFREE(buf);
	return true;
}
コード例 #2
0
ファイル: campaign_entry.c プロジェクト: NSYXin/cdogs-sdl
bool CampaignEntryTryLoad(
	CampaignEntry *entry, const char *path, GameMode mode)
{
	char *buf;
	int numMissions;
	if (!IsCampaignOK(path, &buf, &numMissions))
	{
		return false;
	}
	// cap length of title
	size_t maxLen = 70;
	if (strlen(buf) > maxLen)
	{
		buf[maxLen] = '\0';
	}
	char title[256];
	sprintf(title, "%s (%d)", buf, numMissions);
	CampaignEntryInit(entry, title, mode);
	CSTRDUP(entry->Filename, PathGetBasename(path));
	// Get relative path for the campaign entry, so when we transmit it to
	// network clients they can load it regardless of install path
	char pathBuf[CDOGS_PATH_MAX];
	RelPathFromCWD(pathBuf, path);
	CSTRDUP(entry->Path, pathBuf);
	entry->NumMissions = numMissions;
	CFREE(buf);
	return true;
}