diff --git a/src/features/pedcols.cpp b/src/features/pedcols.cpp index 6a11849..6768f22 100755 --- a/src/features/pedcols.cpp +++ b/src/features/pedcols.cpp @@ -9,7 +9,6 @@ using namespace plugin; #define RwRGBAGetRGB(a) (*(DWORD *)&(a) & 0xFFFFFF) -std::unordered_map>> store; void PedColors::SetEditableMaterials(RpClump *pClump) { RpClumpForAllAtomics(pClump, [](RpAtomic * pAtomic, void *data) { @@ -35,7 +34,7 @@ void PedColors::SetEditableMaterials(RpClump *pClump) { default: return pMaterial; } - store[PedColors::m_pCurrentPed].push_back(std::make_pair(&pMaterial->color, *reinterpret_cast(&pMaterial->color))); + data.m_OriginalColors.push_back(std::make_pair(&pMaterial->color, *reinterpret_cast(&pMaterial->color))); pMaterial->color.red = data.m_Colors[idx].r; pMaterial->color.green = data.m_Colors[idx].g; pMaterial->color.blue = data.m_Colors[idx].b; @@ -105,9 +104,10 @@ void PedColors::Init() { }; Events::pedRenderEvent.after += [](CPed *pPed) { - for (auto &e : store[pPed]) { + auto &data = PedColors::m_PedData.Get(pPed); + for (auto &e : data.m_OriginalColors) { *static_cast(e.first) = e.second; } - store[pPed].clear(); + data.m_OriginalColors.clear(); }; } \ No newline at end of file diff --git a/src/features/pedcols.h b/src/features/pedcols.h index 533ff50..eff2305 100755 --- a/src/features/pedcols.h +++ b/src/features/pedcols.h @@ -14,6 +14,7 @@ class PedData { public: std::vector materials; std::vector m_Colors; + std::vector> m_OriginalColors; bool m_bUsingPedCols = false; bool m_bInitialized = false; int randId = -1;