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.
129 lines
3.5 KiB
C++
129 lines
3.5 KiB
C++
/**********************************************************************
|
|
*<
|
|
FILE: SiteObject.h
|
|
|
|
DESCRIPTION: Template Utility
|
|
|
|
CREATED BY:
|
|
|
|
HISTORY:
|
|
|
|
*> Copyright (c) 1997, All Rights Reserved.
|
|
**********************************************************************/
|
|
|
|
#ifndef __SITEOBJECT__H
|
|
#define __SITEOBJECT__H
|
|
|
|
#ifdef STRICT // Already defined by stdafx,
|
|
#undef STRICT // so we avoid warning linking msg
|
|
#endif
|
|
#ifdef _MBCS // The same as above
|
|
#undef _MBCS
|
|
#endif
|
|
|
|
#include "AnimationSuite.h"
|
|
|
|
|
|
#pragma pack(push,8)
|
|
#include "iparamm.h"
|
|
|
|
|
|
class SiteObject;
|
|
|
|
class SiteObjectCreateCallBack: public CreateMouseCallBack {
|
|
protected:
|
|
Point3 m_p0, m_p1;
|
|
SiteObject *m_ob;
|
|
public:
|
|
int proc( ViewExp *vpt,int msg, int point, int flags, IPoint2 m, Matrix3& mat );
|
|
void SetObj(SiteObject *obj) { m_ob = obj; }
|
|
};
|
|
|
|
class ParamBlock;
|
|
|
|
class SiteObject : public HelperObject {
|
|
protected:
|
|
static HWND m_hParams;
|
|
static IObjParam *m_iObjParams;
|
|
static IParamMap *m_pmapParam;
|
|
|
|
|
|
// Params
|
|
int m_triggerCount;
|
|
float m_siteScale;
|
|
int m_extDispFlags;
|
|
|
|
|
|
public:
|
|
|
|
IParamBlock *m_pblock;
|
|
BOOL m_suspendSnap;
|
|
|
|
SiteObject();
|
|
~SiteObject() {};
|
|
|
|
void BeginEditParams( IObjParam *ip, ULONG flags,Animatable *prev);
|
|
void EndEditParams( IObjParam *ip, ULONG flags,Animatable *next);
|
|
|
|
IParamArray *GetParamBlock(){ return m_pblock; }
|
|
|
|
ParamDimension *GetParameterDim(int pbIndex);
|
|
|
|
void InitNodeName(TSTR& s) { s = GetString(IDS_DB_SITEOBJECT); }
|
|
|
|
ObjectState Eval(TimeValue time);
|
|
CreateMouseCallBack* GetCreateMouseCallBack();
|
|
|
|
|
|
ObjectHandle ApplyTransform(Matrix3& matrix) {return this;}
|
|
Interval ObjectValidity(TimeValue t) {return FOREVER;}
|
|
int CanConvertToType(Class_ID obtype) {return FALSE;}
|
|
Object* ConvertToType(TimeValue t, Class_ID obtype) {assert(0);return NULL;}
|
|
int DoOwnSelectHilite() { return 1; }
|
|
|
|
|
|
int HitTest(TimeValue t, INode* inode, int type, int crossing, int flags, IPoint2 *p, ViewExp *vpt);
|
|
void Snap(TimeValue t, INode* inode, SnapInfo *snap, IPoint2 *p, ViewExp *vpt);
|
|
void SetExtendedDisplay(int flags);
|
|
int Display(TimeValue t, INode* inode, ViewExp *vpt, int flags);
|
|
void GetWorldBoundBox(TimeValue t, INode *mat, ViewExp *vpt, Box3& box );
|
|
void GetLocalBoundBox(TimeValue t, INode *mat, ViewExp *vpt, Box3& box );
|
|
|
|
|
|
// Animatable methods
|
|
void DeleteThis() { delete this; }
|
|
Class_ID ClassID() { return SITEOBJECT_CLASS_ID; }
|
|
void GetClassName(TSTR& s) { s = TSTR(GetString(IDS_DB_SITE_HELPER)); }
|
|
int IsKeyable(){ return 1;}
|
|
|
|
// This method returns the number of sub-anims this plug-in
|
|
// has. Is has one, the parameter block.
|
|
int NumSubs() { return 1; }
|
|
// This methods returns the ith sub-anim (parameter)
|
|
Animatable* SubAnim(int i);
|
|
// This method returns the name of the ith sub-anim.
|
|
TSTR SubAnimName(int i);
|
|
|
|
|
|
|
|
// From ref
|
|
// reference the parameter block and the helper
|
|
int NumRefs() { return 1;};
|
|
// This method returns the ith reference.
|
|
RefTargetHandle GetReference(int i);
|
|
// This method sets the ith reference to the target passed.
|
|
void SetReference(int i, RefTargetHandle rtarg);
|
|
|
|
// This method recieves the change notification methods
|
|
RefResult NotifyRefChanged(Interval, RefTargetHandle, PartID&, RefMessage);
|
|
|
|
RefTargetHandle Clone(RemapDir& remap = NoRemap());
|
|
IOResult Load(ILoad *iload);
|
|
IOResult Save(ISave *isave);
|
|
|
|
};
|
|
|
|
#pragma pack(pop)
|
|
|
|
#endif // __SITEOBJECT__H
|