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

292 lines
9.0 KiB
C++

/*=========================================================================
*
* SECTenv.hpp : Definition of Environments
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
/*
#ifndef __SECT_ENV_HPP__
#define __SECT_ENV_HPP__
#include "incGLI.h"
#include "incSPO.h"
#include "incMEC.h"
#define ENV_FRIEND
#include "incENV.h"
#undef ENV_FRIEND
#define SCTFriend
#include "incSCT.h"
#undef SCTFriend
#include "incITF.h"
#include "incGAM.h"
#include "HDL.h"
#include "SECTelem.hpp"
#include "x:\cpa\Main\inc\_editid.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;
typedef enum
{
E_te_Environment,
E_te_Surface,
E_te_MecEnvironment,
E_te_VisEnvironment,
E_te_SndEnvironment,
E_te_NoType
}
tdeTypeElem;
typedef CPA_SaveObject SECT_SndEnvironment;
//#################################################################################
// MecEnvironment
//#################################################################################
class SECT_MecEnvironment : public CPA_SaveObject,
public CPA_EdMot<DNM_tdxHandleToMecEnvironment>
{
protected:
DNM_stMecEnvironment * GetMecStruct (void);
public:
SECT_MecEnvironment (Sector_Interface *p_oDLL,
DNM_tdxHandleToMecEnvironment hMecEnv, BOOL bAvailable,
CString csName, CString csFileName, BOOL bSectionExists);
SECT_MecEnvironment (Sector_Interface *p_oDLL, CString csName);
~SECT_MecEnvironment (void);
// return Data
long GetDataType (void) { return -1; }
void * GetData (void) { return GetStruct(); };
void * GetEngineStruct (void) { return GetStruct(); }
Sector_Interface * GetSectorInterface (void) { return (Sector_Interface *)GetEditor(); }
// default values
void fn_vSetDefaultValues (void);
// gravity parameters
DNM_tdxReal GetGravity (void);
DNM_tdstVector * GetVertical (void);
void SetGravity (MTH_tdxReal tdxNewGravity, BOOL bNotify = TRUE);
void SetVertical (DNM_tdstVector *tdstNewVertical, BOOL bNotify = TRUE);
// fluid
DNM_tdxReal GetFluidDensity (void);
DNM_tdxReal GetFluidViscosity (void);
DNM_tdxReal GetFluidLevel (void);
DNM_tdstVector * GetFluidStream (void);
void SetFluidDensity (MTH_tdxReal tdxNewFluidDensity, BOOL bNotify = TRUE);
void SetFluidViscosity (MTH_tdxReal tdxNewFluidViscosity, BOOL bNotify = TRUE);
void SetFluidLevel (MTH_tdxReal tdxNewFluidLevel, BOOL bNotify = TRUE);
void SetFluidStream (DNM_tdstVector *tdstNewFluidStream, BOOL bNotify = TRUE);
// volumic environment
CString GetVolumicEnvironment (void);
void SetVolumicEnvironment (CString, BOOL bNotify = TRUE);
// save
static void CallBackSaveMecEnvironment (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
};
//#################################################################################
// VisEnvironment
//#################################################################################
class SECT_VisEnvironment : public CPA_SaveObject,
public CPA_EdMot<ACP_tdxHandleToVisualEnvironment>
{
public:
SECT_VisEnvironment (Sector_Interface *p_oDLL,
ACP_tdxHandleToVisualEnvironment hVisEnv, BOOL bAvailable,
CString csName, CString csFileName, BOOL bSectionExists);
SECT_VisEnvironment (Sector_Interface *p_oDLL, CString csName);
~SECT_VisEnvironment (void);
// return Data
long GetDataType (void) { return -1; }
void * GetData (void) { return GetStruct(); };
void * GetEngineStruct (void) { return GetStruct(); }
Sector_Interface * GetSectorInterface (void) { return (Sector_Interface *)GetEditor(); }
// default values
void fn_vInitFog (void);
// global parameters
BOOL fn_bHasFog (void);
// Fog
MTH_tdxReal GetFogNear (void);
MTH_tdxReal GetFogFar (void);
MTH_tdxReal GetFogBlendNear (void);
MTH_tdxReal GetFogBlendFar (void);
MTH_tdxReal GetFogInfinite (void);
GLI_tdstColor * GetFogColor (void);
void SetFogNear (MTH_tdxReal xNewNear, BOOL bNotify = TRUE);
void SetFogFar (MTH_tdxReal xNewFar, BOOL bNotify = TRUE);
void SetFogBlendNear (MTH_tdxReal xNewBlendNear, BOOL bNotify = TRUE);
void SetFogBlendFar (MTH_tdxReal xNewBlendFar, BOOL bNotify = TRUE);
void SetFogInfinite (MTH_tdxReal xNewInfinite, BOOL bNotify = TRUE);
void SetFogColor (GLI_tdstColor *pNewColor, BOOL bNotify = TRUE);
// save
static void CallBackSaveVisEnvironment (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
};
//#################################################################################
// Environment
//#################################################################################
class SECT_Environment : public CPA_SaveObject,
public CPA_EdMot<ENV_tdxHandleToEnvironment>
{
protected:
SECT_MecEnvironment *m_pMecEnvironment;
SECT_VisEnvironment *m_pVisEnvironment;
SECT_SndEnvironment *m_pSndEnvironment;
public:
SECT_Environment (Sector_Interface *p_oDLL,
ENV_tdxHandleToEnvironment hEnvironment, BOOL bAvailable,
CString csName, CString csFileName);
SECT_Environment (Sector_Interface *p_oDLL,
SECT_MecEnvironment *pMecEnvironment,
SECT_VisEnvironment *pVisEnvironment,
SECT_SndEnvironment *pSndEnvironment,
CString csName);
~SECT_Environment (void);
// return Data
long GetDataType (void) { return -1; }
void * GetData (void) { return GetStruct(); };
void * GetEngineStruct (void) { return GetStruct(); }
Sector_Interface * GetSectorInterface (void) { return (Sector_Interface *)GetEditor(); }
// get functions
SECT_MecEnvironment * GetMecEnvironment (void) { return m_pMecEnvironment; }
SECT_VisEnvironment * GetVisEnvironment (void) { return m_pVisEnvironment; }
SECT_SndEnvironment * GetSndEnvironment (void) { return m_pSndEnvironment; }
// set functions
void SetMecEnvironment (SECT_MecEnvironment * pMecEnv, BOOL bNotifySave = TRUE);
void SetVisEnvironment (SECT_VisEnvironment * pVisEnv, BOOL bNotifySave = TRUE);
void SetSndEnvironment (SECT_SndEnvironment * pSndEnv, BOOL bNotifySave = TRUE);
void fn_vInitSndEnvironment (void);
CString GetSndEnvironmentReference (void);
// save
static void CallBackSaveEnvironment (SCR_tdst_File_Description *p_stFile, char *szSectionName, void *p_vData, SCR_tde_Ntfy_Action eAction);
};
//#################################################################################
// Environment (list element)
//#################################################################################
class SECT_EnvElem : public SECT_EnvElementBase,
public CPA_EdElement<SECT_EnvElem, SECT_tdxHandleOfElementLstEnvironment, LST2_M_StaticAnchorTo(SECT_tdxHandleOfElementLstEnvironment)*>
{
protected:
SECT_Environment *m_pEnvironment;
public:
SECT_EnvElem (SECT_tdxHandleOfElementLstEnvironment hEnvElem, Sector_Object *pOwnerSector);
SECT_EnvElem (SECT_Environment *pEnvironment, Sector_Object *pOwnerSector);
~SECT_EnvElem (void);
void *GetEngineStruct() { return GetStruct(); }
// environment
SECT_Environment * GetEnvironment (void) { return m_pEnvironment; }
void SetEnvironment (SECT_Environment *pEnvironment);
};
//#################################################################################
// Environment List
//#################################################################################
class SECT_EnvironmentList : public CPA_EdList<SECT_EnvElem, SECT_tdxHandleOfElementLstEnvironment, LST2_M_StaticAnchorTo(SECT_tdxHandleOfElementLstEnvironment)*>
{
protected:
Sector_Object *m_pOwnerSector;
public:
SECT_EnvironmentList (void) { };
~SECT_EnvironmentList (void) { };
void SetOwnerSector (Sector_Object *pOwnerSector) { m_pOwnerSector = pOwnerSector; }
BOOL fn_bAddAnElement (SECT_EnvElem *pNewElem, SECT_EnvElem *pPreviousElem, BOOL bUpdateEngine = TRUE);
void fn_vRemoveAnElement (SECT_EnvElem *pOldElem, BOOL bUpdateEngine = TRUE);
void fn_vRemoveAllElements (BOOL bUpdateEngine = TRUE);
SECT_EnvElem * GetElementWithEnvironment (SECT_Environment *pEnvironment);
};
//#################################################################################
// Environment ListBox
//#################################################################################
class SECT_EnvListBox : public CPA_SortedListBox
{
protected:
Sector_Interface *m_pSectorInterface;
tdeTypeElem m_eType;
CFormView *m_pDialog;
public:
SECT_EnvListBox (void);
~SECT_EnvListBox (void);
void fn_vInitParameters (CFormView *pDialog, Sector_Interface *pSectorInterface, tdeTypeElem eType);
void DrawItem (LPDRAWITEMSTRUCT lpDIS);
virtual BOOL fn_bIsCurrentElement (CPA_BaseObject *pElem);
virtual BOOL fn_bIsSelectedElement (CPA_BaseObject *pElem);
virtual BOOL fn_bIsAlreadyUsed (CPA_BaseObject *pElem);
};
#endif //__SECT_ENV_HPP__
*/