Esempio n. 1
0
void LookForCustomCampaigns(void)
{
	int i;

	printf("\nCampaigns:\n");

	campaignList = GetFilesFromDirectory(GetDataFilePath("missions/"));
	GetCampaignTitles(&campaignList);
	i = 0;
	while (SetupBuiltinCampaign(i)) {
		AddFileEntry(&campaignList, "", gCampaign.setting->title, i);
		i++;
	}

	printf("\nDogfights:\n");

	dogfightList = GetFilesFromDirectory(GetDataFilePath("dogfights/"));
	GetCampaignTitles(&dogfightList);
	i = 0;
	while (SetupBuiltinDogfight(i)) {
		AddFileEntry(&dogfightList, "", gCampaign.setting->title, i);
		i++;
	}

	printf("\n");
}
Esempio n. 2
0
static void SetupBuiltin(int dogFight, int index)
{
	if (dogFight)
		SetupBuiltinDogfight(index);
	else
		SetupBuiltinCampaign(index);
}
Esempio n. 3
0
void LoadBuiltinCampaigns(campaign_list_t *list)
{
	int i = 0;
	for (i = 0; SetupBuiltinCampaign(i); i++)
	{
		AddBuiltinCampaignEntry(
			list, gCampaign.Setting.title, CAMPAIGN_MODE_NORMAL, i);
	}
}
Esempio n. 4
0
void MenuLoadCampaign(campaign_entry_t *entry)
{
	gOptions.twoPlayers = entry->is_two_player;
	gCampaign.Entry = *entry;
	if (entry->isBuiltin)
	{
		if (entry->mode == CAMPAIGN_MODE_NORMAL)
		{
			SetupBuiltinCampaign(entry->builtinIndex);
		}
		else if (entry->mode == CAMPAIGN_MODE_DOGFIGHT)
		{
			SetupBuiltinDogfight(entry->builtinIndex);
		}
		else
		{
			SetupQuickPlayCampaign(&gCampaign.Setting);
		}
	}
	else
	{
		if (customSetting.missions)
		{
			CFREE(customSetting.missions);
		}
		if (customSetting.characters)
		{
			CFREE(customSetting.characters);
		}
		memset(&customSetting, 0, sizeof(customSetting));

		if (LoadCampaign(entry->path, &customSetting, 0, 0) != CAMPAIGN_OK)
		{
			printf("Failed to load campaign %s!\n", entry->path);
			assert(0);
		}
		gCampaign.Setting = customSetting;
	}
	
	printf(">> Loading campaign/dogfight\n");
}
Esempio n. 5
0
void MenuLoadCampaign(campaign_entry_t *entry)
{
	gCampaign.Entry = *entry;
	CampaignSettingTerminate(&gCampaign.Setting);
	if (entry->isBuiltin)
	{
		if (entry->mode == CAMPAIGN_MODE_NORMAL)
		{
			SetupBuiltinCampaign(entry->builtinIndex);
		}
		else if (entry->mode == CAMPAIGN_MODE_DOGFIGHT)
		{
			SetupBuiltinDogfight(entry->builtinIndex);
		}
		else if (entry->mode == CAMPAIGN_MODE_QUICK_PLAY)
		{
			SetupQuickPlayCampaign(&gCampaign.Setting, &gConfig.QuickPlay);
		}
		else
		{
			printf("Unknown game mode!\n");
			assert(0);
		}
	}
	else
	{
		CampaignSettingNew customSetting;
		CampaignSettingInit(&customSetting);

		if (LoadCampaign(entry->path, &customSetting) != CAMPAIGN_OK)
		{
			printf("Failed to load campaign %s!\n", entry->path);
			assert(0);
		}
		memcpy(&gCampaign.Setting, &customSetting, sizeof gCampaign.Setting);
	}

	printf(">> Loading campaign/dogfight\n");
}