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

150 lines
4.2 KiB
C++

/*=========================================================================
*
* CPASpec.hpp
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __CPASPEC_HPP__
#define __CPASPEC_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
/****************************************/
#include "CPAEnum.hpp"
#include "CPAdStat.hpp"
class DEV_ViewPort3D;
/* display*/
typedef enum tdeDisplayMode_
{
E_dm_DrawWorld,
E_dm_DrawCollisionMap,
E_dm_DrawVisibleSectors,
E_dm_DrawOnlyCurrentSector
}
tdeDisplayMode;
class CPA_Interface;
class CPA_SuperObject;
/*===========================================================================
* Description: Class EDT_Specific
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
*
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT CPA_SpecificInterface
{
protected:
CPA_Interface * m_pInterface;
tdeDisplayMode m_eDisplayMode;
BOOL m_bDisplayFog;
CPA_SuperObject * m_pCurrentSector;
CComboBox * m_pComboSector;
tdeUserStatus m_eUserStatus;
CPA_DialogStatus m_oDialogStatus;
CPA_List<CPA_SuperObject> m_stListOfSurfaces;
public:
CPA_SpecificInterface (void);
~CPA_SpecificInterface (void);
/* inits*/
void fn_vSpecificInit (void);
void fn_vSpecificUpdate (BOOL bReinitDisplayMode = FALSE);
/* parameters*/
CPA_Interface * GetInterface (void) { return m_pInterface; }
void SetInterface (CPA_Interface *pInterface) { m_pInterface = pInterface; }
CPA_SuperObject * GetCurrentSector (void) { return m_pCurrentSector; }
void SetCurrentSector (CPA_SuperObject *pNewSector);
/* hierarchy*/
CPA_SuperObject * GetDynamicRoot (void);
CPA_SuperObject * GetStaticRoot (void);
BOOL fn_bHasValidWorld (BOOL bCheckRoot = TRUE);
/* display mode*/
tdeDisplayMode GetDisplayMode (void) { return m_eDisplayMode; }
void SetDisplayMode (tdeDisplayMode eMode);
void fn_vOnChangeDisplayMode (tdeDisplayMode eMode);
/* fog*/
void fn_vChangeDisplayFog (BOOL bDisplay);
/* current sector*/
void fn_vOnChangeCurrentSector (void);
void fn_vInitCurrentSector (void);
CPA_SuperObject * GetSuperObjectCurrentSector (CPA_SuperObject *pEdObj);
CPA_SuperObject * GetCurrentSectorFromPos (MTH3D_tdstVector * p_stAbsolutePosition);
/* display world*/
void fn_vDisplayWorld (DEV_ViewPort3D *pViewport, GLD_tdxHandleToViewportAttributes hVpt,
GLI_tdxHandleToLight hLight, CPA_SuperObject *pRoot);
void fn_vInitLightsInViewport (DEV_ViewPort3D *pViewport, GLD_tdxHandleToViewportAttributes hVpt,
GLI_tdxHandleToLight hLight, HIE_tdxHandleToSuperObject hSector,
BOOL bUseStaticLights = TRUE);
/* parent*/
/*ANNECY Shaitan EmptySectors (25/02/98)*/
/* CPA_SuperObject * GetDefaultParentFromPos (tdstPosition *p_stPosition, tdeTypeSO eTypeInsert);*/
CPA_SuperObject * GetDefaultParentFromPos (tdstPosition *p_stPosition, tdeTypeSO eTypeInsert, tdeSaveStatus eStatus);
/*ENDANNECY Shaitan EmptySectors*/
/* user mode*/
CPA_DialogStatus * GetDialogStatus (void) { return &m_oDialogStatus; }
tdeUserStatus GetUserStatus (void) { return m_eUserStatus; }
void SetUserStatus (tdeUserStatus eStatus) { m_eUserStatus = eStatus; }
void fn_vInitUserStatus (void);
void fn_vSaveUserStatus (tdeUserStatus eStatus);
void fn_vSetFrameTitle (void);
/* surfaces*/
BOOL fn_bIsSurfaceInList (CPA_SuperObject *pSurface);
void fn_vAddSurfaceInList (CPA_SuperObject *pSurface);
void fn_vReinitSurfaceList (void);
void fn_vUpdateSurfaces (BOOL bDrawSurfaces);
protected:
/* visible sectors (display mode)*/
BOOL fn_bIsSectorVisible (CPA_SuperObject *pSector);
/* current sector (display mode)*/
CPA_SuperObject * GetDefaultCurrentSector (void);
};
#endif /* __CPASPEC_HPP__*/
#endif /* ACTIVE_EDITOR*/