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

816 lines
24 KiB
C++

/*=========================================================================
*
* SECmodif.hpp : Definition of Editor Modifications
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifndef __SECT_MODIF_HPP__
#define __SECT_MODIF_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
//**************************************
#include "SECTint.hpp"
#define TYPE_SECTORLINKS 1
#define TYPE_SECTORPARAMS 2
//Shaitan Clean Env
/*
#define TYPE_ENVANDSRF 3
#define TYPE_MODIFENV 4
#define TYPE_MODIFSRF 5
#define TYPE_SRFPARAMS 6
#define TYPE_ENVPARAMS 7
#define TYPE_MECENV 8
#define TYPE_APPLY 9
*/
#define TYPE_SYMETRICLINKS 10
#define TYPE_SYMETRICSELECT 11
#define TYPE_VIRTUALSTATUS 12
#define TYPE_FULLLINK 13
//Shaitan Clean Env
//#define TYPE_REPLACE 14
#define TYPE_COPYLIST 15
typedef enum
{
// sector links
E_mt_AddSectorInList,
E_mt_DelSectorInList,
E_mt_AddFullLink,
E_mt_DelFullLink,
// sector params
E_mt_ChangeLevelOfDetail,
E_mt_ChangeGraphicMode,
E_mt_ChangeSoundVolume,
E_mt_AddSoundEvent,
E_mt_DelSoundEvent,
//Shaitan Clean Env
/*
// env and srf
E_mt_AddEnvAndSrf,
E_mt_DelEnvAndSrf,
E_mt_ChangeEnv,
E_mt_ChangeSrf,
// srf params
E_mt_ChangeSrfHeight,
// env params
E_mt_ChangeMecEnv,
E_mt_ChangeVisEnv,
E_mt_ChangeSndEnv,
// mec env
E_tm_ModifMecEnv,
// vis env
E_tm_ModifVisEnv,
// apply to sector
E_tm_ApplyToSectors,
*/
// symetric links
E_tm_SymetricLinks,
E_tm_SymetricSelect,
// virtual status
E_tm_VirtualStatus,
//Shaitan Clean Env
// replace env
// E_tm_Replace,
E_tm_CopyList,
// unknown
E_tm_Unknown
}
tdeSectModifType;
//#################################################################################
// SECTORS LINK
//#################################################################################
/*===========================================================================
* Description: save sector links
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class SECT_SaveSectorLinks : public CObject
{
public:
Sector_Object *m_pSector;
SECT_ElementBase *m_pNewElement;
SECT_ElementBase *m_pOldElement;
int m_iNewParam;
int m_iOldParam;
int m_iNewMode;
int m_iOldMode;
SECT_SaveSectorLinks (CPA_SuperObject *pSector, CPA_SuperObject *pModel, tdeTypeList eList);
~SECT_SaveSectorLinks ();
};
/*===========================================================================
* Description: Add or remove sector in sector links
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class SECT_ModifSectorLinks : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
SECT_ElementBase * m_aElements[C_NumberOfLists];
SECT_ElementBase * m_aSymElems[C_NumberOfLists];
CPA_SuperObject *m_pEditedSector;
CPA_SuperObject *m_pSectorToAdd;
tdeSectModifType m_eModifType;
tdeEditMode m_eCurrentEditMode;
BOOL m_bSymetric;
BOOL m_aHadSymElem[C_NumberOfLists];
BOOL m_bFirstTime;
BOOL m_bAdded;
BOOL m_bDone;
public:
// constructors
SECT_ModifSectorLinks (Sector_Interface *pInterface, tdeSectModifType eModifType,
CPA_SuperObject *pEditedSector, CPA_SuperObject *pSectorToAdd,
tdeTypeList eTypeList);
~SECT_ModifSectorLinks (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vInitSymetricLinks (void);
void fn_vUpdateSymetricLinks (BOOL bDo);
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
/*===========================================================================
* Description: save sector links
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class SECT_SaveFullLink : public CObject
{
public:
Sector_Object *m_pSector;
SECT_ElementBase *m_pElement;
tdeTypeList m_eListToUpdate;
SECT_SaveFullLink (Sector_Object *pSector, SECT_ElementBase *pElement, tdeTypeList eList);
~SECT_SaveFullLink ();
};
/*===========================================================================
* Description: Add or remove sector in sector links
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class SECT_ModifFullLink : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
CPA_SuperObject *m_pEditedSector;
tdeTypeList m_eListToUpdate;
tdeSectModifType m_eModifType;
BOOL m_bSymetric;
BOOL m_bFirstTime;
BOOL m_bAdded;
BOOL m_bDone;
CPA_List<SECT_ElementBase> m_oListOfSectors;
CPA_List<SECT_SaveFullLink> m_oListOfSymetrics;
public:
// constructors
SECT_ModifFullLink (Sector_Interface *pInterface, tdeSectModifType eModifType,
CPA_SuperObject *pEditedSector, tdeTypeList eTypeList);
~SECT_ModifFullLink (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vInitSymetricLinks (void);
void fn_vUpdateSymetricLinks (BOOL bDo);
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
/*===========================================================================
* Description: modify parameter in sector links
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class SECT_ModifSectorParams : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
SECT_ElementBase *m_pElementToUpdate;
CPA_SuperObject *m_pEditedSector, *m_pSelectedSector;
SECT_SoundEvent *m_pSoundEvent;
tdeSectModifType m_eModifType;
tdeTypeList m_eListToUpdate;
int m_iNewValue, m_iOldValue, m_iOldSymetric;
BOOL m_bSymetricLink;
BOOL m_bFirstTime;
BOOL m_bDone;
public:
// constructors
SECT_ModifSectorParams (Sector_Interface *pInterface, tdeSectModifType eModifType,
tdeTypeList eListToUpdate, SECT_ElementBase *pElem,
int iNewValue, SECT_SoundEvent *pSoundEvent);
~SECT_ModifSectorParams (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
//#################################################################################
// ENV AND SRF
//#################################################################################
/*===========================================================================
* Description: add or remove environment element
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
/*
class SECT_ModifEnvAndSrf : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
CPA_SuperObject *m_pEditedSector;
SECT_SurfElem *m_pNewSurfElem, *m_pOldSurfElem;
SECT_EnvElem *m_pNewEnvElem, *m_pOldEnvElem;
tdeSectModifType m_eModifType;
BOOL m_bFirstTime;
BOOL m_bDone;
public:
// constructors
SECT_ModifEnvAndSrf (Sector_Interface *pInterface, tdeSectModifType eModifType,
CPA_SuperObject *pEditedSector, long lNumEnvElem,
SECT_Environment *pNewEnv, SECT_Surface *pNewSurf);
~SECT_ModifEnvAndSrf (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
*/
/*===========================================================================
* Description: change environment element
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
/*
{
protected:
Sector_Interface *m_pSectorInterface;
SECT_Environment *m_pNewEnv, *m_pOldEnv;
CPA_SuperObject *m_pEditedSector;
SECT_EnvElem *m_pEnvElem;
tdeSectModifType m_eModifType;
BOOL m_bFirstTime;
BOOL m_bDone;
long m_lNumEnvElem;
public:
// constructors
SECT_ModifEnvElem (Sector_Interface *pInterface, tdeSectModifType eModifType,
SECT_EnvElem *pEnvElem, SECT_Environment *pNewEnv, long lNumEnvElem);
~SECT_ModifEnvElem (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
*/
/*===========================================================================
* Description: change surface element
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
/*
class SECT_ModifSurfElem : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
CPA_SuperObject *m_pEditedSector;
SECT_SurfElem *m_pSurfElem;
SECT_Surface *m_pNewSurf, *m_pOldSurf;
tdeSectModifType m_eModifType;
BOOL m_bFirstTime;
BOOL m_bDone;
long m_lOldNum, m_lNewNum;
public:
// constructors
SECT_ModifSurfElem (Sector_Interface *pInterface, tdeSectModifType eModifType,
SECT_SurfElem *pSurfElem, SECT_Surface *pNewSurf, long lNumEnvElem);
~SECT_ModifSurfElem (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
*/
//#################################################################################
// SURFACE
//#################################################################################
/*===========================================================================
* Description: modify surface parameters
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
/*
class SECT_ModifSrfParams : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
tdeSectModifType m_eModifType;
SECT_Surface *m_pSurface;
MTH_tdxReal m_xNewHeight, m_xOldHeight;
BOOL m_bFirstTime;
BOOL m_bDone;
public:
// constructors
SECT_ModifSrfParams (Sector_Interface *pInterface, tdeSectModifType eModifType,
SECT_Surface *pSurface, MTH_tdxReal xNewHeight);
~SECT_ModifSrfParams (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
*/
//#################################################################################
// ENVIRONMENT
//#################################################################################
/*===========================================================================
* Description: modify environment parameters
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
/*
class SECT_ModifEnvParams : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
SECT_Environment *m_pEnvironment;
SECT_MecEnvironment *m_pNewMecEnv, *m_pOldMecEnv;
SECT_VisEnvironment *m_pNewVisEnv, *m_pOldVisEnv;
SECT_SndEnvironment *m_pNewSndEnv, *m_pOldSndEnv;
tdeSectModifType m_eModifType;
BOOL m_bFirstTime;
BOOL m_bDone;
public:
// constructors
SECT_ModifEnvParams (Sector_Interface *pInterface, tdeSectModifType eModifType,
SECT_Environment *pEnvironment, SECT_MecEnvironment *pNewMecEnv,
SECT_VisEnvironment *pNewVisEnv, SECT_SndEnvironment *pNewSndEnv);
~SECT_ModifEnvParams (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
*/
/*===========================================================================
* Description: modify mechanic environment parameters
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
/*
class SECT_ModifMecEnvParams : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
SECT_MecEnvironment *m_pMecEnv;
tdeSectModifType m_eModifType;
BOOL m_bFirstTime;
BOOL m_bDone;
CString m_csNewName, m_csOldName;
MTH_tdxReal m_xNewGravity, m_xOldGravity;
DNM_tdstVector m_stNewVertical, m_stOldVertical;
MTH_tdxReal m_xNewViscosity, m_xOldViscosity;
MTH_tdxReal m_xNewDensity, m_xOldDensity;
MTH_tdxReal m_xNewLevel, m_xOldLevel;
DNM_tdstVector m_stNewStream, m_stOldStream;
CString m_csNewVolumic, m_csOldVolumic;
public:
// constructors
SECT_ModifMecEnvParams (Sector_Interface *pInterface, tdeSectModifType eModifType,
SECT_MecEnvironment *pMecEnv, CString csName,
MTH_tdxReal xGravity, DNM_tdstVector *pVertical,
MTH_tdxReal xViscosity, MTH_tdxReal xDensity,
MTH_tdxReal xLevel, DNM_tdstVector *pStream,
CString csVolumic);
~SECT_ModifMecEnvParams (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
*/
/*===========================================================================
* Description: modify visual environment parameters
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
/*
class SECT_ModifVisEnvParams : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
SECT_VisEnvironment *m_pVisEnv;
tdeSectModifType m_eModifType;
BOOL m_bFirstTime;
BOOL m_bDone;
CString m_csNewName, m_csOldName;
MTH_tdxReal m_xNewNear, m_xOldNear;
MTH_tdxReal m_xNewFar, m_xOldFar;
MTH_tdxReal m_xNewBlendNear, m_xOldBlendNear;
MTH_tdxReal m_xNewBlendFar, m_xOldBlendFar;
MTH_tdxReal m_xNewInfinite, m_xOldInfinite;
GLI_tdstColor m_stNewColor, m_stOldColor;
public:
// constructors
SECT_ModifVisEnvParams (Sector_Interface *pInterface, tdeSectModifType eModifType,
SECT_VisEnvironment *pVisEnv, CString csName,
MTH_tdxReal xNear, MTH_tdxReal xFar,
MTH_tdxReal xBlendNear, MTH_tdxReal xBlendFar,
MTH_tdxReal xInfinite, GLI_tdstColor *pColor);
~SECT_ModifVisEnvParams (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
*/
//#################################################################################
// APPLY
//#################################################################################
/*===========================================================================
* Description: save env lists
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
/*
class SECT_SaveEnvList : public CObject
{
public:
Sector_Object *m_pSector;
CPA_List<SECT_Surface> m_oListSrf;
CPA_List<SECT_Environment> m_oListEnv;
SECT_SaveEnvList (Sector_Object *pSector);
~SECT_SaveEnvList ();
};
*/
/*===========================================================================
* Description: apply envlist to sectors
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
/*
class SECT_ModifApplyToSectors : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
CPA_SuperObject *m_pModel;
CPA_List<SECT_Surface> m_oListSrf;
CPA_List<SECT_Environment> m_oListEnv;
CPA_List<SECT_SaveEnvList> m_oListSectors;
tdeSectModifType m_eModifType;
BOOL m_bFirstTime;
BOOL m_bDone;
public:
// constructors
SECT_ModifApplyToSectors (Sector_Interface *pInterface, tdeSectModifType eModifType,
CPA_SuperObject *pModel, CPA_List<CPA_SuperObject> *pListSectors);
~SECT_ModifApplyToSectors (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
*/
//#################################################################################
// SYMETRIC
//#################################################################################
/*===========================================================================
* Description: apply symetric links to sectors
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class SECT_ModifSymetricLinks : public CPA_Modif
{
protected:
CPA_List<SECT_SaveSectorLinks> m_oListSectors;
Sector_Interface *m_pSectorInterface;
tdeSectModifType m_eModifType;
CPA_SuperObject *m_pModel;
tdeTypeList m_eListToUpdate;
tdeEditMode m_eCurrentEditMode;
BOOL m_bFirstTime;
BOOL m_bDone;
public:
// constructors
SECT_ModifSymetricLinks (Sector_Interface *pInterface, tdeSectModifType eModifType,
CPA_SuperObject *pModel, tdeTypeList eList);
~SECT_ModifSymetricLinks (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
/*===========================================================================
* Description: apply symetric links to sectors
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class SECT_ModifSymetricSelect : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
CPA_SuperObject *m_pEditedSector;
CPA_SuperObject *m_pSelectedSector;
tdeSectModifType m_eModifType;
BOOL m_bFirstTime;
BOOL m_bDone;
SECT_SoundElement *m_pNewSoundElement;
SECT_GraphicElement *m_pNewGraphicElement;
SECT_ActivityElement *m_pNewActivityElement;
SECT_CollisionElement *m_pNewCollisionElement;
SECT_SoundEventElement *m_pNewSndEvtElement;
SECT_SoundEventElement *m_pOldSndEvtElement;
int m_iOldGraphic, m_iNewGraphic;
int m_iOldGMode, m_iNewGMode;
int m_iOldSound, m_iNewSound;
public:
// constructors
SECT_ModifSymetricSelect (Sector_Interface *pInterface, tdeSectModifType eModifType,
CPA_SuperObject *pEditedSector, CPA_SuperObject *pSelectedSector);
~SECT_ModifSymetricSelect (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
//#################################################################################
// VIRTUAL
//#################################################################################
/*===========================================================================
* Description: update virtual sector
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class SECT_ModifVirtualSector : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
CPA_SuperObject *m_pEditedSector;
CPA_SuperObject *m_pBorder;
tdeSectModifType m_eModifType;
BOOL m_bNewStatus;
BOOL m_bFirstTime;
BOOL m_bDone;
public:
//constructors
SECT_ModifVirtualSector (Sector_Interface *pInterface, tdeSectModifType eModifType,
CPA_SuperObject *pEditedSector, BOOL bNewState);
~SECT_ModifVirtualSector (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
//#################################################################################
// REPLACE
//#################################################################################
//#define C_lMaxEnvironments 20
/*===========================================================================
* Description: save initial sector
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
/*
class SECT_SaveInitEnv: public CObject
{
public:
Sector_Object *m_pSector;
long m_aNumEnv[C_lMaxEnvironments];
long m_lNbEnv;
SECT_SaveInitEnv (Sector_Object *pSector, SECT_Environment *pInitEnv);
~SECT_SaveInitEnv ();
};
*/
/*===========================================================================
* Description: apply envlist to sectors
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
/*
class SECT_ModifReplaceEnvironment : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
CPA_SuperObject *m_pEditedSector;
SECT_Environment *m_pInitEnv;
SECT_Environment *m_pNewEnv;
CPA_List<SECT_SaveInitEnv> m_oListSectors;
tdeSectModifType m_eModifType;
BOOL m_bFirstTime;
BOOL m_bDone;
public:
// constructors
SECT_ModifReplaceEnvironment (Sector_Interface *pInterface, tdeSectModifType eModifType,
SECT_Environment *pInitEnv, SECT_Environment *pNewEnv,
CPA_List<CPA_SuperObject> *pListSectors);
~SECT_ModifReplaceEnvironment (void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
*/
//#################################################################################
// COPY LIST
//#################################################################################
/*===========================================================================
* Description: apply envlist to sectors
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class SECT_ModifCopyList : public CPA_Modif
{
protected:
Sector_Interface *m_pSectorInterface;
CPA_SuperObject *m_pEditedSector;
tdeSectModifType m_eModifType;
tdeEditMode m_eCurrentEditMode;
BOOL m_bSymetric;
BOOL m_bFirstTime;
BOOL m_bDone;
CPA_List<SECT_ElementBase> m_aListOfElements[C_NumberOfLists];
CPA_List<SECT_ElementBase> m_aListOfSymElems[C_NumberOfLists];
public:
// constructors
SECT_ModifCopyList (Sector_Interface *pInterface, tdeSectModifType eModifType,
CPA_List<CPA_SuperObject> *pCopyOfSectorList, tdeTypeList eList);
~SECT_ModifCopyList(void);
// actions
BOOL Do (void);
BOOL Undo (void);
// functions
void fn_vReinitEditorState (void);
void fn_vUpdateEditorState (void);
};
#endif //__SECT_MODIF_HPP__