193 lines
6.5 KiB
C++
Executable File
193 lines
6.5 KiB
C++
Executable File
//-----------------------------------------------------------------------------
|
|
// Torque Game Engine
|
|
// Copyright (C) GarageGames.com, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef _SEQUENCE_H_
|
|
#define _SEQUENCE_H_
|
|
|
|
#pragma pack(push,8)
|
|
#include <MAX.H>
|
|
#include <dummy.h>
|
|
#include <iparamm.h>
|
|
#pragma pack(pop)
|
|
|
|
#ifndef _PLATFORM_H_
|
|
#include "platform/platform.h"
|
|
#endif
|
|
|
|
#define SEQUENCE_CLASS_ID Class_ID(0x63a64197, 0xfd72a55)
|
|
|
|
#define PB_SEQ_BEGIN_END 0
|
|
|
|
#define PB_SEQ_CYCLIC 1
|
|
#define PB_SEQ_BLEND 2
|
|
|
|
#define PB_SEQ_LAST_FIRST_FRAME_SAME 3 // only valid if cyclic
|
|
|
|
#define PB_SEQ_USE_FRAME_RATE 4 // if this
|
|
#define PB_SEQ_FRAME_RATE 5 // then this
|
|
#define PB_SEQ_NUM_FRAMES 6 // else this
|
|
|
|
#define PB_SEQ_IGNORE_GROUND_TRANSFORM 7
|
|
#define PB_SEQ_USE_GROUND_FRAME_RATE 8 // if this
|
|
#define PB_SEQ_GROUND_FRAME_RATE 9 // then use this
|
|
#define PB_SEQ_NUM_GROUND_FRAMES 10// else use this
|
|
|
|
#define PB_SEQ_ENABLE_MORPH_ANIMATION 11
|
|
#define PB_SEQ_ENABLE_VIS_ANIMATION 12
|
|
#define PB_SEQ_ENABLE_TRANSFORM_ANIMATION 13
|
|
|
|
#define PB_SEQ_FORCE_MORPH_ANIMATION 14
|
|
#define PB_SEQ_FORCE_VIS_ANIMATION 15
|
|
#define PB_SEQ_FORCE_TRANSFORM_ANIMATION 16
|
|
|
|
#define PB_SEQ_DEFAULT_PRIORITY 17
|
|
|
|
#define PB_SEQ_BLEND_REFERENCE_TIME 18
|
|
|
|
#define PB_SEQ_ENABLE_TEXTURE_ANIMATION 19
|
|
#define PB_SEQ_ENABLE_IFL_ANIMATION 20
|
|
#define PB_SEQ_FORCE_TEXTURE_ANIMATION 21
|
|
|
|
#define PB_SEQ_TRIGGERS 22
|
|
|
|
#define PB_SEQ_ENABLE_DECAL_ANIMATION 23
|
|
#define PB_SEQ_ENABLE_DECAL_FRAME_ANIMATION 24
|
|
#define PB_SEQ_FORCE_DECAL_ANIMATION 25
|
|
|
|
#define PB_SEQ_OVERRIDE_DURATION 26
|
|
#define PB_SEQ_DURATION 27
|
|
|
|
#define PB_SEQ_ENABLE_UNIFORM_SCALE_ANIMATION 28
|
|
#define PB_SEQ_ENABLE_ARBITRARY_SCALE_ANIMATION 29
|
|
#define PB_SEQ_FORCE_SCALE_ANIMATION 30
|
|
|
|
// Class ID for old sequence class -- id for exporter used
|
|
// in starsiege, tribes 1, and other games around that time
|
|
// You know, games from the previous millenium.
|
|
#define OLD_SEQUENCE_CLASS_ID Class_ID(0x09923023,0)
|
|
|
|
// param block constants for old sequence class
|
|
#define PB_OLD_SEQ_ONESHOT 3
|
|
#define PB_OLD_SEQ_FORCEVIS 4
|
|
#define PB_OLD_SEQ_VISONLY 5
|
|
#define PB_OLD_SEQ_NOCOLLAPSE 6
|
|
#define PB_OLD_SEQ_USECELRATE 7
|
|
|
|
extern ClassDesc * GetSequenceDesc();
|
|
|
|
extern bool getBoolSequenceDefault(S32 index);
|
|
extern F32 getFloatSequenceDefault(S32 index);
|
|
extern S32 getIntSequenceDefault(S32 index);
|
|
extern void resetSequenceDefaults();
|
|
|
|
|
|
class SequenceObject: public DummyObject
|
|
{
|
|
public:
|
|
|
|
static U32 defaultCyclic;
|
|
static U32 defaultBlend;
|
|
static U32 defaultFirstLastFrameSame;
|
|
|
|
static U32 defaultUseFrameRate;
|
|
static F32 defaultFrameRate;
|
|
static S32 defaultNumFrames;
|
|
|
|
static U32 defaultIgnoreGroundTransform;
|
|
static U32 defaultUseGroundFrameRate;
|
|
static F32 defaultGroundFrameRate;
|
|
static S32 defaultNumGroundFrames;
|
|
|
|
static U32 defaultEnableMorphAnimation;
|
|
static U32 defaultEnableVisAnimation;
|
|
static U32 defaultEnableTransformAnimation;
|
|
|
|
static U32 defaultForceMorphAnimation;
|
|
static U32 defaultForceVisAnimation;
|
|
static U32 defaultForceTransformAnimation;
|
|
|
|
static S32 defaultDefaultSequencePriority;
|
|
|
|
static S32 defaultBlendReferenceTime;
|
|
|
|
static U32 defaultEnableTextureAnimation;
|
|
static U32 defaultEnableIflAnimation;
|
|
static U32 defaultForceTextureAnimation;
|
|
|
|
static U32 defaultEnableDecalAnimation;
|
|
static U32 defaultEnableDecalFrameAnimation;
|
|
static U32 defaultForceDecalAnimation;
|
|
|
|
static U32 defaultOverrideDuration;
|
|
static F32 defaultDuration;
|
|
|
|
static U32 defaultEnableUniformScaleAnimation;
|
|
static U32 defaultEnableArbitraryScaleAnimation;
|
|
static U32 defaultForceScaleAnimation;
|
|
|
|
// Class vars
|
|
IParamBlock *pblock;
|
|
Interval ivalid;
|
|
|
|
//
|
|
static IParamMap *pmapParam1;
|
|
static IParamMap *pmapParam2;
|
|
static IParamMap *pmapParam3;
|
|
static SequenceObject *editOb;
|
|
|
|
SequenceObject();
|
|
~SequenceObject();
|
|
|
|
// inherited virtual methods for Reference-management
|
|
RefResult NotifyRefChanged( Interval changeInt, RefTargetHandle hTarget,
|
|
PartID& partID, RefMessage message );
|
|
|
|
// From BaseObject
|
|
void BeginEditParams( IObjParam *ip, ULONG flags,Animatable *prev);
|
|
void EndEditParams( IObjParam *ip, ULONG flags,Animatable *next);
|
|
RefTargetHandle Clone(RemapDir& remap = NoRemap());
|
|
|
|
// From Object
|
|
virtual TCHAR *GetObjectName() { return _T("Sequence II"); }
|
|
void InitNodeName(TSTR& s);
|
|
Interval ObjectValidity(TimeValue t);
|
|
// unimplemented methods from Object class:
|
|
// ObjectState Eval(TimeValue time);
|
|
// ObjectHandle ApplyTransform(Matrix3& matrix) {return this;}
|
|
// Interval ObjectValidity(TimeValue t) {return FOREVER;}
|
|
// S32 CanConvertToType(Class_ID obtype) {return FALSE;}
|
|
// Object* ConvertToType(TimeValue t, Class_ID obtype) {assert(0);return NULL;}
|
|
// void GetWorldBoundBox(TimeValue t, INode *mat, ViewExp *vpt, Box3& box );
|
|
// void GetLocalBoundBox(TimeValue t, INode *mat, ViewExp *vpt, Box3& box );
|
|
// S32 DoOwnSelectHilite() { return 1; }
|
|
|
|
// Animatable methods
|
|
void FreeCaches();
|
|
S32 NumSubs() { return 1; }
|
|
Animatable* SubAnim(S32 i) { return pblock; }
|
|
TSTR SubAnimName(S32 i);
|
|
void DeleteThis() { delete this; }
|
|
Class_ID ClassID() { return SEQUENCE_CLASS_ID; }
|
|
void GetClassName(TSTR& s);
|
|
// S32 IsKeyable(){ return 0;}
|
|
|
|
// From ref
|
|
S32 NumRefs() {return 1;}
|
|
RefTargetHandle GetReference(S32 i) {return pblock;}
|
|
void SetReference(S32 i, RefTargetHandle rtarg) {pblock=(IParamBlock*)rtarg;}
|
|
IOResult Load(ILoad *iload);
|
|
//IOResult Save(ISave *isave);
|
|
//RefTargetHandle Clone(RemapDir& remap = NoRemap());
|
|
|
|
// where do these come from?
|
|
virtual void InvalidateUI();
|
|
IParamArray *GetParamBlock();
|
|
S32 GetParamBlockIndex(S32 id);
|
|
virtual ParamDimension *GetParameterDim(S32 pbIndex);
|
|
virtual TSTR GetParameterName(S32 pbIndex);
|
|
};
|
|
|
|
#endif
|