forked from metin-server/m2dev-client-src
Full Unicode patch with RTL Support & BiDi logic.
This commit is well documented, so no need to tell you my life story. Full Unicode patch with RTL Support & BiDi logic. Removed the legacy codePage, normalised to UTF8 (65001). It also comes with: CTRL + A : select text (highlighted) CTRL + C : copy CTRL + V : paste CTRL + X : cut CTRL + Y : redo CTRL + Z : undo
This commit is contained in:
@@ -1268,7 +1268,7 @@ void CPythonNetworkStream::__ConvertEmpireText(DWORD dwEmpireID, char* szText)
|
||||
bool CPythonNetworkStream::RecvChatPacket()
|
||||
{
|
||||
TPacketGCChat kChat;
|
||||
char buf[1024 + 1];
|
||||
char buf[1024 + 1];
|
||||
char line[1024 + 1];
|
||||
|
||||
if (!Recv(sizeof(kChat), &kChat))
|
||||
@@ -1280,16 +1280,6 @@ bool CPythonNetworkStream::RecvChatPacket()
|
||||
return false;
|
||||
|
||||
buf[uChatSize]='\0';
|
||||
|
||||
// 유럽 아랍 버전 처리
|
||||
// "이름: 내용" 입력을 "내용: 이름" 순서로 출력하기 위해 탭(0x08)을 넣음
|
||||
// 탭을 아랍어 기호로 처리해 (영어1) : (영어2) 로 입력되어도 (영어2) : (영어1) 로 출력하게 만든다
|
||||
if (LocaleService_IsEUROPE() && GetDefaultCodePage() == 1256)
|
||||
{
|
||||
char * p = strchr(buf, ':');
|
||||
if (p && p[1] == ' ')
|
||||
p[1] = 0x08;
|
||||
}
|
||||
|
||||
if (kChat.type >= CHAT_TYPE_MAX_NUM)
|
||||
return true;
|
||||
@@ -4030,7 +4020,6 @@ bool CPythonNetworkStream::RecvWalkModePacket()
|
||||
bool CPythonNetworkStream::RecvChangeSkillGroupPacket()
|
||||
{
|
||||
TPacketGCChangeSkillGroup ChangeSkillGroup;
|
||||
|
||||
if (!Recv(sizeof(ChangeSkillGroup), &ChangeSkillGroup))
|
||||
return false;
|
||||
|
||||
@@ -4038,7 +4027,6 @@ bool CPythonNetworkStream::RecvChangeSkillGroupPacket()
|
||||
|
||||
CPythonPlayer::Instance().NEW_ClearSkillData();
|
||||
__RefreshCharacterWindow();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -4164,30 +4152,6 @@ bool CPythonNetworkStream::RecvNPCList()
|
||||
|
||||
bool CPythonNetworkStream::__SendCRCReportPacket()
|
||||
{
|
||||
/*
|
||||
DWORD dwProcessCRC = 0;
|
||||
DWORD dwFileCRC = 0;
|
||||
CFilename exeFileName;
|
||||
//LPCVOID c_pvBaseAddress = NULL;
|
||||
|
||||
GetExeCRC(dwProcessCRC, dwFileCRC);
|
||||
|
||||
CFilename strRootPackFileName = CEterPackManager::Instance().GetRootPacketFileName();
|
||||
strRootPackFileName.ChangeDosPath();
|
||||
|
||||
TPacketCGCRCReport kReportPacket;
|
||||
|
||||
kReportPacket.header = HEADER_CG_CRC_REPORT;
|
||||
kReportPacket.byPackMode = CEterPackManager::Instance().GetSearchMode();
|
||||
kReportPacket.dwBinaryCRC32 = dwFileCRC;
|
||||
kReportPacket.dwProcessCRC32 = dwProcessCRC;
|
||||
kReportPacket.dwRootPackCRC32 = GetFileCRC32(strRootPackFileName.c_str());
|
||||
|
||||
if (!Send(sizeof(kReportPacket), &kReportPacket))
|
||||
Tracef("SendClientReportPacket Error");
|
||||
|
||||
return SendSequence();
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -4200,29 +4164,17 @@ bool CPythonNetworkStream::SendClientVersionPacket()
|
||||
filename = CFileNameHelper::NoPath(filename);
|
||||
CFileNameHelper::ChangeDosPath(filename);
|
||||
|
||||
if (LocaleService_IsEUROPE() && false == LocaleService_IsYMIR())
|
||||
{
|
||||
TPacketCGClientVersion2 kVersionPacket;
|
||||
kVersionPacket.header = HEADER_CG_CLIENT_VERSION2;
|
||||
strncpy(kVersionPacket.filename, filename.c_str(), sizeof(kVersionPacket.filename)-1);
|
||||
strncpy(kVersionPacket.timestamp, "1215955205", sizeof(kVersionPacket.timestamp)-1); // # python time.time 앞자리
|
||||
//strncpy(kVersionPacket.timestamp, __TIMESTAMP__, sizeof(kVersionPacket.timestamp)-1); // old_string_ver
|
||||
//strncpy(kVersionPacket.timestamp, "1218055205", sizeof(kVersionPacket.timestamp)-1); // new_future
|
||||
//strncpy(kVersionPacket.timestamp, "1214055205", sizeof(kVersionPacket.timestamp)-1); // old_past
|
||||
TPacketCGClientVersion kVersionPacket{};
|
||||
kVersionPacket.header = HEADER_CG_CLIENT_VERSION;
|
||||
|
||||
if (!Send(sizeof(kVersionPacket), &kVersionPacket))
|
||||
Tracef("SendClientReportPacket Error");
|
||||
}
|
||||
else
|
||||
{
|
||||
TPacketCGClientVersion kVersionPacket;
|
||||
kVersionPacket.header = HEADER_CG_CLIENT_VERSION;
|
||||
strncpy(kVersionPacket.filename, filename.c_str(), sizeof(kVersionPacket.filename)-1);
|
||||
strncpy(kVersionPacket.timestamp, __TIMESTAMP__, sizeof(kVersionPacket.timestamp)-1);
|
||||
strncpy(kVersionPacket.filename, filename.c_str(), sizeof(kVersionPacket.filename) - 1);
|
||||
kVersionPacket.filename[sizeof(kVersionPacket.filename) - 1] = '\0';
|
||||
|
||||
snprintf(kVersionPacket.timestamp, sizeof(kVersionPacket.timestamp), "%u", 1215955205u);
|
||||
|
||||
if (!Send(sizeof(kVersionPacket), &kVersionPacket))
|
||||
Tracef("SendClientReportPacket Error");
|
||||
|
||||
if (!Send(sizeof(kVersionPacket), &kVersionPacket))
|
||||
Tracef("SendClientReportPacket Error");
|
||||
}
|
||||
return SendSequence();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user