Translate Korean comments/strings to English; fix UTF-8 encoding across source tree

Korean translation (84 source files, 876 lines):
- Translated all EUC-KR/CP949 Korean developer comments to English across
  84 source files in Gameleap/code/. Zero Korean bytes remain outside the
  intentional font-table headers (D3FFontEdit2/fontedit all.h etc.).
- Comment markers: //상훈 앞/뒤 -> //sanghoon begin/end (Sang-hun's code
  region markers); //상훈짱 begin/end, //상훈.. variants; // 鉉 -> // hyun
  (second developer's markers); // 鉉 - start/end patterns.
- Functional string translations in recscore.cpp (mw4 + mw4print copies):
  body-part return values (왼발/오른발/etc. -> Left Leg/Right Leg/etc.),
  kill-announcer format strings (~30 entries), and the nonmfc.h assert dialog.
- GosView profiler: 킪 -> us (microseconds) in timing display strings.
- Network/socket code (ctcl.cpp, mugsocs.h, ctime.cpp across Launcher/
  MW4Application/MW4GameEd2/AnimScript): state-machine comments, socket
  ID comments, login/session management comments.
- render.hpp CHSH_Device member comments; GUIRadarManager.cpp drawing
  routine comments; hudchat/hudcomp2/huddamage/hudmap/hudweapon/hudtarg
  HUD component comments.
- DXRasterizer.cpp: cleaned residual U+FFFD replacement characters left
  from a prior partial encoding conversion.

UTF-8 encoding cleanup (76+ files):
- Latin-1 single bytes converted to proper UTF-8 multi-byte sequences:
  © (0xA9) in 3dsmax4/Maxscrpt Autodesk/Wainwright copyright headers,
  ® (0xAE) in gosHelp/Remote.cpp, · (0xB7) bullet points in ai command.hpp,
  Û (0xDB) in SafeChain_Test.cpp tool header,
  ß (0xDF) in AnimationSuite version strings (8 files).
- Font lookup tables (D3FFontEdit2/, fontedit/ *.h) intentionally left
  as-is: raw byte values are C array data, not text.

Language DLL:
- Replaced Gameleap/mw4/Language.dll (original Korean binary) and
  MW4/Language.dll with freshly built English version from
  Language - Win32 English config (Language.dsp). Fixes Korean button
  labels in the GameOS exception/crash dialog (??? ??... / ?? / ???
  were showing instead of More Details.../Continue/Exit).
This commit is contained in:
2026-07-18 13:10:31 -05:00
parent eaa5fd3bbe
commit af416960fa
171 changed files with 973 additions and 973 deletions
+13 -13
View File
@@ -15,14 +15,14 @@ static float RECOVER_FROM_JAMMING_TIME = 5.0f;
// MSL 5.03 Ammo Bay Fire
static float TIME_AMMO_BAY_FIRE = 7.0f;
//상훈짱 begin
//sanghoon begin
#include <windows.h>
#include <ddraw.h>
#include <d3d.h>
#include <GameOS\render.hpp>
extern bool g_bNoWeaponRangeCheck;
//상훈짱 end
//sanghoon end
static void MakeStringCaps(char* buffer)
{
@@ -555,7 +555,7 @@ if(mfd_device.BeginChannel(4))
int rh=25;//row_height
//16개의 row를 가질수 있는것으로 가정한다.(row포함)
//Assumes up to 16 rows (including header row).
// background boxes
mfd_device.DrawQuad(0+lm,0+tm,96+lm,(totalcount+1)*rh+10+tm,0xFF404040);
@@ -609,13 +609,13 @@ if(mfd_device.BeginChannel(4))
DWORD hsh_color1=0,hsh_color2=0;
//무기 발사가능 상태: 각각의 색상에 대해 정확히 정의 할것.
//Weapon fire-ready status: define exact color for each state.
//정상(타겟안에 있음)(발사가능) 0xFFFFFFFF
//정상(타겟밖에 있음)(발사가능) 0xFFFFFFFF
//로딩중(발사 불가) 0xFFA0A0A0
//탄알이 떨어짐(발사불가) 0xFF808080
//고장남(발사불가) 0xFF606060
//Normal (target in range)(can fire) 0xFFFFFFFF
//Normal (target out of range)(can fire) 0xFFFFFFFF
//Reloading (cannot fire) 0xFFA0A0A0
//Out of ammo (cannot fire) 0xFF808080
//Destroyed (cannot fire) 0xFF606060
DWORD nameheight=30;
int top=5+(weapony+1)*rh;
int bottom = top+rh;
@@ -694,7 +694,7 @@ if(mfd_device.BeginChannel(4))
char *weapon_string[3]={"1","2","3"};
//해당 무기의 그룹의 상태를 표시한다.
//Display the status of the weapon group.
for(int i=0;i<3;i++){
DWORD weapon_color=weapon_flag[i]?normal_color:nogroup_color;
// MSL 5.00 Added Ammocount check, if = 0 then weapon name same as ammo nogroup_color
@@ -707,7 +707,7 @@ if(mfd_device.BeginChannel(4))
Point3D numsize = m_Textures[20]->Size ();
//무기 이름을 표시한다.
//Display weapon name.
// MSL 5.00 Added Ammocount check, if = 0 then weapon name same as ammo out_color
switch (weapon->m_status)
{
@@ -786,7 +786,7 @@ if(mfd_device.BeginChannel(4))
}
}
//현재 엔터키로 발사되는 선택된 무기에 대해서 프레임을 표시한다.
//Display frame for the selected weapon currently fired with Enter.
if (weapon->m_weapon == m_SingleFire.GetCurrent ()){
mfd_device.DrawFrame(155+lm,top+1+tm,545+lm,bottom-1+tm,0xFFFFFFFF);
}
@@ -795,7 +795,7 @@ if(mfd_device.BeginChannel(4))
if ((ammocount > -1) && (weapon->m_status != 2)){
mfd_device.pFont[0].DrawText(615-5+lm,center+tm,ammocount_color,text,TEXTALIGN_VCENTER|TEXTALIGN_RIGHT);
}else if (ammocount == -1){
//무기수가 제한이 없는 무기의 종류에는 '-'를 표시한다.
//Display '-' for weapon types with unlimited ammo.
mfd_device.pFont[0].DrawText(615-5+lm,center+tm,ammocount_color,"-",TEXTALIGN_VCENTER|TEXTALIGN_RIGHT);
}
weapony ++;