Batch #8194 by eAthena: 0 byte-identical, 1 confirmed by peer review. - fn_21953 CGameMode::ApplyStatusChange: logic confirmed by peer review Peer-reviewed-by: ragnarok-clanker, Yommy, secret Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#ifndef RAGNAROK_SOURCE_UI_COOLDOWNS_COOLDOWNOWNER_H
|
|
#define RAGNAROK_SOURCE_UI_COOLDOWNS_COOLDOWNOWNER_H
|
|
|
|
#include "UI/Cooldowns/CooldownDrawing.h"
|
|
|
|
#include <map>
|
|
|
|
class CooldownOwner {
|
|
public:
|
|
CooldownOwner();
|
|
~CooldownOwner();
|
|
void Register(unsigned id, std::uint32_t duration, std::uint32_t start, std::uint32_t elapsed);
|
|
void ClearReverseCommands();
|
|
void SubmitReverse();
|
|
void Draw(int centerX, int centerY, int radiusX, int radiusY, CooldownState& value, int limit, int offsetX, int offsetY);
|
|
|
|
CooldownState* Find(unsigned id);
|
|
void Erase(unsigned id);
|
|
// INLINED
|
|
void Remove(unsigned id) {
|
|
const auto entry = this->m_values.find(id);
|
|
if (entry != this->m_values.end()) {
|
|
this->m_values.erase(entry);
|
|
}
|
|
}
|
|
// INLINED
|
|
CooldownDrawing& Drawing() {
|
|
return this->m_drawing;
|
|
}
|
|
|
|
private:
|
|
/* 0000 */ bool m_initialized;
|
|
/* 0004 */ CooldownDrawing m_drawing;
|
|
/* 001C */ std::map<unsigned, CooldownState> m_values;
|
|
};
|
|
|
|
extern CooldownOwner* g_cooldownOwner;
|
|
|
|
#if defined(_WIN32) && !defined(_WIN64)
|
|
static_assert(sizeof(CooldownOwner) == 36);
|
|
#endif
|
|
|
|
#endif
|