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.
487 lines
16 KiB
C++
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_)
|