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).
160 lines
4.9 KiB
C++
160 lines
4.9 KiB
C++
/***************************************************************************
|
|
* *
|
|
* 3DS Max Test Plugin *
|
|
* *
|
|
***************************************************************************
|
|
* *
|
|
* Version : 1.0ß, March 11th, 1998 *
|
|
* *
|
|
* Written By Loic Baumann from Fatal Design, specially for Gamasutra *
|
|
* *
|
|
***************************************************************************
|
|
* *
|
|
* This Plugin demonstrates how to write a simple 3DS MAX Plugin, using MFCs *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#include "stdafx.h"
|
|
|
|
#ifdef STRICT // Already defined by stdafx,
|
|
#undef STRICT // so we avoid warning linking msg
|
|
#endif
|
|
#ifdef _MBCS // The same as above
|
|
#undef _MBCS
|
|
#endif
|
|
|
|
|
|
#include "JointPrefrence.h"
|
|
|
|
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
|
|
JointPreferencePanel g_jointPreferencePanel;
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// JointPrefrencePanel Dialog Procedure to handle User and System Interactions
|
|
static BOOL CALLBACK JointPrefPanelProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
|
|
|
switch (msg) {
|
|
case WM_INITDIALOG: //Panel's extra initialization
|
|
g_jointPreferencePanel.Init(hWnd);
|
|
break;
|
|
case WM_DESTROY: //Panel's extra destruction
|
|
g_jointPreferencePanel.Destroy(hWnd);
|
|
break;
|
|
case WM_COMMAND :
|
|
switch (LOWORD(wParam)) { //Handle Panel's controls
|
|
case IDC_ABOUT: {
|
|
CAbout dlg;
|
|
dlg.DoModal();
|
|
break;
|
|
}
|
|
case IDC_EDIT_JOINT: {
|
|
g_jointPreferencePanel.EditPrefs();
|
|
break;
|
|
}
|
|
case IDC_DELETE_ALL: {
|
|
g_jointPreferencePanel.DeletePrefs();
|
|
break;
|
|
}
|
|
}
|
|
break;
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
//The following lines are not necessary for MAX2 Plugins
|
|
case WM_LBUTTONDOWN:
|
|
case WM_LBUTTONUP:
|
|
case WM_MOUSEMOVE:
|
|
g_jointPreferencePanel.m_ip->RollupMouseMessage(hWnd, msg, wParam, lParam);
|
|
break;
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
default:
|
|
return FALSE;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Display the Plugin's Panel
|
|
void JointPreferencePanel::BeginEditParams(Interface* ip, IUtil* iu)
|
|
{
|
|
m_ip = ip; //Get the Plugin's Interface
|
|
m_iu = iu; //Get the Utility Plugin's Interface
|
|
|
|
//Display the plugin's Rollup Dialog
|
|
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
|
HINSTANCE loc_hInstance = AfxGetResourceHandle ();
|
|
|
|
m_hPanel = ip->AddRollupPage(loc_hInstance, MAKEINTRESOURCE(IDD_JOINT_PREF_PANEL),
|
|
JointPrefPanelProc, GetString(IDS_JOINTPREF_NAME),0);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Free the Plugins' Panel
|
|
void JointPreferencePanel::EndEditParams(Interface *ip, IUtil *iu)
|
|
{
|
|
m_iu = NULL;
|
|
m_ip = NULL;
|
|
|
|
//Remove the Rollup Dialog
|
|
ip->DeleteRollupPage(m_hPanel);
|
|
m_hPanel = NULL;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Panel Initialization callback
|
|
void JointPreferencePanel::Init(HWND hWnd)
|
|
{
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Panel Destruction callback
|
|
void JointPreferencePanel::Destroy(HWND hWnd)
|
|
{
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Called when the Pick Button is pushed
|
|
void JointPreferencePanel::EditPrefs()
|
|
{
|
|
|
|
|
|
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
|
|
|
HINSTANCE loc_hInstance = AfxGetResourceHandle ();
|
|
|
|
JointEditDialog dialog(g_jointPreferencePanel.m_ip->GetRootNode(), m_ip);
|
|
dialog.DoModal();
|
|
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Called when the delete Button is pushed
|
|
void JointPreferencePanel::DeletePrefs()
|
|
{
|
|
|
|
|
|
AFX_MANAGE_STATE(AfxGetStaticModuleState());
|
|
|
|
HINSTANCE loc_hInstance = AfxGetResourceHandle ();
|
|
|
|
|
|
if (::MessageBox(m_hPanel, "DELETE ALL MW4 Prefrences?", "Are you sure?", MB_OKCANCEL) == IDOK)
|
|
{
|
|
JointEditDialog::DeleteAllJointPrefrence(g_jointPreferencePanel.m_ip->GetRootNode());
|
|
}
|
|
|
|
|
|
}
|