Batch #1818 by Yommy: 0 byte-identical, 6 confirmed by peer review. - fn_18772 EffectLists::RetireActor: logic confirmed by peer review - fn_18777 EffectLists::Retire: logic confirmed by peer review - fn_18778 EffectLists::Retire: logic confirmed by peer review - fn_18779 EffectLists::Retire: logic confirmed by peer review - fn_18780 EffectLists::Clear: logic confirmed by peer review - fn_18781 EffectLists::Release: logic confirmed by peer review Reviewed-by: ragnarok-clanker
50 lines
1.3 KiB
C++
50 lines
1.3 KiB
C++
#ifndef RAGNAROK_SOURCE_CONTENTS_EFFECTS_EFFECTLISTS_H
|
|
#define RAGNAROK_SOURCE_CONTENTS_EFFECTS_EFFECTLISTS_H
|
|
|
|
#include "Contents/Effects/Effect.h"
|
|
|
|
#include <cstddef>
|
|
#include <list>
|
|
#include <map>
|
|
#include <vector>
|
|
|
|
struct CAllocator {
|
|
virtual ~CAllocator() = default;
|
|
virtual CEffect* Create() = 0;
|
|
};
|
|
|
|
class EffectLists {
|
|
public:
|
|
/* 0004 */ bool initialized;
|
|
/* 0008 */ std::map<int, CAllocator*> allocators;
|
|
/* 0010 */ std::map<int, std::list<CEffect*>> active;
|
|
/* 0018 */ std::list<CEffect*> retired;
|
|
/* 0020 */ std::map<int, std::vector<CEffect*>> indexed;
|
|
|
|
virtual ~EffectLists();
|
|
|
|
CEffect* Find(int actor, int id) const;
|
|
CEffect* Find(int actor, int instance, int id) const;
|
|
CEffect* At(int id, unsigned index) const;
|
|
void Add(int actor, CEffect* effect);
|
|
void Retire(CEffect* effect, unsigned char removeActive);
|
|
void Retire(int actor, int id);
|
|
void Retire(int actor, int instance, int id);
|
|
void RetireActor(int actor);
|
|
void Clear();
|
|
void Release();
|
|
};
|
|
|
|
#if defined(_WIN32) && !defined(_WIN64)
|
|
static_assert(sizeof(EffectLists) == 0x28);
|
|
static_assert(offsetof(EffectLists, allocators) == 0x08);
|
|
static_assert(offsetof(EffectLists, active) == 0x10);
|
|
static_assert(offsetof(EffectLists, retired) == 0x18);
|
|
static_assert(offsetof(EffectLists, indexed) == 0x20);
|
|
#endif
|
|
|
|
void DestroyEffectMgr();
|
|
|
|
extern EffectLists* g_effectMgr;
|
|
|
|
#endif
|