/*========================================================================= * * 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 m_oListOfSectors; CPA_List 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 m_oListSrf; CPA_List 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 m_oListSrf; CPA_List m_oListEnv; CPA_List 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 *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 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 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 *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 m_aListOfElements[C_NumberOfLists]; CPA_List m_aListOfSymElems[C_NumberOfLists]; public: // constructors SECT_ModifCopyList (Sector_Interface *pInterface, tdeSectModifType eModifType, CPA_List *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__