Files
firestorm/Gameleap/code/mw4/Tools/3DSPlugins/AnimationSuite/AnimationSuite.h
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

487 lines
16 KiB
C++

// PlugTest.h : main header file for the PLUGTEST DLL
//
#if !defined(AFX_ANIMATIONSUITE_H__68E70A2D_B863_11D1_98AD_0040051EDCE7__INCLUDED_)
#define AFX_ANIMATIONSUITE_H__68E70A2D_B863_11D1_98AD_0040051EDCE7__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "Stuff\Stuff.hpp"
#include <MW4\MW4AnimationSystem.hpp>
#include <afxmt.h>
#undef Min
#undef Max
#pragma pack(push,8)
#include "Max.h"
#pragma pack(pop)
#include "resource.h"
#pragma pack(push,8)
#include "UTILEXP.H"
//include "MAXTYPES.h"
//include "bmmlib.h" // Bitmap lib
#include "utilapi.h" // Utility Plugins lib
#include "istdplug.h"
#include "stdmat.h"
#include "shape.h"
#include "interpik.h"
#include "decomp.h"
#include "keyreduc.h"
#include "simpobj.h"
#pragma pack(pop)
#include "JointEditDialog.h"
#include "ThresholdDialog.h"
#include "About.h"
#include <GameOS\GameOS.hpp>
#define ANIMEXPORT_CLASS_ID Class_ID(0x5b132f04, 0x1f117e3b)
#define JOINTPREFS_CLASS_ID Class_ID(0x3215ab2, 0x1d7577f9)
#define OPTIMIZE_CLASS_ID Class_ID(0x34cb1359, 0x614a5ed6)
#define REPLICATE_CLASS_ID Class_ID(0x39335814, 0x311f59a6)
#define SITEOBJECT_CLASS_ID Class_ID(0xc3168894, 0x72508fd9)
#define LEGMIRROR_CLASS_ID Class_ID(0x3ce33955, 0x158b2c7a)
#define HILLADJUST_CLASS_ID Class_ID(0x4a043633, 0x157f5f04)
#define ERFEXPORT_CLASS_ID Class_ID(0x74085d30, 0x227d1efa)
#define MLREXPORT_CLASS_ID Class_ID(0x24c704a3, 0x68e41817)
#define EBFEXPORT_CLASS_ID Class_ID(0x24186b99, 0x1af34c02)
#define ARMATUREEXPORT_CLASS_ID Class_ID(0x438e49ad, 0x6efa1a44)
#define BATCHEXPORT_CLASS_ID Class_ID(0x68653fb, 0x20e4831)
#define FALLTOOL_CLASS_ID Class_ID(0x610a6d23,0x7396680)
#define SKELETONVERIFY_CLASS_ID Class_ID(0x610a6d33,0x7396690)
#define CVOBJECT_CLASS_ID Class_ID(0xc3168894, 0x72508fe9)
#define CVEXPORT_CLASS_ID Class_ID(0x35281962, 0x31f15c3c)
#define CVTOOL_CLASS_ID Class_ID(0x64a91170, 0x69153f)
#define LIGHTEXPORT_CLASS_ID Class_ID(0x64a91170, 0x79153f)
#define ERFIMPORT_CLASS_ID Class_ID(0x64a91170, 0x89153f)
#define MISSIONIMPORT_CLASS_ID Class_ID(0xfb837bef, 0xdd35a6c8)
#define WM_QUICKFILE_BEGIN (WM_USER+1000)
#define WM_QUICKFILE_APPLYFILE (WM_USER+1001)
#define WM_QUICKFILE_END (WM_USER+1002)
/////////////////////////////////////////////////////////////////////////////
// CAnimExpApp
// See PlugTest.cpp for the implementation of this class
//
class CAnimExpApp;
class AnimExp;
class ErfExp;
class MLRExp;
class ArmatureExp;
class BatchExp;
class CvExp;
class LightExp;
class ErfImp;
class MissionImp;
class JointPreferencePanel;
class OptimizeKeyframePanel;
class ReplicatePanel;
class LegMirrorPanel;
class HillAdjustPanel;
class FallToolPanel;
class SkeletonVerifyPanel;
class CvToolPanel;
class AnimExpClassDesc;
class ArmatureExpClassDesc;
class ErfExpClassDesc;
class MLRExpClassDesc;
class EBFExpClassDesc;
class BatchExpClassDesc;
class JointPreferenceClassDesc;
class OptimizeKeyframeClassDesc;
class ReplicateClassDesc;
class SiteObjectClassDesc;
class LegMirrorClassDesc;
class HillAdjustClassDesc;
class FallToolClassDesc;
class SkeletonVerifyClassDesc;
class CvObjectClassDesc;
class CvExpClassDesc;
class CvToolClassDesc;
class LightExpClassDesc;
class ErfImpClassDesc;
class MissionImpClassDesc;
extern ClassDesc* GetAnimExpDesc();
extern TCHAR *GetString(int id);
extern CAnimExpApp theApp;
extern HINSTANCE hInstance;
extern AnimExpClassDesc animExpDesc;
extern ErfExpClassDesc erfExpDesc;
extern MLRExpClassDesc MLRExpDesc;
extern EBFExpClassDesc EBFExpDesc;
extern BatchExpClassDesc batchExpDesc;
extern ArmatureExpClassDesc armatureExpDesc;
extern JointPreferenceClassDesc jointPreferenceDesc;
extern OptimizeKeyframeClassDesc optimizeKeyframeDesc;
extern ReplicateClassDesc replicateExpDesc;
extern SiteObjectClassDesc siteObjectClassDesc;
extern LegMirrorClassDesc legmirrorDesc;
extern HillAdjustClassDesc hillAdjustDesc;
extern FallToolClassDesc fallToolDesc;
extern SkeletonVerifyClassDesc skeletonVerifyDesc;
extern CvObjectClassDesc cvObjectClassDesc;
extern CvExpClassDesc cvExpDesc;
extern CvToolClassDesc cvToolDesc;
extern LightExpClassDesc lightExpDesc;
extern ErfImpClassDesc erfImpDesc;
extern MissionImpClassDesc missionImpDesc;
extern JointPreferencePanel g_jointPreferencePanel;
extern OptimizeKeyframePanel g_optimizeKeyframePanel;
extern ReplicatePanel g_replicatePanel;
extern LegMirrorPanel g_legmirrorPanel;
extern HillAdjustPanel g_hillAdjustPanel;
extern FallToolPanel g_fallToolPanel;
extern SkeletonVerifyPanel g_skeletonVerifyPanel;
extern CvToolPanel g_cvToolPanel;
void TurnOnExceptions();
void TurnOffExceptions();
DWORD WINAPI fn(LPVOID arg);
HWND EnableQuickFile(Interface *,HWND);
void DisableQuickFile(Interface * ip,HWND hWnd);
// Attempts to delete keys that lie within the given time range.
// The controller will be sampled within the range in 'step' size
// increments. After the key reduction, the controller's values
// at each step are gauranteed to be withen 'threshold' distance
// from their original values.
// Copied from keyreduc.h and keyreduc.cpp
int ApplyKeyReduction_MW4(
Control *cont,Interval range,float thresh,TimeValue step,
KeyReduceStatus *status);
/////////////////////////////////////////////////////////////////////////////
class CAnimExpApp : public CWinApp
{
public:
CAnimExpApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAnimExpApp)
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
//}}AFX_VIRTUAL
//{{AFX_MSG(CAnimExpApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
class AnimExpClassDesc : public ClassDesc {
public:
int IsPublic () {return 1;}
void* Create(BOOL loading = FALSE);
const TCHAR* ClassName() { return GetString(IDS_ANIMEXP_NAME); }
SClass_ID SuperClassID() { return SCENE_EXPORT_CLASS_ID; }
Class_ID ClassID() { return ANIMEXPORT_CLASS_ID; }
const TCHAR* Category() { return GetString(IDS_CATEGORY); }
};
//-------------------------------------------------------------------------
class ErfExpClassDesc : public ClassDesc {
public:
int IsPublic () {return 1;}
void* Create(BOOL loading = FALSE);
const TCHAR* ClassName() { return GetString(IDS_ERFEXP_NAME); }
SClass_ID SuperClassID() { return SCENE_EXPORT_CLASS_ID; }
Class_ID ClassID() { return ERFEXPORT_CLASS_ID; }
const TCHAR* Category() { return GetString(IDS_CATEGORY); }
};
//-------------------------------------------------------------------------
class MLRExpClassDesc : public ClassDesc {
public:
int IsPublic () {return 1;}
void* Create(BOOL loading = FALSE);
const TCHAR* ClassName() { return GetString(IDS_MLREXP_NAME); }
SClass_ID SuperClassID() { return SCENE_EXPORT_CLASS_ID; }
Class_ID ClassID() { return MLREXPORT_CLASS_ID; }
const TCHAR* Category() { return GetString(IDS_CATEGORY); }
};
//-------------------------------------------------------------------------
class EBFExpClassDesc : public ClassDesc {
public:
int IsPublic () {return 1;}
void* Create(BOOL loading = FALSE);
const TCHAR* ClassName() { return GetString(IDS_EBFEXP_NAME); }
SClass_ID SuperClassID() { return SCENE_EXPORT_CLASS_ID; }
Class_ID ClassID() { return EBFEXPORT_CLASS_ID; }
const TCHAR* Category() { return GetString(IDS_CATEGORY); }
};
//-------------------------------------------------------------------------
class ArmatureExpClassDesc : public ClassDesc {
public:
int IsPublic () {return 1;}
void* Create(BOOL loading = FALSE);
const TCHAR* ClassName() { return GetString(IDS_ARMATUREEXP_NAME); }
SClass_ID SuperClassID() { return SCENE_EXPORT_CLASS_ID; }
Class_ID ClassID() { return ARMATUREEXPORT_CLASS_ID; }
const TCHAR* Category() { return GetString(IDS_CATEGORY); }
};
//-------------------------------------------------------------------------
class BatchExpClassDesc : public ClassDesc {
public:
int IsPublic () {return 1;}
void* Create(BOOL loading = FALSE);
const TCHAR* ClassName() { return GetString(IDS_BATCHEXP_NAME); }
SClass_ID SuperClassID() { return SCENE_EXPORT_CLASS_ID; }
Class_ID ClassID() { return BATCHEXPORT_CLASS_ID; }
const TCHAR* Category() { return GetString(IDS_CATEGORY); }
};
//-------------------------------------------------------------------------
class JointPreferenceClassDesc : public ClassDesc
{
public:
int IsPublic () {return 1;}
void* Create (BOOL loading = FALSE) {return &g_jointPreferencePanel;}
const TCHAR* ClassName () {return GetString(IDS_JOINTPREF_NAME);}
SClass_ID SuperClassID () {return UTILITY_CLASS_ID;}
Class_ID ClassID () {return JOINTPREFS_CLASS_ID;}
const TCHAR* Category () {return GetString(IDS_CATEGORY);}
};
//-------------------------------------------------------------------------
class OptimizeKeyframeClassDesc : public ClassDesc
{
public:
int IsPublic () {return 1;}
void* Create (BOOL loading = FALSE) {return &g_optimizeKeyframePanel;}
const TCHAR* ClassName () {return GetString(IDS_OPTIMIZEKEY_NAME);}
SClass_ID SuperClassID () {return UTILITY_CLASS_ID;}
Class_ID ClassID () {return OPTIMIZE_CLASS_ID;}
const TCHAR* Category () {return GetString(IDS_CATEGORY);}
};
//-------------------------------------------------------------------------
class ReplicateClassDesc : public ClassDesc
{
public:
int IsPublic () {return 1;}
void* Create (BOOL loading = FALSE) {return &g_replicatePanel;}
const TCHAR* ClassName () {return GetString(IDS_REPLICATE_NAME);}
SClass_ID SuperClassID () {return UTILITY_CLASS_ID;}
Class_ID ClassID () {return REPLICATE_CLASS_ID;}
const TCHAR* Category () {return GetString(IDS_CATEGORY);}
};
//-------------------------------------------------------------------------
class SiteObjectClassDesc : public ClassDesc {
public:
int IsPublic() {return 1;}
void * Create(BOOL loading = FALSE);
const TCHAR * ClassName() {return GetString(IDS_SITEOBJECT_NAME);}
SClass_ID SuperClassID() {return HELPER_CLASS_ID;}
Class_ID ClassID() {return SITEOBJECT_CLASS_ID;}
const TCHAR* Category() {return GetString(IDS_CATEGORY);}
void ResetClassParams (BOOL f_reset) {};
};
/////////////////////////////////////////////////////////////////////////////
//-------------------------------------------------------------------------
class LegMirrorClassDesc : public ClassDesc
{
public:
int IsPublic () {return 1;}
void* Create (BOOL loading = FALSE) {return &g_legmirrorPanel;}
const TCHAR* ClassName () {return GetString(IDS_LEGMIRROR_NAME);}
SClass_ID SuperClassID () {return UTILITY_CLASS_ID;}
Class_ID ClassID () {return LEGMIRROR_CLASS_ID;}
const TCHAR* Category () {return GetString(IDS_CATEGORY);}
};
/////////////////////////////////////////////////////////////////////////////
//-------------------------------------------------------------------------
class HillAdjustClassDesc : public ClassDesc
{
public:
int IsPublic () {return 1;}
void* Create (BOOL loading = FALSE) {return &g_hillAdjustPanel;}
const TCHAR* ClassName () {return GetString(IDS_HILLADJUST_NAME);}
SClass_ID SuperClassID () {return UTILITY_CLASS_ID;}
Class_ID ClassID () {return HILLADJUST_CLASS_ID;}
const TCHAR* Category () {return GetString(IDS_CATEGORY);}
};
/////////////////////////////////////////////////////////////////////////////
//-------------------------------------------------------------------------
class FallToolClassDesc : public ClassDesc
{
public:
int IsPublic () {return 1;}
void* Create (BOOL loading = FALSE) {return &g_fallToolPanel;}
const TCHAR* ClassName () {return GetString(IDS_FALLTOOL_NAME);}
SClass_ID SuperClassID () {return UTILITY_CLASS_ID;}
Class_ID ClassID () {return FALLTOOL_CLASS_ID;}
const TCHAR* Category () {return GetString(IDS_CATEGORY);}
};
/////////////////////////////////////////////////////////////////////////////
//-------------------------------------------------------------------------
class SkeletonVerifyClassDesc : public ClassDesc
{
public:
int IsPublic () {return 1;}
void* Create (BOOL loading = FALSE) {return &g_skeletonVerifyPanel;}
const TCHAR* ClassName () {return GetString(IDS_SKELETONVERIFY_NAME);}
SClass_ID SuperClassID () {return UTILITY_CLASS_ID;}
Class_ID ClassID () {return SKELETONVERIFY_CLASS_ID;}
const TCHAR* Category () {return GetString(IDS_CATEGORY);}
};
//-------------------------------------------------------------------------
class CvObjectClassDesc : public ClassDesc {
public:
int IsPublic() {return 1;}
void * Create(BOOL loading = FALSE);
const TCHAR * ClassName() {return GetString(IDS_CVOBJECT_NAME);}
SClass_ID SuperClassID() {return HELPER_CLASS_ID;}
Class_ID ClassID() {return CVOBJECT_CLASS_ID;}
const TCHAR* Category() {return GetString(IDS_CATEGORY);}
void ResetClassParams (BOOL f_reset) {};
};
//-------------------------------------------------------------------------
class CvExpClassDesc : public ClassDesc {
public:
int IsPublic () {return 1;}
void* Create(BOOL loading = FALSE);
const TCHAR* ClassName() { return GetString(IDS_CVEXP_NAME); }
SClass_ID SuperClassID() { return SCENE_EXPORT_CLASS_ID; }
Class_ID ClassID() { return CVEXPORT_CLASS_ID; }
const TCHAR* Category() { return GetString(IDS_CATEGORY); }
};
/////////////////////////////////////////////////////////////////////////////
//-------------------------------------------------------------------------
class CvToolClassDesc : public ClassDesc
{
public:
int IsPublic () {return 1;}
void* Create (BOOL loading = FALSE) {return &g_cvToolPanel;}
const TCHAR* ClassName () {return GetString(IDS_CVTOOL_NAME);}
SClass_ID SuperClassID () {return UTILITY_CLASS_ID;}
Class_ID ClassID () {return CVTOOL_CLASS_ID;}
const TCHAR* Category () {return GetString(IDS_CATEGORY);}
};
//-------------------------------------------------------------------------
class LightExpClassDesc : public ClassDesc {
public:
int IsPublic () {return 1;}
void* Create(BOOL loading = FALSE);
const TCHAR* ClassName() { return GetString(IDS_LIGHTEXP_NAME); }
SClass_ID SuperClassID() { return SCENE_EXPORT_CLASS_ID; }
Class_ID ClassID() { return LIGHTEXPORT_CLASS_ID; }
const TCHAR* Category() { return GetString(IDS_CATEGORY); }
};
//-------------------------------------------------------------------------
class ErfImpClassDesc : public ClassDesc {
public:
int IsPublic () {return 1;}
void* Create(BOOL loading = FALSE);
const TCHAR* ClassName() { return GetString(IDS_ERFIMP_NAME); }
SClass_ID SuperClassID() { return SCENE_IMPORT_CLASS_ID; }
Class_ID ClassID() { return ERFIMPORT_CLASS_ID; }
const TCHAR* Category() { return GetString(IDS_CATEGORY); }
};
//-------------------------------------------------------------------------
class MissionImpClassDesc : public ClassDesc {
public:
int IsPublic () {return 1;}
void* Create(BOOL loading = FALSE);
const TCHAR* ClassName() { return GetString(IDS_MISSIONIMP_NAME); }
SClass_ID SuperClassID() { return SCENE_IMPORT_CLASS_ID; }
Class_ID ClassID() { return MISSIONIMPORT_CLASS_ID; }
const TCHAR* Category() { return GetString(IDS_CATEGORY); }
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_ANIMATIONSUITE_H__68E70A2D_B863_11D1_98AD_0040051EDCE7__INCLUDED_)