reman3/Rayman_X/cpa/public/ITF/objdllb.hpp

120 lines
4.7 KiB
C++

/*=========================================================================*/
/* OBJDLLb.hpp : base of objects DLL*/
/* This is a part of the CPA project.*/
/**/
/* Version 1.0*/
/* Creation date 10/06/96*/
/* Revision date*/
/**/
/* (c) Ubi Studio 1996*/
/**/
/* DO NOT MODIFY THAT FILE. IF SOMETHING NEEDS TO BE CHANGE, PLEASE CONTACT*/
/* VINCENT GRECO OR CHRISTOPHE BEAUDET.*/
/*=========================================================================*/
#ifndef __OBJDLLB_HPP__
#define __OBJDLLB_HPP__
/****************************************/
#ifndef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
#endif
/****************************************/
#ifdef ACTIVE_EDITOR
#include "CPADLLb.hpp"
/* need these class*/
class CPA_MainWorld;
class CPA_World;
class EDT_Model;
/*##########################################################################*/
/* Definition of an object DLL*/
typedef struct tdstObjectDLLDef_
{
}
tdstObjectDLLDef;
class CPA_ObjectDLLBase;
class CPA_Object;
/*##########################################################################*/
/* object DLL Base Class*/
class CPA_EXPORT CPA_ObjectDLLBase : public CPA_DLLBase
{
protected:
tdstObjectDLLDef m_stObjectDLLDefinition;
public:
/* constructor*/
CPA_ObjectDLLBase() {};
~CPA_ObjectDLLBase() {};
/* get parameters*/
tdstObjectDLLDef *GetDefinition(void) { return &m_stObjectDLLDefinition; }
/* hierarchy*/
virtual CPA_SuperObject * GetNewEditorInstance (HIE_tdxHandleToSuperObject pEngineInstance) { return NULL; }
virtual void fn_vBuildNewEditorInstance (CPA_SuperObject *pEditorInstance, HIE_tdxHandleToSuperObject pEngineInstance) { }
virtual void fn_vUpdateEditorInstance (CPA_SuperObject *pEditorInstance, HIE_tdxHandleToSuperObject pEngineInstance) { }
virtual BOOL fn_bCanHandleThisType (long lEngineType) { return FALSE; }
/* models & instances*/
virtual void fn_vInitListByType (CPA_World *pWorld) { }
virtual void fn_vInitListsOfModels (void) { }
virtual void fn_vSaveListModels (CString csListName, CPA_List<EDT_Model> *pListModels) { }
virtual CString fn_csLoadListModels (void) { return ""; }
virtual EDT_Model * GetNewModel (CString csListName) { return NULL; }
virtual BOOL fn_bCanLoadNewModel (CString csListName) { return FALSE; }
virtual BOOL fn_bCanDeleteModel (CString csListName) { return FALSE; }
virtual BOOL fn_bCanChangeModelIcon (CString csListName) { return FALSE; }
virtual BOOL fn_bCanSaveListModels (CString csListName) { return FALSE; }
virtual BOOL fn_bCanLoadListModels (void) { return FALSE; }
virtual void fn_vOnLoadNewModel (CString csListName, EDT_Model *pNewModel) { }
virtual CString fn_csChangeModelIcon (CString csListName, CString csModelName) { return "";}
virtual CPA_SuperObject * GetNewInstance (CString csTypeName, CString csModelName, CPA_SuperObject *pParent) { return NULL; }
virtual tdeTypeSO GetTypeInstance (CString csTypeName, CString csModelName) { return C_NoType; }
/*ANNECY Shaitan EmptySectors 25/02/98*/
virtual tdeSaveStatus GetStatusInstance (CString csTypeName, CString csModelName) { return E_ss_NoStatus; }
/*ENDANNECY Shaitan EmptySectors*/
virtual CPA_SuperObject * GetParentForInsertion (CString csTypeName, CString csModelName, tdstPosition *p_stPosition) { return NULL; }
virtual BOOL fn_bChooseInsertPosition (CPA_SuperObject *pNewInstance, CPA_SuperObject *pParent, tdstPosition *p_stPosition) { return FALSE; }
/* objects*/
virtual CPA_BaseObject * GetNewObject (CString csObjectFile, CString csObjectName, FILE *p_fFile, CPA_MainWorld *p_oMainWorld) { return NULL; }
virtual CPA_BaseObject * Duplicate (CPA_BaseObject *pObject, CPA_SuperObject *pNewSuperObject) { return NULL; }
virtual CPA_SuperObject * GetCopyOfProtectedChild (CPA_SuperObject *pInitialChild, CPA_SuperObject *pNewOwner) { return NULL; }
/* permissions for EvtEditor*/
virtual BOOL fn_bAcceptAsParent (CPA_BaseObject *pChild, CPA_BaseObject *pParent) { return TRUE; }
virtual BOOL fn_bAcceptAsChild (CPA_BaseObject *pParent, CPA_BaseObject *pChild) { return TRUE; }
/* for bounding volumes*/
virtual void fn_vComputeBoundingVolume(CPA_BaseObject *pObject) {};
virtual ACP_tdxHandleOfObject fn_hGetBoundingVolume(CPA_BaseObject *_pObj) { return NULL; }
/* when insertion is canceled*/
virtual void fn_vOnCancelInsertion (CPA_SuperObject *pInstance);
/* Shaitan Scale {*/
/* to scale editor objects*/
virtual CPA_SuperObject * GetVisualSuperObject (CPA_SuperObject *pInstance) { return NULL; }
/*End Shaitan Scale }*/
};
#endif /* ACTIVE_EDITOR*/
#endif /* __OBJDLLB_HPP__*/