DragonNest/Server/ServerCommon/DNReplaceString.h
Cussrro 47f7895977 Revert "修复编码问题"
This reverts commit 9e69c01767.
2024-12-21 10:04:04 +08:00

81 lines
No EOL
2.5 KiB
C++

#pragma once
class DNReplaceString
{
public:
struct __StaticReplaceStringInfo
{
enum
{
user_nick = 1,
user_class,
monster,
npc,
item,
skill,
map
};
int nType;
std::wstring szKey;
__StaticReplaceStringInfo(int type, const WCHAR* wszKey)
{
nType = type;
szKey = wszKey;
}
};
struct DynamicReplaceStringInfo
{
enum
{
STRING = 1,
INT,
};
char cValueType;
std::wstring szKey;
int nValue;
};
DNReplaceString();
virtual ~DNReplaceString();
// 문자열을 치환해서 완성 시켜준다.
// ReplaceStaticString 를 먼저 호출해서 미리 지정된 치환을 시켜주고
// ReplaceDynamicString 을 호출해서 유동적인 치환을 해준다. -_-;
#if defined(_SERVER) &&defined(PRE_ADD_MULTILANGUAGE)
bool Relpace(IN OUT std::wstring& str, std::vector<DynamicReplaceStringInfo>& info, MultiLanguage::SupportLanguage::eSupportLanguage eNation);
// 10번 몬스터의 이름
// {%monster:10} 과 같이 미리 지정된 타입의 스트링을 치환 해준다.
void ReplaceStaticString(IN OUT std::wstring& str, MultiLanguage::SupportLanguage::eSupportLanguage eNation);
// uistring 에 따로 저장되어잇는 인덱스 == aaa 라고 외부에서 지정
// {%aaa} 과 같이 유동적인 타입의 스트링을 치환 해준다.
void ReplaceDynamicString(IN OUT std::wstring& str, std::vector<DynamicReplaceStringInfo>& info, MultiLanguage::SupportLanguage::eSupportLanguage eNation);
#else //#if defined(_SERVER) &&defined(PRE_ADD_MULTILANGUAGE)
bool Relpace(IN OUT std::wstring& str, std::vector<DynamicReplaceStringInfo>& info);
// 10번 몬스터의 이름
// {%monster:10} 과 같이 미리 지정된 타입의 스트링을 치환 해준다.
void ReplaceStaticString(IN OUT std::wstring& str);
// uistring 에 따로 저장되어잇는 인덱스 == aaa 라고 외부에서 지정
// {%aaa} 과 같이 유동적인 타입의 스트링을 치환 해준다.
void ReplaceDynamicString(IN OUT std::wstring& str, std::vector<DynamicReplaceStringInfo>& info);
#endif //#if defined(_SERVER) &&defined(PRE_ADD_MULTILANGUAGE)
private:
#if defined(_SERVER) &&defined(PRE_ADD_MULTILANGUAGE)
std::wstring _GetStaticString(int nType, std::vector<std::wstring>& tokens, MultiLanguage::SupportLanguage::eSupportLanguage eNation);
std::wstring _GetString(int nStringID, MultiLanguage::SupportLanguage::eSupportLanguage eNation);
#else //#if defined(_SERVER) &&defined(PRE_ADD_MULTILANGUAGE)
std::wstring _GetStaticString(int nType, std::vector<std::wstring>& tokens);
std::wstring _GetString(int nStringID);
#endif //#if defined(_SERVER) &&defined(PRE_ADD_MULTILANGUAGE)
std::vector<__StaticReplaceStringInfo> m_StaticReplaceList;
};
extern DNReplaceString g_ReplaceString;