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.
209 lines
5.2 KiB
C++
209 lines
5.2 KiB
C++
// AnimNode.h: interface for the CAnimNode class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_ANIMNODE_H__55E965C5_6AD6_11D3_9C1B_00609712FBEF__INCLUDED_)
|
|
#define AFX_ANIMNODE_H__55E965C5_6AD6_11D3_9C1B_00609712FBEF__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include "mw4headers.hpp"
|
|
#include "Vehicle.hpp"
|
|
#include "MechAnimationState.hpp"
|
|
|
|
class CAnimTypeNode;
|
|
class CCurveTypeNode;
|
|
class CAttribTypeNode;
|
|
class CParamNode;
|
|
|
|
class CAnimNode : public CObject
|
|
{
|
|
private:
|
|
CString m_strName;
|
|
protected:
|
|
bool m_bIsTransition;
|
|
public:
|
|
CMapWordToOb m_mapParams; //Map of WORD(Type Name Token) - CString( Value )
|
|
HTREEITEM m_hItem;
|
|
bool m_bValid;
|
|
|
|
CParamNode *GetParam(int);
|
|
CParamNode *SetParam(int,CParamNode *);
|
|
|
|
CAnimNode(CString);
|
|
virtual ~CAnimNode();
|
|
|
|
CParamNode *CreateParam(int,Page * = NULL);
|
|
void CreateAnimTypeParams(CAnimTypeNode *,Page * = NULL);
|
|
CString GetName() {return m_strName;}
|
|
bool IsTransition() {return m_bIsTransition;}
|
|
virtual bool LoadState(Page *);
|
|
virtual bool SaveState(NotationFile *);
|
|
};
|
|
|
|
// These are the data section objects
|
|
// There is really nothing unique only to Animation State nodes
|
|
class CAnimStateNode : public CAnimNode
|
|
{
|
|
public:
|
|
CAnimStateNode(CString);
|
|
virtual ~CAnimStateNode();
|
|
|
|
virtual bool LoadState(Page *);
|
|
};
|
|
|
|
// Transition State nodes have the basic stuff, and more parameters
|
|
class CTransStateNode : public CAnimStateNode
|
|
{
|
|
public:
|
|
CAnimNode *m_pStartNode;
|
|
CAnimNode *m_pEndNode;
|
|
|
|
CTransStateNode(CAnimStateNode *,CAnimStateNode *);
|
|
virtual ~CTransStateNode ();
|
|
|
|
virtual bool LoadState(Page *);
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// NOTE: When adding new type, make sure that in the AnimNode::CreateParam it has an associated node
|
|
// that filter is set up from CPageAnimType::ShowParam()
|
|
// that the animation type params have the parameters linked
|
|
enum // Enumerate the parameter types
|
|
{
|
|
PARAM_ANIMTYPE = 0, // All AnimNodes will have this in their parameter map
|
|
PARAM_START,
|
|
PARAM_POSITION,
|
|
PARAM_ANIM,
|
|
PARAM_STARTOVERLAPCURVE,
|
|
PARAM_ENDOVERLAPCURVE,
|
|
PARAM_TRANSITIONSTART,
|
|
PARAM_PLAYOLDSTATETILL,
|
|
PARAM_OVERRIDENEWSTATEPOSITION,
|
|
PARAM_STARTNEWSTATE,
|
|
PARAM_PITCHATTRIB,
|
|
PARAM_ROLLATTRIB,
|
|
PARAM_SPEEDATTRIB,
|
|
PARAM_FASTANIM,
|
|
PARAM_SLOWANIM,
|
|
PARAM_SLOWSPEEDMULTIPLIER,
|
|
PARAM_LERPTIME,
|
|
PARAM_SLOWUPANIM,
|
|
PARAM_SLOWEVENANIM,
|
|
PARAM_SLOWDOWNANIM,
|
|
PARAM_FASTUPANIM,
|
|
PARAM_FASTEVENANIM,
|
|
PARAM_FASTDOWNANIM,
|
|
PARAM_UPANIM,
|
|
PARAM_EVENANIM,
|
|
PARAM_DOWNANIM,
|
|
PARAM_LEFTANIM,
|
|
PARAM_RIGHTANIM,
|
|
PARAM_SLOWLEFTANIM,
|
|
PARAM_SLOWRIGHTANIM,
|
|
PARAM_FASTLEFTANIM,
|
|
PARAM_FASTRIGHTANIM,
|
|
|
|
PARAM_COUNT
|
|
};
|
|
// Text defined in AnimNode.cpp
|
|
|
|
// These are Parameter map objects
|
|
|
|
// Base class for all param nodes (the node specific for the Animation Type
|
|
class CParamNode : public CObject
|
|
{
|
|
public:
|
|
int m_iParamType;
|
|
|
|
CParamNode();
|
|
virtual ~CParamNode() {};
|
|
|
|
CString GetKeyString();
|
|
virtual CString GetValueString(); //Returns the display output string (for human readability)
|
|
virtual bool OnModify();
|
|
virtual CString GetValue(); // Returns the file output string (for computer readability)
|
|
virtual bool SetValue(CString); // Load the values, based on a string
|
|
};
|
|
|
|
class CAnimTypeNode : public CParamNode
|
|
{
|
|
public:
|
|
CString m_strName;
|
|
int m_iIndex;
|
|
int m_iType;
|
|
|
|
CAnimTypeNode(int);
|
|
virtual ~CAnimTypeNode() {};
|
|
|
|
virtual CString GetValueString();
|
|
virtual bool OnModify();
|
|
virtual CString GetValue(); // Returns the file output string (for computer readability)
|
|
virtual bool SetValue(CString); // Load the values, based on a string
|
|
};
|
|
|
|
class CCurveTypeNode : public CParamNode, public MechWarrior4::AnimCurve
|
|
{
|
|
public:
|
|
CString m_strName;
|
|
int m_iType;
|
|
CCurveTypeNode(int,int);
|
|
virtual ~CCurveTypeNode() {};
|
|
|
|
virtual CString GetValueString();
|
|
virtual bool OnModify();
|
|
virtual CString GetValue(); // Returns the file output string (for computer readability)
|
|
virtual bool SetValue(CString); // Load the values, based on a string
|
|
};
|
|
|
|
class CAttribTypeNode : public CParamNode
|
|
{
|
|
public:
|
|
CString m_strName;
|
|
int m_iType;
|
|
CAttribTypeNode(int,int);
|
|
virtual ~CAttribTypeNode() {};
|
|
|
|
virtual CString GetValueString();
|
|
virtual bool OnModify();
|
|
virtual CString GetValue(); // Returns the file output string (for computer readability)
|
|
virtual bool SetValue(CString); // Load the values, based on a string
|
|
};
|
|
|
|
class CFloatNode : public CParamNode
|
|
{
|
|
public:
|
|
float m_fValue;
|
|
|
|
CFloatNode(int);
|
|
virtual ~CFloatNode() {};
|
|
|
|
virtual CString GetValueString();
|
|
virtual bool OnModify();
|
|
virtual CString GetValue(); // Returns the file output string (for computer readability)
|
|
virtual bool SetValue(CString); // Load the values, based on a string
|
|
};
|
|
|
|
class CPathNode : public CParamNode
|
|
{
|
|
public:
|
|
CString m_strPath;
|
|
MW4Animation::AnimData *m_pAnimData;
|
|
|
|
CPathNode(int);
|
|
virtual ~CPathNode();
|
|
|
|
virtual CString GetValueString();
|
|
virtual bool OnModify();
|
|
virtual CString GetValue(); // Returns the file output string (for computer readability)
|
|
virtual bool SetValue(CString); // Load the values, based on a string
|
|
};
|
|
|
|
#endif // !defined(AFX_ANIMNODE_H__55E965C5_6AD6_11D3_9C1B_00609712FBEF__INCLUDED_)
|