#ifndef __PRIV_MANAGER_H #define __PRIV_MANAGER_H class CPrivManager : public singleton { public: CPrivManager(); void RequestGiveGuildPriv(DWORD guild_id, BYTE type, int value, time_t dur_time_sec); void RequestGiveEmpirePriv(BYTE empire, BYTE type, int value, time_t dur_time_sec); void RequestGiveCharacterPriv(DWORD pid, BYTE type, int value); void GiveGuildPriv(DWORD guild_id, BYTE type, int value, BYTE bLog, time_t end_time_sec); void GiveEmpirePriv(BYTE empire, BYTE type, int value, BYTE bLog, time_t end_time_sec); void GiveCharacterPriv(DWORD pid, BYTE type, int value, BYTE bLog); void RemoveGuildPriv(DWORD guild_id, BYTE type); void RemoveEmpirePriv(BYTE empire, BYTE type); void RemoveCharacterPriv(DWORD pid, BYTE type); int GetPriv(LPCHARACTER ch, BYTE type); int GetPrivByEmpire(BYTE bEmpire, BYTE type); int GetPrivByGuild(DWORD guild_id, BYTE type); int GetPrivByCharacter(DWORD pid, BYTE type); public: struct SPrivEmpireData { int m_value; time_t m_end_time_sec; }; SPrivEmpireData* GetPrivByEmpireEx(BYTE bEmpire, BYTE type); struct SPrivGuildData { int value; time_t end_time_sec; }; const SPrivGuildData* GetPrivByGuildEx( DWORD dwGuildID, BYTE byType ) const; private: SPrivEmpireData m_aakPrivEmpireData[MAX_PRIV_NUM][EMPIRE_MAX_NUM]; std::map m_aPrivGuild[MAX_PRIV_NUM]; std::map m_aPrivChar[MAX_PRIV_NUM]; }; #endif //martysama0134's 623a0779c74cb7565145d45548376308