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.
111 lines
2.7 KiB
C++
111 lines
2.7 KiB
C++
// PlugTest.h : main header file for the PLUGTEST DLL
|
|
//
|
|
|
|
#if !defined(AFX_REPLICATE_H__C870A7E1_E46A_11d1_A330_00A0249C7DE2__INCLUDED_)
|
|
#define AFX_REPLICATE_H__C870A7E1_E46A_11d1_A330_00A0249C7DE2__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 "AnimationSuite.h"
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CPlugTestApp
|
|
// See PlugTest.cpp for the implementation of this class
|
|
//
|
|
|
|
#ifndef __REPLICATE__
|
|
#define __REPLICATE__
|
|
|
|
|
|
class RepReduceStatus:
|
|
public KeyReduceStatus
|
|
{
|
|
public:
|
|
|
|
RepReduceStatus()
|
|
{
|
|
|
|
}
|
|
|
|
void Init(int total)
|
|
{
|
|
|
|
}
|
|
|
|
int Progress(int p){return KEYREDUCE_CONTINUE;};
|
|
};
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// PlugPanel, manage the Plugins' display panel
|
|
|
|
|
|
class ReplicatePanel : public UtilityObj {
|
|
protected:
|
|
IUtil* m_iu;
|
|
HWND m_hPanel;
|
|
|
|
public:
|
|
Interface* m_ip;
|
|
|
|
// Constructor & Destructor
|
|
ReplicatePanel() {};
|
|
virtual ~ReplicatePanel() {};
|
|
|
|
// Overides of the UtilityObj class
|
|
void BeginEditParams(Interface* ip, IUtil* iu);
|
|
void EndEditParams(Interface* ip, IUtil* iu);
|
|
void DeleteThis() {}
|
|
void Init(HWND hWnd);
|
|
void Destroy(HWND hWnd);
|
|
|
|
//Specific Methods
|
|
void Replicate();
|
|
void Bake();
|
|
void DeleteMeAndMyChildren(INode *node);
|
|
INode *CopyMeAndMyChildren(INode *copy_node);
|
|
|
|
INode *CopyNode(INode *copy_node);
|
|
|
|
void StripBones(INode *node);
|
|
void CopyAnimation(INode *source, INode *target,JointEditDialog *dialog,int = 1);
|
|
int HasKnownControler(INode *node);
|
|
|
|
void OptimizeAnimation(INode *copy_node, int ¤t_node, int total_nodes, JointEditDialog *dialog);
|
|
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// 3DS Max Standard Select-by-name Dialog Box Callback Class
|
|
class TestHitByNameDlgCallback : public HitByNameDlgCallback
|
|
{
|
|
public:
|
|
virtual TCHAR* dialogTitle() { return _T("Select a Node to copy");}
|
|
virtual TCHAR* buttonText() { return _T("Select");}
|
|
virtual BOOL useFilter() {return FALSE;}
|
|
virtual BOOL useProc() { return TRUE;}
|
|
virtual void proc(INodeTab &nodeTab){NodeTab = nodeTab;}
|
|
virtual BOOL singleSelect() {return TRUE;}
|
|
|
|
public:
|
|
INodeTab NodeTab;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#endif
|
|
|
|
//{{AFX_INSERT_LOCATION}}
|
|
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
|
|
|
|
#endif // !defined(AFX_REPLICATE_H__C870A7E1_E46A_11d1_A330_00A0249C7DE2__INCLUDED_)
|