Files
firestorm/Gameleap/code/mw4/Tools/3DSPlugins/AnimationSuite/JointPrefrence.cpp
T
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

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());
}
}