reman3/Rayman_X/cpa/tempgrp/OLG/inc/Inter.hpp

518 lines
23 KiB
C++

/*
///////////////////////////////////////////////////////////////////////////////////////////////////
// Description : Inter.hpp
//
// Interface DLL class.
// This class is implement the DLL class.
//
///////////////////////////////////////////////////////////////////////////////////////////////////
// inherit from CPA_ObjectDLLBase
//
///////////////////////////////////////////////////////////////////////////////////////////////////
// Creation date: 21 jan 1997 Author: J Thénoz
///////////////////////////////////////////////////////////////////////////////////////////////////
// Modification date: Author:
//
//
//
//
///////////////////////////////////////////////////////////////////////////////////////////////////
*/
#ifndef __WPINTERF_HPP__
#define __WPINTERF_HPP__
class Light;
class DiaLight;
class Geometry3D;
//-----------------------------------------------------------
// Definition of the types objects
//-----------------------------------------------------------
#define C_ucLightCursor 1974
//----------------------------------------------------------------------
// Definition of file extensions
#define c_Light_3DsMax_File_extension "lg2"
#define c_Light_File_extension "lgt"
//----------------------------------------------------------------------
class Light_ListBySector
{
private:
CPA_SuperObject *m_pSector;
CPA_BaseObjectList m_stList;
public:
Light_ListBySector(CPA_SuperObject *pSector);
~Light_ListBySector();
CPA_SuperObject * GetSector (void) { return m_pSector; }
CPA_BaseObjectList * GetList (void) { return &m_stList; }
void fn_vUpdateList (void);
};
//----------------------------------------------------------
// Object DLL interface class
//----------------------------------------------------------
class Light_Interface : public CPA_ObjectDLLBase
{
private :
static tdstKeyboardActionDef ms_a_stLightKeys[]; // keyboard mapping
//--- Flags
BOOL m_bModifInsertOk; // Force the acception of the AcceptModifInsert message
BOOL m_bRunEngine;
BOOL m_bStopDraw;
BOOL m_bGotoMouseMode; // The cursor show where the light is going to be orient
BOOL m_bMainDll; // This DLL is the active one when popup menu is called
BOOL m_bExistSaveFile; // The save file exist
BOOL m_bFirstBeforeEditor; // Before editor is first executed
BOOL m_bLoadLight; // create light in loading function
BOOL m_bSaveRLI; // RLI have change between previous save
BOOL m_bNotifyIPO; // Notify IPO when save
BOOL m_bSkipOnModifDelete; // Don't execute OnModifDelete call
BOOL m_bOrientLight; // We want to orient a light
BOOL m_bModifyAll; // All lights are modified
BOOL m_bDialogOnScreen; // is the dialog display on the screen ?
BOOL m_bClearStatus; // Status line must be cleaned
//ROMTEAM SelectMode (Ionut Grozea 25/02/98)
CString m_csLastSelectionType;
BOOL m_bSelectModeIsLight;
BOOL m_bPreviousLinkMode;
//ENDROMTEAM SelectMode (Ionut Grozea)
//ROMTEAM RealLights (Ionut Grozea 05/03/98)
BOOL m_bEditOnlyRealLights;
//ENDROMTEAM RealLights (Ionut Grozea)
//ROMTEAM color lights Ionut Grozea 10-08-1998
BOOL m_bIs2ColorMode;
//ROMTEAM color lights Ionut Grozea 10-08-1998
//--- General
Light* m_o_ModifRadiusLight; // We modify the radius of this light
CSplitFrame* m_p_oSplitFrameLight; // Main frame of the editor
CPA_DialogList* m_p_oDialogList; // dialog list
//--- popup
Light* m_poRClicLight; // we make a R button action on this light
Light* m_poLight; // Light that we edit
//--- CPA_List
CPA_List<Light> m_ListMovingLight; // light that move
CPA_List<Light> m_ListOfInvalideLight; // light that have an invalide matrix during loadings
CPA_List<CPA_SuperObject> m_ListDeleteLightBeforeEngine;
CPA_List<CPA_SuperObject> m_ListOfParentDeleteLightBeforeEngine;
CPA_List<CPA_SuperObject> m_oModifSectorList; // list of modified sector
CPA_List<Light> m_oErrorSectorLightList; // list of lights that can't be updated because over 50 lights/sectors
CPA_KeyActionConfiguration* m_poKeyboard;
CImageList m_oIconList;
//ROMTEAM RealLights (Ionut Grozea 05/03/98)
CPA_List<CPA_SuperObject> m_ListDeleteLight;
CPA_List<CPA_SuperObject> m_ListOfParentDeleteLight;
//ENDROMTEAM RealLights (Ionut Grozea)
// Shaitan
CPA_List<Light_ListBySector> m_stListBySector;
public:
Light_Interface(void);
~Light_Interface(void);
//ROMTEAM RealLights (Ionut Grozea 05/03/98)
void fn_vRefreshAllLights();
void fn_bSetRealLight(BOOL bFlag) {m_bEditOnlyRealLights = bFlag;}
BOOL fn_bGetRealLight() { return m_bEditOnlyRealLights ;}
void RefreshOnlyRealLights();
void fn_vSetCursor ( UINT i );
///ENDROMTEAM RealLights (Ionut Grozea)
//ROMTEAM color lights Ionut Grozea 10-08-1998
BOOL fn_bGetColorMode() {return m_bIs2ColorMode;}
void fn_SetColorMode(BOOL bValue) {m_bIs2ColorMode = bValue;}
//ROMTEAM color lights Ionut Grozea 10-08-1998
//ROMTEAM selection Ionut Grozea 14-08-1998
CPA_DialogList* fn_GetDialogList (void){return m_p_oDialogList;}
//ROMTEAM selection Ionut Grozea 14-08-1998
BOOL fn_bRunEngine (void) { return m_bRunEngine; }
CPA_BaseObjectList * fn_pGetListBySector (CPA_SuperObject *pSector);
void fn_vUpdateListsBySector();
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// Dll Base
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// BOOL fn_bPreTranslateMessage(MSG * /*p_stMsg*/);
void fn_vJustAfterRegistered(void);
void fn_vConstruct(void);
// void fn_vRefreshDatas(void);
// void fn_vLevelChanges (void);
void fn_vLevelHasChanged (void);
// Editor Modifs
void fn_vOnModifDelete (CPA_List<EDT_SaveParents> *pListObjects, tdeTypeModif eType, tdeStatus eStatus);
void fn_vOnModifParent (CPA_List<EDT_SaveParents> *pListObjects, tdeTypeModif eType, tdeStatus eStatus);
void fn_vOnModifCopy (CPA_List<EDT_SaveParents> *pListObjects, tdeTypeModif eType, tdeStatus eStatus);
// void fn_vOnModifName (CPA_SuperObject *pEdObj, CString csInitalName, CString csFinalName, tdeTypeModif eType, tdeStatus eStatus);
// void fn_vOnSelect (CPA_SuperObject *pEdObj, tdeTypeModif eType, tdeStatus eStatus);
void fn_vOnModifInsert (CPA_SuperObject *pEdObj, CPA_SuperObject *pParent,
tdstPosition *p_stPosition, tdeTypeModif eType, tdeStatus eStatus);
// Moves
void fn_vOnModifMove (CPA_List<EDT_SavePos> *pListObjects, CPA_List<EDT_SaveGlobalPos> *pListConcerned, tdeTypeModif eType, tdeStatus eStatus);
void fn_vOnBeginMove (CPA_List<CPA_SuperObject> *pListObjects, CPA_List<CPA_SuperObject> *pListConcerned, tdeStatus eStatus);
void fn_vOnMoving (CPA_List<CPA_SuperObject> *pListObjects, CPA_List<CPA_SuperObject> *pListConcerned, tdeStatus eStatus);
// permission
// BOOL fn_bAcceptModifDelete (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus);
// BOOL fn_bAcceptModifParent (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus);
// BOOL fn_bAcceptModifCopy (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus);
// BOOL fn_bAcceptModifTranslate (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus);
// BOOL fn_bAcceptModifRotate (CPA_List<CPA_SuperObject> *pListObjects, tdeStatus eStatus);
// BOOL fn_bAcceptModifInsert (CPA_SuperObject *pEdObj, CPA_SuperObject *pParent, tdeStatus eStatus);
BOOL fn_bAcceptModifScale (CPA_SuperObject *pEdObj, tdeStatus eStatus) { return FALSE; }
// BOOL fn_bAcceptModifName (CPA_SuperObject *pEdObj, tdeStatus eStatus);
// BOOL fn_bAcceptMultiSelect (void);
// to precise selection
tdeTypeAnswer fn_bAcceptSelect (CPA_SuperObject *pEdObj, ACP_tdxIndex xIndex, HIE_tdstPickInfo *pPicking, tdeStatus eStatus);
// orient
BOOL fn_bAcceptOrientInstance (CPA_SuperObject *pEdObj);
BOOL fn_bOnClickOrientPosition (CPA_SuperObject *pEdObj, tdstPosition *pOrientPosition);
BOOL fn_bOnOrientingObject (CPA_SuperObject *pEdObj, tdstPosition *pOrientPosition);
BOOL fn_bOnEndOrientObject (CPA_SuperObject *pEdObj, tdstPosition *pOrientPosition);
/*===========================================================================
Dialog List
=========================================================================*/
// BOOL fn_bSetCustomTest (CPA_DialogList *pDialog);
// BOOL fn_bCustomTestFunction (CString csCurrentType, CString csTestName, CPA_BaseObject *pEdObj);
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// Editor Base
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// focus
// void fn_vHasLostFocus (void);
// BOOL fn_bHasGainedFocus (void);
// engine - editor
void fn_vBeforeEngine (void);
void fn_vBeforeEditor (void);
// engine
// BOOL fn_bAcceptToRunEngine (void);
// BOOL fn_bAcceptToRunTimerEngine (void);
// end appli
// void fn_vJustBeforeClosing (void);
// BOOL fn_bAcceptToExit (void);
// save
// BOOL fn_bAcceptToSave (void);
void fn_vBeforeSaveAll (void);
void fn_vAfterSaveAll (void);
// keys
//CPA2 Corneliu Babiuc 21-05-98
BOOL _OnKeyDown (UINT nChar, UINT nRepCnt, UINT nFlags);
//END CPA2 Corneliu Babiuc 21-05-98
BOOL _OnKeyUp (UINT nChar, UINT nRepCnt, UINT nFlags);
// mouse
// BOOL _OnMouseMove (UINT nFlags, tdstMousePos *p_stPos, MTH3D_tdstVector *p_stVect);
// BOOL _OnLButtonDblClk (UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo);
// BOOL _OnRButtonDblClk (UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo);
BOOL _OnLButtonDown (UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo);
BOOL _OnRButtonDown (UINT nFlags, tdstMousePos *p_stPos, ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stPickInfo);
BOOL _OnLButtonUp (UINT nFlags, tdstMousePos *p_stPos);
// BOOL _OnRButtonUp (UINT nFlags, tdstMousePos *p_stPos);
// command
// BOOL _OnCommand (UINT IDCmdMsg);
// BOOL _OnUpdateCommandUI (UINT uiID, CCmdUI *pCmdUI);
// dragdrop
// BOOL _OnDragDropEnd (WPARAM wParam, LPARAM lParam);
// BOOL _OnDragDropMove (WPARAM wParam, LPARAM lParam);
// BOOL _OnDragDropLooseFocus (WPARAM wParam, LPARAM lParam);
// BOOL _OnDragDropGainFocus (WPARAM wParam, LPARAM lParam);
// add objects to draw
// void fn_vAddObjectsToDraw (GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2);
// void fn_vAddObjectsToDraw2 (GLD_tdstViewportAttributes *p1, GLI_tdxHandleToLight p2);
/*===========================================================================
Reinit
=========================================================================*/
// void fn_vOnChangeDevice (void);
// void fn_vOnChangeWorld (void);
// void fn_vOnChangeRoot (void);
/*===========================================================================
Models
=========================================================================*/
// BOOL fn_bCanDeleteThisModel (CString csListName, CString csModelType, CString csModelName);
// void fn_vOnAddModelToList (CPA_ObjectDLLBase *pOwnerDLL, CString csListName, CString csModelName, tdeTypeModif eType);
/*===========================================================================
for Dialog List
=========================================================================*/
CPA_BaseObject * GetDialogSelection (CPA_DialogList *pDialog, CString csTypeName, tdeListDrawMode eDrawMode);
void GetListsForDialog (CPA_DialogList *pDialog);
BOOL fn_bOnSelChangeHierarchyTree (CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pSelectedObject, CPA_BaseObject *pSelectedParent);
BOOL fn_bOnDblClkHierarchyTree (CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pSelectedObject, CPA_BaseObject *pSelectedParent);
BOOL fn_bOnSelChangeListObjects (CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pSelectedObject, BOOL bUnselect);
BOOL fn_bOnDblClkListObjects (CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pSelectedObject);
// BOOL fn_bCanDragItemInHierarchyTree (CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pObjectToDrag);
// BOOL fn_bCanDropItemInHierarchyTree (CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pObjectToDrop, CPA_BaseObject *pTarget);
// BOOL fn_bOnDragDropInHierarchyTree (CPA_DialogList *pDialog, CString csTypeName, CPA_BaseObject *pObject, CPA_BaseObject *pTarget);
// BOOL fn_bOnSelChangeComboList (CPA_DialogList *pDialog, CString csTypeName);
// BOOL fn_bOnButtonTest (CPA_DialogList *pDialog, CString csTypeName, tdeListDrawMode eDraw);
BOOL fn_bOnKeyDownInDialog (CPA_DialogList *pDialog, CString csTypeName, tdeListDrawMode eDraw,
CPA_BaseObject *pSelectedObject, UINT nChar, UINT nRepCnt, UINT nFlags);
// BOOL fn_bOnKeyUpInDialog (CPA_DialogList *pDialog, CString csTypeName, tdeListDrawMode eDraw,
// CPA_BaseObject *pSelectedObject, UINT nChar, UINT nRepCnt, UINT nFlags);
// void fn_vInitDefaultParameters (CPA_DialogList *pDialog);
// void fn_vSetANewTest (CPA_DialogList *pDialog, CString csCurrentList);
BOOL fn_bTestFunction (CString csCurrentType, CString csTestName, CPA_BaseObject *pEdObj);
// CString GetInfoForListItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject);
// int GetIconForListItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject);
int GetStateForListItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject);
// CPA_BaseObject * GetTreeNodeFirstChild (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pParent);
// CPA_BaseObject * GetTreeNodeNextChild (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pParent, CPA_BaseObject *pCurrentChild);
// int GetIconForTreeItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject);
// int GetStateForTreeItem (CPA_DialogList *pDialog, CString csListName, CPA_BaseObject *pObject);
/*===========================================================================
Current Editor
=========================================================================*/
tdePermission fn_eAcceptNewEditor (CPA_EditorBase *pNewEditor);
// BOOL fn_bCanActivateEditor (CPA_List<CPA_BaseObject> *pParams);
void fn_vOnActivateEditor (CPA_List<CPA_BaseObject> *pParams, BOOL bBackActivated=FALSE);
// BOOL fn_bCanCloseEditor (void);
void fn_vOnCloseEditor (void);
// void fn_vBackActiveMe (void *pMyData);
// void fn_vEraseWalkDataStructure (void *pMyData);
/*===========================================================================
Dialog Bar - Mircea Dunka 31 Aug. 1998
=========================================================================*/
void fn_vDefineDlgBarBtnIcon (tde_DlgBarCategory wCategory, tds_DlgBarBtn *_pDlgBarBtn);
/*===========================================================================
SubMenus and PopupMenu
=========================================================================*/
BOOL fn_bDefineSubMenu (EDT_SubMenu *_p_oEDTSubMenu);
void _OnSubMenuCommand (EDT_SubMenu *_p_oEDTSubMenu,UINT uiMsgID);
BOOL fn_bDefinePopupMenu (EDT_PopUpMenu *pPopup, CPA_List<CPA_SuperObject> *pSelection, BOOL bAsCurrentEditor);
void _OnPopUpMenuCommand (UINT m_IDCmdMsg);
/*===========================================================================
Coherence
=========================================================================*/
// BOOL fn_bOnInvalidateLink (CPA_BaseObject *pOwner, CPA_BaseObject *pReferencedObject, BOOL bDestroyed);
// void fn_vOnRestoreLink (CPA_BaseObject *pOwner, CPA_BaseObject *pReferencedObject);
// void fn_vOnModifyChild (CPA_BaseObject *pOwner, CPA_BaseObject *pReferencedObject, unsigned long _ulData);
/*===========================================================================
Draw Flag
=========================================================================*/
// void fn_vOnModifDrawFlag (CPA_SuperObject *pSuperObject);
/*===========================================================================
General Purpose
=========================================================================*/
long OnQueryAction (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM);
// long OnQueryInfos (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM);
// long OnQueryOpen (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM);
// long OnQueryClose (CPA_EditorBase * /*p_oSender*/, WPARAM, LPARAM);
/*===========================================================================
Reachable Objects
=========================================================================*/
// BOOL fn_bLoadBaseObject (CPA_BaseObject *p_oObject);
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// Object DllBase
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
// hierarchy
// CPA_SuperObject * GetNewEditorInstance (HIE_tdxHandleToSuperObject pEngineInstance);
void fn_vBuildNewEditorInstance (CPA_SuperObject *pEditorInstance, HIE_tdxHandleToSuperObject pEngineInstance);
// void fn_vUpdateEditorInstance (CPA_SuperObject *pEditorInstance, HIE_tdxHandleToSuperObject pEngineInstance);
// BOOL fn_bCanHandleThisType (long lEngineType);
// models & instances
void fn_vInitListByType (CPA_World *pWorld);
void fn_vInitListsOfModels (void);
// void fn_vSaveListModels (CString csListName, CPA_List<EDT_Model> *pListModels);
// CString fn_csLoadListModels (void);
// EDT_Model * GetNewModel (CString csListName);
// BOOL fn_bCanLoadNewModel (CString csListName);
// BOOL fn_bCanDeleteModel (CString csListName);
// BOOL fn_bCanSaveListModels (CString csListName);
// BOOL fn_bCanLoadListModels (void);
// void fn_vOnLoadNewModel (CString csListName, EDT_Model *pNewModel);
CPA_SuperObject * GetNewInstance (CString csTypeName, CString csModelName, CPA_SuperObject *pParent);
tdeTypeSO GetTypeInstance (CString csTypeName, CString csModelName);
//ANNECY Shaitan EmptySectors 25/02/98
tdeSaveStatus GetStatusInstance (CString csTypeName, CString csModelName);
//ENDANNECY Shaitan EmptySectors
CPA_SuperObject * GetParentForInsertion (CString csTypeName, CString csModelName, tdstPosition *p_stPosition);
// BOOL fn_bChooseInsertPosition (CPA_SuperObject *pNewInstance, CPA_SuperObject *pParent, tdstPosition *p_stPosition);
// objects
CPA_BaseObject * GetNewObject (CString csObjectFile, CString csObjectName, FILE *p_fFile, CPA_MainWorld *p_oMainWorld);
CPA_BaseObject * Duplicate (CPA_BaseObject *pObject, CPA_SuperObject *pNewSuperObject);
CPA_SuperObject * GetCopyOfProtectedChild (CPA_SuperObject *pInitialChild, CPA_SuperObject *pNewOwner);
// permissions for EvtEditor
// BOOL fn_bAcceptAsParent (CPA_BaseObject *pChild, CPA_BaseObject *pParent);
// BOOL fn_bAcceptAsChild (CPA_BaseObject *pParent, CPA_BaseObject *pChild);
// for bounding volumes
// void fn_vComputeBoundingVolume(CPA_BaseObject *pObject);
ACP_tdxHandleOfObject fn_hGetBoundingVolume(CPA_BaseObject *_pObj);
// when insertion is canceled
// void fn_vOnCancelInsertion (CPA_SuperObject *pInstance);
// Shaitan Scale {
// to scale editor objects
CPA_SuperObject * GetVisualSuperObject (CPA_SuperObject *pInstance);
//End Shaitan Scale }
BOOL fn_bIsExistFile (void) { return m_bExistSaveFile; }
void fn_vSetExistFile (BOOL bExistSaveFile) { m_bExistSaveFile=bExistSaveFile; }
// Redefinition
EDT_Model * fn_pstLoadNewDescriptor (void);
//----------------------------------------------------------- Loading
void fn_vLoadStaticLight (void);
CPA_SuperObject* fn_pCreateNewLightFromEngineHandle ( GLI_tdxHandleToLight hStaticLight );
//-------------------------------------------------------- save preferences
void fn_vSaveDialogsPreferences (void);
//----------------------------------------------------------- Edition
void fn_vEdit (Light* poLight,BOOL bSelectInList=TRUE);
void fn_vSetRLIDrawMask (BOOL bOnlyRLI );
//---------------------------------------------------------- Sector
void fn_vAddModifSectorList ( CPA_List<CPA_SuperObject>* poList ) { m_oModifSectorList.AddTail(poList); }
//--------------------------------------------------- status line
void fn_vSetClearStatus (BOOL bClearStatus) { m_bClearStatus = bClearStatus; }
void fn_vClearStatus (void);
//--------------------------------------------------- other functions
void fn_vComputeAbsoluteMatrix (CPA_SuperObject* psoWP);
void fn_vComputeNewRelativeMatrix (HIE_tdxHandleToSuperObject _hSprObj);
void fn_vComputeInsertMatrix (CPA_SuperObject* poInsertSuperObject, CPA_SuperObject* poFatherSuperObject );
//--------------------------------------- Get new graphical instances
CPA_SuperObject* fn_pGetNewSpotGraphicObject (GLI_tdstLight_ *p_stLight = NULL);
CPA_SuperObject* fn_pGetNewSphericalGraphicObject (GLI_tdstLight_ *p_stLight = NULL);
CPA_SuperObject* fn_pGetNewParallelGraphicObject (GLI_tdstLight_ *p_stLight = NULL);
CPA_SuperObject* fn_pGetNewAmbientGraphicObject (GLI_tdstLight_ *p_stLight = NULL);
CPA_SuperObject* fn_pGetNewFogGraphicObject (GLI_tdstLight_ *p_stLight = NULL);
CPA_SuperObject* fn_pGetNewConeGraphicObject (void);
CPA_SuperObject* fn_pGetNewSphereGraphicObject (void);
CPA_SuperObject* fn_pGetNewCursorGraphicObject (GLI_tdstLight_ *p_stLight = NULL);
//CHINA WFQ (MT) 16-02-98 {
CPA_SuperObject* fn_pGetNewParallelBoxGraphicObject (void);
CPA_SuperObject* fn_pGetNewBoxGraphicObject (void);
//ENDCHINA WFQ }
//ROMTEAM Z_Light Ionut Grozea 01-05-1998
CPA_SuperObject* fn_pGetNewZGraphicObject (void);
//ENDROMTEAM Z_Light Ionut Grozea 01-05-1998
inline void fn_vRefreshHierarchyList (void);
//------------------------------------ Edition
void fn_vRefreshLight (Light* poLight=NULL, BOOL bDelete=FALSE, BOOL bDraw=TRUE );
void fn_vRefreshGameLight (void);
void fn_vRefreshGameLight (Light* poLight, BOOL bDelete=FALSE, BOOL bSaveRLI=TRUE);
void fn_vMakeLightArray ( long* lNbLight, GLI_tdxHandleToLight* d_hLight );
void fn_vSwitchOnLight ( Light* poLight, BOOL bOn );
//-------------------------- RLI
void fn_vComputeRLI (BOOL bSave=TRUE);
CString fn_csGetSaveFileName (void); // return current file name
void fn_vGiveProgressInfo(CString csMessage, signed char cPercentage, BOOL _bNoHighlight = TRUE );
protected :
void fn_vPick ( ACP_tdxIndex* pxNbPicked, HIE_aDEF_stTabOfPickInfo& ra_stPickInfo, tdstMousePos *p_stPos);
CPA_SuperObject* fn_pExplorePicking (ACP_tdxIndex xIndex, HIE_tdstPickInfo *p_stObject, long lTypeObject, ACP_tdxIndex* pxFindIndex=NULL );
void fn_vInitListOfLightSectionSector (void);
void fn_vDeleteInvalideLight (void);
void fn_vCreate3DSMaxLights (void);
// extract a reachable object from the list
CPA_BaseObject* fn_pSelectLightParam ( CPA_List<CPA_BaseObject> *pParams );
unsigned short fn_iKeyAction ( UINT cKey ) { return m_poKeyboard->mfn_uwKeyToAction(cKey); }
void fn_vExistSaveFile (void);
BOOL fn_bIs3DsMaxLight (void);
void fn_vUpDateAllLight (void);
void fn_vSaveRLIModifyIPO (void);
public:
//ROMTEAM color lights Ionut Grozea 10-08-1998
void fn_vInitGameMaterial ( Geometry3D* poGeomObject, ACP_tdxHandleOfElement hElement, float fR, float fG, float fB );
//ENDROMTEAM color lights Ionut Grozea 10-08-1998
};
extern tdstDLLIdentity g_stLightIdentity;
#endif // __WPINTERF_HPP__