diff --git a/Source/Client/Application/Launcher.cpp b/Source/Client/Application/Launcher.cpp index d82edefb9..34913428f 100644 --- a/Source/Client/Application/Launcher.cpp +++ b/Source/Client/Application/Launcher.cpp @@ -100,6 +100,7 @@ #include #include "Resource/MSGSTRINGID.h" #include "Utility/Cipher/CryptName.h" +#include "Utility/Cipher/Obfuscate.h" // GLOBAL: gl_24398 RECT Rect; @@ -468,191 +469,139 @@ const char* EncryptedName<15, 0x0F0F8B6B8F9D19D1ULL>::Text() { // OFFSET: 0x00E55EC0 // FUNCTION: fn_24331 EncryptedName<14, 0xD98F03A52D35636DULL>& AdtestexeProcessName::operator()() const { - constexpr std::array source = CRYPT_NAME("ADTESTEXE.EXE", 0xD98F03A52D35636DULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("ADTESTEXE.EXE", 0xD98F03A52D35636DULL, std::uint8_t); } // OFFSET: 0x00E55F90 // FUNCTION: fn_24332 EncryptedName<13, 0x73D1674B61DF7B0BULL>& RagexeMProcessName::operator()() const { - constexpr std::array source = CRYPT_NAME("RAGEXE_M.EXE", 0x73D1674B61DF7B0BULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("RAGEXE_M.EXE", 0x73D1674B61DF7B0BULL, std::uint8_t); } // OFFSET: 0x00E56060 // FUNCTION: fn_24333 EncryptedName<13, 0x91651D81F559F971ULL>& SakexeMProcessName::operator()() const { - constexpr std::array source = CRYPT_NAME("SAKEXE_M.EXE", 0x91651D81F559F971ULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("SAKEXE_M.EXE", 0x91651D81F559F971ULL, std::uint8_t); } // OFFSET: 0x00E56130 // FUNCTION: fn_24334 EncryptedName<13, 0x17359BF953C367B3ULL>& Kernel32LibraryName::operator()() const { - constexpr std::array source = CRYPT_NAME("kernel32.dll", 0x17359BF953C367B3ULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("kernel32.dll", 0x17359BF953C367B3ULL, std::uint8_t); } // OFFSET: 0x00E56200 // FUNCTION: fn_24335 EncryptedName<10, 0x490FFB43A12F0DB9ULL>& PsapiLibraryName::operator()() const { - constexpr std::array source = CRYPT_NAME("psapi.dll", 0x490FFB43A12F0DB9ULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("psapi.dll", 0x490FFB43A12F0DB9ULL, std::uint8_t); } // OFFSET: 0x00E562D0 // FUNCTION: fn_24336 EncryptedName<25, 0x2FF3C5036D070127ULL>& CreateToolhelp32SnapshotName::operator()() const { - constexpr auto sourceText = CRYPT_NAME("CreateToolhelp32Snapshot", 0x2FF3C5036D070127ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("CreateToolhelp32Snapshot", 0x2FF3C5036D070127ULL); } // OFFSET: 0x00E563B0 // FUNCTION: fn_24337 EncryptedName<14, 0x3FAF85D995034FD7ULL>& EnumProcessesName::operator()() const { - constexpr std::array source = CRYPT_NAME("EnumProcesses", 0x3FAF85D995034FD7ULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("EnumProcesses", 0x3FAF85D995034FD7ULL, std::uint8_t); } // OFFSET: 0x00E56480 // FUNCTION: fn_24338 EncryptedName<39, 0x6961FF056999A303ULL>& AdventurerAgencyCreateInstanceName::operator()() const { - constexpr auto sourceText = CRYPT_NAME("CAdventurerAgencyMgr::CreateInstance()", 0x6961FF056999A303ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("CAdventurerAgencyMgr::CreateInstance()", 0x6961FF056999A303ULL); } // OFFSET: 0x00E56560 // FUNCTION: fn_24339 EncryptedName<40, 0x9DEFC105A1EB2F71ULL>& RequestJoinPartyCreateInstanceName::operator()() const { - constexpr auto sourceText = CRYPT_NAME("UIRequestJoinPartyMgr::CreateInstance()", 0x9DEFC105A1EB2F71ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("UIRequestJoinPartyMgr::CreateInstance()", 0x9DEFC105A1EB2F71ULL); } // OFFSET: 0x00E56640 // FUNCTION: fn_24340 EncryptedName<37, 0x0DF5B33D9F21EB79ULL>& AdventureGuideCreateInstanceName::operator()() const { - constexpr auto sourceText = CRYPT_NAME("CAdventureGuideMgr::CreateInstance()", 0x0DF5B33D9F21EB79ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("CAdventureGuideMgr::CreateInstance()", 0x0DF5B33D9F21EB79ULL); } // OFFSET: 0x00E56720 // FUNCTION: fn_24341 EncryptedName<5, 0x01E7898D9D235DDFULL>& GoodResultName::operator()() const { - constexpr std::array source = CRYPT_NAME("good", 0x01E7898D9D235DDFULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("good", 0x01E7898D9D235DDFULL, std::uint8_t); } // OFFSET: 0x00E567E0 // FUNCTION: fn_24342 EncryptedName<15, 0x1D6D75EDE7CD311FULL>& Process32FirstName::operator()() const { - constexpr std::array source = CRYPT_NAME("Process32First", 0x1D6D75EDE7CD311FULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("Process32First", 0x1D6D75EDE7CD311FULL, std::uint8_t); } // OFFSET: 0x00E568C0 // FUNCTION: fn_24343 EncryptedName<19, 0x151F77EBEBBB2147ULL>& EnumProcessModulesName::operator()() const { - constexpr auto sourceText = CRYPT_NAME("EnumProcessModules", 0x151F77EBEBBB2147ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("EnumProcessModules", 0x151F77EBEBBB2147ULL); } // OFFSET: 0x00E56990 // FUNCTION: fn_24344 EncryptedName<14, 0x3375B1C7DBB5FD55ULL>& Process32NextName::operator()() const { - constexpr std::array source = CRYPT_NAME("Process32Next", 0x3375B1C7DBB5FD55ULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("Process32Next", 0x3375B1C7DBB5FD55ULL, std::uint8_t); } // OFFSET: 0x00E56A60 // FUNCTION: fn_24345 EncryptedName<19, 0x2D394DBD0F332733ULL>& GetModuleBaseNameAName::operator()() const { - constexpr auto sourceText = CRYPT_NAME("GetModuleBaseNameA", 0x2D394DBD0F332733ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("GetModuleBaseNameA", 0x2D394DBD0F332733ULL); } // OFFSET: 0x00E56B30 // FUNCTION: fn_24346 EncryptedName<11, 0x7D993F650D2785FFULL>& RagexeModuleName::operator()() const { - constexpr std::array source = CRYPT_NAME("RAGEXE.EXE", 0x7D993F650D2785FFULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("RAGEXE.EXE", 0x7D993F650D2785FFULL, std::uint8_t); } // OFFSET: 0x00E56C00 // FUNCTION: fn_24347 EncryptedName<11, 0x812BE72BCD5707B7ULL>& RagexeProcessName::operator()() const { - constexpr std::array source = CRYPT_NAME("RAGEXE.EXE", 0x812BE72BCD5707B7ULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("RAGEXE.EXE", 0x812BE72BCD5707B7ULL, std::uint8_t); } // OFFSET: 0x00E56CD0 // FUNCTION: fn_24348 EncryptedName<11, 0x61FF87ED7BF39BE1ULL>& SakexeModuleName::operator()() const { - constexpr std::array source = CRYPT_NAME("SAKEXE.EXE", 0x61FF87ED7BF39BE1ULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("SAKEXE.EXE", 0x61FF87ED7BF39BE1ULL, std::uint8_t); } // OFFSET: 0x00E56DA0 // FUNCTION: fn_24349 EncryptedName<11, 0x59278F63D79F3DA1ULL>& SakexeProcessName::operator()() const { - constexpr std::array source = CRYPT_NAME("SAKEXE.EXE", 0x59278F63D79F3DA1ULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("SAKEXE.EXE", 0x59278F63D79F3DA1ULL, std::uint8_t); } // OFFSET: 0x00E56E70 // FUNCTION: fn_24350 EncryptedName<13, 0x2D3B15774149D5DDULL>& RagexereModuleName::operator()() const { - constexpr std::array source = CRYPT_NAME("RAGEXERE.EXE", 0x2D3B15774149D5DDULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("RAGEXERE.EXE", 0x2D3B15774149D5DDULL, std::uint8_t); } // OFFSET: 0x00E56F40 // FUNCTION: fn_24351 EncryptedName<13, 0x31D7C1EDA345E36DULL>& RagexereProcessName::operator()() const { - constexpr std::array source = CRYPT_NAME("RAGEXERE.EXE", 0x31D7C1EDA345E36DULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("RAGEXERE.EXE", 0x31D7C1EDA345E36DULL, std::uint8_t); } // OFFSET: 0x00E57010 // FUNCTION: fn_24352 EncryptedName<15, 0xD3755DD95F47A909ULL>& RagtestexeProcessName::operator()() const { - constexpr std::array source = CRYPT_NAME("RAGTESTEXE.EXE", 0xD3755DD95F47A909ULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("RAGTESTEXE.EXE", 0xD3755DD95F47A909ULL, std::uint8_t); } // OFFSET: 0x00E570F0 // FUNCTION: fn_24353 EncryptedName<15, 0x0F0F8B6B8F9D19D1ULL>& SaktestexeProcessName::operator()() const { - constexpr std::array source = CRYPT_NAME("SAKTESTEXE.EXE", 0x0F0F8B6B8F9D19D1ULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("SAKTESTEXE.EXE", 0x0F0F8B6B8F9D19D1ULL, std::uint8_t); } // OFFSET: 0x00E57B50 diff --git a/Source/Client/Mode/LoginMode.cpp b/Source/Client/Mode/LoginMode.cpp index 4041639ba..6ffce4743 100644 --- a/Source/Client/Mode/LoginMode.cpp +++ b/Source/Client/Mode/LoginMode.cpp @@ -82,6 +82,7 @@ #include "Utility/Cipher/AES.h" #include "Utility/Cipher/Rijndael.h" #include "Utility/Cipher/CryptName.h" +#include "Utility/Cipher/Obfuscate.h" #include "Resource/MSGSTRINGID.h" #include @@ -370,9 +371,7 @@ struct CharacterInfo2SizeErrorFormat { // OFFSET: 0x00D8CA50 // FUNCTION: fn_22261 EncryptedName<75, 0xED15938D333D2DB9ULL>& CharacterInfo2SizeErrorFormat::operator()() const { - constexpr std::array source = CRYPT_NAME("CHARACTER_INFO2 size error!! character num : %d CHARACTER_INFO2 size : %d", 0xED15938D333D2DB9ULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("CHARACTER_INFO2 size error!! character num : %d CHARACTER_INFO2 size : %d", 0xED15938D333D2DB9ULL, char); } struct PasswordRetryExceededMessage { @@ -382,9 +381,7 @@ struct PasswordRetryExceededMessage { // OFFSET: 0x00D8CB50 // FUNCTION: fn_22262 EncryptedName<103, 0xBF2B4B31397FF5A7ULL>& PasswordRetryExceededMessage::operator()() const { - constexpr std::array source = CRYPT_NAME("비밀번호를 3회 잘못입력하였습니다. 비밀번호를 확인해주세요. 클라이언트 실행을 종료합니다.", 0xBF2B4B31397FF5A7ULL); - thread_local EncryptedName name(source); - return name; + OBFUSCATE_ARRAY_BODY("비밀번호를 3회 잘못입력하였습니다. 비밀번호를 확인해주세요. 클라이언트 실행을 종료합니다.", 0xBF2B4B31397FF5A7ULL, char); } // OFFSET: 0x00D8D4F0 diff --git a/Source/Client/Session/Session.cpp b/Source/Client/Session/Session.cpp index a4ffdd006..0b0e21a41 100644 --- a/Source/Client/Session/Session.cpp +++ b/Source/Client/Session/Session.cpp @@ -76,6 +76,7 @@ #include #include "Utility/Math/AffineMatrix.h" #include "Utility/Cipher/CryptName.h" +#include "Utility/Cipher/Obfuscate.h" // STATIC: 0x01732638 // GLOBAL: gl_24474 @@ -5333,56 +5334,16 @@ void CSession::InitResourceNameTables() { bodyJobNames[364] = "HYPER_NOVICE_RIDING"; bodyJobNames[358] = "SPIRIT_HANDLER"; bodyJobNames[365] = "SPIRIT_HANDLER_RIDING"; - bodyJobNames[401] = []() -> EncryptedName<6, 0xB39FA7917BCFBB8DULL>& { - constexpr std::array source = CRYPT_NAME("DRUID", 0xB39FA7917BCFBB8DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - bodyJobNames[402] = []() -> EncryptedName<6, 0x8D1D0FF1AF2B13F7ULL>& { - constexpr std::array source = CRYPT_NAME("DRUID", 0x8D1D0FF1AF2B13F7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - bodyJobNames[403] = []() -> EncryptedName<7, 0x4F637DC51307B759ULL>& { - constexpr std::array source = CRYPT_NAME("KARNOS", 0x4F637DC51307B759ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - bodyJobNames[404] = []() -> EncryptedName<7, 0x2DCB7567394DC1ABULL>& { - constexpr std::array source = CRYPT_NAME("KARNOS", 0x2DCB7567394DC1ABULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - bodyJobNames[405] = []() -> EncryptedName<7, 0x6BA1C1132F033B75ULL>& { - constexpr std::array source = CRYPT_NAME("ALITEA", 0x6BA1C1132F033B75ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - bodyJobNames[406] = []() -> EncryptedName<9, 0xA12DAB392545D72FULL>& { - constexpr std::array source = CRYPT_NAME("WEREWOLF", 0xA12DAB392545D72FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - bodyJobNames[407] = []() -> EncryptedName<11, 0x33133B977BCD03CDULL>& { - constexpr std::array source = CRYPT_NAME("WERERAPTOR", 0x33133B977BCD03CDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - bodyJobNames[408] = []() -> EncryptedName<13, 0x2FEB8739E5975BD1ULL>& { - constexpr std::array source = CRYPT_NAME("DRUID_RIDING", 0x2FEB8739E5975BD1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - bodyJobNames[409] = []() -> EncryptedName<14, 0x39A39F87DD5F535BULL>& { - constexpr std::array source = CRYPT_NAME("KARNOS_RIDING", 0x39A39F87DD5F535BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - bodyJobNames[410] = []() -> EncryptedName<14, 0x6FE153231D879777ULL>& { - constexpr std::array source = CRYPT_NAME("ALITEA_RIDING", 0x6FE153231D879777ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); + bodyJobNames[401] = OBFUSCATE_ARRAY("DRUID", 0xB39FA7917BCFBB8DULL, char).Text(); + bodyJobNames[402] = OBFUSCATE_ARRAY("DRUID", 0x8D1D0FF1AF2B13F7ULL, char).Text(); + bodyJobNames[403] = OBFUSCATE_ARRAY("KARNOS", 0x4F637DC51307B759ULL, char).Text(); + bodyJobNames[404] = OBFUSCATE_ARRAY("KARNOS", 0x2DCB7567394DC1ABULL, char).Text(); + bodyJobNames[405] = OBFUSCATE_ARRAY("ALITEA", 0x6BA1C1132F033B75ULL, char).Text(); + bodyJobNames[406] = OBFUSCATE_ARRAY("WEREWOLF", 0xA12DAB392545D72FULL, char).Text(); + bodyJobNames[407] = OBFUSCATE_ARRAY("WERERAPTOR", 0x33133B977BCD03CDULL, char).Text(); + bodyJobNames[408] = OBFUSCATE_ARRAY("DRUID_RIDING", 0x2FEB8739E5975BD1ULL, char).Text(); + bodyJobNames[409] = OBFUSCATE_ARRAY("KARNOS_RIDING", 0x39A39F87DD5F535BULL, char).Text(); + bodyJobNames[410] = OBFUSCATE_ARRAY("ALITEA_RIDING", 0x6FE153231D879777ULL, char).Text(); std::vector& imfNames = reinterpret_cast&>(this->m_imfNames); imfNames.resize(28053, "초보자"); imfNames[1] = "검사"; @@ -5851,461 +5812,97 @@ void CSession::InitResourceNameTables() { } } std::vector& shieldJobNames = reinterpret_cast&>(this->m_shieldJobNames); - shieldJobNames.resize(28053, []() -> EncryptedName<14, 0x234977DDB54BC71DULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0x234977DDB54BC71DULL); - thread_local EncryptedName name(source); - return name; - }().Text()); - shieldJobNames[0] = []() -> EncryptedName<14, 0xEF6D1D893F2B2DC5ULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0xEF6D1D893F2B2DC5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[1] = []() -> EncryptedName<10, 0xE55723712993051DULL>& { - constexpr std::array source = CRYPT_NAME("검사\\검사", 0xE55723712993051DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[2] = []() -> EncryptedName<14, 0x793F370985ED674FULL>& { - constexpr std::array source = CRYPT_NAME("마법사\\마법사", 0x793F370985ED674FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[3] = []() -> EncryptedName<10, 0xCB1D253B7FE1F563ULL>& { - constexpr std::array source = CRYPT_NAME("궁수\\궁수", 0xCB1D253B7FE1F563ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[4] = []() -> EncryptedName<14, 0x7115D9F973F913C9ULL>& { - constexpr std::array source = CRYPT_NAME("성직자\\성직자", 0x7115D9F973F913C9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[5] = []() -> EncryptedName<10, 0x7321C3814F8799E1ULL>& { - constexpr std::array source = CRYPT_NAME("상인\\상인", 0x7321C3814F8799E1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[6] = []() -> EncryptedName<10, 0x7941D76335CFA14FULL>& { - constexpr std::array source = CRYPT_NAME("도둑\\도둑", 0x7941D76335CFA14FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[7] = []() -> EncryptedName<10, 0x0F15B16B5BAFD57FULL>& { - constexpr std::array source = CRYPT_NAME("기사\\기사", 0x0F15B16B5BAFD57FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[8] = []() -> EncryptedName<18, 0x7DE349D717D7F123ULL>& { - constexpr std::array source = CRYPT_NAME("프리스트\\프리스트", 0x7DE349D717D7F123ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[9] = []() -> EncryptedName<14, 0x9FED7DA189490D5DULL>& { - constexpr std::array source = CRYPT_NAME("위저드\\위저드", 0x9FED7DA189490D5DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[10] = []() -> EncryptedName<14, 0x452FEF0D7FC95565ULL>& { - constexpr std::array source = CRYPT_NAME("제철공\\제철공", 0x452FEF0D7FC95565ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[11] = []() -> EncryptedName<10, 0xF3CB6F7711A71B6DULL>& { - constexpr std::array source = CRYPT_NAME("헌터\\헌터", 0xF3CB6F7711A71B6DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[12] = []() -> EncryptedName<14, 0x839B27DF8F5967B3ULL>& { - constexpr std::array source = CRYPT_NAME("어세신\\어세신", 0x839B27DF8F5967B3ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[13] = []() -> EncryptedName<28, 0x0F41EBBDA32D1B17ULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x0F41EBBDA32D1B17ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[14] = []() -> EncryptedName<22, 0x2D51E3B7236175EDULL>& { - constexpr std::array source = CRYPT_NAME("크루세이더\\크루세이더", 0x2D51E3B7236175EDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[15] = []() -> EncryptedName<10, 0x176F138D5DD7F365ULL>& { - constexpr std::array source = CRYPT_NAME("몽크\\몽크", 0x176F138D5DD7F365ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[16] = []() -> EncryptedName<14, 0xFBD599E117C547C1ULL>& { - constexpr std::array source = CRYPT_NAME("세이지\\세이지", 0xFBD599E117C547C1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[17] = []() -> EncryptedName<10, 0x192D654D29337BE5ULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0x192D654D29337BE5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[18] = []() -> EncryptedName<18, 0xB3E307A5F753D5E3ULL>& { - constexpr std::array source = CRYPT_NAME("연금술사\\연금술사", 0xB3E307A5F753D5E3ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[19] = []() -> EncryptedName<10, 0x79E915E9AF6F55DDULL>& { - constexpr std::array source = CRYPT_NAME("바드\\바드", 0x79E915E9AF6F55DDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[20] = []() -> EncryptedName<10, 0xB7AFBD2FD9FD7501ULL>& { - constexpr std::array source = CRYPT_NAME("무희\\무희", 0xB7AFBD2FD9FD7501ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[21] = []() -> EncryptedName<34, 0x6BDF334F2BFDAD51ULL>& { - constexpr std::array source = CRYPT_NAME("신페코크루세이더\\신페코크루세이더", 0x6BDF334F2BFDAD51ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[23] = []() -> EncryptedName<14, 0x674D9F3975573D41ULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0x674D9F3975573D41ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[22] = []() -> EncryptedName<10, 0x0B23D10F2F49D72BULL>& { - constexpr std::array source = CRYPT_NAME("결혼\\결혼", 0x0B23D10F2F49D72BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[26] = []() -> EncryptedName<10, 0x136F2F9915D1DBCFULL>& { - constexpr std::array source = CRYPT_NAME("결혼\\결혼", 0x136F2F9915D1DBCFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[27] = []() -> EncryptedName<10, 0x114901C7E37F6D49ULL>& { - constexpr std::array source = CRYPT_NAME("결혼\\결혼", 0x114901C7E37F6D49ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[28] = []() -> EncryptedName<10, 0x7D5D0F110B6B8371ULL>& { - constexpr std::array source = CRYPT_NAME("결혼\\결혼", 0x7D5D0F110B6B8371ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[29] = []() -> EncryptedName<10, 0xADC51BF9C98B413DULL>& { - constexpr std::array source = CRYPT_NAME("결혼\\결혼", 0xADC51BF9C98B413DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[30] = []() -> EncryptedName<10, 0xDF8117FF49CFF551ULL>& { - constexpr std::array source = CRYPT_NAME("결혼\\결혼", 0xDF8117FF49CFF551ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[24] = []() -> EncryptedName<10, 0x87E3D1C50D572DEFULL>& { - constexpr std::array source = CRYPT_NAME("건너\\건너", 0x87E3D1C50D572DEFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[25] = []() -> EncryptedName<10, 0x51BB39B763BBBD8DULL>& { - constexpr std::array source = CRYPT_NAME("닌자\\닌자", 0x51BB39B763BBBD8DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[164] = []() -> EncryptedName<10, 0xDB27CB557D038759ULL>& { - constexpr std::array source = CRYPT_NAME("닌자\\닌자", 0xDB27CB557D038759ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[167] = []() -> EncryptedName<14, 0x3FA3AFA7035DE3FFULL>& { - constexpr std::array source = CRYPT_NAME("위저드\\위저드", 0x3FA3AFA7035DE3FFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[165] = []() -> EncryptedName<10, 0x0399459DAF454F0FULL>& { - constexpr std::array source = CRYPT_NAME("건너\\건너", 0x0399459DAF454F0FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[166] = []() -> EncryptedName<10, 0xD5A78DB38D8DAFABULL>& { - constexpr std::array source = CRYPT_NAME("검사\\검사", 0xD5A78DB38D8DAFABULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[168] = []() -> EncryptedName<14, 0xA597A7E7492B39D5ULL>& { - constexpr std::array source = CRYPT_NAME("제철공\\제철공", 0xA597A7E7492B39D5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[169] = []() -> EncryptedName<10, 0xFFABE3D5D1BBEF73ULL>& { - constexpr std::array source = CRYPT_NAME("상인\\상인", 0xFFABE3D5D1BBEF73ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[170] = []() -> EncryptedName<18, 0xC70319B5EB61598FULL>& { - constexpr std::array source = CRYPT_NAME("연금술사\\연금술사", 0xC70319B5EB61598FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[171] = []() -> EncryptedName<18, 0x0B8745519B1F95D7ULL>& { - constexpr std::array source = CRYPT_NAME("연금술사\\연금술사", 0x0B8745519B1F95D7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[172] = []() -> EncryptedName<10, 0x8783C33941E15117ULL>& { - constexpr std::array source = CRYPT_NAME("궁수\\궁수", 0x8783C33941E15117ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[173] = []() -> EncryptedName<18, 0x271B45771F83DD9FULL>& { - constexpr std::array source = CRYPT_NAME("태권소년\\태권소년", 0x271B45771F83DD9FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[174] = []() -> EncryptedName<14, 0xC1BB8111EDD183E1ULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0xC1BB8111EDD183E1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[175] = []() -> EncryptedName<10, 0x1767DDE18D779D8BULL>& { - constexpr std::array source = CRYPT_NAME("몽크\\몽크", 0x1767DDE18D779D8BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[176] = []() -> EncryptedName<14, 0x01CB4F1DF9D3F931ULL>& { - constexpr std::array source = CRYPT_NAME("성직자\\성직자", 0x01CB4F1DF9D3F931ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[177] = []() -> EncryptedName<10, 0xC5B1BBCD9BC9C997ULL>& { - constexpr std::array source = CRYPT_NAME("몽크\\몽크", 0xC5B1BBCD9BC9C997ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[178] = []() -> EncryptedName<14, 0x792FFD1325418FB5ULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0x792FFD1325418FB5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[179] = []() -> EncryptedName<18, 0x49D33529F1556333ULL>& { - constexpr std::array source = CRYPT_NAME("프리스트\\프리스트", 0x49D33529F1556333ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[180] = []() -> EncryptedName<14, 0xE33F2FF779878559ULL>& { - constexpr std::array source = CRYPT_NAME("마법사\\마법사", 0xE33F2FF779878559ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[181] = []() -> EncryptedName<14, 0xF15F8785CDE369BFULL>& { - constexpr std::array source = CRYPT_NAME("세이지\\세이지", 0xF15F8785CDE369BFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[182] = []() -> EncryptedName<14, 0x81F58DED5D470D01ULL>& { - constexpr std::array source = CRYPT_NAME("세이지\\세이지", 0x81F58DED5D470D01ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[183] = []() -> EncryptedName<14, 0x454D31872BB3EDCBULL>& { - constexpr std::array source = CRYPT_NAME("위저드\\위저드", 0x454D31872BB3EDCBULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[184] = []() -> EncryptedName<14, 0x41CFCB831F6B6B91ULL>& { - constexpr std::array source = CRYPT_NAME("위저드\\위저드", 0x41CFCB831F6B6B91ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[185] = []() -> EncryptedName<14, 0x5DE7712FAB613F75ULL>& { - constexpr std::array source = CRYPT_NAME("세이지\\세이지", 0x5DE7712FAB613F75ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[186] = []() -> EncryptedName<14, 0x0F97E779A933D917ULL>& { - constexpr std::array source = CRYPT_NAME("위저드\\위저드", 0x0F97E779A933D917ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[187] = []() -> EncryptedName<18, 0x3789496BE3E1D141ULL>& { - constexpr std::array source = CRYPT_NAME("연금술사\\연금술사", 0x3789496BE3E1D141ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[188] = []() -> EncryptedName<14, 0x4331A17F33095FEBULL>& { - constexpr std::array source = CRYPT_NAME("제철공\\제철공", 0x4331A17F33095FEBULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[189] = []() -> EncryptedName<10, 0xD1056FF94D4D2773ULL>& { - constexpr std::array source = CRYPT_NAME("몽크\\몽크", 0xD1056FF94D4D2773ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[190] = []() -> EncryptedName<14, 0xB127A19D775BF751ULL>& { - constexpr std::array source = CRYPT_NAME("어세신\\어세신", 0xB127A19D775BF751ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[191] = []() -> EncryptedName<10, 0x0F61499B4973EB5DULL>& { - constexpr std::array source = CRYPT_NAME("도둑\\도둑", 0x0F61499B4973EB5DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[192] = []() -> EncryptedName<10, 0xB7A96F8701BB4B6BULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0xB7A96F8701BB4B6BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[193] = []() -> EncryptedName<10, 0xA31F69E7EFED01C9ULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0xA31F69E7EFED01C9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[194] = []() -> EncryptedName<10, 0xBFF5C517A1A77F59ULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0xBFF5C517A1A77F59ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[195] = []() -> EncryptedName<14, 0x659975C121557D3DULL>& { - constexpr std::array source = CRYPT_NAME("어세신\\어세신", 0x659975C121557D3DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[196] = []() -> EncryptedName<14, 0x85E1F5A7A5755B7FULL>& { - constexpr std::array source = CRYPT_NAME("어세신\\어세신", 0x85E1F5A7A5755B7FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[197] = []() -> EncryptedName<10, 0xAD6153019F93A527ULL>& { - constexpr std::array source = CRYPT_NAME("무희\\무희", 0xAD6153019F93A527ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[198] = []() -> EncryptedName<10, 0xADADEB4DF7813B55ULL>& { - constexpr std::array source = CRYPT_NAME("바드\\바드", 0xADADEB4DF7813B55ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[199] = []() -> EncryptedName<10, 0xD9452D81E5CD99C1ULL>& { - constexpr std::array source = CRYPT_NAME("바드\\바드", 0xD9452D81E5CD99C1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[200] = []() -> EncryptedName<10, 0xD7A749EB27D5BF6DULL>& { - constexpr std::array source = CRYPT_NAME("헌터\\헌터", 0xD7A749EB27D5BF6DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[201] = []() -> EncryptedName<10, 0xB195637DAFCB0D59ULL>& { - constexpr std::array source = CRYPT_NAME("무희\\무희", 0xB195637DAFCB0D59ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[202] = []() -> EncryptedName<10, 0xB19D1FA9116F39D3ULL>& { - constexpr std::array source = CRYPT_NAME("무희\\무희", 0xB19D1FA9116F39D3ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[203] = []() -> EncryptedName<10, 0x9569C9C7E70909AFULL>& { - constexpr std::array source = CRYPT_NAME("바드\\바드", 0x9569C9C7E70909AFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[204] = []() -> EncryptedName<10, 0xF715514F5961B75BULL>& { - constexpr std::array source = CRYPT_NAME("헌터\\헌터", 0xF715514F5961B75BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[205] = []() -> EncryptedName<18, 0x4191BB5531FD3999ULL>& { - constexpr std::array source = CRYPT_NAME("태권소년\\태권소년", 0x4191BB5531FD3999ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[206] = []() -> EncryptedName<18, 0xBD2BA1C11B01E73BULL>& { - constexpr std::array source = CRYPT_NAME("프리스트\\프리스트", 0xBD2BA1C11B01E73BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[207] = []() -> EncryptedName<18, 0x4B755DB19953E311ULL>& { - constexpr std::array source = CRYPT_NAME("프리스트\\프리스트", 0x4B755DB19953E311ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[208] = []() -> EncryptedName<14, 0xC9712D676B5B3943ULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0xC9712D676B5B3943ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[209] = []() -> EncryptedName<10, 0xED15938D333D2DB9ULL>& { - constexpr std::array source = CRYPT_NAME("검사\\검사", 0xED15938D333D2DB9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[210] = []() -> EncryptedName<14, 0xD98F5345098D630DULL>& { - constexpr std::array source = CRYPT_NAME("마법사\\마법사", 0xD98F5345098D630DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[211] = []() -> EncryptedName<10, 0x9B0F234DEFDF7593ULL>& { - constexpr std::array source = CRYPT_NAME("궁수\\궁수", 0x9B0F234DEFDF7593ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[212] = []() -> EncryptedName<14, 0xFD69A9B3F311818DULL>& { - constexpr std::array source = CRYPT_NAME("성직자\\성직자", 0xFD69A9B3F311818DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[213] = []() -> EncryptedName<10, 0x7F2DFFC1ABE91F2BULL>& { - constexpr std::array source = CRYPT_NAME("상인\\상인", 0x7F2DFFC1ABE91F2BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[214] = []() -> EncryptedName<10, 0x1F1D51274373C1FDULL>& { - constexpr std::array source = CRYPT_NAME("헌터\\헌터", 0x1F1D51274373C1FDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[215] = []() -> EncryptedName<14, 0x5DAD2D25D9259B93ULL>& { - constexpr std::array source = CRYPT_NAME("어세신\\어세신", 0x5DAD2D25D9259B93ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[216] = []() -> EncryptedName<10, 0x6BF729E30729CF29ULL>& { - constexpr std::array source = CRYPT_NAME("몽크\\몽크", 0x6BF729E30729CF29ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[217] = []() -> EncryptedName<14, 0x3D371F5B0F7F9327ULL>& { - constexpr std::array source = CRYPT_NAME("세이지\\세이지", 0x3D371F5B0F7F9327ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[218] = []() -> EncryptedName<10, 0x610F7DD1EFC1C91BULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0x610F7DD1EFC1C91BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[219] = []() -> EncryptedName<18, 0xC5995F4B9FE96B89ULL>& { - constexpr std::array source = CRYPT_NAME("연금술사\\연금술사", 0xC5995F4B9FE96B89ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[220] = []() -> EncryptedName<10, 0x097389157345A787ULL>& { - constexpr std::array source = CRYPT_NAME("바드\\바드", 0x097389157345A787ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[221] = []() -> EncryptedName<10, 0x5F93A1C3A7AD7537ULL>& { - constexpr std::array source = CRYPT_NAME("무희\\무희", 0x5F93A1C3A7AD7537ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - shieldJobNames[222] = []() -> EncryptedName<14, 0x875FCDF1E7A1795FULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0x875FCDF1E7A1795FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); + shieldJobNames.resize(28053, OBFUSCATE_ARRAY("초보자\\초보자", 0x234977DDB54BC71DULL, char).Text()); + shieldJobNames[0] = OBFUSCATE_ARRAY("초보자\\초보자", 0xEF6D1D893F2B2DC5ULL, char).Text(); + shieldJobNames[1] = OBFUSCATE_ARRAY("검사\\검사", 0xE55723712993051DULL, char).Text(); + shieldJobNames[2] = OBFUSCATE_ARRAY("마법사\\마법사", 0x793F370985ED674FULL, char).Text(); + shieldJobNames[3] = OBFUSCATE_ARRAY("궁수\\궁수", 0xCB1D253B7FE1F563ULL, char).Text(); + shieldJobNames[4] = OBFUSCATE_ARRAY("성직자\\성직자", 0x7115D9F973F913C9ULL, char).Text(); + shieldJobNames[5] = OBFUSCATE_ARRAY("상인\\상인", 0x7321C3814F8799E1ULL, char).Text(); + shieldJobNames[6] = OBFUSCATE_ARRAY("도둑\\도둑", 0x7941D76335CFA14FULL, char).Text(); + shieldJobNames[7] = OBFUSCATE_ARRAY("기사\\기사", 0x0F15B16B5BAFD57FULL, char).Text(); + shieldJobNames[8] = OBFUSCATE_ARRAY("프리스트\\프리스트", 0x7DE349D717D7F123ULL, char).Text(); + shieldJobNames[9] = OBFUSCATE_ARRAY("위저드\\위저드", 0x9FED7DA189490D5DULL, char).Text(); + shieldJobNames[10] = OBFUSCATE_ARRAY("제철공\\제철공", 0x452FEF0D7FC95565ULL, char).Text(); + shieldJobNames[11] = OBFUSCATE_ARRAY("헌터\\헌터", 0xF3CB6F7711A71B6DULL, char).Text(); + shieldJobNames[12] = OBFUSCATE_ARRAY("어세신\\어세신", 0x839B27DF8F5967B3ULL, char).Text(); + shieldJobNames[13] = OBFUSCATE_ARRAY("페코페코_기사\\페코페코_기사", 0x0F41EBBDA32D1B17ULL, char).Text(); + shieldJobNames[14] = OBFUSCATE_ARRAY("크루세이더\\크루세이더", 0x2D51E3B7236175EDULL, char).Text(); + shieldJobNames[15] = OBFUSCATE_ARRAY("몽크\\몽크", 0x176F138D5DD7F365ULL, char).Text(); + shieldJobNames[16] = OBFUSCATE_ARRAY("세이지\\세이지", 0xFBD599E117C547C1ULL, char).Text(); + shieldJobNames[17] = OBFUSCATE_ARRAY("로그\\로그", 0x192D654D29337BE5ULL, char).Text(); + shieldJobNames[18] = OBFUSCATE_ARRAY("연금술사\\연금술사", 0xB3E307A5F753D5E3ULL, char).Text(); + shieldJobNames[19] = OBFUSCATE_ARRAY("바드\\바드", 0x79E915E9AF6F55DDULL, char).Text(); + shieldJobNames[20] = OBFUSCATE_ARRAY("무희\\무희", 0xB7AFBD2FD9FD7501ULL, char).Text(); + shieldJobNames[21] = OBFUSCATE_ARRAY("신페코크루세이더\\신페코크루세이더", 0x6BDF334F2BFDAD51ULL, char).Text(); + shieldJobNames[23] = OBFUSCATE_ARRAY("초보자\\초보자", 0x674D9F3975573D41ULL, char).Text(); + shieldJobNames[22] = OBFUSCATE_ARRAY("결혼\\결혼", 0x0B23D10F2F49D72BULL, char).Text(); + shieldJobNames[26] = OBFUSCATE_ARRAY("결혼\\결혼", 0x136F2F9915D1DBCFULL, char).Text(); + shieldJobNames[27] = OBFUSCATE_ARRAY("결혼\\결혼", 0x114901C7E37F6D49ULL, char).Text(); + shieldJobNames[28] = OBFUSCATE_ARRAY("결혼\\결혼", 0x7D5D0F110B6B8371ULL, char).Text(); + shieldJobNames[29] = OBFUSCATE_ARRAY("결혼\\결혼", 0xADC51BF9C98B413DULL, char).Text(); + shieldJobNames[30] = OBFUSCATE_ARRAY("결혼\\결혼", 0xDF8117FF49CFF551ULL, char).Text(); + shieldJobNames[24] = OBFUSCATE_ARRAY("건너\\건너", 0x87E3D1C50D572DEFULL, char).Text(); + shieldJobNames[25] = OBFUSCATE_ARRAY("닌자\\닌자", 0x51BB39B763BBBD8DULL, char).Text(); + shieldJobNames[164] = OBFUSCATE_ARRAY("닌자\\닌자", 0xDB27CB557D038759ULL, char).Text(); + shieldJobNames[167] = OBFUSCATE_ARRAY("위저드\\위저드", 0x3FA3AFA7035DE3FFULL, char).Text(); + shieldJobNames[165] = OBFUSCATE_ARRAY("건너\\건너", 0x0399459DAF454F0FULL, char).Text(); + shieldJobNames[166] = OBFUSCATE_ARRAY("검사\\검사", 0xD5A78DB38D8DAFABULL, char).Text(); + shieldJobNames[168] = OBFUSCATE_ARRAY("제철공\\제철공", 0xA597A7E7492B39D5ULL, char).Text(); + shieldJobNames[169] = OBFUSCATE_ARRAY("상인\\상인", 0xFFABE3D5D1BBEF73ULL, char).Text(); + shieldJobNames[170] = OBFUSCATE_ARRAY("연금술사\\연금술사", 0xC70319B5EB61598FULL, char).Text(); + shieldJobNames[171] = OBFUSCATE_ARRAY("연금술사\\연금술사", 0x0B8745519B1F95D7ULL, char).Text(); + shieldJobNames[172] = OBFUSCATE_ARRAY("궁수\\궁수", 0x8783C33941E15117ULL, char).Text(); + shieldJobNames[173] = OBFUSCATE_ARRAY("태권소년\\태권소년", 0x271B45771F83DD9FULL, char).Text(); + shieldJobNames[174] = OBFUSCATE_ARRAY("초보자\\초보자", 0xC1BB8111EDD183E1ULL, char).Text(); + shieldJobNames[175] = OBFUSCATE_ARRAY("몽크\\몽크", 0x1767DDE18D779D8BULL, char).Text(); + shieldJobNames[176] = OBFUSCATE_ARRAY("성직자\\성직자", 0x01CB4F1DF9D3F931ULL, char).Text(); + shieldJobNames[177] = OBFUSCATE_ARRAY("몽크\\몽크", 0xC5B1BBCD9BC9C997ULL, char).Text(); + shieldJobNames[178] = OBFUSCATE_ARRAY("초보자\\초보자", 0x792FFD1325418FB5ULL, char).Text(); + shieldJobNames[179] = OBFUSCATE_ARRAY("프리스트\\프리스트", 0x49D33529F1556333ULL, char).Text(); + shieldJobNames[180] = OBFUSCATE_ARRAY("마법사\\마법사", 0xE33F2FF779878559ULL, char).Text(); + shieldJobNames[181] = OBFUSCATE_ARRAY("세이지\\세이지", 0xF15F8785CDE369BFULL, char).Text(); + shieldJobNames[182] = OBFUSCATE_ARRAY("세이지\\세이지", 0x81F58DED5D470D01ULL, char).Text(); + shieldJobNames[183] = OBFUSCATE_ARRAY("위저드\\위저드", 0x454D31872BB3EDCBULL, char).Text(); + shieldJobNames[184] = OBFUSCATE_ARRAY("위저드\\위저드", 0x41CFCB831F6B6B91ULL, char).Text(); + shieldJobNames[185] = OBFUSCATE_ARRAY("세이지\\세이지", 0x5DE7712FAB613F75ULL, char).Text(); + shieldJobNames[186] = OBFUSCATE_ARRAY("위저드\\위저드", 0x0F97E779A933D917ULL, char).Text(); + shieldJobNames[187] = OBFUSCATE_ARRAY("연금술사\\연금술사", 0x3789496BE3E1D141ULL, char).Text(); + shieldJobNames[188] = OBFUSCATE_ARRAY("제철공\\제철공", 0x4331A17F33095FEBULL, char).Text(); + shieldJobNames[189] = OBFUSCATE_ARRAY("몽크\\몽크", 0xD1056FF94D4D2773ULL, char).Text(); + shieldJobNames[190] = OBFUSCATE_ARRAY("어세신\\어세신", 0xB127A19D775BF751ULL, char).Text(); + shieldJobNames[191] = OBFUSCATE_ARRAY("도둑\\도둑", 0x0F61499B4973EB5DULL, char).Text(); + shieldJobNames[192] = OBFUSCATE_ARRAY("로그\\로그", 0xB7A96F8701BB4B6BULL, char).Text(); + shieldJobNames[193] = OBFUSCATE_ARRAY("로그\\로그", 0xA31F69E7EFED01C9ULL, char).Text(); + shieldJobNames[194] = OBFUSCATE_ARRAY("로그\\로그", 0xBFF5C517A1A77F59ULL, char).Text(); + shieldJobNames[195] = OBFUSCATE_ARRAY("어세신\\어세신", 0x659975C121557D3DULL, char).Text(); + shieldJobNames[196] = OBFUSCATE_ARRAY("어세신\\어세신", 0x85E1F5A7A5755B7FULL, char).Text(); + shieldJobNames[197] = OBFUSCATE_ARRAY("무희\\무희", 0xAD6153019F93A527ULL, char).Text(); + shieldJobNames[198] = OBFUSCATE_ARRAY("바드\\바드", 0xADADEB4DF7813B55ULL, char).Text(); + shieldJobNames[199] = OBFUSCATE_ARRAY("바드\\바드", 0xD9452D81E5CD99C1ULL, char).Text(); + shieldJobNames[200] = OBFUSCATE_ARRAY("헌터\\헌터", 0xD7A749EB27D5BF6DULL, char).Text(); + shieldJobNames[201] = OBFUSCATE_ARRAY("무희\\무희", 0xB195637DAFCB0D59ULL, char).Text(); + shieldJobNames[202] = OBFUSCATE_ARRAY("무희\\무희", 0xB19D1FA9116F39D3ULL, char).Text(); + shieldJobNames[203] = OBFUSCATE_ARRAY("바드\\바드", 0x9569C9C7E70909AFULL, char).Text(); + shieldJobNames[204] = OBFUSCATE_ARRAY("헌터\\헌터", 0xF715514F5961B75BULL, char).Text(); + shieldJobNames[205] = OBFUSCATE_ARRAY("태권소년\\태권소년", 0x4191BB5531FD3999ULL, char).Text(); + shieldJobNames[206] = OBFUSCATE_ARRAY("프리스트\\프리스트", 0xBD2BA1C11B01E73BULL, char).Text(); + shieldJobNames[207] = OBFUSCATE_ARRAY("프리스트\\프리스트", 0x4B755DB19953E311ULL, char).Text(); + shieldJobNames[208] = OBFUSCATE_ARRAY("초보자\\초보자", 0xC9712D676B5B3943ULL, char).Text(); + shieldJobNames[209] = OBFUSCATE_ARRAY("검사\\검사", 0xED15938D333D2DB9ULL, char).Text(); + shieldJobNames[210] = OBFUSCATE_ARRAY("마법사\\마법사", 0xD98F5345098D630DULL, char).Text(); + shieldJobNames[211] = OBFUSCATE_ARRAY("궁수\\궁수", 0x9B0F234DEFDF7593ULL, char).Text(); + shieldJobNames[212] = OBFUSCATE_ARRAY("성직자\\성직자", 0xFD69A9B3F311818DULL, char).Text(); + shieldJobNames[213] = OBFUSCATE_ARRAY("상인\\상인", 0x7F2DFFC1ABE91F2BULL, char).Text(); + shieldJobNames[214] = OBFUSCATE_ARRAY("헌터\\헌터", 0x1F1D51274373C1FDULL, char).Text(); + shieldJobNames[215] = OBFUSCATE_ARRAY("어세신\\어세신", 0x5DAD2D25D9259B93ULL, char).Text(); + shieldJobNames[216] = OBFUSCATE_ARRAY("몽크\\몽크", 0x6BF729E30729CF29ULL, char).Text(); + shieldJobNames[217] = OBFUSCATE_ARRAY("세이지\\세이지", 0x3D371F5B0F7F9327ULL, char).Text(); + shieldJobNames[218] = OBFUSCATE_ARRAY("로그\\로그", 0x610F7DD1EFC1C91BULL, char).Text(); + shieldJobNames[219] = OBFUSCATE_ARRAY("연금술사\\연금술사", 0xC5995F4B9FE96B89ULL, char).Text(); + shieldJobNames[220] = OBFUSCATE_ARRAY("바드\\바드", 0x097389157345A787ULL, char).Text(); + shieldJobNames[221] = OBFUSCATE_ARRAY("무희\\무희", 0x5F93A1C3A7AD7537ULL, char).Text(); + shieldJobNames[222] = OBFUSCATE_ARRAY("초보자\\초보자", 0x875FCDF1E7A1795FULL, char).Text(); shieldJobNames[223] = WizardBodyPath1().Text(); shieldJobNames[224] = PriestBodyPath1().Text(); shieldJobNames[225] = AssassinBodyPath1().Text(); @@ -6349,11 +5946,7 @@ void CSession::InitResourceNameTables() { shieldJobNames[74] = SwordmanBodyPath3().Text(); shieldJobNames[75] = MagicianBodyPath3().Text(); shieldJobNames[76] = ArcherBodyPath3().Text(); - shieldJobNames[77] = []() -> EncryptedName<14, 0x5FFD7FABB5D1EF57ULL>& { - constexpr std::array source = CRYPT_NAME("성직자\\성직자", 0x5FFD7FABB5D1EF57ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); + shieldJobNames[77] = OBFUSCATE_ARRAY("성직자\\성직자", 0x5FFD7FABB5D1EF57ULL, char).Text(); shieldJobNames[78] = MerchantBodyPath3().Text(); shieldJobNames[79] = ThiefBodyPath4().Text(); shieldJobNames[80] = KnightBodyPath2().Text(); @@ -7376,1106 +6969,226 @@ EncryptedName<14, 0x85FB93CF2F494179ULL>& AliteaBodyPath2(); // FUNCTION: fn_24178 void CSession::InitJobSpriteNames() { std::vector& jobSpriteNames = reinterpret_cast&>(this->m_jobSpriteNames); - jobSpriteNames.resize(28053, []() -> EncryptedName<14, 0x114901C7E37F6D49ULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0x114901C7E37F6D49ULL); - thread_local EncryptedName name(source); - return name; - }().Text()); - jobSpriteNames[0] = []() -> EncryptedName<14, 0xDF8117FF49CFF551ULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0xDF8117FF49CFF551ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[1] = []() -> EncryptedName<10, 0xADC51BF9C98B413DULL>& { - constexpr std::array source = CRYPT_NAME("검사\\검사", 0xADC51BF9C98B413DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[2] = []() -> EncryptedName<14, 0x51BB39B763BBBD8DULL>& { - constexpr std::array source = CRYPT_NAME("마법사\\마법사", 0x51BB39B763BBBD8DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[3] = []() -> EncryptedName<10, 0x87E3D1C50D572DEFULL>& { - constexpr std::array source = CRYPT_NAME("궁수\\궁수", 0x87E3D1C50D572DEFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[4] = []() -> EncryptedName<14, 0x3FA3AFA7035DE3FFULL>& { - constexpr std::array source = CRYPT_NAME("성직자\\성직자", 0x3FA3AFA7035DE3FFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[5] = []() -> EncryptedName<10, 0xDB27CB557D038759ULL>& { - constexpr std::array source = CRYPT_NAME("상인\\상인", 0xDB27CB557D038759ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[6] = []() -> EncryptedName<10, 0xB3E307A5F753D5E3ULL>& { - constexpr std::array source = CRYPT_NAME("도둑\\도둑", 0xB3E307A5F753D5E3ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[7] = []() -> EncryptedName<10, 0x192D654D29337BE5ULL>& { - constexpr std::array source = CRYPT_NAME("기사\\기사", 0x192D654D29337BE5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[8] = []() -> EncryptedName<18, 0xB7AFBD2FD9FD7501ULL>& { - constexpr std::array source = CRYPT_NAME("프리스트\\프리스트", 0xB7AFBD2FD9FD7501ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[9] = []() -> EncryptedName<14, 0x79E915E9AF6F55DDULL>& { - constexpr std::array source = CRYPT_NAME("위저드\\위저드", 0x79E915E9AF6F55DDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[10] = []() -> EncryptedName<14, 0x674D9F3975573D41ULL>& { - constexpr std::array source = CRYPT_NAME("제철공\\제철공", 0x674D9F3975573D41ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[11] = []() -> EncryptedName<10, 0x6BDF334F2BFDAD51ULL>& { - constexpr std::array source = CRYPT_NAME("헌터\\헌터", 0x6BDF334F2BFDAD51ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[12] = []() -> EncryptedName<14, 0x136F2F9915D1DBCFULL>& { - constexpr std::array source = CRYPT_NAME("어세신\\어세신", 0x136F2F9915D1DBCFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[13] = []() -> EncryptedName<28, 0x0B23D10F2F49D72BULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x0B23D10F2F49D72BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[14] = []() -> EncryptedName<22, 0x1767DDE18D779D8BULL>& { - constexpr std::array source = CRYPT_NAME("크루세이더\\크루세이더", 0x1767DDE18D779D8BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[15] = []() -> EncryptedName<10, 0xC1BB8111EDD183E1ULL>& { - constexpr std::array source = CRYPT_NAME("몽크\\몽크", 0xC1BB8111EDD183E1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[16] = []() -> EncryptedName<14, 0xC5B1BBCD9BC9C997ULL>& { - constexpr std::array source = CRYPT_NAME("세이지\\세이지", 0xC5B1BBCD9BC9C997ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[17] = []() -> EncryptedName<10, 0x01CB4F1DF9D3F931ULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0x01CB4F1DF9D3F931ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[18] = []() -> EncryptedName<18, 0x49D33529F1556333ULL>& { - constexpr std::array source = CRYPT_NAME("연금술사\\연금술사", 0x49D33529F1556333ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[19] = []() -> EncryptedName<10, 0x792FFD1325418FB5ULL>& { - constexpr std::array source = CRYPT_NAME("바드\\바드", 0x792FFD1325418FB5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[20] = []() -> EncryptedName<10, 0xF15F8785CDE369BFULL>& { - constexpr std::array source = CRYPT_NAME("무희\\무희", 0xF15F8785CDE369BFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[21] = []() -> EncryptedName<34, 0xE33F2FF779878559ULL>& { - constexpr std::array source = CRYPT_NAME("신페코크루세이더\\신페코크루세이더", 0xE33F2FF779878559ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[23] = []() -> EncryptedName<14, 0xD5A78DB38D8DAFABULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0xD5A78DB38D8DAFABULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[22] = []() -> EncryptedName<10, 0x0399459DAF454F0FULL>& { - constexpr std::array source = CRYPT_NAME("결혼\\결혼", 0x0399459DAF454F0FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[26] = []() -> EncryptedName<10, 0xFFABE3D5D1BBEF73ULL>& { - constexpr std::array source = CRYPT_NAME("결혼\\결혼", 0xFFABE3D5D1BBEF73ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[27] = []() -> EncryptedName<10, 0xA597A7E7492B39D5ULL>& { - constexpr std::array source = CRYPT_NAME("결혼\\결혼", 0xA597A7E7492B39D5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[28] = []() -> EncryptedName<10, 0x0B8745519B1F95D7ULL>& { - constexpr std::array source = CRYPT_NAME("결혼\\결혼", 0x0B8745519B1F95D7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[29] = []() -> EncryptedName<10, 0xC70319B5EB61598FULL>& { - constexpr std::array source = CRYPT_NAME("결혼\\결혼", 0xC70319B5EB61598FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[30] = []() -> EncryptedName<10, 0x271B45771F83DD9FULL>& { - constexpr std::array source = CRYPT_NAME("결혼\\결혼", 0x271B45771F83DD9FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[24] = []() -> EncryptedName<10, 0x8783C33941E15117ULL>& { - constexpr std::array source = CRYPT_NAME("건너\\건너", 0x8783C33941E15117ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[25] = []() -> EncryptedName<10, 0x0F61499B4973EB5DULL>& { - constexpr std::array source = CRYPT_NAME("닌자\\닌자", 0x0F61499B4973EB5DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[164] = []() -> EncryptedName<10, 0xB127A19D775BF751ULL>& { - constexpr std::array source = CRYPT_NAME("닌자\\닌자", 0xB127A19D775BF751ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[167] = []() -> EncryptedName<18, 0xA31F69E7EFED01C9ULL>& { - constexpr std::array source = CRYPT_NAME("소울링커\\소울링커", 0xA31F69E7EFED01C9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[165] = []() -> EncryptedName<10, 0xB7A96F8701BB4B6BULL>& { - constexpr std::array source = CRYPT_NAME("건너\\건너", 0xB7A96F8701BB4B6BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[166] = []() -> EncryptedName<10, 0x659975C121557D3DULL>& { - constexpr std::array source = CRYPT_NAME("검사\\검사", 0x659975C121557D3DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[168] = []() -> EncryptedName<14, 0xBFF5C517A1A77F59ULL>& { - constexpr std::array source = CRYPT_NAME("제철공\\제철공", 0xBFF5C517A1A77F59ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[169] = []() -> EncryptedName<10, 0xAD6153019F93A527ULL>& { - constexpr std::array source = CRYPT_NAME("상인\\상인", 0xAD6153019F93A527ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[170] = []() -> EncryptedName<14, 0x85E1F5A7A5755B7FULL>& { - constexpr std::array source = CRYPT_NAME("제네릭\\제네릭", 0x85E1F5A7A5755B7FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[171] = []() -> EncryptedName<18, 0x454D31872BB3EDCBULL>& { - constexpr std::array source = CRYPT_NAME("연금술사\\연금술사", 0x454D31872BB3EDCBULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[172] = []() -> EncryptedName<10, 0x81F58DED5D470D01ULL>& { - constexpr std::array source = CRYPT_NAME("궁수\\궁수", 0x81F58DED5D470D01ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[173] = []() -> EncryptedName<10, 0x5DE7712FAB613F75ULL>& { - constexpr std::array source = CRYPT_NAME("권성\\권성", 0x5DE7712FAB613F75ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[174] = []() -> EncryptedName<14, 0x41CFCB831F6B6B91ULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0x41CFCB831F6B6B91ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[175] = []() -> EncryptedName<10, 0x3789496BE3E1D141ULL>& { - constexpr std::array source = CRYPT_NAME("몽크\\몽크", 0x3789496BE3E1D141ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[176] = []() -> EncryptedName<14, 0x0F97E779A933D917ULL>& { - constexpr std::array source = CRYPT_NAME("성직자\\성직자", 0x0F97E779A933D917ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[177] = []() -> EncryptedName<10, 0xD1056FF94D4D2773ULL>& { - constexpr std::array source = CRYPT_NAME("슈라\\슈라", 0xD1056FF94D4D2773ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[178] = []() -> EncryptedName<14, 0x4331A17F33095FEBULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0x4331A17F33095FEBULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[179] = []() -> EncryptedName<18, 0x4B755DB19953E311ULL>& { - constexpr std::array source = CRYPT_NAME("아크비숍\\아크비숍", 0x4B755DB19953E311ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[180] = []() -> EncryptedName<14, 0xBD2BA1C11B01E73BULL>& { - constexpr std::array source = CRYPT_NAME("마법사\\마법사", 0xBD2BA1C11B01E73BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[181] = []() -> EncryptedName<14, 0xED15938D333D2DB9ULL>& { - constexpr std::array source = CRYPT_NAME("세이지\\세이지", 0xED15938D333D2DB9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[182] = []() -> EncryptedName<14, 0xC9712D676B5B3943ULL>& { - constexpr std::array source = CRYPT_NAME("소서러\\소서러", 0xC9712D676B5B3943ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[183] = []() -> EncryptedName<10, 0x9B0F234DEFDF7593ULL>& { - constexpr std::array source = CRYPT_NAME("워록\\워록", 0x9B0F234DEFDF7593ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[184] = []() -> EncryptedName<14, 0xD98F5345098D630DULL>& { - constexpr std::array source = CRYPT_NAME("위저드\\위저드", 0xD98F5345098D630DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[185] = []() -> EncryptedName<14, 0x7F2DFFC1ABE91F2BULL>& { - constexpr std::array source = CRYPT_NAME("세이지\\세이지", 0x7F2DFFC1ABE91F2BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[186] = []() -> EncryptedName<14, 0xFD69A9B3F311818DULL>& { - constexpr std::array source = CRYPT_NAME("위저드\\위저드", 0xFD69A9B3F311818DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[187] = []() -> EncryptedName<18, 0xD9452D81E5CD99C1ULL>& { - constexpr std::array source = CRYPT_NAME("연금술사\\연금술사", 0xD9452D81E5CD99C1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[188] = []() -> EncryptedName<14, 0xADADEB4DF7813B55ULL>& { - constexpr std::array source = CRYPT_NAME("제철공\\제철공", 0xADADEB4DF7813B55ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[189] = []() -> EncryptedName<10, 0xB195637DAFCB0D59ULL>& { - constexpr std::array source = CRYPT_NAME("몽크\\몽크", 0xB195637DAFCB0D59ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[190] = []() -> EncryptedName<14, 0xD7A749EB27D5BF6DULL>& { - constexpr std::array source = CRYPT_NAME("어세신\\어세신", 0xD7A749EB27D5BF6DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[191] = []() -> EncryptedName<10, 0x9569C9C7E70909AFULL>& { - constexpr std::array source = CRYPT_NAME("도둑\\도둑", 0x9569C9C7E70909AFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[192] = []() -> EncryptedName<10, 0xB19D1FA9116F39D3ULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0xB19D1FA9116F39D3ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[193] = []() -> EncryptedName<10, 0x4191BB5531FD3999ULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0x4191BB5531FD3999ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[194] = []() -> EncryptedName<10, 0xF715514F5961B75BULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0xF715514F5961B75BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[195] = []() -> EncryptedName<14, 0x2F8B0F37118D157FULL>& { - constexpr std::array source = CRYPT_NAME("어세신\\어세신", 0x2F8B0F37118D157FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[196] = []() -> EncryptedName<14, 0xAD075B8DB599F1CDULL>& { - constexpr std::array source = CRYPT_NAME("어세신\\어세신", 0xAD075B8DB599F1CDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[197] = []() -> EncryptedName<10, 0x2FE993D1DDE1F197ULL>& { - constexpr std::array source = CRYPT_NAME("무희\\무희", 0x2FE993D1DDE1F197ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[198] = []() -> EncryptedName<18, 0x39FF7FB50DEB998FULL>& { - constexpr std::array source = CRYPT_NAME("민스트럴\\민스트럴", 0x39FF7FB50DEB998FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[199] = []() -> EncryptedName<10, 0xB7FD8F670FC7B96BULL>& { - constexpr std::array source = CRYPT_NAME("바드\\바드", 0xB7FD8F670FC7B96BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[200] = []() -> EncryptedName<10, 0xE7978FB5A94DD7FDULL>& { - constexpr std::array source = CRYPT_NAME("헌터\\헌터", 0xE7978FB5A94DD7FDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[201] = []() -> EncryptedName<10, 0x4941FD9F21BBB9FDULL>& { - constexpr std::array source = CRYPT_NAME("무희\\무희", 0x4941FD9F21BBB9FDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[202] = []() -> EncryptedName<10, 0x35E5656B5DEDCD75ULL>& { - constexpr std::array source = CRYPT_NAME("무희\\무희", 0x35E5656B5DEDCD75ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[203] = []() -> EncryptedName<10, 0xF14F79170939C7F1ULL>& { - constexpr std::array source = CRYPT_NAME("바드\\바드", 0xF14F79170939C7F1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[204] = []() -> EncryptedName<10, 0xA5FD29D7AB6DC59FULL>& { - constexpr std::array source = CRYPT_NAME("헌터\\헌터", 0xA5FD29D7AB6DC59FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[205] = []() -> EncryptedName<18, 0xD97D5DBDBB2F2709ULL>& { - constexpr std::array source = CRYPT_NAME("태권소년\\태권소년", 0xD97D5DBDBB2F2709ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[206] = []() -> EncryptedName<18, 0xED796785D1DF137FULL>& { - constexpr std::array source = CRYPT_NAME("프리스트\\프리스트", 0xED796785D1DF137FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[207] = []() -> EncryptedName<18, 0x83EFBFBB37EDBDBDULL>& { - constexpr std::array source = CRYPT_NAME("프리스트\\프리스트", 0x83EFBFBB37EDBDBDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[208] = []() -> EncryptedName<14, 0xBF2B4B31397FF5A7ULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0xBF2B4B31397FF5A7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[209] = []() -> EncryptedName<10, 0xDD3913D5D7F97BE1ULL>& { - constexpr std::array source = CRYPT_NAME("검사\\검사", 0xDD3913D5D7F97BE1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[210] = []() -> EncryptedName<14, 0x050505679903579BULL>& { - constexpr std::array source = CRYPT_NAME("마법사\\마법사", 0x050505679903579BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[211] = []() -> EncryptedName<10, 0x03772763F96D9DA5ULL>& { - constexpr std::array source = CRYPT_NAME("궁수\\궁수", 0x03772763F96D9DA5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[212] = []() -> EncryptedName<14, 0x0B7109397F6B1387ULL>& { - constexpr std::array source = CRYPT_NAME("성직자\\성직자", 0x0B7109397F6B1387ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[213] = []() -> EncryptedName<10, 0x23BBD58F8B5FF5C9ULL>& { - constexpr std::array source = CRYPT_NAME("상인\\상인", 0x23BBD58F8B5FF5C9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[214] = []() -> EncryptedName<10, 0xC517FB932D95BB6DULL>& { - constexpr std::array source = CRYPT_NAME("헌터\\헌터", 0xC517FB932D95BB6DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[215] = []() -> EncryptedName<14, 0x9949BFD527532943ULL>& { - constexpr std::array source = CRYPT_NAME("어세신\\어세신", 0x9949BFD527532943ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[216] = []() -> EncryptedName<10, 0xCD8F077123FB7D6FULL>& { - constexpr std::array source = CRYPT_NAME("몽크\\몽크", 0xCD8F077123FB7D6FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[217] = []() -> EncryptedName<14, 0x13E33FA1A591AB67ULL>& { - constexpr std::array source = CRYPT_NAME("세이지\\세이지", 0x13E33FA1A591AB67ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[218] = []() -> EncryptedName<10, 0x17A9E5BF39AD4737ULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0x17A9E5BF39AD4737ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[219] = []() -> EncryptedName<18, 0x758F1D0B4F7705B9ULL>& { - constexpr std::array source = CRYPT_NAME("연금술사\\연금술사", 0x758F1D0B4F7705B9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[220] = []() -> EncryptedName<10, 0x891B232D09451965ULL>& { - constexpr std::array source = CRYPT_NAME("바드\\바드", 0x891B232D09451965ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[221] = []() -> EncryptedName<10, 0x637B959D55771F69ULL>& { - constexpr std::array source = CRYPT_NAME("무희\\무희", 0x637B959D55771F69ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[222] = []() -> EncryptedName<14, 0xD1413DBB01CD8B51ULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0xD1413DBB01CD8B51ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[223] = []() -> EncryptedName<10, 0x75ADC57D87EFBD8FULL>& { - constexpr std::array source = CRYPT_NAME("워록\\워록", 0x75ADC57D87EFBD8FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[224] = []() -> EncryptedName<18, 0x2BAD156DE3E1F9D9ULL>& { - constexpr std::array source = CRYPT_NAME("아크비숍\\아크비숍", 0x2BAD156DE3E1F9D9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[225] = []() -> EncryptedName<14, 0xF161095D0DE18F95ULL>& { - constexpr std::array source = CRYPT_NAME("어세신\\어세신", 0xF161095D0DE18F95ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[226] = []() -> EncryptedName<14, 0xEDC74F6D13DF71EFULL>& { - constexpr std::array source = CRYPT_NAME("소서러\\소서러", 0xEDC74F6D13DF71EFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[227] = []() -> EncryptedName<18, 0xA12DAB392545D72FULL>& { - constexpr std::array source = CRYPT_NAME("민스트럴\\민스트럴", 0xA12DAB392545D72FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[228] = []() -> EncryptedName<10, 0x6BA1C1132F033B75ULL>& { - constexpr std::array source = CRYPT_NAME("무희\\무희", 0x6BA1C1132F033B75ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[229] = []() -> EncryptedName<10, 0x2FEB8739E5975BD1ULL>& { - constexpr std::array source = CRYPT_NAME("슈라\\슈라", 0x2FEB8739E5975BD1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[230] = []() -> EncryptedName<14, 0x33133B977BCD03CDULL>& { - constexpr std::array source = CRYPT_NAME("제네릭\\제네릭", 0x33133B977BCD03CDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[232] = []() -> EncryptedName<10, 0x6FE153231D879777ULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0x6FE153231D879777ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[233] = []() -> EncryptedName<14, 0x39A39F87DD5F535BULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0x39A39F87DD5F535BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[234] = []() -> EncryptedName<10, 0xEF6D1D893F2B2DC5ULL>& { - constexpr std::array source = CRYPT_NAME("검사\\검사", 0xEF6D1D893F2B2DC5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[235] = []() -> EncryptedName<14, 0x234977DDB54BC71DULL>& { - constexpr std::array source = CRYPT_NAME("마법사\\마법사", 0x234977DDB54BC71DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[236] = []() -> EncryptedName<10, 0xE52DF30DCBAF7125ULL>& { - constexpr std::array source = CRYPT_NAME("궁수\\궁수", 0xE52DF30DCBAF7125ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[237] = []() -> EncryptedName<14, 0xCFF3899D95AF355FULL>& { - constexpr std::array source = CRYPT_NAME("성직자\\성직자", 0xCFF3899D95AF355FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[238] = []() -> EncryptedName<10, 0x9171997D6963C9F7ULL>& { - constexpr std::array source = CRYPT_NAME("상인\\상인", 0x9171997D6963C9F7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[239] = []() -> EncryptedName<10, 0x4F99DF03C3EF31B7ULL>& { - constexpr std::array source = CRYPT_NAME("도둑\\도둑", 0x4F99DF03C3EF31B7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[231] = []() -> EncryptedName<10, 0x8D1D0FF1AF2B13F7ULL>& { - constexpr std::array source = CRYPT_NAME("도둑\\도둑", 0x8D1D0FF1AF2B13F7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[51] = []() -> EncryptedName<14, 0xB39FA7917BCFBB8DULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0xB39FA7917BCFBB8DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[52] = []() -> EncryptedName<10, 0x2DCB7567394DC1ABULL>& { - constexpr std::array source = CRYPT_NAME("검사\\검사", 0x2DCB7567394DC1ABULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[53] = []() -> EncryptedName<14, 0x4F637DC51307B759ULL>& { - constexpr std::array source = CRYPT_NAME("마법사\\마법사", 0x4F637DC51307B759ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[54] = []() -> EncryptedName<10, 0x452FEF0D7FC95565ULL>& { - constexpr std::array source = CRYPT_NAME("궁수\\궁수", 0x452FEF0D7FC95565ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[55] = []() -> EncryptedName<14, 0x9FED7DA189490D5DULL>& { - constexpr std::array source = CRYPT_NAME("성직자\\성직자", 0x9FED7DA189490D5DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[56] = []() -> EncryptedName<10, 0x839B27DF8F5967B3ULL>& { - constexpr std::array source = CRYPT_NAME("상인\\상인", 0x839B27DF8F5967B3ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[57] = []() -> EncryptedName<10, 0xF3CB6F7711A71B6DULL>& { - constexpr std::array source = CRYPT_NAME("도둑\\도둑", 0xF3CB6F7711A71B6DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[58] = []() -> EncryptedName<10, 0x2D51E3B7236175EDULL>& { - constexpr std::array source = CRYPT_NAME("기사\\기사", 0x2D51E3B7236175EDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[59] = []() -> EncryptedName<18, 0x0F41EBBDA32D1B17ULL>& { - constexpr std::array source = CRYPT_NAME("프리스트\\프리스트", 0x0F41EBBDA32D1B17ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[60] = []() -> EncryptedName<14, 0xFBD599E117C547C1ULL>& { - constexpr std::array source = CRYPT_NAME("위저드\\위저드", 0xFBD599E117C547C1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[61] = []() -> EncryptedName<14, 0x176F138D5DD7F365ULL>& { - constexpr std::array source = CRYPT_NAME("제철공\\제철공", 0x176F138D5DD7F365ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[62] = []() -> EncryptedName<10, 0x793F370985ED674FULL>& { - constexpr std::array source = CRYPT_NAME("헌터\\헌터", 0x793F370985ED674FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[63] = []() -> EncryptedName<14, 0xE55723712993051DULL>& { - constexpr std::array source = CRYPT_NAME("어세신\\어세신", 0xE55723712993051DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[64] = []() -> EncryptedName<28, 0x7115D9F973F913C9ULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x7115D9F973F913C9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[65] = []() -> EncryptedName<22, 0xCB1D253B7FE1F563ULL>& { - constexpr std::array source = CRYPT_NAME("크루세이더\\크루세이더", 0xCB1D253B7FE1F563ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[66] = []() -> EncryptedName<10, 0x7941D76335CFA14FULL>& { - constexpr std::array source = CRYPT_NAME("몽크\\몽크", 0x7941D76335CFA14FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[67] = []() -> EncryptedName<14, 0x7321C3814F8799E1ULL>& { - constexpr std::array source = CRYPT_NAME("세이지\\세이지", 0x7321C3814F8799E1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[68] = []() -> EncryptedName<10, 0x7DE349D717D7F123ULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0x7DE349D717D7F123ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[69] = []() -> EncryptedName<18, 0x0F15B16B5BAFD57FULL>& { - constexpr std::array source = CRYPT_NAME("연금술사\\연금술사", 0x0F15B16B5BAFD57FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[70] = []() -> EncryptedName<10, 0x9B5B959B954D9333ULL>& { - constexpr std::array source = CRYPT_NAME("바드\\바드", 0x9B5B959B954D9333ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[71] = []() -> EncryptedName<10, 0x17FFC98B398FAF61ULL>& { - constexpr std::array source = CRYPT_NAME("무희\\무희", 0x17FFC98B398FAF61ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[72] = []() -> EncryptedName<34, 0x078143534999254DULL>& { - constexpr std::array source = CRYPT_NAME("신페코크루세이더\\신페코크루세이더", 0x078143534999254DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[73] = []() -> EncryptedName<14, 0xAFA5617F178B6185ULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0xAFA5617F178B6185ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[74] = []() -> EncryptedName<10, 0xE50B2935073DD3E9ULL>& { - constexpr std::array source = CRYPT_NAME("검사\\검사", 0xE50B2935073DD3E9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[75] = []() -> EncryptedName<14, 0x3F5315DFE32B4FAFULL>& { - constexpr std::array source = CRYPT_NAME("마법사\\마법사", 0x3F5315DFE32B4FAFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[76] = []() -> EncryptedName<10, 0x33832D4D3FDFBDBFULL>& { - constexpr std::array source = CRYPT_NAME("궁수\\궁수", 0x33832D4D3FDFBDBFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[77] = []() -> EncryptedName<14, 0x7D750DADBDE9C3F1ULL>& { - constexpr std::array source = CRYPT_NAME("성직자\\성직자", 0x7D750DADBDE9C3F1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[78] = []() -> EncryptedName<10, 0xED5143E7C1B39315ULL>& { - constexpr std::array source = CRYPT_NAME("상인\\상인", 0xED5143E7C1B39315ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[79] = []() -> EncryptedName<10, 0xFF7D83CB791339D9ULL>& { - constexpr std::array source = CRYPT_NAME("도둑\\도둑", 0xFF7D83CB791339D9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[80] = []() -> EncryptedName<10, 0x31956551B311FD95ULL>& { - constexpr std::array source = CRYPT_NAME("기사\\기사", 0x31956551B311FD95ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[81] = []() -> EncryptedName<18, 0x393D916561BDC391ULL>& { - constexpr std::array source = CRYPT_NAME("프리스트\\프리스트", 0x393D916561BDC391ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[82] = []() -> EncryptedName<14, 0x955D4DF94DE9BB07ULL>& { - constexpr std::array source = CRYPT_NAME("위저드\\위저드", 0x955D4DF94DE9BB07ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[83] = []() -> EncryptedName<14, 0x8741152D8FB34B4FULL>& { - constexpr std::array source = CRYPT_NAME("제철공\\제철공", 0x8741152D8FB34B4FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[84] = []() -> EncryptedName<10, 0xB739073FE921AD6FULL>& { - constexpr std::array source = CRYPT_NAME("헌터\\헌터", 0xB739073FE921AD6FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[85] = []() -> EncryptedName<14, 0xC399B7091589B50BULL>& { - constexpr std::array source = CRYPT_NAME("어세신\\어세신", 0xC399B7091589B50BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[86] = []() -> EncryptedName<28, 0x7FC1015DFFCF6D19ULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x7FC1015DFFCF6D19ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[87] = []() -> EncryptedName<22, 0x0753A7E1EFA9E139ULL>& { - constexpr std::array source = CRYPT_NAME("크루세이더\\크루세이더", 0x0753A7E1EFA9E139ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[88] = []() -> EncryptedName<10, 0x7FCD77F9C7CBD14DULL>& { - constexpr std::array source = CRYPT_NAME("몽크\\몽크", 0x7FCD77F9C7CBD14DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[89] = []() -> EncryptedName<14, 0xCB3FBD4183DB8323ULL>& { - constexpr std::array source = CRYPT_NAME("세이지\\세이지", 0xCB3FBD4183DB8323ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[90] = []() -> EncryptedName<10, 0x3B915119EFD523EFULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0x3B915119EFD523EFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[91] = []() -> EncryptedName<18, 0x5B8F49AF09390D1BULL>& { - constexpr std::array source = CRYPT_NAME("연금술사\\연금술사", 0x5B8F49AF09390D1BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[92] = []() -> EncryptedName<10, 0x3F557BE333F95F6DULL>& { - constexpr std::array source = CRYPT_NAME("바드\\바드", 0x3F557BE333F95F6DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[93] = []() -> EncryptedName<10, 0x474DC581D5E98357ULL>& { - constexpr std::array source = CRYPT_NAME("무희\\무희", 0x474DC581D5E98357ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[94] = []() -> EncryptedName<34, 0x01FF9313695DD9DFULL>& { - constexpr std::array source = CRYPT_NAME("구페코크루세이더\\구페코크루세이더", 0x01FF9313695DD9DFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[95] = []() -> EncryptedName<14, 0x1BF915E1F37DFDFDULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0x1BF915E1F37DFDFDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[96] = []() -> EncryptedName<18, 0x49C3759B77DBD3C1ULL>& { - constexpr std::array source = CRYPT_NAME("태권소년\\태권소년", 0x49C3759B77DBD3C1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[97] = []() -> EncryptedName<10, 0x6DED3DD1CF75AD9BULL>& { - constexpr std::array source = CRYPT_NAME("권성\\권성", 0x6DED3DD1CF75AD9BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[98] = []() -> EncryptedName<10, 0x91E147EBBD47C39FULL>& { - constexpr std::array source = CRYPT_NAME("권성\\권성", 0x91E147EBBD47C39FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[99] = []() -> EncryptedName<18, 0xD1538513DF975701ULL>& { - constexpr std::array source = CRYPT_NAME("소울링커\\소울링커", 0xD1538513DF975701ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[100] = []() -> EncryptedName<14, 0xA1A55B4D1597EDD3ULL>& { - constexpr std::array source = CRYPT_NAME("성직자\\성직자", 0xA1A55B4D1597EDD3ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[101] = []() -> EncryptedName<10, 0x4F1791FB1503C713ULL>& { - constexpr std::array source = CRYPT_NAME("기사\\기사", 0x4F1791FB1503C713ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[102] = []() -> EncryptedName<14, 0x7D993F650D2785FFULL>& { - constexpr std::array source = CRYPT_NAME("세이지\\세이지", 0x7D993F650D2785FFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[104] = []() -> EncryptedName<18, 0x61FF87ED7BF39BE1ULL>& { - constexpr std::array source = CRYPT_NAME("룬나이트\\룬나이트", 0x61FF87ED7BF39BE1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[110] = []() -> EncryptedName<18, 0x151F77EBEBBB2147ULL>& { - constexpr std::array source = CRYPT_NAME("룬나이트\\룬나이트", 0x151F77EBEBBB2147ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[130] = []() -> EncryptedName<36, 0x2D394DBD0F332733ULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_룬나이트\\페코페코_룬나이트", 0x2D394DBD0F332733ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[131] = []() -> EncryptedName<36, 0x69D345DB950F336DULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_룬나이트\\페코페코_룬나이트", 0x69D345DB950F336DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[159] = []() -> EncryptedName<36, 0xC7912587FFF31B71ULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_룬나이트\\페코페코_룬나이트", 0xC7912587FFF31B71ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[138] = []() -> EncryptedName<36, 0x2D3B15774149D5DDULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_룬나이트\\페코페코_룬나이트", 0x2D3B15774149D5DDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[139] = []() -> EncryptedName<36, 0x9B17C9EFDBB39F2FULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_룬나이트\\페코페코_룬나이트", 0x9B17C9EFDBB39F2FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[140] = []() -> EncryptedName<36, 0x0BEB63A5C905B3A7ULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_룬나이트\\페코페코_룬나이트", 0x0BEB63A5C905B3A7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[141] = []() -> EncryptedName<36, 0x8B3FEB5B8BD5C3C3ULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_룬나이트\\페코페코_룬나이트", 0x8B3FEB5B8BD5C3C3ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[142] = []() -> EncryptedName<36, 0x8F1B5BFD5F6175B5ULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_룬나이트\\페코페코_룬나이트", 0x8F1B5BFD5F6175B5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[143] = []() -> EncryptedName<36, 0x078333BB9725B7C9ULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_룬나이트\\페코페코_룬나이트", 0x078333BB9725B7C9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[144] = []() -> EncryptedName<36, 0xF5657D1F3DE5CDC7ULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_룬나이트\\페코페코_룬나이트", 0xF5657D1F3DE5CDC7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[145] = []() -> EncryptedName<36, 0x69FD1D9733D3CFC1ULL>& { - constexpr std::array source = CRYPT_NAME("페코페코_룬나이트\\페코페코_룬나이트", 0x69FD1D9733D3CFC1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[107] = []() -> EncryptedName<18, 0xF7530137154D8FE5ULL>& { - constexpr std::array source = CRYPT_NAME("아크비숍\\아크비숍", 0xF7530137154D8FE5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[113] = []() -> EncryptedName<18, 0x8B65CD61012B5931ULL>& { - constexpr std::array source = CRYPT_NAME("아크비숍\\아크비숍", 0x8B65CD61012B5931ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[105] = []() -> EncryptedName<10, 0x17359BF953C367B3ULL>& { - constexpr std::array source = CRYPT_NAME("워록\\워록", 0x17359BF953C367B3ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[111] = []() -> EncryptedName<10, 0x2FF3C5036D070127ULL>& { - constexpr std::array source = CRYPT_NAME("워록\\워록", 0x2FF3C5036D070127ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[108] = []() -> EncryptedName<14, 0x93E7A3A1F587CDC5ULL>& { - constexpr std::array source = CRYPT_NAME("미케닉\\미케닉", 0x93E7A3A1F587CDC5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[114] = []() -> EncryptedName<14, 0xC52FB5FBB94FF917ULL>& { - constexpr std::array source = CRYPT_NAME("미케닉\\미케닉", 0xC52FB5FBB94FF917ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[136] = []() -> EncryptedName<18, 0x812BE72BCD5707B7ULL>& { - constexpr std::array source = CRYPT_NAME("마도기어\\마도기어", 0x812BE72BCD5707B7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[137] = []() -> EncryptedName<18, 0x59278F63D79F3DA1ULL>& { - constexpr std::array source = CRYPT_NAME("마도기어\\마도기어", 0x59278F63D79F3DA1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[162] = []() -> EncryptedName<18, 0x1D6D75EDE7CD311FULL>& { - constexpr std::array source = CRYPT_NAME("마도기어\\마도기어", 0x1D6D75EDE7CD311FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[106] = []() -> EncryptedName<14, 0x3375B1C7DBB5FD55ULL>& { - constexpr std::array source = CRYPT_NAME("레인져\\레인져", 0x3375B1C7DBB5FD55ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[112] = []() -> EncryptedName<14, 0x0F0F8B6B8F9D19D1ULL>& { - constexpr std::array source = CRYPT_NAME("레인져\\레인져", 0x0F0F8B6B8F9D19D1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[134] = []() -> EncryptedName<22, 0xD98F03A52D35636DULL>& { - constexpr std::array source = CRYPT_NAME("레인져늑대\\레인져늑대", 0xD98F03A52D35636DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[135] = []() -> EncryptedName<22, 0x31D7C1EDA345E36DULL>& { - constexpr std::array source = CRYPT_NAME("레인져늑대\\레인져늑대", 0x31D7C1EDA345E36DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[161] = []() -> EncryptedName<22, 0xD3755DD95F47A909ULL>& { - constexpr std::array source = CRYPT_NAME("레인져늑대\\레인져늑대", 0xD3755DD95F47A909ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[109] = []() -> EncryptedName<26, 0x490FFB43A12F0DB9ULL>& { - constexpr std::array source = CRYPT_NAME("길로틴크로스\\길로틴크로스", 0x490FFB43A12F0DB9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[115] = []() -> EncryptedName<26, 0x3FAF85D995034FD7ULL>& { - constexpr std::array source = CRYPT_NAME("길로틴크로스\\길로틴크로스", 0x3FAF85D995034FD7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[116] = []() -> EncryptedName<18, 0x73D1674B61DF7B0BULL>& { - constexpr std::array source = CRYPT_NAME("로얄가드\\로얄가드", 0x73D1674B61DF7B0BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[123] = []() -> EncryptedName<18, 0x91651D81F559F971ULL>& { - constexpr std::array source = CRYPT_NAME("로얄가드\\로얄가드", 0x91651D81F559F971ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[132] = []() -> EncryptedName<30, 0x072D2D872D259D5BULL>& { - constexpr std::array source = CRYPT_NAME("신페코로얄가드\\신페코로얄가드", 0x072D2D872D259D5BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[133] = []() -> EncryptedName<30, 0x875FCDF1E7A1795FULL>& { - constexpr std::array source = CRYPT_NAME("신페코로얄가드\\신페코로얄가드", 0x875FCDF1E7A1795FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[160] = []() -> EncryptedName<30, 0xB96B77B7255F8569ULL>& { - constexpr std::array source = CRYPT_NAME("신페코로얄가드\\신페코로얄가드", 0xB96B77B7255F8569ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[120] = []() -> EncryptedName<10, 0x9BE3EF737387AD79ULL>& { - constexpr std::array source = CRYPT_NAME("슈라\\슈라", 0x9BE3EF737387AD79ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[127] = []() -> EncryptedName<10, 0x4755C1355575FD37ULL>& { - constexpr std::array source = CRYPT_NAME("슈라\\슈라", 0x4755C1355575FD37ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[117] = []() -> EncryptedName<14, 0x11CB35636377DD07ULL>& { - constexpr std::array source = CRYPT_NAME("소서러\\소서러", 0x11CB35636377DD07ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[124] = []() -> EncryptedName<14, 0x79DF094DD9616575ULL>& { - constexpr std::array source = CRYPT_NAME("소서러\\소서러", 0x79DF094DD9616575ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[122] = []() -> EncryptedName<10, 0x9D8F2D37BFFD61B7ULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0x9D8F2D37BFFD61B7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[129] = []() -> EncryptedName<10, 0x5DAD2D25D9259B93ULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0x5DAD2D25D9259B93ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[121] = []() -> EncryptedName<14, 0x1F1D51274373C1FDULL>& { - constexpr std::array source = CRYPT_NAME("제네릭\\제네릭", 0x1F1D51274373C1FDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[128] = []() -> EncryptedName<14, 0x3D371F5B0F7F9327ULL>& { - constexpr std::array source = CRYPT_NAME("제네릭\\제네릭", 0x3D371F5B0F7F9327ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[119] = []() -> EncryptedName<14, 0x6BF729E30729CF29ULL>& { - constexpr std::array source = CRYPT_NAME("원더러\\원더러", 0x6BF729E30729CF29ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[126] = []() -> EncryptedName<14, 0xC5995F4B9FE96B89ULL>& { - constexpr std::array source = CRYPT_NAME("원더러\\원더러", 0xC5995F4B9FE96B89ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[118] = []() -> EncryptedName<18, 0x610F7DD1EFC1C91BULL>& { - constexpr std::array source = CRYPT_NAME("민스트럴\\민스트럴", 0x610F7DD1EFC1C91BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[125] = []() -> EncryptedName<18, 0x5F93A1C3A7AD7537ULL>& { - constexpr std::array source = CRYPT_NAME("민스트럴\\민스트럴", 0x5F93A1C3A7AD7537ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[146] = []() -> EncryptedName<18, 0x097389157345A787ULL>& { - constexpr std::array source = CRYPT_NAME("룬나이트\\룬나이트", 0x097389157345A787ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[147] = []() -> EncryptedName<10, 0x732B390D63FD47D7ULL>& { - constexpr std::array source = CRYPT_NAME("워록\\워록", 0x732B390D63FD47D7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[148] = []() -> EncryptedName<14, 0xB7A76BF9CD41F99FULL>& { - constexpr std::array source = CRYPT_NAME("레인져\\레인져", 0xB7A76BF9CD41F99FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[149] = []() -> EncryptedName<18, 0xE3FB23537D2785BFULL>& { - constexpr std::array source = CRYPT_NAME("아크비숍\\아크비숍", 0xE3FB23537D2785BFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[150] = []() -> EncryptedName<14, 0x1FDB81175D1557E3ULL>& { - constexpr std::array source = CRYPT_NAME("미케닉\\미케닉", 0x1FDB81175D1557E3ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[151] = []() -> EncryptedName<26, 0xB3CF9BEB7963DB89ULL>& { - constexpr std::array source = CRYPT_NAME("길로틴크로스\\길로틴크로스", 0xB3CF9BEB7963DB89ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[152] = []() -> EncryptedName<18, 0x8BBF792B47E72173ULL>& { - constexpr std::array source = CRYPT_NAME("로얄가드\\로얄가드", 0x8BBF792B47E72173ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[153] = []() -> EncryptedName<14, 0xDD69EDFFA18F537DULL>& { - constexpr std::array source = CRYPT_NAME("소서러\\소서러", 0xDD69EDFFA18F537DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[154] = []() -> EncryptedName<18, 0x71A509DB43792991ULL>& { - constexpr std::array source = CRYPT_NAME("민스트럴\\민스트럴", 0x71A509DB43792991ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[155] = []() -> EncryptedName<14, 0xFB2BC75769E777D3ULL>& { - constexpr std::array source = CRYPT_NAME("원더러\\원더러", 0xFB2BC75769E777D3ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[156] = []() -> EncryptedName<10, 0x038535BB092533B7ULL>& { - constexpr std::array source = CRYPT_NAME("슈라\\슈라", 0x038535BB092533B7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[157] = []() -> EncryptedName<14, 0x9B9D51AD3515F779ULL>& { - constexpr std::array source = CRYPT_NAME("제네릭\\제네릭", 0x9B9D51AD3515F779ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[158] = []() -> EncryptedName<10, 0xB5D7B5AF4FEDFF57ULL>& { - constexpr std::array source = CRYPT_NAME("로그\\로그", 0xB5D7B5AF4FEDFF57ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[240] = []() -> EncryptedName<14, 0x67DD5BAB1919D9D1ULL>& { - constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0x67DD5BAB1919D9D1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); + jobSpriteNames.resize(28053, OBFUSCATE_ARRAY("초보자\\초보자", 0x114901C7E37F6D49ULL, char).Text()); + jobSpriteNames[0] = OBFUSCATE_ARRAY("초보자\\초보자", 0xDF8117FF49CFF551ULL, char).Text(); + jobSpriteNames[1] = OBFUSCATE_ARRAY("검사\\검사", 0xADC51BF9C98B413DULL, char).Text(); + jobSpriteNames[2] = OBFUSCATE_ARRAY("마법사\\마법사", 0x51BB39B763BBBD8DULL, char).Text(); + jobSpriteNames[3] = OBFUSCATE_ARRAY("궁수\\궁수", 0x87E3D1C50D572DEFULL, char).Text(); + jobSpriteNames[4] = OBFUSCATE_ARRAY("성직자\\성직자", 0x3FA3AFA7035DE3FFULL, char).Text(); + jobSpriteNames[5] = OBFUSCATE_ARRAY("상인\\상인", 0xDB27CB557D038759ULL, char).Text(); + jobSpriteNames[6] = OBFUSCATE_ARRAY("도둑\\도둑", 0xB3E307A5F753D5E3ULL, char).Text(); + jobSpriteNames[7] = OBFUSCATE_ARRAY("기사\\기사", 0x192D654D29337BE5ULL, char).Text(); + jobSpriteNames[8] = OBFUSCATE_ARRAY("프리스트\\프리스트", 0xB7AFBD2FD9FD7501ULL, char).Text(); + jobSpriteNames[9] = OBFUSCATE_ARRAY("위저드\\위저드", 0x79E915E9AF6F55DDULL, char).Text(); + jobSpriteNames[10] = OBFUSCATE_ARRAY("제철공\\제철공", 0x674D9F3975573D41ULL, char).Text(); + jobSpriteNames[11] = OBFUSCATE_ARRAY("헌터\\헌터", 0x6BDF334F2BFDAD51ULL, char).Text(); + jobSpriteNames[12] = OBFUSCATE_ARRAY("어세신\\어세신", 0x136F2F9915D1DBCFULL, char).Text(); + jobSpriteNames[13] = OBFUSCATE_ARRAY("페코페코_기사\\페코페코_기사", 0x0B23D10F2F49D72BULL, char).Text(); + jobSpriteNames[14] = OBFUSCATE_ARRAY("크루세이더\\크루세이더", 0x1767DDE18D779D8BULL, char).Text(); + jobSpriteNames[15] = OBFUSCATE_ARRAY("몽크\\몽크", 0xC1BB8111EDD183E1ULL, char).Text(); + jobSpriteNames[16] = OBFUSCATE_ARRAY("세이지\\세이지", 0xC5B1BBCD9BC9C997ULL, char).Text(); + jobSpriteNames[17] = OBFUSCATE_ARRAY("로그\\로그", 0x01CB4F1DF9D3F931ULL, char).Text(); + jobSpriteNames[18] = OBFUSCATE_ARRAY("연금술사\\연금술사", 0x49D33529F1556333ULL, char).Text(); + jobSpriteNames[19] = OBFUSCATE_ARRAY("바드\\바드", 0x792FFD1325418FB5ULL, char).Text(); + jobSpriteNames[20] = OBFUSCATE_ARRAY("무희\\무희", 0xF15F8785CDE369BFULL, char).Text(); + jobSpriteNames[21] = OBFUSCATE_ARRAY("신페코크루세이더\\신페코크루세이더", 0xE33F2FF779878559ULL, char).Text(); + jobSpriteNames[23] = OBFUSCATE_ARRAY("초보자\\초보자", 0xD5A78DB38D8DAFABULL, char).Text(); + jobSpriteNames[22] = OBFUSCATE_ARRAY("결혼\\결혼", 0x0399459DAF454F0FULL, char).Text(); + jobSpriteNames[26] = OBFUSCATE_ARRAY("결혼\\결혼", 0xFFABE3D5D1BBEF73ULL, char).Text(); + jobSpriteNames[27] = OBFUSCATE_ARRAY("결혼\\결혼", 0xA597A7E7492B39D5ULL, char).Text(); + jobSpriteNames[28] = OBFUSCATE_ARRAY("결혼\\결혼", 0x0B8745519B1F95D7ULL, char).Text(); + jobSpriteNames[29] = OBFUSCATE_ARRAY("결혼\\결혼", 0xC70319B5EB61598FULL, char).Text(); + jobSpriteNames[30] = OBFUSCATE_ARRAY("결혼\\결혼", 0x271B45771F83DD9FULL, char).Text(); + jobSpriteNames[24] = OBFUSCATE_ARRAY("건너\\건너", 0x8783C33941E15117ULL, char).Text(); + jobSpriteNames[25] = OBFUSCATE_ARRAY("닌자\\닌자", 0x0F61499B4973EB5DULL, char).Text(); + jobSpriteNames[164] = OBFUSCATE_ARRAY("닌자\\닌자", 0xB127A19D775BF751ULL, char).Text(); + jobSpriteNames[167] = OBFUSCATE_ARRAY("소울링커\\소울링커", 0xA31F69E7EFED01C9ULL, char).Text(); + jobSpriteNames[165] = OBFUSCATE_ARRAY("건너\\건너", 0xB7A96F8701BB4B6BULL, char).Text(); + jobSpriteNames[166] = OBFUSCATE_ARRAY("검사\\검사", 0x659975C121557D3DULL, char).Text(); + jobSpriteNames[168] = OBFUSCATE_ARRAY("제철공\\제철공", 0xBFF5C517A1A77F59ULL, char).Text(); + jobSpriteNames[169] = OBFUSCATE_ARRAY("상인\\상인", 0xAD6153019F93A527ULL, char).Text(); + jobSpriteNames[170] = OBFUSCATE_ARRAY("제네릭\\제네릭", 0x85E1F5A7A5755B7FULL, char).Text(); + jobSpriteNames[171] = OBFUSCATE_ARRAY("연금술사\\연금술사", 0x454D31872BB3EDCBULL, char).Text(); + jobSpriteNames[172] = OBFUSCATE_ARRAY("궁수\\궁수", 0x81F58DED5D470D01ULL, char).Text(); + jobSpriteNames[173] = OBFUSCATE_ARRAY("권성\\권성", 0x5DE7712FAB613F75ULL, char).Text(); + jobSpriteNames[174] = OBFUSCATE_ARRAY("초보자\\초보자", 0x41CFCB831F6B6B91ULL, char).Text(); + jobSpriteNames[175] = OBFUSCATE_ARRAY("몽크\\몽크", 0x3789496BE3E1D141ULL, char).Text(); + jobSpriteNames[176] = OBFUSCATE_ARRAY("성직자\\성직자", 0x0F97E779A933D917ULL, char).Text(); + jobSpriteNames[177] = OBFUSCATE_ARRAY("슈라\\슈라", 0xD1056FF94D4D2773ULL, char).Text(); + jobSpriteNames[178] = OBFUSCATE_ARRAY("초보자\\초보자", 0x4331A17F33095FEBULL, char).Text(); + jobSpriteNames[179] = OBFUSCATE_ARRAY("아크비숍\\아크비숍", 0x4B755DB19953E311ULL, char).Text(); + jobSpriteNames[180] = OBFUSCATE_ARRAY("마법사\\마법사", 0xBD2BA1C11B01E73BULL, char).Text(); + jobSpriteNames[181] = OBFUSCATE_ARRAY("세이지\\세이지", 0xED15938D333D2DB9ULL, char).Text(); + jobSpriteNames[182] = OBFUSCATE_ARRAY("소서러\\소서러", 0xC9712D676B5B3943ULL, char).Text(); + jobSpriteNames[183] = OBFUSCATE_ARRAY("워록\\워록", 0x9B0F234DEFDF7593ULL, char).Text(); + jobSpriteNames[184] = OBFUSCATE_ARRAY("위저드\\위저드", 0xD98F5345098D630DULL, char).Text(); + jobSpriteNames[185] = OBFUSCATE_ARRAY("세이지\\세이지", 0x7F2DFFC1ABE91F2BULL, char).Text(); + jobSpriteNames[186] = OBFUSCATE_ARRAY("위저드\\위저드", 0xFD69A9B3F311818DULL, char).Text(); + jobSpriteNames[187] = OBFUSCATE_ARRAY("연금술사\\연금술사", 0xD9452D81E5CD99C1ULL, char).Text(); + jobSpriteNames[188] = OBFUSCATE_ARRAY("제철공\\제철공", 0xADADEB4DF7813B55ULL, char).Text(); + jobSpriteNames[189] = OBFUSCATE_ARRAY("몽크\\몽크", 0xB195637DAFCB0D59ULL, char).Text(); + jobSpriteNames[190] = OBFUSCATE_ARRAY("어세신\\어세신", 0xD7A749EB27D5BF6DULL, char).Text(); + jobSpriteNames[191] = OBFUSCATE_ARRAY("도둑\\도둑", 0x9569C9C7E70909AFULL, char).Text(); + jobSpriteNames[192] = OBFUSCATE_ARRAY("로그\\로그", 0xB19D1FA9116F39D3ULL, char).Text(); + jobSpriteNames[193] = OBFUSCATE_ARRAY("로그\\로그", 0x4191BB5531FD3999ULL, char).Text(); + jobSpriteNames[194] = OBFUSCATE_ARRAY("로그\\로그", 0xF715514F5961B75BULL, char).Text(); + jobSpriteNames[195] = OBFUSCATE_ARRAY("어세신\\어세신", 0x2F8B0F37118D157FULL, char).Text(); + jobSpriteNames[196] = OBFUSCATE_ARRAY("어세신\\어세신", 0xAD075B8DB599F1CDULL, char).Text(); + jobSpriteNames[197] = OBFUSCATE_ARRAY("무희\\무희", 0x2FE993D1DDE1F197ULL, char).Text(); + jobSpriteNames[198] = OBFUSCATE_ARRAY("민스트럴\\민스트럴", 0x39FF7FB50DEB998FULL, char).Text(); + jobSpriteNames[199] = OBFUSCATE_ARRAY("바드\\바드", 0xB7FD8F670FC7B96BULL, char).Text(); + jobSpriteNames[200] = OBFUSCATE_ARRAY("헌터\\헌터", 0xE7978FB5A94DD7FDULL, char).Text(); + jobSpriteNames[201] = OBFUSCATE_ARRAY("무희\\무희", 0x4941FD9F21BBB9FDULL, char).Text(); + jobSpriteNames[202] = OBFUSCATE_ARRAY("무희\\무희", 0x35E5656B5DEDCD75ULL, char).Text(); + jobSpriteNames[203] = OBFUSCATE_ARRAY("바드\\바드", 0xF14F79170939C7F1ULL, char).Text(); + jobSpriteNames[204] = OBFUSCATE_ARRAY("헌터\\헌터", 0xA5FD29D7AB6DC59FULL, char).Text(); + jobSpriteNames[205] = OBFUSCATE_ARRAY("태권소년\\태권소년", 0xD97D5DBDBB2F2709ULL, char).Text(); + jobSpriteNames[206] = OBFUSCATE_ARRAY("프리스트\\프리스트", 0xED796785D1DF137FULL, char).Text(); + jobSpriteNames[207] = OBFUSCATE_ARRAY("프리스트\\프리스트", 0x83EFBFBB37EDBDBDULL, char).Text(); + jobSpriteNames[208] = OBFUSCATE_ARRAY("초보자\\초보자", 0xBF2B4B31397FF5A7ULL, char).Text(); + jobSpriteNames[209] = OBFUSCATE_ARRAY("검사\\검사", 0xDD3913D5D7F97BE1ULL, char).Text(); + jobSpriteNames[210] = OBFUSCATE_ARRAY("마법사\\마법사", 0x050505679903579BULL, char).Text(); + jobSpriteNames[211] = OBFUSCATE_ARRAY("궁수\\궁수", 0x03772763F96D9DA5ULL, char).Text(); + jobSpriteNames[212] = OBFUSCATE_ARRAY("성직자\\성직자", 0x0B7109397F6B1387ULL, char).Text(); + jobSpriteNames[213] = OBFUSCATE_ARRAY("상인\\상인", 0x23BBD58F8B5FF5C9ULL, char).Text(); + jobSpriteNames[214] = OBFUSCATE_ARRAY("헌터\\헌터", 0xC517FB932D95BB6DULL, char).Text(); + jobSpriteNames[215] = OBFUSCATE_ARRAY("어세신\\어세신", 0x9949BFD527532943ULL, char).Text(); + jobSpriteNames[216] = OBFUSCATE_ARRAY("몽크\\몽크", 0xCD8F077123FB7D6FULL, char).Text(); + jobSpriteNames[217] = OBFUSCATE_ARRAY("세이지\\세이지", 0x13E33FA1A591AB67ULL, char).Text(); + jobSpriteNames[218] = OBFUSCATE_ARRAY("로그\\로그", 0x17A9E5BF39AD4737ULL, char).Text(); + jobSpriteNames[219] = OBFUSCATE_ARRAY("연금술사\\연금술사", 0x758F1D0B4F7705B9ULL, char).Text(); + jobSpriteNames[220] = OBFUSCATE_ARRAY("바드\\바드", 0x891B232D09451965ULL, char).Text(); + jobSpriteNames[221] = OBFUSCATE_ARRAY("무희\\무희", 0x637B959D55771F69ULL, char).Text(); + jobSpriteNames[222] = OBFUSCATE_ARRAY("초보자\\초보자", 0xD1413DBB01CD8B51ULL, char).Text(); + jobSpriteNames[223] = OBFUSCATE_ARRAY("워록\\워록", 0x75ADC57D87EFBD8FULL, char).Text(); + jobSpriteNames[224] = OBFUSCATE_ARRAY("아크비숍\\아크비숍", 0x2BAD156DE3E1F9D9ULL, char).Text(); + jobSpriteNames[225] = OBFUSCATE_ARRAY("어세신\\어세신", 0xF161095D0DE18F95ULL, char).Text(); + jobSpriteNames[226] = OBFUSCATE_ARRAY("소서러\\소서러", 0xEDC74F6D13DF71EFULL, char).Text(); + jobSpriteNames[227] = OBFUSCATE_ARRAY("민스트럴\\민스트럴", 0xA12DAB392545D72FULL, char).Text(); + jobSpriteNames[228] = OBFUSCATE_ARRAY("무희\\무희", 0x6BA1C1132F033B75ULL, char).Text(); + jobSpriteNames[229] = OBFUSCATE_ARRAY("슈라\\슈라", 0x2FEB8739E5975BD1ULL, char).Text(); + jobSpriteNames[230] = OBFUSCATE_ARRAY("제네릭\\제네릭", 0x33133B977BCD03CDULL, char).Text(); + jobSpriteNames[232] = OBFUSCATE_ARRAY("로그\\로그", 0x6FE153231D879777ULL, char).Text(); + jobSpriteNames[233] = OBFUSCATE_ARRAY("초보자\\초보자", 0x39A39F87DD5F535BULL, char).Text(); + jobSpriteNames[234] = OBFUSCATE_ARRAY("검사\\검사", 0xEF6D1D893F2B2DC5ULL, char).Text(); + jobSpriteNames[235] = OBFUSCATE_ARRAY("마법사\\마법사", 0x234977DDB54BC71DULL, char).Text(); + jobSpriteNames[236] = OBFUSCATE_ARRAY("궁수\\궁수", 0xE52DF30DCBAF7125ULL, char).Text(); + jobSpriteNames[237] = OBFUSCATE_ARRAY("성직자\\성직자", 0xCFF3899D95AF355FULL, char).Text(); + jobSpriteNames[238] = OBFUSCATE_ARRAY("상인\\상인", 0x9171997D6963C9F7ULL, char).Text(); + jobSpriteNames[239] = OBFUSCATE_ARRAY("도둑\\도둑", 0x4F99DF03C3EF31B7ULL, char).Text(); + jobSpriteNames[231] = OBFUSCATE_ARRAY("도둑\\도둑", 0x8D1D0FF1AF2B13F7ULL, char).Text(); + jobSpriteNames[51] = OBFUSCATE_ARRAY("초보자\\초보자", 0xB39FA7917BCFBB8DULL, char).Text(); + jobSpriteNames[52] = OBFUSCATE_ARRAY("검사\\검사", 0x2DCB7567394DC1ABULL, char).Text(); + jobSpriteNames[53] = OBFUSCATE_ARRAY("마법사\\마법사", 0x4F637DC51307B759ULL, char).Text(); + jobSpriteNames[54] = OBFUSCATE_ARRAY("궁수\\궁수", 0x452FEF0D7FC95565ULL, char).Text(); + jobSpriteNames[55] = OBFUSCATE_ARRAY("성직자\\성직자", 0x9FED7DA189490D5DULL, char).Text(); + jobSpriteNames[56] = OBFUSCATE_ARRAY("상인\\상인", 0x839B27DF8F5967B3ULL, char).Text(); + jobSpriteNames[57] = OBFUSCATE_ARRAY("도둑\\도둑", 0xF3CB6F7711A71B6DULL, char).Text(); + jobSpriteNames[58] = OBFUSCATE_ARRAY("기사\\기사", 0x2D51E3B7236175EDULL, char).Text(); + jobSpriteNames[59] = OBFUSCATE_ARRAY("프리스트\\프리스트", 0x0F41EBBDA32D1B17ULL, char).Text(); + jobSpriteNames[60] = OBFUSCATE_ARRAY("위저드\\위저드", 0xFBD599E117C547C1ULL, char).Text(); + jobSpriteNames[61] = OBFUSCATE_ARRAY("제철공\\제철공", 0x176F138D5DD7F365ULL, char).Text(); + jobSpriteNames[62] = OBFUSCATE_ARRAY("헌터\\헌터", 0x793F370985ED674FULL, char).Text(); + jobSpriteNames[63] = OBFUSCATE_ARRAY("어세신\\어세신", 0xE55723712993051DULL, char).Text(); + jobSpriteNames[64] = OBFUSCATE_ARRAY("페코페코_기사\\페코페코_기사", 0x7115D9F973F913C9ULL, char).Text(); + jobSpriteNames[65] = OBFUSCATE_ARRAY("크루세이더\\크루세이더", 0xCB1D253B7FE1F563ULL, char).Text(); + jobSpriteNames[66] = OBFUSCATE_ARRAY("몽크\\몽크", 0x7941D76335CFA14FULL, char).Text(); + jobSpriteNames[67] = OBFUSCATE_ARRAY("세이지\\세이지", 0x7321C3814F8799E1ULL, char).Text(); + jobSpriteNames[68] = OBFUSCATE_ARRAY("로그\\로그", 0x7DE349D717D7F123ULL, char).Text(); + jobSpriteNames[69] = OBFUSCATE_ARRAY("연금술사\\연금술사", 0x0F15B16B5BAFD57FULL, char).Text(); + jobSpriteNames[70] = OBFUSCATE_ARRAY("바드\\바드", 0x9B5B959B954D9333ULL, char).Text(); + jobSpriteNames[71] = OBFUSCATE_ARRAY("무희\\무희", 0x17FFC98B398FAF61ULL, char).Text(); + jobSpriteNames[72] = OBFUSCATE_ARRAY("신페코크루세이더\\신페코크루세이더", 0x078143534999254DULL, char).Text(); + jobSpriteNames[73] = OBFUSCATE_ARRAY("초보자\\초보자", 0xAFA5617F178B6185ULL, char).Text(); + jobSpriteNames[74] = OBFUSCATE_ARRAY("검사\\검사", 0xE50B2935073DD3E9ULL, char).Text(); + jobSpriteNames[75] = OBFUSCATE_ARRAY("마법사\\마법사", 0x3F5315DFE32B4FAFULL, char).Text(); + jobSpriteNames[76] = OBFUSCATE_ARRAY("궁수\\궁수", 0x33832D4D3FDFBDBFULL, char).Text(); + jobSpriteNames[77] = OBFUSCATE_ARRAY("성직자\\성직자", 0x7D750DADBDE9C3F1ULL, char).Text(); + jobSpriteNames[78] = OBFUSCATE_ARRAY("상인\\상인", 0xED5143E7C1B39315ULL, char).Text(); + jobSpriteNames[79] = OBFUSCATE_ARRAY("도둑\\도둑", 0xFF7D83CB791339D9ULL, char).Text(); + jobSpriteNames[80] = OBFUSCATE_ARRAY("기사\\기사", 0x31956551B311FD95ULL, char).Text(); + jobSpriteNames[81] = OBFUSCATE_ARRAY("프리스트\\프리스트", 0x393D916561BDC391ULL, char).Text(); + jobSpriteNames[82] = OBFUSCATE_ARRAY("위저드\\위저드", 0x955D4DF94DE9BB07ULL, char).Text(); + jobSpriteNames[83] = OBFUSCATE_ARRAY("제철공\\제철공", 0x8741152D8FB34B4FULL, char).Text(); + jobSpriteNames[84] = OBFUSCATE_ARRAY("헌터\\헌터", 0xB739073FE921AD6FULL, char).Text(); + jobSpriteNames[85] = OBFUSCATE_ARRAY("어세신\\어세신", 0xC399B7091589B50BULL, char).Text(); + jobSpriteNames[86] = OBFUSCATE_ARRAY("페코페코_기사\\페코페코_기사", 0x7FC1015DFFCF6D19ULL, char).Text(); + jobSpriteNames[87] = OBFUSCATE_ARRAY("크루세이더\\크루세이더", 0x0753A7E1EFA9E139ULL, char).Text(); + jobSpriteNames[88] = OBFUSCATE_ARRAY("몽크\\몽크", 0x7FCD77F9C7CBD14DULL, char).Text(); + jobSpriteNames[89] = OBFUSCATE_ARRAY("세이지\\세이지", 0xCB3FBD4183DB8323ULL, char).Text(); + jobSpriteNames[90] = OBFUSCATE_ARRAY("로그\\로그", 0x3B915119EFD523EFULL, char).Text(); + jobSpriteNames[91] = OBFUSCATE_ARRAY("연금술사\\연금술사", 0x5B8F49AF09390D1BULL, char).Text(); + jobSpriteNames[92] = OBFUSCATE_ARRAY("바드\\바드", 0x3F557BE333F95F6DULL, char).Text(); + jobSpriteNames[93] = OBFUSCATE_ARRAY("무희\\무희", 0x474DC581D5E98357ULL, char).Text(); + jobSpriteNames[94] = OBFUSCATE_ARRAY("구페코크루세이더\\구페코크루세이더", 0x01FF9313695DD9DFULL, char).Text(); + jobSpriteNames[95] = OBFUSCATE_ARRAY("초보자\\초보자", 0x1BF915E1F37DFDFDULL, char).Text(); + jobSpriteNames[96] = OBFUSCATE_ARRAY("태권소년\\태권소년", 0x49C3759B77DBD3C1ULL, char).Text(); + jobSpriteNames[97] = OBFUSCATE_ARRAY("권성\\권성", 0x6DED3DD1CF75AD9BULL, char).Text(); + jobSpriteNames[98] = OBFUSCATE_ARRAY("권성\\권성", 0x91E147EBBD47C39FULL, char).Text(); + jobSpriteNames[99] = OBFUSCATE_ARRAY("소울링커\\소울링커", 0xD1538513DF975701ULL, char).Text(); + jobSpriteNames[100] = OBFUSCATE_ARRAY("성직자\\성직자", 0xA1A55B4D1597EDD3ULL, char).Text(); + jobSpriteNames[101] = OBFUSCATE_ARRAY("기사\\기사", 0x4F1791FB1503C713ULL, char).Text(); + jobSpriteNames[102] = OBFUSCATE_ARRAY("세이지\\세이지", 0x7D993F650D2785FFULL, char).Text(); + jobSpriteNames[104] = OBFUSCATE_ARRAY("룬나이트\\룬나이트", 0x61FF87ED7BF39BE1ULL, char).Text(); + jobSpriteNames[110] = OBFUSCATE_ARRAY("룬나이트\\룬나이트", 0x151F77EBEBBB2147ULL, char).Text(); + jobSpriteNames[130] = OBFUSCATE_ARRAY("페코페코_룬나이트\\페코페코_룬나이트", 0x2D394DBD0F332733ULL, char).Text(); + jobSpriteNames[131] = OBFUSCATE_ARRAY("페코페코_룬나이트\\페코페코_룬나이트", 0x69D345DB950F336DULL, char).Text(); + jobSpriteNames[159] = OBFUSCATE_ARRAY("페코페코_룬나이트\\페코페코_룬나이트", 0xC7912587FFF31B71ULL, char).Text(); + jobSpriteNames[138] = OBFUSCATE_ARRAY("페코페코_룬나이트\\페코페코_룬나이트", 0x2D3B15774149D5DDULL, char).Text(); + jobSpriteNames[139] = OBFUSCATE_ARRAY("페코페코_룬나이트\\페코페코_룬나이트", 0x9B17C9EFDBB39F2FULL, char).Text(); + jobSpriteNames[140] = OBFUSCATE_ARRAY("페코페코_룬나이트\\페코페코_룬나이트", 0x0BEB63A5C905B3A7ULL, char).Text(); + jobSpriteNames[141] = OBFUSCATE_ARRAY("페코페코_룬나이트\\페코페코_룬나이트", 0x8B3FEB5B8BD5C3C3ULL, char).Text(); + jobSpriteNames[142] = OBFUSCATE_ARRAY("페코페코_룬나이트\\페코페코_룬나이트", 0x8F1B5BFD5F6175B5ULL, char).Text(); + jobSpriteNames[143] = OBFUSCATE_ARRAY("페코페코_룬나이트\\페코페코_룬나이트", 0x078333BB9725B7C9ULL, char).Text(); + jobSpriteNames[144] = OBFUSCATE_ARRAY("페코페코_룬나이트\\페코페코_룬나이트", 0xF5657D1F3DE5CDC7ULL, char).Text(); + jobSpriteNames[145] = OBFUSCATE_ARRAY("페코페코_룬나이트\\페코페코_룬나이트", 0x69FD1D9733D3CFC1ULL, char).Text(); + jobSpriteNames[107] = OBFUSCATE_ARRAY("아크비숍\\아크비숍", 0xF7530137154D8FE5ULL, char).Text(); + jobSpriteNames[113] = OBFUSCATE_ARRAY("아크비숍\\아크비숍", 0x8B65CD61012B5931ULL, char).Text(); + jobSpriteNames[105] = OBFUSCATE_ARRAY("워록\\워록", 0x17359BF953C367B3ULL, char).Text(); + jobSpriteNames[111] = OBFUSCATE_ARRAY("워록\\워록", 0x2FF3C5036D070127ULL, char).Text(); + jobSpriteNames[108] = OBFUSCATE_ARRAY("미케닉\\미케닉", 0x93E7A3A1F587CDC5ULL, char).Text(); + jobSpriteNames[114] = OBFUSCATE_ARRAY("미케닉\\미케닉", 0xC52FB5FBB94FF917ULL, char).Text(); + jobSpriteNames[136] = OBFUSCATE_ARRAY("마도기어\\마도기어", 0x812BE72BCD5707B7ULL, char).Text(); + jobSpriteNames[137] = OBFUSCATE_ARRAY("마도기어\\마도기어", 0x59278F63D79F3DA1ULL, char).Text(); + jobSpriteNames[162] = OBFUSCATE_ARRAY("마도기어\\마도기어", 0x1D6D75EDE7CD311FULL, char).Text(); + jobSpriteNames[106] = OBFUSCATE_ARRAY("레인져\\레인져", 0x3375B1C7DBB5FD55ULL, char).Text(); + jobSpriteNames[112] = OBFUSCATE_ARRAY("레인져\\레인져", 0x0F0F8B6B8F9D19D1ULL, char).Text(); + jobSpriteNames[134] = OBFUSCATE_ARRAY("레인져늑대\\레인져늑대", 0xD98F03A52D35636DULL, char).Text(); + jobSpriteNames[135] = OBFUSCATE_ARRAY("레인져늑대\\레인져늑대", 0x31D7C1EDA345E36DULL, char).Text(); + jobSpriteNames[161] = OBFUSCATE_ARRAY("레인져늑대\\레인져늑대", 0xD3755DD95F47A909ULL, char).Text(); + jobSpriteNames[109] = OBFUSCATE_ARRAY("길로틴크로스\\길로틴크로스", 0x490FFB43A12F0DB9ULL, char).Text(); + jobSpriteNames[115] = OBFUSCATE_ARRAY("길로틴크로스\\길로틴크로스", 0x3FAF85D995034FD7ULL, char).Text(); + jobSpriteNames[116] = OBFUSCATE_ARRAY("로얄가드\\로얄가드", 0x73D1674B61DF7B0BULL, char).Text(); + jobSpriteNames[123] = OBFUSCATE_ARRAY("로얄가드\\로얄가드", 0x91651D81F559F971ULL, char).Text(); + jobSpriteNames[132] = OBFUSCATE_ARRAY("신페코로얄가드\\신페코로얄가드", 0x072D2D872D259D5BULL, char).Text(); + jobSpriteNames[133] = OBFUSCATE_ARRAY("신페코로얄가드\\신페코로얄가드", 0x875FCDF1E7A1795FULL, char).Text(); + jobSpriteNames[160] = OBFUSCATE_ARRAY("신페코로얄가드\\신페코로얄가드", 0xB96B77B7255F8569ULL, char).Text(); + jobSpriteNames[120] = OBFUSCATE_ARRAY("슈라\\슈라", 0x9BE3EF737387AD79ULL, char).Text(); + jobSpriteNames[127] = OBFUSCATE_ARRAY("슈라\\슈라", 0x4755C1355575FD37ULL, char).Text(); + jobSpriteNames[117] = OBFUSCATE_ARRAY("소서러\\소서러", 0x11CB35636377DD07ULL, char).Text(); + jobSpriteNames[124] = OBFUSCATE_ARRAY("소서러\\소서러", 0x79DF094DD9616575ULL, char).Text(); + jobSpriteNames[122] = OBFUSCATE_ARRAY("로그\\로그", 0x9D8F2D37BFFD61B7ULL, char).Text(); + jobSpriteNames[129] = OBFUSCATE_ARRAY("로그\\로그", 0x5DAD2D25D9259B93ULL, char).Text(); + jobSpriteNames[121] = OBFUSCATE_ARRAY("제네릭\\제네릭", 0x1F1D51274373C1FDULL, char).Text(); + jobSpriteNames[128] = OBFUSCATE_ARRAY("제네릭\\제네릭", 0x3D371F5B0F7F9327ULL, char).Text(); + jobSpriteNames[119] = OBFUSCATE_ARRAY("원더러\\원더러", 0x6BF729E30729CF29ULL, char).Text(); + jobSpriteNames[126] = OBFUSCATE_ARRAY("원더러\\원더러", 0xC5995F4B9FE96B89ULL, char).Text(); + jobSpriteNames[118] = OBFUSCATE_ARRAY("민스트럴\\민스트럴", 0x610F7DD1EFC1C91BULL, char).Text(); + jobSpriteNames[125] = OBFUSCATE_ARRAY("민스트럴\\민스트럴", 0x5F93A1C3A7AD7537ULL, char).Text(); + jobSpriteNames[146] = OBFUSCATE_ARRAY("룬나이트\\룬나이트", 0x097389157345A787ULL, char).Text(); + jobSpriteNames[147] = OBFUSCATE_ARRAY("워록\\워록", 0x732B390D63FD47D7ULL, char).Text(); + jobSpriteNames[148] = OBFUSCATE_ARRAY("레인져\\레인져", 0xB7A76BF9CD41F99FULL, char).Text(); + jobSpriteNames[149] = OBFUSCATE_ARRAY("아크비숍\\아크비숍", 0xE3FB23537D2785BFULL, char).Text(); + jobSpriteNames[150] = OBFUSCATE_ARRAY("미케닉\\미케닉", 0x1FDB81175D1557E3ULL, char).Text(); + jobSpriteNames[151] = OBFUSCATE_ARRAY("길로틴크로스\\길로틴크로스", 0xB3CF9BEB7963DB89ULL, char).Text(); + jobSpriteNames[152] = OBFUSCATE_ARRAY("로얄가드\\로얄가드", 0x8BBF792B47E72173ULL, char).Text(); + jobSpriteNames[153] = OBFUSCATE_ARRAY("소서러\\소서러", 0xDD69EDFFA18F537DULL, char).Text(); + jobSpriteNames[154] = OBFUSCATE_ARRAY("민스트럴\\민스트럴", 0x71A509DB43792991ULL, char).Text(); + jobSpriteNames[155] = OBFUSCATE_ARRAY("원더러\\원더러", 0xFB2BC75769E777D3ULL, char).Text(); + jobSpriteNames[156] = OBFUSCATE_ARRAY("슈라\\슈라", 0x038535BB092533B7ULL, char).Text(); + jobSpriteNames[157] = OBFUSCATE_ARRAY("제네릭\\제네릭", 0x9B9D51AD3515F779ULL, char).Text(); + jobSpriteNames[158] = OBFUSCATE_ARRAY("로그\\로그", 0xB5D7B5AF4FEDFF57ULL, char).Text(); + jobSpriteNames[240] = OBFUSCATE_ARRAY("초보자\\초보자", 0x67DD5BAB1919D9D1ULL, char).Text(); { constexpr std::array source = CRYPT_NAME("초보자\\초보자", 0xB5F3F779237315F3ULL); thread_local EncryptedName name(source); @@ -8522,271 +7235,59 @@ void CSession::InitJobSpriteNames() { jobSpriteNames[284] = PoringStarGladiatorBabySpriteName().Text(); jobSpriteNames[277] = SoulLinkerBabySpriteName().Text(); jobSpriteNames[285] = FrogSoulLinkerBabySpriteName().Text(); - jobSpriteNames[278] = []() -> EncryptedName<10, 0x0789EBC9F5C1C59FULL>& { - constexpr std::array source = CRYPT_NAME("건너\\건너", 0x0789EBC9F5C1C59FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[286] = []() -> EncryptedName<10, 0x451FD72783630709ULL>& { - constexpr std::array source = CRYPT_NAME("건너\\건너", 0x451FD72783630709ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[279] = []() -> EncryptedName<20, 0x3B6D9BFD27A7C7F7ULL>& { - constexpr std::array source = CRYPT_NAME("rebellion\\rebellion", 0x3B6D9BFD27A7C7F7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[287] = []() -> EncryptedName<20, 0xA15B555BE9CD2B81ULL>& { - constexpr std::array source = CRYPT_NAME("rebellion\\rebellion", 0xA15B555BE9CD2B81ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[289] = []() -> EncryptedName<10, 0x73C32959FDFFA51BULL>& { - constexpr std::array source = CRYPT_NAME("성제\\성제", 0x73C32959FDFFA51BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[290] = []() -> EncryptedName<18, 0xB3F1A10745C1F105ULL>& { - constexpr std::array source = CRYPT_NAME("소울리퍼\\소울리퍼", 0xB3F1A10745C1F105ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[291] = []() -> EncryptedName<10, 0xD9115915B1919533ULL>& { - constexpr std::array source = CRYPT_NAME("성제\\성제", 0xD9115915B1919533ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[292] = []() -> EncryptedName<18, 0x7959FFBF652D07BFULL>& { - constexpr std::array source = CRYPT_NAME("소울리퍼\\소울리퍼", 0x7959FFBF652D07BFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[293] = []() -> EncryptedName<10, 0x99157F159BB99BD9ULL>& { - constexpr std::array source = CRYPT_NAME("성제\\성제", 0x99157F159BB99BD9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[294] = []() -> EncryptedName<10, 0x31E3CF9D358D8705ULL>& { - constexpr std::array source = CRYPT_NAME("성제\\성제", 0x31E3CF9D358D8705ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[295] = []() -> EncryptedName<10, 0xA55B7BEF3D7377E3ULL>& { - constexpr std::array source = CRYPT_NAME("성제\\성제", 0xA55B7BEF3D7377E3ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[296] = []() -> EncryptedName<18, 0xF5496753BDE7C5BDULL>& { - constexpr std::array source = CRYPT_NAME("소울리퍼\\소울리퍼", 0xF5496753BDE7C5BDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[297] = []() -> EncryptedName<10, 0x79A58B0F2173CF49ULL>& { - constexpr std::array source = CRYPT_NAME("성제\\성제", 0x79A58B0F2173CF49ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[298] = []() -> EncryptedName<18, 0x6B3917C939150B9BULL>& { - constexpr std::array source = CRYPT_NAME("소울리퍼\\소울리퍼", 0x6B3917C939150B9BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[307] = []() -> EncryptedName<18, 0x795787B7779D19DBULL>& { - constexpr std::array source = CRYPT_NAME("WINDHAWK\\WINDHAWK", 0x795787B7779D19DBULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[328] = []() -> EncryptedName<23, 0xF9B1EF9F7961EFF5ULL>& { - constexpr std::array source = CRYPT_NAME("WINDHAWK\\WOLF_WINDHAWK", 0xF9B1EF9F7961EFF5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[320] = []() -> EncryptedName<25, 0x29AB0B59651BDFD5ULL>& { - constexpr std::array source = CRYPT_NAME("WINDHAWK\\WINDHAWK_RIDING", 0x29AB0B59651BDFD5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[313] = []() -> EncryptedName<22, 0xD97DC927AFE911F1ULL>& { - constexpr std::array source = CRYPT_NAME("TROUBADOUR\\TROUBADOUR", 0xD97DC927AFE911F1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[326] = []() -> EncryptedName<29, 0x07A7D947CF7323BFULL>& { - constexpr std::array source = CRYPT_NAME("TROUBADOUR\\TROUBADOUR_RIDING", 0x07A7D947CF7323BFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[314] = []() -> EncryptedName<18, 0x47B7BF55EB471557ULL>& { - constexpr std::array source = CRYPT_NAME("TROUVERE\\TROUVERE", 0x47B7BF55EB471557ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[327] = []() -> EncryptedName<25, 0x8BA52B970DD531ADULL>& { - constexpr std::array source = CRYPT_NAME("TROUVERE\\TROUVERE_RIDING", 0x8BA52B970DD531ADULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[305] = []() -> EncryptedName<20, 0x2F2103792383718BULL>& { - constexpr std::array source = CRYPT_NAME("ARCH_MAGE\\ARCH_MAGE", 0x2F2103792383718BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[318] = []() -> EncryptedName<27, 0xCFB9671DEF4BD9E7ULL>& { - constexpr std::array source = CRYPT_NAME("ARCH_MAGE\\ARCH_MAGE_RIDING", 0xCFB9671DEF4BD9E7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[311] = []() -> EncryptedName<32, 0x4349ADE96FEB27E5ULL>& { - constexpr std::array source = CRYPT_NAME("ELEMETAL_MASTER\\ELEMETAL_MASTER", 0x4349ADE96FEB27E5ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[324] = []() -> EncryptedName<39, 0x999F5191852D2F6BULL>& { - constexpr std::array source = CRYPT_NAME("ELEMETAL_MASTER\\ELEMETAL_MASTER_RIDING", 0x999F5191852D2F6BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[306] = []() -> EncryptedName<18, 0x35F59F6F3DD1C965ULL>& { - constexpr std::array source = CRYPT_NAME("CARDINAL\\CARDINAL", 0x35F59F6F3DD1C965ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[319] = []() -> EncryptedName<25, 0xC1FD95811D1F4FA1ULL>& { - constexpr std::array source = CRYPT_NAME("CARDINAL\\CARDINAL_RIDING", 0xC1FD95811D1F4FA1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[312] = []() -> EncryptedName<22, 0xBF0F412941076FADULL>& { - constexpr std::array source = CRYPT_NAME("INQUISITOR\\INQUISITOR", 0xBF0F412941076FADULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[325] = []() -> EncryptedName<29, 0xD7BBEB2DDB295D11ULL>& { - constexpr std::array source = CRYPT_NAME("INQUISITOR\\INQUISITOR_RIDING", 0xD7BBEB2DDB295D11ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[309] = []() -> EncryptedName<12, 0xB59BADC5B365617DULL>& { - constexpr std::array source = CRYPT_NAME("BIOLO\\BIOLO", 0xB59BADC5B365617DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[322] = []() -> EncryptedName<26, 0x8DFF0B4B67D9FDE1ULL>& { - constexpr std::array source = CRYPT_NAME("BIOLO_RIDING\\BIOLO_RIDING", 0x8DFF0B4B67D9FDE1ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[303] = []() -> EncryptedName<16, 0x91E7A7DFA58F9B6BULL>& { - constexpr std::array source = CRYPT_NAME("MEISTER\\MEISTER", 0x91E7A7DFA58F9B6BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[316] = []() -> EncryptedName<30, 0x77D925073D6F19B9ULL>& { - constexpr std::array source = CRYPT_NAME("MEISTER_RIDING\\MEISTER_RIDING", 0x77D925073D6F19B9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[329] = []() -> EncryptedName<35, 0xAFF9332FD397533FULL>& { - constexpr std::array source = CRYPT_NAME("MEISTER_MADOGEAR\\MEISTER_MADOGEAR1", 0xAFF9332FD397533FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[304] = []() -> EncryptedName<26, 0xA1DFCDAD555BB16DULL>& { - constexpr std::array source = CRYPT_NAME("SHADOW_CROSS\\SHADOW_CROSS", 0xA1DFCDAD555BB16DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[317] = []() -> EncryptedName<33, 0x7DC10333F96DE3E7ULL>& { - constexpr std::array source = CRYPT_NAME("SHADOW_CROSS\\SHADOW_CROSS_RIDING", 0x7DC10333F96DE3E7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[310] = []() -> EncryptedName<26, 0x194F8339AF753FADULL>& { - constexpr std::array source = CRYPT_NAME("ABYSS_CHASER\\ABYSS_CHASER", 0x194F8339AF753FADULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[323] = []() -> EncryptedName<33, 0x51372B6F4BA14B23ULL>& { - constexpr std::array source = CRYPT_NAME("ABYSS_CHASER\\ABYSS_CHASER_RIDING", 0x51372B6F4BA14B23ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[302] = []() -> EncryptedName<28, 0xE9FBAB53D5A1BB17ULL>& { - constexpr std::array source = CRYPT_NAME("DRAGON_KNIGHT\\DRAGON_KNIGHT", 0xE9FBAB53D5A1BB17ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[315] = []() -> EncryptedName<42, 0x1F79132B518FD389ULL>& { - constexpr std::array source = CRYPT_NAME("DRAGON_KNIGHT_RIDING\\DRAGON_KNIGHT_RIDING", 0x1F79132B518FD389ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[330] = []() -> EncryptedName<44, 0xB70319D3A78D39CDULL>& { - constexpr std::array source = CRYPT_NAME("DRAGON_KNIGHT_CHICKEN\\DRAGON_KNIGHT_CHICKEN", 0xB70319D3A78D39CDULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[308] = []() -> EncryptedName<30, 0xA5C5D1A3B9457B53ULL>& { - constexpr std::array source = CRYPT_NAME("IMPERIAL_GUARD\\IMPERIAL_GUARD", 0xA5C5D1A3B9457B53ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[321] = []() -> EncryptedName<44, 0x8F61434F0F79DDD7ULL>& { - constexpr std::array source = CRYPT_NAME("IMPERIAL_GUARD_RIDING\\IMPERIAL_GUARD_RIDING", 0x8F61434F0F79DDD7ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[331] = []() -> EncryptedName<46, 0x4B670715D543C1C3ULL>& { - constexpr std::array source = CRYPT_NAME("IMPERIAL_GUARD_CHICKEN\\IMPERIAL_GUARD_CHICKEN", 0x4B670715D543C1C3ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[352] = []() -> EncryptedName<24, 0x61F59D5D41E76519ULL>& { - constexpr std::array source = CRYPT_NAME("SKY_EMPEROR\\SKY_EMPEROR", 0x61F59D5D41E76519ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[366] = []() -> EncryptedName<24, 0x4B1D078937DB892BULL>& { - constexpr std::array source = CRYPT_NAME("SKY_EMPEROR\\SKY_EMPEROR", 0x4B1D078937DB892BULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[359] = []() -> EncryptedName<31, 0x7155E5EF0DFB0D03ULL>& { - constexpr std::array source = CRYPT_NAME("SKY_EMPEROR\\SKY_EMPEROR_RIDING", 0x7155E5EF0DFB0D03ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[353] = []() -> EncryptedName<26, 0xD51953E763B94747ULL>& { - constexpr std::array source = CRYPT_NAME("SOUL_ASCETIC\\SOUL_ASCETIC", 0xD51953E763B94747ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[360] = []() -> EncryptedName<33, 0x17FB0F6BFF3BE93FULL>& { - constexpr std::array source = CRYPT_NAME("SOUL_ASCETIC\\SOUL_ASCETIC_RIDING", 0x17FB0F6BFF3BE93FULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[354] = []() -> EncryptedName<18, 0x91DF1F5D3B014D45ULL>& { - constexpr std::array source = CRYPT_NAME("SHINKIRO\\SHINKIRO", 0x91DF1F5D3B014D45ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[361] = []() -> EncryptedName<25, 0x2529F16B0375530DULL>& { - constexpr std::array source = CRYPT_NAME("SHINKIRO\\SHINKIRO_RIDING", 0x2529F16B0375530DULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[355] = []() -> EncryptedName<18, 0x2F371DDDADDD53CFULL>& { - constexpr std::array source = CRYPT_NAME("SHIRANUI\\SHIRANUI", 0x2F371DDDADDD53CFULL); - thread_local EncryptedName name(source); - return name; - }().Text(); - jobSpriteNames[362] = []() -> EncryptedName<25, 0x0D7FA94DD32361A9ULL>& { - constexpr std::array source = CRYPT_NAME("SHIRANUI\\SHIRANUI_RIDING", 0x0D7FA94DD32361A9ULL); - thread_local EncryptedName name(source); - return name; - }().Text(); + jobSpriteNames[278] = OBFUSCATE_ARRAY("건너\\건너", 0x0789EBC9F5C1C59FULL, char).Text(); + jobSpriteNames[286] = OBFUSCATE_ARRAY("건너\\건너", 0x451FD72783630709ULL, char).Text(); + jobSpriteNames[279] = OBFUSCATE_ARRAY("rebellion\\rebellion", 0x3B6D9BFD27A7C7F7ULL, char).Text(); + jobSpriteNames[287] = OBFUSCATE_ARRAY("rebellion\\rebellion", 0xA15B555BE9CD2B81ULL, char).Text(); + jobSpriteNames[289] = OBFUSCATE_ARRAY("성제\\성제", 0x73C32959FDFFA51BULL, char).Text(); + jobSpriteNames[290] = OBFUSCATE_ARRAY("소울리퍼\\소울리퍼", 0xB3F1A10745C1F105ULL, char).Text(); + jobSpriteNames[291] = OBFUSCATE_ARRAY("성제\\성제", 0xD9115915B1919533ULL, char).Text(); + jobSpriteNames[292] = OBFUSCATE_ARRAY("소울리퍼\\소울리퍼", 0x7959FFBF652D07BFULL, char).Text(); + jobSpriteNames[293] = OBFUSCATE_ARRAY("성제\\성제", 0x99157F159BB99BD9ULL, char).Text(); + jobSpriteNames[294] = OBFUSCATE_ARRAY("성제\\성제", 0x31E3CF9D358D8705ULL, char).Text(); + jobSpriteNames[295] = OBFUSCATE_ARRAY("성제\\성제", 0xA55B7BEF3D7377E3ULL, char).Text(); + jobSpriteNames[296] = OBFUSCATE_ARRAY("소울리퍼\\소울리퍼", 0xF5496753BDE7C5BDULL, char).Text(); + jobSpriteNames[297] = OBFUSCATE_ARRAY("성제\\성제", 0x79A58B0F2173CF49ULL, char).Text(); + jobSpriteNames[298] = OBFUSCATE_ARRAY("소울리퍼\\소울리퍼", 0x6B3917C939150B9BULL, char).Text(); + jobSpriteNames[307] = OBFUSCATE_ARRAY("WINDHAWK\\WINDHAWK", 0x795787B7779D19DBULL, char).Text(); + jobSpriteNames[328] = OBFUSCATE_ARRAY("WINDHAWK\\WOLF_WINDHAWK", 0xF9B1EF9F7961EFF5ULL, char).Text(); + jobSpriteNames[320] = OBFUSCATE_ARRAY("WINDHAWK\\WINDHAWK_RIDING", 0x29AB0B59651BDFD5ULL, char).Text(); + jobSpriteNames[313] = OBFUSCATE_ARRAY("TROUBADOUR\\TROUBADOUR", 0xD97DC927AFE911F1ULL, char).Text(); + jobSpriteNames[326] = OBFUSCATE_ARRAY("TROUBADOUR\\TROUBADOUR_RIDING", 0x07A7D947CF7323BFULL, char).Text(); + jobSpriteNames[314] = OBFUSCATE_ARRAY("TROUVERE\\TROUVERE", 0x47B7BF55EB471557ULL, char).Text(); + jobSpriteNames[327] = OBFUSCATE_ARRAY("TROUVERE\\TROUVERE_RIDING", 0x8BA52B970DD531ADULL, char).Text(); + jobSpriteNames[305] = OBFUSCATE_ARRAY("ARCH_MAGE\\ARCH_MAGE", 0x2F2103792383718BULL, char).Text(); + jobSpriteNames[318] = OBFUSCATE_ARRAY("ARCH_MAGE\\ARCH_MAGE_RIDING", 0xCFB9671DEF4BD9E7ULL, char).Text(); + jobSpriteNames[311] = OBFUSCATE_ARRAY("ELEMETAL_MASTER\\ELEMETAL_MASTER", 0x4349ADE96FEB27E5ULL, char).Text(); + jobSpriteNames[324] = OBFUSCATE_ARRAY("ELEMETAL_MASTER\\ELEMETAL_MASTER_RIDING", 0x999F5191852D2F6BULL, char).Text(); + jobSpriteNames[306] = OBFUSCATE_ARRAY("CARDINAL\\CARDINAL", 0x35F59F6F3DD1C965ULL, char).Text(); + jobSpriteNames[319] = OBFUSCATE_ARRAY("CARDINAL\\CARDINAL_RIDING", 0xC1FD95811D1F4FA1ULL, char).Text(); + jobSpriteNames[312] = OBFUSCATE_ARRAY("INQUISITOR\\INQUISITOR", 0xBF0F412941076FADULL, char).Text(); + jobSpriteNames[325] = OBFUSCATE_ARRAY("INQUISITOR\\INQUISITOR_RIDING", 0xD7BBEB2DDB295D11ULL, char).Text(); + jobSpriteNames[309] = OBFUSCATE_ARRAY("BIOLO\\BIOLO", 0xB59BADC5B365617DULL, char).Text(); + jobSpriteNames[322] = OBFUSCATE_ARRAY("BIOLO_RIDING\\BIOLO_RIDING", 0x8DFF0B4B67D9FDE1ULL, char).Text(); + jobSpriteNames[303] = OBFUSCATE_ARRAY("MEISTER\\MEISTER", 0x91E7A7DFA58F9B6BULL, char).Text(); + jobSpriteNames[316] = OBFUSCATE_ARRAY("MEISTER_RIDING\\MEISTER_RIDING", 0x77D925073D6F19B9ULL, char).Text(); + jobSpriteNames[329] = OBFUSCATE_ARRAY("MEISTER_MADOGEAR\\MEISTER_MADOGEAR1", 0xAFF9332FD397533FULL, char).Text(); + jobSpriteNames[304] = OBFUSCATE_ARRAY("SHADOW_CROSS\\SHADOW_CROSS", 0xA1DFCDAD555BB16DULL, char).Text(); + jobSpriteNames[317] = OBFUSCATE_ARRAY("SHADOW_CROSS\\SHADOW_CROSS_RIDING", 0x7DC10333F96DE3E7ULL, char).Text(); + jobSpriteNames[310] = OBFUSCATE_ARRAY("ABYSS_CHASER\\ABYSS_CHASER", 0x194F8339AF753FADULL, char).Text(); + jobSpriteNames[323] = OBFUSCATE_ARRAY("ABYSS_CHASER\\ABYSS_CHASER_RIDING", 0x51372B6F4BA14B23ULL, char).Text(); + jobSpriteNames[302] = OBFUSCATE_ARRAY("DRAGON_KNIGHT\\DRAGON_KNIGHT", 0xE9FBAB53D5A1BB17ULL, char).Text(); + jobSpriteNames[315] = OBFUSCATE_ARRAY("DRAGON_KNIGHT_RIDING\\DRAGON_KNIGHT_RIDING", 0x1F79132B518FD389ULL, char).Text(); + jobSpriteNames[330] = OBFUSCATE_ARRAY("DRAGON_KNIGHT_CHICKEN\\DRAGON_KNIGHT_CHICKEN", 0xB70319D3A78D39CDULL, char).Text(); + jobSpriteNames[308] = OBFUSCATE_ARRAY("IMPERIAL_GUARD\\IMPERIAL_GUARD", 0xA5C5D1A3B9457B53ULL, char).Text(); + jobSpriteNames[321] = OBFUSCATE_ARRAY("IMPERIAL_GUARD_RIDING\\IMPERIAL_GUARD_RIDING", 0x8F61434F0F79DDD7ULL, char).Text(); + jobSpriteNames[331] = OBFUSCATE_ARRAY("IMPERIAL_GUARD_CHICKEN\\IMPERIAL_GUARD_CHICKEN", 0x4B670715D543C1C3ULL, char).Text(); + jobSpriteNames[352] = OBFUSCATE_ARRAY("SKY_EMPEROR\\SKY_EMPEROR", 0x61F59D5D41E76519ULL, char).Text(); + jobSpriteNames[366] = OBFUSCATE_ARRAY("SKY_EMPEROR\\SKY_EMPEROR", 0x4B1D078937DB892BULL, char).Text(); + jobSpriteNames[359] = OBFUSCATE_ARRAY("SKY_EMPEROR\\SKY_EMPEROR_RIDING", 0x7155E5EF0DFB0D03ULL, char).Text(); + jobSpriteNames[353] = OBFUSCATE_ARRAY("SOUL_ASCETIC\\SOUL_ASCETIC", 0xD51953E763B94747ULL, char).Text(); + jobSpriteNames[360] = OBFUSCATE_ARRAY("SOUL_ASCETIC\\SOUL_ASCETIC_RIDING", 0x17FB0F6BFF3BE93FULL, char).Text(); + jobSpriteNames[354] = OBFUSCATE_ARRAY("SHINKIRO\\SHINKIRO", 0x91DF1F5D3B014D45ULL, char).Text(); + jobSpriteNames[361] = OBFUSCATE_ARRAY("SHINKIRO\\SHINKIRO_RIDING", 0x2529F16B0375530DULL, char).Text(); + jobSpriteNames[355] = OBFUSCATE_ARRAY("SHIRANUI\\SHIRANUI", 0x2F371DDDADDD53CFULL, char).Text(); + jobSpriteNames[362] = OBFUSCATE_ARRAY("SHIRANUI\\SHIRANUI_RIDING", 0x0D7FA94DD32361A9ULL, char).Text(); jobSpriteNames[356] = NightWatchBodyPath2().Text(); jobSpriteNames[363] = NightWatchRidingBodyPath2().Text(); jobSpriteNames[357] = HyperNoviceBodyPath2().Text(); diff --git a/Source/Client/Stove/StoveMgr.cpp b/Source/Client/Stove/StoveMgr.cpp index e3620f5e8..8f037f6a7 100644 --- a/Source/Client/Stove/StoveMgr.cpp +++ b/Source/Client/Stove/StoveMgr.cpp @@ -17,6 +17,7 @@ #include "Utility/Cipher/XorBytes.h" #include "Utility/Text/FormatString.h" #include "Utility/Cipher/CryptName.h" +#include "Utility/Cipher/Obfuscate.h" #include #include @@ -442,28 +443,19 @@ void CategoryProductsCallback::operator()(Stove::PCSDK::CallbackResult callbackR // OFFSET: 0x0063CF60 // FUNCTION: fn_04786 EncryptedName<100, 0x3375B1C7DBB5FD55ULL>& AccessTokenFailureMessage::operator()() const { - constexpr auto sourceText = CRYPT_NAME("장애가 발생 하였습니다. 게임을 재실행 해주세요. 문제가 지속될 경우, STOVE 고객센터로 문의 바랍니다.", 0x3375B1C7DBB5FD55ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("장애가 발생 하였습니다. 게임을 재실행 해주세요. 문제가 지속될 경우, STOVE 고객센터로 문의 바랍니다.", 0x3375B1C7DBB5FD55ULL); } // OFFSET: 0x0063D060 // FUNCTION: fn_04787 EncryptedName<100, 0x151F77EBEBBB2147ULL>& UserFailureMessage::operator()() const { - constexpr auto sourceText = CRYPT_NAME("장애가 발생 하였습니다. 게임을 재실행 해주세요. 문제가 지속될 경우, STOVE 고객센터로 문의 바랍니다.", 0x151F77EBEBBB2147ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("장애가 발생 하였습니다. 게임을 재실행 해주세요. 문제가 지속될 경우, STOVE 고객센터로 문의 바랍니다.", 0x151F77EBEBBB2147ULL); } // OFFSET: 0x0063D160 // FUNCTION: fn_04788 EncryptedName<100, 0x4F1791FB1503C713ULL>& TokenCallbackFailureMessage::operator()() const { - constexpr auto sourceText = CRYPT_NAME("장애가 발생 하였습니다. 게임을 재실행 해주세요. 문제가 지속될 경우, STOVE 고객센터로 문의 바랍니다.", 0x4F1791FB1503C713ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("장애가 발생 하였습니다. 게임을 재실행 해주세요. 문제가 지속될 경우, STOVE 고객센터로 문의 바랍니다.", 0x4F1791FB1503C713ULL); } // OFFSET: 0x0063D260 @@ -483,10 +475,7 @@ void InitializeCallback::operator()(Stove::PCSDK::CallbackResult callbackResult) // OFFSET: 0x0063D490 // FUNCTION: fn_04790 EncryptedName<129, 0x2D3B15774149D5DDULL>& PurchaseCheckingMessage::operator()() const { - constexpr auto sourceText = CRYPT_NAME("\xBE\xC6\xC0\xCC\xC5\xDB \xB1\xB8\xB8\xC5 \xC8\xAE\xC0\xCE \xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9....\x0A\x0A\x0A^ff0000\xC1\xD6\xC0\xC7! Stove \xC6\xE4\xC0\xCC\xC1\xF6\xBF\xA1\xBC\xAD \xB1\xB8\xB8\xC5 \xBF\xCF\xB7\xE1 \xC8\xC4 [\xC8\xAE\xC0\xCE] \xB9\xF6\xC6\xB0\xC0\xBB \xB4\xAD\xB7\xAF\xBE\xDF \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xCC \xC1\xA4\xBB\xF3 \xC1\xF6\xB1\xDE\xB5\xCB\xB4\xCF\xB4\xD9.^000000", 0x2D3B15774149D5DDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("\xBE\xC6\xC0\xCC\xC5\xDB \xB1\xB8\xB8\xC5 \xC8\xAE\xC0\xCE \xC1\xDF\xC0\xD4\xB4\xCF\xB4\xD9....\x0A\x0A\x0A^ff0000\xC1\xD6\xC0\xC7! Stove \xC6\xE4\xC0\xCC\xC1\xF6\xBF\xA1\xBC\xAD \xB1\xB8\xB8\xC5 \xBF\xCF\xB7\xE1 \xC8\xC4 [\xC8\xAE\xC0\xCE] \xB9\xF6\xC6\xB0\xC0\xBB \xB4\xAD\xB7\xAF\xBE\xDF \xBE\xC6\xC0\xCC\xC5\xDB\xC0\xCC \xC1\xA4\xBB\xF3 \xC1\xF6\xB1\xDE\xB5\xCB\xB4\xCF\xB4\xD9.^000000", 0x2D3B15774149D5DDULL); } // OFFSET: 0x0063D5D0 diff --git a/Source/Contents/Actors/Resources/BodyResources.cpp b/Source/Contents/Actors/Resources/BodyResources.cpp index 8f2b24529..58e8a5071 100644 --- a/Source/Contents/Actors/Resources/BodyResources.cpp +++ b/Source/Contents/Actors/Resources/BodyResources.cpp @@ -5,6 +5,7 @@ #include "Utility/Cipher/XorBytes.h" #include "Utility/Text/FormatString.h" #include "Utility/Cipher/CryptName.h" +#include "Utility/Cipher/Obfuscate.h" #include #include @@ -4114,2663 +4115,1775 @@ std::string EquipmentResourceMgr::GetBodyRacePrefix(int job) { // OFFSET: 0x00DCA170 // FUNCTION: fn_23035 EncryptedName<14, 0x072D2D872D259D5BULL>& WizardBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x072D2D872D259D5BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x072D2D872D259D5BULL); } // OFFSET: 0x00DCA240 // FUNCTION: fn_23036 EncryptedName<18, 0x9BE3EF737387AD79ULL>& PriestBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("프리스트\\프리스트", 0x9BE3EF737387AD79ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("프리스트\\프리스트", 0x9BE3EF737387AD79ULL); } // OFFSET: 0x00DCA310 // FUNCTION: fn_23037 EncryptedName<14, 0xB96B77B7255F8569ULL>& AssassinBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("어세신\\어세신", 0xB96B77B7255F8569ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("어세신\\어세신", 0xB96B77B7255F8569ULL); } // OFFSET: 0x00DCA3E0 // FUNCTION: fn_23038 EncryptedName<14, 0x11CB35636377DD07ULL>& SageBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("세이지\\세이지", 0x11CB35636377DD07ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("세이지\\세이지", 0x11CB35636377DD07ULL); } // OFFSET: 0x00DCA4B0 // FUNCTION: fn_23039 EncryptedName<10, 0x4755C1355575FD37ULL>& BardBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("바드\\바드", 0x4755C1355575FD37ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("바드\\바드", 0x4755C1355575FD37ULL); } // OFFSET: 0x00DCA580 // FUNCTION: fn_23040 EncryptedName<10, 0x9D8F2D37BFFD61B7ULL>& DancerBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("무희\\무희", 0x9D8F2D37BFFD61B7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("무희\\무희", 0x9D8F2D37BFFD61B7ULL); } // OFFSET: 0x00DCA650 // FUNCTION: fn_23041 EncryptedName<10, 0x79DF094DD9616575ULL>& MonkBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("몽크\\몽크", 0x79DF094DD9616575ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("몽크\\몽크", 0x79DF094DD9616575ULL); } // OFFSET: 0x00DCA720 // FUNCTION: fn_23042 EncryptedName<18, 0x038535BB092533B7ULL>& AlchemistBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("연금술사\\연금술사", 0x038535BB092533B7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("연금술사\\연금술사", 0x038535BB092533B7ULL); } // OFFSET: 0x00DCA7F0 // FUNCTION: fn_23043 EncryptedName<10, 0xFB2BC75769E777D3ULL>& RogueBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("로그\\로그", 0xFB2BC75769E777D3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("로그\\로그", 0xFB2BC75769E777D3ULL); } // OFFSET: 0x00DCA8C0 // FUNCTION: fn_23044 EncryptedName<14, 0xB5D7B5AF4FEDFF57ULL>& NoviceBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("초보자\\초보자", 0xB5D7B5AF4FEDFF57ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("초보자\\초보자", 0xB5D7B5AF4FEDFF57ULL); } // OFFSET: 0x00DCA990 // FUNCTION: fn_23045 EncryptedName<10, 0x9B9D51AD3515F779ULL>& SwordmanBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("검사\\검사", 0x9B9D51AD3515F779ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("검사\\검사", 0x9B9D51AD3515F779ULL); } // OFFSET: 0x00DCAA60 // FUNCTION: fn_23046 EncryptedName<14, 0xB5F3F779237315F3ULL>& MagicianBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("마법사\\마법사", 0xB5F3F779237315F3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("마법사\\마법사", 0xB5F3F779237315F3ULL); } // OFFSET: 0x00DCAB30 // FUNCTION: fn_23047 EncryptedName<10, 0x67DD5BAB1919D9D1ULL>& ArcherBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("궁수\\궁수", 0x67DD5BAB1919D9D1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("궁수\\궁수", 0x67DD5BAB1919D9D1ULL); } // OFFSET: 0x00DCAC00 // FUNCTION: fn_23048 EncryptedName<14, 0x91493751EF33B5FDULL>& AcolyteBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("성직자\\성직자", 0x91493751EF33B5FDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("성직자\\성직자", 0x91493751EF33B5FDULL); } // OFFSET: 0x00DCACD0 // FUNCTION: fn_23049 EncryptedName<10, 0x6BC977B3B5993503ULL>& MerchantBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("상인\\상인", 0x6BC977B3B5993503ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("상인\\상인", 0x6BC977B3B5993503ULL); } // OFFSET: 0x00DCADA0 // FUNCTION: fn_23050 EncryptedName<10, 0xB7A76BF9CD41F99FULL>& ThiefBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("도둑\\도둑", 0xB7A76BF9CD41F99FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("도둑\\도둑", 0xB7A76BF9CD41F99FULL); } // OFFSET: 0x00DCAE70 // FUNCTION: fn_23051 EncryptedName<10, 0x732B390D63FD47D7ULL>& ThiefBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("도둑\\도둑", 0x732B390D63FD47D7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("도둑\\도둑", 0x732B390D63FD47D7ULL); } // OFFSET: 0x00DCAF40 // FUNCTION: fn_23052 EncryptedName<14, 0x1FDB81175D1557E3ULL>& NoviceBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("초보자\\초보자", 0x1FDB81175D1557E3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("초보자\\초보자", 0x1FDB81175D1557E3ULL); } // OFFSET: 0x00DCB010 // FUNCTION: fn_23053 EncryptedName<10, 0xE3FB23537D2785BFULL>& SwordmanBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("검사\\검사", 0xE3FB23537D2785BFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("검사\\검사", 0xE3FB23537D2785BFULL); } // OFFSET: 0x00DCB0E0 // FUNCTION: fn_23054 EncryptedName<14, 0x8BBF792B47E72173ULL>& MagicianBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("마법사\\마법사", 0x8BBF792B47E72173ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("마법사\\마법사", 0x8BBF792B47E72173ULL); } // OFFSET: 0x00DCB1B0 // FUNCTION: fn_23055 EncryptedName<10, 0xB3CF9BEB7963DB89ULL>& ArcherBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("궁수\\궁수", 0xB3CF9BEB7963DB89ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("궁수\\궁수", 0xB3CF9BEB7963DB89ULL); } // OFFSET: 0x00DCB280 // FUNCTION: fn_23056 EncryptedName<14, 0x71A509DB43792991ULL>& AcolyteBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("성직자\\성직자", 0x71A509DB43792991ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("성직자\\성직자", 0x71A509DB43792991ULL); } // OFFSET: 0x00DCB350 // FUNCTION: fn_23057 EncryptedName<10, 0xDD69EDFFA18F537DULL>& MerchantBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("상인\\상인", 0xDD69EDFFA18F537DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("상인\\상인", 0xDD69EDFFA18F537DULL); } // OFFSET: 0x00DCB420 // FUNCTION: fn_23058 EncryptedName<10, 0xFFBF43D1FFD5FF49ULL>& ThiefBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("도둑\\도둑", 0xFFBF43D1FFD5FF49ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("도둑\\도둑", 0xFFBF43D1FFD5FF49ULL); } // OFFSET: 0x00DCB4F0 // FUNCTION: fn_23059 EncryptedName<10, 0xEB3D4FAB0FC183DBULL>& KnightBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0xEB3D4FAB0FC183DBULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0xEB3D4FAB0FC183DBULL); } // OFFSET: 0x00DCB5C0 // FUNCTION: fn_23060 EncryptedName<18, 0x8F3F2FA959977F9FULL>& PriestBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("프리스트\\프리스트", 0x8F3F2FA959977F9FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("프리스트\\프리스트", 0x8F3F2FA959977F9FULL); } // OFFSET: 0x00DCB690 // FUNCTION: fn_23061 EncryptedName<14, 0xE51B29334D353B81ULL>& WizardBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0xE51B29334D353B81ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0xE51B29334D353B81ULL); } // OFFSET: 0x00DCB760 // FUNCTION: fn_23062 EncryptedName<14, 0x8B3FA35B5BDDDF89ULL>& BlacksmithBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("제철공\\제철공", 0x8B3FA35B5BDDDF89ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("제철공\\제철공", 0x8B3FA35B5BDDDF89ULL); } // OFFSET: 0x00DCB830 // FUNCTION: fn_23063 EncryptedName<10, 0x7FE563BD3FB7F925ULL>& HunterBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("헌터\\헌터", 0x7FE563BD3FB7F925ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("헌터\\헌터", 0x7FE563BD3FB7F925ULL); } // OFFSET: 0x00DCB900 // FUNCTION: fn_23064 EncryptedName<14, 0x5D6B3B1DEB2397B1ULL>& AssassinBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("어세신\\어세신", 0x5D6B3B1DEB2397B1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("어세신\\어세신", 0x5D6B3B1DEB2397B1ULL); } // OFFSET: 0x00DCB9D0 // FUNCTION: fn_23065 EncryptedName<28, 0x7DB1050779034DE7ULL>& PecoKnightBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x7DB1050779034DE7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("페코페코_기사\\페코페코_기사", 0x7DB1050779034DE7ULL); } // OFFSET: 0x00DCBAB0 // FUNCTION: fn_23066 EncryptedName<22, 0x01E7898D9D235DDFULL>& CrusaderBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("크루세이더\\크루세이더", 0x01E7898D9D235DDFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("크루세이더\\크루세이더", 0x01E7898D9D235DDFULL); } // OFFSET: 0x00DCBB80 // FUNCTION: fn_23067 EncryptedName<10, 0x0DF5B33D9F21EB79ULL>& MonkBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("몽크\\몽크", 0x0DF5B33D9F21EB79ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("몽크\\몽크", 0x0DF5B33D9F21EB79ULL); } // OFFSET: 0x00DCBC50 // FUNCTION: fn_23068 EncryptedName<14, 0x9DEFC105A1EB2F71ULL>& SageBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("세이지\\세이지", 0x9DEFC105A1EB2F71ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("세이지\\세이지", 0x9DEFC105A1EB2F71ULL); } // OFFSET: 0x00DCBD20 // FUNCTION: fn_23069 EncryptedName<10, 0x6961FF056999A303ULL>& RogueBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("로그\\로그", 0x6961FF056999A303ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("로그\\로그", 0x6961FF056999A303ULL); } // OFFSET: 0x00DCBDF0 // FUNCTION: fn_23070 EncryptedName<18, 0xBD3F430159B551FDULL>& AlchemistBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("연금술사\\연금술사", 0xBD3F430159B551FDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("연금술사\\연금술사", 0xBD3F430159B551FDULL); } // OFFSET: 0x00DCBEC0 // FUNCTION: fn_23071 EncryptedName<10, 0xC7FB6DF18577D34BULL>& BardBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("바드\\바드", 0xC7FB6DF18577D34BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("바드\\바드", 0xC7FB6DF18577D34BULL); } // OFFSET: 0x00DCBF90 // FUNCTION: fn_23072 EncryptedName<10, 0x5B832361BDA77197ULL>& DancerBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("무희\\무희", 0x5B832361BDA77197ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("무희\\무희", 0x5B832361BDA77197ULL); } // OFFSET: 0x00DCC060 // FUNCTION: fn_23073 EncryptedName<34, 0x2B477F9B5B39B301ULL>& NewPecoCrusaderBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("신페코크루세이더\\신페코크루세이더", 0x2B477F9B5B39B301ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("신페코크루세이더\\신페코크루세이더", 0x2B477F9B5B39B301ULL); } // OFFSET: 0x00DCC140 // FUNCTION: fn_23074 EncryptedName<14, 0x2B8725D7E95325F5ULL>& NoviceBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("초보자\\초보자", 0x2B8725D7E95325F5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("초보자\\초보자", 0x2B8725D7E95325F5ULL); } // OFFSET: 0x00DCC210 // FUNCTION: fn_23075 EncryptedName<10, 0x899D11BB83695B0DULL>& SwordmanBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("검사\\검사", 0x899D11BB83695B0DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("검사\\검사", 0x899D11BB83695B0DULL); } // OFFSET: 0x00DCC2E0 // FUNCTION: fn_23076 EncryptedName<14, 0xBDADDD87C5A50B6BULL>& MagicianBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("마법사\\마법사", 0xBDADDD87C5A50B6BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("마법사\\마법사", 0xBDADDD87C5A50B6BULL); } // OFFSET: 0x00DCC3B0 // FUNCTION: fn_23077 EncryptedName<10, 0x7989830DE73B9DBDULL>& ArcherBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("궁수\\궁수", 0x7989830DE73B9DBDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("궁수\\궁수", 0x7989830DE73B9DBDULL); } // OFFSET: 0x00DCC550 // FUNCTION: fn_23078 EncryptedName<10, 0xA7471985F93F9BDFULL>& MerchantBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("상인\\상인", 0xA7471985F93F9BDFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("상인\\상인", 0xA7471985F93F9BDFULL); } // OFFSET: 0x00DCC620 // FUNCTION: fn_23079 EncryptedName<10, 0xF535E561137F138DULL>& ThiefBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("도둑\\도둑", 0xF535E561137F138DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("도둑\\도둑", 0xF535E561137F138DULL); } // OFFSET: 0x00DCC6F0 // FUNCTION: fn_23080 EncryptedName<10, 0xD3E5516F89F161D1ULL>& KnightBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0xD3E5516F89F161D1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0xD3E5516F89F161D1ULL); } // OFFSET: 0x00DCC7C0 // FUNCTION: fn_23081 EncryptedName<18, 0x45E3F103CBB5F157ULL>& PriestBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("프리스트\\프리스트", 0x45E3F103CBB5F157ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("프리스트\\프리스트", 0x45E3F103CBB5F157ULL); } // OFFSET: 0x00DCC890 // FUNCTION: fn_23082 EncryptedName<14, 0x07112F85A39F4FABULL>& WizardBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x07112F85A39F4FABULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x07112F85A39F4FABULL); } // OFFSET: 0x00DCC960 // FUNCTION: fn_23083 EncryptedName<14, 0x2D33791F67AD47DFULL>& BlacksmithBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("제철공\\제철공", 0x2D33791F67AD47DFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("제철공\\제철공", 0x2D33791F67AD47DFULL); } // OFFSET: 0x00DCCA30 // FUNCTION: fn_23084 EncryptedName<10, 0x936F3D2FFDFD87F5ULL>& HunterBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("헌터\\헌터", 0x936F3D2FFDFD87F5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("헌터\\헌터", 0x936F3D2FFDFD87F5ULL); } // OFFSET: 0x00DCCB00 // FUNCTION: fn_23085 EncryptedName<14, 0x2F2701A7E56D3D89ULL>& AssassinBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("어세신\\어세신", 0x2F2701A7E56D3D89ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("어세신\\어세신", 0x2F2701A7E56D3D89ULL); } // OFFSET: 0x00DCCBD0 // FUNCTION: fn_23086 EncryptedName<28, 0x6B3301E1A3079125ULL>& PecoKnightBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x6B3301E1A3079125ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("페코페코_기사\\페코페코_기사", 0x6B3301E1A3079125ULL); } // OFFSET: 0x00DCCCB0 // FUNCTION: fn_23087 EncryptedName<22, 0x71B7691737C5A1AFULL>& CrusaderBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("크루세이더\\크루세이더", 0x71B7691737C5A1AFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("크루세이더\\크루세이더", 0x71B7691737C5A1AFULL); } // OFFSET: 0x00DCCD80 // FUNCTION: fn_23088 EncryptedName<10, 0xC39FB559A17D3963ULL>& MonkBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("몽크\\몽크", 0xC39FB559A17D3963ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("몽크\\몽크", 0xC39FB559A17D3963ULL); } // OFFSET: 0x00DCCE50 // FUNCTION: fn_23089 EncryptedName<14, 0xFF7D83CB791339D9ULL>& SageBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("세이지\\세이지", 0xFF7D83CB791339D9ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("세이지\\세이지", 0xFF7D83CB791339D9ULL); } // OFFSET: 0x00DCCF20 // FUNCTION: fn_23090 EncryptedName<10, 0xED5143E7C1B39315ULL>& RogueBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("로그\\로그", 0xED5143E7C1B39315ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("로그\\로그", 0xED5143E7C1B39315ULL); } // OFFSET: 0x00DCCFF0 // FUNCTION: fn_23091 EncryptedName<18, 0x393D916561BDC391ULL>& AlchemistBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("연금술사\\연금술사", 0x393D916561BDC391ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("연금술사\\연금술사", 0x393D916561BDC391ULL); } // OFFSET: 0x00DCD0C0 // FUNCTION: fn_23092 EncryptedName<10, 0x31956551B311FD95ULL>& BardBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("바드\\바드", 0x31956551B311FD95ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("바드\\바드", 0x31956551B311FD95ULL); } // OFFSET: 0x00DCD190 // FUNCTION: fn_23093 EncryptedName<10, 0x8741152D8FB34B4FULL>& DancerBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("무희\\무희", 0x8741152D8FB34B4FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("무희\\무희", 0x8741152D8FB34B4FULL); } // OFFSET: 0x00DCD260 // FUNCTION: fn_23094 EncryptedName<34, 0x955D4DF94DE9BB07ULL>& OldPecoCrusaderBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("구페코크루세이더\\구페코크루세이더", 0x955D4DF94DE9BB07ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("구페코크루세이더\\구페코크루세이더", 0x955D4DF94DE9BB07ULL); } // OFFSET: 0x00DCD340 // FUNCTION: fn_23095 EncryptedName<14, 0xC399B7091589B50BULL>& NoviceBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("초보자\\초보자", 0xC399B7091589B50BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("초보자\\초보자", 0xC399B7091589B50BULL); } // OFFSET: 0x00DCD410 // FUNCTION: fn_23096 EncryptedName<18, 0xB739073FE921AD6FULL>& TaekwonBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0xB739073FE921AD6FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0xB739073FE921AD6FULL); } // OFFSET: 0x00DCD4E0 // FUNCTION: fn_23097 EncryptedName<18, 0x17FFC98B398FAF61ULL>& TaekwonBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0x17FFC98B398FAF61ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0x17FFC98B398FAF61ULL); } // OFFSET: 0x00DCD5B0 // FUNCTION: fn_23098 EncryptedName<18, 0x9B5B959B954D9333ULL>& TaekwonBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0x9B5B959B954D9333ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0x9B5B959B954D9333ULL); } // OFFSET: 0x00DCD680 // FUNCTION: fn_23099 EncryptedName<14, 0xAFA5617F178B6185ULL>& WizardBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0xAFA5617F178B6185ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0xAFA5617F178B6185ULL); } // OFFSET: 0x00DCD750 // FUNCTION: fn_23100 EncryptedName<14, 0x078143534999254DULL>& AcolyteBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("성직자\\성직자", 0x078143534999254DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("성직자\\성직자", 0x078143534999254DULL); } // OFFSET: 0x00DCD820 // FUNCTION: fn_23101 EncryptedName<10, 0x3F5315DFE32B4FAFULL>& KnightBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0x3F5315DFE32B4FAFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0x3F5315DFE32B4FAFULL); } // OFFSET: 0x00DCD8F0 // FUNCTION: fn_23102 EncryptedName<14, 0xE50B2935073DD3E9ULL>& SageBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("세이지\\세이지", 0xE50B2935073DD3E9ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("세이지\\세이지", 0xE50B2935073DD3E9ULL); } // OFFSET: 0x00DCD9C0 // FUNCTION: fn_23103 EncryptedName<10, 0x7D750DADBDE9C3F1ULL>& KnightBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0x7D750DADBDE9C3F1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0x7D750DADBDE9C3F1ULL); } // OFFSET: 0x00DCDA90 // FUNCTION: fn_23104 EncryptedName<10, 0x33832D4D3FDFBDBFULL>& KnightBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0x33832D4D3FDFBDBFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0x33832D4D3FDFBDBFULL); } // OFFSET: 0x00DCDB60 // FUNCTION: fn_23105 EncryptedName<28, 0x1BF915E1F37DFDFDULL>& PecoKnightBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x1BF915E1F37DFDFDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("페코페코_기사\\페코페코_기사", 0x1BF915E1F37DFDFDULL); } // OFFSET: 0x00DCDC40 // FUNCTION: fn_23106 EncryptedName<28, 0x01FF9313695DD9DFULL>& PecoKnightBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x01FF9313695DD9DFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("페코페코_기사\\페코페코_기사", 0x01FF9313695DD9DFULL); } // OFFSET: 0x00DCDD20 // FUNCTION: fn_23107 EncryptedName<28, 0x6DED3DD1CF75AD9BULL>& PecoKnightBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x6DED3DD1CF75AD9BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("페코페코_기사\\페코페코_기사", 0x6DED3DD1CF75AD9BULL); } // OFFSET: 0x00DCDE00 // FUNCTION: fn_23108 EncryptedName<28, 0x49C3759B77DBD3C1ULL>& PecoKnightBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x49C3759B77DBD3C1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("페코페코_기사\\페코페코_기사", 0x49C3759B77DBD3C1ULL); } // OFFSET: 0x00DCDEE0 // FUNCTION: fn_23109 EncryptedName<28, 0xD1538513DF975701ULL>& PecoKnightBodyPath7() { - constexpr auto sourceText = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0xD1538513DF975701ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("페코페코_기사\\페코페코_기사", 0xD1538513DF975701ULL); } // OFFSET: 0x00DCDFC0 // FUNCTION: fn_23110 EncryptedName<28, 0x91E147EBBD47C39FULL>& PecoKnightBodyPath8() { - constexpr auto sourceText = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x91E147EBBD47C39FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("페코페코_기사\\페코페코_기사", 0x91E147EBBD47C39FULL); } // OFFSET: 0x00DCE0A0 // FUNCTION: fn_23111 EncryptedName<28, 0x4F1791FB1503C713ULL>& PecoKnightBodyPath9() { - constexpr auto sourceText = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x4F1791FB1503C713ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("페코페코_기사\\페코페코_기사", 0x4F1791FB1503C713ULL); } // OFFSET: 0x00DCE180 // FUNCTION: fn_23112 EncryptedName<28, 0xA1A55B4D1597EDD3ULL>& PecoKnightBodyPath10() { - constexpr auto sourceText = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0xA1A55B4D1597EDD3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("페코페코_기사\\페코페코_기사", 0xA1A55B4D1597EDD3ULL); } // OFFSET: 0x00DCE260 // FUNCTION: fn_23113 EncryptedName<28, 0x0753A7E1EFA9E139ULL>& PecoKnightBodyPath11() { - constexpr auto sourceText = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x0753A7E1EFA9E139ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("페코페코_기사\\페코페코_기사", 0x0753A7E1EFA9E139ULL); } // OFFSET: 0x00DCE340 // FUNCTION: fn_23114 EncryptedName<28, 0x7FC1015DFFCF6D19ULL>& PecoKnightBodyPath12() { - constexpr auto sourceText = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0x7FC1015DFFCF6D19ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("페코페코_기사\\페코페코_기사", 0x7FC1015DFFCF6D19ULL); } // OFFSET: 0x00DCE420 // FUNCTION: fn_23115 EncryptedName<28, 0xCB3FBD4183DB8323ULL>& PecoKnightBodyPath13() { - constexpr auto sourceText = CRYPT_NAME("페코페코_기사\\페코페코_기사", 0xCB3FBD4183DB8323ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("페코페코_기사\\페코페코_기사", 0xCB3FBD4183DB8323ULL); } // OFFSET: 0x00DCE500 // FUNCTION: fn_23116 EncryptedName<18, 0x7FCD77F9C7CBD14DULL>& PriestBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("프리스트\\프리스트", 0x7FCD77F9C7CBD14DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("프리스트\\프리스트", 0x7FCD77F9C7CBD14DULL); } // OFFSET: 0x00DCE5D0 // FUNCTION: fn_23117 EncryptedName<18, 0x5B8F49AF09390D1BULL>& PriestBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("프리스트\\프리스트", 0x5B8F49AF09390D1BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("프리스트\\프리스트", 0x5B8F49AF09390D1BULL); } // OFFSET: 0x00DCE6A0 // FUNCTION: fn_23118 EncryptedName<14, 0x3B915119EFD523EFULL>& WizardBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x3B915119EFD523EFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x3B915119EFD523EFULL); } // OFFSET: 0x00DCE770 // FUNCTION: fn_23119 EncryptedName<14, 0x474DC581D5E98357ULL>& WizardBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x474DC581D5E98357ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x474DC581D5E98357ULL); } // OFFSET: 0x00DCE840 // FUNCTION: fn_23120 EncryptedName<14, 0x3F557BE333F95F6DULL>& BlacksmithBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("제철공\\제철공", 0x3F557BE333F95F6DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("제철공\\제철공", 0x3F557BE333F95F6DULL); } // OFFSET: 0x00DCE910 // FUNCTION: fn_23121 EncryptedName<14, 0x8B3FEB5B8BD5C3C3ULL>& BlacksmithBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("제철공\\제철공", 0x8B3FEB5B8BD5C3C3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("제철공\\제철공", 0x8B3FEB5B8BD5C3C3ULL); } // OFFSET: 0x00DCE9E0 // FUNCTION: fn_23122 EncryptedName<18, 0x0BEB63A5C905B3A7ULL>& MadogearBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("마도기어\\마도기어", 0x0BEB63A5C905B3A7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("마도기어\\마도기어", 0x0BEB63A5C905B3A7ULL); } // OFFSET: 0x00DCEAB0 // FUNCTION: fn_23123 EncryptedName<18, 0x078333BB9725B7C9ULL>& MadogearBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("마도기어\\마도기어", 0x078333BB9725B7C9ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("마도기어\\마도기어", 0x078333BB9725B7C9ULL); } // OFFSET: 0x00DCEB80 // FUNCTION: fn_23124 EncryptedName<18, 0x8F1B5BFD5F6175B5ULL>& MadogearBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("마도기어\\마도기어", 0x8F1B5BFD5F6175B5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("마도기어\\마도기어", 0x8F1B5BFD5F6175B5ULL); } // OFFSET: 0x00DCEC50 // FUNCTION: fn_23125 EncryptedName<10, 0x69FD1D9733D3CFC1ULL>& HunterBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("헌터\\헌터", 0x69FD1D9733D3CFC1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("헌터\\헌터", 0x69FD1D9733D3CFC1ULL); } // OFFSET: 0x00DCED20 // FUNCTION: fn_23126 EncryptedName<10, 0xF5657D1F3DE5CDC7ULL>& HunterBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("헌터\\헌터", 0xF5657D1F3DE5CDC7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("헌터\\헌터", 0xF5657D1F3DE5CDC7ULL); } // OFFSET: 0x00DCEDF0 // FUNCTION: fn_23127 EncryptedName<22, 0x8B65CD61012B5931ULL>& RangerWolfBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("레인져늑대\\레인져늑대", 0x8B65CD61012B5931ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("레인져늑대\\레인져늑대", 0x8B65CD61012B5931ULL); } // OFFSET: 0x00DCEEC0 // FUNCTION: fn_23128 EncryptedName<22, 0xF7530137154D8FE5ULL>& RangerWolfBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("레인져늑대\\레인져늑대", 0xF7530137154D8FE5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("레인져늑대\\레인져늑대", 0xF7530137154D8FE5ULL); } // OFFSET: 0x00DCEF90 // FUNCTION: fn_23129 EncryptedName<22, 0x61FF87ED7BF39BE1ULL>& RangerWolfBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("레인져늑대\\레인져늑대", 0x61FF87ED7BF39BE1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("레인져늑대\\레인져늑대", 0x61FF87ED7BF39BE1ULL); } // OFFSET: 0x00DCF060 // FUNCTION: fn_23130 EncryptedName<14, 0x7D993F650D2785FFULL>& AssassinBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("어세신\\어세신", 0x7D993F650D2785FFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("어세신\\어세신", 0x7D993F650D2785FFULL); } // OFFSET: 0x00DCF130 // FUNCTION: fn_23131 EncryptedName<14, 0x2D394DBD0F332733ULL>& AssassinBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("어세신\\어세신", 0x2D394DBD0F332733ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("어세신\\어세신", 0x2D394DBD0F332733ULL); } // OFFSET: 0x00DCF200 // FUNCTION: fn_23132 EncryptedName<22, 0x151F77EBEBBB2147ULL>& CrusaderBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("크루세이더\\크루세이더", 0x151F77EBEBBB2147ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("크루세이더\\크루세이더", 0x151F77EBEBBB2147ULL); } // OFFSET: 0x00DCF2D0 // FUNCTION: fn_23133 EncryptedName<22, 0xC7912587FFF31B71ULL>& CrusaderBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("크루세이더\\크루세이더", 0xC7912587FFF31B71ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("크루세이더\\크루세이더", 0xC7912587FFF31B71ULL); } // OFFSET: 0x00DCF3A0 // FUNCTION: fn_23134 EncryptedName<34, 0x69D345DB950F336DULL>& NewPecoCrusaderBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("신페코크루세이더\\신페코크루세이더", 0x69D345DB950F336DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("신페코크루세이더\\신페코크루세이더", 0x69D345DB950F336DULL); } // OFFSET: 0x00DCF480 // FUNCTION: fn_23135 EncryptedName<34, 0x9B17C9EFDBB39F2FULL>& NewPecoCrusaderBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("신페코크루세이더\\신페코크루세이더", 0x9B17C9EFDBB39F2FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("신페코크루세이더\\신페코크루세이더", 0x9B17C9EFDBB39F2FULL); } // OFFSET: 0x00DCF560 // FUNCTION: fn_23136 EncryptedName<34, 0x2D3B15774149D5DDULL>& NewPecoCrusaderBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("신페코크루세이더\\신페코크루세이더", 0x2D3B15774149D5DDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("신페코크루세이더\\신페코크루세이더", 0x2D3B15774149D5DDULL); } // OFFSET: 0x00DCF640 // FUNCTION: fn_23137 EncryptedName<10, 0xD98F03A52D35636DULL>& MonkBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("몽크\\몽크", 0xD98F03A52D35636DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("몽크\\몽크", 0xD98F03A52D35636DULL); } // OFFSET: 0x00DCF710 // FUNCTION: fn_23138 EncryptedName<10, 0x0F0F8B6B8F9D19D1ULL>& MonkBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("몽크\\몽크", 0x0F0F8B6B8F9D19D1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("몽크\\몽크", 0x0F0F8B6B8F9D19D1ULL); } // OFFSET: 0x00DCF7E0 // FUNCTION: fn_23139 EncryptedName<14, 0xD3755DD95F47A909ULL>& SageBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("세이지\\세이지", 0xD3755DD95F47A909ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("세이지\\세이지", 0xD3755DD95F47A909ULL); } // OFFSET: 0x00DCF8B0 // FUNCTION: fn_23140 EncryptedName<14, 0x31D7C1EDA345E36DULL>& SageBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("세이지\\세이지", 0x31D7C1EDA345E36DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("세이지\\세이지", 0x31D7C1EDA345E36DULL); } // OFFSET: 0x00DCF980 // FUNCTION: fn_23141 EncryptedName<10, 0x3FAF85D995034FD7ULL>& RogueBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("로그\\로그", 0x3FAF85D995034FD7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("로그\\로그", 0x3FAF85D995034FD7ULL); } // OFFSET: 0x00DCFA50 // FUNCTION: fn_23142 EncryptedName<10, 0x490FFB43A12F0DB9ULL>& RogueBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("로그\\로그", 0x490FFB43A12F0DB9ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("로그\\로그", 0x490FFB43A12F0DB9ULL); } // OFFSET: 0x00DCFB20 // FUNCTION: fn_23143 EncryptedName<18, 0x91651D81F559F971ULL>& AlchemistBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("연금술사\\연금술사", 0x91651D81F559F971ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("연금술사\\연금술사", 0x91651D81F559F971ULL); } // OFFSET: 0x00DCFBF0 // FUNCTION: fn_23144 EncryptedName<18, 0x73D1674B61DF7B0BULL>& AlchemistBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("연금술사\\연금술사", 0x73D1674B61DF7B0BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("연금술사\\연금술사", 0x73D1674B61DF7B0BULL); } // OFFSET: 0x00DCFCC0 // FUNCTION: fn_23145 EncryptedName<10, 0x2FF3C5036D070127ULL>& DancerBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("무희\\무희", 0x2FF3C5036D070127ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("무희\\무희", 0x2FF3C5036D070127ULL); } // OFFSET: 0x00DCFD90 // FUNCTION: fn_23146 EncryptedName<10, 0x17359BF953C367B3ULL>& DancerBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("무희\\무희", 0x17359BF953C367B3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("무희\\무희", 0x17359BF953C367B3ULL); } // OFFSET: 0x00DCFE60 // FUNCTION: fn_23147 EncryptedName<10, 0xC52FB5FBB94FF917ULL>& BardBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("바드\\바드", 0xC52FB5FBB94FF917ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("바드\\바드", 0xC52FB5FBB94FF917ULL); } // OFFSET: 0x00DCFF30 // FUNCTION: fn_23148 EncryptedName<10, 0x93E7A3A1F587CDC5ULL>& BardBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("바드\\바드", 0x93E7A3A1F587CDC5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("바드\\바드", 0x93E7A3A1F587CDC5ULL); } // OFFSET: 0x00DD0000 // FUNCTION: fn_23149 EncryptedName<10, 0x59278F63D79F3DA1ULL>& KnightBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0x59278F63D79F3DA1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0x59278F63D79F3DA1ULL); } // OFFSET: 0x00DD00D0 // FUNCTION: fn_23150 EncryptedName<14, 0x812BE72BCD5707B7ULL>& WizardBodyPath7() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x812BE72BCD5707B7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x812BE72BCD5707B7ULL); } // OFFSET: 0x00DD01A0 // FUNCTION: fn_23151 EncryptedName<10, 0x3375B1C7DBB5FD55ULL>& HunterBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("헌터\\헌터", 0x3375B1C7DBB5FD55ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("헌터\\헌터", 0x3375B1C7DBB5FD55ULL); } // OFFSET: 0x00DD0270 // FUNCTION: fn_23152 EncryptedName<18, 0x1D6D75EDE7CD311FULL>& PriestBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("프리스트\\프리스트", 0x1D6D75EDE7CD311FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("프리스트\\프리스트", 0x1D6D75EDE7CD311FULL); } // OFFSET: 0x00DD0340 // FUNCTION: fn_23153 EncryptedName<14, 0xCBD1F3239BBBEDF7ULL>& BlacksmithBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("제철공\\제철공", 0xCBD1F3239BBBEDF7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("제철공\\제철공", 0xCBD1F3239BBBEDF7ULL); } // OFFSET: 0x00DD0410 // FUNCTION: fn_23154 EncryptedName<14, 0x7DBBD74FA36F3BCBULL>& AssassinBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("어세신\\어세신", 0x7DBBD74FA36F3BCBULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("어세신\\어세신", 0x7DBBD74FA36F3BCBULL); } // OFFSET: 0x00DD04E0 // FUNCTION: fn_23155 EncryptedName<22, 0x4917EB6D71B701ABULL>& CrusaderBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("크루세이더\\크루세이더", 0x4917EB6D71B701ABULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("크루세이더\\크루세이더", 0x4917EB6D71B701ABULL); } // OFFSET: 0x00DD05B0 // FUNCTION: fn_23156 EncryptedName<14, 0xFD4F85BBA7E37D4FULL>& SageBodyPath7() { - constexpr auto sourceText = CRYPT_NAME("세이지\\세이지", 0xFD4F85BBA7E37D4FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("세이지\\세이지", 0xFD4F85BBA7E37D4FULL); } // OFFSET: 0x00DD0680 // FUNCTION: fn_23157 EncryptedName<10, 0x51C57BB9F1DD9B0FULL>& BardBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("바드\\바드", 0x51C57BB9F1DD9B0FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("바드\\바드", 0x51C57BB9F1DD9B0FULL); } // OFFSET: 0x00DD0750 // FUNCTION: fn_23158 EncryptedName<10, 0xC733B7A333F9F571ULL>& DancerBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("무희\\무희", 0xC733B7A333F9F571ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("무희\\무희", 0xC733B7A333F9F571ULL); } // OFFSET: 0x00DD0820 // FUNCTION: fn_23159 EncryptedName<10, 0x7D61612937C1592DULL>& MonkBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("몽크\\몽크", 0x7D61612937C1592DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("몽크\\몽크", 0x7D61612937C1592DULL); } // OFFSET: 0x00DD08F0 // FUNCTION: fn_23160 EncryptedName<18, 0x8F4B518D839D1581ULL>& AlchemistBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("연금술사\\연금술사", 0x8F4B518D839D1581ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("연금술사\\연금술사", 0x8F4B518D839D1581ULL); } // OFFSET: 0x00DD09C0 // FUNCTION: fn_23161 EncryptedName<10, 0xCBD7DDAFDF87F549ULL>& RogueBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("로그\\로그", 0xCBD7DDAFDF87F549ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("로그\\로그", 0xCBD7DDAFDF87F549ULL); } // OFFSET: 0x00DD0A90 // FUNCTION: fn_23162 EncryptedName<14, 0x39E7F13755252F8FULL>& NoviceBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("초보자\\초보자", 0x39E7F13755252F8FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("초보자\\초보자", 0x39E7F13755252F8FULL); } // OFFSET: 0x00DD0B60 // FUNCTION: fn_23163 EncryptedName<14, 0x3D075BD5256F9B6FULL>& NoviceBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("초보자\\초보자", 0x3D075BD5256F9B6FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("초보자\\초보자", 0x3D075BD5256F9B6FULL); } // OFFSET: 0x00DD0C30 // FUNCTION: fn_23164 EncryptedName<14, 0xEB074B7FBDA3BFD5ULL>& NoviceBodyPath7() { - constexpr auto sourceText = CRYPT_NAME("초보자\\초보자", 0xEB074B7FBDA3BFD5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("초보자\\초보자", 0xEB074B7FBDA3BFD5ULL); } // OFFSET: 0x00DD0D00 // FUNCTION: fn_23165 EncryptedName<14, 0x03014749B127914FULL>& NoviceBodyPath8() { - constexpr auto sourceText = CRYPT_NAME("초보자\\초보자", 0x03014749B127914FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("초보자\\초보자", 0x03014749B127914FULL); } // OFFSET: 0x00DD0DD0 // FUNCTION: fn_23166 EncryptedName<18, 0x251761D7370BA5C3ULL>& PriestBodyPath7() { - constexpr auto sourceText = CRYPT_NAME("프리스트\\프리스트", 0x251761D7370BA5C3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("프리스트\\프리스트", 0x251761D7370BA5C3ULL); } // OFFSET: 0x00DD0EA0 // FUNCTION: fn_23167 EncryptedName<14, 0x2B034DCBB1812785ULL>& WizardBodyPath8() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x2B034DCBB1812785ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x2B034DCBB1812785ULL); } // OFFSET: 0x00DD0F70 // FUNCTION: fn_23168 EncryptedName<14, 0x85FB93CF2F494179ULL>& BlacksmithBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("제철공\\제철공", 0x85FB93CF2F494179ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("제철공\\제철공", 0x85FB93CF2F494179ULL); } // OFFSET: 0x00DD1040 // FUNCTION: fn_23169 EncryptedName<14, 0x894FEDABAFCF45E3ULL>& BlacksmithBodyPath7() { - constexpr auto sourceText = CRYPT_NAME("제철공\\제철공", 0x894FEDABAFCF45E3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("제철공\\제철공", 0x894FEDABAFCF45E3ULL); } // OFFSET: 0x00DD1110 // FUNCTION: fn_23170 EncryptedName<14, 0x8B03E17DA967E943ULL>& BlacksmithBodyPath8() { - constexpr auto sourceText = CRYPT_NAME("제철공\\제철공", 0x8B03E17DA967E943ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("제철공\\제철공", 0x8B03E17DA967E943ULL); } // OFFSET: 0x00DD11E0 // FUNCTION: fn_23171 EncryptedName<10, 0x190B8705C141D1CFULL>& HunterBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("헌터\\헌터", 0x190B8705C141D1CFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("헌터\\헌터", 0x190B8705C141D1CFULL); } // OFFSET: 0x00DD12B0 // FUNCTION: fn_23172 EncryptedName<10, 0xC98BB32777F94371ULL>& HunterBodyPath7() { - constexpr auto sourceText = CRYPT_NAME("헌터\\헌터", 0xC98BB32777F94371ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("헌터\\헌터", 0xC98BB32777F94371ULL); } // OFFSET: 0x00DD1380 // FUNCTION: fn_23173 EncryptedName<10, 0xA5F51F3989DBB99FULL>& KnightBodyPath7() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0xA5F51F3989DBB99FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0xA5F51F3989DBB99FULL); } // OFFSET: 0x00DD1450 // FUNCTION: fn_23174 EncryptedName<10, 0xB3D5C99B2B05FFEFULL>& KnightBodyPath8() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0xB3D5C99B2B05FFEFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0xB3D5C99B2B05FFEFULL); } // OFFSET: 0x00DD1520 // FUNCTION: fn_23175 EncryptedName<10, 0xC71BB3CDEB499DD1ULL>& KnightBodyPath9() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0xC71BB3CDEB499DD1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0xC71BB3CDEB499DD1ULL); } // OFFSET: 0x00DD15F0 // FUNCTION: fn_23176 EncryptedName<22, 0x3939079FF3395587ULL>& CrusaderBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("크루세이더\\크루세이더", 0x3939079FF3395587ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("크루세이더\\크루세이더", 0x3939079FF3395587ULL); } // OFFSET: 0x00DD16C0 // FUNCTION: fn_23177 EncryptedName<22, 0xCF391B0F8B9D95DBULL>& CrusaderBodyPath7() { - constexpr auto sourceText = CRYPT_NAME("크루세이더\\크루세이더", 0xCF391B0F8B9D95DBULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("크루세이더\\크루세이더", 0xCF391B0F8B9D95DBULL); } // OFFSET: 0x00DD1790 // FUNCTION: fn_23178 EncryptedName<10, 0x6967633B9D89092BULL>& KnightBodyPath10() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0x6967633B9D89092BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0x6967633B9D89092BULL); } // OFFSET: 0x00DD1860 // FUNCTION: fn_23179 EncryptedName<10, 0xAFCD4F69FBDFE157ULL>& KnightBodyPath11() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0xAFCD4F69FBDFE157ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0xAFCD4F69FBDFE157ULL); } // OFFSET: 0x00DD1930 // FUNCTION: fn_23180 EncryptedName<22, 0x85D9CFCF0FBB71ABULL>& CrusaderBodyPath8() { - constexpr auto sourceText = CRYPT_NAME("크루세이더\\크루세이더", 0x85D9CFCF0FBB71ABULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("크루세이더\\크루세이더", 0x85D9CFCF0FBB71ABULL); } // OFFSET: 0x00DD1A00 // FUNCTION: fn_23181 EncryptedName<22, 0x795383DD11AF7DA7ULL>& CrusaderBodyPath9() { - constexpr auto sourceText = CRYPT_NAME("크루세이더\\크루세이더", 0x795383DD11AF7DA7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("크루세이더\\크루세이더", 0x795383DD11AF7DA7ULL); } // OFFSET: 0x00DD1AD0 // FUNCTION: fn_23182 EncryptedName<22, 0xD9FF511B2BB921E7ULL>& CrusaderBodyPath10() { - constexpr auto sourceText = CRYPT_NAME("크루세이더\\크루세이더", 0xD9FF511B2BB921E7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("크루세이더\\크루세이더", 0xD9FF511B2BB921E7ULL); } // OFFSET: 0x00DD1BA0 // FUNCTION: fn_23183 EncryptedName<16, 0x978B51F50DC5FD25ULL>& KagerouBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("kagerou\\kagerou", 0x978B51F50DC5FD25ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("kagerou\\kagerou", 0x978B51F50DC5FD25ULL); } // OFFSET: 0x00DD1C60 // FUNCTION: fn_23184 EncryptedName<12, 0xC757D96143298511ULL>& OboroBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("oboro\\oboro", 0xC757D96143298511ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("oboro\\oboro", 0xC757D96143298511ULL); } // OFFSET: 0x00DD1D30 // FUNCTION: fn_23185 EncryptedName<16, 0xE1F181F923B759E7ULL>& KagerouBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("kagerou\\kagerou", 0xE1F181F923B759E7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("kagerou\\kagerou", 0xE1F181F923B759E7ULL); } // OFFSET: 0x00DD1DF0 // FUNCTION: fn_23186 EncryptedName<12, 0x37D76D8F495113C3ULL>& OboroBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("oboro\\oboro", 0x37D76D8F495113C3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("oboro\\oboro", 0x37D76D8F495113C3ULL); } // OFFSET: 0x00DD1EC0 // FUNCTION: fn_23187 EncryptedName<20, 0x7BAD7791F50F5D8DULL>& RebellionBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("rebellion\\rebellion", 0x7BAD7791F50F5D8DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("rebellion\\rebellion", 0x7BAD7791F50F5D8DULL); } // OFFSET: 0x00DD1F90 // FUNCTION: fn_23188 EncryptedName<18, 0x2F1337956DC3CFD5ULL>& SummonerBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("summoner\\summoner", 0x2F1337956DC3CFD5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("summoner\\summoner", 0x2F1337956DC3CFD5ULL); } // OFFSET: 0x00DD2060 // FUNCTION: fn_23189 EncryptedName<23, 0xC91F9D493F75FDA3ULL>& SummonerCartBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("summoner\\cart_summoner", 0xC91F9D493F75FDA3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("summoner\\cart_summoner", 0xC91F9D493F75FDA3ULL); } // OFFSET: 0x00DD2140 // FUNCTION: fn_23190 EncryptedName<18, 0x1F01A13D8D915327ULL>& SummonerBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("summoner\\summoner", 0x1F01A13D8D915327ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("summoner\\summoner", 0x1F01A13D8D915327ULL); } // OFFSET: 0x00DD2210 // FUNCTION: fn_23191 EncryptedName<23, 0xF33D3D3B0BD9C53DULL>& SummonerCartBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("summoner\\cart_summoner", 0xF33D3D3B0BD9C53DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("summoner\\cart_summoner", 0xF33D3D3B0BD9C53DULL); } // OFFSET: 0x00DD22F0 // FUNCTION: fn_23192 EncryptedName<10, 0xC74BB3BB110FB10FULL>& NinjaBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("닌자\\닌자", 0xC74BB3BB110FB10FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("닌자\\닌자", 0xC74BB3BB110FB10FULL); } // OFFSET: 0x00DD23C0 // FUNCTION: fn_23193 EncryptedName<10, 0x0B5F6D6B23D5AFA7ULL>& NinjaBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("닌자\\닌자", 0x0B5F6D6B23D5AFA7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("닌자\\닌자", 0x0B5F6D6B23D5AFA7ULL); } // OFFSET: 0x00DD2490 // FUNCTION: fn_23194 EncryptedName<16, 0x2B7BAB0B6971E3E9ULL>& KagerouBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("kagerou\\kagerou", 0x2B7BAB0B6971E3E9ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("kagerou\\kagerou", 0x2B7BAB0B6971E3E9ULL); } // OFFSET: 0x00DD2550 // FUNCTION: fn_23195 EncryptedName<12, 0x8773593DB181D573ULL>& OboroBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("oboro\\oboro", 0x8773593DB181D573ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("oboro\\oboro", 0x8773593DB181D573ULL); } // OFFSET: 0x00DD2620 // FUNCTION: fn_23196 EncryptedName<16, 0xFBDBDB13A77191BFULL>& KagerouBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("kagerou\\kagerou", 0xFBDBDB13A77191BFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("kagerou\\kagerou", 0xFBDBDB13A77191BFULL); } // OFFSET: 0x00DD26E0 // FUNCTION: fn_23197 EncryptedName<12, 0x19BBC5910555FB97ULL>& OboroBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("oboro\\oboro", 0x19BBC5910555FB97ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("oboro\\oboro", 0x19BBC5910555FB97ULL); } // OFFSET: 0x00DD27B0 // FUNCTION: fn_23198 EncryptedName<18, 0xBBD983C7FD611FE3ULL>& TaekwonBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0xBBD983C7FD611FE3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0xBBD983C7FD611FE3ULL); } // OFFSET: 0x00DD2880 // FUNCTION: fn_23199 EncryptedName<18, 0xA1ED494BF319772DULL>& TaekwonBodyPath5() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0xA1ED494BF319772DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0xA1ED494BF319772DULL); } // OFFSET: 0x00DD2950 // FUNCTION: fn_23200 EncryptedName<18, 0x798B394FF5FF434DULL>& TaekwonBodyPath6() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0x798B394FF5FF434DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0x798B394FF5FF434DULL); } // OFFSET: 0x00DD2A20 // FUNCTION: fn_23201 EncryptedName<18, 0x410DD52D6731BFFDULL>& TaekwonBodyPath7() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0x410DD52D6731BFFDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0x410DD52D6731BFFDULL); } // OFFSET: 0x00DD2AF0 // FUNCTION: fn_23202 EncryptedName<18, 0x07B733370F612D0FULL>& TaekwonBodyPath8() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0x07B733370F612D0FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0x07B733370F612D0FULL); } // OFFSET: 0x00DD2BC0 // FUNCTION: fn_23203 EncryptedName<14, 0x113DC179F1C795C9ULL>& WizardBodyPath9() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x113DC179F1C795C9ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x113DC179F1C795C9ULL); } // OFFSET: 0x00DD2C90 // FUNCTION: fn_23204 EncryptedName<14, 0x31F5C32DD5C53779ULL>& WizardBodyPath10() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x31F5C32DD5C53779ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x31F5C32DD5C53779ULL); } // OFFSET: 0x00DD2D60 // FUNCTION: fn_23205 EncryptedName<10, 0x2F9B717365C1250FULL>& GunslingerBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("건너\\건너", 0x2F9B717365C1250FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("건너\\건너", 0x2F9B717365C1250FULL); } // OFFSET: 0x00DD2E30 // FUNCTION: fn_23206 EncryptedName<10, 0x4FE54379493FB5D5ULL>& GunslingerBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("건너\\건너", 0x4FE54379493FB5D5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("건너\\건너", 0x4FE54379493FB5D5ULL); } // OFFSET: 0x00DD2F00 // FUNCTION: fn_23207 EncryptedName<20, 0x656FAB972B3D21BBULL>& RebellionBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("rebellion\\rebellion", 0x656FAB972B3D21BBULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("rebellion\\rebellion", 0x656FAB972B3D21BBULL); } // OFFSET: 0x00DD2FD0 // FUNCTION: fn_23208 EncryptedName<20, 0x33CD2BDD5B3927EDULL>& RebellionBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("rebellion\\rebellion", 0x33CD2BDD5B3927EDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("rebellion\\rebellion", 0x33CD2BDD5B3927EDULL); } // OFFSET: 0x00DD30A0 // FUNCTION: fn_23209 EncryptedName<18, 0xD97BB73901ED99BFULL>& TaekwonBodyPath9() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0xD97BB73901ED99BFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0xD97BB73901ED99BFULL); } // OFFSET: 0x00DD3170 // FUNCTION: fn_23210 EncryptedName<14, 0x5D6B8FCBE3FB97A1ULL>& WizardBodyPath11() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x5D6B8FCBE3FB97A1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x5D6B8FCBE3FB97A1ULL); } // OFFSET: 0x00DD3240 // FUNCTION: fn_23211 EncryptedName<18, 0xE5FDE3151BED831FULL>& TaekwonBodyPath10() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0xE5FDE3151BED831FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0xE5FDE3151BED831FULL); } // OFFSET: 0x00DD3310 // FUNCTION: fn_23212 EncryptedName<14, 0x8971CB79C18D8B27ULL>& WizardBodyPath12() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x8971CB79C18D8B27ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x8971CB79C18D8B27ULL); } // OFFSET: 0x00DD33E0 // FUNCTION: fn_23213 EncryptedName<18, 0x8DC5D10DAB1585BDULL>& TaekwonBodyPath11() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0x8DC5D10DAB1585BDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0x8DC5D10DAB1585BDULL); } // OFFSET: 0x00DD34B0 // FUNCTION: fn_23214 EncryptedName<18, 0x21156F4141E35DD9ULL>& TaekwonBodyPath12() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0x21156F4141E35DD9ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0x21156F4141E35DD9ULL); } // OFFSET: 0x00DD3580 // FUNCTION: fn_23215 EncryptedName<18, 0x51EB99CBCB075F35ULL>& TaekwonBodyPath13() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0x51EB99CBCB075F35ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0x51EB99CBCB075F35ULL); } // OFFSET: 0x00DD3650 // FUNCTION: fn_23216 EncryptedName<14, 0x1B3B756FE399E1D9ULL>& WizardBodyPath13() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x1B3B756FE399E1D9ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x1B3B756FE399E1D9ULL); } // OFFSET: 0x00DD3720 // FUNCTION: fn_23217 EncryptedName<18, 0x3B6D9BFD27A7C7F7ULL>& TaekwonBodyPath14() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0x3B6D9BFD27A7C7F7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0x3B6D9BFD27A7C7F7ULL); } // OFFSET: 0x00DD37F0 // FUNCTION: fn_23218 EncryptedName<14, 0x451FD72783630709ULL>& WizardBodyPath14() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x451FD72783630709ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x451FD72783630709ULL); } // OFFSET: 0x00DD38C0 // FUNCTION: fn_23219 EncryptedName<14, 0x73C32959FDFFA51BULL>& WizardBodyPath15() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x73C32959FDFFA51BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x73C32959FDFFA51BULL); } // OFFSET: 0x00DD3990 // FUNCTION: fn_23220 EncryptedName<14, 0xA15B555BE9CD2B81ULL>& WizardBodyPath16() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0xA15B555BE9CD2B81ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0xA15B555BE9CD2B81ULL); } // OFFSET: 0x00DD3A60 // FUNCTION: fn_23221 EncryptedName<14, 0xD9115915B1919533ULL>& SageBodyPath8() { - constexpr auto sourceText = CRYPT_NAME("세이지\\세이지", 0xD9115915B1919533ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("세이지\\세이지", 0xD9115915B1919533ULL); } // OFFSET: 0x00DD3B30 // FUNCTION: fn_23222 EncryptedName<14, 0xB3F1A10745C1F105ULL>& SageBodyPath9() { - constexpr auto sourceText = CRYPT_NAME("세이지\\세이지", 0xB3F1A10745C1F105ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("세이지\\세이지", 0xB3F1A10745C1F105ULL); } // OFFSET: 0x00DD3C00 // FUNCTION: fn_23223 EncryptedName<18, 0x99157F159BB99BD9ULL>& WindhawkBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("WINDHAWK\\WINDHAWK", 0x99157F159BB99BD9ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("WINDHAWK\\WINDHAWK", 0x99157F159BB99BD9ULL); } // OFFSET: 0x00DD3CD0 // FUNCTION: fn_23224 EncryptedName<23, 0x7959FFBF652D07BFULL>& WolfWindhawkBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("WINDHAWK\\WOLF_WINDHAWK", 0x7959FFBF652D07BFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("WINDHAWK\\WOLF_WINDHAWK", 0x7959FFBF652D07BFULL); } // OFFSET: 0x00DD3DB0 // FUNCTION: fn_23225 EncryptedName<25, 0x01C9FBA7819FFBD7ULL>& WindhawkRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("WINDHAWK\\WINDHAWK_RIDING", 0x01C9FBA7819FFBD7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("WINDHAWK\\WINDHAWK_RIDING", 0x01C9FBA7819FFBD7ULL); } // OFFSET: 0x00DD3E90 // FUNCTION: fn_23226 EncryptedName<22, 0xABED6971354375C3ULL>& TroubadourBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("TROUBADOUR\\TROUBADOUR", 0xABED6971354375C3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("TROUBADOUR\\TROUBADOUR", 0xABED6971354375C3ULL); } // OFFSET: 0x00DD3F60 // FUNCTION: fn_23227 EncryptedName<29, 0x6BA557130BDFE997ULL>& TroubadourRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("TROUBADOUR\\TROUBADOUR_RIDING", 0x6BA557130BDFE997ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("TROUBADOUR\\TROUBADOUR_RIDING", 0x6BA557130BDFE997ULL); } // OFFSET: 0x00DD4040 // FUNCTION: fn_23228 EncryptedName<18, 0xFBAD074BDB2B77A1ULL>& TrouvereBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("TROUVERE\\TROUVERE", 0xFBAD074BDB2B77A1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("TROUVERE\\TROUVERE", 0xFBAD074BDB2B77A1ULL); } // OFFSET: 0x00DD4110 // FUNCTION: fn_23229 EncryptedName<25, 0x6D05D5271B5D65C3ULL>& TrouvereRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("TROUVERE\\TROUVERE_RIDING", 0x6D05D5271B5D65C3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("TROUVERE\\TROUVERE_RIDING", 0x6D05D5271B5D65C3ULL); } // OFFSET: 0x00DD41F0 // FUNCTION: fn_23230 EncryptedName<18, 0x050DF16FC75B25B9ULL>& CardinalBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("CARDINAL\\CARDINAL", 0x050DF16FC75B25B9ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("CARDINAL\\CARDINAL", 0x050DF16FC75B25B9ULL); } // OFFSET: 0x00DD42C0 // FUNCTION: fn_23231 EncryptedName<25, 0x0789EBC9F5C1C59FULL>& CardinalRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("CARDINAL\\CARDINAL_RIDING", 0x0789EBC9F5C1C59FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("CARDINAL\\CARDINAL_RIDING", 0x0789EBC9F5C1C59FULL); } // OFFSET: 0x00DD4530 // FUNCTION: fn_23233 EncryptedName<22, 0x3D8387EF97A37DCFULL>& InquisitorBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("INQUISITOR\\INQUISITOR", 0x3D8387EF97A37DCFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("INQUISITOR\\INQUISITOR", 0x3D8387EF97A37DCFULL); } // OFFSET: 0x00DD4600 // FUNCTION: fn_23234 EncryptedName<29, 0x07A7D947CF7323BFULL>& InquisitorRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("INQUISITOR\\INQUISITOR_RIDING", 0x07A7D947CF7323BFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("INQUISITOR\\INQUISITOR_RIDING", 0x07A7D947CF7323BFULL); } // OFFSET: 0x00DD46E0 // FUNCTION: fn_23235 EncryptedName<12, 0xD97DC927AFE911F1ULL>& BioloBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("BIOLO\\BIOLO", 0xD97DC927AFE911F1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("BIOLO\\BIOLO", 0xD97DC927AFE911F1ULL); } // OFFSET: 0x00DD47B0 // FUNCTION: fn_23236 EncryptedName<26, 0x8BA52B970DD531ADULL>& BioloRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("BIOLO_RIDING\\BIOLO_RIDING", 0x8BA52B970DD531ADULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("BIOLO_RIDING\\BIOLO_RIDING", 0x8BA52B970DD531ADULL); } // OFFSET: 0x00DD4890 // FUNCTION: fn_23237 EncryptedName<16, 0x47B7BF55EB471557ULL>& MeisterBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("MEISTER\\MEISTER", 0x47B7BF55EB471557ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("MEISTER\\MEISTER", 0x47B7BF55EB471557ULL); } // OFFSET: 0x00DD4950 // FUNCTION: fn_23238 EncryptedName<30, 0xCFB9671DEF4BD9E7ULL>& MeisterRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("MEISTER_RIDING\\MEISTER_RIDING", 0xCFB9671DEF4BD9E7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("MEISTER_RIDING\\MEISTER_RIDING", 0xCFB9671DEF4BD9E7ULL); } // OFFSET: 0x00DD4A30 // FUNCTION: fn_23239 EncryptedName<35, 0x2F2103792383718BULL>& MeisterMadogear1BodyPath1() { - constexpr auto sourceText = CRYPT_NAME("MEISTER_MADOGEAR\\MEISTER_MADOGEAR1", 0x2F2103792383718BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("MEISTER_MADOGEAR\\MEISTER_MADOGEAR1", 0x2F2103792383718BULL); } // OFFSET: 0x00DD4B10 // FUNCTION: fn_23240 EncryptedName<28, 0x999F5191852D2F6BULL>& DragonKnightBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("DRAGON_KNIGHT\\DRAGON_KNIGHT", 0x999F5191852D2F6BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("DRAGON_KNIGHT\\DRAGON_KNIGHT", 0x999F5191852D2F6BULL); } // OFFSET: 0x00DD4BF0 // FUNCTION: fn_23241 EncryptedName<42, 0x4349ADE96FEB27E5ULL>& DragonKnightRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("DRAGON_KNIGHT_RIDING\\DRAGON_KNIGHT_RIDING", 0x4349ADE96FEB27E5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("DRAGON_KNIGHT_RIDING\\DRAGON_KNIGHT_RIDING", 0x4349ADE96FEB27E5ULL); } // OFFSET: 0x00DD4CD0 // FUNCTION: fn_23242 EncryptedName<44, 0xA55B7BEF3D7377E3ULL>& DragonKnightChickenBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("DRAGON_KNIGHT_CHICKEN\\DRAGON_KNIGHT_CHICKEN", 0xA55B7BEF3D7377E3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("DRAGON_KNIGHT_CHICKEN\\DRAGON_KNIGHT_CHICKEN", 0xA55B7BEF3D7377E3ULL); } // OFFSET: 0x00DD4DB0 // FUNCTION: fn_23243 EncryptedName<30, 0x31E3CF9D358D8705ULL>& ImperialGuardBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("IMPERIAL_GUARD\\IMPERIAL_GUARD", 0x31E3CF9D358D8705ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("IMPERIAL_GUARD\\IMPERIAL_GUARD", 0x31E3CF9D358D8705ULL); } // OFFSET: 0x00DD4E90 // FUNCTION: fn_23244 EncryptedName<44, 0x79A58B0F2173CF49ULL>& ImperialGuardRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("IMPERIAL_GUARD_RIDING\\IMPERIAL_GUARD_RIDING", 0x79A58B0F2173CF49ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("IMPERIAL_GUARD_RIDING\\IMPERIAL_GUARD_RIDING", 0x79A58B0F2173CF49ULL); } // OFFSET: 0x00DD4F70 // FUNCTION: fn_23245 EncryptedName<46, 0xF5496753BDE7C5BDULL>& ImperialGuardChickenBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("IMPERIAL_GUARD_CHICKEN\\IMPERIAL_GUARD_CHICKEN", 0xF5496753BDE7C5BDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("IMPERIAL_GUARD_CHICKEN\\IMPERIAL_GUARD_CHICKEN", 0xF5496753BDE7C5BDULL); } // OFFSET: 0x00DD5060 // FUNCTION: fn_23246 EncryptedName<26, 0x795787B7779D19DBULL>& ShadowCrossBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("SHADOW_CROSS\\SHADOW_CROSS", 0x795787B7779D19DBULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SHADOW_CROSS\\SHADOW_CROSS", 0x795787B7779D19DBULL); } // OFFSET: 0x00DD5140 // FUNCTION: fn_23247 EncryptedName<33, 0x6B3917C939150B9BULL>& ShadowCrossRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("SHADOW_CROSS\\SHADOW_CROSS_RIDING", 0x6B3917C939150B9BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SHADOW_CROSS\\SHADOW_CROSS_RIDING", 0x6B3917C939150B9BULL); } // OFFSET: 0x00DD5210 // FUNCTION: fn_23248 EncryptedName<26, 0x29AB0B59651BDFD5ULL>& AbyssChaserBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("ABYSS_CHASER\\ABYSS_CHASER", 0x29AB0B59651BDFD5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("ABYSS_CHASER\\ABYSS_CHASER", 0x29AB0B59651BDFD5ULL); } // OFFSET: 0x00DD52F0 // FUNCTION: fn_23249 EncryptedName<33, 0xF9B1EF9F7961EFF5ULL>& AbyssChaserRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("ABYSS_CHASER\\ABYSS_CHASER_RIDING", 0xF9B1EF9F7961EFF5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("ABYSS_CHASER\\ABYSS_CHASER_RIDING", 0xF9B1EF9F7961EFF5ULL); } // OFFSET: 0x00DD53C0 // FUNCTION: fn_23250 EncryptedName<24, 0xA1DFCDAD555BB16DULL>& SkyEmperorBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("SKY_EMPEROR\\SKY_EMPEROR", 0xA1DFCDAD555BB16DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SKY_EMPEROR\\SKY_EMPEROR", 0xA1DFCDAD555BB16DULL); } // OFFSET: 0x00DD5490 // FUNCTION: fn_23251 EncryptedName<25, 0xAFF9332FD397533FULL>& SkyEmperor2BodyPath1() { - constexpr auto sourceText = CRYPT_NAME("SKY_EMPEROR\\SKY_EMPEROR2", 0xAFF9332FD397533FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SKY_EMPEROR\\SKY_EMPEROR2", 0xAFF9332FD397533FULL); } // OFFSET: 0x00DD5570 // FUNCTION: fn_23252 EncryptedName<31, 0x194F8339AF753FADULL>& SkyEmperorRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("SKY_EMPEROR\\SKY_EMPEROR_RIDING", 0x194F8339AF753FADULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SKY_EMPEROR\\SKY_EMPEROR_RIDING", 0x194F8339AF753FADULL); } // OFFSET: 0x00DD5650 // FUNCTION: fn_23253 EncryptedName<26, 0x7DC10333F96DE3E7ULL>& SoulAsceticBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("SOUL_ASCETIC\\SOUL_ASCETIC", 0x7DC10333F96DE3E7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SOUL_ASCETIC\\SOUL_ASCETIC", 0x7DC10333F96DE3E7ULL); } // OFFSET: 0x00DD5730 // FUNCTION: fn_23254 EncryptedName<33, 0xE9FBAB53D5A1BB17ULL>& SoulAsceticRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("SOUL_ASCETIC\\SOUL_ASCETIC_RIDING", 0xE9FBAB53D5A1BB17ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SOUL_ASCETIC\\SOUL_ASCETIC_RIDING", 0xE9FBAB53D5A1BB17ULL); } // OFFSET: 0x00DD5800 // FUNCTION: fn_23255 EncryptedName<18, 0x51372B6F4BA14B23ULL>& ShinkiroBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("SHINKIRO\\SHINKIRO", 0x51372B6F4BA14B23ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SHINKIRO\\SHINKIRO", 0x51372B6F4BA14B23ULL); } // OFFSET: 0x00DD58D0 // FUNCTION: fn_23256 EncryptedName<25, 0xB70319D3A78D39CDULL>& ShinkiroRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("SHINKIRO\\SHINKIRO_RIDING", 0xB70319D3A78D39CDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SHINKIRO\\SHINKIRO_RIDING", 0xB70319D3A78D39CDULL); } // OFFSET: 0x00DD59B0 // FUNCTION: fn_23257 EncryptedName<18, 0x1F79132B518FD389ULL>& ShiranuiBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("SHIRANUI\\SHIRANUI", 0x1F79132B518FD389ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SHIRANUI\\SHIRANUI", 0x1F79132B518FD389ULL); } // OFFSET: 0x00DD5A80 // FUNCTION: fn_23258 EncryptedName<25, 0xC1FD95811D1F4FA1ULL>& ShiranuiRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("SHIRANUI\\SHIRANUI_RIDING", 0xC1FD95811D1F4FA1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SHIRANUI\\SHIRANUI_RIDING", 0xC1FD95811D1F4FA1ULL); } // OFFSET: 0x00DD5B60 // FUNCTION: fn_23259 EncryptedName<24, 0x35F59F6F3DD1C965ULL>& NightWatchBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("NIGHT_WATCH\\NIGHT_WATCH", 0x35F59F6F3DD1C965ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("NIGHT_WATCH\\NIGHT_WATCH", 0x35F59F6F3DD1C965ULL); } // OFFSET: 0x00DD5C30 // FUNCTION: fn_23260 EncryptedName<31, 0xD7BBEB2DDB295D11ULL>& NightWatchRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("NIGHT_WATCH\\NIGHT_WATCH_RIDING", 0xD7BBEB2DDB295D11ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("NIGHT_WATCH\\NIGHT_WATCH_RIDING", 0xD7BBEB2DDB295D11ULL); } // OFFSET: 0x00DD5D10 // FUNCTION: fn_23261 EncryptedName<26, 0xBF0F412941076FADULL>& HyperNoviceBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("HYPER_NOVICE\\HYPER_NOVICE", 0xBF0F412941076FADULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("HYPER_NOVICE\\HYPER_NOVICE", 0xBF0F412941076FADULL); } // OFFSET: 0x00DD5DF0 // FUNCTION: fn_23262 EncryptedName<33, 0x8DFF0B4B67D9FDE1ULL>& HyperNoviceRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("HYPER_NOVICE\\HYPER_NOVICE_RIDING", 0x8DFF0B4B67D9FDE1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("HYPER_NOVICE\\HYPER_NOVICE_RIDING", 0x8DFF0B4B67D9FDE1ULL); } // OFFSET: 0x00DD5EC0 // FUNCTION: fn_23263 EncryptedName<30, 0xB59BADC5B365617DULL>& SpiritHandlerBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("SPIRIT_HANDLER\\SPIRIT_HANDLER", 0xB59BADC5B365617DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SPIRIT_HANDLER\\SPIRIT_HANDLER", 0xB59BADC5B365617DULL); } // OFFSET: 0x00DD5FA0 // FUNCTION: fn_23264 EncryptedName<37, 0x77D925073D6F19B9ULL>& SpiritHandlerRidingBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("SPIRIT_HANDLER\\SPIRIT_HANDLER_RIDING", 0x77D925073D6F19B9ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SPIRIT_HANDLER\\SPIRIT_HANDLER_RIDING", 0x77D925073D6F19B9ULL); } // OFFSET: 0x00DD6080 // FUNCTION: fn_23265 EncryptedName<12, 0x91E7A7DFA58F9B6BULL>& DruidBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("DRUID\\DRUID", 0x91E7A7DFA58F9B6BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("DRUID\\DRUID", 0x91E7A7DFA58F9B6BULL); } // OFFSET: 0x00DD6150 // FUNCTION: fn_23266 EncryptedName<12, 0x2529F16B0375530DULL>& DruidBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("DRUID\\DRUID", 0x2529F16B0375530DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("DRUID\\DRUID", 0x2529F16B0375530DULL); } // OFFSET: 0x00DD6220 // FUNCTION: fn_23267 EncryptedName<14, 0x91DF1F5D3B014D45ULL>& KarnosBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("KARNOS\\KARNOS", 0x91DF1F5D3B014D45ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("KARNOS\\KARNOS", 0x91DF1F5D3B014D45ULL); } // OFFSET: 0x00DD62F0 // FUNCTION: fn_23268 EncryptedName<14, 0x0D7FA94DD32361A9ULL>& KarnosBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("KARNOS\\KARNOS", 0x0D7FA94DD32361A9ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("KARNOS\\KARNOS", 0x0D7FA94DD32361A9ULL); } // OFFSET: 0x00DD63C0 // FUNCTION: fn_23269 EncryptedName<14, 0x2F371DDDADDD53CFULL>& AliteaBodyPath1() { - constexpr auto sourceText = CRYPT_NAME("ALITEA\\ALITEA", 0x2F371DDDADDD53CFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("ALITEA\\ALITEA", 0x2F371DDDADDD53CFULL); } // OFFSET: 0x00DD6490 // FUNCTION: fn_23270 EncryptedName<6, 0x2F3D75DFCF678FF3ULL>& DruidJobName1() { - constexpr auto sourceText = CRYPT_NAME("DRUID", 0x2F3D75DFCF678FF3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("DRUID", 0x2F3D75DFCF678FF3ULL); } // OFFSET: 0x00DD6560 // FUNCTION: fn_23271 EncryptedName<6, 0x3BBB5F0F8F216F31ULL>& DruidJobName2() { - constexpr auto sourceText = CRYPT_NAME("DRUID", 0x3BBB5F0F8F216F31ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("DRUID", 0x3BBB5F0F8F216F31ULL); } // OFFSET: 0x00DD6630 // FUNCTION: fn_23272 EncryptedName<7, 0x6F9D21B96D71C1FFULL>& KarnosJobName1() { - constexpr auto sourceText = CRYPT_NAME("KARNOS", 0x6F9D21B96D71C1FFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("KARNOS", 0x6F9D21B96D71C1FFULL); } // OFFSET: 0x00DD6700 // FUNCTION: fn_23273 EncryptedName<7, 0xED730315539785C7ULL>& KarnosJobName2() { - constexpr auto sourceText = CRYPT_NAME("KARNOS", 0xED730315539785C7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("KARNOS", 0xED730315539785C7ULL); } // OFFSET: 0x00DD67D0 // FUNCTION: fn_23274 EncryptedName<7, 0x8F61434F0F79DDD7ULL>& AliteaJobName1() { - constexpr auto sourceText = CRYPT_NAME("ALITEA", 0x8F61434F0F79DDD7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("ALITEA", 0x8F61434F0F79DDD7ULL); } // OFFSET: 0x00DD68A0 // FUNCTION: fn_23275 EncryptedName<9, 0xA5C5D1A3B9457B53ULL>& WerewolfJobName1() { - constexpr auto sourceText = CRYPT_NAME("WEREWOLF", 0xA5C5D1A3B9457B53ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("WEREWOLF", 0xA5C5D1A3B9457B53ULL); } // OFFSET: 0x00DD6A40 // FUNCTION: fn_23277 EncryptedName<13, 0x4B670715D543C1C3ULL>& DruidRidingName() { - constexpr auto sourceText = CRYPT_NAME("DRUID_RIDING", 0x4B670715D543C1C3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("DRUID_RIDING", 0x4B670715D543C1C3ULL); } // OFFSET: 0x00DD6B10 // FUNCTION: fn_23278 EncryptedName<14, 0x7155E5EF0DFB0D03ULL>& KarnosRidingName() { - constexpr auto sourceText = CRYPT_NAME("KARNOS_RIDING", 0x7155E5EF0DFB0D03ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("KARNOS_RIDING", 0x7155E5EF0DFB0D03ULL); } // OFFSET: 0x00DD6BE0 // FUNCTION: fn_23279 EncryptedName<14, 0x4B1D078937DB892BULL>& AliteaRidingName() { - constexpr auto sourceText = CRYPT_NAME("ALITEA_RIDING", 0x4B1D078937DB892BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("ALITEA_RIDING", 0x4B1D078937DB892BULL); } // OFFSET: 0x00E29530 // FUNCTION: fn_24044 EncryptedName<14, 0x6BC977B3B5993503ULL>& PoringSuperNovice2SpriteName() { - constexpr auto sourceText = CRYPT_NAME("초보자\\초보자", 0x6BC977B3B5993503ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("초보자\\초보자", 0x6BC977B3B5993503ULL); } // OFFSET: 0x00E29600 // FUNCTION: fn_24045 EncryptedName<14, 0x91493751EF33B5FDULL>& PoringSuperNovice2BabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("초보자\\초보자", 0x91493751EF33B5FDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("초보자\\초보자", 0x91493751EF33B5FDULL); } // OFFSET: 0x00E296D0 // FUNCTION: fn_24046 EncryptedName<18, 0x0DF5B33D9F21EB79ULL>& SheepPriestBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("프리스트\\프리스트", 0x0DF5B33D9F21EB79ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("프리스트\\프리스트", 0x0DF5B33D9F21EB79ULL); } // OFFSET: 0x00E297A0 // FUNCTION: fn_24047 EncryptedName<14, 0x01E7898D9D235DDFULL>& FoxWizardBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("위저드\\위저드", 0x01E7898D9D235DDFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("위저드\\위저드", 0x01E7898D9D235DDFULL); } // OFFSET: 0x00E29870 // FUNCTION: fn_24048 EncryptedName<14, 0x6961FF056999A303ULL>& PigBlacksmithBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("제철공\\제철공", 0x6961FF056999A303ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("제철공\\제철공", 0x6961FF056999A303ULL); } // OFFSET: 0x00E29940 // FUNCTION: fn_24049 EncryptedName<14, 0x9DEFC105A1EB2F71ULL>& PigMechanicSpriteName() { - constexpr auto sourceText = CRYPT_NAME("미케닉\\미케닉", 0x9DEFC105A1EB2F71ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("미케닉\\미케닉", 0x9DEFC105A1EB2F71ULL); } // OFFSET: 0x00E29A10 // FUNCTION: fn_24050 EncryptedName<14, 0xC7FB6DF18577D34BULL>& PigMechanicBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("미케닉\\미케닉", 0xC7FB6DF18577D34BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("미케닉\\미케닉", 0xC7FB6DF18577D34BULL); } // OFFSET: 0x00E29AE0 // FUNCTION: fn_24051 EncryptedName<14, 0xBD3F430159B551FDULL>& OstrichRangerSpriteName() { - constexpr auto sourceText = CRYPT_NAME("레인져\\레인져", 0xBD3F430159B551FDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("레인져\\레인져", 0xBD3F430159B551FDULL); } // OFFSET: 0x00E29BB0 // FUNCTION: fn_24052 EncryptedName<14, 0x2B477F9B5B39B301ULL>& OstrichRangerBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("레인져\\레인져", 0x2B477F9B5B39B301ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("레인져\\레인져", 0x2B477F9B5B39B301ULL); } // OFFSET: 0x00E29C80 // FUNCTION: fn_24053 EncryptedName<10, 0x5B832361BDA77197ULL>& LionKnightSpriteName() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0x5B832361BDA77197ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0x5B832361BDA77197ULL); } // OFFSET: 0x00E29D50 // FUNCTION: fn_24054 EncryptedName<10, 0xEB3D4FAB0FC183DBULL>& LionKnightBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0xEB3D4FAB0FC183DBULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0xEB3D4FAB0FC183DBULL); } // OFFSET: 0x00E29E20 // FUNCTION: fn_24055 EncryptedName<10, 0xFFBF43D1FFD5FF49ULL>& LionKnightHighSpriteName() { - constexpr auto sourceText = CRYPT_NAME("기사\\기사", 0xFFBF43D1FFD5FF49ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("기사\\기사", 0xFFBF43D1FFD5FF49ULL); } // OFFSET: 0x00E29EF0 // FUNCTION: fn_24056 EncryptedName<18, 0xE51B29334D353B81ULL>& LionRoyalGuardSpriteName() { - constexpr auto sourceText = CRYPT_NAME("로얄가드\\로얄가드", 0xE51B29334D353B81ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("로얄가드\\로얄가드", 0xE51B29334D353B81ULL); } // OFFSET: 0x00E29FC0 // FUNCTION: fn_24057 EncryptedName<18, 0x8F3F2FA959977F9FULL>& LionRoyalGuardBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("로얄가드\\로얄가드", 0x8F3F2FA959977F9FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("로얄가드\\로얄가드", 0x8F3F2FA959977F9FULL); } // OFFSET: 0x00E2A090 // FUNCTION: fn_24058 EncryptedName<18, 0x7FE563BD3FB7F925ULL>& LionRuneKnightSpriteName() { - constexpr auto sourceText = CRYPT_NAME("룬나이트\\룬나이트", 0x7FE563BD3FB7F925ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("룬나이트\\룬나이트", 0x7FE563BD3FB7F925ULL); } // OFFSET: 0x00E2A160 // FUNCTION: fn_24059 EncryptedName<18, 0x8B3FA35B5BDDDF89ULL>& LionRuneKnightBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("룬나이트\\룬나이트", 0x8B3FA35B5BDDDF89ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("룬나이트\\룬나이트", 0x8B3FA35B5BDDDF89ULL); } // OFFSET: 0x00E2A230 // FUNCTION: fn_24060 EncryptedName<22, 0x7DB1050779034DE7ULL>& LionCrusaderSpriteName() { - constexpr auto sourceText = CRYPT_NAME("크루세이더\\크루세이더", 0x7DB1050779034DE7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("크루세이더\\크루세이더", 0x7DB1050779034DE7ULL); } // OFFSET: 0x00E2A300 // FUNCTION: fn_24061 EncryptedName<22, 0x5D6B3B1DEB2397B1ULL>& LionCrusaderBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("크루세이더\\크루세이더", 0x5D6B3B1DEB2397B1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("크루세이더\\크루세이더", 0x5D6B3B1DEB2397B1ULL); } // OFFSET: 0x00E2A3D0 // FUNCTION: fn_24062 EncryptedName<22, 0x07112F85A39F4FABULL>& LionCrusaderHighSpriteName() { - constexpr auto sourceText = CRYPT_NAME("크루세이더\\크루세이더", 0x07112F85A39F4FABULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("크루세이더\\크루세이더", 0x07112F85A39F4FABULL); } // OFFSET: 0x00E2A4A0 // FUNCTION: fn_24063 EncryptedName<16, 0x45E3F103CBB5F157ULL>& KagerouSpriteName() { - constexpr auto sourceText = CRYPT_NAME("kagerou\\kagerou", 0x45E3F103CBB5F157ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("kagerou\\kagerou", 0x45E3F103CBB5F157ULL); } // OFFSET: 0x00E2A560 // FUNCTION: fn_24064 EncryptedName<12, 0x936F3D2FFDFD87F5ULL>& OboroSpriteName() { - constexpr auto sourceText = CRYPT_NAME("oboro\\oboro", 0x936F3D2FFDFD87F5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("oboro\\oboro", 0x936F3D2FFDFD87F5ULL); } // OFFSET: 0x00E2A630 // FUNCTION: fn_24065 EncryptedName<16, 0x2D33791F67AD47DFULL>& FrogKagerouSpriteName() { - constexpr auto sourceText = CRYPT_NAME("kagerou\\kagerou", 0x2D33791F67AD47DFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("kagerou\\kagerou", 0x2D33791F67AD47DFULL); } // OFFSET: 0x00E2A6F0 // FUNCTION: fn_24066 EncryptedName<12, 0x6B3301E1A3079125ULL>& FrogOboroSpriteName() { - constexpr auto sourceText = CRYPT_NAME("oboro\\oboro", 0x6B3301E1A3079125ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("oboro\\oboro", 0x6B3301E1A3079125ULL); } // OFFSET: 0x00E2A7C0 // FUNCTION: fn_24067 EncryptedName<20, 0x2F2701A7E56D3D89ULL>& RebellionSpriteName() { - constexpr auto sourceText = CRYPT_NAME("rebellion\\rebellion", 0x2F2701A7E56D3D89ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("rebellion\\rebellion", 0x2F2701A7E56D3D89ULL); } // OFFSET: 0x00E2A890 // FUNCTION: fn_24068 EncryptedName<18, 0xC39FB559A17D3963ULL>& DoramSummonerSpriteName() { - constexpr auto sourceText = CRYPT_NAME("summoner\\summoner", 0xC39FB559A17D3963ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("summoner\\summoner", 0xC39FB559A17D3963ULL); } // OFFSET: 0x00E2A960 // FUNCTION: fn_24069 EncryptedName<23, 0x71B7691737C5A1AFULL>& DoramCartSummonerSpriteName() { - constexpr auto sourceText = CRYPT_NAME("summoner\\cart_summoner", 0x71B7691737C5A1AFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("summoner\\cart_summoner", 0x71B7691737C5A1AFULL); } // OFFSET: 0x00E2AA40 // FUNCTION: fn_24070 EncryptedName<18, 0x899D11BB83695B0DULL>& DoramSummonerBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("summoner\\summoner", 0x899D11BB83695B0DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("summoner\\summoner", 0x899D11BB83695B0DULL); } // OFFSET: 0x00E2AB10 // FUNCTION: fn_24071 EncryptedName<23, 0x2B8725D7E95325F5ULL>& DoramCartSummonerBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("summoner\\cart_summoner", 0x2B8725D7E95325F5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("summoner\\cart_summoner", 0x2B8725D7E95325F5ULL); } // OFFSET: 0x00E2ABF0 // FUNCTION: fn_24072 EncryptedName<10, 0x7989830DE73B9DBDULL>& NinjaBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("닌자\\닌자", 0x7989830DE73B9DBDULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("닌자\\닌자", 0x7989830DE73B9DBDULL); } // OFFSET: 0x00E2ACC0 // FUNCTION: fn_24073 EncryptedName<10, 0xBDADDD87C5A50B6BULL>& FrogNinjaBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("닌자\\닌자", 0xBDADDD87C5A50B6BULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("닌자\\닌자", 0xBDADDD87C5A50B6BULL); } // OFFSET: 0x00E2AD90 // FUNCTION: fn_24074 EncryptedName<16, 0xA7471985F93F9BDFULL>& KagerouBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("kagerou\\kagerou", 0xA7471985F93F9BDFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("kagerou\\kagerou", 0xA7471985F93F9BDFULL); } // OFFSET: 0x00E2AE50 // FUNCTION: fn_24075 EncryptedName<12, 0x5FFD7FABB5D1EF57ULL>& OboroBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("oboro\\oboro", 0x5FFD7FABB5D1EF57ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("oboro\\oboro", 0x5FFD7FABB5D1EF57ULL); } // OFFSET: 0x00E2AF20 // FUNCTION: fn_24076 EncryptedName<16, 0xD3E5516F89F161D1ULL>& FrogKagerouBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("kagerou\\kagerou", 0xD3E5516F89F161D1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("kagerou\\kagerou", 0xD3E5516F89F161D1ULL); } // OFFSET: 0x00E2AFE0 // FUNCTION: fn_24077 EncryptedName<12, 0xF535E561137F138DULL>& FrogOboroBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("oboro\\oboro", 0xF535E561137F138DULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("oboro\\oboro", 0xF535E561137F138DULL); } // OFFSET: 0x00E2B0B0 // FUNCTION: fn_24078 EncryptedName<18, 0xABED6971354375C3ULL>& TaekwonBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0xABED6971354375C3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0xABED6971354375C3ULL); } // OFFSET: 0x00E2B180 // FUNCTION: fn_24079 EncryptedName<18, 0x01C9FBA7819FFBD7ULL>& PoringTaekwonBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("태권소년\\태권소년", 0x01C9FBA7819FFBD7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("태권소년\\태권소년", 0x01C9FBA7819FFBD7ULL); } // OFFSET: 0x00E2B250 // FUNCTION: fn_24080 EncryptedName<10, 0xFBAD074BDB2B77A1ULL>& StarGladiatorBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("권성\\권성", 0xFBAD074BDB2B77A1ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("권성\\권성", 0xFBAD074BDB2B77A1ULL); } // OFFSET: 0x00E2B320 // FUNCTION: fn_24081 EncryptedName<10, 0x6BA557130BDFE997ULL>& StarGladiator2BabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("권성\\권성", 0x6BA557130BDFE997ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("권성\\권성", 0x6BA557130BDFE997ULL); } // OFFSET: 0x00E2B3F0 // FUNCTION: fn_24082 EncryptedName<10, 0x050DF16FC75B25B9ULL>& PoringStarGladiatorBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("권성\\권성", 0x050DF16FC75B25B9ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("권성\\권성", 0x050DF16FC75B25B9ULL); } // OFFSET: 0x00E2B4C0 // FUNCTION: fn_24083 EncryptedName<18, 0x6D05D5271B5D65C3ULL>& SoulLinkerBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("소울링커\\소울링커", 0x6D05D5271B5D65C3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("소울링커\\소울링커", 0x6D05D5271B5D65C3ULL); } // OFFSET: 0x00E2B590 // FUNCTION: fn_24084 EncryptedName<18, 0x3D8387EF97A37DCFULL>& FrogSoulLinkerBabySpriteName() { - constexpr auto sourceText = CRYPT_NAME("소울링커\\소울링커", 0x3D8387EF97A37DCFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("소울링커\\소울링커", 0x3D8387EF97A37DCFULL); } // OFFSET: 0x00E2E2E0 // FUNCTION: fn_24138 EncryptedName<24, 0x3BBB5F0F8F216F31ULL>& NightWatchBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("NIGHT_WATCH\\NIGHT_WATCH", 0x3BBB5F0F8F216F31ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("NIGHT_WATCH\\NIGHT_WATCH", 0x3BBB5F0F8F216F31ULL); } // OFFSET: 0x00E2E3B0 // FUNCTION: fn_24139 EncryptedName<31, 0x2F3D75DFCF678FF3ULL>& NightWatchRidingBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("NIGHT_WATCH\\NIGHT_WATCH_RIDING", 0x2F3D75DFCF678FF3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("NIGHT_WATCH\\NIGHT_WATCH_RIDING", 0x2F3D75DFCF678FF3ULL); } // OFFSET: 0x00E2E490 // FUNCTION: fn_24140 EncryptedName<26, 0xED730315539785C7ULL>& HyperNoviceBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("HYPER_NOVICE\\HYPER_NOVICE", 0xED730315539785C7ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("HYPER_NOVICE\\HYPER_NOVICE", 0xED730315539785C7ULL); } // OFFSET: 0x00E2E570 // FUNCTION: fn_24141 EncryptedName<33, 0x6F9D21B96D71C1FFULL>& HyperNoviceRidingBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("HYPER_NOVICE\\HYPER_NOVICE_RIDING", 0x6F9D21B96D71C1FFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("HYPER_NOVICE\\HYPER_NOVICE_RIDING", 0x6F9D21B96D71C1FFULL); } // OFFSET: 0x00E2E640 // FUNCTION: fn_24142 EncryptedName<30, 0x39E7F13755252F8FULL>& SpiritHandlerBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("SPIRIT_HANDLER\\SPIRIT_HANDLER", 0x39E7F13755252F8FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SPIRIT_HANDLER\\SPIRIT_HANDLER", 0x39E7F13755252F8FULL); } // OFFSET: 0x00E2E720 // FUNCTION: fn_24143 EncryptedName<37, 0xCBD7DDAFDF87F549ULL>& SpiritHandlerRidingBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("SPIRIT_HANDLER\\SPIRIT_HANDLER_RIDING", 0xCBD7DDAFDF87F549ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("SPIRIT_HANDLER\\SPIRIT_HANDLER_RIDING", 0xCBD7DDAFDF87F549ULL); } // OFFSET: 0x00E2E800 // FUNCTION: fn_24144 EncryptedName<12, 0xEB074B7FBDA3BFD5ULL>& DruidBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("DRUID\\DRUID", 0xEB074B7FBDA3BFD5ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("DRUID\\DRUID", 0xEB074B7FBDA3BFD5ULL); } // OFFSET: 0x00E2E8D0 // FUNCTION: fn_24145 EncryptedName<12, 0x3D075BD5256F9B6FULL>& DruidBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("DRUID\\DRUID", 0x3D075BD5256F9B6FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("DRUID\\DRUID", 0x3D075BD5256F9B6FULL); } // OFFSET: 0x00E2E9A0 // FUNCTION: fn_24146 EncryptedName<14, 0x251761D7370BA5C3ULL>& KarnosBodyPath3() { - constexpr auto sourceText = CRYPT_NAME("KARNOS\\KARNOS", 0x251761D7370BA5C3ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("KARNOS\\KARNOS", 0x251761D7370BA5C3ULL); } // OFFSET: 0x00E2EA70 // FUNCTION: fn_24147 EncryptedName<14, 0x03014749B127914FULL>& KarnosBodyPath4() { - constexpr auto sourceText = CRYPT_NAME("KARNOS\\KARNOS", 0x03014749B127914FULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("KARNOS\\KARNOS", 0x03014749B127914FULL); } // OFFSET: 0x00E2EB40 // FUNCTION: fn_24148 EncryptedName<14, 0x85FB93CF2F494179ULL>& AliteaBodyPath2() { - constexpr auto sourceText = CRYPT_NAME("ALITEA\\ALITEA", 0x85FB93CF2F494179ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("ALITEA\\ALITEA", 0x85FB93CF2F494179ULL); } // OFFSET: 0x00DD6970 // FUNCTION: fn_23276 EncryptedName<11, 0x61F59D5D41E76519ULL>& WereRaptorJobName1() { - constexpr auto sourceText = CRYPT_NAME("WERERAPTOR", 0x61F59D5D41E76519ULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("WERERAPTOR", 0x61F59D5D41E76519ULL); } diff --git a/Source/UI/AdventureGuide/UIAdventureGuide.cpp b/Source/UI/AdventureGuide/UIAdventureGuide.cpp index 779f4382c..2e44bcb58 100644 --- a/Source/UI/AdventureGuide/UIAdventureGuide.cpp +++ b/Source/UI/AdventureGuide/UIAdventureGuide.cpp @@ -25,6 +25,7 @@ #include "Resource/MSGSTRINGID.h" #include "Utility/Cipher/LocalEncryptedName.h" #include "Utility/Cipher/CryptName.h" +#include "Utility/Cipher/Obfuscate.h" #include #include #include @@ -143,15 +144,7 @@ void CUIAdventureGuide::OnCreate(int width, int height) { this->background->Move(0, 0); { CUIStaticImage* background = this->background; - background->SetImage(std::string([]() { - constexpr char bytes[] = { - '\x49', '\x74', '\xA3', '\x83', '\x2B', '\x55', '\x0A', '\x7E', '\x4F', '\x3F', '\xA3', '\xB5', '\x56', '\x21', '\x93', '\xF2', '\xED', '\xAD', '\x06', - '\x17', '\x9F', '\xEE', '\xBD', '\xD6', '\xCE', '\xAE', '\x0A', '\x1D', '\x8E', '\xC7', '\xAD', '\xD4', '\xD6', '\xBC', '\x16', '\x10', '\x8F', '\xFE', - '\xE1', '\xD1', '\xE4', '\xAB', '\x63'}; - constexpr EncryptedSource<43> source(bytes); - thread_local EncryptedName<43, 0xB3CF9BEB7963DB89ULL> name(source); - return name.Text(); - }())); + background->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\bg_guide.bmp", 0xB3CF9BEB7963DB89ULL))); } this->AddChild(this->background); @@ -160,31 +153,7 @@ void CUIAdventureGuide::OnCreate(int width, int height) { this->titleBar->Move(0, 0); { CUITitleBar* titleBar = this->titleBar; - titleBar->SetImages(std::string([]() { - constexpr char bytes[] = { - '\x23', '\xF8', '\xD5', '\xA7', '\xD7', '\x4F', '\x1E', '\xD2', '\x25', '\xB3', '\xD5', '\x91', '\xAA', '\x3B', '\x87', '\x7D', '\x82', '\x24', '\x7C', - '\x3E', '\x48', '\xE8', '\xB5', '\x6B', '\x86', '\x25', '\x73', '\x3C', '\x74', '\xE4', '\x87', '\x6B', '\x8A', '\x23', '\x79', '\x38', '\x75', '\xE0', - '\xA9', '\x40', '\x8F', '\x32', '\x73', '\x29', '\x39', '\xE3', '\xB6', '\x6F', '\xE3'}; - constexpr EncryptedSource<49> source(bytes); - thread_local EncryptedName<49, 0x1FDB81175D1557E3ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x7F', '\x2A', '\xE7', '\x87', '\x93', '\xED', '\x3E', '\x2E', '\x79', '\x61', '\xE7', '\xB1', '\xEE', '\x99', '\xA7', '\x81', '\xDE', '\xF6', '\x4E', - '\x1E', '\x0C', '\x4A', '\x95', '\x97', '\xDA', '\xF7', '\x41', '\x1C', '\x30', '\x46', '\xA7', '\x97', '\xD6', '\xF1', '\x4B', '\x18', '\x31', '\x42', - '\x89', '\xBC', '\xD2', '\xEC', '\x43', '\x53', '\x31', '\x4E', '\x8B', '\xE3'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0xE3FB23537D2785BFULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x5F', '\x56', '\x81', '\x37', '\x39', '\xA5', '\x62', '\x7A', '\x59', '\x1D', '\x81', '\x01', '\x44', '\xD1', '\xFB', '\xD5', '\xFE', '\x8A', '\x28', - '\xAE', '\xA6', '\x02', '\xC9', '\xC3', '\xFA', '\x8B', '\x27', '\xAC', '\x9A', '\x0E', '\xFB', '\xC3', '\xF6', '\x8D', '\x2D', '\xA8', '\x9B', '\x0A', - '\xD5', '\xE8', '\xED', '\x90', '\x26', '\xA5', '\x8D', '\x45', '\xC5', '\xDA', '\xEF', '\xF9'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0xB7A76BF9CD41F99FULL> name(source); - return name.Text(); - }())); + titleBar->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\titlebar_left.bmp", 0x1FDB81175D1557E3ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\titlebar_mid.bmp", 0xE3FB23537D2785BFULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\titlebar_right.bmp", 0xB7A76BF9CD41F99FULL))); } this->AddChild(this->titleBar); @@ -195,12 +164,7 @@ void CUIAdventureGuide::OnCreate(int width, int height) { title->SetFitText(0); title->SetAlign(0, 6); { - title->SetFont(std::string([]() { - constexpr char bytes[] = {'\x90', '\x32', '\x91', '\x0A', '\x60', '\x39'}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x732B390D63FD47D7ULL> name(source); - return name.Text(); - }())); + title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x732B390D63FD47D7ULL))); } title->SetFontHeight(12); title->SetBold(0); @@ -217,39 +181,7 @@ void CUIAdventureGuide::OnCreate(int width, int height) { menuButton->disabled = 0; menuButton->Invalidate(); { - menuButton->SetImages(std::string([]() { - constexpr char bytes[] = { - '\x47', '\x08', '\x85', '\x89', '\xD5', '\x47', '\xB6', '\xC4', '\x41', '\x43', '\x85', '\xBF', '\xA8', '\x33', '\x2F', '\x6B', '\xE6', '\xD4', '\x2C', - '\x10', '\x4A', '\xE0', '\x1D', '\x7D', '\xE2', '\xD5', '\x23', '\x12', '\x76', '\xEC', '\x2F', '\x7A', '\xFE', '\xD4', '\x1A', '\x11', '\x74', '\xFA', - '\x16', '\x56', '\xE8', '\xC1', '\x23', '\x5D', '\x77', '\xE4', '\x03', '\x09'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x097389157345A787ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xF7', '\xDA', '\x6D', '\x5D', '\x03', '\x6F', '\x56', '\x92', '\xF1', '\x91', '\x6D', '\x6B', '\x7E', '\x1B', '\xCF', '\x3D', '\x56', '\x06', '\xC4', - '\xC4', '\x9C', '\xC8', '\xFD', '\x2B', '\x52', '\x07', '\xCB', '\xC6', '\xA0', '\xC4', '\xCF', '\x2C', '\x4E', '\x06', '\xF2', '\xC5', '\xA2', '\xD2', - '\xF6', '\x00', '\x58', '\x1B', '\x83', '\xC5', '\xAE', '\xD1', '\x93'}; - constexpr EncryptedSource<47> source(bytes); - thread_local EncryptedName<47, 0x5F93A1C3A7AD7537ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xDB', '\x66', '\x01', '\x15', '\x11', '\xB3', '\xCA', '\xAC', '\xDD', '\x2D', '\x01', '\x23', '\x6C', '\xC7', '\x53', '\x03', '\x7A', '\xBA', '\xA8', - '\x8C', '\x8E', '\x14', '\x61', '\x15', '\x7E', '\xBB', '\xA7', '\x8E', '\xB2', '\x18', '\x53', '\x12', '\x62', '\xBA', '\x9E', '\x8D', '\xB0', '\x0E', - '\x6A', '\x3E', '\x74', '\xA7', '\xEF', '\x8D', '\xBC', '\x0D', '\x0F'}; - constexpr EncryptedSource<47> source(bytes); - thread_local EncryptedName<47, 0x610F7DD1EFC1C91BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x49', '\xC4', '\x29', '\x65', '\x8B', '\x91', '\x5C', '\x08', '\x4F', '\x8F', '\x29', '\x53', '\xF6', '\xE5', '\xC5', '\xA7', '\xE8', '\x18', '\x80', - '\xFC', '\x14', '\x36', '\xF7', '\xB1', '\xEC', '\x19', '\x8F', '\xFE', '\x28', '\x3A', '\xC5', '\xB6', '\xF0', '\x18', '\xB6', '\xFD', '\x2A', '\x2C', - '\xFC', '\x9A', '\xE6', '\x0D', '\x8F', '\xB1', '\x29', '\x32', '\xE9', '\xC5'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0xC5995F4B9FE96B89ULL> name(source); - return name.Text(); - }())); + menuButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_base_off.bmp", 0x097389157345A787ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_base_on.bmp", 0x5F93A1C3A7AD7537ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_base_on.bmp", 0x610F7DD1EFC1C91BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_base_off.bmp", 0xC5995F4B9FE96B89ULL))); } this->titleBar->AddChild(menuButton); @@ -260,39 +192,7 @@ void CUIAdventureGuide::OnCreate(int width, int height) { closeButton->disabled = 0; closeButton->Invalidate(); { - closeButton->SetImages(std::string([]() { - constexpr char bytes[] = { - '\xE9', '\x60', '\xE9', '\xFD', '\x23', '\xE7', '\x32', '\xA6', '\xEF', '\x2B', '\xE9', '\xCB', '\x5E', '\x93', '\xAB', '\x09', '\x48', '\xBC', '\x40', - '\x64', '\xBC', '\x40', '\x99', '\x1F', '\x4C', '\xBD', '\x4F', '\x66', '\x80', '\x4C', '\xAB', '\x18', '\x50', '\xBC', '\x76', '\x64', '\x8F', '\x46', - '\x84', '\x0E', '\x76', '\xA0', '\x4F', '\x61', '\xCD', '\x4B', '\x9A', '\x1B', '\x29'}; - constexpr EncryptedSource<49> source(bytes); - thread_local EncryptedName<49, 0x6BF729E30729CF29ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xE7', '\x3C', '\xBF', '\xF5', '\x9B', '\xD1', '\xF2', '\xF0', '\xE1', '\x77', '\xBF', '\xC3', '\xE6', '\xA5', '\x6B', '\x5F', '\x46', '\xE0', '\x16', - '\x6C', '\x04', '\x76', '\x59', '\x49', '\x42', '\xE1', '\x19', '\x6E', '\x38', '\x7A', '\x6B', '\x4E', '\x5E', '\xE0', '\x20', '\x6C', '\x37', '\x70', - '\x44', '\x58', '\x78', '\xFC', '\x11', '\x21', '\x39', '\x72', '\x47', '\x3D'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x3D371F5B0F7F9327ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x3D', '\x6E', '\xB3', '\xB9', '\xE7', '\x9F', '\xD8', '\xD2', '\x3B', '\x25', '\xB3', '\x8F', '\x9A', '\xEB', '\x41', '\x7D', '\x9C', '\xB2', '\x1A', - '\x20', '\x78', '\x38', '\x73', '\x6B', '\x98', '\xB3', '\x15', '\x22', '\x44', '\x34', '\x41', '\x6C', '\x84', '\xB2', '\x2C', '\x20', '\x4B', '\x3E', - '\x6E', '\x7A', '\xA2', '\xAE', '\x1D', '\x6D', '\x45', '\x3C', '\x6D', '\x1F'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x1F1D51274373C1FDULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x53', '\x34', '\xE5', '\x23', '\xE5', '\xE3', '\x68', '\x90', '\x55', '\x7F', '\xE5', '\x15', '\x98', '\x97', '\xF1', '\x3F', '\xF2', '\xE8', '\x4C', - '\xBA', '\x7A', '\x44', '\xC3', '\x29', '\xF6', '\xE9', '\x43', '\xB8', '\x46', '\x48', '\xF1', '\x2E', '\xEA', '\xE8', '\x7A', '\xBA', '\x49', '\x42', - '\xDE', '\x38', '\xCC', '\xF4', '\x43', '\xBF', '\x0B', '\x4F', '\xC0', '\x2D', '\x93'}; - constexpr EncryptedSource<49> source(bytes); - thread_local EncryptedName<49, 0x5DAD2D25D9259B93ULL> name(source); - return name.Text(); - }())); + closeButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_close_off.bmp", 0x6BF729E30729CF29ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_close_on.bmp", 0x3D371F5B0F7F9327ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_close_on.bmp", 0x1F1D51274373C1FDULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_close_off.bmp", 0x5DAD2D25D9259B93ULL))); } this->titleBar->SetSecondButton(closeButton); @@ -309,12 +209,7 @@ void CUIAdventureGuide::OnCreate(int width, int height) { this->titleText->SetAlign(6, 6); { CUIStaticText* titleText = this->titleText; - titleText->SetFont(std::string([]() { - constexpr char bytes[] = {'\xF0', '\x14', '\x91', '\xD6', '\x5A', '\x2D'}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x9D8F2D37BFFD61B7ULL> name(source); - return name.Text(); - }())); + titleText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x9D8F2D37BFFD61B7ULL))); } this->titleText->SetFontHeight(14); this->titleText->SetBold(1); @@ -349,39 +244,7 @@ void CUIAdventureGuide::OnCreate(int width, int height) { this->tabs->SetOnSelect([this](AdventureGuide::CUITab* tab) { this->OnSelectTab(tab); }); { CUIListBox* tabs = this->tabs; - tabs->SetImages(std::string([]() { - constexpr char bytes[] = { - '\xB5', '\xCA', '\xA1', '\x23', '\x8D', '\xC7', '\x1A', '\xB4', '\xB3', '\x81', '\xA1', '\x15', '\xF0', '\xB3', '\x83', '\x38', '\x11', '\x13', '\x04', - '\xB7', '\x39', '\x7C', '\xAD', '\x1C', '\x32', '\x10', '\x08', '\xBD', '\x28', '\x55', '\xAB', '\x18', '\x17', '\x3A', '\x03', '\xAD', '\x23', '\x56', - '\xB1', '\x16', '\x07', '\x08', '\x00', '\xB5', '\x63', '\x6B', '\xB2', '\x09', '\x75'}; - constexpr EncryptedSource<49> source(bytes); - thread_local EncryptedName<49, 0x79DF094DD9616575ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xC7', '\x72', '\xB7', '\x99', '\xA3', '\xFB', '\x0E', '\xDC', '\xC1', '\x39', '\xB7', '\xAF', '\xDE', '\x8F', '\x97', '\x50', '\x63', '\xAB', '\x12', - '\x0D', '\x17', '\x40', '\xB9', '\x74', '\x40', '\xA8', '\x1E', '\x07', '\x06', '\x69', '\xBF', '\x70', '\x65', '\x82', '\x15', '\x17', '\x0D', '\x6A', - '\xBB', '\x63', '\x62', '\xAE', '\x04', '\x4D', '\x01', '\x58', '\xBB', '\x11'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x11CB35636377DD07ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xF7', '\x52', '\xB5', '\xAF', '\xF5', '\x0F', '\x90', '\x8A', '\xF1', '\x19', '\xB5', '\x99', '\x88', '\x7B', '\x09', '\x06', '\x53', '\x8B', '\x10', - '\x3B', '\x41', '\xB4', '\x27', '\x22', '\x70', '\x88', '\x1C', '\x31', '\x50', '\x9D', '\x21', '\x26', '\x55', '\xA2', '\x17', '\x21', '\x5B', '\x9E', - '\x3A', '\x31', '\x52', '\x8F', '\x5B', '\x37', '\x58', '\xB1', '\x55'}; - constexpr EncryptedSource<47> source(bytes); - thread_local EncryptedName<47, 0x4755C1355575FD37ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xB9', '\x02', '\x47', '\x89', '\xB3', '\x21', '\x26', '\x56', '\xBF', '\x49', '\x47', '\xBF', '\xCE', '\x55', '\xBF', '\xDA', '\x1D', '\xDB', '\xE2', - '\x1D', '\x07', '\x9A', '\x91', '\xFE', '\x3E', '\xD8', '\xEE', '\x17', '\x16', '\xB3', '\x97', '\xFA', '\x1B', '\xF2', '\xE5', '\x07', '\x1D', '\xB0', - '\x8D', '\xF4', '\x0B', '\xC0', '\xE6', '\x1F', '\x5D', '\x8D', '\x8E', '\xEB', '\x79'}; - constexpr EncryptedSource<49> source(bytes); - thread_local EncryptedName<49, 0x9BE3EF737387AD79ULL> name(source); - return name.Text(); - }())); + tabs->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\tab_btn_normal.bmp", 0x79DF094DD9616575ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\tab_btn_press.bmp", 0x11CB35636377DD07ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\tab_btn_over.bmp", 0x4755C1355575FD37ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\tab_btn_normal.bmp", 0x9BE3EF737387AD79ULL))); } this->tabs->itemWidth = 98; @@ -393,63 +256,15 @@ void CUIAdventureGuide::OnCreate(int width, int height) { this->tabs->scrollBar->step = 20; { CUIListBox* tabs = this->tabs; - tabs->SetScrollBarButtonImages(std::string([]() { - constexpr char bytes[] = { - '\xA9', '\x2A', '\x9F', '\xDF', '\x77', '\xB9', '\xAE', '\x74', '\xAF', '\x61', '\x9F', '\xE9', '\x0A', '\xCD', '\x37', '\xF8', '\x0D', '\xF3', '\x3A', - '\x4B', '\xC3', '\x02', '\x19', '\xDC', '\x2E', '\xF0', '\x36', '\x41', '\xD2', '\x2B', '\x18', '\xDA', '\x1B', '\xEA', '\x33', '\x49', '\xE8', '\x16', - '\x19', '\xCB', '\x06', '\xF2', '\x00', '\x50', '\xC7', '\x59', '\x09', '\xD4', '\x19', '\x85'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0xB96B77B7255F8569ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x9F', '\xD6', '\x61', '\x1D', '\x31', '\x03', '\x9A', '\x4A', '\x99', '\x9D', '\x61', '\x2B', '\x4C', '\x77', '\x03', '\xC6', '\x3B', '\x0F', '\xC4', - '\x89', '\x85', '\xB8', '\x2D', '\xE2', '\x18', '\x0C', '\xC8', '\x83', '\x94', '\x91', '\x2C', '\xE4', '\x2D', '\x16', '\xCD', '\x8B', '\xAE', '\xAC', - '\x2D', '\xF5', '\x30', '\x0E', '\xFE', '\x83', '\x9E', '\xBA', '\x31', '\xA9', '\x3D', '\x14', '\xD1', '\xE7'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x875FCDF1E7A1795FULL> name(source); - return name.Text(); - }())); + tabs->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_up.bmp", 0xB96B77B7255F8569ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_down.bmp", 0x875FCDF1E7A1795FULL))); } { CUIListBox* tabs = this->tabs; - tabs->SetScrollBarBackground(std::string([]() { - constexpr char bytes[] = { - '\x9B', '\x32', '\xE5', '\xD7', '\x47', '\xE3', '\xE8', '\xCA', '\x9D', '\x79', '\xE5', '\xE1', '\x3A', '\x97', '\x71', '\x46', '\x3F', '\xEB', '\x40', - '\x43', '\xF3', '\x58', '\x5F', '\x62', '\x1C', '\xE8', '\x4C', '\x49', '\xE2', '\x71', '\x5E', '\x64', '\x29', '\xF2', '\x49', '\x41', '\xD8', '\x4F', - '\x4A', '\x58', '\x36', '\xF4', '\x41', '\x03', '\xE5', '\x40', '\x5D', '\x07'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x072D2D872D259D5BULL> name(source); - return name.Text(); - }())); + tabs->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_bg_mid.bmp", 0x072D2D872D259D5BULL))); } { CUIListBox* tabs = this->tabs; - tabs->SetScrollBarThumbImages(std::string([]() { - constexpr char bytes[] = { - '\x4D', '\xBC', '\xBF', '\xE9', '\xA1', '\x2B', '\xF0', '\x38', '\x4B', '\xF7', '\xBF', '\xDF', '\xDC', '\x5F', '\x69', '\xB4', '\xE9', '\x65', '\x1A', - '\x7D', '\x15', '\x90', '\x47', '\x90', '\xCA', '\x66', '\x16', '\x77', '\x04', '\xB9', '\x46', '\x96', '\xFF', '\x7C', '\x13', '\x7F', '\x3E', '\x91', - '\x5D', '\x80', '\xE0', '\x71', '\x20', '\x66', '\x11', '\xCB', '\x57', '\x98', '\xFD', '\x13'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0xF535E561137F138DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x11', '\xCE', '\x31', '\x73', '\xAF', '\x9F', '\x20', '\x1E', '\x17', '\x85', '\x31', '\x45', '\xD2', '\xEB', '\xB9', '\x92', '\xB5', '\x17', '\x94', - '\xE7', '\x1B', '\x24', '\x97', '\xB6', '\x96', '\x14', '\x98', '\xED', '\x0A', '\x0D', '\x96', '\xB0', '\xA3', '\x0E', '\x9D', '\xE5', '\x30', '\x25', - '\x8D', '\xA6', '\xBC', '\x03', '\xAE', '\xE4', '\x06', '\x35', '\xCB', '\xB1', '\xBC', '\x11', '\xF1'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0xD3E5516F89F161D1ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x97', '\x40', '\x11', '\x4F', '\x6B', '\xB1', '\x38', '\x92', '\x91', '\x0B', '\x11', '\x79', '\x16', '\xC5', '\xA1', '\x1E', '\x33', '\x99', '\xB4', - '\xDB', '\xDF', '\x0A', '\x8F', '\x3A', '\x10', '\x9A', '\xB8', '\xD1', '\xCE', '\x23', '\x8E', '\x3C', '\x25', '\x80', '\xBD', '\xD9', '\xF4', '\x0B', - '\x95', '\x2A', '\x3A', '\x8D', '\x8E', '\xD1', '\xC4', '\x08', '\x93', '\x71', '\x35', '\x82', '\xA1', '\xB5'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x5FFD7FABB5D1EF57ULL> name(source); - return name.Text(); - }())); + tabs->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_up.bmp", 0xF535E561137F138DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_mid.bmp", 0xD3E5516F89F161D1ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_down.bmp", 0x5FFD7FABB5D1EF57ULL))); } this->AddChild(this->tabs); } @@ -1128,13 +943,8 @@ void CUICharacterInfo::OnCreate(int width, int height) { this->level->SetText(""); this->level->SetFitText(0); this->level->SetAlign(0, 0); - this->level->SetFont(std::string([]() { - constexpr char bytes[] = {'\xFE', '\x70', '\x1B', '\x26', '\x66', '\x1D'}; - constexpr EncryptedSource<6> source(bytes); - // GLOBAL: gl_25126 - thread_local EncryptedName<6, 0x758F1D0B4F7705B9ULL> levelFont(source); - return levelFont.Text(); - }())); + // GLOBAL: gl_25126 + this->level->SetFont(std::string(OBFUSCATE_SOURCE_TEXT_NAMED("Gulim", 0x758F1D0B4F7705B9ULL, levelFont))); this->level->SetFontHeight(12); this->level->SetBold(0); this->level->SetColor(0); @@ -1148,13 +958,8 @@ void CUICharacterInfo::OnCreate(int width, int height) { this->jobLevel->SetText(""); this->jobLevel->SetFitText(0); this->jobLevel->SetAlign(0, 0); - this->jobLevel->SetFont(std::string([]() { - constexpr char bytes[] = {'\x70', '\x32', '\xC1', '\x50', '\xD2', '\xE5'}; - constexpr EncryptedSource<6> source(bytes); - // GLOBAL: gl_25127 - thread_local EncryptedName<6, 0x17A9E5BF39AD4737ULL> jobLevelFont(source); - return jobLevelFont.Text(); - }())); + // GLOBAL: gl_25127 + this->jobLevel->SetFont(std::string(OBFUSCATE_SOURCE_TEXT_NAMED("Gulim", 0x17A9E5BF39AD4737ULL, jobLevelFont))); this->jobLevel->SetFontHeight(12); this->jobLevel->SetBold(0); this->jobLevel->SetColor(0); @@ -1168,13 +973,8 @@ void CUICharacterInfo::OnCreate(int width, int height) { this->name->SetText(""); this->name->SetFitText(1); this->name->SetAlign(0, 0); - this->name->SetFont(std::string([]() { - constexpr char bytes[] = {'\x20', '\xDE', '\xFD', '\xCC', '\xCC', '\x3F'}; - constexpr EncryptedSource<6> source(bytes); - // GLOBAL: gl_25128 - thread_local EncryptedName<6, 0x13E33FA1A591AB67ULL> nameFont(source); - return nameFont.Text(); - }())); + // GLOBAL: gl_25128 + this->name->SetFont(std::string(OBFUSCATE_SOURCE_TEXT_NAMED("Gulim", 0x13E33FA1A591AB67ULL, nameFont))); this->name->SetFontHeight(12); this->name->SetBold(0); this->name->SetColor(0); @@ -1200,12 +1000,7 @@ void CUIItemInfo::OnCreate(int width, int height) { this->nameText->SetAlign(0, 0); { CUIStaticText* name = this->nameText; - name->SetFont(std::string([]() { - constexpr char bytes[] = {'\xA2', '\x0E', '\x5F', '\x40', '\x20', '\x65'}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x192D654D29337BE5ULL> name(source); - return name.Text(); - }())); + name->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x192D654D29337BE5ULL))); } this->nameText->SetFontHeight(12); this->nameText->SetBold(1); @@ -1220,12 +1015,7 @@ void CUIItemInfo::OnCreate(int width, int height) { description->Move(165, 26); description->SetTextOffset(0, 6); { - description->SetFont(std::string([]() { - constexpr char bytes[] = {'\xA4', '\xA0', '\x3F', '\x9E', '\xC8', '\x07'}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xB3E307A5F753D5E3ULL> name(source); - return name.Text(); - }())); + description->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xB3E307A5F753D5E3ULL))); } description->SetFontHeight(12); description->SetBold(0); @@ -1237,61 +1027,13 @@ void CUIItemInfo::OnCreate(int width, int height) { description->SetScrollBarSize(8, 97); description->SetScrollStep(20); { - description->SetScrollBarButtonImages(std::string([]() { - constexpr char bytes[] = { - '\x99', '\x28', '\xC3', '\x87', '\x95', '\x05', '\xE2', '\x16', '\x9F', '\x63', '\xC3', '\xB1', '\xE8', '\x71', '\x7B', '\x9A', '\x3D', '\xF1', '\x66', - '\x13', '\x21', '\xBE', '\x55', '\xBE', '\x1E', '\xF2', '\x6A', '\x19', '\x30', '\x97', '\x54', '\xB8', '\x2B', '\xE8', '\x6F', '\x11', '\x0A', '\xAA', - '\x55', '\xA9', '\x36', '\xF0', '\x5C', '\x08', '\x25', '\xE5', '\x45', '\xB6', '\x29', '\x87'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0xDB27CB557D038759ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x3F', '\x4C', '\x9D', '\xF9', '\x67', '\x61', '\x66', '\xF2', '\x39', '\x07', '\x9D', '\xCF', '\x1A', '\x15', '\xFF', '\x7E', '\x9B', '\x95', '\x38', - '\x6D', '\xD3', '\xDA', '\xD1', '\x5A', '\xB8', '\x96', '\x34', '\x67', '\xC2', '\xF3', '\xD0', '\x5C', '\x8D', '\x8C', '\x31', '\x6F', '\xF8', '\xCE', - '\xD1', '\x4D', '\x90', '\x94', '\x02', '\x67', '\xC8', '\xD8', '\xCD', '\x11', '\x9D', '\x8E', '\x2D', '\x03'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x3FA3AFA7035DE3FFULL> name(source); - return name.Text(); - }())); + description->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_up.bmp", 0xDB27CB557D038759ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_down.bmp", 0x3FA3AFA7035DE3FFULL))); } { - description->SetScrollBarBackground(std::string([]() { - constexpr char bytes[] = { - '\x2F', '\x82', '\x97', '\xF7', '\x05', '\x1F', '\x26', '\x4A', '\x29', '\xC9', '\x97', '\xC1', '\x78', '\x6B', '\xBF', '\xC6', '\x8B', '\x5B', '\x32', - '\x63', '\xB1', '\xA4', '\x91', '\xE2', '\xA8', '\x58', '\x3E', '\x69', '\xA0', '\x8D', '\x90', '\xE4', '\x9D', '\x42', '\x3B', '\x61', '\x9A', '\xB3', - '\x84', '\xD8', '\x82', '\x44', '\x33', '\x23', '\xA7', '\xBC', '\x93', '\x87'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x87E3D1C50D572DEFULL> name(source); - return name.Text(); - }())); + description->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_bg_mid.bmp", 0x87E3D1C50D572DEFULL))); } { - description->SetScrollBarThumbImages(std::string([]() { - constexpr char bytes[] = { - '\x4D', '\x12', '\x7B', '\x99', '\x77', '\xF7', '\x7E', '\x9C', '\x4B', '\x59', '\x7B', '\xAF', '\x0A', '\x83', '\xE7', '\x10', '\xE9', '\xCB', '\xDE', - '\x0D', '\xC3', '\x4C', '\xC9', '\x34', '\xCA', '\xC8', '\xD2', '\x07', '\xD2', '\x65', '\xC8', '\x32', '\xFF', '\xD2', '\xD7', '\x0F', '\xE8', '\x4D', - '\xD3', '\x24', '\xE0', '\xDF', '\xE4', '\x16', '\xC7', '\x17', '\xD9', '\x3C', '\xFD', '\xBD'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x51BB39B763BBBD8DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xFD', '\xEE', '\x4B', '\x33', '\x39', '\xD5', '\x00', '\x60', '\xFB', '\xA5', '\x4B', '\x05', '\x44', '\xA1', '\x99', '\xEC', '\x59', '\x37', '\xEE', - '\xA7', '\x8D', '\x6E', '\xB7', '\xC8', '\x7A', '\x34', '\xE2', '\xAD', '\x9C', '\x47', '\xB6', '\xCE', '\x4F', '\x2E', '\xE7', '\xA5', '\xA6', '\x6F', - '\xAD', '\xD8', '\x50', '\x23', '\xD4', '\xA4', '\x90', '\x7F', '\xEB', '\xCF', '\x50', '\x31', '\x8B'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0xADC51BF9C98B413DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x91', '\x5A', '\x0F', '\xB3', '\x3F', '\xD9', '\x44', '\x12', '\x97', '\x11', '\x0F', '\x85', '\x42', '\xAD', '\xDD', '\x9E', '\x35', '\x83', '\xAA', - '\x27', '\x8B', '\x62', '\xF3', '\xBA', '\x16', '\x80', '\xA6', '\x2D', '\x9A', '\x4B', '\xF2', '\xBC', '\x23', '\x9A', '\xA3', '\x25', '\xA0', '\x63', - '\xE9', '\xAA', '\x3C', '\x97', '\x90', '\x2D', '\x90', '\x60', '\xEF', '\xF1', '\x33', '\x98', '\xBF', '\x49'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0xDF8117FF49CFF551ULL> name(source); - return name.Text(); - }())); + description->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_up.bmp", 0x51BB39B763BBBD8DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_mid.bmp", 0xADC51BF9C98B413DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_down.bmp", 0xDF8117FF49CFF551ULL))); } this->AddChild(description); @@ -1301,12 +1043,7 @@ void CUIItemInfo::OnCreate(int width, int height) { options->Move(338, 26); options->SetTextOffset(0, 8); { - options->SetFont(std::string([]() { - constexpr char bytes[] = {'\x0E', '\x18', '\x13', '\x8A', '\xAA', '\x01'}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x114901C7E37F6D49ULL> name(source); - return name.Text(); - }())); + options->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x114901C7E37F6D49ULL))); } options->SetFontHeight(12); options->SetBold(0); @@ -1318,61 +1055,13 @@ void CUIItemInfo::OnCreate(int width, int height) { options->SetScrollBarSize(8, 90); options->SetScrollStep(20); { - options->SetScrollBarButtonImages(std::string([]() { - constexpr char bytes[] = { - '\xB1', '\x2C', '\xAB', '\xF1', '\xD1', '\xC1', '\x98', '\xB0', '\xB7', '\x67', '\xAB', '\xC7', '\xAC', '\xB5', '\x01', '\x3C', '\x15', '\xF5', '\x0E', - '\x65', '\x65', '\x7A', '\x2F', '\x18', '\x36', '\xF6', '\x02', '\x6F', '\x74', '\x53', '\x2E', '\x1E', '\x03', '\xEC', '\x07', '\x67', '\x4E', '\x6E', - '\x2F', '\x0F', '\x1E', '\xF4', '\x34', '\x7E', '\x61', '\x21', '\x3F', '\x10', '\x01', '\x83'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x7D5D0F110B6B8371ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x9B', '\x18', '\xA1', '\xA3', '\x8F', '\x9F', '\xD0', '\x3A', '\x9D', '\x53', '\xA1', '\x95', '\xF2', '\xEB', '\x49', '\xB6', '\x3F', '\xC1', '\x04', - '\x37', '\x3B', '\x24', '\x67', '\x92', '\x1C', '\xC2', '\x08', '\x3D', '\x2A', '\x0D', '\x66', '\x94', '\x29', '\xD8', '\x0D', '\x35', '\x10', '\x30', - '\x67', '\x85', '\x34', '\xC0', '\x3E', '\x3D', '\x20', '\x26', '\x7B', '\xD9', '\x39', '\xDA', '\x11', '\x59'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0xF715514F5961B75BULL> name(source); - return name.Text(); - }())); + options->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_up.bmp", 0x7D5D0F110B6B8371ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_down.bmp", 0xF715514F5961B75BULL))); } { - options->SetScrollBarBackground(std::string([]() { - constexpr char bytes[] = { - '\x59', '\x96', '\x3D', '\xCB', '\x95', '\x75', '\x54', '\x8C', '\x5F', '\xDD', '\x3D', '\xFD', '\xE8', '\x01', '\xCD', '\x00', '\xFD', '\x4F', '\x98', - '\x5F', '\x21', '\xCE', '\xE3', '\x24', '\xDE', '\x4C', '\x94', '\x55', '\x30', '\xE7', '\xE2', '\x22', '\xEB', '\x56', '\x91', '\x5D', '\x0A', '\xD9', - '\xF6', '\x1E', '\xF4', '\x50', '\x99', '\x1F', '\x37', '\xD6', '\xE1', '\x41'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x4191BB5531FD3999ULL> name(source); - return name.Text(); - }())); + options->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_bg_mid.bmp", 0x4191BB5531FD3999ULL))); } { - options->SetScrollBarThumbImages(std::string([]() { - constexpr char bytes[] = { - '\x13', '\x96', '\xAF', '\xEB', '\x69', '\xD1', '\x58', '\x7C', '\x15', '\xDD', '\xAF', '\xDD', '\x14', '\xA5', '\xC1', '\xF0', '\xB7', '\x4F', '\x0A', - '\x7F', '\xDD', '\x6A', '\xEF', '\xD4', '\x94', '\x4C', '\x06', '\x75', '\xCC', '\x43', '\xEE', '\xD2', '\xA1', '\x56', '\x03', '\x7D', '\xF6', '\x6B', - '\xF5', '\xC4', '\xBE', '\x5B', '\x30', '\x64', '\xD9', '\x31', '\xFF', '\xDC', '\xA3', '\x39'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0xB19D1FA9116F39D3ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x6F', '\xA6', '\xC9', '\x1D', '\x07', '\x07', '\xAC', '\x58', '\x69', '\xED', '\xC9', '\x2B', '\x7A', '\x73', '\x35', '\xD4', '\xCB', '\x7F', '\x6C', - '\x89', '\xB3', '\xBC', '\x1B', '\xF0', '\xE8', '\x7C', '\x60', '\x83', '\xA2', '\x95', '\x1A', '\xF6', '\xDD', '\x66', '\x65', '\x8B', '\x98', '\xBD', - '\x01', '\xE0', '\xC2', '\x6B', '\x56', '\x8A', '\xAE', '\xAD', '\x47', '\xF7', '\xC2', '\x79', '\x09'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0x9569C9C7E70909AFULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xAD', '\x10', '\x15', '\xDD', '\x2B', '\x87', '\x62', '\x1A', '\xAB', '\x5B', '\x15', '\xEB', '\x56', '\xF3', '\xFB', '\x96', '\x09', '\xC9', '\xB0', - '\x49', '\x9F', '\x3C', '\xD5', '\xB2', '\x2A', '\xCA', '\xBC', '\x43', '\x8E', '\x15', '\xD4', '\xB4', '\x1F', '\xD0', '\xB9', '\x4B', '\xB4', '\x3D', - '\xCF', '\xA2', '\x00', '\xDD', '\x8A', '\x43', '\x84', '\x3E', '\xC9', '\xF9', '\x0F', '\xD2', '\xA5', '\x27'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0xD7A749EB27D5BF6DULL> name(source); - return name.Text(); - }())); + options->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_up.bmp", 0xB19D1FA9116F39D3ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_mid.bmp", 0x9569C9C7E70909AFULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_down.bmp", 0xD7A749EB27D5BF6DULL))); } this->AddChild(options); @@ -1382,12 +1071,7 @@ void CUIItemInfo::OnCreate(int width, int height) { sources->Move(480, 5); sources->SetTextOffset(0, 6); { - sources->SetFont(std::string([]() { - constexpr char bytes[] = {'\x1E', '\x78', '\xA7', '\xC6', '\x10', '\x63'}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xB195637DAFCB0D59ULL> name(source); - return name.Text(); - }())); + sources->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xB195637DAFCB0D59ULL))); } sources->SetFontHeight(12); sources->SetBold(0); @@ -1399,61 +1083,13 @@ void CUIItemInfo::OnCreate(int width, int height) { sources->SetScrollBarSize(8, 118); sources->SetScrollStep(20); { - sources->SetScrollBarButtonImages(std::string([]() { - constexpr char bytes[] = { - '\x95', '\x94', '\x41', '\x0D', '\x8D', '\x25', '\x68', '\x60', '\x93', '\xDF', '\x41', '\x3B', '\xF0', '\x51', '\xF1', '\xEC', '\x31', '\x4D', '\xE4', - '\x99', '\x39', '\x9E', '\xDF', '\xC8', '\x12', '\x4E', '\xE8', '\x93', '\x28', '\xB7', '\xDE', '\xCE', '\x27', '\x54', '\xED', '\x9B', '\x12', '\x8A', - '\xDF', '\xDF', '\x3A', '\x4C', '\xDE', '\x82', '\x3D', '\xC5', '\xCF', '\xC0', '\x25', '\x3B'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0xADADEB4DF7813B55ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x01', '\x36', '\x0D', '\x1F', '\x41', '\xE3', '\x80', '\x14', '\x07', '\x7D', '\x0D', '\x29', '\x3C', '\x97', '\x19', '\x98', '\xA5', '\xEF', '\xA8', - '\x8B', '\xF5', '\x58', '\x37', '\xBC', '\x86', '\xEC', '\xA4', '\x81', '\xE4', '\x71', '\x36', '\xBA', '\xB3', '\xF6', '\xA1', '\x89', '\xDE', '\x4C', - '\x37', '\xAB', '\xAE', '\xEE', '\x92', '\x81', '\xEE', '\x5A', '\x2B', '\xF7', '\xA3', '\xF4', '\xBD', '\xE5'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0xD9452D81E5CD99C1ULL> name(source); - return name.Text(); - }())); + sources->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_up.bmp", 0xADADEB4DF7813B55ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_down.bmp", 0xD9452D81E5CD99C1ULL))); } { - sources->SetScrollBarBackground(std::string([]() { - constexpr char bytes[] = { - '\x4D', '\x2E', '\xD1', '\x09', '\x73', '\x67', '\xAC', '\x30', '\x4B', '\x65', '\xD1', '\x3F', '\x0E', '\x13', '\x35', '\xBC', '\xE9', '\xF7', '\x74', - '\x9D', '\xC7', '\xDC', '\x1B', '\x98', '\xCA', '\xF4', '\x78', '\x97', '\xD6', '\xF5', '\x1A', '\x9E', '\xFF', '\xEE', '\x7D', '\x9F', '\xEC', '\xCB', - '\x0E', '\xA2', '\xE0', '\xE8', '\x75', '\xDD', '\xD1', '\xC4', '\x19', '\xFD'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0xFD69A9B3F311818DULL> name(source); - return name.Text(); - }())); + sources->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_bg_mid.bmp", 0xFD69A9B3F311818DULL))); } { - sources->SetScrollBarThumbImages(std::string([]() { - constexpr char bytes[] = { - '\xEB', '\xB0', '\x29', '\x51', '\x01', '\x31', '\xE8', '\xB2', '\xED', '\xFB', '\x29', '\x67', '\x7C', '\x45', '\x71', '\x3E', '\x4F', '\x69', '\x8C', - '\xC5', '\xB5', '\x8A', '\x5F', '\x1A', '\x6C', '\x6A', '\x80', '\xCF', '\xA4', '\xA3', '\x5E', '\x1C', '\x59', '\x70', '\x85', '\xC7', '\x9E', '\x8B', - '\x45', '\x0A', '\x46', '\x7D', '\xB6', '\xDE', '\xB1', '\xD1', '\x4F', '\x12', '\x5B', '\x1F'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x7F2DFFC1ABE91F2BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xCD', '\xCC', '\x4D', '\xF3', '\x85', '\x9D', '\x4A', '\x14', '\xCB', '\x87', '\x4D', '\xC5', '\xF8', '\xE9', '\xD3', '\x98', '\x69', '\x15', '\xE8', - '\x67', '\x31', '\x26', '\xFD', '\xBC', '\x4A', '\x16', '\xE4', '\x6D', '\x20', '\x0F', '\xFC', '\xBA', '\x7F', '\x0C', '\xE1', '\x65', '\x1A', '\x27', - '\xE7', '\xAC', '\x60', '\x01', '\xD2', '\x64', '\x2C', '\x37', '\xA1', '\xBB', '\x60', '\x13', '\x8D'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0xD98F5345098D630DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x53', '\xDA', '\x1F', '\x15', '\x8D', '\xED', '\xCA', '\x56', '\x55', '\x91', '\x1F', '\x23', '\xF0', '\x99', '\x53', '\xDA', '\xF7', '\x03', '\xBA', - '\x81', '\x39', '\x56', '\x7D', '\xFE', '\xD4', '\x00', '\xB6', '\x8B', '\x28', '\x7F', '\x7C', '\xF8', '\xE1', '\x1A', '\xB3', '\x83', '\x12', '\x57', - '\x67', '\xEE', '\xFE', '\x17', '\x80', '\x8B', '\x22', '\x54', '\x61', '\xB5', '\xF1', '\x18', '\xAF', '\xEF'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x9B0F234DEFDF7593ULL> name(source); - return name.Text(); - }())); + sources->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_up.bmp", 0x7F2DFFC1ABE91F2BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_mid.bmp", 0xD98F5345098D630DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_down.bmp", 0x9B0F234DEFDF7593ULL))); } this->AddChild(sources); } @@ -1469,12 +1105,7 @@ void CUIMonsterInfo::OnCreate(int width, int height) { this->nameText->SetAlign(0, 0); { CUIStaticText* name = this->nameText; - name->SetFont(std::string([]() { - constexpr char bytes[] = {'\x82', '\x58', '\x47', '\x56', '\xE4', '\x1D'}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xEF6D1D893F2B2DC5ULL> name(source); - return name.Text(); - }())); + name->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xEF6D1D893F2B2DC5ULL))); } this->nameText->SetFontHeight(12); this->nameText->SetBold(0); @@ -1489,12 +1120,7 @@ void CUIMonsterInfo::OnCreate(int width, int height) { reinterpret_cast(this->detailsViewer)->SetTextOffset(0, 6); { CUITextViewer* details = reinterpret_cast(this->detailsViewer); - details->SetFont(std::string([]() { - constexpr char bytes[] = {'\x1C', '\x26', '\x33', '\xB4', '\xEA', '\x9F'}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x39A39F87DD5F535BULL> name(source); - return name.Text(); - }())); + details->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x39A39F87DD5F535BULL))); } reinterpret_cast(this->detailsViewer)->SetFontHeight(12); reinterpret_cast(this->detailsViewer)->SetBold(0); @@ -1507,63 +1133,15 @@ void CUIMonsterInfo::OnCreate(int width, int height) { reinterpret_cast(this->detailsViewer)->SetScrollStep(20); { CUITextViewer* details = reinterpret_cast(this->detailsViewer); - details->SetScrollBarButtonImages(std::string([]() { - constexpr char bytes[] = { - '\xB7', '\x38', '\x47', '\xE7', '\xE3', '\x9D', '\x24', '\xA2', '\xB1', '\x73', '\x47', '\xD1', '\x9E', '\xE9', '\xBD', '\x2E', '\x13', '\xE1', '\xE2', - '\x73', '\x57', '\x26', '\x93', '\x0A', '\x30', '\xE2', '\xEE', '\x79', '\x46', '\x0F', '\x92', '\x0C', '\x05', '\xF8', '\xEB', '\x71', '\x7C', '\x32', - '\x93', '\x1D', '\x18', '\xE0', '\xD8', '\x68', '\x53', '\x7D', '\x83', '\x02', '\x07', '\x97'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x6FE153231D879777ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x0D', '\xAC', '\x0D', '\x81', '\x57', '\xF5', '\xD6', '\xFE', '\x0B', '\xE7', '\x0D', '\xB7', '\x2A', '\x81', '\x4F', '\x72', '\xA9', '\x75', '\xA8', - '\x15', '\xE3', '\x4E', '\x61', '\x56', '\x8A', '\x76', '\xA4', '\x1F', '\xF2', '\x67', '\x60', '\x50', '\xBF', '\x6C', '\xA1', '\x17', '\xC8', '\x5A', - '\x61', '\x41', '\xA2', '\x74', '\x92', '\x1F', '\xF8', '\x4C', '\x7D', '\x1D', '\xAF', '\x6E', '\xBD', '\x7B'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x33133B977BCD03CDULL> name(source); - return name.Text(); - }())); + details->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_up.bmp", 0x6FE153231D879777ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_down.bmp", 0x33133B977BCD03CDULL))); } { CUITextViewer* details = reinterpret_cast(this->detailsViewer); - details->SetScrollBarBackground(std::string([]() { - constexpr char bytes[] = { - '\x11', '\xF4', '\x57', '\x1F', '\xF9', '\x49', '\x2E', '\xE2', '\x17', '\xBF', '\x57', '\x29', '\x84', '\x3D', '\xB7', '\x6E', '\xB5', '\x2D', '\xF2', - '\x8B', '\x4D', '\xF2', '\x99', '\x4A', '\x96', '\x2E', '\xFE', '\x81', '\x5C', '\xDB', '\x98', '\x4C', '\xA3', '\x34', '\xFB', '\x89', '\x66', '\xE5', - '\x8C', '\x70', '\xBC', '\x32', '\xF3', '\xCB', '\x5B', '\xEA', '\x9B', '\x2F'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x2FEB8739E5975BD1ULL> name(source); - return name.Text(); - }())); + details->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_bg_mid.bmp", 0x2FEB8739E5975BD1ULL))); } { CUITextViewer* details = reinterpret_cast(this->detailsViewer); - details->SetScrollBarThumbImages(std::string([]() { - constexpr char bytes[] = { - '\xB5', '\x94', '\xC3', '\xD5', '\xD3', '\x0F', '\x64', '\xA6', '\xB3', '\xDF', '\xC3', '\xE3', '\xAE', '\x7B', '\xFD', '\x2A', '\x11', '\x4D', '\x66', - '\x41', '\x67', '\xB4', '\xD3', '\x0E', '\x32', '\x4E', '\x6A', '\x4B', '\x76', '\x9D', '\xD2', '\x08', '\x07', '\x54', '\x6F', '\x43', '\x4C', '\xB5', - '\xC9', '\x1E', '\x18', '\x59', '\x5C', '\x5A', '\x63', '\xEF', '\xC3', '\x06', '\x05', '\x3B'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x6BA1C1132F033B75ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xEF', '\x78', '\x85', '\xDF', '\xF9', '\x65', '\xE8', '\x6C', '\xE9', '\x33', '\x85', '\xE9', '\x84', '\x11', '\x71', '\xE0', '\x4B', '\xA1', '\x20', - '\x4B', '\x4D', '\xDE', '\x5F', '\xC4', '\x68', '\xA2', '\x2C', '\x41', '\x5C', '\xF7', '\x5E', '\xC2', '\x5D', '\xB8', '\x29', '\x49', '\x66', '\xDF', - '\x45', '\xD4', '\x42', '\xB5', '\x1A', '\x48', '\x50', '\xCF', '\x03', '\xC3', '\x42', '\xA7', '\x45'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0xA12DAB392545D72FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xD7', '\xFE', '\x21', '\xBB', '\xF9', '\x0D', '\x46', '\x4A', '\xD1', '\xB5', '\x21', '\x8D', '\x84', '\x79', '\xDF', '\xC6', '\x73', '\x27', '\x84', - '\x2F', '\x4D', '\xB6', '\xF1', '\xE2', '\x50', '\x24', '\x88', '\x25', '\x5C', '\x9F', '\xF0', '\xE4', '\x65', '\x3E', '\x8D', '\x2D', '\x66', '\xB7', - '\xEB', '\xF2', '\x7A', '\x33', '\xBE', '\x25', '\x56', '\xB4', '\xED', '\xA9', '\x75', '\x3C', '\x91', '\x41'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x8783C33941E15117ULL> name(source); - return name.Text(); - }())); + details->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_up.bmp", 0x6BA1C1132F033B75ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_mid.bmp", 0xA12DAB392545D72FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_down.bmp", 0x8783C33941E15117ULL))); } this->AddChild(this->detailsViewer); @@ -1573,12 +1151,7 @@ void CUIMonsterInfo::OnCreate(int width, int height) { reinterpret_cast(this->valuesViewer)->SetTextOffset(0, 6); { CUITextViewer* values = reinterpret_cast(this->valuesViewer); - values->SetFont(std::string([]() { - constexpr char bytes[] = {'\xD8', '\xA8', '\xEF', '\x76', '\x1A', '\x45'}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x271B45771F83DD9FULL> name(source); - return name.Text(); - }())); + values->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x271B45771F83DD9FULL))); } reinterpret_cast(this->valuesViewer)->SetFontHeight(12); reinterpret_cast(this->valuesViewer)->SetBold(0); @@ -1591,63 +1164,15 @@ void CUIMonsterInfo::OnCreate(int width, int height) { reinterpret_cast(this->valuesViewer)->SetScrollStep(20); { CUITextViewer* values = reinterpret_cast(this->valuesViewer); - values->SetScrollBarButtonImages(std::string([]() { - constexpr char bytes[] = { - '\x4F', '\xF6', '\xA1', '\x11', '\x75', '\xD7', '\xC6', '\x0A', '\x49', '\xBD', '\xA1', '\x27', '\x08', '\xA3', '\x5F', '\x86', '\xEB', '\x2F', '\x04', - '\x85', '\xC1', '\x6C', '\x71', '\xA2', '\xC8', '\x2C', '\x08', '\x8F', '\xD0', '\x45', '\x70', '\xA4', '\xFD', '\x36', '\x0D', '\x87', '\xEA', '\x78', - '\x71', '\xB5', '\xE0', '\x2E', '\x3E', '\x9E', '\xC5', '\x37', '\x61', '\xAA', '\xFF', '\x59'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0xC70319B5EB61598FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x17', '\x3A', '\xDF', '\x61', '\x91', '\x8B', '\x42', '\xC6', '\x11', '\x71', '\xDF', '\x57', '\xEC', '\xFF', '\xDB', '\x4A', '\xB3', '\xE3', '\x7A', - '\xF5', '\x25', '\x30', '\xF5', '\x6E', '\x90', '\xE0', '\x76', '\xFF', '\x34', '\x19', '\xF4', '\x68', '\xA5', '\xFA', '\x73', '\xF7', '\x0E', '\x24', - '\xF5', '\x79', '\xB8', '\xE2', '\x40', '\xFF', '\x3E', '\x32', '\xE9', '\x25', '\xB5', '\xF8', '\x6F', '\x9B'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x0B8745519B1F95D7ULL> name(source); - return name.Text(); - }())); + values->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_up.bmp", 0xC70319B5EB61598FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_down.bmp", 0x0B8745519B1F95D7ULL))); } { CUITextViewer* values = reinterpret_cast(this->valuesViewer); - values->SetScrollBarBackground(std::string([]() { - constexpr char bytes[] = { - '\x15', '\x96', '\xEB', '\xB3', '\x27', '\x69', '\x52', '\x68', '\x13', '\xDD', '\xEB', '\x85', '\x5A', '\x1D', '\xCB', '\xE4', '\xB1', '\x4F', '\x4E', - '\x27', '\x93', '\xD2', '\xE5', '\xC0', '\x92', '\x4C', '\x42', '\x2D', '\x82', '\xFB', '\xE4', '\xC6', '\xA7', '\x56', '\x47', '\x25', '\xB8', '\xC5', - '\xF0', '\xFA', '\xB8', '\x50', '\x4F', '\x67', '\x85', '\xCA', '\xE7', '\xA5'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0xA597A7E7492B39D5ULL> name(source); - return name.Text(); - }())); + values->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_bg_mid.bmp", 0xA597A7E7492B39D5ULL))); } { CUITextViewer* values = reinterpret_cast(this->valuesViewer); - values->SetScrollBarThumbImages(std::string([]() { - constexpr char bytes[] = { - '\xB3', '\x40', '\x7B', '\x2B', '\x15', '\x2D', '\x6E', '\x32', '\xB5', '\x0B', '\x7B', '\x1D', '\x68', '\x59', '\xF7', '\xBE', '\x17', '\x99', '\xDE', - '\xBF', '\xA1', '\x96', '\xD9', '\x9A', '\x34', '\x9A', '\xD2', '\xB5', '\xB0', '\xBF', '\xD8', '\x9C', '\x01', '\x80', '\xD7', '\xBD', '\x8A', '\x97', - '\xC3', '\x8A', '\x1E', '\x8D', '\xE4', '\xA4', '\xA5', '\xCD', '\xC9', '\x92', '\x03', '\xEF'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0xFFABE3D5D1BBEF73ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xCF', '\xE0', '\x85', '\x55', '\x5D', '\x8B', '\x5C', '\xCE', '\xC9', '\xAB', '\x85', '\x63', '\x20', '\xFF', '\xC5', '\x42', '\x6B', '\x39', '\x20', - '\xC1', '\xE9', '\x30', '\xEB', '\x66', '\x48', '\x3A', '\x2C', '\xCB', '\xF8', '\x19', '\xEA', '\x60', '\x7D', '\x20', '\x29', '\xC3', '\xC2', '\x31', - '\xF1', '\x76', '\x62', '\x2D', '\x1A', '\xC2', '\xF4', '\x21', '\xB7', '\x61', '\x62', '\x3F', '\x45'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0x0399459DAF454F0FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x6B', '\x00', '\x4D', '\x77', '\x73', '\x43', '\x62', '\x18', '\x6D', '\x4B', '\x4D', '\x41', '\x0E', '\x37', '\xFB', '\x94', '\xCF', '\xD9', '\xE8', - '\xE3', '\xC7', '\xF8', '\xD5', '\xB0', '\xEC', '\xDA', '\xE4', '\xE9', '\xD6', '\xD1', '\xD4', '\xB6', '\xD9', '\xC0', '\xE1', '\xE1', '\xEC', '\xF9', - '\xCF', '\xA0', '\xC6', '\xCD', '\xD2', '\xE9', '\xDC', '\xFA', '\xC9', '\xFB', '\xC9', '\xC2', '\xFD', '\x8D'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0xD5A78DB38D8DAFABULL> name(source); - return name.Text(); - }())); + values->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_up.bmp", 0xFFABE3D5D1BBEF73ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_mid.bmp", 0x0399459DAF454F0FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_down.bmp", 0xD5A78DB38D8DAFABULL))); } this->AddChild(this->valuesViewer); } @@ -1660,15 +1185,7 @@ void CUIQuestInfo::OnCreate(int width, int height) { this->stampImage->Move(250, 10); { CUIStaticImage* stamp = static_cast(this->stampImage); - stamp->SetImage(std::string([]() { - constexpr char bytes[] = { - '\x31', '\x68', '\xF9', '\xF3', '\xD7', '\xB7', '\x8A', '\x3C', '\x37', '\x23', '\xF9', '\xC5', '\xAA', '\xC3', '\x13', '\xB0', '\x95', '\xB1', '\x5C', - '\x67', '\x63', '\x0C', '\x3D', '\x94', '\xB6', '\xB2', '\x50', '\x6D', '\x72', '\x25', '\x3C', '\x85', '\x90', '\xAA', '\x49', '\x56', '\x74', '\x16', - '\x22', '\x81', '\x9D', '\xA2', '\x4D', '\x6C', '\x73', '\x57', '\x2D', '\x9C', '\x81', '\xC7'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0xF14F79170939C7F1ULL> name(source); - return name.Text(); - }())); + stamp->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\stamp_completed.bmp", 0xF14F79170939C7F1ULL))); } this->AddChild(this->stampImage); @@ -1678,12 +1195,7 @@ void CUIQuestInfo::OnCreate(int width, int height) { reinterpret_cast(this->titleViewer)->SetTextOffset(0, 0); { CUITextViewer* title = reinterpret_cast(this->titleViewer); - title->SetFont(std::string([]() { - constexpr char bytes[] = {'\x32', '\xB8', '\x81', '\x34', '\x06', '\x65'}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x35E5656B5DEDCD75ULL> name(source); - return name.Text(); - }())); + title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x35E5656B5DEDCD75ULL))); } reinterpret_cast(this->titleViewer)->SetFontHeight(12); reinterpret_cast(this->titleViewer)->SetBold(1); @@ -1696,63 +1208,15 @@ void CUIQuestInfo::OnCreate(int width, int height) { reinterpret_cast(this->titleViewer)->SetScrollStep(20); { CUITextViewer* title = reinterpret_cast(this->titleViewer); - title->SetScrollBarButtonImages(std::string([]() { - constexpr char bytes[] = { - '\x3D', '\x16', '\x7B', '\xDB', '\x5F', '\x33', '\x84', '\x84', '\x3B', '\x5D', '\x7B', '\xED', '\x22', '\x47', '\x1D', '\x08', '\x99', '\xCF', '\xDE', - '\x4F', '\xEB', '\x88', '\x33', '\x2C', '\xBA', '\xCC', '\xD2', '\x45', '\xFA', '\xA1', '\x32', '\x2A', '\x8F', '\xD6', '\xD7', '\x4D', '\xC0', '\x9C', - '\x33', '\x3B', '\x92', '\xCE', '\xE4', '\x54', '\xEF', '\xD3', '\x23', '\x24', '\x8D', '\xB9'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x4941FD9F21BBB9FDULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x3D', '\x78', '\x8D', '\x53', '\x75', '\x41', '\x52', '\x2A', '\x3B', '\x33', '\x8D', '\x65', '\x08', '\x35', '\xCB', '\xA6', '\x99', '\xA1', '\x28', - '\xC7', '\xC1', '\xFA', '\xE5', '\x82', '\xBA', '\xA2', '\x24', '\xCD', '\xD0', '\xD3', '\xE4', '\x84', '\x8F', '\xB8', '\x21', '\xC5', '\xEA', '\xEE', - '\xE5', '\x95', '\x92', '\xA0', '\x12', '\xCD', '\xDA', '\xF8', '\xF9', '\xC9', '\x9F', '\xBA', '\x3D', '\xA9'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0xE7978FB5A94DD7FDULL> name(source); - return name.Text(); - }())); + title->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_up.bmp", 0x4941FD9F21BBB9FDULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_down.bmp", 0xE7978FB5A94DD7FDULL))); } { CUITextViewer* title = reinterpret_cast(this->titleViewer); - title->SetScrollBarBackground(std::string([]() { - constexpr char bytes[] = { - '\xAB', '\x16', '\x07', '\xF5', '\xA7', '\x41', '\x38', '\x7A', '\xAD', '\x5D', '\x07', '\xC3', '\xDA', '\x35', '\xA1', '\xF6', '\x0F', '\xCF', '\xA2', - '\x61', '\x13', '\xFA', '\x8F', '\xD2', '\x2C', '\xCC', '\xAE', '\x6B', '\x02', '\xD3', '\x8E', '\xD4', '\x19', '\xD6', '\xAB', '\x63', '\x38', '\xED', - '\x9A', '\xE8', '\x06', '\xD0', '\xA3', '\x21', '\x05', '\xE2', '\x8D', '\xB7'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0xB7FD8F670FC7B96BULL> name(source); - return name.Text(); - }())); + title->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_bg_mid.bmp", 0xB7FD8F670FC7B96BULL))); } { CUITextViewer* title = reinterpret_cast(this->titleViewer); - title->SetScrollBarThumbImages(std::string([]() { - constexpr char bytes[] = { - '\x4F', '\x36', '\x2B', '\xF7', '\x75', '\xB1', '\x3A', '\xF4', '\x49', '\x7D', '\x2B', '\xC1', '\x08', '\xC5', '\xA3', '\x78', '\xEB', '\xEF', '\x8E', - '\x63', '\xC1', '\x0A', '\x8D', '\x5C', '\xC8', '\xEC', '\x82', '\x69', '\xD0', '\x23', '\x8C', '\x5A', '\xFD', '\xF6', '\x87', '\x61', '\xEA', '\x0B', - '\x97', '\x4C', '\xE2', '\xFB', '\xB4', '\x78', '\xC5', '\x51', '\x9D', '\x54', '\xFF', '\x99'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x39FF7FB50DEB998FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x57', '\x5E', '\x21', '\x27', '\x11', '\x5D', '\x2C', '\xE2', '\x51', '\x15', '\x21', '\x11', '\x6C', '\x29', '\xB5', '\x6E', '\xF3', '\x87', '\x84', - '\xB3', '\xA5', '\xE6', '\x9B', '\x4A', '\xD0', '\x84', '\x88', '\xB9', '\xB4', '\xCF', '\x9A', '\x4C', '\xE5', '\x9E', '\x8D', '\xB1', '\x8E', '\xE7', - '\x81', '\x5A', '\xFA', '\x93', '\xBE', '\xB0', '\xB8', '\xF7', '\xC7', '\x4D', '\xFA', '\x81', '\xE1'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0x2FE993D1DDE1F197ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x0D', '\x5E', '\x59', '\x4F', '\x4D', '\x95', '\xC2', '\x60', '\x0B', '\x15', '\x59', '\x79', '\x30', '\xE1', '\x5B', '\xEC', '\xA9', '\x87', '\xFC', - '\xDB', '\xF9', '\x2E', '\x75', '\xC8', '\x8A', '\x84', '\xF0', '\xD1', '\xE8', '\x07', '\x74', '\xCE', '\xBF', '\x9E', '\xF5', '\xD9', '\xD2', '\x2F', - '\x6F', '\xD8', '\xA0', '\x93', '\xC6', '\xD1', '\xE2', '\x2C', '\x69', '\x83', '\xAF', '\x9C', '\xE9', '\xB5'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0xAD075B8DB599F1CDULL> name(source); - return name.Text(); - }())); + title->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_up.bmp", 0x39FF7FB50DEB998FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_mid.bmp", 0x2FE993D1DDE1F197ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_down.bmp", 0xAD075B8DB599F1CDULL))); } this->AddChild(this->titleViewer); @@ -1762,12 +1226,7 @@ void CUIQuestInfo::OnCreate(int width, int height) { reinterpret_cast(this->linesViewer)->SetTextOffset(0, 6); { CUITextViewer* lines = reinterpret_cast(this->linesViewer); - lines->SetFont(std::string([]() { - constexpr char bytes[] = {'\x38', '\x60', '\xE1', '\x78', '\x5A', '\x0F'}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x2F8B0F37118D157FULL> name(source); - return name.Text(); - }())); + lines->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x2F8B0F37118D157FULL))); } reinterpret_cast(this->linesViewer)->SetFontHeight(12); reinterpret_cast(this->linesViewer)->SetBold(1); @@ -1780,63 +1239,15 @@ void CUIQuestInfo::OnCreate(int width, int height) { reinterpret_cast(this->linesViewer)->SetScrollStep(20); { CUITextViewer* lines = reinterpret_cast(this->linesViewer); - lines->SetScrollBarButtonImages(std::string([]() { - constexpr char bytes[] = { - '\xBF', '\x7A', '\x6F', '\xA1', '\xAB', '\x7F', '\xD0', '\xC2', '\xB9', '\x31', '\x6F', '\x97', '\xD6', '\x0B', '\x49', '\x4E', '\x1B', '\xA3', '\xCA', - '\x35', '\x1F', '\xC4', '\x67', '\x6A', '\x38', '\xA0', '\xC6', '\x3F', '\x0E', '\xED', '\x66', '\x6C', '\x0D', '\xBA', '\xC3', '\x37', '\x34', '\xD0', - '\x67', '\x7D', '\x10', '\xA2', '\xF0', '\x2E', '\x1B', '\x9F', '\x77', '\x62', '\x0F', '\xD5'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x0F15B16B5BAFD57FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xE3', '\x5E', '\x17', '\xED', '\x17', '\x87', '\x26', '\xB0', '\xE5', '\x15', '\x17', '\xDB', '\x6A', '\xF3', '\xBF', '\x3C', '\x47', '\x87', '\xB2', - '\x79', '\xA3', '\x3C', '\x91', '\x18', '\x64', '\x84', '\xBE', '\x73', '\xB2', '\x15', '\x90', '\x1E', '\x51', '\x9E', '\xBB', '\x7B', '\x88', '\x28', - '\x91', '\x0F', '\x4C', '\x86', '\x88', '\x73', '\xB8', '\x3E', '\x8D', '\x53', '\x41', '\x9C', '\xA7', '\x17'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x7DE349D717D7F123ULL> name(source); - return name.Text(); - }())); + lines->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_up.bmp", 0x0F15B16B5BAFD57FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_down.bmp", 0x7DE349D717D7F123ULL))); } { CUITextViewer* lines = reinterpret_cast(this->linesViewer); - lines->SetScrollBarBackground(std::string([]() { - constexpr char bytes[] = { - '\x21', '\x36', '\x47', '\xB5', '\x41', '\x0D', '\xE4', '\xBE', '\x27', '\x7D', '\x47', '\x83', '\x3C', '\x79', '\x7D', '\x32', '\x85', '\xEF', '\xE2', - '\x21', '\xF5', '\xB6', '\x53', '\x16', '\xA6', '\xEC', '\xEE', '\x2B', '\xE4', '\x9F', '\x52', '\x10', '\x93', '\xF6', '\xEB', '\x23', '\xDE', '\xA1', - '\x46', '\x2C', '\x8C', '\xF0', '\xE3', '\x61', '\xE3', '\xAE', '\x51', '\x73'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x7321C3814F8799E1ULL> name(source); - return name.Text(); - }())); + lines->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_bg_mid.bmp", 0x7321C3814F8799E1ULL))); } { CUITextViewer* lines = reinterpret_cast(this->linesViewer); - lines->SetScrollBarThumbImages(std::string([]() { - constexpr char bytes[] = { - '\x8F', '\x0E', '\x0F', '\xCF', '\xA3', '\x19', '\x84', '\xB4', '\x89', '\x45', '\x0F', '\xF9', '\xDE', '\x6D', '\x1D', '\x38', '\x2B', '\xD7', '\xAA', - '\x5B', '\x17', '\xA2', '\x33', '\x1C', '\x08', '\xD4', '\xA6', '\x51', '\x06', '\x8B', '\x32', '\x1A', '\x3D', '\xCE', '\xA3', '\x59', '\x3C', '\xA3', - '\x29', '\x0C', '\x22', '\xC3', '\x90', '\x40', '\x13', '\xF9', '\x23', '\x14', '\x3F', '\xA1'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x7941D76335CFA14FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xA3', '\x5A', '\x21', '\x85', '\xFB', '\xEB', '\xD8', '\x06', '\xA5', '\x11', '\x21', '\xB3', '\x86', '\x9F', '\x41', '\x8A', '\x07', '\x83', '\x84', - '\x11', '\x4F', '\x50', '\x6F', '\xAE', '\x24', '\x80', '\x88', '\x1B', '\x5E', '\x79', '\x6E', '\xA8', '\x11', '\x9A', '\x8D', '\x13', '\x64', '\x51', - '\x75', '\xBE', '\x0E', '\x97', '\xBE', '\x12', '\x52', '\x41', '\x33', '\xA9', '\x0E', '\x85', '\xE1'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0xCB1D253B7FE1F563ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x09', '\xBC', '\x39', '\x89', '\x39', '\x17', '\xD0', '\xBC', '\x0F', '\xF7', '\x39', '\xBF', '\x44', '\x63', '\x49', '\x30', '\xAD', '\x65', '\x9C', - '\x1D', '\x8D', '\xAC', '\x67', '\x14', '\x8E', '\x66', '\x90', '\x17', '\x9C', '\x85', '\x66', '\x12', '\xBB', '\x7C', '\x95', '\x1F', '\xA6', '\xAD', - '\x7D', '\x04', '\xA4', '\x71', '\xA6', '\x17', '\x96', '\xAE', '\x7B', '\x5F', '\xAB', '\x7E', '\x89', '\x73'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x7115D9F973F913C9ULL> name(source); - return name.Text(); - }())); + lines->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_up.bmp", 0x7941D76335CFA14FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_mid.bmp", 0xCB1D253B7FE1F563ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_down.bmp", 0x7115D9F973F913C9ULL))); } this->AddChild(this->linesViewer); @@ -1846,12 +1257,7 @@ void CUIQuestInfo::OnCreate(int width, int height) { reinterpret_cast(this->statusViewer)->SetTextOffset(0, 0); { CUITextViewer* status = reinterpret_cast(this->statusViewer); - status->SetFont(std::string([]() { - constexpr char bytes[] = {'\x5A', '\x70', '\xFF', '\x40', '\x1C', '\x23'}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xE55723712993051DULL> name(source); - return name.Text(); - }())); + status->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xE55723712993051DULL))); } reinterpret_cast(this->statusViewer)->SetFontHeight(12); reinterpret_cast(this->statusViewer)->SetBold(0); @@ -2047,39 +1453,7 @@ CUIListBox* CUITab::CreateSubTabList() { CUIListBox* list = this->subTabs; { - list->SetImages(std::string([]() { - constexpr char bytes[] = { - '\xC3', '\x9A', '\x59', '\x4F', '\x73', '\xB9', '\x0C', '\xA6', '\xC5', '\xD1', '\x59', '\x79', '\x0E', '\xCD', '\x95', '\x2A', '\x67', '\x43', '\xFC', - '\xDB', '\xC7', '\x02', '\xBB', '\x0E', '\x44', '\x40', '\xF0', '\xD1', '\xD6', '\x2B', '\xBD', '\x0A', '\x61', '\x6A', '\xFB', '\xC1', '\xDD', '\x28', - '\xBA', '\x1E', '\x61', '\x6A', '\xF7', '\xDA', '\xC1', '\x1A', '\xA8', '\x07', '\x2D', '\x57', '\xF4', '\xC5', '\xB3'}; - constexpr EncryptedSource<53> source(bytes); - thread_local EncryptedName<53, 0x6BC977B3B5993503ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x33', '\xBA', '\xB3', '\xD9', '\xB9', '\x39', '\x36', '\x78', '\x35', '\xF1', '\xB3', '\xEF', '\xC4', '\x4D', '\xAF', '\xF4', '\x97', '\x63', '\x16', - '\x4D', '\x0D', '\x82', '\x81', '\xD0', '\xB4', '\x60', '\x1A', '\x47', '\x1C', '\xAB', '\x87', '\xD4', '\x91', '\x4A', '\x11', '\x57', '\x17', '\xA8', - '\x80', '\xC0', '\x91', '\x4A', '\x03', '\x51', '\x1C', '\x84', '\x80', '\x9B', '\x91', '\x78', '\x03', '\x23'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0xB5F3F779237315F3ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x11', '\x76', '\xD9', '\xE3', '\x6B', '\x95', '\x18', '\xAA', '\x17', '\x3D', '\xD9', '\xD5', '\x16', '\xE1', '\x81', '\x26', '\xB5', '\xAF', '\x7C', - '\x77', '\xDF', '\x2E', '\xAF', '\x02', '\x96', '\xAC', '\x70', '\x7D', '\xCE', '\x07', '\xA9', '\x06', '\xB3', '\x86', '\x7B', '\x6D', '\xC5', '\x04', - '\xAE', '\x12', '\xB3', '\x86', '\x76', '\x6F', '\xCE', '\x29', '\xF3', '\x05', '\xBC', '\xA9', '\x19'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0x67DD5BAB1919D9D1ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x97', '\x50', '\x2D', '\xB5', '\x6F', '\x7B', '\x12', '\x78', '\x91', '\x1B', '\x2D', '\x83', '\x12', '\x0F', '\x8B', '\xF4', '\x33', '\x89', '\x88', - '\x21', '\xDB', '\xC0', '\xA5', '\xD0', '\x10', '\x8A', '\x84', '\x2B', '\xCA', '\xE9', '\xA3', '\xD4', '\x35', '\xA0', '\x8F', '\x3B', '\xC1', '\xEA', - '\xA4', '\xC0', '\x35', '\xA0', '\x83', '\x20', '\xDD', '\xD8', '\xB6', '\xD9', '\x79', '\x9D', '\x80', '\x3F', '\xAF'}; - constexpr EncryptedSource<53> source(bytes); - thread_local EncryptedName<53, 0xB5D7B5AF4FEDFF57ULL> name(source); - return name.Text(); - }())); + list->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\tab_btn_sub_normal.bmp", 0x6BC977B3B5993503ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\tab_btn_sub_press.bmp", 0xB5F3F779237315F3ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\tab_btn_sub_over.bmp", 0x67DD5BAB1919D9D1ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\tab_btn_sub_normal.bmp", 0xB5D7B5AF4FEDFF57ULL))); } { @@ -2096,61 +1470,13 @@ CUIListBox* CUITab::CreateSubTabList() { this->subTabs->scrollBar->Move(89, 0); this->subTabs->scrollBar->step = 20; { - this->subTabs->scrollBar->SetButtonImages(std::string([]() { - constexpr char bytes[] = { - '\xB9', '\x58', '\xD5', '\xCF', '\x6D', '\x9F', '\x58', '\x56', '\xBF', '\x13', '\xD5', '\xF9', '\x10', '\xEB', '\xC1', '\xDA', '\x1D', '\x81', '\x70', - '\x5B', '\xD9', '\x24', '\xEF', '\xFE', '\x3E', '\x82', '\x7C', '\x51', '\xC8', '\x0D', '\xEE', '\xF8', '\x0B', '\x98', '\x79', '\x59', '\xF2', '\x30', - '\xEF', '\xE9', '\x16', '\x80', '\x4A', '\x40', '\xDD', '\x7F', '\xFF', '\xF6', '\x09', '\xF7'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x9B9D51AD3515F779ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x77', '\x9C', '\xE5', '\xF3', '\x7B', '\xFB', '\x40', '\xCE', '\x71', '\xD7', '\xE5', '\xC5', '\x06', '\x8F', '\xD9', '\x42', '\xD3', '\x45', '\x40', - '\x67', '\xCF', '\x40', '\xF7', '\x66', '\xF0', '\x46', '\x4C', '\x6D', '\xDE', '\x69', '\xF6', '\x60', '\xC5', '\x5C', '\x49', '\x65', '\xE4', '\x54', - '\xF7', '\x71', '\xD8', '\x44', '\x7A', '\x6D', '\xD4', '\x42', '\xEB', '\x2D', '\xD5', '\x5E', '\x55', '\x09'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x038535BB092533B7ULL> name(source); - return name.Text(); - }())); + this->subTabs->scrollBar->SetButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_up.bmp", 0x9B9D51AD3515F779ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_down.bmp", 0x038535BB092533B7ULL))); } { - this->subTabs->scrollBar->SetBackground(std::string([]() { - constexpr char bytes[] = { - '\x13', '\xD8', '\x27', '\x93', '\x97', '\x09', '\xEE', '\x36', '\x15', '\x93', '\x27', '\xA5', '\xEA', '\x7D', '\x77', '\xBA', '\xB7', '\x01', '\x82', - '\x07', '\x23', '\xB2', '\x59', '\x9E', '\x94', '\x02', '\x8E', '\x0D', '\x32', '\x9B', '\x58', '\x98', '\xA1', '\x18', '\x8B', '\x05', '\x08', '\xA5', - '\x4C', '\xA4', '\xBE', '\x1E', '\x83', '\x47', '\x35', '\xAA', '\x5B', '\xFB'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0xFB2BC75769E777D3ULL> name(source); - return name.Text(); - }())); + this->subTabs->scrollBar->SetBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_bg_mid.bmp", 0xFB2BC75769E777D3ULL))); } { - this->subTabs->scrollBar->SetThumbImages(std::string([]() { - constexpr char bytes[] = { - '\x51', '\x86', '\xB9', '\xB9', '\x1B', '\xC7', '\x60', '\xBC', '\x57', '\xCD', '\xB9', '\x8F', '\x66', '\xB3', '\xF9', '\x30', '\xF5', '\x5F', '\x1C', - '\x2D', '\xAF', '\x7C', '\xD7', '\x14', '\xD6', '\x5C', '\x10', '\x27', '\xBE', '\x55', '\xD6', '\x12', '\xE3', '\x46', '\x15', '\x2F', '\x84', '\x7D', - '\xCD', '\x04', '\xFC', '\x4B', '\x26', '\x36', '\xAB', '\x27', '\xC7', '\x1C', '\xE1', '\x29'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x71A509DB43792991ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xBD', '\xFC', '\x4F', '\x5B', '\x3F', '\x23', '\xAC', '\x10', '\xBB', '\xB7', '\x4F', '\x6D', '\x42', '\x57', '\x35', '\x9C', '\x19', '\x25', '\xEA', - '\xCF', '\x8B', '\x98', '\x1B', '\xB8', '\x3A', '\x26', '\xE6', '\xC5', '\x9A', '\xB1', '\x1A', '\xBE', '\x0F', '\x3C', '\xE3', '\xCD', '\xA0', '\x99', - '\x01', '\xA8', '\x10', '\x31', '\xD0', '\xCC', '\x96', '\x89', '\x47', '\xBF', '\x10', '\x23', '\x8F'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0xDD69EDFFA18F537DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xB3', '\x8E', '\x27', '\xBD', '\xEB', '\xB7', '\x7A', '\x46', '\xB5', '\xC5', '\x27', '\x8B', '\x96', '\xC3', '\xE3', '\xCA', '\x17', '\x57', '\x82', - '\x29', '\x5F', '\x0C', '\xCD', '\xEE', '\x34', '\x54', '\x8E', '\x23', '\x4E', '\x25', '\xCC', '\xE8', '\x01', '\x4E', '\x8B', '\x2B', '\x74', '\x0D', - '\xD7', '\xFE', '\x1E', '\x43', '\xB8', '\x23', '\x44', '\x0E', '\xD1', '\xA5', '\x11', '\x4C', '\x97', '\x47'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x8BBF792B47E72173ULL> name(source); - return name.Text(); - }())); + this->subTabs->scrollBar->SetThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_up.bmp", 0x71A509DB43792991ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_mid.bmp", 0xDD69EDFFA18F537DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_down.bmp", 0x8BBF792B47E72173ULL))); } this->AddChild(this->subTabs); @@ -2323,15 +1649,7 @@ void CUIIntro::OnCreate(int width, int height) { this->banner->SetSize(630, 216); this->banner->Move(0, 0); { - this->banner->SetImage(std::string([]() { - constexpr char bytes[] = { - '\xAD', '\x14', '\x55', '\xD7', '\x53', '\x35', '\xD2', '\x08', '\xAB', '\x5F', '\x55', '\xE1', '\x2E', '\x41', '\x4B', '\x84', '\x09', '\xCD', '\xF0', - '\x43', '\xE7', '\x8E', '\x65', '\xA0', '\x2A', '\xCE', '\xFC', '\x49', '\xF6', '\xA7', '\x75', '\xA2', '\x32', '\xD9', '\xF4', '\x43', '\xFD', '\x9E', - '\x65', '\xEB', '\x0F', '\xD6', '\xE5', '\x2D'}; - constexpr EncryptedSource<44> source(bytes); - thread_local EncryptedName<44, 0xC517FB932D95BB6DULL> name(source); - return name.Text(); - }())); + this->banner->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\bg_banner.bmp", 0xC517FB932D95BB6DULL))); } this->AddChild(this->banner); @@ -2350,39 +1668,7 @@ void CUIIntro::OnCreate(int width, int height) { this->contents->SetOnSelect([this](CUITabInfo* item, const Guide_Intro::Contents& contents) { this->OnSelectContents(item, contents); }); this->contents->SetBinder([this](CUITabInfo* item, const Guide_Intro::Contents& contents) { this->BindContents(item, contents); }); { - this->contents->SetImages(std::string([]() { - constexpr char bytes[] = { - '\x09', '\x5A', '\x9F', '\x71', '\x4F', '\x1B', '\x7E', '\xEE', '\x0F', '\x11', '\x9F', '\x47', '\x32', '\x6F', '\xE7', '\x62', '\xAD', '\x83', '\x3A', - '\xE5', '\xFB', '\xA0', '\xC9', '\x46', '\x8E', '\x80', '\x36', '\xEF', '\xEA', '\x89', '\xD7', '\x4A', '\xBA', '\x81', '\x00', '\xBA', '\xA1', '\xB7', - '\xD6', '\x53', '\xC9'}; - constexpr EncryptedSource<41> source(bytes); - thread_local EncryptedName<41, 0x23BBD58F8B5FF5C9ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x47', '\xBC', '\xAB', '\x85', '\xF9', '\xC7', '\xB4', '\xC6', '\x41', '\xF7', '\xAB', '\xB3', '\x84', '\xB3', '\x2D', '\x4A', '\xE3', '\x65', '\x0E', - '\x11', '\x4D', '\x7C', '\x03', '\x6E', '\xC0', '\x66', '\x02', '\x1B', '\x5C', '\x55', '\x1D', '\x62', '\xF4', '\x67', '\x34', '\x4E', '\x17', '\x6B', - '\x1C', '\x7B', '\x87'}; - constexpr EncryptedSource<41> source(bytes); - thread_local EncryptedName<41, 0x0B7109397F6B1387ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x65', '\x32', '\xAD', '\x03', '\xA3', '\xE9', '\xB2', '\xCE', '\x63', '\x79', '\xAD', '\x35', '\xDE', '\x9D', '\x2B', '\x42', '\xC1', '\xEB', '\x08', - '\x97', '\x17', '\x52', '\x05', '\x66', '\xE2', '\xE8', '\x04', '\x9D', '\x06', '\x7B', '\x1B', '\x6A', '\xD6', '\xE9', '\x32', '\xC8', '\x4D', '\x45', - '\x1A', '\x73', '\xA5'}; - constexpr EncryptedSource<41> source(bytes); - thread_local EncryptedName<41, 0x03772763F96D9DA5ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x5B', '\xF8', '\xC3', '\x63', '\xA7', '\xCB', '\xC0', '\xC8', '\x5D', '\xB3', '\xC3', '\x55', '\xDA', '\xBF', '\x59', '\x44', '\xFF', '\x21', '\x66', - '\xF7', '\x13', '\x70', '\x77', '\x60', '\xDC', '\x22', '\x6A', '\xFD', '\x02', '\x59', '\x69', '\x6C', '\xE8', '\x23', '\x5C', '\xA8', '\x49', '\x67', - '\x68', '\x75', '\x9B'}; - constexpr EncryptedSource<41> source(bytes); - thread_local EncryptedName<41, 0x050505679903579BULL> name(source); - return name.Text(); - }())); + this->contents->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_1.bmp", 0x23BBD58F8B5FF5C9ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_1.bmp", 0x0B7109397F6B1387ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_1.bmp", 0x03772763F96D9DA5ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_1.bmp", 0x050505679903579BULL))); } { CUIListBoxEx* contents = this->contents; @@ -2393,61 +1679,13 @@ void CUIIntro::OnCreate(int width, int height) { this->contents->scrollBar->Move(595, 0); this->contents->scrollBar->step = 44; { - this->contents->SetScrollBarButtonImages(std::string([]() { - constexpr char bytes[] = { - '\x21', '\xD4', '\x39', '\x2D', '\x15', '\xDD', '\xFC', '\x10', '\x27', '\x9F', '\x39', '\x1B', '\x68', '\xA9', '\x65', '\x9C', '\x85', '\x0D', '\x9C', - '\xB9', '\xA1', '\x66', '\x4B', '\xB8', '\xA6', '\x0E', '\x90', '\xB3', '\xB0', '\x4F', '\x4A', '\xBE', '\x93', '\x14', '\x95', '\xBB', '\x8A', '\x72', - '\x4B', '\xAF', '\x8E', '\x0C', '\xA6', '\xA2', '\xA5', '\x3D', '\x5B', '\xB0', '\x91', '\x7B'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0xDD3913D5D7F97BE1ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x67', '\x5A', '\xBF', '\xC3', '\xF1', '\x85', '\xEE', '\x72', '\x61', '\x11', '\xBF', '\xF5', '\x8C', '\xF1', '\x77', '\xFE', '\xC3', '\x83', '\x1A', - '\x57', '\x45', '\x3E', '\x59', '\xDA', '\xE0', '\x80', '\x16', '\x5D', '\x54', '\x17', '\x58', '\xDC', '\xD5', '\x9A', '\x13', '\x55', '\x6E', '\x2A', - '\x59', '\xCD', '\xC8', '\x82', '\x20', '\x5D', '\x5E', '\x3C', '\x45', '\x91', '\xC5', '\x98', '\x0F', '\x39'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0xBF2B4B31397FF5A7ULL> name(source); - return name.Text(); - }())); + this->contents->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_up.bmp", 0xDD3913D5D7F97BE1ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_down.bmp", 0xBF2B4B31397FF5A7ULL))); } { - this->contents->SetScrollBarBackground(std::string([]() { - constexpr char bytes[] = { - '\x7D', '\x12', '\x2D', '\xCD', '\x7B', '\x71', '\x2A', '\x4E', '\x7B', '\x59', '\x2D', '\xFB', '\x06', '\x05', '\xB3', '\xC2', '\xD9', '\xCB', '\x88', - '\x59', '\xCF', '\xCA', '\x9D', '\xE6', '\xFA', '\xC8', '\x84', '\x53', '\xDE', '\xE3', '\x9C', '\xE0', '\xCF', '\xD2', '\x81', '\x5B', '\xE4', '\xDD', - '\x88', '\xDC', '\xD0', '\xD4', '\x89', '\x19', '\xD9', '\xD2', '\x9F', '\x83'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x83EFBFBB37EDBDBDULL> name(source); - return name.Text(); - }())); + this->contents->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_bg_mid.bmp", 0x83EFBFBB37EDBDBDULL))); } { - this->contents->SetScrollBarThumbImages(std::string([]() { - constexpr char bytes[] = { - '\xBF', '\xBC', '\x1F', '\x2B', '\x45', '\xA9', '\xBC', '\x20', '\xB9', '\xF7', '\x1F', '\x1D', '\x38', '\xDD', '\x25', '\xAC', '\x1B', '\x65', '\xBA', - '\xBF', '\xF1', '\x12', '\x0B', '\x88', '\x38', '\x66', '\xB6', '\xB5', '\xE0', '\x3B', '\x0A', '\x8E', '\x0D', '\x7C', '\xB3', '\xBD', '\xDA', '\x13', - '\x11', '\x98', '\x12', '\x71', '\x80', '\xA4', '\xF5', '\x49', '\x1B', '\x80', '\x0F', '\x13'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0xED796785D1DF137FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xC9', '\x88', '\xEF', '\x41', '\x7D', '\x93', '\xB8', '\x14', '\xCF', '\xC3', '\xEF', '\x77', '\x00', '\xE7', '\x21', '\x98', '\x6D', '\x51', '\x4A', - '\xD5', '\xC9', '\x28', '\x0F', '\xBC', '\x4E', '\x52', '\x46', '\xDF', '\xD8', '\x01', '\x0E', '\xBA', '\x7B', '\x48', '\x43', '\xD7', '\xE2', '\x29', - '\x15', '\xAC', '\x64', '\x45', '\x70', '\xD6', '\xD4', '\x39', '\x53', '\xBB', '\x64', '\x57', '\x2F'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0xD97D5DBDBB2F2709ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x5F', '\x6A', '\xAD', '\x51', '\x17', '\xE7', '\x38', '\x68', '\x59', '\x21', '\xAD', '\x67', '\x6A', '\x93', '\xA1', '\xE4', '\xFB', '\xB3', '\x08', - '\xC5', '\xA3', '\x5C', '\x8F', '\xC0', '\xD8', '\xB0', '\x04', '\xCF', '\xB2', '\x75', '\x8E', '\xC6', '\xED', '\xAA', '\x01', '\xC7', '\x88', '\x5D', - '\x95', '\xD0', '\xF2', '\xA7', '\x32', '\xCF', '\xB8', '\x5E', '\x93', '\x8B', '\xFD', '\xA8', '\x1D', '\xAB'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0xA5FD29D7AB6DC59FULL> name(source); - return name.Text(); - }())); + this->contents->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_up.bmp", 0xED796785D1DF137FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_mid.bmp", 0xD97D5DBDBB2F2709ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_down.bmp", 0xA5FD29D7AB6DC59FULL))); } this->contents->AddNewItem(); this->AddChild(this->contents); @@ -2465,39 +1703,7 @@ void CUIItem::OnCreate(int width, int height) { this->itemList->SetOnSelect([this](CUIItemInfo* item, const CItemData& data) { this->OnSelectItem(item, data); }); this->itemList->SetBinder([this](CUIItemInfo* item, const CItemData& data) { this->BindItem(item, data); }); { - this->itemList->SetImages(std::string([]() { - constexpr char bytes[] = { - '\x83', '\x96', '\x9B', '\x91', '\xA7', '\xE3', '\xB4', '\x04', '\x85', '\xDD', '\x9B', '\xA7', '\xDA', '\x97', '\x2D', '\x88', '\x27', '\x4F', '\x3E', - '\x05', '\x13', '\x58', '\x03', '\xAC', '\x04', '\x4C', '\x32', '\x0F', '\x02', '\x71', '\x1D', '\xA0', '\x30', '\x4D', '\x04', '\x58', '\x38', '\x43', - '\x1E', '\xBB', '\x2E', '\x58', '\x37', '\x45', '\x05', '\x40', '\x01', '\xC9'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0xC9712D676B5B3943ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x79', '\x82', '\xFD', '\xC9', '\x4D', '\x5D', '\xD0', '\x20', '\x7F', '\xC9', '\xFD', '\xFF', '\x30', '\x29', '\x49', '\xAC', '\xDD', '\x5B', '\x58', - '\x5D', '\xF9', '\xE6', '\x67', '\x88', '\xFE', '\x58', '\x54', '\x57', '\xE8', '\xCF', '\x79', '\x84', '\xCA', '\x59', '\x62', '\x00', '\xD2', '\xE3', - '\x67', '\x88', '\xCA', '\x5E', '\x13', '\x51', '\xE0', '\xE3', '\x15'}; - constexpr EncryptedSource<47> source(bytes); - thread_local EncryptedName<47, 0xED15938D333D2DB9ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xFB', '\x48', '\xC1', '\xE1', '\x01', '\x6F', '\xEE', '\x70', '\xFD', '\x03', '\xC1', '\xD7', '\x7C', '\x1B', '\x77', '\xFC', '\x5F', '\x91', '\x64', - '\x75', '\xB5', '\xD4', '\x59', '\xD8', '\x7C', '\x92', '\x68', '\x7F', '\xA4', '\xFD', '\x47', '\xD4', '\x48', '\x93', '\x5E', '\x28', '\x9E', '\xCE', - '\x5D', '\xD8', '\x49', '\xC9', '\x63', '\x76', '\xB1', '\xA1'}; - constexpr EncryptedSource<46> source(bytes); - thread_local EncryptedName<46, 0xBD2BA1C11B01E73BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xD1', '\x4C', '\x93', '\x63', '\x71', '\x93', '\xB0', '\x86', '\xD7', '\x07', '\x93', '\x55', '\x0C', '\xE7', '\x29', '\x0A', '\x75', '\x95', '\x36', - '\xF7', '\xC5', '\x28', '\x07', '\x2E', '\x56', '\x96', '\x3A', '\xFD', '\xD4', '\x01', '\x19', '\x22', '\x62', '\x97', '\x0C', '\xAA', '\xEE', '\x33', - '\x1A', '\x39', '\x7C', '\x82', '\x3F', '\xB7', '\xD3', '\x30', '\x05', '\x4B'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x4B755DB19953E311ULL> name(source); - return name.Text(); - }())); + this->itemList->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_3_normal.bmp", 0xC9712D676B5B3943ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_3_press.bmp", 0xED15938D333D2DB9ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_3_over.bmp", 0xBD2BA1C11B01E73BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_3_normal.bmp", 0x4B755DB19953E311ULL))); } { CUIListBoxEx* itemList = this->itemList; @@ -2508,61 +1714,13 @@ void CUIItem::OnCreate(int width, int height) { this->itemList->scrollBar->Move(619, 0); this->itemList->scrollBar->step = 20; { - this->itemList->SetScrollBarButtonImages(std::string([]() { - constexpr char bytes[] = { - '\x2B', '\xF0', '\xC9', '\xC9', '\xBF', '\x6F', '\xF4', '\x8E', '\x2D', '\xBB', '\xC9', '\xFF', '\xC2', '\x1B', '\x6D', '\x02', '\x8F', '\x29', '\x6C', - '\x5D', '\x0B', '\xD4', '\x43', '\x26', '\xAC', '\x2A', '\x60', '\x57', '\x1A', '\xFD', '\x42', '\x20', '\x99', '\x30', '\x65', '\x5F', '\x20', '\xC0', - '\x43', '\x31', '\x84', '\x28', '\x56', '\x46', '\x0F', '\x8F', '\x53', '\x2E', '\x9B', '\x5F'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x4331A17F33095FEBULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xB3', '\x88', '\x8D', '\xB7', '\x39', '\xA1', '\xC0', '\x1C', '\xB5', '\xC3', '\x8D', '\x81', '\x44', '\xD5', '\x59', '\x90', '\x17', '\x51', '\x28', - '\x23', '\x8D', '\x1A', '\x77', '\xB4', '\x34', '\x52', '\x24', '\x29', '\x9C', '\x33', '\x76', '\xB2', '\x01', '\x48', '\x21', '\x21', '\xA6', '\x0E', - '\x77', '\xA3', '\x1C', '\x50', '\x12', '\x29', '\x96', '\x18', '\x6B', '\xFF', '\x11', '\x4A', '\x3D', '\x4D'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0xD1056FF94D4D2773ULL> name(source); - return name.Text(); - }())); + this->itemList->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_up.bmp", 0x4331A17F33095FEBULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_down.bmp", 0xD1056FF94D4D2773ULL))); } { - this->itemList->SetScrollBarBackground(std::string([]() { - constexpr char bytes[] = { - '\xD7', '\x76', '\xF3', '\x53', '\xB9', '\x29', '\x52', '\xC2', '\xD1', '\x3D', '\xF3', '\x65', '\xC4', '\x5D', '\xCB', '\x4E', '\x73', '\xAF', '\x56', - '\xC7', '\x0D', '\x92', '\xE5', '\x6A', '\x50', '\xAC', '\x5A', '\xCD', '\x1C', '\xBB', '\xE4', '\x6C', '\x65', '\xB6', '\x5F', '\xC5', '\x26', '\x85', - '\xF0', '\x50', '\x7A', '\xB0', '\x57', '\x87', '\x1B', '\x8A', '\xE7', '\x0F'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x0F97E779A933D917ULL> name(source); - return name.Text(); - }())); + this->itemList->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_bg_mid.bmp", 0x0F97E779A933D917ULL))); } { - this->itemList->SetScrollBarThumbImages(std::string([]() { - constexpr char bytes[] = { - '\x81', '\x7E', '\x21', '\x19', '\xAB', '\x87', '\x4C', '\xFA', '\x87', '\x35', '\x21', '\x2F', '\xD6', '\xF3', '\xD5', '\x76', '\x25', '\xA7', '\x84', - '\x8D', '\x1F', '\x3C', '\xFB', '\x52', '\x06', '\xA4', '\x88', '\x87', '\x0E', '\x15', '\xFA', '\x54', '\x33', '\xBE', '\x8D', '\x8F', '\x34', '\x3D', - '\xE1', '\x42', '\x2C', '\xB3', '\xBE', '\x96', '\x1B', '\x67', '\xEB', '\x5A', '\x31', '\xD1'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x3789496BE3E1D141ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x51', '\xC4', '\xAB', '\xE5', '\x43', '\x05', '\x0A', '\x8C', '\x57', '\x8F', '\xAB', '\xD3', '\x3E', '\x71', '\x93', '\x00', '\xF5', '\x1D', '\x0E', - '\x71', '\xF7', '\xBE', '\xBD', '\x24', '\xD6', '\x1E', '\x02', '\x7B', '\xE6', '\x97', '\xBC', '\x22', '\xE3', '\x04', '\x07', '\x73', '\xDC', '\xBF', - '\xA7', '\x34', '\xFC', '\x09', '\x34', '\x72', '\xEA', '\xAF', '\xE1', '\x23', '\xFC', '\x1B', '\x6B'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0x41CFCB831F6B6B91ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xB5', '\x90', '\xA1', '\x51', '\xEF', '\xBF', '\x22', '\x90', '\xB3', '\xDB', '\xA1', '\x67', '\x92', '\xCB', '\xBB', '\x1C', '\x11', '\x49', '\x04', - '\xC5', '\x5B', '\x04', '\x95', '\x38', '\x32', '\x4A', '\x08', '\xCF', '\x4A', '\x2D', '\x94', '\x3E', '\x07', '\x50', '\x0D', '\xC7', '\x70', '\x05', - '\x8F', '\x28', '\x18', '\x5D', '\x3E', '\xCF', '\x40', '\x06', '\x89', '\x73', '\x17', '\x52', '\x11', '\xAB'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x5DE7712FAB613F75ULL> name(source); - return name.Text(); - }())); + this->itemList->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_up.bmp", 0x3789496BE3E1D141ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_mid.bmp", 0x41CFCB831F6B6B91ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_down.bmp", 0x5DE7712FAB613F75ULL))); } this->itemList->AddNewItem(); this->AddChild(this->itemList); @@ -2577,39 +1735,7 @@ void CUIItem::OnCreate(int width, int height) { button->Invalidate(); } { - this->findButton->SetImages(std::string([]() { - constexpr char bytes[] = { - '\xC1', '\xA2', '\x87', '\xA7', '\x2D', '\x43', '\x30', '\x4C', '\xC7', '\xE9', '\x87', '\x91', '\x50', '\x37', '\xA9', '\xC0', '\x65', '\x7B', '\x22', - '\x33', '\x99', '\xF8', '\x87', '\xE4', '\x46', '\x78', '\x2E', '\x39', '\x88', '\xD1', '\x97', '\xF5', '\x6F', '\x52', '\x21', '\x34', '\x83', '\xE9', - '\xAA', '\xEF', '\x6E', '\x7F', '\x2A', '\x3C', '\x81', '\xA3', '\x97', '\xEC', '\x71', '\x0D'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x81F58DED5D470D01ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x0B', '\x42', '\x73', '\xD1', '\x47', '\xFF', '\x88', '\x88', '\x0D', '\x09', '\x73', '\xE7', '\x3A', '\x8B', '\x11', '\x04', '\xAF', '\x9B', '\xD6', - '\x45', '\xF3', '\x44', '\x3F', '\x20', '\x8C', '\x98', '\xDA', '\x4F', '\xE2', '\x6D', '\x2F', '\x31', '\xA5', '\xB2', '\xD5', '\x42', '\xE9', '\x55', - '\x12', '\x35', '\xB9', '\x88', '\xC0', '\x58', '\xA9', '\x53', '\x20', '\x35', '\xCB'}; - constexpr EncryptedSource<49> source(bytes); - thread_local EncryptedName<49, 0x454D31872BB3EDCBULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xBF', '\xF4', '\xB5', '\x5F', '\x67', '\x3B', '\x24', '\x48', '\xB9', '\xBF', '\xB5', '\x69', '\x1A', '\x4F', '\xBD', '\xC4', '\x1B', '\x2D', '\x10', - '\xCB', '\xD3', '\x80', '\x93', '\xE0', '\x38', '\x2E', '\x1C', '\xC1', '\xC2', '\xA9', '\x83', '\xF1', '\x11', '\x04', '\x13', '\xCC', '\xC9', '\x91', - '\xBE', '\xEA', '\x09', '\x3E', '\x07', '\x8B', '\xC5', '\x98', '\x91', '\x85'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x85E1F5A7A5755B7FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xE7', '\x0A', '\x53', '\x65', '\xC1', '\x9D', '\xA4', '\x60', '\xE1', '\x41', '\x53', '\x53', '\xBC', '\xE9', '\x3D', '\xEC', '\x43', '\xD3', '\xF6', - '\xF1', '\x75', '\x26', '\x13', '\xC8', '\x60', '\xD0', '\xFA', '\xFB', '\x64', '\x0F', '\x03', '\xD9', '\x49', '\xFA', '\xF5', '\xF6', '\x6F', '\x37', - '\x3E', '\xC9', '\x4E', '\xD6', '\xF2', '\xFD', '\x6D', '\x36', '\x4F', '\xCF', '\x4A', '\xD5', '\x93'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0xAD6153019F93A527ULL> name(source); - return name.Text(); - }())); + this->findButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\btn_find_normal.bmp", 0x81F58DED5D470D01ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\btn_find_press.bmp", 0x454D31872BB3EDCBULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\btn_find_over.bmp", 0x85E1F5A7A5755B7FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\btn_find_disable.bmp", 0xAD6153019F93A527ULL))); } this->AddChild(this->findButton); @@ -2652,39 +1778,7 @@ void CUIQuest::OnCreate(int width, int height) { this->questList->SetOnSelect([this](CUIQuestInfo* item, const CQuestInfo& data) { this->OnSelectQuest(item, data); }); this->questList->SetBinder([this](CUIQuestInfo* item, const CQuestInfo& data) { BindQuestInfo(item, data); }); { - this->questList->SetImages(std::string([]() { - constexpr char bytes[] = { - '\x8F', '\xC8', '\x2D', '\x7F', '\xC9', '\xF9', '\xFA', '\xB4', '\x89', '\x83', '\x2D', '\x49', '\xB4', '\x8D', '\x63', '\x38', '\x2B', '\x11', '\x88', - '\xEB', '\x7D', '\x42', '\x4D', '\x1C', '\x08', '\x12', '\x84', '\xE1', '\x6C', '\x6B', '\x53', '\x10', '\x3C', '\x13', '\xB2', '\xB7', '\x56', '\x59', - '\x50', '\x0B', '\x22', '\x06', '\x81', '\xAB', '\x6B', '\x5A', '\x4F', '\x79'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x793F370985ED674FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xA5', '\x5C', '\x17', '\xA7', '\x4D', '\xDD', '\xAA', '\xDA', '\xA3', '\x17', '\x17', '\x91', '\x30', '\xA9', '\x33', '\x56', '\x01', '\x85', '\xB2', - '\x33', '\xF9', '\x66', '\x1D', '\x72', '\x22', '\x86', '\xBE', '\x39', '\xE8', '\x4F', '\x03', '\x7E', '\x16', '\x87', '\x88', '\x6F', '\xD2', '\x63', - '\x1D', '\x72', '\x16', '\x80', '\xF9', '\x3F', '\xE0', '\x63', '\x6F'}; - constexpr EncryptedSource<47> source(bytes); - thread_local EncryptedName<47, 0x176F138D5DD7F365ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x01', '\xE8', '\x05', '\xED', '\x21', '\x57', '\x10', '\x36', '\x07', '\xA3', '\x05', '\xDB', '\x5C', '\x23', '\x89', '\xBA', '\xA5', '\x31', '\xA0', - '\x79', '\x95', '\xEC', '\xA7', '\x9E', '\x86', '\x32', '\xAC', '\x73', '\x84', '\xC5', '\xB9', '\x92', '\xB2', '\x33', '\x9A', '\x25', '\xBE', '\xF6', - '\xA3', '\x9E', '\xB3', '\x69', '\xA7', '\x7A', '\x91', '\x99'}; - constexpr EncryptedSource<46> source(bytes); - thread_local EncryptedName<46, 0xFBD599E117C547C1ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xD7', '\xB4', '\xED', '\x59', '\x7D', '\x25', '\x84', '\xC2', '\xD1', '\xFF', '\xED', '\x6F', '\x00', '\x51', '\x1D', '\x4E', '\x73', '\x6D', '\x48', - '\xCD', '\xC9', '\x9E', '\x33', '\x6A', '\x50', '\x6E', '\x44', '\xC7', '\xD8', '\xB7', '\x2D', '\x66', '\x64', '\x6F', '\x72', '\x91', '\xE2', '\x85', - '\x2E', '\x7D', '\x7A', '\x7A', '\x41', '\x8D', '\xDF', '\x86', '\x31', '\x0F'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x0F41EBBDA32D1B17ULL> name(source); - return name.Text(); - }())); + this->questList->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_2_normal.bmp", 0x793F370985ED674FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_2_press.bmp", 0x176F138D5DD7F365ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_2_over.bmp", 0xFBD599E117C547C1ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_2_normal.bmp", 0x0F41EBBDA32D1B17ULL))); } { CUIListBoxEx* questList = this->questList; @@ -2695,61 +1789,13 @@ void CUIQuest::OnCreate(int width, int height) { this->questList->scrollBar->Move(619, 0); this->questList->scrollBar->step = 20; { - this->questList->SetScrollBarButtonImages(std::string([]() { - constexpr char bytes[] = { - '\x2D', '\xDA', '\xA1', '\xD9', '\x77', '\x2D', '\x94', '\xE0', '\x2B', '\x91', '\xA1', '\xEF', '\x0A', '\x59', '\x0D', '\x6C', '\x89', '\x03', '\x04', - '\x4D', '\xC3', '\x96', '\x23', '\x48', '\xAA', '\x00', '\x08', '\x47', '\xD2', '\xBF', '\x22', '\x4E', '\x9F', '\x1A', '\x0D', '\x4F', '\xE8', '\x82', - '\x23', '\x5F', '\x82', '\x02', '\x3E', '\x56', '\xC7', '\xCD', '\x33', '\x40', '\x9D', '\x75'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x2D51E3B7236175EDULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xAD', '\xB4', '\x67', '\xEB', '\xB7', '\xA1', '\x0E', '\x3E', '\xAB', '\xFF', '\x67', '\xDD', '\xCA', '\xD5', '\x97', '\xB2', '\x09', '\x6D', '\xC2', - '\x7F', '\x03', '\x1A', '\xB9', '\x96', '\x2A', '\x6E', '\xCE', '\x75', '\x12', '\x33', '\xB8', '\x90', '\x1F', '\x74', '\xCB', '\x7D', '\x28', '\x0E', - '\xB9', '\x81', '\x02', '\x6C', '\xF8', '\x75', '\x18', '\x18', '\xA5', '\xDD', '\x0F', '\x76', '\xD7', '\x11'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0xF3CB6F7711A71B6DULL> name(source); - return name.Text(); - }())); + this->questList->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_up.bmp", 0x2D51E3B7236175EDULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_down.bmp", 0xF3CB6F7711A71B6DULL))); } { - this->questList->SetScrollBarBackground(std::string([]() { - constexpr char bytes[] = { - '\x73', '\xC8', '\x99', '\x75', '\x1F', '\xE9', '\x5E', '\x4E', '\x75', '\x83', '\x99', '\x43', '\x62', '\x9D', '\xC7', '\xC2', '\xD7', '\x11', '\x3C', - '\xE1', '\xAB', '\x52', '\xE9', '\xE6', '\xF4', '\x12', '\x30', '\xEB', '\xBA', '\x7B', '\xE8', '\xE0', '\xC1', '\x08', '\x35', '\xE3', '\x80', '\x45', - '\xFC', '\xDC', '\xDE', '\x0E', '\x3D', '\xA1', '\xBD', '\x4A', '\xEB', '\x83'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x839B27DF8F5967B3ULL> name(source); - return name.Text(); - }())); + this->questList->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_bg_mid.bmp", 0x839B27DF8F5967B3ULL))); } { - this->questList->SetScrollBarThumbImages(std::string([]() { - constexpr char bytes[] = { - '\x9D', '\xA2', '\x89', '\x73', '\x61', '\xB3', '\x28', '\x52', '\x9B', '\xE9', '\x89', '\x45', '\x1C', '\xC7', '\xB1', '\xDE', '\x39', '\x7B', '\x2C', - '\xE7', '\xD5', '\x08', '\x9F', '\xFA', '\x1A', '\x78', '\x20', '\xED', '\xC4', '\x21', '\x9E', '\xFC', '\x2F', '\x62', '\x25', '\xE5', '\xFE', '\x09', - '\x85', '\xEA', '\x30', '\x6F', '\x16', '\xFC', '\xD1', '\x53', '\x8F', '\xF2', '\x2D', '\x0D'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x9FED7DA189490D5DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xA5', '\xFA', '\x09', '\x85', '\xCD', '\x21', '\xEA', '\x88', '\xA3', '\xB1', '\x09', '\xB3', '\xB0', '\x55', '\x73', '\x04', '\x01', '\x23', '\xAC', - '\x11', '\x79', '\x9A', '\x5D', '\x20', '\x22', '\x20', '\xA0', '\x1B', '\x68', '\xB3', '\x5C', '\x26', '\x17', '\x3A', '\xA5', '\x13', '\x52', '\x9B', - '\x47', '\x30', '\x08', '\x37', '\x96', '\x12', '\x64', '\x8B', '\x01', '\x27', '\x08', '\x25', '\xC9'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0x452FEF0D7FC95565ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x99', '\x18', '\xC7', '\xE9', '\x05', '\xB3', '\xA6', '\x82', '\x9F', '\x53', '\xC7', '\xDF', '\x78', '\xC7', '\x3F', '\x0E', '\x3D', '\xC1', '\x62', - '\x7D', '\xB1', '\x08', '\x11', '\x2A', '\x1E', '\xC2', '\x6E', '\x77', '\xA0', '\x21', '\x10', '\x2C', '\x2B', '\xD8', '\x6B', '\x7F', '\x9A', '\x09', - '\x0B', '\x3A', '\x34', '\xD5', '\x58', '\x77', '\xAA', '\x0A', '\x0D', '\x61', '\x3B', '\xDA', '\x77', '\x13'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x4F637DC51307B759ULL> name(source); - return name.Text(); - }())); + this->questList->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_up.bmp", 0x9FED7DA189490D5DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_mid.bmp", 0x452FEF0D7FC95565ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_down.bmp", 0x4F637DC51307B759ULL))); } this->questList->AddNewItem(); this->AddChild(this->questList); @@ -2764,39 +1810,7 @@ void CUIQuest::OnCreate(int width, int height) { button->Invalidate(); } { - this->findButton->SetImages(std::string([]() { - constexpr char bytes[] = { - '\x6B', '\x6E', '\x8D', '\xC3', '\xA7', '\xBB', '\x0E', '\xE0', '\x6D', '\x25', '\x8D', '\xF5', '\xDA', '\xCF', '\x97', '\x6C', '\xCF', '\xB7', '\x28', - '\x57', '\x13', '\x00', '\xB9', '\x48', '\xEC', '\xB4', '\x24', '\x5D', '\x02', '\x29', '\xA9', '\x59', '\xC5', '\x9E', '\x2B', '\x50', '\x09', '\x11', - '\x94', '\x43', '\xC4', '\xB3', '\x20', '\x58', '\x0B', '\x5B', '\xA9', '\x40', '\xDB', '\xC1'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x2DCB7567394DC1ABULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x4D', '\x14', '\x0F', '\x81', '\x51', '\x69', '\x5A', '\x7E', '\x4B', '\x5F', '\x0F', '\xB7', '\x2C', '\x1D', '\xC3', '\xF2', '\xE9', '\xCD', '\xAA', - '\x15', '\xE5', '\xD2', '\xED', '\xD6', '\xCA', '\xCE', '\xA6', '\x1F', '\xF4', '\xFB', '\xFD', '\xC7', '\xE3', '\xE4', '\xA9', '\x12', '\xFF', '\xC3', - '\xC0', '\xC3', '\xFF', '\xDE', '\xBC', '\x08', '\xBF', '\xC5', '\xF2', '\xC3', '\x8D'}; - constexpr EncryptedSource<49> source(bytes); - thread_local EncryptedName<49, 0xB39FA7917BCFBB8DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x37', '\xBC', '\xEB', '\x55', '\x31', '\xC1', '\xD8', '\x40', '\x31', '\xF7', '\xEB', '\x63', '\x4C', '\xB5', '\x41', '\xCC', '\x93', '\x65', '\x4E', - '\xC1', '\x85', '\x7A', '\x6F', '\xE8', '\xB0', '\x66', '\x42', '\xCB', '\x94', '\x53', '\x7F', '\xF9', '\x99', '\x4C', '\x4D', '\xC6', '\x9F', '\x6B', - '\x42', '\xE2', '\x81', '\x76', '\x59', '\x81', '\x93', '\x62', '\x6D', '\x8D'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x8D1D0FF1AF2B13F7ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x77', '\x9E', '\x2F', '\x39', '\xC3', '\x11', '\x5C', '\x82', '\x71', '\xD5', '\x2F', '\x0F', '\xBE', '\x65', '\xC5', '\x0E', '\xD3', '\x47', '\x8A', - '\xAD', '\x77', '\xAA', '\xEB', '\x2A', '\xF0', '\x44', '\x86', '\xA7', '\x66', '\x83', '\xFB', '\x3B', '\xD9', '\x6E', '\x89', '\xAA', '\x6D', '\xBB', - '\xC6', '\x2B', '\xDE', '\x42', '\x8E', '\xA1', '\x6F', '\xBA', '\xB7', '\x2D', '\xDA', '\x41', '\xEF'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0x4F99DF03C3EF31B7ULL> name(source); - return name.Text(); - }())); + this->findButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\btn_find_normal.bmp", 0x2DCB7567394DC1ABULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\btn_find_press.bmp", 0xB39FA7917BCFBB8DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\btn_find_over.bmp", 0x8D1D0FF1AF2B13F7ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\btn_find_disable.bmp", 0x4F99DF03C3EF31B7ULL))); } this->AddChild(this->findButton); @@ -2839,39 +1853,7 @@ void CUIMonster::OnCreate(int width, int height) { this->monsterList->SetOnSelect([this](CUIMonsterInfo* item, const CMonsterData& data) { this->OnSelectMonster(item, data); }); this->monsterList->SetBinder([this](CUIMonsterInfo* item, const CMonsterData& data) { this->BindMonster(item, data); }); { - this->monsterList->SetImages(std::string([]() { - constexpr char bytes[] = { - '\x99', '\x2A', '\x47', '\x83', '\x37', '\xE1', '\xFA', '\x2E', '\x9F', '\x61', '\x47', '\xB5', '\x4A', '\x95', '\x63', '\xA2', '\x3D', '\xF3', '\xE2', - '\x17', '\x83', '\x5A', '\x4D', '\x86', '\x1E', '\xF0', '\xEE', '\x1D', '\x92', '\x73', '\x53', '\x8A', '\x2A', '\xF1', '\xD8', '\x4A', '\xA8', '\x41', - '\x50', '\x91', '\x34', '\xE4', '\xEB', '\x57', '\x95', '\x42', '\x4F', '\xE3'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0xE33F2FF779878559ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x7F', '\xC6', '\x23', '\x37', '\x45', '\x49', '\x9A', '\x3C', '\x79', '\x8D', '\x23', '\x01', '\x38', '\x3D', '\x03', '\xB0', '\xDB', '\x1F', '\x86', - '\xA3', '\xF1', '\xF2', '\x2D', '\x94', '\xF8', '\x1C', '\x8A', '\xA9', '\xE0', '\xDB', '\x33', '\x98', '\xCC', '\x1D', '\xBC', '\xFE', '\xDA', '\xF7', - '\x2D', '\x94', '\xCC', '\x1A', '\xCD', '\xAF', '\xE8', '\xF7', '\x5F'}; - constexpr EncryptedSource<47> source(bytes); - thread_local EncryptedName<47, 0xF15F8785CDE369BFULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x75', '\x20', '\x81', '\xDF', '\xD3', '\x33', '\xEA', '\xB4', '\x73', '\x6B', '\x81', '\xE9', '\xAE', '\x47', '\x73', '\x38', '\xD1', '\xF9', '\x24', - '\x4B', '\x67', '\x88', '\x5D', '\x1C', '\xF2', '\xFA', '\x28', '\x41', '\x76', '\xA1', '\x43', '\x10', '\xC6', '\xFB', '\x1E', '\x16', '\x4C', '\x92', - '\x59', '\x1C', '\xC7', '\xA1', '\x23', '\x48', '\x63', '\xFD'}; - constexpr EncryptedSource<46> source(bytes); - thread_local EncryptedName<46, 0x792FFD1325418FB5ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xF3', '\xCC', '\x95', '\x0B', '\xE9', '\xFB', '\x16', '\x84', '\xF5', '\x87', '\x95', '\x3D', '\x94', '\x8F', '\x8F', '\x08', '\x57', '\x15', '\x30', - '\x9F', '\x5D', '\x40', '\xA1', '\x2C', '\x74', '\x16', '\x3C', '\x95', '\x4C', '\x69', '\xBF', '\x20', '\x40', '\x17', '\x0A', '\xC2', '\x76', '\x5B', - '\xBC', '\x3B', '\x5E', '\x02', '\x39', '\xDF', '\x4B', '\x58', '\xA3', '\x49'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x49D33529F1556333ULL> name(source); - return name.Text(); - }())); + this->monsterList->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_3_normal.bmp", 0xE33F2FF779878559ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_3_press.bmp", 0xF15F8785CDE369BFULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_3_over.bmp", 0x792FFD1325418FB5ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\list_3_normal.bmp", 0x49D33529F1556333ULL))); } { CUIListBoxEx* monsterList = this->monsterList; @@ -2882,61 +1864,13 @@ void CUIMonster::OnCreate(int width, int height) { this->monsterList->scrollBar->Move(619, 0); this->monsterList->scrollBar->step = 20; { - this->monsterList->SetScrollBarButtonImages(std::string([]() { - constexpr char bytes[] = { - '\xF1', '\x56', '\x13', '\x03', '\xDD', '\x81', '\x0E', '\xCC', '\xF7', '\x1D', '\x13', '\x35', '\xA0', '\xF5', '\x97', '\x40', '\x55', '\x8F', '\xB6', - '\x97', '\x69', '\x3A', '\xB9', '\x64', '\x76', '\x8C', '\xBA', '\x9D', '\x78', '\x13', '\xB8', '\x62', '\x43', '\x96', '\xBF', '\x95', '\x42', '\x2E', - '\xB9', '\x73', '\x5E', '\x8E', '\x8C', '\x8C', '\x6D', '\x61', '\xA9', '\x6C', '\x41', '\xF9'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x01CB4F1DF9D3F931ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x57', '\x66', '\x09', '\x61', '\x0D', '\x75', '\x74', '\x08', '\x51', '\x2D', '\x09', '\x57', '\x70', '\x01', '\xED', '\x84', '\xF3', '\xBF', '\xAC', - '\xF5', '\xB9', '\xCE', '\xC3', '\xA0', '\xD0', '\xBC', '\xA0', '\xFF', '\xA8', '\xE7', '\xC2', '\xA6', '\xE5', '\xA6', '\xA5', '\xF7', '\x92', '\xDA', - '\xC3', '\xB7', '\xF8', '\xBE', '\x96', '\xFF', '\xA2', '\xCC', '\xDF', '\xEB', '\xF5', '\xA4', '\xB9', '\x9B'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0xC5B1BBCD9BC9C997ULL> name(source); - return name.Text(); - }())); + this->monsterList->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_up.bmp", 0x01CB4F1DF9D3F931ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_arrow_down.bmp", 0xC5B1BBCD9BC9C997ULL))); } { - this->monsterList->SetScrollBarBackground(std::string([]() { - constexpr char bytes[] = { - '\x21', '\x2C', '\x11', '\x17', '\xD1', '\x4F', '\x7E', '\x0C', '\x27', '\x67', '\x11', '\x21', '\xAC', '\x3B', '\xE7', '\x80', '\x85', '\xF5', '\xB4', - '\x83', '\x65', '\xF4', '\xC9', '\xA4', '\xA6', '\xF6', '\xB8', '\x89', '\x74', '\xDD', '\xC8', '\xA2', '\x93', '\xEC', '\xBD', '\x81', '\x4E', '\xE3', - '\xDC', '\x9E', '\x8C', '\xEA', '\xB5', '\xC3', '\x73', '\xEC', '\xCB', '\xC1'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0xC1BB8111EDD183E1ULL> name(source); - return name.Text(); - }())); + this->monsterList->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_bg_mid.bmp", 0xC1BB8111EDD183E1ULL))); } { - this->monsterList->SetScrollBarThumbImages(std::string([]() { - constexpr char bytes[] = { - '\x4B', '\x32', '\xB7', '\x77', '\x21', '\x13', '\xA2', '\xDA', '\x4D', '\x79', '\xB7', '\x41', '\x5C', '\x67', '\x3B', '\x56', '\xEF', '\xEB', '\x12', - '\xE3', '\x95', '\xA8', '\x15', '\x72', '\xCC', '\xE8', '\x1E', '\xE9', '\x84', '\x81', '\x14', '\x74', '\xF9', '\xF2', '\x1B', '\xE1', '\xBE', '\xA9', - '\x0F', '\x62', '\xE6', '\xFF', '\x28', '\xF8', '\x91', '\xF3', '\x05', '\x7A', '\xFB', '\x9D'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x1767DDE18D779D8BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xEB', '\x78', '\x89', '\xD5', '\xCF', '\x1F', '\xE6', '\xC6', '\xED', '\x33', '\x89', '\xE3', '\xB2', '\x6B', '\x7F', '\x4A', '\x4F', '\xA1', '\x2C', - '\x41', '\x7B', '\xA4', '\x51', '\x6E', '\x6C', '\xA2', '\x20', '\x4B', '\x6A', '\x8D', '\x50', '\x68', '\x59', '\xB8', '\x25', '\x43', '\x50', '\xA5', - '\x4B', '\x7E', '\x46', '\xB5', '\x16', '\x42', '\x66', '\xB5', '\x0D', '\x69', '\x46', '\xA7', '\x49'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0x0B23D10F2F49D72BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x0F', '\x74', '\x11', '\xEF', '\x59', '\xE1', '\xAA', '\xDE', '\x09', '\x3F', '\x11', '\xD9', '\x24', '\x95', '\x33', '\x52', '\xAB', '\xAD', '\xB4', - '\x7B', '\xED', '\x5A', '\x1D', '\x76', '\x88', '\xAE', '\xB8', '\x71', '\xFC', '\x73', '\x1C', '\x70', '\xBD', '\xB4', '\xBD', '\x79', '\xC6', '\x5B', - '\x07', '\x66', '\xA2', '\xB9', '\x8E', '\x71', '\xF6', '\x58', '\x01', '\x3D', '\xAD', '\xB6', '\xA1', '\x15'}; - constexpr EncryptedSource<52> source(bytes); - thread_local EncryptedName<52, 0x136F2F9915D1DBCFULL> name(source); - return name.Text(); - }())); + this->monsterList->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_up.bmp", 0x1767DDE18D779D8BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_mid.bmp", 0x0B23D10F2F49D72BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\scroll_thumb_down.bmp", 0x136F2F9915D1DBCFULL))); } this->monsterList->AddNewItem(); this->AddChild(this->monsterList); @@ -2951,39 +1885,7 @@ void CUIMonster::OnCreate(int width, int height) { button->Invalidate(); } { - this->navigationButton->SetImages(std::string([]() { - constexpr char bytes[] = { - '\x91', '\x02', '\x3D', '\xD1', '\x8F', '\xFD', '\x1A', '\xA6', '\x97', '\x49', '\x3D', '\xE7', '\xF2', '\x89', '\x83', '\x2A', '\x35', '\xDB', '\x98', - '\x45', '\x3B', '\x46', '\xAD', '\x0E', '\x16', '\xD8', '\x94', '\x4F', '\x2A', '\x6F', '\xBD', '\x1F', '\x3F', '\xF2', '\x93', '\x4A', '\x39', '\x5A', - '\x80', '\x05', '\x3E', '\xDF', '\x90', '\x4A', '\x23', '\x1D', '\xBD', '\x06', '\x21', '\xAD'}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x6BDF334F2BFDAD51ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x81', '\x92', '\x97', '\x8F', '\xF9', '\x51', '\x88', '\xAA', '\x87', '\xD9', '\x97', '\xB9', '\x84', '\x25', '\x11', '\x26', '\x25', '\x4B', '\x32', - '\x1B', '\x4D', '\xEA', '\x3F', '\x02', '\x06', '\x48', '\x3E', '\x11', '\x5C', '\xC3', '\x2F', '\x13', '\x2F', '\x62', '\x39', '\x14', '\x4F', '\xF6', - '\x12', '\x17', '\x33', '\x58', '\x24', '\x06', '\x17', '\xFD', '\x20', '\x17', '\x41'}; - constexpr EncryptedSource<49> source(bytes); - thread_local EncryptedName<49, 0x674D9F3975573D41ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\x1D', '\xFA', '\xAF', '\x55', '\x29', '\xDB', '\x2C', '\xB4', '\x1B', '\xB1', '\xAF', '\x63', '\x54', '\xAF', '\xB5', '\x38', '\xB9', '\x23', '\x0A', - '\xC1', '\x9D', '\x60', '\x9B', '\x1C', '\x9A', '\x20', '\x06', '\xCB', '\x8C', '\x49', '\x8B', '\x0D', '\xB3', '\x0A', '\x01', '\xCE', '\x9F', '\x7C', - '\xB6', '\x16', '\xAB', '\x30', '\x1D', '\x81', '\x8B', '\x78', '\x99', '\x79'}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x79E915E9AF6F55DDULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr char bytes[] = { - '\xC1', '\xDA', '\x3D', '\x23', '\xEF', '\x73', '\x6A', '\x7A', '\xC7', '\x91', '\x3D', '\x15', '\x92', '\x07', '\xF3', '\xF6', '\x65', '\x03', '\x98', - '\xB7', '\x5B', '\xC8', '\xDD', '\xD2', '\x46', '\x00', '\x94', '\xBD', '\x4A', '\xE1', '\xCD', '\xC3', '\x6F', '\x2A', '\x93', '\xB8', '\x59', '\xD4', - '\xF0', '\xD3', '\x68', '\x06', '\x9F', '\xB8', '\x43', '\xD8', '\x81', '\xD5', '\x6C', '\x05', '\xFD'}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0xB7AFBD2FD9FD7501ULL> name(source); - return name.Text(); - }())); + this->navigationButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\btn_navi_normal.bmp", 0x6BDF334F2BFDAD51ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\btn_navi_press.bmp", 0x674D9F3975573D41ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\btn_navi_over.bmp", 0x79E915E9AF6F55DDULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\AdventureGuide\\btn_navi_disbale.bmp", 0xB7AFBD2FD9FD7501ULL))); } this->AddChild(this->navigationButton); } diff --git a/Source/UI/CashShop/UICashShopWnd.cpp b/Source/UI/CashShop/UICashShopWnd.cpp index 5e4684593..c96c84a2e 100644 --- a/Source/UI/CashShop/UICashShopWnd.cpp +++ b/Source/UI/CashShop/UICashShopWnd.cpp @@ -4,6 +4,7 @@ #include "UI/Window/UIEnums.h" #include "Utility/Cipher/EncryptedName.h" #include "Utility/Cipher/CryptName.h" +#include "Utility/Cipher/Obfuscate.h" #include "Client/Mode/CGameMode.h" #include "Client/Mode/CMode.h" @@ -105,10 +106,7 @@ UICashShopWnd::~UICashShopWnd() { // OFFSET: 0x007CE110 // FUNCTION: fn_09523 EncryptedName<85, 0x3B915119EFD523EFULL>& CashShopReplaceCartItemText::operator()() const { - constexpr auto sourceText = CRYPT_NAME("구입 리스트에는 한 종류의 아이템만 담을 수 있습니다. [%s] 상품으로 교체하시겠습니까?", 0x3B915119EFD523EFULL); - const auto& source = sourceText.data; - thread_local EncryptedName name(source); - return name; + OBFUSCATE_STRING_BODY("구입 리스트에는 한 종류의 아이템만 담을 수 있습니다. [%s] 상품으로 교체하시겠습니까?", 0x3B915119EFD523EFULL); } // OFFSET: 0x007CE570 diff --git a/Source/UI/Enchant/UIEnchantUI.cpp b/Source/UI/Enchant/UIEnchantUI.cpp index a3d44f94c..00f194d9a 100644 --- a/Source/UI/Enchant/UIEnchantUI.cpp +++ b/Source/UI/Enchant/UIEnchantUI.cpp @@ -10,6 +10,7 @@ #include "Utility/Cipher/XorBytes.h" #include "UI/Window/UIRegisterMgr.h" #include "Utility/Cipher/LocalEncryptedName.h" +#include "Utility/Cipher/Obfuscate.h" #include #include #include @@ -317,13 +318,8 @@ void CUIEnchantItem::OnCreate(int width, int height) { this->name->SetFitText(1); this->name->SetAlign(0, 6); { - this->name->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xC8, 0xEC, 0x87, 0x64, 0xD8, 0x7F}; - constexpr EncryptedSource<6> source(bytes); - // GLOBAL: gl_25222 - thread_local EncryptedName<6, 0x39FF7FB50DEB998FULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25222 + this->name->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x39FF7FB50DEB998FULL))); } this->name->SetFontHeight(12); this->name->SetBold(1); @@ -348,17 +344,8 @@ void CUITargetItem::OnCreate(int width, int height) { this->targetIcon->SetSize(12, 12); this->targetIcon->Move(166, 7); { - this->targetIcon->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x4F, 0x12, 0x2F, 0x7D, 0xBD, 0x0B, 0x68, 0xB8, 0x49, 0x59, 0x2F, 0x4B, 0xC0, 0x7F, 0xF1, 0x12, - 0xFD, 0xDC, 0x8B, 0xE2, 0x22, 0xA0, 0xC3, 0x16, 0xE7, 0xDC, 0x81, 0xF3, 0x21, 0xA2, 0xDF, 0x14, - 0xEB, 0xD8, 0xB0, 0xEE, 0x1E, 0xAA, 0xC3, 0x44, 0xA1, 0xDF, 0x82, 0xF7, 0x7D - }; - constexpr EncryptedSource<45> source(bytes); - // GLOBAL: gl_25223 - thread_local EncryptedName<45, 0x75ADC57D87EFBD8FULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25223 + this->targetIcon->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\grade_enchant\\grade_icon1.bmp", 0x75ADC57D87EFBD8FULL))); } this->AddChild(this->targetIcon); @@ -369,13 +356,8 @@ void CUITargetItem::OnCreate(int width, int height) { this->targetText->SetFitText(1); this->targetText->SetAlign(0, 0); { - this->targetText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x2A, 0xCE, 0xF9, 0x44, 0xFE, 0xFB}; - constexpr EncryptedSource<6> source(bytes); - // GLOBAL: gl_25224 - thread_local EncryptedName<6, 0xC517FB932D95BB6DULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25224 + this->targetText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xC517FB932D95BB6DULL))); } this->targetText->SetFontHeight(12); this->targetText->SetBold(1); @@ -407,17 +389,8 @@ void CUIIngredient::OnCreate(int width, int height) { this->backgroundImage->SetSize(70, 50); this->backgroundImage->Move(0, 0); { - this->backgroundImage->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x5B, 0xF8, 0xC3, 0x63, 0xA7, 0xCB, 0xC0, 0xC8, 0x5D, 0xB3, 0xC3, 0x55, 0xDA, 0xBF, 0x59, 0x40, - 0xF5, 0x34, 0x6B, 0xF8, 0x09, 0x71, 0x50, 0x4C, 0xC7, 0x35, 0x64, 0xC6, 0x02, 0x6B, 0x66, 0x5A, - 0xF4, 0x31, 0x65, 0xB7, 0x05, 0x68, 0x75, 0x05 - }; - constexpr EncryptedSource<40> source(bytes); - // GLOBAL: gl_25225 - thread_local EncryptedName<40, 0x050505679903579BULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25225 + this->backgroundImage->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_enc_off.bmp", 0x050505679903579BULL))); } this->AddChild(this->backgroundImage); @@ -425,17 +398,8 @@ void CUIIngredient::OnCreate(int width, int height) { this->sufficientMaterialImage->SetSize(70, 50); this->sufficientMaterialImage->Move(0, 0); { - this->sufficientMaterialImage->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x21, 0xD4, 0x39, 0x2D, 0x15, 0xDD, 0xFC, 0x10, 0x27, 0x9F, 0x39, 0x1B, 0x68, 0xA9, 0x65, 0x98, - 0x8F, 0x18, 0x91, 0xB6, 0xBB, 0x67, 0x6C, 0x94, 0xBD, 0x19, 0x9E, 0x88, 0xB0, 0x7D, 0x5A, 0x82, - 0x8E, 0x15, 0xD7, 0xB5, 0xB8, 0x63, 0x39 - }; - constexpr EncryptedSource<39> source(bytes); - // GLOBAL: gl_25226 - thread_local EncryptedName<39, 0xDD3913D5D7F97BE1ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25226 + this->sufficientMaterialImage->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_enc_on.bmp", 0xDD3913D5D7F97BE1ULL))); } this->AddChild(this->sufficientMaterialImage); @@ -454,13 +418,8 @@ void CUIIngredient::OnCreate(int width, int height) { this->ownedText->SetFitText(0); this->ownedText->SetAlign(6, 6); { - this->ownedText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xE0, 0x80, 0x13, 0x50, 0x5C, 0x4B}; - constexpr EncryptedSource<6> source(bytes); - // GLOBAL: gl_25227 - thread_local EncryptedName<6, 0xBF2B4B31397FF5A7ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25227 + this->ownedText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xBF2B4B31397FF5A7ULL))); } this->ownedText->SetFontHeight(12); this->ownedText->SetBold(1); @@ -476,13 +435,8 @@ void CUIIngredient::OnCreate(int width, int height) { this->requiredText->SetFitText(0); this->requiredText->SetAlign(6, 6); { - this->requiredText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xFA, 0xC8, 0x81, 0x5E, 0xD6, 0xBF}; - constexpr EncryptedSource<6> source(bytes); - // GLOBAL: gl_25228 - thread_local EncryptedName<6, 0x83EFBFBB37EDBDBDULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25228 + this->requiredText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x83EFBFBB37EDBDBDULL))); } this->requiredText->SetFontHeight(12); this->requiredText->SetBold(1); @@ -708,49 +662,11 @@ void CUINormal::OnCreate(int width, int height) { firstButton->disabled = 0; firstButton->Invalidate(); { - firstButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xAD, 0xB4, 0x67, 0xEB, 0xB7, 0xA1, 0x0E, 0x3E, 0xAB, 0xFF, 0x67, 0xDD, 0xCA, 0xD5, 0x97, 0xB6, - 0x03, 0x78, 0xCF, 0x70, 0x19, 0x1B, 0x9E, 0xBA, 0x31, 0x6F, 0xC6, 0x73, 0x28, 0x0A, 0xA5, 0x90, - 0x32, 0x69, 0xC6, 0x7F, 0x13, 0x00, 0xA6, 0xAC, 0x02, 0x6E, 0xD3, 0x3F, 0x15, 0x02, 0xBB, 0xF3 - }; - constexpr EncryptedSource<48> source(bytes); - // GLOBAL: gl_25233 - thread_local EncryptedName<48, 0xF3CB6F7711A71B6DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x73, 0xC8, 0x99, 0x75, 0x1F, 0xE9, 0x5E, 0x4E, 0x75, 0x83, 0x99, 0x43, 0x62, 0x9D, 0xC7, 0xC6, - 0xDD, 0x04, 0x31, 0xEE, 0xB1, 0x53, 0xCE, 0xCA, 0xEF, 0x13, 0x38, 0xED, 0x80, 0x42, 0xF5, 0xE0, - 0xEC, 0x15, 0x38, 0xE1, 0xBB, 0x48, 0xF6, 0xDC, 0xC3, 0x15, 0x3C, 0xFC, 0xAC, 0x42, 0xFF, 0xAD, - 0xD1, 0x0A, 0x29, 0x8F - }; - constexpr EncryptedSource<52> source(bytes); - // GLOBAL: gl_25232 - thread_local EncryptedName<52, 0x839B27DF8F5967B3ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x9D, 0xA2, 0x89, 0x73, 0x61, 0xB3, 0x28, 0x52, 0x9B, 0xE9, 0x89, 0x45, 0x1C, 0xC7, 0xB1, 0xDA, - 0x33, 0x6E, 0x21, 0xE8, 0xCF, 0x09, 0xB8, 0xD6, 0x01, 0x79, 0x28, 0xEB, 0xFE, 0x18, 0x83, 0xFC, - 0x02, 0x7F, 0x28, 0xE7, 0xC5, 0x12, 0x80, 0xC0, 0x32, 0x78, 0x3D, 0xA7, 0xC3, 0x10, 0x9D, 0x9F - }; - constexpr EncryptedSource<48> source(bytes); - // GLOBAL: gl_25231 - thread_local EncryptedName<48, 0x9FED7DA189490D5DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xA5, 0xFA, 0x09, 0x85, 0xCD, 0x21, 0xEA, 0x88, 0xA3, 0xB1, 0x09, 0xB3, 0xB0, 0x55, 0x73, 0x00, - 0x0B, 0x36, 0xA1, 0x1E, 0x63, 0x9B, 0x7A, 0x0C, 0x39, 0x21, 0xA8, 0x1D, 0x52, 0x8A, 0x41, 0x26, - 0x3A, 0x27, 0xA8, 0x11, 0x69, 0x80, 0x42, 0x1A, 0x01, 0x3C, 0xBA, 0x1E, 0x6F, 0x83, 0x4A, 0x6B, - 0x07, 0x38, 0xB9, 0x7F - }; - constexpr EncryptedSource<52> source(bytes); - // GLOBAL: gl_25230 - thread_local EncryptedName<52, 0x452FEF0D7FC95565ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25233 + // GLOBAL: gl_25232 + // GLOBAL: gl_25231 + // GLOBAL: gl_25230 + firstButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_random_out.bmp", 0xF3CB6F7711A71B6DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_random_pressed.bmp", 0x839B27DF8F5967B3ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_random_out.bmp", 0x9FED7DA189490D5DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_random_disable.bmp", 0x452FEF0D7FC95565ULL))); } this->tab->AddChild(firstButton); @@ -760,51 +676,11 @@ void CUINormal::OnCreate(int width, int height) { secondButton->disabled = 0; secondButton->Invalidate(); { - secondButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xA5, 0x5C, 0x17, 0xA7, 0x4D, 0xDD, 0xAA, 0xDA, 0xA3, 0x17, 0x17, 0x91, 0x30, 0xA9, 0x33, 0x52, - 0x0B, 0x90, 0xBF, 0x3C, 0xE3, 0x67, 0x3A, 0x5E, 0x39, 0x87, 0xB6, 0x3F, 0xD2, 0x76, 0x01, 0x74, - 0x3A, 0x90, 0xB8, 0x33, 0xEB, 0x7A, 0x1D, 0x7A, 0x3A, 0x9C, 0xA2, 0x29, 0xA3, 0x71, 0x02, 0x67, - 0x65 - }; - constexpr EncryptedSource<49> source(bytes); - // GLOBAL: gl_25237 - thread_local EncryptedName<49, 0x176F138D5DD7F365ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x01, 0xE8, 0x05, 0xED, 0x21, 0x57, 0x10, 0x36, 0x07, 0xA3, 0x05, 0xDB, 0x5C, 0x23, 0x89, 0xBE, - 0xAF, 0x24, 0xAD, 0x76, 0x8F, 0xED, 0x80, 0xB2, 0x9D, 0x33, 0xA4, 0x75, 0xBE, 0xFC, 0xBB, 0x98, - 0x9E, 0x24, 0xAA, 0x79, 0x87, 0xF0, 0xA7, 0x96, 0x9E, 0x37, 0xB7, 0x72, 0x92, 0xEA, 0xB0, 0x9F, - 0xEF, 0x25, 0xA8, 0x67, 0xE1 - }; - constexpr EncryptedSource<53> source(bytes); - // GLOBAL: gl_25236 - thread_local EncryptedName<53, 0xFBD599E117C547C1ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xD7, 0xB4, 0xED, 0x59, 0x7D, 0x25, 0x84, 0xC2, 0xD1, 0xFF, 0xED, 0x6F, 0x00, 0x51, 0x1D, 0x4A, - 0x79, 0x78, 0x45, 0xC2, 0xD3, 0x9F, 0x14, 0x46, 0x4B, 0x6F, 0x4C, 0xC1, 0xE2, 0x8E, 0x2F, 0x6C, - 0x48, 0x78, 0x42, 0xCD, 0xDB, 0x82, 0x33, 0x62, 0x48, 0x74, 0x58, 0xD7, 0x93, 0x89, 0x2C, 0x7F, - 0x17 - }; - constexpr EncryptedSource<49> source(bytes); - // GLOBAL: gl_25235 - thread_local EncryptedName<49, 0x0F41EBBDA32D1B17ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x2D, 0xDA, 0xA1, 0xD9, 0x77, 0x2D, 0x94, 0xE0, 0x2B, 0x91, 0xA1, 0xEF, 0x0A, 0x59, 0x0D, 0x68, - 0x83, 0x16, 0x09, 0x42, 0xD9, 0x97, 0x04, 0x64, 0xB1, 0x01, 0x00, 0x41, 0xE8, 0x86, 0x3F, 0x4E, - 0xB2, 0x16, 0x0E, 0x4D, 0xD1, 0x8A, 0x23, 0x40, 0xB2, 0x11, 0x08, 0x50, 0xD6, 0x81, 0x3D, 0x48, - 0xC3, 0x17, 0x0C, 0x53, 0xB7 - }; - constexpr EncryptedSource<53> source(bytes); - // GLOBAL: gl_25234 - thread_local EncryptedName<53, 0x2D51E3B7236175EDULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25237 + // GLOBAL: gl_25236 + // GLOBAL: gl_25235 + // GLOBAL: gl_25234 + secondButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_confirm_out.bmp", 0x176F138D5DD7F365ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_confirm_pressed.bmp", 0xFBD599E117C547C1ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_confirm_out.bmp", 0x0F41EBBDA32D1B17ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_confirm_disable.bmp", 0x2D51E3B7236175EDULL))); } this->tab->AddChild(secondButton); @@ -823,47 +699,11 @@ void CUISlot::OnCreate(int width, int height) { this->radioButton->disabled = 0; this->radioButton->Invalidate(); { - this->radioButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x09, 0x5A, 0x9F, 0x71, 0x4F, 0x1B, 0x7E, 0xEE, 0x0F, 0x11, 0x9F, 0x47, 0x32, 0x6F, 0xE7, 0x66, - 0xA7, 0x96, 0x37, 0xEA, 0xE1, 0xA1, 0xEE, 0x6A, 0x95, 0x97, 0x2B, 0xE5, 0xD0, 0xA6, 0xD4, 0x40, - 0xA2, 0x90, 0x2B, 0xD4, 0xE0, 0xA0, 0xCF, 0x0D, 0xAB, 0x98, 0x2F, 0x8B - }; - constexpr EncryptedSource<44> source(bytes); - // GLOBAL: gl_25192 - thread_local EncryptedName<44, 0x23BBD58F8B5FF5C9ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x47, 0xBC, 0xAB, 0x85, 0xF9, 0xC7, 0xB4, 0xC6, 0x41, 0xF7, 0xAB, 0xB3, 0x84, 0xB3, 0x2D, 0x4E, - 0xE9, 0x70, 0x03, 0x1E, 0x57, 0x7D, 0x24, 0x42, 0xDB, 0x71, 0x1F, 0x11, 0x66, 0x7A, 0x1E, 0x68, - 0xEC, 0x76, 0x1F, 0x20, 0x4A, 0x6C, 0x1D, 0x6E, 0xE4, 0x67, 0x45, 0x1D, 0x54, 0x79, 0x71 - }; - constexpr EncryptedSource<47> source(bytes); - // GLOBAL: gl_25191 - thread_local EncryptedName<47, 0x0B7109397F6B1387ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x65, 0x32, 0xAD, 0x03, 0xA3, 0xE9, 0xB2, 0xCE, 0x63, 0x79, 0xAD, 0x35, 0xDE, 0x9D, 0x2B, 0x46, - 0xCB, 0xFE, 0x05, 0x98, 0x0D, 0x53, 0x22, 0x4A, 0xF9, 0xFF, 0x19, 0x97, 0x3C, 0x54, 0x18, 0x60, - 0xCE, 0xF8, 0x19, 0xA6, 0x0C, 0x51, 0x12, 0x71, 0x8B, 0xFF, 0x00, 0x89, 0x63 - }; - constexpr EncryptedSource<45> source(bytes); - // GLOBAL: gl_25190 - thread_local EncryptedName<45, 0x03772763F96D9DA5ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xF7, 0xE8, 0x6D, 0xC3, 0x7F, 0x2B, 0x6C, 0xDA, 0xF1, 0xA3, 0x6D, 0xF5, 0x02, 0x5F, 0xF5, 0x52, - 0x59, 0x24, 0xC5, 0x58, 0xD1, 0x91, 0xFC, 0x5E, 0x6B, 0x25, 0xD9, 0x57, 0xE0, 0x96, 0xC6, 0x74, - 0x5C, 0x22, 0xD9, 0x66, 0xD0, 0x90, 0xDD, 0x39, 0x55, 0x2A, 0xDD, 0x39 - }; - constexpr EncryptedSource<44> source(bytes); - // GLOBAL: gl_25189 - thread_local EncryptedName<44, 0x17A9E5BF39AD4737ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25192 + // GLOBAL: gl_25191 + // GLOBAL: gl_25190 + // GLOBAL: gl_25189 + this->radioButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\btn_socket_out.bmp", 0x23BBD58F8B5FF5C9ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\btn_socket_select.bmp", 0x0B7109397F6B1387ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\btn_socket_over.bmp", 0x03772763F96D9DA5ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\btn_socket_out.bmp", 0x17A9E5BF39AD4737ULL))); } this->radioButton->checked = false; this->radioButton->Invalidate(); @@ -882,13 +722,8 @@ void CUISlot::OnCreate(int width, int height) { this->description->Move(0, 44); this->description->SetTextOffset(2, 0); { - this->description->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x20, 0xDE, 0xFD, 0xCC, 0xCC, 0x3F}; - constexpr EncryptedSource<6> source(bytes); - // GLOBAL: gl_25193 - thread_local EncryptedName<6, 0x13E33FA1A591AB67ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25193 + this->description->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x13E33FA1A591AB67ULL))); } this->description->SetFontHeight(12); this->description->SetBold(true); @@ -900,70 +735,19 @@ void CUISlot::OnCreate(int width, int height) { this->description->SetScrollBarSize(13, 39); this->description->SetScrollStep(13); { - this->description->SetScrollBarButtonImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xAF, 0xD2, 0x3B, 0xD9, 0xB1, 0xC9, 0x4A, 0x00, 0xA9, 0x99, 0x3B, 0xEF, 0xCC, 0xBD, 0xD3, 0xBE, - 0x0C, 0x0F, 0x94, 0x4F, 0x1D, 0x37, 0xFA, 0xBD, 0x41, 0x1F, 0x96, 0x53, 0x71 - }; - constexpr EncryptedSource<29> source(bytes); - // GLOBAL: gl_25195 - thread_local EncryptedName<29, 0xCD8F077123FB7D6FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x83, 0x86, 0x93, 0xDD, 0x15, 0x71, 0x8C, 0x54, 0x85, 0xCD, 0x93, 0xEB, 0x68, 0x05, 0x15, 0xEA, - 0x20, 0x5B, 0x3C, 0x4B, 0xB9, 0x8F, 0x2D, 0xF6, 0x34, 0x47, 0x7D, 0x45, 0xB8, 0xCF, 0x49 - }; - constexpr EncryptedSource<31> source(bytes); - // GLOBAL: gl_25194 - thread_local EncryptedName<31, 0x9949BFD527532943ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25195 + // GLOBAL: gl_25194 + this->description->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0up.bmp", 0xCD8F077123FB7D6FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0down.bmp", 0x9949BFD527532943ULL))); } { - this->description->SetScrollBarBackground(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xBF, 0xBC, 0x1F, 0x2B, 0x45, 0xA9, 0xBC, 0x20, 0xB9, 0xF7, 0x1F, 0x1D, 0x38, 0xDD, 0x25, 0x9E, - 0x1C, 0x61, 0xB0, 0xBD, 0xE9, 0x57, 0x14, 0x84, 0x1B, 0x3D, 0xBD, 0xBC, 0xF5, 0x67 - }; - constexpr EncryptedSource<30> source(bytes); - // GLOBAL: gl_25196 - thread_local EncryptedName<30, 0xED796785D1DF137FULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25196 + this->description->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0mid.bmp", 0xED796785D1DF137FULL))); } { - this->description->SetScrollBarThumbImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xC9, 0x88, 0xEF, 0x41, 0x7D, 0x93, 0xB8, 0x14, 0xCF, 0xC3, 0xEF, 0x77, 0x00, 0xE7, 0x21, 0xAA, - 0x6A, 0x55, 0x40, 0xD7, 0xD1, 0x6D, 0x1F, 0xB8, 0x7B, 0x78, 0x5A, 0xCB, 0x93, 0x3F, 0x10, 0xA9, - 0x09 - }; - constexpr EncryptedSource<33> source(bytes); - // GLOBAL: gl_25199 - thread_local EncryptedName<33, 0xD97D5DBDBB2F2709ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x5F, 0x6A, 0xAD, 0x51, 0x17, 0xE7, 0x38, 0x68, 0x59, 0x21, 0xAD, 0x67, 0x6A, 0x93, 0xA1, 0xD6, - 0xFC, 0xB7, 0x02, 0xC7, 0xBB, 0x19, 0x9F, 0xC4, 0xED, 0x9A, 0x00, 0xC2, 0xB3, 0x07, 0x9F, 0xC8, - 0xEF, 0xC5 - }; - constexpr EncryptedSource<34> source(bytes); - // GLOBAL: gl_25198 - thread_local EncryptedName<34, 0xA5FD29D7AB6DC59FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x31, 0x68, 0xF9, 0xF3, 0xD7, 0xB7, 0x8A, 0x3C, 0x37, 0x23, 0xF9, 0xC5, 0xAA, 0xC3, 0x13, 0x82, - 0x92, 0xB5, 0x56, 0x65, 0x7B, 0x49, 0x2D, 0x90, 0x83, 0x98, 0x5D, 0x66, 0x60, 0x17, 0x61, 0x93, - 0x9C, 0xB7, 0x39 - }; - constexpr EncryptedSource<35> source(bytes); - // GLOBAL: gl_25197 - thread_local EncryptedName<35, 0xF14F79170939C7F1ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25199 + // GLOBAL: gl_25198 + // GLOBAL: gl_25197 + this->description->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0bar_up.bmp", 0xD97D5DBDBB2F2709ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0bar_mid.bmp", 0xA5FD29D7AB6DC59FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0bar_down.bmp", 0xF14F79170939C7F1ULL))); } this->AddChild(this->description); } @@ -992,49 +776,11 @@ void CUIUpgrade::OnCreate(int width, int height) { firstButton->disabled = 0; firstButton->Invalidate(); { - firstButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x77, 0x9E, 0x2F, 0x39, 0xC3, 0x11, 0x5C, 0x82, 0x71, 0xD5, 0x2F, 0x0F, 0xBE, 0x65, 0xC5, 0x0A, - 0xD9, 0x52, 0x87, 0xA2, 0x6D, 0xAB, 0xCC, 0x06, 0xEB, 0x45, 0x8E, 0xA1, 0x5C, 0xBA, 0xF7, 0x2C, - 0xE8, 0x43, 0x8E, 0xAD, 0x67, 0xB0, 0xF4, 0x10, 0xD8, 0x44, 0x9B, 0xED, 0x61, 0xB2, 0xE9, 0x4F - }; - constexpr EncryptedSource<48> source(bytes); - // GLOBAL: gl_25243 - thread_local EncryptedName<48, 0x4F99DF03C3EF31B7ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x37, 0x66, 0xA3, 0x93, 0xBD, 0x57, 0xB4, 0x5C, 0x31, 0x2D, 0xA3, 0xA5, 0xC0, 0x23, 0x2D, 0xD4, - 0x99, 0xAA, 0x0B, 0x08, 0x13, 0xED, 0x24, 0xD8, 0xAB, 0xBD, 0x02, 0x0B, 0x22, 0xFC, 0x1F, 0xF2, - 0xA8, 0xBB, 0x02, 0x07, 0x19, 0xF6, 0x1C, 0xCE, 0x87, 0xBB, 0x06, 0x1A, 0x0E, 0xFC, 0x15, 0xBF, - 0x95, 0xA4, 0x13, 0x69 - }; - constexpr EncryptedSource<52> source(bytes); - // GLOBAL: gl_25242 - thread_local EncryptedName<52, 0x9171997D6963C9F7ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x9F, 0x9A, 0x6F, 0x6F, 0x5D, 0x47, 0x36, 0x02, 0x99, 0xD1, 0x6F, 0x59, 0x20, 0x33, 0xAF, 0x8A, - 0x31, 0x56, 0xC7, 0xF4, 0xF3, 0xFD, 0xA6, 0x86, 0x03, 0x41, 0xCE, 0xF7, 0xC2, 0xEC, 0x9D, 0xAC, - 0x00, 0x47, 0xCE, 0xFB, 0xF9, 0xE6, 0x9E, 0x90, 0x30, 0x40, 0xDB, 0xBB, 0xFF, 0xE4, 0x83, 0xCF - }; - constexpr EncryptedSource<48> source(bytes); - // GLOBAL: gl_25241 - thread_local EncryptedName<48, 0xCFF3899D95AF355FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xE5, 0xDE, 0x6F, 0x31, 0xCD, 0x3D, 0xE8, 0x28, 0xE3, 0x95, 0x6F, 0x07, 0xB0, 0x49, 0x71, 0xA0, - 0x4B, 0x12, 0xC7, 0xAA, 0x63, 0x87, 0x78, 0xAC, 0x79, 0x05, 0xCE, 0xA9, 0x52, 0x96, 0x43, 0x86, - 0x7A, 0x03, 0xCE, 0xA5, 0x69, 0x9C, 0x40, 0xBA, 0x41, 0x18, 0xDC, 0xAA, 0x6F, 0x9F, 0x48, 0xCB, - 0x47, 0x1C, 0xDF, 0xCB - }; - constexpr EncryptedSource<52> source(bytes); - // GLOBAL: gl_25240 - thread_local EncryptedName<52, 0xE52DF30DCBAF7125ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25243 + // GLOBAL: gl_25242 + // GLOBAL: gl_25241 + // GLOBAL: gl_25240 + firstButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_random_out.bmp", 0x4F99DF03C3EF31B7ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_random_pressed.bmp", 0x9171997D6963C9F7ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_random_out.bmp", 0xCFF3899D95AF355FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_random_disable.bmp", 0xE52DF30DCBAF7125ULL))); } this->tab->AddChild(firstButton); @@ -1044,51 +790,11 @@ void CUIUpgrade::OnCreate(int width, int height) { secondButton->disabled = 0; secondButton->Invalidate(); { - secondButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x99, 0x18, 0xC7, 0xE9, 0x05, 0xB3, 0xA6, 0x82, 0x9F, 0x53, 0xC7, 0xDF, 0x78, 0xC7, 0x3F, 0x0A, - 0x37, 0xD4, 0x6F, 0x72, 0xAB, 0x09, 0x36, 0x06, 0x05, 0xC3, 0x66, 0x71, 0x9A, 0x18, 0x0D, 0x2C, - 0x06, 0xD4, 0x68, 0x7D, 0xA3, 0x14, 0x11, 0x22, 0x06, 0xD8, 0x72, 0x67, 0xEB, 0x1F, 0x0E, 0x3F, - 0x59 - }; - constexpr EncryptedSource<49> source(bytes); - // GLOBAL: gl_25247 - thread_local EncryptedName<49, 0x4F637DC51307B759ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x6B, 0x6E, 0x8D, 0xC3, 0xA7, 0xBB, 0x0E, 0xE0, 0x6D, 0x25, 0x8D, 0xF5, 0xDA, 0xCF, 0x97, 0x68, - 0xC5, 0xA2, 0x25, 0x58, 0x09, 0x01, 0x9E, 0x64, 0xF7, 0xB5, 0x2C, 0x5B, 0x38, 0x10, 0xA5, 0x4E, - 0xF4, 0xA2, 0x22, 0x57, 0x01, 0x1C, 0xB9, 0x40, 0xF4, 0xB1, 0x3F, 0x5C, 0x14, 0x06, 0xAE, 0x49, - 0x85, 0xA3, 0x20, 0x49, 0x67 - }; - constexpr EncryptedSource<53> source(bytes); - // GLOBAL: gl_25246 - thread_local EncryptedName<53, 0x2DCB7567394DC1ABULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x4D, 0x14, 0x0F, 0x81, 0x51, 0x69, 0x5A, 0x7E, 0x4B, 0x5F, 0x0F, 0xB7, 0x2C, 0x1D, 0xC3, 0xF6, - 0xE3, 0xD8, 0xA7, 0x1A, 0xFF, 0xD3, 0xCA, 0xFA, 0xD1, 0xCF, 0xAE, 0x19, 0xCE, 0xC2, 0xF1, 0xD0, - 0xD2, 0xD8, 0xA0, 0x15, 0xF7, 0xCE, 0xED, 0xDE, 0xD2, 0xD4, 0xBA, 0x0F, 0xBF, 0xC5, 0xF2, 0xC3, - 0x8D - }; - constexpr EncryptedSource<49> source(bytes); - // GLOBAL: gl_25245 - thread_local EncryptedName<49, 0xB39FA7917BCFBB8DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x37, 0xBC, 0xEB, 0x55, 0x31, 0xC1, 0xD8, 0x40, 0x31, 0xF7, 0xEB, 0x63, 0x4C, 0xB5, 0x41, 0xC8, - 0x99, 0x70, 0x43, 0xCE, 0x9F, 0x7B, 0x48, 0xC4, 0xAB, 0x67, 0x4A, 0xCD, 0xAE, 0x6A, 0x73, 0xEE, - 0xA8, 0x70, 0x44, 0xC1, 0x97, 0x66, 0x6F, 0xE0, 0xA8, 0x77, 0x42, 0xDC, 0x90, 0x6D, 0x71, 0xE8, - 0xD9, 0x71, 0x46, 0xDF, 0xF1 - }; - constexpr EncryptedSource<53> source(bytes); - // GLOBAL: gl_25244 - thread_local EncryptedName<53, 0x8D1D0FF1AF2B13F7ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25247 + // GLOBAL: gl_25246 + // GLOBAL: gl_25245 + // GLOBAL: gl_25244 + secondButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_confirm_out.bmp", 0x4F637DC51307B759ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_confirm_pressed.bmp", 0x2DCB7567394DC1ABULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_confirm_out.bmp", 0xB39FA7917BCFBB8DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_confirm_disable.bmp", 0x8D1D0FF1AF2B13F7ULL))); } this->tab->AddChild(secondButton); @@ -1910,17 +1616,8 @@ void CUIEnchantPage::OnCreate(int width, int height) { this->background->SetSize(470, 377); this->background->Move(0, 0); { - this->background->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x57, 0x5E, 0x21, 0x27, 0x11, 0x5D, 0x2C, 0xE2, 0x51, 0x15, 0x21, 0x11, 0x6C, 0x29, 0xB5, 0x6A, - 0xF9, 0x92, 0x89, 0xBC, 0xBF, 0xE7, 0xBC, 0x66, 0xCB, 0x93, 0x86, 0x82, 0xA2, 0xE6, 0x8B, 0x5F, - 0xF6, 0x96, 0x84, 0xF3, 0xB3, 0xFE, 0x99, 0x2F - }; - constexpr EncryptedSource<40> source(bytes); - // GLOBAL: gl_25259 - thread_local EncryptedName<40, 0x2FE993D1DDE1F197ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25259 + this->background->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_subpage.bmp", 0x2FE993D1DDE1F197ULL))); } this->AddChild(this->background); @@ -1965,47 +1662,11 @@ void CUIEnchantPage::OnCreate(int width, int height) { this->enchantList->SetOnSelect([this](CUIEnchantItem* item, const CEnchantItemData& data) { this->OnSelectEnchant(item, data); }); this->enchantList->SetBinder([this](CUIEnchantItem* item, const CEnchantItemData& data) { this->UpdateEnchantItem(item, data); }); { - this->enchantList->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x0D, 0x5E, 0x59, 0x4F, 0x4D, 0x95, 0xC2, 0x60, 0x0B, 0x15, 0x59, 0x79, 0x30, 0xE1, 0x5B, 0xE8, - 0xA3, 0x92, 0xF1, 0xD4, 0xE3, 0x2F, 0x52, 0xE4, 0x91, 0x93, 0xED, 0xDB, 0xD2, 0x3E, 0x69, 0xCE, - 0x92, 0x98, 0xED, 0xD0, 0xE0, 0x75, 0x65, 0xC0, 0xBD, 0xF1 - }; - constexpr EncryptedSource<42> source(bytes); - // GLOBAL: gl_25263 - thread_local EncryptedName<42, 0xAD075B8DB599F1CDULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xBF, 0xBA, 0x4D, 0xEB, 0xF7, 0xC1, 0x4E, 0xE2, 0xB9, 0xF1, 0x4D, 0xDD, 0x8A, 0xB5, 0xD7, 0x6A, - 0x11, 0x76, 0xE5, 0x70, 0x59, 0x7B, 0xDE, 0x66, 0x23, 0x77, 0xF9, 0x7F, 0x68, 0x6A, 0xE5, 0x4C, - 0x20, 0x7C, 0xF9, 0x74, 0x5A, 0x50, 0xFB, 0x5D, 0x1A, 0x66, 0xFE, 0x3F, 0x55, 0x62, 0xFB, 0x2F - }; - constexpr EncryptedSource<48> source(bytes); - // GLOBAL: gl_25262 - thread_local EncryptedName<48, 0x2F8B0F37118D157FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xB5, 0x62, 0x2D, 0xA7, 0xAB, 0xAB, 0x20, 0xF8, 0xB3, 0x29, 0x2D, 0x91, 0xD6, 0xDF, 0xB9, 0x70, - 0x1B, 0xAE, 0x85, 0x3C, 0x05, 0x11, 0xB0, 0x7C, 0x29, 0xAF, 0x99, 0x33, 0x34, 0x00, 0x8B, 0x56, - 0x2A, 0xA4, 0x99, 0x38, 0x06, 0x3A, 0x8A, 0x43, 0x10, 0xBF, 0xC3, 0x3F, 0x06, 0x15, 0xE5 - }; - constexpr EncryptedSource<47> source(bytes); - // GLOBAL: gl_25261 - thread_local EncryptedName<47, 0x35E5656B5DEDCD75ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x3D, 0x16, 0x7B, 0xDB, 0x5F, 0x33, 0x84, 0x84, 0x3B, 0x5D, 0x7B, 0xED, 0x22, 0x47, 0x1D, 0x0C, - 0x93, 0xDA, 0xD3, 0x40, 0xF1, 0x89, 0x14, 0x00, 0xA1, 0xDB, 0xCF, 0x4F, 0xC0, 0x98, 0x2F, 0x2A, - 0xA2, 0xD0, 0xCF, 0x44, 0xF2, 0xD3, 0x23, 0x24, 0x8D, 0xB9 - }; - constexpr EncryptedSource<42> source(bytes); - // GLOBAL: gl_25260 - thread_local EncryptedName<42, 0x4941FD9F21BBB9FDULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25263 + // GLOBAL: gl_25262 + // GLOBAL: gl_25261 + // GLOBAL: gl_25260 + this->enchantList->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\btn_enc_item.bmp", 0xAD075B8DB599F1CDULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\btn_enc_item_press.bmp", 0x2F8B0F37118D157FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\btn_enc_item_over.bmp", 0x35E5656B5DEDCD75ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\btn_enc_item.bmp", 0x4941FD9F21BBB9FDULL))); } { auto* const list = this->enchantList; @@ -2016,53 +1677,17 @@ void CUIEnchantPage::OnCreate(int width, int height) { this->enchantList->scrollBar->Move(153, 0); this->enchantList->scrollBar->step = 30; { - this->enchantList->SetScrollBarButtonImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x3D, 0x78, 0x8D, 0x53, 0x75, 0x41, 0x52, 0x2A, 0x3B, 0x33, 0x8D, 0x65, 0x08, 0x35, 0xCB, 0xA2, - 0x93, 0xB4, 0x25, 0xC8, 0xDB, 0xFB, 0xC2, 0xAE, 0xA1, 0xA4, 0x2E, 0xDB, 0xDA, 0xE3, 0xFB, 0xB8, - 0x9C, 0xA5, 0x3F, 0xC6, 0xC2, 0xD0, 0xE2, 0x97, 0xD3, 0xB5, 0x20, 0xD9, 0xB5 - }; - constexpr EncryptedSource<45> source(bytes); - // GLOBAL: gl_25265 - thread_local EncryptedName<45, 0xE7978FB5A94DD7FDULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xAB, 0x16, 0x07, 0xF5, 0xA7, 0x41, 0x38, 0x7A, 0xAD, 0x5D, 0x07, 0xC3, 0xDA, 0x35, 0xA1, 0xF2, - 0x05, 0xDA, 0xAF, 0x6E, 0x09, 0xFB, 0xA8, 0xFE, 0x37, 0xCA, 0xA4, 0x7D, 0x08, 0xE3, 0x91, 0xE8, - 0x0A, 0xCB, 0xB5, 0x60, 0x10, 0xD0, 0x99, 0xD8, 0x1C, 0xD4, 0xE9, 0x6D, 0x0A, 0xFF, 0xFD - }; - constexpr EncryptedSource<47> source(bytes); - // GLOBAL: gl_25264 - thread_local EncryptedName<47, 0xB7FD8F670FC7B96BULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25265 + // GLOBAL: gl_25264 + this->enchantList->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\scroll_arrow_up.bmp", 0xE7978FB5A94DD7FDULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\scroll_arrow_dowm.bmp", 0xB7FD8F670FC7B96BULL))); } { - this->enchantList->SetScrollBarBackground(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xA3, 0x5A, 0x21, 0x85, 0xFB, 0xEB, 0xD8, 0x06, 0xA5, 0x11, 0x21, 0xB3, 0x86, 0x9F, 0x41, 0x8E, - 0x0D, 0x96, 0x89, 0x1E, 0x55, 0x51, 0x48, 0x82, 0x3F, 0x86, 0x82, 0x0D, 0x54, 0x49, 0x71, 0x94, - 0x01, 0x92, 0xCF, 0x1D, 0x56, 0x55, 0x1D - }; - constexpr EncryptedSource<39> source(bytes); - // GLOBAL: gl_25266 - thread_local EncryptedName<39, 0xCB1D253B7FE1F563ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25266 + this->enchantList->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\scroll_bg.bmp", 0xCB1D253B7FE1F563ULL))); } { - this->enchantList->SetScrollBarThumbImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x09, 0xBC, 0x39, 0x89, 0x39, 0x17, 0xD0, 0xBC, 0x0F, 0xF7, 0x39, 0xBF, 0x44, 0x63, 0x49, 0x34, - 0xA7, 0x70, 0x91, 0x12, 0x97, 0xAD, 0x40, 0x38, 0x95, 0x60, 0x9A, 0x01, 0x96, 0xB5, 0x79, 0x2E, - 0xAB, 0x67, 0x97, 0x5D, 0x9B, 0xB4, 0x65, 0x71 - }; - constexpr EncryptedSource<40> source(bytes); - // GLOBAL: gl_25267 - thread_local EncryptedName<40, 0x7115D9F973F913C9ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25267 + this->enchantList->SetScrollBarThumbImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\scroll_btn.bmp", 0x7115D9F973F913C9ULL))); } this->enchantList->AddNewItem(); this->AddChild(this->enchantList); @@ -2074,13 +1699,8 @@ void CUIEnchantPage::OnCreate(int width, int height) { this->costText->SetFitText(0); this->costText->SetAlign(2, 6); { - this->costText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x5A, 0x70, 0xFF, 0x40, 0x1C, 0x23}; - constexpr EncryptedSource<6> source(bytes); - // GLOBAL: gl_25268 - thread_local EncryptedName<6, 0xE55723712993051DULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25268 + this->costText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xE55723712993051DULL))); } this->costText->SetFontHeight(14); this->costText->SetBold(1); @@ -2110,17 +1730,8 @@ void CUIEnchantPage::OnCreate(int width, int height) { void CUINormalPerfect::OnCreate(int width, int height) { CUIEnchantPage::OnCreate(width, height); { - this->background->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xBF, 0x7A, 0x6F, 0xA1, 0xAB, 0x7F, 0xD0, 0xC2, 0xB9, 0x31, 0x6F, 0x97, 0xD6, 0x0B, 0x49, 0x4A, - 0x11, 0xB6, 0xC7, 0x3A, 0x05, 0xC5, 0x40, 0x46, 0x23, 0xB7, 0xC8, 0x04, 0x18, 0xC4, 0x77, 0x7F, - 0x1E, 0xB2, 0xCA, 0x02, 0x45, 0xD3, 0x78, 0x7F, 0x7F - }; - constexpr EncryptedSource<41> source(bytes); - // GLOBAL: gl_25269 - thread_local EncryptedName<41, 0x0F15B16B5BAFD57FULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25269 + this->background->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_subpageY.bmp", 0x0F15B16B5BAFD57FULL))); } } @@ -2129,17 +1740,8 @@ void CUINormalPerfect::OnCreate(int width, int height) { void CUINormalRandom::OnCreate(int width, int height) { CUIEnchantPage::OnCreate(width, height); { - this->background->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x8F, 0xC8, 0x2D, 0x7F, 0xC9, 0xF9, 0xFA, 0xB4, 0x89, 0x83, 0x2D, 0x49, 0xB4, 0x8D, 0x63, 0x3C, - 0x21, 0x04, 0x85, 0xE4, 0x67, 0x43, 0x6A, 0x30, 0x13, 0x05, 0x8A, 0xDA, 0x7A, 0x42, 0x5D, 0x09, - 0x2E, 0x00, 0x88, 0xC7, 0x27, 0x55, 0x52, 0x09, 0x4F - }; - constexpr EncryptedSource<41> source(bytes); - // GLOBAL: gl_25270 - thread_local EncryptedName<41, 0x793F370985ED674FULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25270 + this->background->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_subpageB.bmp", 0x793F370985ED674FULL))); } } @@ -2148,17 +1750,8 @@ void CUINormalRandom::OnCreate(int width, int height) { void CUIReset::OnCreate(int width, int height) { CUIEnchantPage::OnCreate(width, height); { - this->background->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x8F, 0x0E, 0x0F, 0xCF, 0xA3, 0x19, 0x84, 0xB4, 0x89, 0x45, 0x0F, 0xF9, 0xDE, 0x6D, 0x1D, 0x3C, - 0x21, 0xC2, 0xA7, 0x54, 0x0D, 0xA3, 0x14, 0x30, 0x13, 0xC3, 0xA8, 0x6A, 0x10, 0xA2, 0x23, 0x09, - 0x2E, 0xC6, 0xAA, 0x1B, 0x01, 0xBA, 0x31, 0x79 - }; - constexpr EncryptedSource<40> source(bytes); - // GLOBAL: gl_25271 - thread_local EncryptedName<40, 0x7941D76335CFA14FULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25271 + this->background->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_subpage.bmp", 0x7941D76335CFA14FULL))); } } @@ -2167,17 +1760,8 @@ void CUIReset::OnCreate(int width, int height) { void CUIUpgradePerfect::OnCreate(int width, int height) { CUIUpgradeEnchantPage::OnCreate(width, height); { - this->background->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x21, 0x36, 0x47, 0xB5, 0x41, 0x0D, 0xE4, 0xBE, 0x27, 0x7D, 0x47, 0x83, 0x3C, 0x79, 0x7D, 0x36, - 0x8F, 0xFA, 0xEF, 0x2E, 0xEF, 0xB7, 0x74, 0x3A, 0xBD, 0xFB, 0xE0, 0x10, 0xF2, 0xB6, 0x43, 0x03, - 0x80, 0xFE, 0xE2, 0x16, 0xAF, 0xA1, 0x4C, 0x03, 0xE1 - }; - constexpr EncryptedSource<41> source(bytes); - // GLOBAL: gl_25272 - thread_local EncryptedName<41, 0x7321C3814F8799E1ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25272 + this->background->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_subpageY.bmp", 0x7321C3814F8799E1ULL))); } } @@ -2186,17 +1770,8 @@ void CUIUpgradePerfect::OnCreate(int width, int height) { void CUIUpgradeRandom::OnCreate(int width, int height) { CUIUpgradeEnchantPage::OnCreate(width, height); { - this->background->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xE3, 0x5E, 0x17, 0xED, 0x17, 0x87, 0x26, 0xB0, 0xE5, 0x15, 0x17, 0xDB, 0x6A, 0xF3, 0xBF, 0x38, - 0x4D, 0x92, 0xBF, 0x76, 0xB9, 0x3D, 0xB6, 0x34, 0x7F, 0x93, 0xB0, 0x48, 0xA4, 0x3C, 0x81, 0x0D, - 0x42, 0x96, 0xB2, 0x55, 0xF9, 0x2B, 0x8E, 0x0D, 0x23 - }; - constexpr EncryptedSource<41> source(bytes); - // GLOBAL: gl_25273 - thread_local EncryptedName<41, 0x7DE349D717D7F123ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25273 + this->background->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_subpageB.bmp", 0x7DE349D717D7F123ULL))); } } } @@ -2208,17 +1783,8 @@ void CUIEnchantUI::OnCreate(int width, int height) { this->background->SetSize(690, 470); this->background->Move(0, 0); { - this->background->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x0D, 0xAC, 0x0D, 0x81, 0x57, 0xF5, 0xD6, 0xFE, 0x0B, 0xE7, 0x0D, 0xB7, 0x2A, 0x81, 0x4F, 0x76, - 0xA3, 0x60, 0xA5, 0x1A, 0xF9, 0x4F, 0x46, 0x7A, 0x91, 0x61, 0xAA, 0x24, 0xF2, 0x55, 0x70, 0x5B, - 0xAC, 0x6D, 0xB9, 0x2E, 0xDE, 0x15, 0x71, 0x5E, 0xBD, 0x03 - }; - constexpr EncryptedSource<42> source(bytes); - // GLOBAL: gl_25281 - thread_local EncryptedName<42, 0x33133B977BCD03CDULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25281 + this->background->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_enchantUI.bmp", 0x33133B977BCD03CDULL))); } this->AddChild(this->background); @@ -2226,39 +1792,10 @@ void CUIEnchantUI::OnCreate(int width, int height) { this->titleBar->SetSize(690, 17); this->titleBar->Move(0, 0); { - this->titleBar->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x11, 0xF4, 0x57, 0x1F, 0xF9, 0x49, 0x2E, 0xE2, 0x17, 0xBF, 0x57, 0x29, 0x84, 0x3D, 0xB7, 0x4D, - 0xB0, 0x28, 0xFE, 0x86, 0x66, 0xEE, 0x85, 0x5B, 0xB4, 0x29, 0xF1, 0x84, 0x5A, 0xE2, 0xB7, 0x5B, - 0xB8, 0x2F, 0xFB, 0x80, 0x5B, 0xE6, 0x99, 0x70, 0xBD, 0x3E, 0xF1, 0x91, 0x17, 0xE5, 0x86, 0x5F, - 0xD1 - }; - constexpr EncryptedSource<49> source(bytes); - // GLOBAL: gl_25284 - thread_local EncryptedName<49, 0x2FEB8739E5975BD1ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xB5, 0x94, 0xC3, 0xD5, 0xD3, 0x0F, 0x64, 0xA6, 0xB3, 0xDF, 0xC3, 0xE3, 0xAE, 0x7B, 0xFD, 0x09, - 0x14, 0x48, 0x6A, 0x4C, 0x4C, 0xA8, 0xCF, 0x1F, 0x10, 0x49, 0x65, 0x4E, 0x70, 0xA4, 0xFD, 0x1F, - 0x1C, 0x4F, 0x6F, 0x4A, 0x71, 0xA0, 0xD3, 0x34, 0x18, 0x52, 0x67, 0x01, 0x71, 0xAC, 0xD1, 0x6B - }; - constexpr EncryptedSource<48> source(bytes); - // GLOBAL: gl_25283 - thread_local EncryptedName<48, 0x6BA1C1132F033B75ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xEF, 0x78, 0x85, 0xDF, 0xF9, 0x65, 0xE8, 0x6C, 0xE9, 0x33, 0x85, 0xE9, 0x84, 0x11, 0x71, 0xC3, - 0x4E, 0xA4, 0x2C, 0x46, 0x66, 0xC2, 0x43, 0xD5, 0x4A, 0xA5, 0x23, 0x44, 0x5A, 0xCE, 0x71, 0xD5, - 0x46, 0xA3, 0x29, 0x40, 0x5B, 0xCA, 0x5F, 0xFE, 0x5D, 0xBE, 0x22, 0x4D, 0x4D, 0x85, 0x4F, 0xCC, - 0x5F, 0xD7 - }; - constexpr EncryptedSource<50> source(bytes); - // GLOBAL: gl_25282 - thread_local EncryptedName<50, 0xA12DAB392545D72FULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25284 + // GLOBAL: gl_25283 + // GLOBAL: gl_25282 + this->titleBar->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\titlebar_left.bmp", 0x2FEB8739E5975BD1ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\titlebar_mid.bmp", 0x6BA1C1132F033B75ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\titlebar_right.bmp", 0xA12DAB392545D72FULL))); } this->AddChild(this->titleBar); @@ -2269,13 +1806,8 @@ void CUIEnchantUI::OnCreate(int width, int height) { title->SetFitText(0); title->SetAlign(0, 6); { - title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x5A, 0xB2, 0x27, 0xDC, 0xB0, 0x77}; - constexpr EncryptedSource<6> source(bytes); - // GLOBAL: gl_25285 - thread_local EncryptedName<6, 0x234977DDB54BC71DULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25285 + title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x234977DDB54BC71DULL))); } title->SetFontHeight(12); title->SetBold(0); @@ -2292,50 +1824,12 @@ void CUIEnchantUI::OnCreate(int width, int height) { closeButton->disabled = 0; closeButton->Invalidate(); { - const std::string disabled([]() { - constexpr std::uint8_t bytes[] = { - 0x15, 0x96, 0xEB, 0xB3, 0x27, 0x69, 0x52, 0x68, 0x13, 0xDD, 0xEB, 0x85, 0x5A, 0x1D, 0xCB, 0xC7, - 0xB4, 0x4A, 0x42, 0x2A, 0xB8, 0xCE, 0xF9, 0xD1, 0xB0, 0x4B, 0x4D, 0x28, 0x84, 0xC2, 0xCB, 0xD6, - 0xAC, 0x4A, 0x74, 0x2A, 0x8B, 0xC8, 0xE4, 0xC0, 0x8A, 0x56, 0x4D, 0x2F, 0xC9, 0xC5, 0xFA, 0xD5, - 0xD5 - }; - constexpr EncryptedSource<49> source(bytes); - // GLOBAL: gl_25286 - thread_local EncryptedName<49, 0xA597A7E7492B39D5ULL> name(source); - return name.Text(); - }()); - closeButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x05, 0x82, 0xEB, 0xC5, 0x49, 0xD3, 0xA8, 0x22, 0x03, 0xC9, 0xEB, 0xF3, 0x34, 0xA7, 0x31, 0x8D, - 0xA4, 0x5E, 0x42, 0x5C, 0xD6, 0x74, 0x03, 0x9B, 0xA0, 0x5F, 0x4D, 0x5E, 0xEA, 0x78, 0x31, 0x9C, - 0xBC, 0x5E, 0x74, 0x5C, 0xE5, 0x72, 0x1E, 0x8A, 0x9A, 0x42, 0x4D, 0x59, 0xA7, 0x7F, 0x00, 0x9F, - 0xC5 - }; - constexpr EncryptedSource<49> source(bytes); - // GLOBAL: gl_25289 - thread_local EncryptedName<49, 0xEF6D1D893F2B2DC5ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x9B, 0xFC, 0x9F, 0x27, 0x47, 0x51, 0x66, 0xF4, 0x9D, 0xB7, 0x9F, 0x11, 0x3A, 0x25, 0xFF, 0x5B, - 0x3A, 0x20, 0x36, 0xBE, 0xD8, 0xF6, 0xCD, 0x4D, 0x3E, 0x21, 0x39, 0xBC, 0xE4, 0xFA, 0xFF, 0x4A, - 0x22, 0x20, 0x00, 0xBE, 0xEB, 0xF0, 0xD0, 0x5C, 0x04, 0x3C, 0x31, 0xF3, 0xE5, 0xF2, 0xD3, 0x39 - }; - constexpr EncryptedSource<48> source(bytes); - // GLOBAL: gl_25288 - thread_local EncryptedName<48, 0x39A39F87DD5F535BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xB7, 0x38, 0x47, 0xE7, 0xE3, 0x9D, 0x24, 0xA2, 0xB1, 0x73, 0x47, 0xD1, 0x9E, 0xE9, 0xBD, 0x0D, - 0x16, 0xE4, 0xEE, 0x7E, 0x7C, 0x3A, 0x8F, 0x1B, 0x12, 0xE5, 0xE1, 0x7C, 0x40, 0x36, 0xBD, 0x1C, - 0x0E, 0xE4, 0xD8, 0x7E, 0x4F, 0x3C, 0x92, 0x0A, 0x28, 0xF8, 0xE9, 0x33, 0x41, 0x3E, 0x91, 0x6F - }; - constexpr EncryptedSource<48> source(bytes); - // GLOBAL: gl_25287 - thread_local EncryptedName<48, 0x6FE153231D879777ULL> name(source); - return name.Text(); - }()), disabled); + // GLOBAL: gl_25286 + const std::string disabled(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_close_off.bmp", 0xA597A7E7492B39D5ULL)); + // GLOBAL: gl_25289 + // GLOBAL: gl_25288 + // GLOBAL: gl_25287 + closeButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_close_off.bmp", 0xEF6D1D893F2B2DC5ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_close_on.bmp", 0x39A39F87DD5F535BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_close_on.bmp", 0x6FE153231D879777ULL)), disabled); } this->titleBar->SetSecondButton(closeButton); @@ -2347,48 +1841,12 @@ void CUIEnchantUI::OnCreate(int width, int height) { this->targetList->SetOnSelect([this](EnchantUI::CUITargetItem* item, const ITEM_INFO& info) { this->OnSelectTarget(item, info); }); this->targetList->SetBinder([this](EnchantUI::CUITargetItem* item, const ITEM_INFO& info) { this->UpdateTargetItem(item, info); }); { - const std::string disabled([]() { - constexpr std::uint8_t bytes[] = { - 0xD7, 0xFE, 0x21, 0xBB, 0xF9, 0x0D, 0x46, 0x4A, 0xD1, 0xB5, 0x21, 0x8D, 0x84, 0x79, 0xDF, 0xC2, - 0x79, 0x32, 0x89, 0x20, 0x57, 0xB7, 0xD6, 0xCE, 0x4B, 0x33, 0x86, 0x1E, 0x5C, 0xAD, 0xE0, 0xD8, - 0x70, 0x34, 0x80, 0x33, 0x17, 0xA1, 0xEE, 0xF7, 0x17 - }; - constexpr EncryptedSource<41> source(bytes); - // GLOBAL: gl_25290 - thread_local EncryptedName<41, 0x8783C33941E15117ULL> name(source); - return name.Text(); - }()); - this->targetList->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xB3, 0x40, 0x7B, 0x2B, 0x15, 0x2D, 0x6E, 0x32, 0xB5, 0x0B, 0x7B, 0x1D, 0x68, 0x59, 0xF7, 0xBA, - 0x1D, 0x8C, 0xD3, 0xB0, 0xBB, 0x97, 0xFE, 0xB6, 0x2F, 0x8D, 0xDC, 0x8E, 0xB0, 0x8D, 0xC8, 0xA0, - 0x14, 0x8A, 0xDA, 0xA3, 0xFB, 0x81, 0xC6, 0x8F, 0x73 - }; - constexpr EncryptedSource<41> source(bytes); - // GLOBAL: gl_25293 - thread_local EncryptedName<41, 0xFFABE3D5D1BBEF73ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xCF, 0xE0, 0x85, 0x55, 0x5D, 0x8B, 0x5C, 0xCE, 0xC9, 0xAB, 0x85, 0x63, 0x20, 0xFF, 0xC5, 0x46, - 0x61, 0x2C, 0x2D, 0xCE, 0xF3, 0x31, 0xCC, 0x4A, 0x53, 0x2D, 0x22, 0xF0, 0xF8, 0x2B, 0xFA, 0x5C, - 0x68, 0x2A, 0x24, 0xDD, 0xC2, 0x35, 0xEB, 0x66, 0x7C, 0x3C, 0x6B, 0xCD, 0xF0, 0x35, 0x99 - }; - constexpr EncryptedSource<47> source(bytes); - // GLOBAL: gl_25292 - thread_local EncryptedName<47, 0x0399459DAF454F0FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x6B, 0x00, 0x4D, 0x77, 0x73, 0x43, 0x62, 0x18, 0x6D, 0x4B, 0x4D, 0x41, 0x0E, 0x37, 0xFB, 0x90, - 0xC5, 0xCC, 0xE5, 0xEC, 0xDD, 0xF9, 0xF2, 0x9C, 0xF7, 0xCD, 0xEA, 0xD2, 0xD6, 0xE3, 0xC4, 0x8A, - 0xCC, 0xCA, 0xEC, 0xFF, 0xEC, 0xE2, 0xD1, 0xB0, 0xD9, 0x81, 0xEF, 0xE0, 0xC3, 0x8D - }; - constexpr EncryptedSource<46> source(bytes); - // GLOBAL: gl_25291 - thread_local EncryptedName<46, 0xD5A78DB38D8DAFABULL> name(source); - return name.Text(); - }()), disabled); + // GLOBAL: gl_25290 + const std::string disabled(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_enc_gear.bmp", 0x8783C33941E15117ULL)); + // GLOBAL: gl_25293 + // GLOBAL: gl_25292 + // GLOBAL: gl_25291 + this->targetList->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_enc_gear.bmp", 0xFFABE3D5D1BBEF73ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_enc_gear_press.bmp", 0x0399459DAF454F0FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_enc_gear_over.bmp", 0xD5A78DB38D8DAFABULL)), disabled); } this->targetList->itemX = 4; this->targetList->itemY = 0; @@ -2396,53 +1854,17 @@ void CUIEnchantUI::OnCreate(int width, int height) { this->targetList->scrollBar->Move(204, 0); this->targetList->scrollBar->step = 50; { - this->targetList->SetScrollBarButtonImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x5F, 0x72, 0x43, 0xE5, 0xB7, 0x8B, 0xDE, 0xEA, 0x59, 0x39, 0x43, 0xD3, 0xCA, 0xFF, 0x47, 0x62, - 0xF1, 0xBE, 0xEB, 0x7E, 0x19, 0x31, 0x4E, 0x6E, 0xC3, 0xAE, 0xE0, 0x6D, 0x18, 0x29, 0x77, 0x78, - 0xFE, 0xAF, 0xF1, 0x70, 0x00, 0x1A, 0x6E, 0x57, 0xB1, 0xBF, 0xEE, 0x6F, 0x77 - }; - constexpr EncryptedSource<45> source(bytes); - // GLOBAL: gl_25295 - thread_local EncryptedName<45, 0x271B45771F83DD9FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x4F, 0xF6, 0xA1, 0x11, 0x75, 0xD7, 0xC6, 0x0A, 0x49, 0xBD, 0xA1, 0x27, 0x08, 0xA3, 0x5F, 0x82, - 0xE1, 0x3A, 0x09, 0x8A, 0xDB, 0x6D, 0x56, 0x8E, 0xD3, 0x2A, 0x02, 0x99, 0xDA, 0x75, 0x6F, 0x98, - 0xEE, 0x2B, 0x13, 0x84, 0xC2, 0x46, 0x67, 0xA8, 0xF8, 0x34, 0x4F, 0x89, 0xD8, 0x69, 0x03 - }; - constexpr EncryptedSource<47> source(bytes); - // GLOBAL: gl_25294 - thread_local EncryptedName<47, 0xC70319B5EB61598FULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25295 + // GLOBAL: gl_25294 + this->targetList->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\scroll_arrow_up.bmp", 0x271B45771F83DD9FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\scroll_arrow_dowm.bmp", 0xC70319B5EB61598FULL))); } { - this->targetList->SetScrollBarBackground(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x17, 0x3A, 0xDF, 0x61, 0x91, 0x8B, 0x42, 0xC6, 0x11, 0x71, 0xDF, 0x57, 0xEC, 0xFF, 0xDB, 0x4E, - 0xB9, 0xF6, 0x77, 0xFA, 0x3F, 0x31, 0xD2, 0x42, 0x8B, 0xE6, 0x7C, 0xE9, 0x3E, 0x29, 0xEB, 0x54, - 0xB5, 0xF2, 0x31, 0xF9, 0x3C, 0x35, 0x87 - }; - constexpr EncryptedSource<39> source(bytes); - // GLOBAL: gl_25296 - thread_local EncryptedName<39, 0x0B8745519B1F95D7ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25296 + this->targetList->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\scroll_bg.bmp", 0x0B8745519B1F95D7ULL))); } { - this->targetList->SetScrollBarThumbImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xF1, 0x56, 0x13, 0x03, 0xDD, 0x81, 0x0E, 0xCC, 0xF7, 0x1D, 0x13, 0x35, 0xA0, 0xF5, 0x97, 0x44, - 0x5F, 0x9A, 0xBB, 0x98, 0x73, 0x3B, 0x9E, 0x48, 0x6D, 0x8A, 0xB0, 0x8B, 0x72, 0x23, 0xA7, 0x5E, - 0x53, 0x8D, 0xBD, 0xD7, 0x7F, 0x22, 0xBB, 0x01 - }; - constexpr EncryptedSource<40> source(bytes); - // GLOBAL: gl_25297 - thread_local EncryptedName<40, 0x01CB4F1DF9D3F931ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25297 + this->targetList->SetScrollBarThumbImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\scroll_btn.bmp", 0x01CB4F1DF9D3F931ULL))); } this->targetList->AddNewItem(); this->AddChild(this->targetList); @@ -2458,49 +1880,12 @@ void CUIEnchantUI::OnCreate(int width, int height) { normalButton->disabled = 0; normalButton->Invalidate(); { - const std::string disabled([]() { - constexpr std::uint8_t bytes[] = { - 0x99, 0x2A, 0x47, 0x83, 0x37, 0xE1, 0xFA, 0x2E, 0x9F, 0x61, 0x47, 0xB5, 0x4A, 0x95, 0x63, 0xA6, - 0x37, 0xE6, 0xEF, 0x18, 0x99, 0x5B, 0x6A, 0xAA, 0x05, 0xF1, 0xE6, 0x1B, 0xA8, 0x4A, 0x51, 0x80, - 0x06, 0xE6, 0xE8, 0x14, 0x9A, 0x40, 0x51, 0xBC, 0x36, 0xF0, 0xF3, 0x57, 0x95, 0x42, 0x4F, 0xE3 - }; - constexpr EncryptedSource<48> source(bytes); - // GLOBAL: gl_25298 - thread_local EncryptedName<48, 0xE33F2FF779878559ULL> name(source); - return name.Text(); - }()); - normalButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x57, 0x66, 0x09, 0x61, 0x0D, 0x75, 0x74, 0x08, 0x51, 0x2D, 0x09, 0x57, 0x70, 0x01, 0xED, 0x80, - 0xF9, 0xAA, 0xA1, 0xFA, 0xA3, 0xCF, 0xE4, 0x8C, 0xCB, 0xBD, 0xA8, 0xF9, 0x92, 0xDE, 0xDF, 0xA6, - 0xC8, 0xAA, 0xA6, 0xF6, 0xA0, 0xD4, 0xDF, 0x9A, 0xF8, 0xBC, 0xBD, 0xB5, 0xAF, 0xD6, 0xC1, 0xC5 - }; - constexpr EncryptedSource<48> source(bytes); - // GLOBAL: gl_25301 - thread_local EncryptedName<48, 0xC5B1BBCD9BC9C997ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x21, 0x2C, 0x11, 0x17, 0xD1, 0x4F, 0x7E, 0x0C, 0x27, 0x67, 0x11, 0x21, 0xAC, 0x3B, 0xE7, 0x84, - 0x8F, 0xE0, 0xB9, 0x8C, 0x7F, 0xF5, 0xEE, 0x88, 0xBD, 0xF7, 0xB0, 0x8F, 0x4E, 0xE4, 0xD5, 0xA2, - 0xBE, 0xE0, 0xBE, 0x80, 0x7C, 0xEE, 0xD5, 0x9E, 0x92, 0xE6, 0xBD, 0x88, 0x72, 0xF5, 0x95, 0xA3, - 0x8C, 0xF3, 0xD1 - }; - constexpr EncryptedSource<51> source(bytes); - // GLOBAL: gl_25300 - thread_local EncryptedName<51, 0xC1BB8111EDD183E1ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x4B, 0x32, 0xB7, 0x77, 0x21, 0x13, 0xA2, 0xDA, 0x4D, 0x79, 0xB7, 0x41, 0x5C, 0x67, 0x3B, 0x52, - 0xE5, 0xFE, 0x1F, 0xEC, 0x8F, 0xA9, 0x32, 0x5E, 0xD7, 0xE9, 0x16, 0xEF, 0xBE, 0xB8, 0x09, 0x74, - 0xD4, 0xFE, 0x18, 0xE0, 0x8C, 0xB2, 0x09, 0x48, 0xE4, 0xE8, 0x03, 0xA3, 0x83, 0xB0, 0x17, 0x17 - }; - constexpr EncryptedSource<48> source(bytes); - // GLOBAL: gl_25299 - thread_local EncryptedName<48, 0x1767DDE18D779D8BULL> name(source); - return name.Text(); - }()), disabled); + // GLOBAL: gl_25298 + const std::string disabled(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_common_out.bmp", 0xE33F2FF779878559ULL)); + // GLOBAL: gl_25301 + // GLOBAL: gl_25300 + // GLOBAL: gl_25299 + normalButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_common_out.bmp", 0xC5B1BBCD9BC9C997ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_common_select.bmp", 0xC1BB8111EDD183E1ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_common_out.bmp", 0x1767DDE18D779D8BULL)), disabled); } this->tab->AddChild(normalButton); @@ -2510,49 +1895,12 @@ void CUIEnchantUI::OnCreate(int width, int height) { upgradeButton->disabled = 0; upgradeButton->Invalidate(); { - const std::string disabled([]() { - constexpr std::uint8_t bytes[] = { - 0x1D, 0xFA, 0xAF, 0x55, 0x29, 0xDB, 0x2C, 0xB4, 0x1B, 0xB1, 0xAF, 0x63, 0x54, 0xAF, 0xB5, 0x3C, - 0xB3, 0x36, 0x07, 0xCE, 0x87, 0x61, 0xBC, 0x30, 0x81, 0x21, 0x0E, 0xCD, 0xB6, 0x70, 0x87, 0x1A, - 0x82, 0x32, 0x1D, 0xC0, 0x9E, 0x4A, 0x86, 0x0C, 0xA9, 0x7B, 0x0D, 0xC2, 0x99, 0x15 - }; - constexpr EncryptedSource<46> source(bytes); - // GLOBAL: gl_25302 - thread_local EncryptedName<46, 0x79E915E9AF6F55DDULL> name(source); - return name.Text(); - }()); - upgradeButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x7F, 0xC6, 0x23, 0x37, 0x45, 0x49, 0x9A, 0x3C, 0x79, 0x8D, 0x23, 0x01, 0x38, 0x3D, 0x03, 0xB4, - 0xD1, 0x0A, 0x8B, 0xAC, 0xEB, 0xF3, 0x0A, 0xB8, 0xE3, 0x1D, 0x82, 0xAF, 0xDA, 0xE2, 0x31, 0x92, - 0xE0, 0x0E, 0x91, 0xA2, 0xF2, 0xD8, 0x30, 0x84, 0xCB, 0x47, 0x81, 0xA0, 0xF5, 0x87 - }; - constexpr EncryptedSource<46> source(bytes); - // GLOBAL: gl_25305 - thread_local EncryptedName<46, 0xF15F8785CDE369BFULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x75, 0x20, 0x81, 0xDF, 0xD3, 0x33, 0xEA, 0xB4, 0x73, 0x6B, 0x81, 0xE9, 0xAE, 0x47, 0x73, 0x3C, - 0xDB, 0xEC, 0x29, 0x44, 0x7D, 0x89, 0x7A, 0x30, 0xE9, 0xFB, 0x20, 0x47, 0x4C, 0x98, 0x41, 0x1A, - 0xEA, 0xE8, 0x33, 0x4A, 0x64, 0xA2, 0x5C, 0x1C, 0xD9, 0xEA, 0x22, 0x51, 0x3D, 0x9F, 0x42, 0x09, - 0xB5 - }; - constexpr EncryptedSource<49> source(bytes); - // GLOBAL: gl_25304 - thread_local EncryptedName<49, 0x792FFD1325418FB5ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xF3, 0xCC, 0x95, 0x0B, 0xE9, 0xFB, 0x16, 0x84, 0xF5, 0x87, 0x95, 0x3D, 0x94, 0x8F, 0x8F, 0x0C, - 0x5D, 0x00, 0x3D, 0x90, 0x47, 0x41, 0x86, 0x00, 0x6F, 0x17, 0x34, 0x93, 0x76, 0x50, 0xBD, 0x2A, - 0x6C, 0x04, 0x27, 0x9E, 0x5E, 0x6A, 0xBC, 0x3C, 0x47, 0x4D, 0x37, 0x9C, 0x59, 0x35 - }; - constexpr EncryptedSource<46> source(bytes); - // GLOBAL: gl_25303 - thread_local EncryptedName<46, 0x49D33529F1556333ULL> name(source); - return name.Text(); - }()), disabled); + // GLOBAL: gl_25302 + const std::string disabled(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_grow_out.bmp", 0x79E915E9AF6F55DDULL)); + // GLOBAL: gl_25305 + // GLOBAL: gl_25304 + // GLOBAL: gl_25303 + upgradeButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_grow_out.bmp", 0xF15F8785CDE369BFULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_grow_select.bmp", 0x792FFD1325418FB5ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_grow_out.bmp", 0x49D33529F1556333ULL)), disabled); } this->tab->AddChild(upgradeButton); @@ -2562,48 +1910,11 @@ void CUIEnchantUI::OnCreate(int width, int height) { resetButton->disabled = 0; resetButton->Invalidate(); { - resetButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xC1, 0xDA, 0x3D, 0x23, 0xEF, 0x73, 0x6A, 0x7A, 0xC7, 0x91, 0x3D, 0x15, 0x92, 0x07, 0xF3, 0xF2, - 0x6F, 0x16, 0x95, 0xB8, 0x41, 0xC9, 0xFA, 0xFE, 0x5D, 0x01, 0x9C, 0xBB, 0x70, 0xD8, 0xC1, 0xD4, - 0x5E, 0x07, 0x98, 0xAA, 0x4A, 0xC9, 0xF0, 0xD8, 0x74, 0x01, 0xD3, 0xBB, 0x42, 0xCD, 0xAF - }; - constexpr EncryptedSource<47> source(bytes); - // GLOBAL: gl_25309 - thread_local EncryptedName<47, 0xB7AFBD2FD9FD7501ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x25, 0xD4, 0xF3, 0xD3, 0x8D, 0xAB, 0xE8, 0xD4, 0x23, 0x9F, 0xF3, 0xE5, 0xF0, 0xDF, 0x71, 0x5C, - 0x8B, 0x18, 0x5B, 0x48, 0x23, 0x11, 0x78, 0x50, 0xB9, 0x0F, 0x52, 0x4B, 0x12, 0x00, 0x43, 0x7A, - 0xBA, 0x09, 0x56, 0x5A, 0x28, 0x11, 0x72, 0x6A, 0x80, 0x17, 0x56, 0x4A, 0x39, 0x4B, 0x4F, 0x74, - 0x95, 0x7B - }; - constexpr EncryptedSource<50> source(bytes); - // GLOBAL: gl_25308 - thread_local EncryptedName<50, 0x192D654D29337BE5ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x23, 0x7A, 0x93, 0x0D, 0x65, 0xC9, 0x26, 0x7E, 0x25, 0x31, 0x93, 0x3B, 0x18, 0xBD, 0xBF, 0xF6, - 0x8D, 0xB6, 0x3B, 0x96, 0xCB, 0x73, 0xB6, 0xFA, 0xBF, 0xA1, 0x32, 0x95, 0xFA, 0x62, 0x8D, 0xD0, - 0xBC, 0xA7, 0x36, 0x84, 0xC0, 0x73, 0xBC, 0xDC, 0x96, 0xA1, 0x7D, 0x95, 0xC8, 0x77, 0xE3 - }; - constexpr EncryptedSource<47> source(bytes); - // GLOBAL: gl_25307 - thread_local EncryptedName<47, 0xB3E307A5F753D5E3ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xEB, 0x78, 0x89, 0xD5, 0xCF, 0x1F, 0xE6, 0xC6, 0xED, 0x33, 0x89, 0xE3, 0xB2, 0x6B, 0x7F, 0x4E, - 0x45, 0xB4, 0x21, 0x4E, 0x61, 0xA5, 0x76, 0x42, 0x77, 0xA3, 0x28, 0x4D, 0x50, 0xB4, 0x4D, 0x68, - 0x74, 0xA5, 0x2C, 0x5C, 0x6A, 0xA5, 0x7C, 0x64, 0x5E, 0xA3, 0x67, 0x4D, 0x62, 0xA1, 0x23 - }; - constexpr EncryptedSource<47> source(bytes); - // GLOBAL: gl_25306 - thread_local EncryptedName<47, 0x0B23D10F2F49D72BULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25309 + // GLOBAL: gl_25308 + // GLOBAL: gl_25307 + // GLOBAL: gl_25306 + resetButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_reset_out.bmp", 0xB7AFBD2FD9FD7501ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_reset_select.bmp", 0x192D654D29337BE5ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_reset_out.bmp", 0xB3E307A5F753D5E3ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\tab_enc_reset_out.bmp", 0x0B23D10F2F49D72BULL))); } this->tab->AddChild(resetButton); @@ -2612,30 +1923,12 @@ void CUIEnchantUI::OnCreate(int width, int height) { this->normalPage->Move(220, 40); this->AddChild(this->normalPage); { - this->normalPage->firstPage->background->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x0F, 0x74, 0x11, 0xEF, 0x59, 0xE1, 0xAA, 0xDE, 0x09, 0x3F, 0x11, 0xD9, 0x24, 0x95, 0x33, 0x56, - 0xA1, 0xB8, 0xB9, 0x74, 0xF7, 0x5B, 0x3A, 0x5A, 0x93, 0xB9, 0xB6, 0x4A, 0xEA, 0x5A, 0x0D, 0x63, - 0xAE, 0xBC, 0xB4, 0x57, 0xB7, 0x4D, 0x02, 0x63, 0xCF - }; - constexpr EncryptedSource<41> source(bytes); - // GLOBAL: gl_25310 - thread_local EncryptedName<41, 0x136F2F9915D1DBCFULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25310 + this->normalPage->firstPage->background->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_subpageB.bmp", 0x136F2F9915D1DBCFULL))); } { - this->normalPage->secondPage->background->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x91, 0x02, 0x3D, 0xD1, 0x8F, 0xFD, 0x1A, 0xA6, 0x97, 0x49, 0x3D, 0xE7, 0xF2, 0x89, 0x83, 0x2E, - 0x3F, 0xCE, 0x95, 0x4A, 0x21, 0x47, 0x8A, 0x22, 0x0D, 0xCF, 0x9A, 0x74, 0x3C, 0x46, 0xBD, 0x1B, - 0x30, 0xCA, 0x98, 0x72, 0x61, 0x51, 0xB2, 0x1B, 0x51 - }; - constexpr EncryptedSource<41> source(bytes); - // GLOBAL: gl_25311 - thread_local EncryptedName<41, 0x6BDF334F2BFDAD51ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25311 + this->normalPage->secondPage->background->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_subpageY.bmp", 0x6BDF334F2BFDAD51ULL))); } this->upgradePage = new EnchantUI::CUIUpgrade; @@ -2643,30 +1936,12 @@ void CUIEnchantUI::OnCreate(int width, int height) { this->upgradePage->Move(220, 40); this->AddChild(this->upgradePage); { - this->upgradePage->firstPage->background->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x81, 0x92, 0x97, 0x8F, 0xF9, 0x51, 0x88, 0xAA, 0x87, 0xD9, 0x97, 0xB9, 0x84, 0x25, 0x11, 0x22, - 0x2F, 0x5E, 0x3F, 0x14, 0x57, 0xEB, 0x18, 0x2E, 0x1D, 0x5F, 0x30, 0x2A, 0x4A, 0xEA, 0x2F, 0x17, - 0x20, 0x5A, 0x32, 0x37, 0x17, 0xFD, 0x20, 0x17, 0x41 - }; - constexpr EncryptedSource<41> source(bytes); - // GLOBAL: gl_25312 - thread_local EncryptedName<41, 0x674D9F3975573D41ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25312 + this->upgradePage->firstPage->background->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_subpageB.bmp", 0x674D9F3975573D41ULL))); } { - this->upgradePage->secondPage->background->SetImage(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xFD, 0xEE, 0x4B, 0x33, 0x39, 0xD5, 0x00, 0x60, 0xFB, 0xA5, 0x4B, 0x05, 0x44, 0xA1, 0x99, 0xE8, - 0x53, 0x22, 0xE3, 0xA8, 0x97, 0x6F, 0x90, 0xE4, 0x61, 0x23, 0xEC, 0x96, 0x8A, 0x6E, 0xA7, 0xDD, - 0x5C, 0x26, 0xEE, 0x90, 0xD7, 0x79, 0xA8, 0xDD, 0x3D - }; - constexpr EncryptedSource<41> source(bytes); - // GLOBAL: gl_25313 - thread_local EncryptedName<41, 0xADC51BF9C98B413DULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25313 + this->upgradePage->secondPage->background->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\EnchantUI\\bg_subpageY.bmp", 0xADC51BF9C98B413DULL))); } this->resetPage = new EnchantUI::CUIReset; @@ -2679,13 +1954,8 @@ void CUIEnchantUI::OnCreate(int width, int height) { this->textViewer->Move(10, 421); this->textViewer->SetTextOffset(0, 0); { - this->textViewer->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x16, 0x80, 0xA3, 0x20, 0x92, 0x17}; - constexpr EncryptedSource<6> source(bytes); - // GLOBAL: gl_25314 - thread_local EncryptedName<6, 0xDF8117FF49CFF551ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25314 + this->textViewer->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xDF8117FF49CFF551ULL))); } this->textViewer->SetFontHeight(12); this->textViewer->SetBold(1); @@ -2697,70 +1967,19 @@ void CUIEnchantUI::OnCreate(int width, int height) { this->textViewer->SetScrollBarSize(13, 47); this->textViewer->SetScrollStep(13); { - this->textViewer->SetScrollBarButtonImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x89, 0xC2, 0xBF, 0x19, 0x07, 0xCF, 0x8C, 0xDC, 0x8F, 0x89, 0xBF, 0x2F, 0x7A, 0xBB, 0x15, 0x62, - 0x2A, 0x1F, 0x10, 0x8F, 0xAB, 0x31, 0x3C, 0x61, 0x67, 0x0F, 0x12, 0x93, 0xC7 - }; - constexpr EncryptedSource<29> source(bytes); - // GLOBAL: gl_25316 - thread_local EncryptedName<29, 0x114901C7E37F6D49ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xB1, 0x2C, 0xAB, 0xF1, 0xD1, 0xC1, 0x98, 0xB0, 0xB7, 0x67, 0xAB, 0xC7, 0xAC, 0xB5, 0x01, 0x0E, - 0x12, 0xF1, 0x04, 0x67, 0x7D, 0x3F, 0x39, 0x12, 0x06, 0xED, 0x45, 0x69, 0x7C, 0x7F, 0x5D - }; - constexpr EncryptedSource<31> source(bytes); - // GLOBAL: gl_25315 - thread_local EncryptedName<31, 0x7D5D0F110B6B8371ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25316 + // GLOBAL: gl_25315 + this->textViewer->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0up.bmp", 0x114901C7E37F6D49ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0down.bmp", 0x7D5D0F110B6B8371ULL))); } { - this->textViewer->SetScrollBarBackground(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x99, 0x28, 0xC3, 0x87, 0x95, 0x05, 0xE2, 0x16, 0x9F, 0x63, 0xC3, 0xB1, 0xE8, 0x71, 0x7B, 0xA8, - 0x3A, 0xF5, 0x6C, 0x11, 0x39, 0xFB, 0x4A, 0xB2, 0x3D, 0xA9, 0x61, 0x10, 0x25, 0xCB - }; - constexpr EncryptedSource<30> source(bytes); - // GLOBAL: gl_25317 - thread_local EncryptedName<30, 0xDB27CB557D038759ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25317 + this->textViewer->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0mid.bmp", 0xDB27CB557D038759ULL))); } { - this->textViewer->SetScrollBarThumbImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x3F, 0x4C, 0x9D, 0xF9, 0x67, 0x61, 0x66, 0xF2, 0x39, 0x07, 0x9D, 0xCF, 0x1A, 0x15, 0xFF, 0x4C, - 0x9C, 0x91, 0x32, 0x6F, 0xCB, 0x9F, 0xC1, 0x5E, 0x8D, 0xBC, 0x28, 0x73, 0x89, 0xCD, 0xCE, 0x4F, - 0xFF - }; - constexpr EncryptedSource<33> source(bytes); - // GLOBAL: gl_25320 - thread_local EncryptedName<33, 0x3FA3AFA7035DE3FFULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x2F, 0x82, 0x97, 0xF7, 0x05, 0x1F, 0x26, 0x4A, 0x29, 0xC9, 0x97, 0xC1, 0x78, 0x6B, 0xBF, 0xF4, - 0x8C, 0x5F, 0x38, 0x61, 0xA9, 0xE1, 0x81, 0xE6, 0x9D, 0x72, 0x3A, 0x64, 0xA1, 0xFF, 0x81, 0xEA, - 0x9F, 0x2D - }; - constexpr EncryptedSource<34> source(bytes); - // GLOBAL: gl_25319 - thread_local EncryptedName<34, 0x87E3D1C50D572DEFULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x4D, 0x12, 0x7B, 0x99, 0x77, 0xF7, 0x7E, 0x9C, 0x4B, 0x59, 0x7B, 0xAF, 0x0A, 0x83, 0xE7, 0x22, - 0xEE, 0xCF, 0xD4, 0x0F, 0xDB, 0x09, 0xD9, 0x30, 0xFF, 0xE2, 0xDF, 0x0C, 0xC0, 0x57, 0x95, 0x33, - 0xE0, 0xCD, 0xBB - }; - constexpr EncryptedSource<35> source(bytes); - // GLOBAL: gl_25318 - thread_local EncryptedName<35, 0x51BB39B763BBBD8DULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25320 + // GLOBAL: gl_25319 + // GLOBAL: gl_25318 + this->textViewer->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0bar_up.bmp", 0x3FA3AFA7035DE3FFULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0bar_mid.bmp", 0x87E3D1C50D572DEFULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0bar_down.bmp", 0x51BB39B763BBBD8DULL))); } this->AddChild(this->textViewer); diff --git a/Source/UI/GameSettings/GameSettingsUI.cpp b/Source/UI/GameSettings/GameSettingsUI.cpp index f84a5ff90..12fca4fa7 100644 --- a/Source/UI/GameSettings/GameSettingsUI.cpp +++ b/Source/UI/GameSettings/GameSettingsUI.cpp @@ -37,6 +37,7 @@ #include "UI/Window/UIRegisterMgr.h" #include "Resource/MSGSTRINGID.h" #include "Utility/Cipher/LocalEncryptedName.h" +#include "Utility/Cipher/Obfuscate.h" #include #include #include @@ -120,20 +121,10 @@ void GameSettingsUI::CUIGroupSkin::OnCreate(int width, int height) { this->m_title = new CUIStaticText(); this->m_title->SetSize(75, 13); this->m_title->Move(19, 12); - this->m_title->SetText([]() { - constexpr std::uint8_t bytes[] = {0x60, 0xEF, 0xAA, 0x1D, 0xE9}; - constexpr EncryptedSource<5> source(bytes); - thread_local EncryptedName<5, 0x79E915E9AF6F55DDULL> name(source); - return name.Text(); - }()); + this->m_title->SetText(OBFUSCATE_SOURCE_TEXT("스킨", 0x79E915E9AF6F55DDULL)); this->m_title->SetFitText(0); this->m_title->SetAlign(0, 0); - this->m_title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x46, 0x00, 0x91, 0xB0, 0x42, 0xBD}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xB7AFBD2FD9FD7501ULL> name(source); - return name.Text(); - }())); + this->m_title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xB7AFBD2FD9FD7501ULL))); this->m_title->SetFontHeight(12); this->m_title->SetBold(1); this->m_title->SetColor(0); @@ -143,28 +134,8 @@ void GameSettingsUI::CUIGroupSkin::OnCreate(int width, int height) { this->m_combo = new CUIComboBox(); this->m_combo->Create(162, 16, 5); - this->m_combo->SetButton(std::string([]() { - constexpr std::uint8_t bytes[] = {0x25, 0xD4, 0xF3, 0xD3, 0x8D, 0xAB, 0xE8, 0xD4, 0x23, 0x9F, 0xF3, 0xE5, 0xF0, 0xDF, 0x71, 0x7B, 0x84, 0x08, 0x5A, 0x4A, 0x12, 0x0C, 0x43, 0x6D, 0x80, 0x09, 0x55, 0x48, 0x2E, 0x00, 0x71, 0x6D, 0x9D, 0x0F, 0x51, 0x46, 0x35, 0x3A, 0x4F, 0x6D, 0x8B, 0x24, 0x52, 0x07, 0x2F, 0x08, 0x5D, 0x19}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x192D654D29337BE5ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x23, 0x7A, 0x93, 0x0D, 0x65, 0xC9, 0x26, 0x7E, 0x25, 0x31, 0x93, 0x3B, 0x18, 0xBD, 0xBF, 0xD1, 0x82, 0xA6, 0x3A, 0x94, 0xFA, 0x6E, 0x8D, 0xC7, 0x86, 0xA7, 0x35, 0x96, 0xC6, 0x62, 0xBF, 0xC7, 0x9B, 0xA1, 0x31, 0x98, 0xDD, 0x58, 0x81, 0xC7, 0x8D, 0x8A, 0x32, 0xD9, 0xC7, 0x6A, 0x93, 0xB3}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0xB3E307A5F753D5E3ULL> name(source); - return name.Text(); - }()), - std::string([]() { - constexpr std::uint8_t bytes[] = {0xEB, 0x78, 0x89, 0xD5, 0xCF, 0x1F, 0xE6, 0xC6, 0xED, 0x33, 0x89, 0xE3, 0xB2, 0x6B, 0x7F, 0x69, 0x4A, 0xA4, 0x20, 0x4C, 0x50, 0xB8, 0x4D, 0x7F, 0x4E, 0xA5, 0x2F, 0x4E, 0x6C, 0xB4, 0x7F, 0x7F, 0x53, 0xA3, 0x2B, 0x40, 0x77, 0x8E, 0x41, 0x7F, 0x45, 0x88, 0x28, 0x01, 0x6D, 0xBC, 0x53, 0x0B}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x0B23D10F2F49D72BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x0F, 0x74, 0x11, 0xEF, 0x59, 0xE1, 0xAA, 0xDE, 0x09, 0x3F, 0x11, 0xD9, 0x24, 0x95, 0x33, 0x71, 0xAE, 0xA8, 0xB8, 0x76, 0xC6, 0x46, 0x01, 0x67, 0xAA, 0xA9, 0xB7, 0x74, 0xFA, 0x4A, 0x33, 0x67, 0xB7, 0xAF, 0xB3, 0x7A, 0xE1, 0x70, 0x0D, 0x67, 0xA1, 0x84, 0xB0, 0x3B, 0xFB, 0x42, 0x1F, 0x13}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x136F2F9915D1DBCFULL> name(source); - return name.Text(); - }())); + this->m_combo->SetButton(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x192D654D29337BE5ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0xB3E307A5F753D5E3ULL)), + std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x0B23D10F2F49D72BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x136F2F9915D1DBCFULL))); this->m_combo->Move(110, 9); this->m_combo->SetOnSelect([this](CUIComboItem* item, const std::string& name) { this->OnSelect(item, name); }); this->m_combo->SetItemBinder([this](CUIComboItem* item, const std::string& name) { @@ -295,47 +266,11 @@ template void CUIComboBox::Create(int width, int itemHe this->listBox->scrollBar->Move(this->width, 0); this->listBox->scrollBar->step = this->itemHeight; - this->listBox->SetScrollBarButtonImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x57, 0x66, 0x09, 0x61, 0x0D, 0x75, 0x74, 0x08, 0x51, 0x2D, 0x09, 0x57, 0x70, 0x01, 0xED, - 0xB6, 0xF4, 0xBB, 0xA6, 0xF7, 0xA1, 0x8B, 0xC4, 0xB5, 0xB9, 0xAB, 0xA4, 0xEB, 0xCD}; - constexpr EncryptedSource<29> source(bytes); - thread_local EncryptedName<29, 0xC5B1BBCD9BC9C997ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x21, 0x2C, 0x11, 0x17, 0xD1, 0x4F, 0x7E, 0x0C, 0x27, 0x67, 0x11, 0x21, 0xAC, 0x3B, 0xE7, 0xB2, - 0x82, 0xF1, 0xBE, 0x81, 0x7D, 0xB1, 0xDF, 0xAE, 0x96, 0xED, 0xFF, 0x8F, 0x7C, 0xF1, 0xBB}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0xC1BB8111EDD183E1ULL> name(source); - return name.Text(); - }())); + this->listBox->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0up.bmp", 0xC5B1BBCD9BC9C997ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0down.bmp", 0xC1BB8111EDD183E1ULL))); - this->listBox->SetScrollBarBackground(std::string([]() { - constexpr std::uint8_t bytes[] = {0x4B, 0x32, 0xB7, 0x77, 0x21, 0x13, 0xA2, 0xDA, 0x4D, 0x79, 0xB7, 0x41, 0x5C, 0x67, 0x3B, - 0x64, 0xE8, 0xEF, 0x18, 0xE1, 0x8D, 0xED, 0x0A, 0x7E, 0xEF, 0xB3, 0x15, 0xE0, 0x91, 0xDD}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0x1767DDE18D779D8BULL> name(source); - return name.Text(); - }())); + this->listBox->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0mid.bmp", 0x1767DDE18D779D8BULL))); - this->listBox->SetScrollBarThumbImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x99, 0x2A, 0x47, 0x83, 0x37, 0xE1, 0xFA, 0x2E, 0x9F, 0x61, 0x47, 0xB5, 0x4A, 0x95, 0x63, 0x90, 0x3A, - 0xF7, 0xE8, 0x15, 0x9B, 0x1F, 0x5D, 0x82, 0x2B, 0xDA, 0xF2, 0x09, 0xD9, 0x4D, 0x52, 0x93, 0x59}; - constexpr EncryptedSource<33> source(bytes); - thread_local EncryptedName<33, 0xE33F2FF779878559ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x7F, 0xC6, 0x23, 0x37, 0x45, 0x49, 0x9A, 0x3C, 0x79, 0x8D, 0x23, 0x01, 0x38, 0x3D, 0x03, 0x82, 0xDC, - 0x1B, 0x8C, 0xA1, 0xE9, 0xB7, 0x3D, 0x90, 0xCD, 0x36, 0x8E, 0xA4, 0xE1, 0xA9, 0x3D, 0x9C, 0xCF, 0x69}; - constexpr EncryptedSource<34> source(bytes); - thread_local EncryptedName<34, 0xF15F8785CDE369BFULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x75, 0x20, 0x81, 0xDF, 0xD3, 0x33, 0xEA, 0xB4, 0x73, 0x6B, 0x81, 0xE9, 0xAE, 0x47, 0x73, 0x0A, 0xD6, 0xFD, - 0x2E, 0x49, 0x7F, 0xCD, 0x4D, 0x18, 0xC7, 0xD0, 0x25, 0x4A, 0x64, 0x93, 0x01, 0x1B, 0xD8, 0xFF, 0x41}; - constexpr EncryptedSource<35> source(bytes); - thread_local EncryptedName<35, 0x792FFD1325418FB5ULL> name(source); - return name.Text(); - }())); + this->listBox->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0bar_up.bmp", 0xE33F2FF779878559ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0bar_mid.bmp", 0xF15F8785CDE369BFULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0bar_down.bmp", 0x792FFD1325418FB5ULL))); this->listBox->AddNewItem(); } @@ -2338,12 +2273,7 @@ void GameSettingsUI::CUIGroupLogInOut::OnInit() { this->m_title->SetText(LookupMessage(MSI_SKILL_DELAY_INFO_CAST_STAT)); this->m_onText->SetText(LookupMessage(MSI_GAME_SETTINGS_RODEX_SPAM_ON)); this->m_offText->SetText(LookupMessage(MSI_GAME_SETTINGS_RODEX_SPAM_OFF)); - this->m_title->SetTooltip([]() { - constexpr std::uint8_t bytes[] = {0x8A, 0xF1, 0x02, 0x9E, 0x0A, 0x49, 0x18, 0x76, 0xD1, 0x97, 0x42, 0x95, 0x0A, 0x27}; - constexpr EncryptedSource<14> source(bytes); - thread_local EncryptedName<14, 0x03772763F96D9DA5ULL> name(source); - return name.Text(); - }()); + this->m_title->SetTooltip(OBFUSCATE_SOURCE_TEXT("/loginout\x0A/li", 0x03772763F96D9DA5ULL)); } // OFFSET: 0x00A1F890 @@ -2355,12 +2285,7 @@ void GameSettingsUI::CUIComboItem::OnCreate(int width, int height) { this->m_text->SetText(""); this->m_text->SetFitText(1); this->m_text->SetAlign(0, 6); - this->m_text->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x74, 0x16, 0x39, 0x98, 0x44, 0x35}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x49D33529F1556333ULL> name(source); - return name.Text(); - }())); + this->m_text->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x49D33529F1556333ULL))); this->m_text->SetFontHeight(12); this->m_text->SetBold(0); this->m_text->SetColor(0); @@ -2398,30 +2323,10 @@ void GameSettingsUI::CUIGroupSkin::OnInit() { // OFFSET: 0x00A40560 // FUNCTION: fn_15976 void GameSettingsUI::CUIGroupSound::Apply() { - this->SetBgmVolume(g_session.GetDefaultOptionValue([]() { - constexpr std::uint8_t bytes[] = {0xCD, 0xDA, 0x82, 0xD8, 0x2B, 0xAA, 0xC1, 0x00, 0xE2, 0xD8, 0xEF}; - constexpr EncryptedSource<11> source(bytes); - thread_local EncryptedName<11, 0x75ADC57D87EFBD8FULL> name(source); - return name.Text(); - }(), 100)); - this->SetBgmEnabled(g_session.GetDefaultOptionValue([]() { - constexpr std::uint8_t bytes[] = {0x42, 0xD9, 0xF2, 0x40, 0x93}; - constexpr EncryptedSource<5> source(bytes); - thread_local EncryptedName<5, 0xC517FB932D95BB6DULL> name(source); - return name.Text(); - }(), 1) != 0); - this->SetEffectVolume(g_session.GetDefaultOptionValue([]() { - constexpr std::uint8_t bytes[] = {0x8C, 0x93, 0x39, 0xEE, 0xEC, 0xA1, 0xE4, 0x75, 0xA6, 0x99, 0x2A, 0xE6, 0xEA, 0xD5}; - constexpr EncryptedSource<14> source(bytes); - thread_local EncryptedName<14, 0x23BBD58F8B5FF5C9ULL> name(source); - return name.Text(); - }(), 100)); - const int effect = g_session.GetDefaultOptionValue([]() { - constexpr std::uint8_t bytes[] = {0xA8, 0x60, 0x04, 0x0A, 0x57, 0x6D, 0x71}; - constexpr EncryptedSource<7> source(bytes); - thread_local EncryptedName<7, 0x0B7109397F6B1387ULL> name(source); - return name.Text(); - }(), 1); + this->SetBgmVolume(g_session.GetDefaultOptionValue(OBFUSCATE_SOURCE_TEXT("Bgm_Volume", 0x75ADC57D87EFBD8FULL), 100)); + this->SetBgmEnabled(g_session.GetDefaultOptionValue(OBFUSCATE_SOURCE_TEXT("/bgm", 0xC517FB932D95BB6DULL), 1) != 0); + this->SetEffectVolume(g_session.GetDefaultOptionValue(OBFUSCATE_SOURCE_TEXT("Effect_Volume", 0x23BBD58F8B5FF5C9ULL), 100)); + const int effect = g_session.GetDefaultOptionValue(OBFUSCATE_SOURCE_TEXT("/sound", 0x0B7109397F6B1387ULL), 1); const bool muted = effect == 0; this->m_effectSlider->SetTransparent(muted); this->m_effectSlider->dragging = muted; @@ -2617,45 +2522,9 @@ void GameSettingsUI::CUIListPage::OnCreate(int width, int height) { this->m_optionList->scrollBar->SetSize(13, 286); this->m_optionList->scrollBar->Move(387, 0); this->m_optionList->scrollBar->step = 26; - this->m_optionList->SetScrollBarButtonImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x89, 0xC2, 0xBF, 0x19, 0x07, 0xCF, 0x8C, 0xDC, 0x8F, 0x89, 0xBF, 0x2F, 0x7A, 0xBB, 0x15, - 0x62, 0x2A, 0x1F, 0x10, 0x8F, 0xAB, 0x31, 0x3C, 0x61, 0x67, 0x0F, 0x12, 0x93, 0xC7}; - constexpr EncryptedSource<29> source(bytes); - thread_local EncryptedName<29, 0x114901C7E37F6D49ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xB1, 0x2C, 0xAB, 0xF1, 0xD1, 0xC1, 0x98, 0xB0, 0xB7, 0x67, 0xAB, 0xC7, 0xAC, 0xB5, 0x01, 0x0E, - 0x12, 0xF1, 0x04, 0x67, 0x7D, 0x3F, 0x39, 0x12, 0x06, 0xED, 0x45, 0x69, 0x7C, 0x7F, 0x5D}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x7D5D0F110B6B8371ULL> name(source); - return name.Text(); - }())); - this->m_optionList->SetScrollBarBackground(std::string([]() { - constexpr std::uint8_t bytes[] = {0x99, 0x28, 0xC3, 0x87, 0x95, 0x05, 0xE2, 0x16, 0x9F, 0x63, 0xC3, 0xB1, 0xE8, 0x71, 0x7B, - 0xA8, 0x3A, 0xF5, 0x6C, 0x11, 0x39, 0xFB, 0x4A, 0xB2, 0x3D, 0xA9, 0x61, 0x10, 0x25, 0xCB}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0xDB27CB557D038759ULL> name(source); - return name.Text(); - }())); - this->m_optionList->SetScrollBarThumbImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x3F, 0x4C, 0x9D, 0xF9, 0x67, 0x61, 0x66, 0xF2, 0x39, 0x07, 0x9D, 0xCF, 0x1A, 0x15, 0xFF, 0x4C, 0x9C, - 0x91, 0x32, 0x6F, 0xCB, 0x9F, 0xC1, 0x5E, 0x8D, 0xBC, 0x28, 0x73, 0x89, 0xCD, 0xCE, 0x4F, 0xFF}; - constexpr EncryptedSource<33> source(bytes); - thread_local EncryptedName<33, 0x3FA3AFA7035DE3FFULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x2F, 0x82, 0x97, 0xF7, 0x05, 0x1F, 0x26, 0x4A, 0x29, 0xC9, 0x97, 0xC1, 0x78, 0x6B, 0xBF, 0xF4, 0x8C, - 0x5F, 0x38, 0x61, 0xA9, 0xE1, 0x81, 0xE6, 0x9D, 0x72, 0x3A, 0x64, 0xA1, 0xFF, 0x81, 0xEA, 0x9F, 0x2D}; - constexpr EncryptedSource<34> source(bytes); - thread_local EncryptedName<34, 0x87E3D1C50D572DEFULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x4D, 0x12, 0x7B, 0x99, 0x77, 0xF7, 0x7E, 0x9C, 0x4B, 0x59, 0x7B, 0xAF, 0x0A, 0x83, 0xE7, 0x22, 0xEE, 0xCF, - 0xD4, 0x0F, 0xDB, 0x09, 0xD9, 0x30, 0xFF, 0xE2, 0xDF, 0x0C, 0xC0, 0x57, 0x95, 0x33, 0xE0, 0xCD, 0xBB}; - constexpr EncryptedSource<35> source(bytes); - thread_local EncryptedName<35, 0x51BB39B763BBBD8DULL> name(source); - return name.Text(); - }())); + this->m_optionList->SetScrollBarButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0up.bmp", 0x114901C7E37F6D49ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0down.bmp", 0x7D5D0F110B6B8371ULL))); + this->m_optionList->SetScrollBarBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0mid.bmp", 0xDB27CB557D038759ULL))); + this->m_optionList->SetScrollBarThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0bar_up.bmp", 0x3FA3AFA7035DE3FFULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0bar_mid.bmp", 0x87E3D1C50D572DEFULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll0bar_down.bmp", 0x51BB39B763BBBD8DULL))); this->m_optionList->AddNewItem(); this->AddChild(this->m_optionList); @@ -2705,20 +2574,10 @@ void GameSettingsUI::CUIGroupEmblem::OnCreate(int width, int height) { this->m_title = new CUIStaticText(); this->m_title->SetSize(85, 13); this->m_title->Move(19, 12); - this->m_title->SetText([]() { - constexpr std::uint8_t bytes[] = {0x54, 0xFA, 0xB3, 0xDE, 0xC8, 0x1C, 0x11, 0x86, 0x3C, 0xEA, 0xC7, 0x8B, 0xD1, 0xA1}; - constexpr EncryptedSource<14> source(bytes); - thread_local EncryptedName<14, 0x4331A17F33095FEBULL> name(source); - return name.Text(); - }()); + this->m_title->SetText(OBFUSCATE_SOURCE_TEXT("엠블렘 테두리", 0x4331A17F33095FEBULL)); this->m_title->SetFitText(0); this->m_title->SetAlign(0, 0); - this->m_title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x34, 0x52, 0x21, 0x24, 0x94, 0x6F}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xD1056FF94D4D2773ULL> name(source); - return name.Text(); - }())); + this->m_title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xD1056FF94D4D2773ULL))); this->m_title->SetFontHeight(12); this->m_title->SetBold(1); this->m_title->SetColor(0); @@ -2734,27 +2593,7 @@ void GameSettingsUI::CUIGroupEmblem::OnCreate(int width, int height) { onButton->disabled = 0; onButton->Invalidate(); } - this->m_onButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0xD7, 0x76, 0xF3, 0x53, 0xB9, 0x29, 0x52, 0xC2, 0xD1, 0x3D, 0xF3, 0x65, 0xC4, 0x5D, 0xCB, 0x7D, 0x76, 0xBD, 0x5A, 0xC6, 0x1B, 0x93, 0xF9, 0x50, 0x78, 0xBF, 0x55, 0x87, 0x1B, 0x8A, 0xE7, 0x0F}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x0F97E779A933D917ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x81, 0x7E, 0x21, 0x19, 0xAB, 0x87, 0x4C, 0xFA, 0x87, 0x35, 0x21, 0x2F, 0xD6, 0xF3, 0xD5, 0x45, 0x20, 0xB5, 0x88, 0x8C, 0x09, 0x3D, 0xE7, 0x68, 0x2E, 0xBF, 0xCF, 0x81, 0x06, 0x39, 0x89}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x3789496BE3E1D141ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xAD, 0x14, 0x55, 0xD7, 0x53, 0x35, 0xD2, 0x08, 0xAB, 0x5F, 0x55, 0xE1, 0x2E, 0x41, 0x4B, 0xB7, 0x0C, 0xDF, 0xFC, 0x42, 0xF1, 0x8F, 0x79, 0x9A, 0x02, 0xDD, 0xF3, 0x03, 0xF1, 0x96, 0x67, 0xC5}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0xC517FB932D95BB6DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x09, 0x5A, 0x9F, 0x71, 0x4F, 0x1B, 0x7E, 0xEE, 0x0F, 0x11, 0x9F, 0x47, 0x32, 0x6F, 0xE7, 0x51, 0xA8, 0x91, 0x36, 0xE4, 0xED, 0xA1, 0xD5, 0x7C, 0xA6, 0x93, 0x39, 0xA5, 0xED, 0xB8, 0xCB, 0x23}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x23BBD58F8B5FF5C9ULL> name(source); - return name.Text(); - }())); + this->m_onButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x0F97E779A933D917ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_on.bmp", 0x3789496BE3E1D141ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0xC517FB932D95BB6DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x23BBD58F8B5FF5C9ULL))); { auto* const onButton = this->m_onButton; onButton->checked = false; @@ -2764,20 +2603,10 @@ void GameSettingsUI::CUIGroupEmblem::OnCreate(int width, int height) { this->m_onText = new CUIStaticText(); this->m_onText->SetSize(50, 13); this->m_onText->Move(127, 12); - this->m_onText->SetText([]() { - constexpr std::uint8_t bytes[] = {0x3D, 0xAB, 0xAB, 0xB3, 0x88, 0xEB, 0x71}; - constexpr EncryptedSource<7> source(bytes); - thread_local EncryptedName<7, 0x0B7109397F6B1387ULL> name(source); - return name.Text(); - }()); + this->m_onText->SetText(OBFUSCATE_SOURCE_TEXT("보이기", 0x0B7109397F6B1387ULL)); this->m_onText->SetFitText(0); this->m_onText->SetAlign(0, 0); - this->m_onText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xE2, 0xE8, 0x01, 0x90, 0x0E, 0x27}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x03772763F96D9DA5ULL> name(source); - return name.Text(); - }())); + this->m_onText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x03772763F96D9DA5ULL))); this->m_onText->SetFontHeight(12); this->m_onText->SetBold(0); this->m_onText->SetColor(0); @@ -2793,27 +2622,7 @@ void GameSettingsUI::CUIGroupEmblem::OnCreate(int width, int height) { offButton->disabled = 0; offButton->Invalidate(); } - this->m_offButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0xF7, 0xE8, 0x6D, 0xC3, 0x7F, 0x2B, 0x6C, 0xDA, 0xF1, 0xA3, 0x6D, 0xF5, 0x02, 0x5F, 0xF5, 0x65, 0x56, 0x23, 0xC4, 0x56, 0xDD, 0x91, 0xC7, 0x48, 0x58, 0x21, 0xCB, 0x17, 0xDD, 0x88, 0xD9, 0x17}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x17A9E5BF39AD4737ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xA7, 0x04, 0x51, 0x5F, 0x61, 0xF1, 0x26, 0xDE, 0xA1, 0x4F, 0x51, 0x69, 0x1C, 0x85, 0xBF, 0x61, 0x06, 0xCF, 0xF8, 0xCA, 0xC3, 0x4B, 0x8D, 0x4C, 0x08, 0xC5, 0xBF, 0xC7, 0xCC, 0x4F, 0xE3}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x13E33FA1A591AB67ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xAF, 0xD2, 0x3B, 0xD9, 0xB1, 0xC9, 0x4A, 0x00, 0xA9, 0x99, 0x3B, 0xEF, 0xCC, 0xBD, 0xD3, 0xBF, 0x0E, 0x19, 0x92, 0x4C, 0x13, 0x73, 0xE1, 0x92, 0x00, 0x1B, 0x9D, 0x0D, 0x13, 0x6A, 0xFF, 0xCD}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0xCD8F077123FB7D6FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x83, 0x86, 0x93, 0xDD, 0x15, 0x71, 0x8C, 0x54, 0x85, 0xCD, 0x93, 0xEB, 0x68, 0x05, 0x15, 0xEB, 0x22, 0x4D, 0x3A, 0x48, 0xB7, 0xCB, 0x27, 0xC6, 0x2C, 0x4F, 0x35, 0x09, 0xB7, 0xD2, 0x39, 0x99}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x9949BFD527532943ULL> name(source); - return name.Text(); - }())); + this->m_offButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x17A9E5BF39AD4737ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_on.bmp", 0x13E33FA1A591AB67ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0xCD8F077123FB7D6FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x9949BFD527532943ULL))); { auto* const offButton = this->m_offButton; offButton->checked = false; @@ -2823,20 +2632,10 @@ void GameSettingsUI::CUIGroupEmblem::OnCreate(int width, int height) { this->m_offText = new CUIStaticText(); this->m_offText->SetSize(100, 13); this->m_offText->Move(222, 12); - this->m_offText->SetText([]() { - constexpr std::uint8_t bytes[] = {0xED, 0x70, 0x7C, 0xE3, 0x0A, 0xDF, 0x41}; - constexpr EncryptedSource<7> source(bytes); - thread_local EncryptedName<7, 0xD1413DBB01CD8B51ULL> name(source); - return name.Text(); - }()); + this->m_offText->SetText(OBFUSCATE_SOURCE_TEXT("숨기기", 0xD1413DBB01CD8B51ULL)); this->m_offText->SetFitText(0); this->m_offText->SetAlign(0, 0); - this->m_offText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x2E, 0x6A, 0x1B, 0x3C, 0xF0, 0x95}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x637B959D55771F69ULL> name(source); - return name.Text(); - }())); + this->m_offText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x637B959D55771F69ULL))); this->m_offText->SetFontHeight(12); this->m_offText->SetBold(0); this->m_offText->SetColor(0); @@ -2851,20 +2650,10 @@ void GameSettingsUI::CUIGroupFullscreen::OnCreate(int width, int height) { this->m_title = new CUIStaticText(); this->m_title->SetSize(130, 13); this->m_title->Move(19, 12); - this->m_title->SetText([]() { - constexpr std::uint8_t bytes[] = {0xC3, 0x18, 0x31, 0xFC, 0x29, 0x0F, 0x69, 0x76, 0xEE, 0xB5}; - constexpr EncryptedSource<10> source(bytes); - thread_local EncryptedName<10, 0xC399B7091589B50BULL> name(source); - return name.Text(); - }()); + this->m_title->SetText(OBFUSCATE_SOURCE_TEXT("화면 모드", 0xC399B7091589B50BULL)); this->m_title->SetFitText(0); this->m_title->SetAlign(0, 0); - this->m_title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x28, 0xD8, 0x4D, 0x80, 0x52, 0x07}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xB739073FE921AD6FULL> name(source); - return name.Text(); - }())); + this->m_title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xB739073FE921AD6FULL))); this->m_title->SetFontHeight(12); this->m_title->SetBold(1); this->m_title->SetColor(0); @@ -2880,27 +2669,7 @@ void GameSettingsUI::CUIGroupFullscreen::OnCreate(int width, int height) { onButton->disabled = 0; onButton->Invalidate(); } - this->m_onButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x8F, 0xE4, 0x73, 0x75, 0xED, 0xDB, 0x84, 0x4A, 0x89, 0xAF, 0x73, 0x43, 0x90, 0xAF, 0x1D, 0xF5, 0x2E, 0x2F, 0xDA, 0xE0, 0x4F, 0x61, 0x2F, 0xD8, 0x20, 0x2D, 0xD5, 0xA1, 0x4F, 0x78, 0x31, 0x87}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x8741152D8FB34B4FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xC7, 0x14, 0x29, 0xB7, 0x39, 0x83, 0x98, 0x58, 0xC1, 0x5F, 0x29, 0x81, 0x44, 0xF7, 0x01, 0xE7, 0x66, 0xDF, 0x80, 0x22, 0x9B, 0x39, 0x33, 0xCA, 0x68, 0xD5, 0xC7, 0x2F, 0x94, 0x3D, 0x5D}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x955D4DF94DE9BB07ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xD7, 0x56, 0x8F, 0x43, 0x3B, 0x7B, 0xEA, 0x08, 0xD1, 0x1D, 0x8F, 0x75, 0x46, 0x0F, 0x73, 0xB7, 0x76, 0x9D, 0x26, 0xD6, 0x99, 0xC1, 0x41, 0x9A, 0x78, 0x9F, 0x29, 0x97, 0x99, 0xD8, 0x5F, 0xC5}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0xC52FB5FBB94FF917ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x05, 0x62, 0x47, 0x0F, 0x61, 0x6D, 0x22, 0x5E, 0x03, 0x29, 0x47, 0x39, 0x1C, 0x19, 0xBB, 0xE1, 0xA4, 0xA9, 0xEE, 0x9A, 0xC3, 0xD7, 0x89, 0xCC, 0xAA, 0xAB, 0xE1, 0xDB, 0xC3, 0xCE, 0x97, 0x93}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x93E7A3A1F587CDC5ULL> name(source); - return name.Text(); - }())); + this->m_onButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x8741152D8FB34B4FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_on.bmp", 0x955D4DF94DE9BB07ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0xC52FB5FBB94FF917ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x93E7A3A1F587CDC5ULL))); { auto* const onButton = this->m_onButton; onButton->checked = false; @@ -2910,20 +2679,10 @@ void GameSettingsUI::CUIGroupFullscreen::OnCreate(int width, int height) { this->m_onText = new CUIStaticText(); this->m_onText->SetSize(150, 13); this->m_onText->Move(167, 12); - this->m_onText->SetText([]() { - constexpr std::uint8_t bytes[] = {0xE7, 0xFD, 0xC4, 0xD1, 0xCB, 0x68, 0x4B, 0xC6, 0x07, 0xB9, 0xF7, 0xD8, 0xE6, 0xC5}; - constexpr EncryptedSource<14> source(bytes); - thread_local EncryptedName<14, 0x2FF3C5036D070127ULL> name(source); - return name.Text(); - }()); + this->m_onText->SetText(OBFUSCATE_SOURCE_TEXT("전체화면 모드", 0x2FF3C5036D070127ULL)); this->m_onText->SetFitText(0); this->m_onText->SetAlign(0, 0); - this->m_onText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xF4, 0x12, 0xAF, 0x3A, 0x94, 0x9B}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x17359BF953C367B3ULL> name(source); - return name.Text(); - }())); + this->m_onText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x17359BF953C367B3ULL))); this->m_onText->SetFontHeight(12); this->m_onText->SetBold(0); this->m_onText->SetColor(0); @@ -2939,27 +2698,7 @@ void GameSettingsUI::CUIGroupFullscreen::OnCreate(int width, int height) { offButton->disabled = 0; offButton->Invalidate(); } - this->m_offButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x95, 0x52, 0x75, 0x21, 0x07, 0x7F, 0xB0, 0xFE, 0x93, 0x19, 0x75, 0x17, 0x7A, 0x0B, 0x29, 0x41, 0x34, 0x99, 0xDC, 0xB4, 0xA5, 0xC5, 0x1B, 0x6C, 0x3A, 0x9B, 0xD3, 0xF5, 0xA5, 0xDC, 0x05, 0x33}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x3375B1C7DBB5FD55ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xDF, 0x9E, 0x0D, 0x1D, 0x2D, 0xBB, 0xA8, 0xD0, 0xD9, 0xD5, 0x0D, 0x2B, 0x50, 0xCF, 0x31, 0x6F, 0x7E, 0x55, 0xA4, 0x88, 0x8F, 0x01, 0x03, 0x42, 0x70, 0x5F, 0xE3, 0x85, 0x80, 0x05, 0x6D}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x1D6D75EDE7CD311FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x61, 0x92, 0x5F, 0x2D, 0xA3, 0x41, 0xE2, 0x94, 0x67, 0xD9, 0x5F, 0x1B, 0xDE, 0x35, 0x7B, 0x2B, 0xC0, 0x59, 0xF6, 0xB8, 0x01, 0xFB, 0x49, 0x06, 0xCE, 0x5B, 0xF9, 0xF9, 0x01, 0xE2, 0x57, 0x59}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x59278F63D79F3DA1ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x77, 0xA8, 0x97, 0x37, 0xEB, 0x29, 0xEE, 0x4C, 0x71, 0xE3, 0x97, 0x01, 0x96, 0x5D, 0x77, 0xF3, 0xD6, 0x63, 0x3E, 0xA2, 0x49, 0x93, 0x45, 0xDE, 0xD8, 0x61, 0x31, 0xE3, 0x49, 0x8A, 0x5B, 0x81}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x812BE72BCD5707B7ULL> name(source); - return name.Text(); - }())); + this->m_offButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x3375B1C7DBB5FD55ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_on.bmp", 0x1D6D75EDE7CD311FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x59278F63D79F3DA1ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x812BE72BCD5707B7ULL))); { auto* const offButton = this->m_offButton; offButton->checked = false; @@ -2969,20 +2708,10 @@ void GameSettingsUI::CUIGroupFullscreen::OnCreate(int width, int height) { this->m_offText = new CUIStaticText(); this->m_offText->SetSize(100, 13); this->m_offText->Move(287, 12); - this->m_offText->SetText([]() { - constexpr std::uint8_t bytes[] = {0xCA, 0x0B, 0x8F, 0xF2, 0x61, 0xB4, 0x55, 0x6B, 0xF9, 0x1C, 0xA2, 0x5F}; - constexpr EncryptedSource<12> source(bytes); - thread_local EncryptedName<12, 0xD3755DD95F47A909ULL> name(source); - return name.Text(); - }()); + this->m_offText->SetText(OBFUSCATE_SOURCE_TEXT("창화면 모드", 0xD3755DD95F47A909ULL)); this->m_offText->SetFitText(0); this->m_offText->SetAlign(0, 0); - this->m_offText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x2A, 0x96, 0x29, 0xCA, 0x80, 0xC1}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x31D7C1EDA345E36DULL> name(source); - return name.Text(); - }())); + this->m_offText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x31D7C1EDA345E36DULL))); this->m_offText->SetFontHeight(12); this->m_offText->SetBold(0); this->m_offText->SetColor(0); @@ -2997,20 +2726,10 @@ void GameSettingsUI::CUIGroupGraphics::OnCreate(int width, int height) { this->m_title = new CUIStaticText(); this->m_title->SetSize(130, 13); this->m_title->Move(19, 12); - this->m_title->SetText([]() { - constexpr std::uint8_t bytes[] = {0x92, 0x54, 0x6C, 0x22, 0x86, 0x75, 0x1F, 0x0B, 0xC6, 0x47, 0x7A, 0xA3, 0xFD, 0x0E, 0xFE, 0x6F, 0x23}; - constexpr EncryptedSource<17> source(bytes); - thread_local EncryptedName<17, 0xCB3FBD4183DB8323ULL> name(source); - return name.Text(); - }()); + this->m_title->SetText(OBFUSCATE_SOURCE_TEXT("그래픽 장치 설정", 0xCB3FBD4183DB8323ULL)); this->m_title->SetFitText(0); this->m_title->SetAlign(0, 0); - this->m_title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x0A, 0xA4, 0xA7, 0xAE, 0x94, 0x77}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x7FCD77F9C7CBD14DULL> name(source); - return name.Text(); - }())); + this->m_title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x7FCD77F9C7CBD14DULL))); this->m_title->SetFontHeight(12); this->m_title->SetBold(1); this->m_title->SetColor(0); @@ -3020,28 +2739,8 @@ void GameSettingsUI::CUIGroupGraphics::OnCreate(int width, int height) { this->m_adapterCombo = new CUIComboBox(); this->m_adapterCombo->Create(162, 16, 5); - this->m_adapterCombo->SetButton(std::string([]() { - constexpr std::uint8_t bytes[] = {0xF9, 0x4E, 0x69, 0x15, 0x21, 0x69, 0x96, 0xCA, 0xFF, 0x05, 0x69, 0x23, 0x5C, 0x1D, 0x0F, 0x65, 0x58, 0x92, 0xC0, 0x8C, 0xBE, 0xCE, 0x3D, 0x73, 0x5C, 0x93, 0xCF, 0x8E, 0x82, 0xC2, 0x0F, 0x73, 0x41, 0x95, 0xCB, 0x80, 0x99, 0xF8, 0x31, 0x73, 0x57, 0xBE, 0xC8, 0xC1, 0x83, 0xCA, 0x23, 0x07}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x0753A7E1EFA9E139ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xD9, 0xC2, 0x0F, 0x05, 0x9D, 0xCF, 0x04, 0xB2, 0xDF, 0x89, 0x0F, 0x33, 0xE0, 0xBB, 0x9D, 0x1D, 0x78, 0x1E, 0xA6, 0x9C, 0x02, 0x68, 0xAF, 0x0B, 0x7C, 0x1F, 0xA9, 0x9E, 0x3E, 0x64, 0x9D, 0x0B, 0x61, 0x19, 0xAD, 0x90, 0x25, 0x5E, 0xA3, 0x0B, 0x77, 0x32, 0xAE, 0xD1, 0x3F, 0x6C, 0xB1, 0x7F}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x7FC1015DFFCF6D19ULL> name(source); - return name.Text(); - }()), - std::string([]() { - constexpr std::uint8_t bytes[] = {0x97, 0x2C, 0x29, 0x2F, 0x41, 0x0B, 0x88, 0x8A, 0x91, 0x67, 0x29, 0x19, 0x3C, 0x7F, 0x11, 0x25, 0x36, 0xF0, 0x80, 0xB6, 0xDE, 0xAC, 0x23, 0x33, 0x32, 0xF1, 0x8F, 0xB4, 0xE2, 0xA0, 0x11, 0x33, 0x2F, 0xF7, 0x8B, 0xBA, 0xF9, 0x9A, 0x2F, 0x33, 0x39, 0xDC, 0x88, 0xFB, 0xE3, 0xA8, 0x3D, 0x47}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x474DC581D5E98357ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xAD, 0xF0, 0x39, 0xC9, 0x23, 0xB5, 0x90, 0xF2, 0xAB, 0xBB, 0x39, 0xFF, 0x5E, 0xC1, 0x09, 0x5D, 0x0C, 0x2C, 0x90, 0x50, 0xBC, 0x12, 0x3B, 0x4B, 0x08, 0x2D, 0x9F, 0x52, 0x80, 0x1E, 0x09, 0x4B, 0x15, 0x2B, 0x9B, 0x5C, 0x9B, 0x24, 0x37, 0x4B, 0x03, 0x00, 0x98, 0x1D, 0x81, 0x16, 0x25, 0x3F}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x3F557BE333F95F6DULL> name(source); - return name.Text(); - }())); + this->m_adapterCombo->SetButton(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x0753A7E1EFA9E139ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x7FC1015DFFCF6D19ULL)), + std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x474DC581D5E98357ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x3F557BE333F95F6DULL))); this->m_adapterCombo->Move(150, 9); this->m_adapterCombo->SetOnSelect([this](CUIComboItem* item, const RenderAdapter& adapter) { this->OnAdapterSelect(item, adapter); }); this->m_adapterCombo->SetItemBinder([this](CUIComboItem* item, const RenderAdapter& adapter) { @@ -3052,20 +2751,10 @@ void GameSettingsUI::CUIGroupGraphics::OnCreate(int width, int height) { this->m_modeText = new CUIStaticText(); this->m_modeText->SetSize(130, 13); this->m_modeText->Move(19, 44); - this->m_modeText->SetText([]() { - constexpr std::uint8_t bytes[] = {0xAA, 0xDA, 0x8E, 0xA8, 0x68, 0x81, 0xAF, 0x9C, 0xC3, 0xB6, 0xCA, 0xBC, 0x1A, 0x69, 0x33, 0xE8, 0xDA, 0xA9, 0x39}; - constexpr EncryptedSource<19> source(bytes); - thread_local EncryptedName<19, 0x5B8F49AF09390D1BULL> name(source); - return name.Text(); - }()); + this->m_modeText->SetText(OBFUSCATE_SOURCE_TEXT("그래픽 해상도 설정", 0x5B8F49AF09390D1BULL)); this->m_modeText->SetFitText(0); this->m_modeText->SetAlign(0, 0); - this->m_modeText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xA8, 0x56, 0xB9, 0x86, 0x74, 0x51}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x3B915119EFD523EFULL> name(source); - return name.Text(); - }())); + this->m_modeText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x3B915119EFD523EFULL))); this->m_modeText->SetFontHeight(12); this->m_modeText->SetBold(1); this->m_modeText->SetColor(0); @@ -3075,28 +2764,8 @@ void GameSettingsUI::CUIGroupGraphics::OnCreate(int width, int height) { this->m_modeCombo = new CUIComboBox(); this->m_modeCombo->Create(162, 16, 5); - this->m_modeCombo->SetButton(std::string([]() { - constexpr std::uint8_t bytes[] = {0x5B, 0x02, 0xB5, 0x35, 0x11, 0xF3, 0x28, 0xA0, 0x5D, 0x49, 0xB5, 0x03, 0x6C, 0x87, 0xB1, 0x0F, 0xFA, 0xDE, 0x1C, 0xAC, 0x8E, 0x54, 0x83, 0x19, 0xFE, 0xDF, 0x13, 0xAE, 0xB2, 0x58, 0xB1, 0x19, 0xE3, 0xD9, 0x17, 0xA0, 0xA9, 0x62, 0x8F, 0x19, 0xF5, 0xF2, 0x14, 0xE1, 0xB3, 0x50, 0x9D, 0x6D}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x6DED3DD1CF75AD9BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x01, 0x7C, 0x1B, 0x8D, 0x5B, 0xBB, 0x06, 0x84, 0x07, 0x37, 0x1B, 0xBB, 0x26, 0xCF, 0x9F, 0x2B, 0xA0, 0xA0, 0xB2, 0x14, 0xC4, 0x1C, 0xAD, 0x3D, 0xA4, 0xA1, 0xBD, 0x16, 0xF8, 0x10, 0x9F, 0x3D, 0xB9, 0xA7, 0xB9, 0x18, 0xE3, 0x2A, 0xA1, 0x3D, 0xAF, 0x8C, 0xBA, 0x59, 0xF9, 0x18, 0xB3, 0x49}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x49C3759B77DBD3C1ULL> name(source); - return name.Text(); - }()), - std::string([]() { - constexpr std::uint8_t bytes[] = {0x3D, 0x52, 0xBD, 0x09, 0x21, 0xDB, 0x3C, 0xD6, 0x3B, 0x19, 0xBD, 0x3F, 0x5C, 0xAF, 0xA5, 0x79, 0x9C, 0x8E, 0x14, 0x90, 0xBE, 0x7C, 0x97, 0x6F, 0x98, 0x8F, 0x1B, 0x92, 0x82, 0x70, 0xA5, 0x6F, 0x85, 0x89, 0x1F, 0x9C, 0x99, 0x4A, 0x9B, 0x6F, 0x93, 0xA2, 0x1C, 0xDD, 0x83, 0x78, 0x89, 0x1B}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x1BF915E1F37DFDFDULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x1F, 0x76, 0x9D, 0x93, 0xD3, 0x5D, 0x3A, 0xCC, 0x19, 0x3D, 0x9D, 0xA5, 0xAE, 0x29, 0xA3, 0x63, 0xBE, 0xAA, 0x34, 0x0A, 0x4C, 0xFA, 0x91, 0x75, 0xBA, 0xAB, 0x3B, 0x08, 0x70, 0xF6, 0xA3, 0x75, 0xA7, 0xAD, 0x3F, 0x06, 0x6B, 0xCC, 0x9D, 0x75, 0xB1, 0x86, 0x3C, 0x47, 0x71, 0xFE, 0x8F, 0x01}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x01FF9313695DD9DFULL> name(source); - return name.Text(); - }())); + this->m_modeCombo->SetButton(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x6DED3DD1CF75AD9BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x49C3759B77DBD3C1ULL)), + std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x1BF915E1F37DFDFDULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x01FF9313695DD9DFULL))); this->m_modeCombo->Move(150, 41); this->m_modeCombo->SetOnSelect([this](CUIComboItem* item, const DisplayMode& mode) { this->OnModeSelect(item, mode); }); this->m_modeCombo->SetItemBinder([this](CUIComboItem* item, const DisplayMode& mode) { @@ -3111,20 +2780,10 @@ void GameSettingsUI::CUIGroupGraphicsAPI::OnCreate(int width, int height) { this->m_title = new CUIStaticText(); this->m_title->SetSize(130, 13); this->m_title->Move(19, 12); - this->m_title->SetText([]() { - constexpr std::uint8_t bytes[] = {0xEE, 0xE2, 0x18, 0x34, 0x5A, 0x41, 0xD3, 0x8E, 0x0F, 0x7C, 0xAF}; - constexpr EncryptedSource<11> source(bytes); - thread_local EncryptedName<11, 0xCFF3899D95AF355FULL> name(source); - return name.Text(); - }()); + this->m_title->SetText(OBFUSCATE_SOURCE_TEXT("그래픽 API", 0xCFF3899D95AF355FULL)); this->m_title->SetFitText(0); this->m_title->SetAlign(0, 0); - this->m_title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x62, 0x04, 0xC3, 0xA2, 0x60, 0xF3}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xE52DF30DCBAF7125ULL> name(source); - return name.Text(); - }())); + this->m_title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xE52DF30DCBAF7125ULL))); this->m_title->SetFontHeight(12); this->m_title->SetBold(1); this->m_title->SetColor(0); @@ -3134,28 +2793,8 @@ void GameSettingsUI::CUIGroupGraphicsAPI::OnCreate(int width, int height) { this->m_combo = new CUIComboBox(); this->m_combo->Create(162, 16, 5); - this->m_combo->SetButton(std::string([]() { - constexpr std::uint8_t bytes[] = {0x99, 0x18, 0xC7, 0xE9, 0x05, 0xB3, 0xA6, 0x82, 0x9F, 0x53, 0xC7, 0xDF, 0x78, 0xC7, 0x3F, 0x2D, 0x38, 0xC4, 0x6E, 0x70, 0x9A, 0x14, 0x0D, 0x3B, 0x3C, 0xC5, 0x61, 0x72, 0xA6, 0x18, 0x3F, 0x3B, 0x21, 0xC3, 0x65, 0x7C, 0xBD, 0x22, 0x01, 0x3B, 0x37, 0xE8, 0x66, 0x3D, 0xA7, 0x10, 0x13, 0x4F}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x4F637DC51307B759ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x6B, 0x6E, 0x8D, 0xC3, 0xA7, 0xBB, 0x0E, 0xE0, 0x6D, 0x25, 0x8D, 0xF5, 0xDA, 0xCF, 0x97, 0x4F, 0xCA, 0xB2, 0x24, 0x5A, 0x38, 0x1C, 0xA5, 0x59, 0xCE, 0xB3, 0x2B, 0x58, 0x04, 0x10, 0x97, 0x59, 0xD3, 0xB5, 0x2F, 0x56, 0x1F, 0x2A, 0xA9, 0x59, 0xC5, 0x9E, 0x2C, 0x17, 0x05, 0x18, 0xBB, 0x2D}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x2DCB7567394DC1ABULL> name(source); - return name.Text(); - }()), - std::string([]() { - constexpr std::uint8_t bytes[] = {0x4D, 0x14, 0x0F, 0x81, 0x51, 0x69, 0x5A, 0x7E, 0x4B, 0x5F, 0x0F, 0xB7, 0x2C, 0x1D, 0xC3, 0xD1, 0xEC, 0xC8, 0xA6, 0x18, 0xCE, 0xCE, 0xF1, 0xC7, 0xE8, 0xC9, 0xA9, 0x1A, 0xF2, 0xC2, 0xC3, 0xC7, 0xF5, 0xCF, 0xAD, 0x14, 0xE9, 0xF8, 0xFD, 0xC7, 0xE3, 0xE4, 0xAE, 0x55, 0xF3, 0xCA, 0xEF, 0xB3}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0xB39FA7917BCFBB8DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x37, 0xBC, 0xEB, 0x55, 0x31, 0xC1, 0xD8, 0x40, 0x31, 0xF7, 0xEB, 0x63, 0x4C, 0xB5, 0x41, 0xEF, 0x96, 0x60, 0x42, 0xCC, 0xAE, 0x66, 0x73, 0xF9, 0x92, 0x61, 0x4D, 0xCE, 0x92, 0x6A, 0x41, 0xF9, 0x8F, 0x67, 0x49, 0xC0, 0x89, 0x50, 0x7F, 0xF9, 0x99, 0x4C, 0x4A, 0x81, 0x93, 0x62, 0x6D, 0x8D}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x8D1D0FF1AF2B13F7ULL> name(source); - return name.Text(); - }())); + this->m_combo->SetButton(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x4F637DC51307B759ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x2DCB7567394DC1ABULL)), + std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0xB39FA7917BCFBB8DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\txtbox_btn_a.bmp", 0x8D1D0FF1AF2B13F7ULL))); this->m_combo->Move(150, 9); this->m_combo->SetOnSelect([this](CUIComboItem* item, const RenderBackend& backend) { this->OnSelect(item, backend); }); this->m_combo->SetItemBinder([this](CUIComboItem* item, const RenderBackend& backend) { @@ -3170,20 +2809,10 @@ void GameSettingsUI::CUIGroupLogInOut::OnCreate(int width, int height) { this->m_title = new CUIStaticText(); this->m_title->SetSize(100, 12); this->m_title->Move(19, 12); - this->m_title->SetText([]() { - constexpr std::uint8_t bytes[] = {0xC8, 0x1B, 0x1E, 0x8C, 0xAB, 0x7F, 0x35, 0xB1, 0xB4, 0x6D, 0x1D, 0x5B}; - constexpr EncryptedSource<12> source(bytes); - thread_local EncryptedName<12, 0x0F15B16B5BAFD57FULL> name(source); - return name.Text(); - }()); + this->m_title->SetText(OBFUSCATE_SOURCE_TEXT("로그인 알림", 0x0F15B16B5BAFD57FULL)); this->m_title->SetFitText(0); this->m_title->SetAlign(0, 0); - this->m_title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x64, 0x84, 0xBB, 0x7E, 0xBA, 0x49}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x7DE349D717D7F123ULL> name(source); - return name.Text(); - }())); + this->m_title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x7DE349D717D7F123ULL))); this->m_title->SetFontHeight(12); this->m_title->SetBold(1); this->m_title->SetColor(0); @@ -3199,27 +2828,7 @@ void GameSettingsUI::CUIGroupLogInOut::OnCreate(int width, int height) { onButton->disabled = 0; onButton->Invalidate(); } - this->m_onButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x21, 0x36, 0x47, 0xB5, 0x41, 0x0D, 0xE4, 0xBE, 0x27, 0x7D, 0x47, 0x83, 0x3C, 0x79, 0x7D, 0x01, 0x80, 0xFD, 0xEE, 0x20, 0xE3, 0xB7, 0x4F, 0x2C, 0x8E, 0xFF, 0xE1, 0x61, 0xE3, 0xAE, 0x51, 0x73}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x7321C3814F8799E1ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x8F, 0x0E, 0x0F, 0xCF, 0xA3, 0x19, 0x84, 0xB4, 0x89, 0x45, 0x0F, 0xF9, 0xDE, 0x6D, 0x1D, 0x0B, 0x2E, 0xC5, 0xA6, 0x5A, 0x01, 0xA3, 0x2F, 0x26, 0x20, 0xCF, 0xE1, 0x57, 0x0E, 0xA7, 0x41}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x7941D76335CFA14FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x0D, 0xAC, 0x0D, 0x81, 0x57, 0xF5, 0xD6, 0xFE, 0x0B, 0xE7, 0x0D, 0xB7, 0x2A, 0x81, 0x4F, 0x41, 0xAC, 0x67, 0xA4, 0x14, 0xF5, 0x4F, 0x7D, 0x6C, 0xA2, 0x65, 0xAB, 0x55, 0xF5, 0x56, 0x63, 0x33}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x33133B977BCD03CDULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x11, 0xF4, 0x57, 0x1F, 0xF9, 0x49, 0x2E, 0xE2, 0x17, 0xBF, 0x57, 0x29, 0x84, 0x3D, 0xB7, 0x5D, 0xB0, 0x3F, 0xFE, 0x8A, 0x5B, 0xF3, 0x85, 0x70, 0xBE, 0x3D, 0xF1, 0xCB, 0x5B, 0xEA, 0x9B, 0x2F}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x2FEB8739E5975BD1ULL> name(source); - return name.Text(); - }())); + this->m_onButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x7321C3814F8799E1ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_on.bmp", 0x7941D76335CFA14FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x33133B977BCD03CDULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x2FEB8739E5975BD1ULL))); { auto* const onButton = this->m_onButton; onButton->checked = false; @@ -3229,20 +2838,10 @@ void GameSettingsUI::CUIGroupLogInOut::OnCreate(int width, int height) { this->m_onText = new CUIStaticText(); this->m_onText->SetSize(100, 12); this->m_onText->Move(127, 12); - this->m_onText->SetText([]() { - constexpr std::uint8_t bytes[] = {0xB1, 0xEA, 0xB2, 0xCD, 0x13}; - constexpr EncryptedSource<5> source(bytes); - thread_local EncryptedName<5, 0x6BA1C1132F033B75ULL> name(source); - return name.Text(); - }()); + this->m_onText->SetText(OBFUSCATE_SOURCE_TEXT("켜기", 0x6BA1C1132F033B75ULL)); this->m_onText->SetFitText(0); this->m_onText->SetAlign(0, 0); - this->m_onText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x68, 0xA2, 0x29, 0x4C, 0x54, 0xAB}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xA12DAB392545D72FULL> name(source); - return name.Text(); - }())); + this->m_onText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xA12DAB392545D72FULL))); this->m_onText->SetFontHeight(12); this->m_onText->SetBold(0); this->m_onText->SetColor(0); @@ -3258,27 +2857,7 @@ void GameSettingsUI::CUIGroupLogInOut::OnCreate(int width, int height) { offButton->disabled = 0; offButton->Invalidate(); } - this->m_offButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0xDD, 0x68, 0x8B, 0x4F, 0x1D, 0xB9, 0x8C, 0xEE, 0xDB, 0x23, 0x8B, 0x79, 0x60, 0xCD, 0x15, 0x51, 0x7C, 0xA3, 0x22, 0xDA, 0xBF, 0x03, 0x27, 0x7C, 0x72, 0xA1, 0x2D, 0x9B, 0xBF, 0x1A, 0x39, 0x23}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x234977DDB54BC71DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x05, 0x82, 0xEB, 0xC5, 0x49, 0xD3, 0xA8, 0x22, 0x03, 0xC9, 0xEB, 0xF3, 0x34, 0xA7, 0x31, 0x9D, 0xA4, 0x49, 0x42, 0x50, 0xEB, 0x69, 0x03, 0xB0, 0xAA, 0x43, 0x05, 0x5D, 0xE4, 0x6D, 0x6D}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0xEF6D1D893F2B2DC5ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x9B, 0xFC, 0x9F, 0x27, 0x47, 0x51, 0x66, 0xF4, 0x9D, 0xB7, 0x9F, 0x11, 0x3A, 0x25, 0xFF, 0x4B, 0x3A, 0x37, 0x36, 0xB2, 0xE5, 0xEB, 0xCD, 0x66, 0x34, 0x35, 0x39, 0xF3, 0xE5, 0xF2, 0xD3, 0x39}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x39A39F87DD5F535BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xB7, 0x38, 0x47, 0xE7, 0xE3, 0x9D, 0x24, 0xA2, 0xB1, 0x73, 0x47, 0xD1, 0x9E, 0xE9, 0xBD, 0x1D, 0x16, 0xF3, 0xEE, 0x72, 0x41, 0x27, 0x8F, 0x30, 0x18, 0xF1, 0xE1, 0x33, 0x41, 0x3E, 0x91, 0x6F}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x6FE153231D879777ULL> name(source); - return name.Text(); - }())); + this->m_offButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x234977DDB54BC71DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_on.bmp", 0xEF6D1D893F2B2DC5ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x39A39F87DD5F535BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x6FE153231D879777ULL))); { auto* const offButton = this->m_offButton; offButton->checked = false; @@ -3288,20 +2867,10 @@ void GameSettingsUI::CUIGroupLogInOut::OnCreate(int width, int height) { this->m_offText = new CUIStaticText(); this->m_offText->SetSize(100, 12); this->m_offText->Move(222, 12); - this->m_offText->SetText([]() { - constexpr std::uint8_t bytes[] = {0x05, 0xC5, 0x5E, 0x21, 0x03}; - constexpr EncryptedSource<5> source(bytes); - thread_local EncryptedName<5, 0x4F99DF03C3EF31B7ULL> name(source); - return name.Text(); - }()); + this->m_offText->SetText(OBFUSCATE_SOURCE_TEXT("끄기", 0x4F99DF03C3EF31B7ULL)); this->m_offText->SetFitText(0); this->m_offText->SetAlign(0, 0); - this->m_offText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xB0, 0xBC, 0x0F, 0x00, 0x10, 0x99}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x9171997D6963C9F7ULL> name(source); - return name.Text(); - }())); + this->m_offText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x9171997D6963C9F7ULL))); this->m_offText->SetFontHeight(12); this->m_offText->SetBold(0); this->m_offText->SetColor(0); @@ -3316,20 +2885,10 @@ void GameSettingsUI::CUIGroupProcessPriority::OnCreate(int width, int height) { this->m_title = new CUIStaticText(); this->m_title->SetSize(100, 13); this->m_title->Move(19, 12); - this->m_title->SetText([]() { - constexpr std::uint8_t bytes[] = {0xCE, 0xF1, 0x65, 0x6A, 0xA5, 0xD8, 0x95, 0x51, 0xCE, 0xAF, 0x27, 0x11, 0x22, 0x67}; - constexpr EncryptedSource<14> source(bytes); - thread_local EncryptedName<14, 0xED796785D1DF137FULL> name(source); - return name.Text(); - }()); + this->m_title->SetText(OBFUSCATE_SOURCE_TEXT("기본 우선순위", 0xED796785D1DF137FULL)); this->m_title->SetFitText(0); this->m_title->SetAlign(0, 0); - this->m_title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x4E, 0x52, 0x43, 0xD2, 0xD0, 0x5D}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xD97D5DBDBB2F2709ULL> name(source); - return name.Text(); - }())); + this->m_title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xD97D5DBDBB2F2709ULL))); this->m_title->SetFontHeight(12); this->m_title->SetBold(1); this->m_title->SetColor(0); @@ -3345,27 +2904,7 @@ void GameSettingsUI::CUIGroupProcessPriority::OnCreate(int width, int height) { highButton->disabled = 0; highButton->Invalidate(); } - this->m_highButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x5F, 0x6A, 0xAD, 0x51, 0x17, 0xE7, 0x38, 0x68, 0x59, 0x21, 0xAD, 0x67, 0x6A, 0x93, 0xA1, 0xD7, 0xFE, 0xA1, 0x04, 0xC4, 0xB5, 0x5D, 0x93, 0xFA, 0xF0, 0xA3, 0x0B, 0x85, 0xB5, 0x44, 0x8D, 0xA5}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0xA5FD29D7AB6DC59FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x31, 0x68, 0xF9, 0xF3, 0xD7, 0xB7, 0x8A, 0x3C, 0x37, 0x23, 0xF9, 0xC5, 0xAA, 0xC3, 0x13, 0x83, 0x90, 0xA3, 0x50, 0x66, 0x75, 0x0D, 0x21, 0xAE, 0x9E, 0xA9, 0x17, 0x6B, 0x7A, 0x09, 0x4F}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0xF14F79170939C7F1ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x5B, 0xF8, 0xC3, 0x63, 0xA7, 0xCB, 0xC0, 0xC8, 0x5D, 0xB3, 0xC3, 0x55, 0xDA, 0xBF, 0x59, 0x77, 0xFA, 0x33, 0x6A, 0xF6, 0x05, 0x71, 0x6B, 0x5A, 0xF4, 0x31, 0x65, 0xB7, 0x05, 0x68, 0x75, 0x05}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x050505679903579BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x21, 0xD4, 0x39, 0x2D, 0x15, 0xDD, 0xFC, 0x10, 0x27, 0x9F, 0x39, 0x1B, 0x68, 0xA9, 0x65, 0xAF, 0x80, 0x1F, 0x90, 0xB8, 0xB7, 0x67, 0x57, 0x82, 0x8E, 0x1D, 0x9F, 0xF9, 0xB7, 0x7E, 0x49, 0xDD}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0xDD3913D5D7F97BE1ULL> name(source); - return name.Text(); - }())); + this->m_highButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0xA5FD29D7AB6DC59FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_on.bmp", 0xF14F79170939C7F1ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x050505679903579BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0xDD3913D5D7F97BE1ULL))); { auto* const highButton = this->m_highButton; highButton->checked = true; @@ -3375,20 +2914,10 @@ void GameSettingsUI::CUIGroupProcessPriority::OnCreate(int width, int height) { this->m_highText = new CUIStaticText(); this->m_highText->SetSize(100, 13); this->m_highText->Move(127, 12); - this->m_highText->SetText([]() { - constexpr std::uint8_t bytes[] = {0x14, 0x01, 0xBF, 0x84, 0x31}; - constexpr EncryptedSource<5> source(bytes); - thread_local EncryptedName<5, 0xBF2B4B31397FF5A7ULL> name(source); - return name.Text(); - }()); + this->m_highText->SetText(OBFUSCATE_SOURCE_TEXT("높음", 0xBF2B4B31397FF5A7ULL)); this->m_highText->SetFitText(0); this->m_highText->SetAlign(0, 0); - this->m_highText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xFA, 0xC8, 0x81, 0x5E, 0xD6, 0xBF}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x83EFBFBB37EDBDBDULL> name(source); - return name.Text(); - }())); + this->m_highText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x83EFBFBB37EDBDBDULL))); this->m_highText->SetFontHeight(12); this->m_highText->SetBold(0); this->m_highText->SetColor(0); @@ -3404,27 +2933,7 @@ void GameSettingsUI::CUIGroupProcessPriority::OnCreate(int width, int height) { normalButton->disabled = 0; normalButton->Invalidate(); } - this->m_normalButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0xAD, 0xB4, 0x67, 0xEB, 0xB7, 0xA1, 0x0E, 0x3E, 0xAB, 0xFF, 0x67, 0xDD, 0xCA, 0xD5, 0x97, 0x81, 0x0C, 0x7F, 0xCE, 0x7E, 0x15, 0x1B, 0xA5, 0xAC, 0x02, 0x7D, 0xC1, 0x3F, 0x15, 0x02, 0xBB, 0xF3}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0xF3CB6F7711A71B6DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x73, 0xC8, 0x99, 0x75, 0x1F, 0xE9, 0x5E, 0x4E, 0x75, 0x83, 0x99, 0x43, 0x62, 0x9D, 0xC7, 0xF1, 0xD2, 0x03, 0x30, 0xE0, 0xBD, 0x53, 0xF5, 0xDC, 0xDC, 0x09, 0x77, 0xED, 0xB2, 0x57, 0x9B}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x839B27DF8F5967B3ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x9D, 0xA2, 0x89, 0x73, 0x61, 0xB3, 0x28, 0x52, 0x9B, 0xE9, 0x89, 0x45, 0x1C, 0xC7, 0xB1, 0xED, 0x3C, 0x69, 0x20, 0xE6, 0xC3, 0x09, 0x83, 0xC0, 0x32, 0x6B, 0x2F, 0xA7, 0xC3, 0x10, 0x9D, 0x9F}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x9FED7DA189490D5DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xA5, 0xFA, 0x09, 0x85, 0xCD, 0x21, 0xEA, 0x88, 0xA3, 0xB1, 0x09, 0xB3, 0xB0, 0x55, 0x73, 0x37, 0x04, 0x31, 0xA0, 0x10, 0x6F, 0x9B, 0x41, 0x1A, 0x0A, 0x33, 0xAF, 0x51, 0x6F, 0x82, 0x5F, 0x45}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x452FEF0D7FC95565ULL> name(source); - return name.Text(); - }())); + this->m_normalButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0xF3CB6F7711A71B6DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_on.bmp", 0x839B27DF8F5967B3ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x9FED7DA189490D5DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x452FEF0D7FC95565ULL))); { auto* const normalButton = this->m_normalButton; normalButton->checked = false; @@ -3434,20 +2943,10 @@ void GameSettingsUI::CUIGroupProcessPriority::OnCreate(int width, int height) { this->m_normalText = new CUIStaticText(); this->m_normalText->SetSize(100, 13); this->m_normalText->Move(222, 12); - this->m_normalText->SetText([]() { - constexpr std::uint8_t bytes[] = {0xDF, 0x4B, 0x12, 0xB6, 0x8D}; - constexpr EncryptedSource<5> source(bytes); - thread_local EncryptedName<5, 0x176F138D5DD7F365ULL> name(source); - return name.Text(); - }()); + this->m_normalText->SetText(OBFUSCATE_SOURCE_TEXT("보통", 0x176F138D5DD7F365ULL)); this->m_normalText->SetFitText(0); this->m_normalText->SetAlign(0, 0); - this->m_normalText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x86, 0x32, 0xA9, 0x7E, 0x8C, 0x99}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xFBD599E117C547C1ULL> name(source); - return name.Text(); - }())); + this->m_normalText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xFBD599E117C547C1ULL))); this->m_normalText->SetFontHeight(12); this->m_normalText->SetBold(0); this->m_normalText->SetColor(0); @@ -3463,27 +2962,7 @@ void GameSettingsUI::CUIGroupProcessPriority::OnCreate(int width, int height) { idleButton->disabled = 0; idleButton->Invalidate(); } - this->m_idleButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0xD7, 0xB4, 0xED, 0x59, 0x7D, 0x25, 0x84, 0xC2, 0xD1, 0xFF, 0xED, 0x6F, 0x00, 0x51, 0x1D, 0x7D, 0x76, 0x7F, 0x44, 0xCC, 0xDF, 0x9F, 0x2F, 0x50, 0x78, 0x7D, 0x4B, 0x8D, 0xDF, 0x86, 0x31, 0x0F}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x0F41EBBDA32D1B17ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x2D, 0xDA, 0xA1, 0xD9, 0x77, 0x2D, 0x94, 0xE0, 0x2B, 0x91, 0xA1, 0xEF, 0x0A, 0x59, 0x0D, 0x5F, 0x8C, 0x11, 0x08, 0x4C, 0xD5, 0x97, 0x3F, 0x72, 0x82, 0x1B, 0x4F, 0x41, 0xDA, 0x93, 0x51}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x2D51E3B7236175EDULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xA3, 0x5A, 0x21, 0x85, 0xFB, 0xEB, 0xD8, 0x06, 0xA5, 0x11, 0x21, 0xB3, 0x86, 0x9F, 0x41, 0xB9, 0x02, 0x91, 0x88, 0x10, 0x59, 0x51, 0x73, 0x94, 0x0C, 0x93, 0x87, 0x51, 0x59, 0x48, 0x6D, 0xCB}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0xCB1D253B7FE1F563ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x09, 0xBC, 0x39, 0x89, 0x39, 0x17, 0xD0, 0xBC, 0x0F, 0xF7, 0x39, 0xBF, 0x44, 0x63, 0x49, 0x03, 0xA8, 0x77, 0x90, 0x1C, 0x9B, 0xAD, 0x7B, 0x2E, 0xA6, 0x75, 0x9F, 0x5D, 0x9B, 0xB4, 0x65, 0x71}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x7115D9F973F913C9ULL> name(source); - return name.Text(); - }())); + this->m_idleButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x0F41EBBDA32D1B17ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_on.bmp", 0x2D51E3B7236175EDULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0xCB1D253B7FE1F563ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x7115D9F973F913C9ULL))); { auto* const idleButton = this->m_idleButton; idleButton->checked = false; @@ -3493,20 +2972,10 @@ void GameSettingsUI::CUIGroupProcessPriority::OnCreate(int width, int height) { this->m_idleText = new CUIStaticText(); this->m_idleText->SetSize(100, 13); this->m_idleText->Move(317, 12); - this->m_idleText->SetText([]() { - constexpr std::uint8_t bytes[] = {0xAE, 0xB2, 0x53, 0x94, 0x71}; - constexpr EncryptedSource<5> source(bytes); - thread_local EncryptedName<5, 0xE55723712993051DULL> name(source); - return name.Text(); - }()); + this->m_idleText->SetText(OBFUSCATE_SOURCE_TEXT("낮음", 0xE55723712993051DULL)); this->m_idleText->SetFitText(0); this->m_idleText->SetAlign(0, 0); - this->m_idleText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x08, 0x12, 0x81, 0xEC, 0x64, 0x37}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x793F370985ED674FULL> name(source); - return name.Text(); - }())); + this->m_idleText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x793F370985ED674FULL))); this->m_idleText->SetFontHeight(12); this->m_idleText->SetBold(0); this->m_idleText->SetColor(0); @@ -3521,20 +2990,10 @@ void GameSettingsUI::CUIGroupRodexSpam::OnCreate(int width, int height) { this->m_title = new CUIStaticText(); this->m_title->SetSize(70, 13); this->m_title->Move(19, 12); - this->m_title->SetText([]() { - constexpr std::uint8_t bytes[] = {0xDA, 0xF5, 0x83, 0xE4, 0x2D}; - constexpr EncryptedSource<5> source(bytes); - thread_local EncryptedName<5, 0x891B232D09451965ULL> name(source); - return name.Text(); - }()); + this->m_title->SetText(OBFUSCATE_SOURCE_TEXT("우편", 0x891B232D09451965ULL)); this->m_title->SetFitText(0); this->m_title->SetAlign(0, 0); - this->m_title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xFE, 0x70, 0x1B, 0x26, 0x66, 0x1D}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x758F1D0B4F7705B9ULL> name(source); - return name.Text(); - }())); + this->m_title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x758F1D0B4F7705B9ULL))); this->m_title->SetFontHeight(12); this->m_title->SetBold(1); this->m_title->SetColor(0); @@ -3550,27 +3009,7 @@ void GameSettingsUI::CUIGroupRodexSpam::OnCreate(int width, int height) { onButton->disabled = 0; onButton->Invalidate(); } - this->m_onButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x2F, 0xDE, 0x1F, 0xE9, 0xAD, 0x81, 0x02, 0x20, 0x29, 0x95, 0x1F, 0xDF, 0xD0, 0xF5, 0x9B, 0x9F, 0x8E, 0x15, 0xB6, 0x7C, 0x0F, 0x3B, 0xA9, 0xB2, 0x80, 0x17, 0xB9, 0x3D, 0x0F, 0x22, 0xB7, 0xED}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0xEDC74F6D13DF71EFULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x55, 0x20, 0x21, 0xF7, 0x9D, 0xC7, 0xA4, 0x3C, 0x53, 0x6B, 0x21, 0xC1, 0xE0, 0xB3, 0x3D, 0x83, 0xF4, 0xEB, 0x88, 0x62, 0x3F, 0x7D, 0x0F, 0xAE, 0xFA, 0xE1, 0xCF, 0x6F, 0x30, 0x79, 0x61}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0xF161095D0DE18F95ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x19, 0x56, 0x21, 0x19, 0xAD, 0xDB, 0x68, 0xE6, 0x1F, 0x1D, 0x21, 0x2F, 0xD0, 0xAF, 0xF1, 0x59, 0xB8, 0x9D, 0x88, 0x8C, 0x0F, 0x61, 0xC3, 0x74, 0xB6, 0x9F, 0x87, 0xCD, 0x0F, 0x78, 0xDD, 0x2B}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x2BAD156DE3E1F9D9ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x4F, 0x12, 0x2F, 0x7D, 0xBD, 0x0B, 0x68, 0xB8, 0x49, 0x59, 0x2F, 0x4B, 0xC0, 0x7F, 0xF1, 0x07, 0xEE, 0xD9, 0x86, 0xE8, 0x1F, 0xB1, 0xC3, 0x2A, 0xE0, 0xDB, 0x89, 0xA9, 0x1F, 0xA8, 0xDD, 0x75}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x75ADC57D87EFBD8FULL> name(source); - return name.Text(); - }())); + this->m_onButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0xEDC74F6D13DF71EFULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_on.bmp", 0xF161095D0DE18F95ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x2BAD156DE3E1F9D9ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x75ADC57D87EFBD8FULL))); { auto* const onButton = this->m_onButton; onButton->checked = false; @@ -3580,20 +3019,10 @@ void GameSettingsUI::CUIGroupRodexSpam::OnCreate(int width, int height) { this->m_onText = new CUIStaticText(); this->m_onText->SetSize(100, 13); this->m_onText->Move(127, 12); - this->m_onText->SetText([]() { - constexpr std::uint8_t bytes[] = {0x37, 0x69, 0x5E, 0xEA, 0x95, 0xBF, 0x50, 0xF9, 0x75, 0xB9, 0x57, 0xFB, 0x08, 0xBA, 0xFF}; - constexpr EncryptedSource<15> source(bytes); - thread_local EncryptedName<15, 0x39FF7FB50DEB998FULL> name(source); - return name.Text(); - }()); + this->m_onText->SetText(OBFUSCATE_SOURCE_TEXT("모든 유저 수신", 0x39FF7FB50DEB998FULL)); this->m_onText->SetFitText(0); this->m_onText->SetAlign(0, 0); - this->m_onText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xD0, 0x84, 0x8D, 0xB4, 0xBC, 0x93}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x2FE993D1DDE1F197ULL> name(source); - return name.Text(); - }())); + this->m_onText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x2FE993D1DDE1F197ULL))); this->m_onText->SetFontHeight(12); this->m_onText->SetBold(0); this->m_onText->SetColor(0); @@ -3609,27 +3038,7 @@ void GameSettingsUI::CUIGroupRodexSpam::OnCreate(int width, int height) { offButton->disabled = 0; offButton->Invalidate(); } - this->m_offButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x0D, 0x5E, 0x59, 0x4F, 0x4D, 0x95, 0xC2, 0x60, 0x0B, 0x15, 0x59, 0x79, 0x30, 0xE1, 0x5B, 0xDF, 0xAC, 0x95, 0xF0, 0xDA, 0xEF, 0x2F, 0x69, 0xF2, 0xA2, 0x97, 0xFF, 0x9B, 0xEF, 0x36, 0x77, 0xAD}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0xAD075B8DB599F1CDULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xBF, 0xBA, 0x4D, 0xEB, 0xF7, 0xC1, 0x4E, 0xE2, 0xB9, 0xF1, 0x4D, 0xDD, 0x8A, 0xB5, 0xD7, 0x5D, 0x1E, 0x71, 0xE4, 0x7E, 0x55, 0x7B, 0xE5, 0x70, 0x10, 0x7B, 0xA3, 0x73, 0x5A, 0x7F, 0x8B}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x2F8B0F37118D157FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xB5, 0x62, 0x2D, 0xA7, 0xAB, 0xAB, 0x20, 0xF8, 0xB3, 0x29, 0x2D, 0x91, 0xD6, 0xDF, 0xB9, 0x47, 0x14, 0xA9, 0x84, 0x32, 0x09, 0x11, 0x8B, 0x6A, 0x1A, 0xAB, 0x8B, 0x73, 0x09, 0x08, 0x95, 0x35}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x35E5656B5DEDCD75ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x3D, 0x16, 0x7B, 0xDB, 0x5F, 0x33, 0x84, 0x84, 0x3B, 0x5D, 0x7B, 0xED, 0x22, 0x47, 0x1D, 0x3B, 0x9C, 0xDD, 0xD2, 0x4E, 0xFD, 0x89, 0x2F, 0x16, 0x92, 0xDF, 0xDD, 0x0F, 0xFD, 0x90, 0x31, 0x49}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x4941FD9F21BBB9FDULL> name(source); - return name.Text(); - }())); + this->m_offButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0xAD075B8DB599F1CDULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_on.bmp", 0x2F8B0F37118D157FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x35E5656B5DEDCD75ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x4941FD9F21BBB9FDULL))); { auto* const offButton = this->m_offButton; offButton->checked = false; @@ -3639,20 +3048,10 @@ void GameSettingsUI::CUIGroupRodexSpam::OnCreate(int width, int height) { this->m_offText = new CUIStaticText(); this->m_offText->SetSize(130, 13); this->m_offText->Move(127, 36); - this->m_offText->SetText([]() { - constexpr std::uint8_t bytes[] = {0x3D, 0x04, 0x8D, 0x6E, 0x95, 0x4F, 0x38, 0x27, 0x07, 0xF7, 0xF1, 0x5F, 0x08, 0x4A, 0xB7, 0x57, 0x38, 0x6D, 0x83, 0xA9}; - constexpr EncryptedSource<20> source(bytes); - thread_local EncryptedName<20, 0xE7978FB5A94DD7FDULL> name(source); - return name.Text(); - }()); + this->m_offText->SetText(OBFUSCATE_SOURCE_TEXT("임의 유저 수신 거부", 0xE7978FB5A94DD7FDULL)); this->m_offText->SetFitText(0); this->m_offText->SetAlign(0, 0); - this->m_offText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x2C, 0xCC, 0xAB, 0x66, 0x0A, 0x8F}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xB7FD8F670FC7B96BULL> name(source); - return name.Text(); - }())); + this->m_offText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xB7FD8F670FC7B96BULL))); this->m_offText->SetFontHeight(12); this->m_offText->SetBold(0); this->m_offText->SetColor(0); @@ -3667,20 +3066,10 @@ void GameSettingsUI::CUIGroupSound::OnCreate(int width, int height) { this->m_title = new CUIStaticText(); this->m_title->SetSize(75, 13); this->m_title->Move(19, 12); - this->m_title->SetText([]() { - constexpr std::uint8_t bytes[] = {0xEA, 0x4A, 0x42, 0xC5, 0xFA, 0xD6, 0xFF, 0xD7, 0xE2, 0x6C, 0x59, 0x2B}; - constexpr EncryptedSource<12> source(bytes); - thread_local EncryptedName<12, 0x6BDF334F2BFDAD51ULL> name(source); - return name.Text(); - }()); + this->m_title->SetText(OBFUSCATE_SOURCE_TEXT("사운드 설정", 0x6BDF334F2BFDAD51ULL)); this->m_title->SetFitText(0); this->m_title->SetAlign(0, 0); - this->m_title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x06, 0x48, 0x3B, 0x1C, 0x54, 0x9F}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x674D9F3975573D41ULL> name(source); - return name.Text(); - }())); + this->m_title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x674D9F3975573D41ULL))); this->m_title->SetFontHeight(12); this->m_title->SetBold(1); this->m_title->SetColor(0); @@ -3690,20 +3079,10 @@ void GameSettingsUI::CUIGroupSound::OnCreate(int width, int height) { this->m_bgmText = new CUIStaticText(); this->m_bgmText->SetSize(50, 13); this->m_bgmText->Move(110, 12); - this->m_bgmText->SetText([]() { - constexpr std::uint8_t bytes[] = {0xFA, 0xD1, 0xEB, 0x8D, 0xA7, 0x90, 0x71}; - constexpr EncryptedSource<7> source(bytes); - thread_local EncryptedName<7, 0xC9712D676B5B3943ULL> name(source); - return name.Text(); - }()); + this->m_bgmText->SetText(OBFUSCATE_SOURCE_TEXT("배경음", 0xC9712D676B5B3943ULL)); this->m_bgmText->SetFitText(0); this->m_bgmText->SetAlign(0, 0); - this->m_bgmText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xFE, 0x58, 0x51, 0x5A, 0xE0, 0x93}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xED15938D333D2DB9ULL> name(source); - return name.Text(); - }())); + this->m_bgmText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xED15938D333D2DB9ULL))); this->m_bgmText->SetFontHeight(12); this->m_bgmText->SetBold(0); this->m_bgmText->SetColor(0); @@ -3717,39 +3096,9 @@ void GameSettingsUI::CUIGroupSound::OnCreate(int width, int height) { this->m_bgmSlider->SetTotal(128); this->m_bgmSlider->SetVisible(128); this->m_bgmSlider->step = 1; - static_cast(this->m_bgmSlider)->SetButtonImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0xFB, 0x48, 0xC1, 0xE1, 0x01, 0x6F, 0xEE, 0x70, 0xFD, 0x03, 0xC1, 0xD7, 0x7C, 0x1B, 0x77, 0xCE, 0x58, 0x95, 0x6E, 0x77, 0xAD, 0x90, 0x47, 0xD8, 0x5D, 0x93, 0x2F, 0x79, 0xAC, 0xD1, 0x2B}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0xBD2BA1C11B01E73BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xD1, 0x4C, 0x93, 0x63, 0x71, 0x93, 0xB0, 0x86, 0xD7, 0x07, 0x93, 0x55, 0x0C, 0xE7, 0x29, 0x38, 0x72, 0x91, 0x3C, 0xF5, 0xDD, 0x6C, 0x07, 0x22, 0x76, 0x8B, 0x27, 0xB7, 0xD3, 0x30, 0x05, 0x4B}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x4B755DB19953E311ULL> name(source); - return name.Text(); - }())); - this->m_bgmSlider->SetBackground(std::string([]() { - constexpr std::uint8_t bytes[] = {0x4D, 0x2E, 0xD1, 0x09, 0x73, 0x67, 0xAC, 0x30, 0x4B, 0x65, 0xD1, 0x3F, 0x0E, 0x13, 0x35, 0x8E, 0xEE, 0xF3, 0x7E, 0x9F, 0xDF, 0x98, 0x04, 0x94, 0xE9, 0xAF, 0x73, 0x9E, 0xC3, 0xA9}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0xFD69A9B3F311818DULL> name(source); - return name.Text(); - }())); - static_cast(this->m_bgmSlider)->SetThumbImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0xEB, 0xB0, 0x29, 0x51, 0x01, 0x31, 0xE8, 0xB2, 0xED, 0xFB, 0x29, 0x67, 0x7C, 0x45, 0x71, 0x0C, 0x48, 0x6D, 0x86, 0xC7, 0xAD, 0xCE, 0x4F, 0x1E, 0x59, 0x40, 0x85, 0xCE, 0xA7, 0x8B, 0x03, 0x1D, 0x46, 0x6F, 0xE9}; - constexpr EncryptedSource<35> source(bytes); - thread_local EncryptedName<35, 0x7F2DFFC1ABE91F2BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xCD, 0xCC, 0x4D, 0xF3, 0x85, 0x9D, 0x4A, 0x14, 0xCB, 0x87, 0x4D, 0xC5, 0xF8, 0xE9, 0xD3, 0xAA, 0x6E, 0x11, 0xE2, 0x65, 0x29, 0x62, 0xED, 0xB8, 0x7F, 0x3C, 0xE0, 0x60, 0x21, 0x7D, 0xED, 0xB4, 0x7D, 0x63}; - constexpr EncryptedSource<34> source(bytes); - thread_local EncryptedName<34, 0xD98F5345098D630DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x53, 0xDA, 0x1F, 0x15, 0x8D, 0xED, 0xCA, 0x56, 0x55, 0x91, 0x1F, 0x23, 0xF0, 0x99, 0x53, 0xE8, 0xF0, 0x07, 0xB0, 0x83, 0x21, 0x12, 0x6D, 0xFA, 0xE1, 0x2A, 0xAD, 0x86, 0x2A, 0x4B, 0x7B, 0xB5, 0xF1, 0x18, 0xAF, 0xEF}; - constexpr EncryptedSource<36> source(bytes); - thread_local EncryptedName<36, 0x9B0F234DEFDF7593ULL> name(source); - return name.Text(); - }())); + static_cast(this->m_bgmSlider)->SetButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1left.bmp", 0xBD2BA1C11B01E73BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1right.bmp", 0x4B755DB19953E311ULL))); + this->m_bgmSlider->SetBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1mid.bmp", 0xFD69A9B3F311818DULL))); + static_cast(this->m_bgmSlider)->SetThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1bar_left.bmp", 0x7F2DFFC1ABE91F2BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1bar_mid.bmp", 0xD98F5345098D630DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1bar_right.bmp", 0x9B0F234DEFDF7593ULL))); this->AddChild(this->m_bgmSlider); this->m_bgmMute = new CUICheckBox(); this->m_bgmMute->SetSize(10, 10); @@ -3757,47 +3106,17 @@ void GameSettingsUI::CUIGroupSound::OnCreate(int width, int height) { this->m_bgmMute->SetOnCheck([this](bool checked) { this->OnBgmMute(checked); }); this->m_bgmMute->disabled = 0; this->m_bgmMute->Invalidate(); - this->m_bgmMute->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0xAD, 0x10, 0x15, 0xDD, 0x2B, 0x87, 0x62, 0x1A, 0xAB, 0x5B, 0x15, 0xEB, 0x56, 0xF3, 0xFB, 0xB4, 0x05, 0xDA, 0xB6, 0x4C, 0x89, 0x26, 0xDF, 0x88, 0x5D, 0x91, 0xB7, 0x4A, 0x9B, 0x49}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0xD7A749EB27D5BF6DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x99, 0xA2, 0x0B, 0x55, 0xBD, 0xAD, 0x50, 0x7C, 0x9F, 0xE9, 0x0B, 0x63, 0xC0, 0xD9, 0xC9, 0xD2, 0x31, 0x68, 0xA8, 0xC4, 0x1F, 0x0C, 0xED, 0xEE, 0x68, 0x23, 0xA9, 0xC2, 0x0D, 0x63}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0xB195637DAFCB0D59ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x95, 0x94, 0x41, 0x0D, 0x8D, 0x25, 0x68, 0x60, 0x93, 0xDF, 0x41, 0x3B, 0xF0, 0x51, 0xF1, 0xCE, 0x3D, 0x5E, 0xE2, 0x9C, 0x2F, 0x84, 0xD5, 0xF2, 0x65, 0x15, 0xE3, 0x9A, 0x3D, 0xEB}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0xADADEB4DF7813B55ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x01, 0x36, 0x0D, 0x1F, 0x41, 0xE3, 0x80, 0x14, 0x07, 0x7D, 0x0D, 0x29, 0x3C, 0x97, 0x19, 0xBA, 0xA9, 0xFC, 0xAE, 0x8E, 0xE3, 0x42, 0x3D, 0x86, 0xF1, 0xB7, 0xAF, 0x88, 0xF1, 0x2D}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0xD9452D81E5CD99C1ULL> name(source); - return name.Text(); - }())); + this->m_bgmMute->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\checkbox_0.bmp", 0xD7A749EB27D5BF6DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\checkbox_1.bmp", 0xB195637DAFCB0D59ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\checkbox_0.bmp", 0xADADEB4DF7813B55ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\checkbox_0.bmp", 0xD9452D81E5CD99C1ULL))); this->m_bgmMute->checked = false; this->m_bgmMute->Invalidate(); this->AddChild(this->m_bgmMute); this->m_bgmMuteText = new CUIStaticText(); this->m_bgmMuteText->SetSize(50, 13); this->m_bgmMuteText->Move(348, 12); - this->m_bgmMuteText->SetText([]() { - constexpr std::uint8_t bytes[] = {0xE9, 0x43, 0xD0, 0xBB, 0x4F}; - constexpr EncryptedSource<5> source(bytes); - thread_local EncryptedName<5, 0xF715514F5961B75BULL> name(source); - return name.Text(); - }()); + this->m_bgmMuteText->SetText(OBFUSCATE_SOURCE_TEXT("끄기", 0xF715514F5961B75BULL)); this->m_bgmMuteText->SetFitText(0); this->m_bgmMuteText->SetAlign(0, 0); - this->m_bgmMuteText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xDE, 0x4C, 0x91, 0x58, 0x38, 0xBB}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x4191BB5531FD3999ULL> name(source); - return name.Text(); - }())); + this->m_bgmMuteText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x4191BB5531FD3999ULL))); this->m_bgmMuteText->SetFontHeight(12); this->m_bgmMuteText->SetBold(0); this->m_bgmMuteText->SetColor(0); @@ -3807,20 +3126,10 @@ void GameSettingsUI::CUIGroupSound::OnCreate(int width, int height) { this->m_effectText = new CUIStaticText(); this->m_effectText->SetSize(50, 13); this->m_effectText->Move(110, 36); - this->m_effectText->SetText([]() { - constexpr std::uint8_t bytes[] = {0x1B, 0x86, 0xDF, 0xEB, 0x69, 0xA2, 0x9D}; - constexpr EncryptedSource<7> source(bytes); - thread_local EncryptedName<7, 0xB19D1FA9116F39D3ULL> name(source); - return name.Text(); - }()); + this->m_effectText->SetText(OBFUSCATE_SOURCE_TEXT("효과음", 0xB19D1FA9116F39D3ULL)); this->m_effectText->SetFitText(0); this->m_effectText->SetAlign(0, 0); - this->m_effectText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xE8, 0x7C, 0x65, 0x8E, 0xAA, 0xC9}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x9569C9C7E70909AFULL> name(source); - return name.Text(); - }())); + this->m_effectText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x9569C9C7E70909AFULL))); this->m_effectText->SetFontHeight(12); this->m_effectText->SetBold(0); this->m_effectText->SetColor(0); @@ -3834,39 +3143,9 @@ void GameSettingsUI::CUIGroupSound::OnCreate(int width, int height) { this->m_effectSlider->SetTotal(128); this->m_effectSlider->SetVisible(128); this->m_effectSlider->step = 1; - static_cast(this->m_effectSlider)->SetButtonImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0xAB, 0xE4, 0x7B, 0xFB, 0x47, 0xA1, 0x6C, 0x7A, 0xAD, 0xAF, 0x7B, 0xCD, 0x3A, 0xD5, 0xF5, 0xC4, 0x08, 0x39, 0xD4, 0x6D, 0xEB, 0x5E, 0xC5, 0xD2, 0x0D, 0x3F, 0x95, 0x63, 0xEA, 0x1F, 0xA9}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0xB7A96F8701BB4B6BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x09, 0xAE, 0x2D, 0x15, 0x27, 0xA7, 0xDA, 0x6E, 0x0F, 0xE5, 0x2D, 0x23, 0x5A, 0xD3, 0x43, 0xD0, 0xAA, 0x73, 0x82, 0x83, 0x8B, 0x58, 0x6D, 0xCA, 0xAE, 0x69, 0x99, 0xC1, 0x85, 0x04, 0x6F, 0xA3}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0xA31F69E7EFED01C9ULL> name(source); - return name.Text(); - }())); - this->m_effectSlider->SetBackground(std::string([]() { - constexpr std::uint8_t bytes[] = {0x91, 0x58, 0x9B, 0x8D, 0x5D, 0x6F, 0xE2, 0x7C, 0x97, 0x13, 0x9B, 0xBB, 0x20, 0x1B, 0x7B, 0xC2, 0x32, 0x85, 0x34, 0x1B, 0xF1, 0x90, 0x4A, 0xD8, 0x35, 0xD9, 0x39, 0x1A, 0xED, 0xA1}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0xB127A19D775BF751ULL> name(source); - return name.Text(); - }())); - static_cast(this->m_effectSlider)->SetThumbImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x9D, 0x44, 0xB3, 0xB3, 0x5B, 0x87, 0xA4, 0xC2, 0x9B, 0x0F, 0xB3, 0x85, 0x26, 0xF3, 0x3D, 0x7C, 0x3E, 0x99, 0x1C, 0x25, 0xF7, 0x78, 0x03, 0x6E, 0x2F, 0xB4, 0x1F, 0x2C, 0xFD, 0x3D, 0x4F, 0x6D, 0x30, 0x9B, 0x73}; - constexpr EncryptedSource<35> source(bytes); - thread_local EncryptedName<35, 0x0F61499B4973EB5DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xBF, 0xF4, 0xB5, 0x5F, 0x67, 0x3B, 0x24, 0x48, 0xB9, 0xBF, 0xB5, 0x69, 0x1A, 0x4F, 0xBD, 0xF6, 0x1C, 0x29, 0x1A, 0xC9, 0xCB, 0xC4, 0x83, 0xE4, 0x0D, 0x04, 0x18, 0xCC, 0xC3, 0xDB, 0x83, 0xE8, 0x0F, 0x5B}; - constexpr EncryptedSource<34> source(bytes); - thread_local EncryptedName<34, 0x85E1F5A7A5755B7FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xE7, 0x0A, 0x53, 0x65, 0xC1, 0x9D, 0xA4, 0x60, 0xE1, 0x41, 0x53, 0x53, 0xBC, 0xE9, 0x3D, 0xDE, 0x44, 0xD7, 0xFC, 0xF3, 0x6D, 0x62, 0x03, 0xCC, 0x55, 0xFA, 0xE1, 0xF6, 0x66, 0x3B, 0x15, 0x83, 0x45, 0xC8, 0xE3, 0x9F}; - constexpr EncryptedSource<36> source(bytes); - thread_local EncryptedName<36, 0xAD6153019F93A527ULL> name(source); - return name.Text(); - }())); + static_cast(this->m_effectSlider)->SetButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1left.bmp", 0xB7A96F8701BB4B6BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1right.bmp", 0xA31F69E7EFED01C9ULL))); + this->m_effectSlider->SetBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1mid.bmp", 0xB127A19D775BF751ULL))); + static_cast(this->m_effectSlider)->SetThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1bar_left.bmp", 0x0F61499B4973EB5DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1bar_mid.bmp", 0x85E1F5A7A5755B7FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1bar_right.bmp", 0xAD6153019F93A527ULL))); this->AddChild(this->m_effectSlider); this->m_effectMute = new CUICheckBox(); this->m_effectMute->SetSize(10, 10); @@ -3874,47 +3153,17 @@ void GameSettingsUI::CUIGroupSound::OnCreate(int width, int height) { this->m_effectMute->SetOnCheck([this](bool checked) { this->OnEffectMute(checked); }); this->m_effectMute->disabled = 0; this->m_effectMute->Invalidate(); - this->m_effectMute->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x99, 0xD0, 0x67, 0x5B, 0xD7, 0x0B, 0x30, 0x72, 0x9F, 0x9B, 0x67, 0x6D, 0xAA, 0x7F, 0xA9, 0xDC, 0x31, 0x1A, 0xC4, 0xCA, 0x75, 0xAA, 0x8D, 0xE0, 0x69, 0x51, 0xC5, 0xCC, 0x67, 0xC5}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0xBFF5C517A1A77F59ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xFD, 0xD2, 0x95, 0xDB, 0x01, 0xBB, 0x5C, 0xA8, 0xFB, 0x99, 0x95, 0xED, 0x7C, 0xCF, 0xC5, 0x06, 0x55, 0x18, 0x36, 0x4A, 0xA3, 0x1A, 0xE1, 0x3A, 0x0C, 0x53, 0x37, 0x4C, 0xB1, 0x75}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0x659975C121557D3DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x51, 0xC4, 0xAB, 0xE5, 0x43, 0x05, 0x0A, 0x8C, 0x57, 0x8F, 0xAB, 0xD3, 0x3E, 0x71, 0x93, 0x22, 0xF9, 0x0E, 0x08, 0x74, 0xE1, 0xA4, 0xB7, 0x1E, 0xA1, 0x45, 0x09, 0x72, 0xF3, 0xCB}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0x41CFCB831F6B6B91ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xB5, 0x90, 0xA1, 0x51, 0xEF, 0xBF, 0x22, 0x90, 0xB3, 0xDB, 0xA1, 0x67, 0x92, 0xCB, 0xBB, 0x3E, 0x1D, 0x5A, 0x02, 0xC0, 0x4D, 0x1E, 0x9F, 0x02, 0x45, 0x11, 0x03, 0xC6, 0x5F, 0x71}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0x5DE7712FAB613F75ULL> name(source); - return name.Text(); - }())); + this->m_effectMute->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\checkbox_0.bmp", 0xBFF5C517A1A77F59ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\checkbox_1.bmp", 0x659975C121557D3DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\checkbox_0.bmp", 0x41CFCB831F6B6B91ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\checkbox_0.bmp", 0x5DE7712FAB613F75ULL))); this->m_effectMute->checked = false; this->m_effectMute->Invalidate(); this->AddChild(this->m_effectMute); this->m_effectMuteText = new CUIStaticText(); this->m_effectMuteText->SetSize(50, 13); this->m_effectMuteText->Move(348, 36); - this->m_effectMuteText->SetText([]() { - constexpr std::uint8_t bytes[] = {0xB3, 0xF9, 0xF6, 0xBF, 0xED}; - constexpr EncryptedSource<5> source(bytes); - thread_local EncryptedName<5, 0x81F58DED5D470D01ULL> name(source); - return name.Text(); - }()); + this->m_effectMuteText->SetText(OBFUSCATE_SOURCE_TEXT("끄기", 0x81F58DED5D470D01ULL)); this->m_effectMuteText->SetFitText(0); this->m_effectMuteText->SetAlign(0, 0); - this->m_effectMuteText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x8C, 0x98, 0xDF, 0x42, 0xEA, 0x31}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x454D31872BB3EDCBULL> name(source); - return name.Text(); - }())); + this->m_effectMuteText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x454D31872BB3EDCBULL))); this->m_effectMuteText->SetFontHeight(12); this->m_effectMuteText->SetBold(0); this->m_effectMuteText->SetColor(0); @@ -3929,20 +3178,10 @@ void GameSettingsUI::CUIGroupSpriteDetailLevel::OnCreate(int width, int height) this->m_title = new CUIStaticText(); this->m_title->SetSize(130, 13); this->m_title->Move(19, 12); - this->m_title->SetText([]() { - constexpr std::uint8_t bytes[] = {0xAE, 0x7D, 0xC4, 0xD4, 0x4D, 0x62, 0xD7, 0x83, 0xD5, 0x69, 0x23, 0xD2, 0x23, 0x2A, 0xE4, 0xFA, 0xA6, 0xC7}; - constexpr EncryptedSource<18> source(bytes); - thread_local EncryptedName<18, 0x4F1791FB1503C713ULL> name(source); - return name.Text(); - }()); + this->m_title->SetText(OBFUSCATE_SOURCE_TEXT("스프라이트 해상도", 0x4F1791FB1503C713ULL)); this->m_title->SetFitText(0); this->m_title->SetAlign(0, 0); - this->m_title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x94, 0x98, 0xFB, 0x7C, 0x20, 0x5B}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xA1A55B4D1597EDD3ULL> name(source); - return name.Text(); - }())); + this->m_title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xA1A55B4D1597EDD3ULL))); this->m_title->SetFontHeight(12); this->m_title->SetBold(1); this->m_title->SetColor(0); @@ -3956,39 +3195,9 @@ void GameSettingsUI::CUIGroupSpriteDetailLevel::OnCreate(int width, int height) this->m_slider->SetTotal(128); this->m_slider->SetVisible(128); this->m_slider->step = 1; - static_cast(this->m_slider)->SetButtonImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0xC1, 0xF8, 0x57, 0x25, 0xD3, 0x4B, 0x96, 0x1C, 0xC7, 0xB3, 0x57, 0x13, 0xAE, 0x3F, 0x0F, 0xA2, 0x62, 0x25, 0xF8, 0xB3, 0x7F, 0xB4, 0x3F, 0xB4, 0x67, 0x23, 0xB9, 0xBD, 0x7E, 0xF5, 0x53}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0xD1538513DF975701ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x5F, 0x6C, 0x87, 0x47, 0x2B, 0x89, 0x24, 0x5C, 0x59, 0x27, 0x87, 0x71, 0x56, 0xFD, 0xBD, 0xE2, 0xFC, 0xB1, 0x28, 0xD1, 0x87, 0x76, 0x93, 0xF8, 0xF8, 0xAB, 0x33, 0x93, 0x89, 0x2A, 0x91, 0x91}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x91E147EBBD47C39FULL> name(source); - return name.Text(); - }())); - this->m_slider->SetBackground(std::string([]() { - constexpr std::uint8_t bytes[] = {0x45, 0xCE, 0x4B, 0xED, 0xBF, 0xAF, 0x60, 0x62, 0x43, 0x85, 0x4B, 0xDB, 0xC2, 0xDB, 0xF9, 0xDC, 0xE6, 0x13, 0xE4, 0x7B, 0x13, 0x50, 0xC8, 0xC6, 0xE1, 0x4F, 0xE9, 0x7A, 0x0F, 0x61}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0xAFA5617F178B6185ULL> name(source); - return name.Text(); - }())); - static_cast(this->m_slider)->SetThumbImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x8D, 0x8A, 0x59, 0xB3, 0x93, 0x8D, 0x44, 0xCA, 0x8B, 0xC1, 0x59, 0x85, 0xEE, 0xF9, 0xDD, 0x74, 0x2E, 0x57, 0xF6, 0x25, 0x3F, 0x72, 0xE3, 0x66, 0x3F, 0x7A, 0xF5, 0x2C, 0x35, 0x37, 0xAF, 0x65, 0x20, 0x55, 0x99}; - constexpr EncryptedSource<35> source(bytes); - thread_local EncryptedName<35, 0x078143534999254DULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xA1, 0x00, 0x4F, 0xC3, 0x4B, 0x07, 0x3A, 0xDA, 0xA7, 0x4B, 0x4F, 0xF5, 0x36, 0x73, 0xA3, 0x64, 0x02, 0xDD, 0xE0, 0x55, 0xE7, 0xF8, 0x9D, 0x76, 0x13, 0xF0, 0xE2, 0x50, 0xEF, 0xE7, 0x9D, 0x7A, 0x11, 0xAF}; - constexpr EncryptedSource<34> source(bytes); - thread_local EncryptedName<34, 0x17FFC98B398FAF61ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xF3, 0x3C, 0x8D, 0x6F, 0x5B, 0x5B, 0x9E, 0x56, 0xF5, 0x77, 0x8D, 0x59, 0x26, 0x2F, 0x07, 0xE8, 0x50, 0xE1, 0x22, 0xF9, 0xF7, 0xA4, 0x39, 0xFA, 0x41, 0xCC, 0x3F, 0xFC, 0xFC, 0xFD, 0x2F, 0xB5, 0x51, 0xFE, 0x3D, 0x95}; - constexpr EncryptedSource<36> source(bytes); - thread_local EncryptedName<36, 0x9B5B959B954D9333ULL> name(source); - return name.Text(); - }())); + static_cast(this->m_slider)->SetButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1left.bmp", 0xD1538513DF975701ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1right.bmp", 0x91E147EBBD47C39FULL))); + this->m_slider->SetBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1mid.bmp", 0xAFA5617F178B6185ULL))); + static_cast(this->m_slider)->SetThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1bar_left.bmp", 0x078143534999254DULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1bar_mid.bmp", 0x17FFC98B398FAF61ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1bar_right.bmp", 0x9B5B959B954D9333ULL))); this->AddChild(this->m_slider); } @@ -3998,20 +3207,10 @@ void GameSettingsUI::CUIGroupTextureDetailLevel::OnCreate(int width, int height) this->m_title = new CUIStaticText(); this->m_title->SetSize(130, 13); this->m_title->Move(19, 12); - this->m_title->SetText([]() { - constexpr std::uint8_t bytes[] = {0x34, 0x1B, 0x54, 0x07, 0x6E, 0xC9, 0x55, 0xBA, 0x29, 0x78, 0x1A, 0x08, 0x18, 0x0D}; - constexpr EncryptedSource<14> source(bytes); - thread_local EncryptedName<14, 0x7D750DADBDE9C3F1ULL> name(source); - return name.Text(); - }()); + this->m_title->SetText(OBFUSCATE_SOURCE_TEXT("텍스쳐 해상도", 0x7D750DADBDE9C3F1ULL)); this->m_title->SetFitText(0); this->m_title->SetAlign(0, 0); - this->m_title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xF8, 0xC8, 0xB3, 0x56, 0x20, 0x2D}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x33832D4D3FDFBDBFULL> name(source); - return name.Text(); - }())); + this->m_title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x33832D4D3FDFBDBFULL))); this->m_title->SetFontHeight(12); this->m_title->SetBold(1); this->m_title->SetColor(0); @@ -4025,39 +3224,9 @@ void GameSettingsUI::CUIGroupTextureDetailLevel::OnCreate(int width, int height) this->m_slider->SetTotal(128); this->m_slider->SetVisible(128); this->m_slider->step = 1; - static_cast(this->m_slider)->SetButtonImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x6F, 0xE0, 0xEB, 0x19, 0x1F, 0xDB, 0x96, 0xF2, 0x69, 0xAB, 0xEB, 0x2F, 0x62, 0xAF, 0x0F, 0x4C, 0xCC, 0x3D, 0x44, 0x8F, 0xB3, 0x24, 0x3F, 0x5A, 0xC9, 0x3B, 0x05, 0x81, 0xB2, 0x65, 0x53}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x3F5315DFE32B4FAFULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x29, 0x7C, 0xFD, 0xFD, 0xF5, 0xE7, 0xCE, 0x28, 0x2F, 0x37, 0xFD, 0xCB, 0x88, 0x93, 0x57, 0x96, 0x8A, 0xA1, 0x52, 0x6B, 0x59, 0x18, 0x79, 0x8C, 0x8E, 0xBB, 0x49, 0x29, 0x57, 0x44, 0x7B, 0xE5}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0xE50B2935073DD3E9ULL> name(source); - return name.Text(); - }())); - this->m_slider->SetBackground(std::string([]() { - constexpr std::uint8_t bytes[] = {0x51, 0x6C, 0x7D, 0x9B, 0xA5, 0x5F, 0xF8, 0xF4, 0x57, 0x27, 0x7D, 0xAD, 0xD8, 0x2B, 0x61, 0x4A, 0xF2, 0xB1, 0xD2, 0x0D, 0x09, 0xA0, 0x50, 0x50, 0xF5, 0xED, 0xDF, 0x0C, 0x15, 0x91}; - constexpr EncryptedSource<30> source(bytes); - thread_local EncryptedName<30, 0x393D916561BDC391ULL> name(source); - return name.Text(); - }())); - static_cast(this->m_slider)->SetThumbImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x55, 0x52, 0xD1, 0x49, 0x91, 0xAB, 0x50, 0xFC, 0x53, 0x19, 0xD1, 0x7F, 0xEC, 0xDF, 0xC9, 0x42, 0xF6, 0x8F, 0x7E, 0xDF, 0x3D, 0x54, 0xF7, 0x50, 0xE7, 0xA2, 0x7D, 0xD6, 0x37, 0x11, 0xBB, 0x53, 0xF8, 0x8D, 0x11}; - constexpr EncryptedSource<35> source(bytes); - thread_local EncryptedName<35, 0x31956551B311FD95ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x19, 0x96, 0xD3, 0x83, 0x0B, 0x4D, 0xB8, 0x32, 0x1F, 0xDD, 0xD3, 0xB5, 0x76, 0x39, 0x21, 0x8C, 0xBA, 0x4B, 0x7C, 0x15, 0xA7, 0xB2, 0x1F, 0x9E, 0xAB, 0x66, 0x7E, 0x10, 0xAF, 0xAD, 0x1F, 0x92, 0xA9, 0x39}; - constexpr EncryptedSource<34> source(bytes); - thread_local EncryptedName<34, 0xFF7D83CB791339D9ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xD5, 0x3C, 0x73, 0x3B, 0x27, 0x8D, 0x94, 0x20, 0xD3, 0x77, 0x73, 0x0D, 0x5A, 0xF9, 0x0D, 0x9E, 0x76, 0xE1, 0xDC, 0xAD, 0x8B, 0x72, 0x33, 0x8C, 0x67, 0xCC, 0xC1, 0xA8, 0x80, 0x2B, 0x25, 0xC3, 0x77, 0xFE, 0xC3, 0xC1}; - constexpr EncryptedSource<36> source(bytes); - thread_local EncryptedName<36, 0xED5143E7C1B39315ULL> name(source); - return name.Text(); - }())); + static_cast(this->m_slider)->SetButtonImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1left.bmp", 0x3F5315DFE32B4FAFULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1right.bmp", 0xE50B2935073DD3E9ULL))); + this->m_slider->SetBackground(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1mid.bmp", 0x393D916561BDC391ULL))); + static_cast(this->m_slider)->SetThumbImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1bar_left.bmp", 0x31956551B311FD95ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1bar_mid.bmp", 0xFF7D83CB791339D9ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\scroll1bar_right.bmp", 0xED5143E7C1B39315ULL))); this->AddChild(this->m_slider); } @@ -4067,20 +3236,10 @@ void GameSettingsUI::CUIGroupTrilinear::OnCreate(int width, int height) { this->m_title = new CUIStaticText(); this->m_title->SetSize(130, 13); this->m_title->Move(19, 12); - this->m_title->SetText([]() { - constexpr std::uint8_t bytes[] = {0xAB, 0xCD, 0x83, 0xDE, 0x65, 0xCF, 0x3B, 0x16, 0xD3, 0x8D, 0x15, 0xEA, 0x6F, 0xC6, 0x42, 0x61, 0xD8, 0x63}; - constexpr EncryptedSource<18> source(bytes); - thread_local EncryptedName<18, 0xD98F03A52D35636DULL> name(source); - return name.Text(); - }()); + this->m_title->SetText(OBFUSCATE_SOURCE_TEXT("트라이니어 필터링", 0xD98F03A52D35636DULL)); this->m_title->SetFitText(0); this->m_title->SetAlign(0, 0); - this->m_title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x96, 0x6C, 0xF1, 0xE6, 0x06, 0x8B}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x0F0F8B6B8F9D19D1ULL> name(source); - return name.Text(); - }())); + this->m_title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x0F0F8B6B8F9D19D1ULL))); this->m_title->SetFontHeight(12); this->m_title->SetBold(1); this->m_title->SetColor(0); @@ -4096,27 +3255,7 @@ void GameSettingsUI::CUIGroupTrilinear::OnCreate(int width, int height) { onButton->disabled = 0; onButton->Invalidate(); } - this->m_onButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0xB1, 0x56, 0x99, 0x0F, 0x41, 0xD3, 0xA0, 0x5C, 0xB7, 0x1D, 0x99, 0x39, 0x3C, 0xA7, 0x39, 0xE3, 0x10, 0x9D, 0x30, 0x9A, 0xE3, 0x69, 0x0B, 0xCE, 0x1E, 0x9F, 0x3F, 0xDB, 0xE3, 0x70, 0x15, 0x91}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x91651D81F559F971ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xCB, 0xD4, 0x1F, 0x9B, 0x8B, 0xA9, 0x14, 0xBE, 0xCD, 0x9F, 0x1F, 0xAD, 0xF6, 0xDD, 0x8D, 0x01, 0x6A, 0x1F, 0xB6, 0x0E, 0x29, 0x13, 0xBF, 0x2C, 0x64, 0x15, 0xF1, 0x03, 0x26, 0x17, 0xD1}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x73D1674B61DF7B0BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x17, 0xE0, 0xC3, 0x6F, 0x19, 0x4B, 0x6A, 0xF2, 0x11, 0xAB, 0xC3, 0x59, 0x64, 0x3F, 0xF3, 0x4D, 0xB6, 0x2B, 0x6A, 0xFA, 0xBB, 0xF1, 0xC1, 0x60, 0xB8, 0x29, 0x65, 0xBB, 0xBB, 0xE8, 0xDF, 0x3F}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x3FAF85D995034FD7ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x79, 0xA2, 0xEF, 0x5B, 0x83, 0x35, 0xCA, 0x84, 0x7F, 0xE9, 0xEF, 0x6D, 0xFE, 0x41, 0x53, 0x3B, 0xD8, 0x69, 0x46, 0xCE, 0x21, 0x8F, 0x61, 0x16, 0xD6, 0x6B, 0x49, 0x8F, 0x21, 0x96, 0x7F, 0x49}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x490FFB43A12F0DB9ULL> name(source); - return name.Text(); - }())); + this->m_onButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x91651D81F559F971ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_on.bmp", 0x73D1674B61DF7B0BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x3FAF85D995034FD7ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x490FFB43A12F0DB9ULL))); { auto* const onButton = this->m_onButton; onButton->checked = false; @@ -4126,20 +3265,10 @@ void GameSettingsUI::CUIGroupTrilinear::OnCreate(int width, int height) { this->m_onText = new CUIStaticText(); this->m_onText->SetSize(150, 13); this->m_onText->Move(167, 12); - this->m_onText->SetText([]() { - constexpr std::uint8_t bytes[] = {0xF7, 0xF6, 0x82, 0xED, 0xBD}; - constexpr EncryptedSource<5> source(bytes); - thread_local EncryptedName<5, 0x2D394DBD0F332733ULL> name(source); - return name.Text(); - }()); + this->m_onText->SetText(OBFUSCATE_SOURCE_TEXT("켜기", 0x2D394DBD0F332733ULL)); this->m_onText->SetFitText(0); this->m_onText->SetAlign(0, 0); - this->m_onText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x00, 0x54, 0xD7, 0x82, 0x86, 0x77}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x151F77EBEBBB2147ULL> name(source); - return name.Text(); - }())); + this->m_onText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x151F77EBEBBB2147ULL))); this->m_onText->SetFontHeight(12); this->m_onText->SetBold(0); this->m_onText->SetColor(0); @@ -4155,27 +3284,7 @@ void GameSettingsUI::CUIGroupTrilinear::OnCreate(int width, int height) { offButton->disabled = 0; offButton->Invalidate(); } - this->m_offButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x21, 0x34, 0x33, 0x81, 0x2D, 0x49, 0x3A, 0xAC, 0x27, 0x7F, 0x33, 0xB7, 0x50, 0x3D, 0xA3, 0x13, 0x80, 0xFF, 0x9A, 0x14, 0x8F, 0xF3, 0x91, 0x3E, 0x8E, 0xFD, 0x95, 0x55, 0x8F, 0xEA, 0x8F, 0x61}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x61FF87ED7BF39BE1ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x3F, 0x2A, 0xE7, 0xF7, 0xA5, 0xF1, 0x5C, 0xB0, 0x39, 0x61, 0xE7, 0xC1, 0xD8, 0x85, 0xC5, 0x0F, 0x9E, 0xE1, 0x4E, 0x62, 0x07, 0x4B, 0xF7, 0x22, 0x90, 0xEB, 0x09, 0x6F, 0x08, 0x4F, 0x99}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x7D993F650D2785FFULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xEF, 0x30, 0x73, 0x21, 0x2F, 0x07, 0xD2, 0x56, 0xE9, 0x7B, 0x73, 0x17, 0x52, 0x73, 0x4B, 0xE9, 0x4E, 0xFB, 0xDA, 0xB4, 0x8D, 0xBD, 0x79, 0xC4, 0x40, 0xF9, 0xD5, 0xF5, 0x8D, 0xA4, 0x67, 0x9B}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x9B17C9EFDBB39F2FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x1D, 0x7A, 0x89, 0xBB, 0xB7, 0xDB, 0xFE, 0xE0, 0x1B, 0x31, 0x89, 0x8D, 0xCA, 0xAF, 0x67, 0x5F, 0xBC, 0xB1, 0x20, 0x2E, 0x15, 0x61, 0x55, 0x72, 0xB2, 0xB3, 0x2F, 0x6F, 0x15, 0x78, 0x4B, 0x2D}; - constexpr EncryptedSource<32> source(bytes); - thread_local EncryptedName<32, 0x2D3B15774149D5DDULL> name(source); - return name.Text(); - }())); + this->m_offButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x61FF87ED7BF39BE1ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_on.bmp", 0x7D993F650D2785FFULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x9B17C9EFDBB39F2FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\radiobtn_off.bmp", 0x2D3B15774149D5DDULL))); { auto* const offButton = this->m_offButton; offButton->checked = false; @@ -4185,20 +3294,10 @@ void GameSettingsUI::CUIGroupTrilinear::OnCreate(int width, int height) { this->m_offText = new CUIStaticText(); this->m_offText->SetSize(100, 13); this->m_offText->Move(287, 12); - this->m_offText->SetText([]() { - constexpr std::uint8_t bytes[] = {0xC3, 0xEF, 0x42, 0x1D, 0x87}; - constexpr EncryptedSource<5> source(bytes); - thread_local EncryptedName<5, 0xC7912587FFF31B71ULL> name(source); - return name.Text(); - }()); + this->m_offText->SetText(OBFUSCATE_SOURCE_TEXT("끄기", 0xC7912587FFF31B71ULL)); this->m_offText->SetFitText(0); this->m_offText->SetAlign(0, 0); - this->m_offText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x2A, 0x46, 0x63, 0xFC, 0xB6, 0x45}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x69D345DB950F336DULL> name(source); - return name.Text(); - }())); + this->m_offText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x69D345DB950F336DULL))); this->m_offText->SetFontHeight(12); this->m_offText->SetBold(0); this->m_offText->SetColor(0); @@ -4508,30 +3607,7 @@ void CUIGameSettingsUI::OnCreate(int width, int height) { this->m_titleBar->Move(0, 0); { CUITitleBar* titleBar = this->m_titleBar; - titleBar->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x09, 0x18, 0xE5, 0x6D, 0x7B, 0xFD, 0x46, 0xCA, 0x0F, 0x53, 0xE5, 0x5B, 0x06, 0x89, 0xDF, 0x65, 0xA8, 0xC4, 0x4C, 0xF4, 0xE4, 0x5A, 0xED, 0x73, - 0xAC, 0xC5, 0x43, 0xF6, 0xD8, 0x56, 0xDF, 0x73, 0xA0, 0xC3, 0x49, 0xF2, 0xD9, 0x52, 0xF1, 0x58, 0xA5, 0xD2, 0x43, 0xE3, 0x95, 0x51, 0xEE, 0x77, - 0xC9}; - constexpr EncryptedSource<49> source(bytes); - thread_local EncryptedName<49, 0x078333BB9725B7C9ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x75, 0xDA, 0xA1, 0xA5, 0x3D, 0x95, 0xDE, 0x42, 0x73, 0x91, 0xA1, 0x93, 0x40, 0xE1, 0x47, 0xED, 0xD4, 0x06, 0x08, 0x3C, 0xA2, 0x32, 0x75, 0xFB, - 0xD0, 0x07, 0x07, 0x3E, 0x9E, 0x3E, 0x47, 0xFB, 0xDC, 0x01, 0x0D, 0x3A, 0x9F, 0x3A, 0x69, 0xD0, 0xD8, 0x1C, 0x05, 0x71, 0x9F, 0x36, 0x6B, 0x8F}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x8F1B5BFD5F6175B5ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x03, 0x6C, 0x15, 0x71, 0x9B, 0x25, 0xFA, 0x46, 0x05, 0x27, 0x15, 0x47, 0xE6, 0x51, 0x63, 0xE9, 0xA2, 0xB0, 0xBC, 0xE8, 0x04, 0x82, 0x51, 0xFF, - 0xA6, 0xB1, 0xB3, 0xEA, 0x38, 0x8E, 0x63, 0xFF, 0xAA, 0xB7, 0xB9, 0xEE, 0x39, 0x8A, 0x4D, 0xD4, 0xB1, 0xAA, 0xB2, 0xE3, 0x2F, 0xC5, 0x5D, 0xE6, - 0xB3, 0xC3}; - constexpr EncryptedSource<50> source(bytes); - thread_local EncryptedName<50, 0x8B3FEB5B8BD5C3C3ULL> name(source); - return name.Text(); - }())); + titleBar->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\titlebar_left.bmp", 0x078333BB9725B7C9ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\titlebar_mid.bmp", 0x8F1B5BFD5F6175B5ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\titlebar_right.bmp", 0x8B3FEB5B8BD5C3C3ULL))); } this->AddChild(this->m_titleBar); @@ -4539,22 +3615,12 @@ void CUIGameSettingsUI::OnCreate(int width, int height) { title->SetSize(100, 17); title->Move(18, 0); { - title->SetText([]() { - constexpr std::uint8_t bytes[] = {0x17, 0x67, 0xC5, 0x1A, 0x85, 0xDF, 0x58, 0xCA, 0x03, 0xB3}; - constexpr EncryptedSource<10> source(bytes); - thread_local EncryptedName<10, 0x0BEB63A5C905B3A7ULL> name(source); - return name.Text(); - }()); + title->SetText(OBFUSCATE_SOURCE_TEXT("게임 설정", 0x0BEB63A5C905B3A7ULL)); } title->SetFitText(0); title->SetAlign(0, 6); { - title->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x76, 0x2C, 0x47, 0x68, 0x0C, 0xCD}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x8B65CD61012B5931ULL> name(source); - return name.Text(); - }())); + title->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x8B65CD61012B5931ULL))); } title->SetFontHeight(12); title->SetBold(0); @@ -4572,35 +3638,7 @@ void CUIGameSettingsUI::OnCreate(int width, int height) { baseButton->disabled = 0; baseButton->Invalidate(); { - baseButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x25, 0x20, 0x8D, 0xEF, 0xF7, 0xCF, 0x96, 0x3A, 0x23, 0x6B, 0x8D, 0xD9, 0x8A, 0xBB, 0x0F, 0x95, 0x84, 0xFC, 0x24, 0x76, 0x68, 0x68, 0x3D, 0x83, - 0x80, 0xFD, 0x2B, 0x74, 0x54, 0x64, 0x0F, 0x84, 0x9C, 0xFC, 0x12, 0x77, 0x56, 0x72, 0x36, 0xA8, 0x8A, 0xE9, 0x2B, 0x3B, 0x55, 0x6C, 0x23, 0xF7}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0xF7530137154D8FE5ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x01, 0x60, 0x13, 0xC9, 0x57, 0xD3, 0x38, 0xA4, 0x07, 0x2B, 0x13, 0xFF, 0x2A, 0xA7, 0xA1, 0x0B, 0xA0, 0xBC, 0xBA, 0x50, 0xC8, 0x74, 0x93, 0x1D, - 0xA4, 0xBD, 0xB5, 0x52, 0xF4, 0x78, 0xA1, 0x1A, 0xB8, 0xBC, 0x8C, 0x51, 0xF6, 0x6E, 0x98, 0x36, 0xAE, 0xA1, 0xFD, 0x51, 0xFA, 0x6D, 0xFD}; - constexpr EncryptedSource<47> source(bytes); - thread_local EncryptedName<47, 0x69FD1D9733D3CFC1ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x07, 0x62, 0x25, 0xC7, 0xDF, 0xB3, 0xA0, 0x38, 0x01, 0x29, 0x25, 0xF1, 0xA2, 0xC7, 0x39, 0x97, 0xA6, 0xBE, 0x8C, 0x5E, 0x40, 0x14, 0x0B, 0x81, - 0xA2, 0xBF, 0x83, 0x5C, 0x7C, 0x18, 0x39, 0x86, 0xBE, 0xBE, 0xBA, 0x5F, 0x7E, 0x0E, 0x00, 0xAA, 0xA8, 0xA3, 0xCB, 0x5F, 0x72, 0x0D, 0x65}; - constexpr EncryptedSource<47> source(bytes); - thread_local EncryptedName<47, 0xF5657D1F3DE5CDC7ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x23, 0xF8, 0xD5, 0xA7, 0xD7, 0x4F, 0x1E, 0xD2, 0x25, 0xB3, 0xD5, 0x91, 0xAA, 0x3B, 0x87, 0x7D, 0x82, 0x24, 0x7C, 0x3E, 0x48, 0xE8, 0xB5, 0x6B, - 0x86, 0x25, 0x73, 0x3C, 0x74, 0xE4, 0x87, 0x6C, 0x9A, 0x24, 0x4A, 0x3F, 0x76, 0xF2, 0xBE, 0x40, 0x8C, 0x31, 0x73, 0x73, 0x75, 0xEC, 0xAB, 0x1F}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x1FDB81175D1557E3ULL> name(source); - return name.Text(); - }())); + baseButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_base_off.bmp", 0xF7530137154D8FE5ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_base_on.bmp", 0x69FD1D9733D3CFC1ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_base_on.bmp", 0xF5657D1F3DE5CDC7ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_base_off.bmp", 0x1FDB81175D1557E3ULL))); } this->m_titleBar->AddChild(baseButton); @@ -4611,37 +3649,7 @@ void CUIGameSettingsUI::OnCreate(int width, int height) { closeButton->disabled = 0; closeButton->Invalidate(); { - closeButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x7F, 0x2A, 0xE7, 0x87, 0x93, 0xED, 0x3E, 0x2E, 0x79, 0x61, 0xE7, 0xB1, 0xEE, 0x99, 0xA7, 0x81, 0xDE, 0xF6, 0x4E, 0x1E, 0x0C, 0x4A, 0x95, 0x97, - 0xDA, 0xF7, 0x41, 0x1C, 0x30, 0x46, 0xA7, 0x90, 0xC6, 0xF6, 0x78, 0x1E, 0x3F, 0x4C, 0x88, 0x86, 0xE0, 0xEA, 0x41, 0x1B, 0x7D, 0x41, 0x96, 0x93, - 0xBF}; - constexpr EncryptedSource<49> source(bytes); - thread_local EncryptedName<49, 0xE3FB23537D2785BFULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x5F, 0x56, 0x81, 0x37, 0x39, 0xA5, 0x62, 0x7A, 0x59, 0x1D, 0x81, 0x01, 0x44, 0xD1, 0xFB, 0xD5, 0xFE, 0x8A, 0x28, 0xAE, 0xA6, 0x02, 0xC9, 0xC3, - 0xFA, 0x8B, 0x27, 0xAC, 0x9A, 0x0E, 0xFB, 0xC4, 0xE6, 0x8A, 0x1E, 0xAE, 0x95, 0x04, 0xD4, 0xD2, 0xC0, 0x96, 0x2F, 0xE3, 0x9B, 0x06, 0xD7, 0xB7}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0xB7A76BF9CD41F99FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x17, 0xE8, 0x3D, 0x99, 0xCD, 0xF7, 0xEE, 0xBE, 0x11, 0xA3, 0x3D, 0xAF, 0xB0, 0x83, 0x77, 0x11, 0xB6, 0x34, 0x94, 0x00, 0x52, 0x50, 0x45, 0x07, - 0xB2, 0x35, 0x9B, 0x02, 0x6E, 0x5C, 0x77, 0x00, 0xAE, 0x34, 0xA2, 0x00, 0x61, 0x56, 0x58, 0x16, 0x88, 0x28, 0x93, 0x4D, 0x6F, 0x54, 0x5B, 0x73}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x732B390D63FD47D7ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x51, 0x86, 0xB9, 0xB9, 0x1B, 0xC7, 0x60, 0xBC, 0x57, 0xCD, 0xB9, 0x8F, 0x66, 0xB3, 0xF9, 0x13, 0xF0, 0x5A, 0x10, 0x20, 0x84, 0x60, 0xCB, 0x05, - 0xF4, 0x5B, 0x1F, 0x22, 0xB8, 0x6C, 0xF9, 0x02, 0xE8, 0x5A, 0x26, 0x20, 0xB7, 0x66, 0xD6, 0x14, 0xCE, 0x46, 0x1F, 0x25, 0xF5, 0x6B, 0xC8, 0x01, - 0x91}; - constexpr EncryptedSource<49> source(bytes); - thread_local EncryptedName<49, 0x71A509DB43792991ULL> name(source); - return name.Text(); - }())); + closeButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_close_off.bmp", 0xE3FB23537D2785BFULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_close_on.bmp", 0xB7A76BF9CD41F99FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_close_on.bmp", 0x732B390D63FD47D7ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\basic_interface\\sys_close_off.bmp", 0x71A509DB43792991ULL))); } this->m_titleBar->SetSecondButton(closeButton); @@ -4679,22 +3687,12 @@ void CUIGameSettingsUI::OnCreate(int width, int height) { basicButton->Invalidate(); basicButton->SetId(0); { - basicButton->SetText(std::string([]() { - constexpr std::uint8_t bytes[] = {0xCC, 0xB1, 0x35, 0x1A, 0xDF, 0x51, 0xDA, 0x1C, 0xD9, 0x53}; - constexpr EncryptedSource<10> source(bytes); - thread_local EncryptedName<10, 0xDD69EDFFA18F537DULL> name(source); - return name.Text(); - }())); + basicButton->SetText(std::string(OBFUSCATE_SOURCE_TEXT("기본 설정", 0xDD69EDFFA18F537DULL))); } basicButton->SetFitText(0); basicButton->SetAlign(6, 6); { - basicButton->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x34, 0x54, 0x8B, 0x2E, 0x46, 0x79}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x8BBF792B47E72173ULL> name(source); - return name.Text(); - }())); + basicButton->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x8BBF792B47E72173ULL))); } basicButton->SetFontHeight(12); basicButton->SetBold(0); @@ -4712,22 +3710,12 @@ void CUIGameSettingsUI::OnCreate(int width, int height) { effectButton->Invalidate(); effectButton->SetId(1); { - effectButton->SetText(std::string([]() { - constexpr std::uint8_t bytes[] = {0x49, 0x17, 0xA5, 0x9C, 0x2D, 0x35, 0xEF, 0x0F, 0x3A, 0x1A, 0xC7, 0x79}; - constexpr EncryptedSource<12> source(bytes); - thread_local EncryptedName<12, 0xB3CF9BEB7963DB89ULL> name(source); - return name.Text(); - }())); + effectButton->SetText(std::string(OBFUSCATE_SOURCE_TEXT("이펙트 설정", 0xB3CF9BEB7963DB89ULL))); } effectButton->SetFitText(0); effectButton->SetAlign(6, 6); { - effectButton->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x10, 0x8A, 0x81, 0x26, 0xC2, 0xB5}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xB5D7B5AF4FEDFF57ULL> name(source); - return name.Text(); - }())); + effectButton->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xB5D7B5AF4FEDFF57ULL))); } effectButton->SetFontHeight(12); effectButton->SetBold(0); @@ -4745,22 +3733,12 @@ void CUIGameSettingsUI::OnCreate(int width, int height) { controlButton->Invalidate(); controlButton->SetId(2); { - controlButton->SetText(std::string([]() { - constexpr std::uint8_t bytes[] = {0xBD, 0x36, 0xD3, 0x9B, 0x1A, 0x80, 0xBD, 0x27, 0xCA, 0x36, 0xB1, 0x35}; - constexpr EncryptedSource<12> source(bytes); - thread_local EncryptedName<12, 0x9B9D51AD3515F779ULL> name(source); - return name.Text(); - }())); + controlButton->SetText(std::string(OBFUSCATE_SOURCE_TEXT("컨트롤 설정", 0x9B9D51AD3515F779ULL))); } controlButton->SetFitText(0); controlButton->SetAlign(6, 6); { - controlButton->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xF0, 0x46, 0x49, 0x60, 0xD6, 0x35}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x038535BB092533B7ULL> name(source); - return name.Text(); - }())); + controlButton->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x038535BB092533B7ULL))); } controlButton->SetFontHeight(12); controlButton->SetBold(0); @@ -4778,22 +3756,12 @@ void CUIGameSettingsUI::OnCreate(int width, int height) { graphicsButton->Invalidate(); graphicsButton->SetId(3); { - graphicsButton->SetText(std::string([]() { - constexpr std::uint8_t bytes[] = {0x62, 0xA0, 0x50, 0xC8, 0x90, 0x0F, 0x0B, 0x47, 0x60, 0xB6, 0x43, 0x69}; - constexpr EncryptedSource<12> source(bytes); - thread_local EncryptedName<12, 0xFB2BC75769E777D3ULL> name(source); - return name.Text(); - }())); + graphicsButton->SetText(std::string(OBFUSCATE_SOURCE_TEXT("그래픽 설정", 0xFB2BC75769E777D3ULL))); } graphicsButton->SetFitText(0); graphicsButton->SetAlign(6, 6); { - graphicsButton->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xBA, 0xC0, 0x5F, 0x86, 0x3C, 0x37}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0x91493751EF33B5FDULL> name(source); - return name.Text(); - }())); + graphicsButton->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0x91493751EF33B5FDULL))); } graphicsButton->SetFontHeight(12); graphicsButton->SetBold(0); @@ -4811,22 +3779,12 @@ void CUIGameSettingsUI::OnCreate(int width, int height) { etcButton->Invalidate(); etcButton->SetId(4); { - etcButton->SetText(std::string([]() { - constexpr std::uint8_t bytes[] = {0xB2, 0xD7, 0x5C, 0x0D, 0x93, 0xCB, 0x7A, 0xAA, 0xA7, 0x35}; - constexpr EncryptedSource<10> source(bytes); - thread_local EncryptedName<10, 0x6BC977B3B5993503ULL> name(source); - return name.Text(); - }())); + etcButton->SetText(std::string(OBFUSCATE_SOURCE_TEXT("기타 설정", 0x6BC977B3B5993503ULL))); } etcButton->SetFitText(0); etcButton->SetAlign(6, 6); { - etcButton->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xB4, 0x60, 0x1F, 0x4A, 0x14, 0xF7}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xB5F3F779237315F3ULL> name(source); - return name.Text(); - }())); + etcButton->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xB5F3F779237315F3ULL))); } etcButton->SetFontHeight(12); etcButton->SetBold(0); @@ -4844,35 +3802,7 @@ void CUIGameSettingsUI::OnCreate(int width, int height) { this->m_pageContainer->Invalidate(); { CUIImageButton* button = this->m_pageContainer; - button->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x11, 0x76, 0xD9, 0xE3, 0x6B, 0x95, 0x18, 0xAA, 0x17, 0x3D, 0xD9, 0xD5, 0x16, 0xE1, 0x81, 0x05, 0xA5, 0xB7, 0x46, 0x6B, 0xCE, 0x28, 0xB8, 0x13, - 0xFF, 0xBB, 0x74, 0x69, 0xAB}; - constexpr EncryptedSource<29> source(bytes); - thread_local EncryptedName<29, 0x67DD5BAB1919D9D1ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xB9, 0x02, 0x47, 0x89, 0xB3, 0x21, 0x26, 0x56, 0xBF, 0x49, 0x47, 0xBF, 0xCE, 0x55, 0xBF, 0xF9, 0x0D, 0xC3, 0xD8, 0x01, 0x16, 0x9C, 0x86, 0xEF, - 0x26, 0xCF, 0xA9, 0x11, 0x1E, 0x9F, 0xE3}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x9BE3EF737387AD79ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xA9, 0x2A, 0x9F, 0xDF, 0x77, 0xB9, 0xAE, 0x74, 0xAF, 0x61, 0x9F, 0xE9, 0x0A, 0xCD, 0x37, 0xDB, 0x1D, 0xEB, 0x00, 0x57, 0xD2, 0x04, 0x0E, 0xCD, - 0x36, 0xE4, 0x71, 0x47, 0xDA, 0x07, 0x6B}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0xB96B77B7255F8569ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x9F, 0xD6, 0x61, 0x1D, 0x31, 0x03, 0x9A, 0x4A, 0x99, 0x9D, 0x61, 0x2B, 0x4C, 0x77, 0x03, 0xE5, 0x2B, 0x17, 0xFE, 0x95, 0x94, 0xBE, 0x3A, 0xF3, - 0x71, 0x1B, 0xCC, 0x97, 0xF1}; - constexpr EncryptedSource<29> source(bytes); - thread_local EncryptedName<29, 0x875FCDF1E7A1795FULL> name(source); - return name.Text(); - }())); + button->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\btn_reset.bmp", 0x67DD5BAB1919D9D1ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\btn_reset_b.bmp", 0x9BE3EF737387AD79ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\btn_reset_a.bmp", 0xB96B77B7255F8569ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\btn_reset.bmp", 0x875FCDF1E7A1795FULL))); } this->AddChild(this->m_pageContainer); @@ -4884,35 +3814,7 @@ void CUIGameSettingsUI::OnCreate(int width, int height) { this->m_applyButton->Invalidate(); { CUIImageButton* button = this->m_applyButton; - button->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x9B, 0x32, 0xE5, 0xD7, 0x47, 0xE3, 0xE8, 0xCA, 0x9D, 0x79, 0xE5, 0xE1, 0x3A, 0x97, 0x71, 0x65, 0x2F, 0xF3, 0x7A, 0x4C, 0xF7, 0x5D, 0x41, 0x7E, - 0x75, 0xFF, 0x48, 0x5D, 0x87}; - constexpr EncryptedSource<29> source(bytes); - thread_local EncryptedName<29, 0x072D2D872D259D5BULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x77, 0xCE, 0x3D, 0x45, 0xF7, 0xE3, 0x4A, 0x50, 0x71, 0x85, 0x3D, 0x73, 0x8A, 0x97, 0xD3, 0xFF, 0xC3, 0x0F, 0xA2, 0xDE, 0x47, 0x5D, 0xE3, 0xE4, - 0xE8, 0x03, 0xD3, 0xDD, 0x5A, 0x5D, 0x8F}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x9D8F2D37BFFD61B7ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xB5, 0xCA, 0xA1, 0x23, 0x8D, 0xC7, 0x1A, 0xB4, 0xB3, 0x81, 0xA1, 0x15, 0xF0, 0xB3, 0x83, 0x1B, 0x01, 0x0B, 0x3E, 0xB8, 0x3D, 0x79, 0xB3, 0x00, - 0x2A, 0x04, 0x4F, 0xBB, 0x20, 0x79, 0xDF}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x79DF094DD9616575ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xC7, 0x72, 0xB7, 0x99, 0xA3, 0xFB, 0x0E, 0xDC, 0xC1, 0x39, 0xB7, 0xAF, 0xDE, 0x8F, 0x97, 0x73, 0x73, 0xB3, 0x28, 0x02, 0x13, 0x45, 0xA7, 0x68, - 0x29, 0xBF, 0x1A, 0x13, 0x63}; - constexpr EncryptedSource<29> source(bytes); - thread_local EncryptedName<29, 0x11CB35636377DD07ULL> name(source); - return name.Text(); - }())); + button->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\btn_apply.bmp", 0x072D2D872D259D5BULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\btn_apply_b.bmp", 0x9D8F2D37BFFD61B7ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\btn_apply_a.bmp", 0x79DF094DD9616575ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\btn_apply.bmp", 0x11CB35636377DD07ULL))); } this->AddChild(this->m_applyButton); @@ -4924,35 +3826,7 @@ void CUIGameSettingsUI::OnCreate(int width, int height) { this->m_closeButton->Invalidate(); { CUIImageButton* button = this->m_closeButton; - button->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xF7, 0x52, 0xB5, 0xAF, 0xF5, 0x0F, 0x90, 0x8A, 0xF1, 0x19, 0xB5, 0x99, 0x88, 0x7B, 0x09, 0x25, 0x43, 0x93, 0x2A, 0x36, 0x59, 0xAE, 0x26, 0x22, - 0x19, 0x9F, 0x18, 0x25, 0x35}; - constexpr EncryptedSource<29> source(bytes); - thread_local EncryptedName<29, 0x4755C1355575FD37ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xE9, 0x60, 0xE9, 0xFD, 0x23, 0xE7, 0x32, 0xA6, 0xEF, 0x2B, 0xE9, 0xCB, 0x5E, 0x93, 0xAB, 0x09, 0x5D, 0xA1, 0x76, 0x64, 0x8F, 0x46, 0x84, 0x0E, - 0x76, 0xAD, 0x07, 0x65, 0x8E, 0x59, 0xF7}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x6BF729E30729CF29ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0xE7, 0x3C, 0xBF, 0xF5, 0x9B, 0xD1, 0xF2, 0xF0, 0xE1, 0x77, 0xBF, 0xC3, 0xE6, 0xA5, 0x6B, 0x5F, 0x53, 0xFD, 0x20, 0x6C, 0x37, 0x70, 0x44, 0x58, - 0x78, 0xF2, 0x51, 0x6D, 0x36, 0x6F, 0x37}; - constexpr EncryptedSource<31> source(bytes); - thread_local EncryptedName<31, 0x3D371F5B0F7F9327ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = { - 0x3D, 0x6E, 0xB3, 0xB9, 0xE7, 0x9F, 0xD8, 0xD2, 0x3B, 0x25, 0xB3, 0x8F, 0x9A, 0xEB, 0x41, 0x7D, 0x89, 0xAF, 0x2C, 0x20, 0x4B, 0x3E, 0x6E, 0x7A, - 0xD3, 0xA3, 0x1E, 0x33, 0x27}; - constexpr EncryptedSource<29> source(bytes); - thread_local EncryptedName<29, 0x1F1D51274373C1FDULL> name(source); - return name.Text(); - }())); + button->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\btn_close.bmp", 0x4755C1355575FD37ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\btn_close_b.bmp", 0x6BF729E30729CF29ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\btn_close_a.bmp", 0x3D371F5B0F7F9327ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\btn_close.bmp", 0x1F1D51274373C1FDULL))); } this->AddChild(this->m_closeButton); @@ -4995,27 +3869,7 @@ void GameSettingsUI::CUIOptionItem::OnCreate(int width, int height) { this->m_check->SetOnCheck([this](bool checked) { this->OnCheck(checked); }); this->m_check->disabled = 0; this->m_check->Invalidate(); - this->m_check->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0x15, 0x96, 0xEB, 0xB3, 0x27, 0x69, 0x52, 0x68, 0x13, 0xDD, 0xEB, 0x85, 0x5A, 0x1D, 0xCB, 0xE2, 0xB4, 0x54, 0x4E, 0x1A, 0x82, 0xD3, 0xE3, 0xCC, 0xBB, 0x5E, 0x58, 0x1C, 0xAE, 0xFB, 0xE3, 0xCA, 0xB2, 0x5E, 0x47, 0x2C, 0xB8, 0xC8, 0xF1, 0xC3, 0xFB, 0x5B, 0x46, 0x39, 0xE7}; - constexpr EncryptedSource<45> source(bytes); - thread_local EncryptedName<45, 0xA597A7E7492B39D5ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xB3, 0x40, 0x7B, 0x2B, 0x15, 0x2D, 0x6E, 0x32, 0xB5, 0x0B, 0x7B, 0x1D, 0x68, 0x59, 0xF7, 0xB8, 0x12, 0x82, 0xDE, 0x82, 0xB0, 0x97, 0xDF, 0x96, 0x1D, 0x88, 0xC8, 0x84, 0x9C, 0xBF, 0xDF, 0x90, 0x14, 0x88, 0xD7, 0xB4, 0x8A, 0x8C, 0xC5, 0xD1, 0x11, 0x82, 0xCB, 0xD1}; - constexpr EncryptedSource<44> source(bytes); - thread_local EncryptedName<44, 0xFFABE3D5D1BBEF73ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0xCF, 0xE0, 0x85, 0x55, 0x5D, 0x8B, 0x5C, 0xCE, 0xC9, 0xAB, 0x85, 0x63, 0x20, 0xFF, 0xC5, 0x44, 0x6E, 0x22, 0x20, 0xFC, 0xF8, 0x31, 0xED, 0x6A, 0x61, 0x28, 0x36, 0xFA, 0xD4, 0x19, 0xED, 0x6C, 0x68, 0x28, 0x29, 0xCA, 0xC2, 0x2A, 0xFF, 0x65, 0x21, 0x2D, 0x28, 0xDF, 0x9D}; - constexpr EncryptedSource<45> source(bytes); - thread_local EncryptedName<45, 0x0399459DAF454F0FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x6B, 0x00, 0x4D, 0x77, 0x73, 0x43, 0x62, 0x18, 0x6D, 0x4B, 0x4D, 0x41, 0x0E, 0x37, 0xFB, 0x92, 0xCA, 0xC2, 0xE8, 0xDE, 0xD6, 0xF9, 0xD3, 0xBC, 0xC5, 0xC8, 0xFE, 0xD8, 0xFA, 0xD1, 0xD3, 0xBA, 0xCC, 0xC8, 0xE1, 0xE8, 0xEC, 0xE2, 0xC1, 0xB3, 0x85, 0xCD, 0xE0, 0xFD, 0xB3}; - constexpr EncryptedSource<45> source(bytes); - thread_local EncryptedName<45, 0xD5A78DB38D8DAFABULL> name(source); - return name.Text(); - }())); + this->m_check->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\GameSettingsUI\\toggle_off.bmp", 0xA597A7E7492B39D5ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\GameSettingsUI\\toggle_on.bmp", 0xFFABE3D5D1BBEF73ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\GameSettingsUI\\toggle_off.bmp", 0x0399459DAF454F0FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\GameSettingsUI\\toggle_off.bmp", 0xD5A78DB38D8DAFABULL))); this->m_check->checked = false; this->m_check->Invalidate(); this->AddChild(this->m_check); @@ -5027,27 +3881,7 @@ void GameSettingsUI::CUIOptionItem::OnCreate(int width, int height) { runButton->SetOnClick([this]() { this->RunFunction(); }); runButton->disabled = 0; runButton->Invalidate(); - runButton->SetImages(std::string([]() { - constexpr std::uint8_t bytes[] = {0xD7, 0xFE, 0x21, 0xBB, 0xF9, 0x0D, 0x46, 0x4A, 0xD1, 0xB5, 0x21, 0x8D, 0x84, 0x79, 0xDF, 0xC0, 0x76, 0x3C, 0x84, 0x12, 0x5C, 0xB7, 0xF7, 0xEE, 0x79, 0x36, 0x92, 0x14, 0x70, 0x9F, 0xE1, 0xF3, 0x79, 0x0E, 0x8E, 0x31, 0x4D, 0xAA, 0xEC, 0xE9, 0x76, 0x21, 0x91, 0x2D, 0x40, 0x9C, 0xEC, 0xF2, 0x63, 0x7F, 0x83, 0x2C, 0x49, 0xC3}; - constexpr EncryptedSource<54> source(bytes); - thread_local EncryptedName<54, 0x8783C33941E15117ULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x5F, 0x72, 0x43, 0xE5, 0xB7, 0x8B, 0xDE, 0xEA, 0x59, 0x39, 0x43, 0xD3, 0xCA, 0xFF, 0x47, 0x60, 0xFE, 0xB0, 0xE6, 0x4C, 0x12, 0x31, 0x6F, 0x4E, 0xF1, 0xBA, 0xF0, 0x4A, 0x3E, 0x19, 0x79, 0x53, 0xF1, 0x82, 0xEC, 0x6F, 0x03, 0x2C, 0x74, 0x49, 0xFE, 0xAD, 0xF3, 0x73, 0x0E, 0x1A, 0x6B, 0x55, 0xFA, 0xAE, 0xF0, 0x31, 0x15, 0x28, 0x6B, 0x27}; - constexpr EncryptedSource<56> source(bytes); - thread_local EncryptedName<56, 0x271B45771F83DD9FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x4F, 0xF6, 0xA1, 0x11, 0x75, 0xD7, 0xC6, 0x0A, 0x49, 0xBD, 0xA1, 0x27, 0x08, 0xA3, 0x5F, 0x80, 0xEE, 0x34, 0x04, 0xB8, 0xD0, 0x6D, 0x77, 0xAE, 0xE1, 0x3E, 0x12, 0xBE, 0xFC, 0x45, 0x61, 0xB3, 0xE1, 0x06, 0x0E, 0x9B, 0xC1, 0x70, 0x6C, 0xA9, 0xEE, 0x29, 0x11, 0x87, 0xCC, 0x46, 0x6C, 0xB1, 0xEA, 0x2B, 0x4F, 0x89, 0xD8, 0x69, 0x03}; - constexpr EncryptedSource<55> source(bytes); - thread_local EncryptedName<55, 0xC70319B5EB61598FULL> name(source); - return name.Text(); - }()), std::string([]() { - constexpr std::uint8_t bytes[] = {0x17, 0x3A, 0xDF, 0x61, 0x91, 0x8B, 0x42, 0xC6, 0x11, 0x71, 0xDF, 0x57, 0xEC, 0xFF, 0xDB, 0x4C, 0xB6, 0xF8, 0x7A, 0xC8, 0x34, 0x31, 0xF3, 0x62, 0xB9, 0xF2, 0x6C, 0xCE, 0x18, 0x19, 0xE5, 0x7F, 0xB9, 0xCA, 0x70, 0xEB, 0x25, 0x2C, 0xE8, 0x65, 0xB6, 0xE5, 0x6F, 0xF7, 0x28, 0x1A, 0xE3, 0x62, 0xA4, 0xF4, 0x7D, 0xF7, 0x34, 0x6B, 0xE5, 0x66, 0xA7, 0x95}; - constexpr EncryptedSource<58> source(bytes); - thread_local EncryptedName<58, 0x0B8745519B1F95D7ULL> name(source); - return name.Text(); - }())); + runButton->SetImages(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\GameSettingsUI\\btn_optionapply_out.bmp", 0x8783C33941E15117ULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\GameSettingsUI\\btn_optionapply_press.bmp", 0x271B45771F83DD9FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\GameSettingsUI\\btn_optionapply_over.bmp", 0xC70319B5EB61598FULL)), std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\GameSettingsUI\\btn_optionapply_disable.bmp", 0x0B8745519B1F95D7ULL))); this->AddChild(this->m_runButton); this->m_label = new CUITextButton(); @@ -5065,12 +3899,7 @@ void GameSettingsUI::CUIOptionItem::OnCreate(int width, int height) { this->m_label->SetText(std::string()); this->m_label->SetFitText(true); this->m_label->SetAlign(0, 0); - this->m_label->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x7A, 0x34, 0xE7, 0xA0, 0x94, 0x1B}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xADC51BF9C98B413DULL> name(source); - return name.Text(); - }())); + this->m_label->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xADC51BF9C98B413DULL))); this->m_label->SetFontHeight(12); this->m_label->SetBold(1); this->m_label->SetTextColors(0, 0, 0, 0); @@ -5084,12 +3913,7 @@ void GameSettingsUI::CUIOptionItem::OnCreate(int width, int height) { this->m_description->SetText("", 0); this->m_description->SetFitText(1); this->m_description->SetAlign(0, 0); - this->m_description->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0x16, 0x80, 0xA3, 0x20, 0x92, 0x17}; - constexpr EncryptedSource<6> source(bytes); - thread_local EncryptedName<6, 0xDF8117FF49CFF551ULL> name(source); - return name.Text(); - }())); + this->m_description->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xDF8117FF49CFF551ULL))); this->m_description->SetFontHeight(12); this->m_description->SetBold(0); this->m_description->SetColor(0); diff --git a/Source/UI/SelectPackageItemBox/UISelectPackageItemBox.cpp b/Source/UI/SelectPackageItemBox/UISelectPackageItemBox.cpp index 5e32b7b65..68862859a 100644 --- a/Source/UI/SelectPackageItemBox/UISelectPackageItemBox.cpp +++ b/Source/UI/SelectPackageItemBox/UISelectPackageItemBox.cpp @@ -19,6 +19,7 @@ #include "UI/Window/UIRegisterMgr.h" #include "Resource/MSGSTRINGID.h" #include "Utility/Cipher/LocalEncryptedName.h" +#include "Utility/Cipher/Obfuscate.h" #include #include #include @@ -707,15 +708,8 @@ void SelectPackageItemBox::CUIItemInfo::OnCreate(int width, int height) { this->image = new CUIStaticImage(); this->image->SetSize(200, 34); this->image->Move(0, 0); - this->image->SetImage(std::string([]() { - constexpr char bytes[] = {'\xC9', '\x88', '\xEF', '\x41', '\x7D', '\x93', '\xB8', '\x14', '\xCF', '\xC3', '\xEF', '\x77', '\x00', '\xE7', '\x21', - '\xAA', '\x6C', '\x4B', '\x4A', '\xD8', '\xC9', '\x2D', '\x1C', '\xBA', '\x62', '\x46', '\x48', '\xDE', '\xE1', '\x34', - '\x09', '\xBC', '\x64', '\x78', '\x43', '\xD2', '\xCE', '\x29', '\x53', '\xBB', '\x64', '\x57', '\x2F'}; - constexpr EncryptedSource<43> source(bytes); - // GLOBAL: gl_25124 - thread_local EncryptedName<43, 0xD97D5DBDBB2F2709ULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25124 + this->image->SetImage(std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\selectpackage\\item_list.bmp", 0xD97D5DBDBB2F2709ULL))); this->AddChild(this->image); this->gameItem = new CUIGameItem(); @@ -732,13 +726,8 @@ void SelectPackageItemBox::CUIItemInfo::OnCreate(int width, int height) { this->nameText->SetText(""); this->nameText->SetFitText(1); this->nameText->SetAlign(0, 6); - this->nameText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xBA, 0xA2, 0x21, 0xC0, 0xD8, 0x8F}; - constexpr EncryptedSource<6> source(bytes); - // GLOBAL: gl_25123 - thread_local EncryptedName<6, 0xE7978FB5A94DD7FDULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25123 + this->nameText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xE7978FB5A94DD7FDULL))); this->nameText->SetFontHeight(12); this->nameText->SetBold(0); this->nameText->SetColor(0); @@ -1197,13 +1186,8 @@ void SelectPackageItemBox::CUITabInfo::OnCreate(int width, int height) { this->nameText->SetText(""); this->nameText->SetFitText(0); this->nameText->SetAlign(0, 6); - this->nameText->SetFont(std::string([]() { - constexpr std::uint8_t bytes[] = {0xBA, 0xA2, 0x21, 0xC0, 0xD8, 0x8F}; - constexpr EncryptedSource<6> source(bytes); - // GLOBAL: gl_25123 - thread_local EncryptedName<6, 0xE7978FB5A94DD7FDULL> name(source); - return name.Text(); - }())); + // GLOBAL: gl_25123 + this->nameText->SetFont(std::string(OBFUSCATE_SOURCE_TEXT("Gulim", 0xE7978FB5A94DD7FDULL))); this->nameText->SetFontHeight(12); this->nameText->SetBold(0); this->nameText->SetColor(0); @@ -1215,44 +1199,15 @@ void SelectPackageItemBox::CUITabInfo::OnCreate(int width, int height) { // OFFSET: 0x00A6FE20 // FUNCTION: fn_16783 void CUISelectPackageItemBox::BindItem(SelectPackageItemBox::CUIItemInfo* item, const ITEM_INFO& data) { - std::string image([]() { - constexpr std::uint8_t bytes[] = {0x6F, 0xE0, 0xEB, 0x19, 0x1F, 0xDB, 0x96, 0xF2, 0x69, 0xAB, 0xEB, 0x2F, 0x62, 0xAF, 0x0F, - 0x4C, 0xCA, 0x23, 0x4E, 0x80, 0xAB, 0x65, 0x32, 0x5C, 0xC4, 0x2E, 0x4C, 0x86, 0x83, 0x7C, - 0x27, 0x5A, 0xC2, 0x10, 0x47, 0x8A, 0xAC, 0x61, 0x7D, 0x5D, 0xC2, 0x3F, 0x2B}; - constexpr EncryptedSource<43> source(bytes); - thread_local EncryptedName<43, 0x3F5315DFE32B4FAFULL> name(source); - return name.Text(); - }()); + std::string image(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\selectpackage\\item_list.bmp", 0x3F5315DFE32B4FAFULL)); if (data.expireTime > 0) { if (data.optionCount > 0) { - image = std::string([]() { - constexpr std::uint8_t bytes[] = {0x55, 0x52, 0xD1, 0x49, 0x91, 0xAB, 0x50, 0xFC, 0x53, 0x19, 0xD1, 0x7F, 0xEC, - 0xDF, 0xC9, 0x42, 0xF0, 0x91, 0x74, 0xD0, 0x25, 0x15, 0xF4, 0x52, 0xFE, 0x9C, - 0x76, 0xD6, 0x0D, 0x0C, 0xE1, 0x54, 0xF8, 0xA2, 0x7D, 0xDA, 0x22, 0x11, 0xCA, - 0x45, 0xFC, 0x90, 0x74, 0xC1, 0x30, 0x0B, 0xBB, 0x53, 0xF8, 0x8D, 0x11}; - constexpr EncryptedSource<51> source(bytes); - thread_local EncryptedName<51, 0x31956551B311FD95ULL> name(source); - return name.Text(); - }()); + image = std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\selectpackage\\item_list_timeran.bmp", 0x31956551B311FD95ULL)); } else { - image = std::string([]() { - constexpr std::uint8_t bytes[] = {0x51, 0x6C, 0x7D, 0x9B, 0xA5, 0x5F, 0xF8, 0xF4, 0x57, 0x27, 0x7D, 0xAD, 0xD8, 0x2B, 0x61, 0x4A, - 0xF4, 0xAF, 0xD8, 0x02, 0x11, 0xE1, 0x5C, 0x5A, 0xFA, 0xA2, 0xDA, 0x04, 0x39, 0xF8, 0x49, 0x5C, - 0xFC, 0x9C, 0xD1, 0x08, 0x16, 0xE5, 0x62, 0x4D, 0xF8, 0xAE, 0xD8, 0x4F, 0x07, 0xFC, 0x4D, 0x39}; - constexpr EncryptedSource<48> source(bytes); - thread_local EncryptedName<48, 0x393D916561BDC391ULL> name(source); - return name.Text(); - }()); + image = std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\selectpackage\\item_list_time.bmp", 0x393D916561BDC391ULL)); } } else if (data.optionCount > 0) { - image = std::string([]() { - constexpr std::uint8_t bytes[] = {0xD5, 0x3C, 0x73, 0x3B, 0x27, 0x8D, 0x94, 0x20, 0xD3, 0x77, 0x73, 0x0D, 0x5A, 0xF9, 0x0D, 0x9E, 0x70, - 0xFF, 0xD6, 0xA2, 0x93, 0x33, 0x30, 0x8E, 0x7E, 0xF2, 0xD4, 0xA4, 0xBB, 0x2A, 0x25, 0x88, 0x78, 0xCC, - 0xDF, 0xA8, 0x94, 0x37, 0x0E, 0x9F, 0x74, 0xFD, 0xDC, 0xB1, 0xC9, 0x21, 0x3C, 0x9D, 0x15}; - constexpr EncryptedSource<49> source(bytes); - thread_local EncryptedName<49, 0xED5143E7C1B39315ULL> name(source); - return name.Text(); - }()); + image = std::string(OBFUSCATE_SOURCE_TEXT("유저인터페이스\\selectpackage\\item_list_ranop.bmp", 0xED5143E7C1B39315ULL)); } item->image->SetImage(image); diff --git a/Source/Utility/Cipher/Obfuscate.h b/Source/Utility/Cipher/Obfuscate.h new file mode 100644 index 000000000..c02a67930 --- /dev/null +++ b/Source/Utility/Cipher/Obfuscate.h @@ -0,0 +1,83 @@ +#ifndef RAGNAROK_SOURCE_UTILITY_CIPHER_OBFUSCATE_H +#define RAGNAROK_SOURCE_UTILITY_CIPHER_OBFUSCATE_H + +#include +#include +#include + +namespace utility { + + template + class Obfuscator { + public: + // INLINED + consteval explicit Obfuscator(const char (&text)[Length]) : m_data{} { + for (std::size_t index = 0; index < Length; ++index) { + this->m_data[index] = static_cast(text[index] ^ static_cast(Key >> ((index % 8) * 8))); + } + } + + // INLINED + template + consteval std::array Array() const { + std::array out{}; + for (std::size_t index = 0; index < Length; ++index) { + out[index] = static_cast(this->m_data[index]); + } + return out; + } + + char m_data[Length]; + }; + +} + +#define OBFUSCATE_NAME_(text, key, variable) \ + constexpr ::utility::Obfuscator obfuscator(text); \ + thread_local EncryptedName variable(obfuscator.m_data) + +#define OBFUSCATE_NAME_SOURCE_(text, key, variable) \ + constexpr ::utility::Obfuscator obfuscator(text); \ + constexpr EncryptedSource source(obfuscator.m_data); \ + thread_local EncryptedName variable(source) + +#define OBFUSCATE_NAME_ARRAY_(text, key, element, variable) \ + constexpr std::array source = ::utility::Obfuscator(text).Array(); \ + thread_local EncryptedName variable(source) + +#define OBFUSCATE_ARRAY(text, key, element) \ + []() -> EncryptedName& { \ + OBFUSCATE_NAME_ARRAY_(text, key, element, name); \ + return name; \ + }() + +#define OBFUSCATE_ARRAY_BODY(text, key, element) \ + OBFUSCATE_NAME_ARRAY_(text, key, element, name); \ + return name + +#define OBFUSCATE_STRING_BODY(text, key) \ + OBFUSCATE_NAME_(text, key, name); \ + return name + +#define OBFUSCATE_STRING(text, key) \ + []() -> EncryptedName& { \ + OBFUSCATE_NAME_(text, key, name); \ + return name; \ + }() + +#define OBFUSCATE_TEXT_NAMED(text, key, variable) \ + []() { \ + OBFUSCATE_NAME_(text, key, variable); \ + return variable.Text(); \ + }() + +#define OBFUSCATE_SOURCE_TEXT_NAMED(text, key, variable) \ + []() { \ + OBFUSCATE_NAME_SOURCE_(text, key, variable); \ + return variable.Text(); \ + }() + +#define OBFUSCATE_TEXT(text, key) OBFUSCATE_TEXT_NAMED(text, key, name) +#define OBFUSCATE_SOURCE_TEXT(text, key) OBFUSCATE_SOURCE_TEXT_NAMED(text, key, name) + +#endif