2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 14:24:56 +00:00

Implement additive body states, rstl::binary_find

This commit is contained in:
Jack Andersen
2017-07-10 21:17:03 -10:00
parent 7e85ab932b
commit daef773f39
17 changed files with 371 additions and 71 deletions

View File

@@ -72,18 +72,18 @@ public:
ResId TranslateOriginalToNew(ResId id) const
{
auto search = std::lower_bound(m_origToNew.cbegin(), m_origToNew.cend(), id,
[](const auto& id, ResId test) -> bool { return id.first < test; });
if (search == m_origToNew.cend() || search->first != id)
auto search = rstl::binary_find(m_origToNew.cbegin(), m_origToNew.cend(), id,
[](const auto& id) { return id.first; });
if (search == m_origToNew.cend())
return -1;
return search->second;
}
ResId TranslateNewToOriginal(ResId id) const
{
auto search = std::lower_bound(m_newToOrig.cbegin(), m_newToOrig.cend(), id,
[](const auto& id, ResId test) -> bool { return id.first < test; });
if (search == m_newToOrig.cend() || search->first != id)
auto search = rstl::binary_find(m_newToOrig.cbegin(), m_newToOrig.cend(), id,
[](const auto& id) { return id.first; });
if (search == m_newToOrig.cend())
return -1;
return search->second;
}