mirror of
https://port.numenaute.org/aleajactaest/khanat-opennel-code.git
synced 2024-11-25 00:26:17 +00:00
232 lines
7.8 KiB
C++
232 lines
7.8 KiB
C++
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
|
// Copyright (C) 2010 Winch Gate Property Limited
|
|
//
|
|
// This program is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU Affero General Public License as
|
|
// published by the Free Software Foundation, either version 3 of the
|
|
// License, or (at your option) any later version.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU Affero General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Affero General Public License
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
#if !defined(AFX_MAIN_FRAME_H__90D61263_7782_11D5_9CD4_0050DAC3A412__INCLUDED_)
|
|
#define AFX_MAIN_FRAME_H__90D61263_7782_11D5_9CD4_0050DAC3A412__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
// main_frame.h : header file
|
|
//
|
|
|
|
class CSceneDlgMouseListener : public NLMISC::IEventListener
|
|
{
|
|
public:
|
|
class CObjectViewer *ObjViewerDlg ;
|
|
class CMainFrame *SceneDlg ;
|
|
/**
|
|
* Register the listener to the server.
|
|
*/
|
|
void addToServer (NLMISC::CEventServer& server);
|
|
void releaseFromServer (NLMISC::CEventServer& server);
|
|
|
|
protected:
|
|
virtual void operator ()(const class NLMISC::CEvent& event) ;
|
|
|
|
} ;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CMainFrame frame
|
|
|
|
typedef void (*winProc)(NL3D::IDriver *drv, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
|
|
|
|
class CMainFrame : public CFrameWnd
|
|
{
|
|
//DECLARE_DYNCREATE(CMainFrame)
|
|
public:
|
|
CMainFrame( CObjectViewer *objView, winProc );
|
|
virtual ~CMainFrame();
|
|
|
|
// Attributes
|
|
public:
|
|
|
|
enum TMouseMove {MoveCamera=0, MoveSceneRoot, MoveElement, MoveObjectLightTest, MoveFX, MoveFXUserMatrix };
|
|
enum TCameraMode {FirstMode=0, ObjectMode, CameraMode };
|
|
|
|
CStatusBar StatusBar;
|
|
CToolBar ToolBar;
|
|
|
|
winProc DriverWindowProc;
|
|
CObjectViewer *ObjView;
|
|
|
|
bool ShowInfo;
|
|
bool AnimationWindow;
|
|
bool AnimationSetWindow;
|
|
bool MixerSlotsWindow;
|
|
bool ParticlesWindow;
|
|
bool DayNightWindow;
|
|
bool WaterPoolWindow;
|
|
bool VegetableWindow;
|
|
bool GlobalWindWindow;
|
|
bool SoundAnimWindow;
|
|
bool LightGroupWindow;
|
|
bool ChooseFrameDelayWindow;
|
|
bool ChooseBGColorWindow;
|
|
bool ChooseSunColorWindow;
|
|
bool SkeletonScaleWindow;
|
|
bool TuneMRMWindow;
|
|
TMouseMove MouseMoveType;
|
|
bool X;
|
|
bool Y;
|
|
bool Z;
|
|
uint MoveMode;
|
|
float MoveSpeed;
|
|
NLMISC::CRGBA BgColor;
|
|
bool Euler;
|
|
float GlobalWindPower;
|
|
bool FogActive;
|
|
float FogStart;
|
|
float FogEnd;
|
|
|
|
void update ();
|
|
void registerValue (bool update=true);
|
|
|
|
bool isMoveCamera() const {return MouseMoveType==MoveCamera;}
|
|
bool isMoveSceneRoot() const {return MouseMoveType==MoveSceneRoot;}
|
|
bool isMoveElement() const {return MouseMoveType==MoveElement;}
|
|
bool isMoveFX() const {return MouseMoveType==MoveFX;}
|
|
bool isMoveFXUserMatrix() const {return MouseMoveType==MoveFXUserMatrix;}
|
|
bool isMoveObjectLightTest() const {return MouseMoveType==MoveObjectLightTest;}
|
|
|
|
// Operations
|
|
public:
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(CMainFrame)
|
|
protected:
|
|
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
protected:
|
|
public:
|
|
// Generated message map functions
|
|
//{{AFX_MSG(CMainFrame)
|
|
afx_msg void OnReloadTextures();
|
|
afx_msg void OnClear();
|
|
afx_msg void OnEditMoveelement();
|
|
afx_msg void OnEditMoveFX();
|
|
afx_msg void OnEditMoveFXUserMatrix();
|
|
afx_msg void OnEditX();
|
|
afx_msg void OnEditY();
|
|
afx_msg void OnEditZ();
|
|
afx_msg void OnEnableElementXrotate();
|
|
afx_msg void OnEnableElementYrotate();
|
|
afx_msg void OnEnableElementZrotate();
|
|
afx_msg void OnFileExit();
|
|
afx_msg void OnFileLoadconfig();
|
|
afx_msg void OnFileOpen();
|
|
afx_msg void OnFileSaveconfig();
|
|
afx_msg void OnViewFirstpersonmode();
|
|
afx_msg void OnViewCamera();
|
|
afx_msg void OnViewObjectmode();
|
|
afx_msg void OnResetCamera();
|
|
afx_msg void OnViewSetbackground();
|
|
afx_msg void OnViewSetmovespeed();
|
|
afx_msg void OnActivateFog();
|
|
afx_msg void OnSetupFog();
|
|
afx_msg void OnWindowAnimation();
|
|
afx_msg void OnWindowAnimationset();
|
|
afx_msg void OnWindowMixersslots();
|
|
afx_msg void OnWindowParticles();
|
|
afx_msg void OnWindowDayNight();
|
|
afx_msg void OnWindowWaterPool();
|
|
afx_msg void OnWindowSoundAnim();
|
|
afx_msg void OnWindowChooseFrameDelay();
|
|
afx_msg void OnWindowChooseBGColor();
|
|
afx_msg void OnWindowChooseSunColor();
|
|
afx_msg void OnSetLightGroupFactor();
|
|
afx_msg void OnShowSceneMatrix();
|
|
afx_msg void OnShowOcclusionTestMeshs();
|
|
afx_msg void OnShowFXMatrix();
|
|
afx_msg void OnShowFXUserMatrix();
|
|
afx_msg void OnUpdateShowSceneMatrix(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateShowFXMatrix(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateShowFXUserMatrix(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateShowOcclusionTestMeshs(CCmdUI* pCmdUI);
|
|
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
|
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
|
afx_msg void OnUpdateWindowAnimation(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateWindowAnimationset(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateWindowMixersslots(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateWindowParticles(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateWindowDayNight(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateWindowWaterPool(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateWindowSoundAnim(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateWindowChooseFrameDelay(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateWindowBGColor(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateWindowSunColor(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateViewObjectmode(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateViewFirstpersonmode(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateViewCamera(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateEditX(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateEditY(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateEditZ(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateEditMoveelement(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateEditMoveFX(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateEditMoveFXUserMatrix(CCmdUI* pCmdUI);
|
|
afx_msg void OnUpdateWindowLightGroup(CCmdUI* pCmdUI);
|
|
afx_msg void OnHelpAboutobjectviewer();
|
|
afx_msg void OnRemoveAllInstancesFromScene();
|
|
afx_msg void OnActivateTextureSet(UINT nID);
|
|
afx_msg void OnShuffleTextureSet();
|
|
afx_msg void OnWindowVegetable();
|
|
afx_msg void OnUpdateWindowVegetable(CCmdUI* pCmdUI);
|
|
afx_msg void OnWindowGlobalwind();
|
|
afx_msg void OnUpdateWindowGlobalwind(CCmdUI* pCmdUI);
|
|
afx_msg void OnEditMoveObjectLightTest();
|
|
afx_msg void OnUpdateEditMoveObjectLightTest(CCmdUI* pCmdUI);
|
|
afx_msg void OnEditMovecamera();
|
|
afx_msg void OnUpdateEditMovecamera(CCmdUI* pCmdUI);
|
|
afx_msg void OnEditMovescene();
|
|
afx_msg void OnUpdateEditMovescene(CCmdUI* pCmdUI);
|
|
afx_msg void OnViewResetSceneRoot();
|
|
afx_msg void OnViewResetFXRoot();
|
|
afx_msg void OnViewResetFXUserMatrix();
|
|
afx_msg void OnViewSetSceneRotation();
|
|
afx_msg void OnShootScene();
|
|
afx_msg void OnWindowSkeletonScale();
|
|
afx_msg void OnUpdateWindowSkeletonScale(CCmdUI* pCmdUI);
|
|
afx_msg void OnWindowTuneMRM();
|
|
afx_msg void OnUpdateWindowTuneMRM(CCmdUI* pCmdUI);
|
|
afx_msg void OnSnapShotTool();
|
|
//}}AFX_MSG
|
|
afx_msg void OnSceneCamera(UINT id);
|
|
afx_msg void OnUpdateSceneCamera(CCmdUI* pCmdUI);
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
CSceneDlgMouseListener _RightButtonMouseListener ;
|
|
|
|
// The default behaviour of CFrameWnd::PostNcDestroy() is to call 'delete this'. We dont want that behaviour, we want the object viewer to call this
|
|
virtual void PostNcDestroy()
|
|
{
|
|
// do nothing
|
|
}
|
|
|
|
private:
|
|
float _LastSceneRotX;
|
|
float _LastSceneRotY;
|
|
float _LastSceneRotZ;
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
//{{AFX_INSERT_LOCATION}}
|
|
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
|
|
|
#endif // !defined(AFX_MAIN_FRAME_H__90D61263_7782_11D5_9CD4_0050DAC3A412__INCLUDED_)
|