reman3/Rayman_X/cpa/tempgrp/OSC/Inc/SECTelem.hpp

115 lines
3.3 KiB
C++

/*=========================================================================
*
* SECTelem.hpp : Definition of Editor Elements
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifndef __SECT_ELEMB_HPP__
#define __SECT_ELEMB_HPP__
#include "incITF.h"
#include "incGAM.h"
//**************************************
#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
//**************************************
class Sector_Object;
class Sector_Interface;
#define C_szSectorsLinkSubSection "SectorsLink"
//Shaitan Clean Env
//#define C_szEnvAndSurfSubSection "ENVAndSRF"
//#################################################################################
// SECTORS LINK
//#################################################################################
/*===========================================================================
Element
===========================================================================*/
class SECT_ElementBase : public CPA_SectionObject
{
protected:
CPA_SuperObject *m_pSector;
Sector_Object *m_pOwnerSector;
public:
SECT_ElementBase (Sector_Object *pOwnerSector);
~SECT_ElementBase() {}
CPA_SuperObject * GetSector (void) { return m_pSector; }
Sector_Object * GetOwnerSector (void) { return m_pOwnerSector; }
// save
static void CallBackSaveSectorsLink (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
};
/*===========================================================================
List
===========================================================================*/
class SECT_ListBase
{
protected:
Sector_Object *m_pOwnerSector;
long m_lNbElements;
public:
SECT_ListBase (void);
~SECT_ListBase (void) { };
virtual BOOL fn_bAddAnElement (SECT_ElementBase *pNewElem, BOOL bUpdateEngine = TRUE);
virtual void fn_vRemoveAnElement (SECT_ElementBase *pOldElem, BOOL bUpdateEngine = TRUE);
virtual void fn_vRemoveAllElements (BOOL bUpdateEngine);
virtual SECT_ElementBase * GetHeadElementBase (POSITION& rPosition) { return NULL; }
virtual SECT_ElementBase * GetNextElementBase (POSITION& rPosition) { return NULL; }
void SetOwnerSector (Sector_Object *pOwnerSector) { m_pOwnerSector = pOwnerSector; }
long GetNbElements (void) { return m_lNbElements; }
SECT_ElementBase * GetElementWithSector (CPA_SuperObject *pSector);
};
//#################################################################################
// ENVIRONMENT AND SURFACE
//#################################################################################
/*===========================================================================
Element
===========================================================================*/
/*
class SECT_EnvElementBase : public CPA_SectionObject
{
protected:
Sector_Object *m_pOwnerSector;
public:
SECT_EnvElementBase (Sector_Object *pOwnerSector);
~SECT_EnvElementBase() {}
Sector_Object * GetOwnerSector (void) { return m_pOwnerSector; }
// save
static void CallBackSaveEnvAndSurf (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
};
*/
#endif //__SECT_ELEMB_HPP__