스톤에이지 8.0 구축 가이드 16
========================================================
16. 적용된 핵심 패치 — 클라이언트 (C:\sa_build\src\)
========================================================
클라 패치의 절반은 "지수팩 보호 레이어 제거", 나머지 절반은
"한국어 UTF-8 멀티바이트 대응"입니다.
--------------------------------------------------------
[ system/netproc.cpp — 통째 교체 ]
--------------------------------------------------------
변경: GitHub 원본(netproc_github.cpp, UTF-8)으로 전체 교체
이유: 기존 파일은 지수팩(shiqi.hk) 변종 — 'S' 하드코딩 +
VMProtect/TEA 의존이 깨진 상태. GitHub 원본은
_SA_VERSION 매크로(='N')와 6-param ClientLogin 사용.
--------------------------------------------------------
[ 멀티바이트 배열 오버플로 확장 ]
--------------------------------------------------------
login.cpp 12313 : familySpriteName[3][10] -> [16]
login.cpp 16030 : msg[][8] -> [16]
menu.cpp 9343 : msg[][8] -> [16]
onlinegm.cpp 60 : ProblemC2[][32] -> [64]
이유: 한국어 UTF-8 문자열이 기존 배열 크기를 넘어 오버플로.
"WGS 포인트 차감 문제" 같은 긴 문자열에서 터짐.
--------------------------------------------------------
[ 폰트 charset ]
--------------------------------------------------------
font.cpp / directdraw.cpp 의 CreateFont charset:
GB2312_CHARSET -> DEFAULT_CHARSET
이유: "맑은 고딕"이 한글 글리프를 찾도록.
--------------------------------------------------------
[ 한글 렌더 fallback (핵심) ]
--------------------------------------------------------
TextOutUtf8 / GetTextExtentPoint32Utf8 의
MultiByteToWideChar(CP_UTF8, ...) 에 MB_ERR_INVALID_CHARS
추가 -> 유효 UTF-8 이면 TextOutW, 실패 시 TextOutA(CP949)
fallback. (25번 파일에서 상세히 다룸)
--------------------------------------------------------
[ 번역 ]
--------------------------------------------------------
중국어 -> 한국어 UI 문자열 1000+ 번역(인코딩 + 가독성).
단 strstr/strcmp 비교 문자열, 파라미터 코드는 번역 금지.
--------------------------------------------------------
다음: 17_시행착오_빌드통과.txt

야추리아 님의 최근 댓글