Cache file hashes
This commit is contained in:
parent
69f1fef1ea
commit
b5a26eb82f
@ -175,6 +175,8 @@ namespace party
|
|||||||
cl_disconnect_hook.invoke<void>(show_main_menu);
|
cl_disconnect_hook.invoke<void>(show_main_menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::unordered_map<std::string, std::string> hash_cache;
|
||||||
|
|
||||||
std::string get_file_hash(const std::string& file)
|
std::string get_file_hash(const std::string& file)
|
||||||
{
|
{
|
||||||
if (!utils::io::file_exists(file))
|
if (!utils::io::file_exists(file))
|
||||||
@ -182,8 +184,15 @@ namespace party
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const auto iter = hash_cache.find(file);
|
||||||
|
if (iter != hash_cache.end())
|
||||||
|
{
|
||||||
|
return iter->second;
|
||||||
|
}
|
||||||
|
|
||||||
const auto data = utils::io::read_file(file);
|
const auto data = utils::io::read_file(file);
|
||||||
const auto sha = utils::cryptography::sha1::compute(data, true);
|
const auto sha = utils::cryptography::sha1::compute(data, true);
|
||||||
|
hash_cache[file] = sha;
|
||||||
return sha;
|
return sha;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -379,6 +388,7 @@ namespace party
|
|||||||
fastfiles::set_usermap(map);
|
fastfiles::set_usermap(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hash_cache.clear();
|
||||||
current_sv_mapname = map;
|
current_sv_mapname = map;
|
||||||
utils::hook::invoke<void>(0x54BBB0_b, map, a2, a3, a4, a5);
|
utils::hook::invoke<void>(0x54BBB0_b, map, a2, a3, a4, a5);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user