MCPcopy Create free account
hub / github.com/ddnet/ddnet / LoadMapSearch

Method LoadMapSearch

src/engine/client/client.cpp:1225–1273  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1223}
1224
1225const char *CClient::LoadMapSearch(const char *pMapName, const std::optional<SHA256_DIGEST> &WantedSha256, int WantedCrc)
1226{
1227 char aBuf[512];
1228 char aWanted[SHA256_MAXSTRSIZE + 16];
1229 aWanted[0] = 0;
1230 if(WantedSha256.has_value())
1231 {
1232 char aWantedSha256[SHA256_MAXSTRSIZE];
1233 sha256_str(WantedSha256.value(), aWantedSha256, sizeof(aWantedSha256));
1234 str_format(aWanted, sizeof(aWanted), "sha256=%s ", aWantedSha256);
1235 }
1236 str_format(aBuf, sizeof(aBuf), "loading map, map=%s wanted %scrc=%08x", pMapName, aWanted, WantedCrc);
1237 m_pConsole->Print(IConsole::OUTPUT_LEVEL_ADDINFO, "client", aBuf);
1238
1239 // try the normal maps folder
1240 str_format(aBuf, sizeof(aBuf), "maps/%s.map", pMapName);
1241 const char *pError = LoadMap(pMapName, aBuf, WantedSha256, WantedCrc);
1242 if(!pError)
1243 return nullptr;
1244
1245 // try the downloaded maps
1246 FormatMapDownloadFilename(pMapName, WantedSha256, WantedCrc, false, aBuf, sizeof(aBuf));
1247 pError = LoadMap(pMapName, aBuf, WantedSha256, WantedCrc);
1248 if(!pError)
1249 return nullptr;
1250
1251 // backward compatibility with old names
1252 if(WantedSha256.has_value())
1253 {
1254 FormatMapDownloadFilename(pMapName, std::nullopt, WantedCrc, false, aBuf, sizeof(aBuf));
1255 pError = LoadMap(pMapName, aBuf, WantedSha256, WantedCrc);
1256 if(!pError)
1257 return nullptr;
1258 }
1259
1260 // search for the map within subfolders
1261 char aFilename[IO_MAX_PATH_LENGTH];
1262 str_format(aFilename, sizeof(aFilename), "%s.map", pMapName);
1263 if(Storage()->FindFile(aFilename, "maps", IStorage::TYPE_ALL, aBuf, sizeof(aBuf)))
1264 {
1265 pError = LoadMap(pMapName, aBuf, WantedSha256, WantedCrc);
1266 if(!pError)
1267 return nullptr;
1268 }
1269
1270 static char s_aErrorMsg[256];
1271 str_format(s_aErrorMsg, sizeof(s_aErrorMsg), "Could not find map '%s'", pMapName);
1272 return s_aErrorMsg;
1273}
1274
1275void CClient::ProcessConnlessPacket(CNetChunk *pPacket)
1276{

Callers

nothing calls this directly

Calls 6

sha256_strFunction · 0.85
str_formatFunction · 0.85
StorageFunction · 0.85
FindFileMethod · 0.80
PrintMethod · 0.45

Tested by

no test coverage detected