Files
Sun1602/Server/Common/ArmorDamageParser.h
2022-10-26 12:25:11 +08:00

43 lines
1.4 KiB
C++

#pragma once
#include <SolarHashTable.h>
#include <Singleton.h>
#include <ServerStruct.h>
#include <SolarFileReader.h>
typedef util::SolarHashTable< ARMOR_DAMAGE_INFO* > ARMOR_DAMAGEINFO_HASH;
typedef ARMOR_DAMAGEINFO_HASH::iterator ARMOR_DAMAGEINFO_ITER;
class ArmorDamageParser : public util::Singleton<ArmorDamageParser>, public IParser
{
public:
ArmorDamageParser();
~ArmorDamageParser();
public:
// (CHANGES)(20100309)(hukim) Init(), Release() 오버라이딩 메서드 혼동을 막기 위해 virtual 키워드 추가
// (CHANGES)(20100309)(hukim) FindDamageRatio() 내부 변경을 일으키지 않기 때문에 const 추가
virtual VOID Init(DWORD pool_size);
virtual VOID Release();
virtual BOOL LoadScript(eSCRIPT_CODE script_code, BOOL is_reload);
DAMAGETYPE FindDamageRatio(BYTE arrmor_type, BYTE attack_type) const;
private:
// (CHANGES)(20100309)(hukim) 싱글톤 객체이므로 복사가 일어나선 안되기 때문에 __DISABLE_COPY() 추가
// (CHANGES)(20100309)(hukim) unload(), make_key() 외부에서 사용되지 않기 때문에 private로 변경
// (CHANGES)(20100309)(hukim) make_key() 내부 변경을 일으키지 않기 때문에 const 추가
// (CHANGES)(20100309)(hukim) m_szFileName는 사용되는 곳이 없기 때문에 주석 처리
__DISABLE_COPY(ArmorDamageParser);
BOOL load(BOOL is_reload);
VOID unload();
WORD make_key(BYTE arrmor_type, BYTE attack_type) const;
ARMOR_DAMAGEINFO_HASH* armor_damage_table_;
//TCHAR m_szFileName[MAX_PATH];
};