diff --git a/Source/UI/Cooldowns/CooldownState.cpp b/Source/UI/Cooldowns/CooldownState.cpp index 2364de54..1b79b691 100644 --- a/Source/UI/Cooldowns/CooldownState.cpp +++ b/Source/UI/Cooldowns/CooldownState.cpp @@ -21,6 +21,12 @@ CooldownState::CooldownState( std::memset(this->vertices, 0, sizeof(this->vertices)); } +// OFFSET: 0x00CA5120 +// FUNCTION: fn_20947 +CooldownState::~CooldownState() { + this->ClearEdges(); +} + // OFFSET: 0x00CA59C0 // FUNCTION: fn_20951 void CooldownState::ClearEdges() { diff --git a/Source/UI/Cooldowns/CooldownState.h b/Source/UI/Cooldowns/CooldownState.h index 255f742e..0415d562 100644 --- a/Source/UI/Cooldowns/CooldownState.h +++ b/Source/UI/Cooldowns/CooldownState.h @@ -36,6 +36,7 @@ struct CooldownState { /* 0334 */ std::uint32_t color; CooldownState(int slot, int x, int y, std::uint32_t duration, std::uint32_t start, std::uint32_t elapsed, int reverse); + ~CooldownState(); void ClearEdges(); void AddEdge(unsigned segment, float origin, int radius, unsigned char increasing); float Update(const CooldownClock& clock); diff --git a/Source/UI/Shortcuts/ShortcutCooldowns.cpp b/Source/UI/Shortcuts/ShortcutCooldowns.cpp index 6c3282c6..f1a80c5f 100644 --- a/Source/UI/Shortcuts/ShortcutCooldowns.cpp +++ b/Source/UI/Shortcuts/ShortcutCooldowns.cpp @@ -110,16 +110,16 @@ void ShortcutCooldowns::ApplyStart( const auto entry = find(); if (entry == this->records.end()) { - value.main.emplace_back(icon.slot, icon.x, icon.y, duration, now, 0, 0); + value.main.push_back(CooldownState(icon.slot, icon.x, icon.y, duration, now, 0, 0)); this->records.push_back(value); } else { const auto slot = std::find_if(entry->main.begin(), entry->main.end(), [&](const CooldownState& state) { return state.slot == icon.slot; }); if (slot == entry->main.end()) { - entry->main.emplace_back(icon.slot, icon.x, icon.y, duration, now, 0, 0); + entry->main.push_back(CooldownState(icon.slot, icon.x, icon.y, duration, now, 0, 0)); } else { this->records.erase(entry); - value.main.emplace_back(icon.slot, icon.x, icon.y, duration, now, 0, 0); + value.main.push_back(CooldownState(icon.slot, icon.x, icon.y, duration, now, 0, 0)); this->records.push_back(value); } } @@ -127,7 +127,7 @@ void ShortcutCooldowns::ApplyStart( for (const ShortcutCooldownIcon& icon : alternateIcons) { if (icon.id == id && find() == this->records.end()) { - value.alternate.emplace_back(icon.slot, icon.x, icon.y, duration, now, 0, 0); + value.alternate.push_back(CooldownState(icon.slot, icon.x, icon.y, duration, now, 0, 0)); this->records.push_back(value); } }