MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / Campaign_Select_Setup

Method Campaign_Select_Setup

Source/Fodder.cpp:4220–4286  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4218};
4219
4220void cFodder::Campaign_Select_Setup() {
4221 mCampaignList.clear();
4222
4223 mPhase_In_Progress = true;
4224 mPhase_Aborted = false;
4225 mGUI_SaveLoadAction = 0;
4226
4227 {
4228 for (auto& Name : mVersions->GetCampaignNames()) {
4229
4230 if (g_ResourceMan->isCampaignAvailable(Name) || Name == "Single Map" || Name == "Random Map")
4231 mCampaignList.push_back(Name);
4232 }
4233 }
4234
4235 {
4236 auto Files = g_ResourceMan->GetCampaigns();
4237
4238 // Append all custom campaigns to the list
4239 for (auto& File : Files) {
4240 size_t Pos = File.find_first_of(".");
4241 std::string FileName = File.substr(0, Pos);
4242
4243 // Don't add known campaigns
4244 if (mVersions->isCampaignKnown(FileName))
4245 continue;
4246
4247 mCampaignList.push_back(FileName);
4248 }
4249 }
4250
4251 mGUI_Select_File_CurrentIndex = 0;
4252 mGUI_Select_File_Count = (int16)mCampaignList.size();
4253
4254
4255
4256 // Create the title screen depending on which data is loaded
4257 if (mVersionCurrent->isRetail()) {
4258 sMapParams Params(0x15, 0x0F, eTileTypes_Jungle, eTileSub_0);
4259 Map_Create(Params);
4260 std::memcpy(mMap->data() + 0x60, mCampaignSelectMap_Jungle.data(), mMap->size() - 0x60);
4261 }
4262 else {
4263 sMapParams Params(0x15, 0x0F, eTileTypes_AFX, eTileSub_0);
4264 Map_Create(Params);
4265 std::memcpy(mMap->data() + 0x60, mCampaignSelectMap_AF.data(), mMap->size() - 0x60);
4266 }
4267
4268 Campaign_Select_Sprite_Prepare();
4269 Music_Play(mMapLoaded->getTileType() + 0x32, 4);
4270 mSound->Music_SetVolume(-1, 0x10);
4271
4272 if (mGUI_SaveLoadAction != 3) {
4273 mSurface->palette_FadeTowardNew();
4274 Mouse_Setup();
4275 }
4276 mGUI_SaveLoadAction = 0;
4277

Callers 1

menu_loopFunction · 0.80

Calls 13

GetCampaignNamesMethod · 0.80
GetCampaignsMethod · 0.80
isCampaignKnownMethod · 0.80
isRetailMethod · 0.80
getTileTypeMethod · 0.80
Music_SetVolumeMethod · 0.80
palette_FadeTowardNewMethod · 0.80
SaveMethod · 0.80
clearMethod · 0.45
isCampaignAvailableMethod · 0.45
push_backMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected