| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396 |
- /*
- ** Command & Conquer Renegade(tm)
- ** Copyright 2025 Electronic Arts Inc.
- **
- ** This program is free software: you can redistribute it and/or modify
- ** it under the terms of the GNU 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 General Public License for more details.
- **
- ** You should have received a copy of the GNU General Public License
- ** along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- // MainFrm.h : interface of the CMainFrame class
- //
- /////////////////////////////////////////////////////////////////////////////
- #if !defined(AFX_MAINFRM_H__6D711A27_651E_11D2_9FC8_00104B791122__INCLUDED_)
- #define AFX_MAINFRM_H__6D711A27_651E_11D2_9FC8_00104B791122__INCLUDED_
- #if _MSC_VER >= 1000
- #pragma once
- #endif // _MSC_VER >= 1000
- #include "formtoolbar.h"
- #include "maindialogbar.h"
- #include "vector.h"
- #include "wwstring.h"
- //////////////////////////////////////////////////////////////////////////////////////////
- // Forward declarations
- //////////////////////////////////////////////////////////////////////////////////////////
- class Vector3;
- class CLevelEditDoc;
- //////////////////////////////////////////////////////////////////////////////////////////
- //
- // CMainFrame
- //
- //////////////////////////////////////////////////////////////////////////////////////////
- class CMainFrame : public CFrameWnd
- {
- protected: // create from serialization only
- CMainFrame();
- DECLARE_DYNCREATE(CMainFrame)
- // Attributes
- public:
- // Operations
- public:
- // Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CMainFrame)
- public:
- virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
- virtual void OnFinalRelease();
- protected:
- virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
- virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
- virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
- //}}AFX_VIRTUAL
- // Implementation
- public:
- virtual ~CMainFrame();
- #ifdef _DEBUG
- virtual void AssertValid() const;
- virtual void Dump(CDumpContext& dc) const;
- #endif
- protected: // control bar embedded members
- CStatusBar m_wndStatusBar;
- CToolBar m_wndToolBar;
- // Generated message map functions
- protected:
- //{{AFX_MSG(CMainFrame)
- afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
- afx_msg void OnClose();
- afx_msg void OnObjectManipulate();
- afx_msg void OnUpdateObjectManipulate(CCmdUI* pCmdUI);
- afx_msg void OnModeCamera();
- afx_msg void OnUpdateModeCamera(CCmdUI* pCmdUI);
- afx_msg void OnDeleteSelection();
- afx_msg void OnModeOrbit();
- afx_msg void OnUpdateModeOrbit(CCmdUI* pCmdUI);
- afx_msg void OnCoordWorld();
- afx_msg void OnUpdateCoordWorld(CCmdUI* pCmdUI);
- afx_msg void OnCoordView();
- afx_msg void OnUpdateCoordView(CCmdUI* pCmdUI);
- afx_msg void OnCoordObject();
- afx_msg void OnUpdateCoordObject(CCmdUI* pCmdUI);
- afx_msg void OnRestrictX();
- afx_msg void OnRestrictY();
- afx_msg void OnRestrictZ();
- afx_msg void OnUpdateRestrictZ(CCmdUI* pCmdUI);
- afx_msg void OnUpdateRestrictY(CCmdUI* pCmdUI);
- afx_msg void OnUpdateRestrictX(CCmdUI* pCmdUI);
- afx_msg void OnCameraFront();
- afx_msg void OnCameraBack();
- afx_msg void OnCameraLeft();
- afx_msg void OnCameraRight();
- afx_msg void OnCameraTop();
- afx_msg void OnCameraBottom();
- afx_msg void OnDropToGround();
- afx_msg void OnUpdateDropToGround(CCmdUI* pCmdUI);
- afx_msg void OnModeWalkthrough();
- afx_msg void OnUpdateModeWalkthrough(CCmdUI* pCmdUI);
- afx_msg void OnViewChangeDevice();
- afx_msg void OnLevelExport();
- afx_msg void OnViewFullscreen();
- afx_msg void OnUpdateViewFullscreen(CCmdUI* pCmdUI);
- afx_msg void OnViewAmbientLightDlg();
- afx_msg void OnUpdateViewAmbientLightDlg(CCmdUI* pCmdUI);
- afx_msg void OnUpdateViewToolbarCameraSettings(CCmdUI* pCmdUI);
- afx_msg void OnViewToolbarCameraSettings();
- afx_msg void OnCameraDepthLess();
- afx_msg void OnCameraDepthMore();
- afx_msg void OnSavePresets();
- afx_msg void OnUpdateSavePresets(CCmdUI* pCmdUI);
- afx_msg void OnToggleSnappoints();
- afx_msg void OnUpdateToggleSnappoints(CCmdUI* pCmdUI);
- afx_msg void OnAlwaysExport();
- afx_msg void OnDestroy();
- afx_msg void OnChangeBase();
- afx_msg void OnCamSpeedIncrease();
- afx_msg void OnCamSpeedDecrease();
- afx_msg void OnCamReset();
- afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
- afx_msg void OnGenVis();
- afx_msg void OnToggleVisWindow();
- afx_msg void OnAniBackFrame();
- afx_msg void OnAniFirstFrame();
- afx_msg void OnAniFwdFrame();
- afx_msg void OnAniLastFrame();
- afx_msg void OnAniPause();
- afx_msg void OnAniPlay();
- afx_msg void OnAniStop();
- afx_msg void OnEditUndo();
- afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI);
- afx_msg void OnEditCopy();
- afx_msg void OnUpdateEditCopy(CCmdUI* pCmdUI);
- afx_msg void OnEditCut();
- afx_msg void OnUpdateEditCut(CCmdUI* pCmdUI);
- afx_msg void OnEditPaste();
- afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI);
- afx_msg void OnCreateGroup();
- afx_msg void OnUpdateCreateGroup(CCmdUI* pCmdUI);
- afx_msg void OnToggleLights();
- afx_msg void OnUpdateToggleLights(CCmdUI* pCmdUI);
- afx_msg void OnRepartition();
- afx_msg void OnAllowAutoUpdates();
- afx_msg void OnUpdateAllowAutoUpdates(CCmdUI* pCmdUI);
- afx_msg void OnRotateLeft();
- afx_msg void OnRotateRight();
- afx_msg void OnCalcAllLights();
- afx_msg void OnCalcSelLights();
- afx_msg void OnUpdateCalcSelLights(CCmdUI* pCmdUI);
- afx_msg void OnLockObjects();
- afx_msg void OnUnlockObjects();
- afx_msg void OnUpdateLockObjects(CCmdUI* pCmdUI);
- afx_msg void OnUpdateUnlockObjects(CCmdUI* pCmdUI);
- afx_msg void OnEditIncludes();
- afx_msg void OnVolDec();
- afx_msg void OnVolInc();
- afx_msg void OnBackgroundSettings();
- afx_msg void OnToggleMusic();
- afx_msg void OnUpdateToggleMusic(CCmdUI* pCmdUI);
- afx_msg void OnToggleSounds();
- afx_msg void OnUpdateToggleSounds(CCmdUI* pCmdUI);
- afx_msg void OnViewAggregateChildren();
- afx_msg void OnUpdateViewAggregateChildren(CCmdUI* pCmdUI);
- afx_msg void OnToggleSunlight();
- afx_msg void OnUpdateToggleSunlight(CCmdUI* pCmdUI);
- afx_msg void OnEditSunlight();
- afx_msg void OnAutoGenVis();
- afx_msg void OnVisualOptions();
- afx_msg void OnVisInvert();
- afx_msg void OnViewVisPoints();
- afx_msg void OnUpdateViewVisPoints(CCmdUI* pCmdUI);
- afx_msg void OnSpecifyAssetDatabase();
- afx_msg void OnUpdateVisInvert(CCmdUI* pCmdUI);
- afx_msg void OnToggleBackfaces();
- afx_msg void OnUpdateToggleBackfaces(CCmdUI* pCmdUI);
- afx_msg void OnToggleWireframeMode();
- afx_msg void OnUpdateToggleWireframeMode(CCmdUI* pCmdUI);
- afx_msg void OnViewVisErrors();
- afx_msg void OnUseVisCamera();
- afx_msg void OnUpdateUseVisCamera(CCmdUI* pCmdUI);
- afx_msg void OnGenerateObstacleVolumes();
- afx_msg void OnVisDisable();
- afx_msg void OnUpdateVisDisable(CCmdUI* pCmdUI);
- afx_msg void OnDisplayPaths();
- afx_msg void OnUpdateDisplayPaths(CCmdUI* pCmdUI);
- afx_msg void OnTestPathfind();
- afx_msg void OnDisplayPathfindSectors();
- afx_msg void OnUpdateDisplayPathfindSectors(CCmdUI* pCmdUI);
- afx_msg void OnDisplayPathfindPortals();
- afx_msg void OnUpdateDisplayPathfindPortals(CCmdUI* pCmdUI);
- afx_msg void OnDisplayPathfindRawData();
- afx_msg void OnUpdateDisplayPathfindRawData(CCmdUI* pCmdUI);
- afx_msg void OnExportPathfind();
- afx_msg void OnImportPathfind();
- afx_msg void OnImportVis();
- afx_msg void OnExportVis();
- afx_msg void OnViewVisWindow();
- afx_msg void OnUpdateViewVisWindow(CCmdUI* pCmdUI);
- afx_msg void OnToggleManVisPoints();
- afx_msg void OnUpdateToggleManVisPoints(CCmdUI* pCmdUI);
- afx_msg void OnDiscardPathfind();
- afx_msg void OnDoDebug1();
- afx_msg void OnDoDebug2();
- afx_msg void OnImportDynObjs();
- afx_msg void OnExportDynObjs();
- afx_msg void OnTestGoto();
- afx_msg void OnImportStatic();
- afx_msg void OnExportStatic();
- afx_msg void OnDisplayWeb();
- afx_msg void OnUpdateDisplayWeb(CCmdUI* pCmdUI);
- afx_msg void OnUpdateDisplayFullPaths(CCmdUI* pCmdUI);
- afx_msg void OnDisplayFullPaths();
- afx_msg void OnEscape();
- afx_msg void OnDisplayVisGrid();
- afx_msg void OnUpdateDisplayVisGrid(CCmdUI* pCmdUI);
- afx_msg void OnDisplayVisSectors();
- afx_msg void OnUpdateDisplayVisSectors(CCmdUI* pCmdUI);
- afx_msg void OnPrelitMultipass();
- afx_msg void OnUpdatePrelitMultipass(CCmdUI* pCmdUI);
- afx_msg void OnPrelitMultitex();
- afx_msg void OnUpdatePrelitMultitex(CCmdUI* pCmdUI);
- afx_msg void OnPrelitVertex();
- afx_msg void OnUpdatePrelitVertex(CCmdUI* pCmdUI);
- afx_msg void OnDebugScriptsMode();
- afx_msg void OnUpdateDebugScriptsMode(CCmdUI* pCmdUI);
- afx_msg void OnImportLights();
- afx_msg void OnViewSoundSpheres();
- afx_msg void OnUpdateViewSoundSpheres(CCmdUI* pCmdUI);
- afx_msg void OnViewLightSpheres();
- afx_msg void OnUpdateViewLightSpheres(CCmdUI* pCmdUI);
- afx_msg void OnImportSunlight();
- afx_msg void OnDiscardVis();
- afx_msg void OnIncreaseSphere();
- afx_msg void OnUpdateIncreaseSphere(CCmdUI* pCmdUI);
- afx_msg void OnDecreaseSphere();
- afx_msg void OnUpdateDecreaseSphere(CCmdUI* pCmdUI);
- afx_msg void OnRunJob();
- afx_msg void OnGotoLocation();
- afx_msg void OnExportThumbnails();
- afx_msg void OnVisStats();
- afx_msg void OnSetNodeIdStart();
- afx_msg void OnBuildDynaCullsys();
- afx_msg void OnImportVisRemapData();
- afx_msg void OnExportVisRemapData();
- afx_msg void OnUpdateBulkReplace(CCmdUI* pCmdUI);
- afx_msg void OnBulkReplace();
- afx_msg void OnCheckIds();
- afx_msg void OnExportLights();
- afx_msg void OnOptimizeVisData();
- afx_msg void OnDisplayVisGridLittleBoxes();
- afx_msg void OnUpdateDisplayVisGridLittleBoxes(CCmdUI* pCmdUI);
- afx_msg void OnEditStringsTable();
- afx_msg void OnExportStringIds();
- afx_msg void OnImportStringIds();
- afx_msg void OnBuildFlightInfo();
- afx_msg void OnToggleAttenuationSpheres();
- afx_msg void OnUpdateToggleAttenuationSpheres(CCmdUI* pCmdUI);
- afx_msg void OnFixIdCollisions();
- afx_msg void OnResetDynaCullSystem();
- afx_msg void OnDisplayLightVectors();
- afx_msg void OnUpdateDisplayLightVectors(CCmdUI* pCmdUI);
- afx_msg void OnDisplayStaticAnimObjects();
- afx_msg void OnUpdateDisplayStaticAnimObjects(CCmdUI* pCmdUI);
- afx_msg void OnEditConversations();
- afx_msg void OnBuildingPowerOn();
- afx_msg void OnUpdateBuildingPowerOn(CCmdUI* pCmdUI);
- afx_msg void OnCreateProxies();
- afx_msg void OnUpdateCreateProxies(CCmdUI* pCmdUI);
- afx_msg void OnCheckInPresetChanges();
- afx_msg void OnUpdateCheckInPresetChanges(CCmdUI* pCmdUI);
- afx_msg void OnImmediatePresetCheckin();
- afx_msg void OnUpdateImmediatePresetCheckin(CCmdUI* pCmdUI);
- afx_msg void OnRemapIds();
- afx_msg void OnUpdateRemapIds(CCmdUI* pCmdUI);
- afx_msg void OnVerifyCulling();
- afx_msg void OnEnableVisSectorFallback();
- afx_msg void OnUpdateEnableVisSectorFallback(CCmdUI* pCmdUI);
- afx_msg void OnRunManualVisPoints();
- afx_msg void OnShowEditorObjects();
- afx_msg void OnUpdateShowEditorObjects(CCmdUI* pCmdUI);
- afx_msg void OnAddChildNode();
- afx_msg void OnUpdateAddChildNode(CCmdUI* pCmdUI);
- afx_msg void OnCheckMemlog();
- afx_msg void OnMakeVisPoint();
- afx_msg void OnExportStringTable();
- afx_msg void OnGotoObject();
- afx_msg void OnExportPresets();
- afx_msg void OnImportPresets();
- afx_msg void OnBatchExport();
- afx_msg void OnLockVisSamplePoint();
- afx_msg void OnUpdateLockVisSamplePoint(CCmdUI* pCmdUI);
- afx_msg void OnToggleTerrainSelection();
- afx_msg void OnUpdateToggleTerrainSelection(CCmdUI* pCmdUI);
- afx_msg void OnExportPresetFileDependencies();
- afx_msg void OnImportStrings();
- afx_msg void OnExportTileList();
- afx_msg void OnRemapUnimportantIds();
- afx_msg void OnEditLevelSettings();
- afx_msg void OnExportTranslationData();
- afx_msg void OnImportTranslationData();
- afx_msg void OnCompressTextures();
- afx_msg void OnUpdateCompressTextures(CCmdUI* pCmdUI);
- afx_msg void OnExportFileUsageReport();
- afx_msg void OnExportMissingTranslationReport();
- afx_msg void OnExportLanguage();
- afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
- afx_msg void OnAlwaysLocalExport();
- afx_msg void OnExportInstallerLanguageVersion();
- afx_msg void OnExtractInstallerRcStrings();
- afx_msg void OnExtractRcStrings();
- afx_msg void OnCameraPerspective();
- afx_msg void OnCameraOrthographic();
- afx_msg void OnUpdateCameraOrthographic(CCmdUI* pCmdUI);
- afx_msg void OnUpdateCameraPerspective(CCmdUI* pCmdUI);
- afx_msg void OnModExport();
- afx_msg void OnSaveLevel();
- afx_msg void OnComputeVertexSolve();
- afx_msg void OnModeHeightEdit();
- afx_msg void OnUpdateModeHeightEdit(CCmdUI* pCmdUI);
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- public:
- /////////////////////////////////////////////////////////////////////////
- // Public methods
- /////////////////////////////////////////////////////////////////////////
- FormToolbarClass & Get_Output_Toolbar (void) { return m_OutputToolbar; }
- FormToolbarClass & Get_Camera_Toolbar (void) { return m_CameraSettingsToolbar; }
- FormToolbarClass & Get_Ambient_Light_Toolbar (void) { return m_AmbientLightToolbar; }
- MainDialogBarClass & Get_Main_Dialog_Bar (void) { return m_TestBar; }
- CLevelEditDoc * Get_Current_Document (void) { return m_pCurrentDoc; }
- void Show_Ani_Toolbar (bool bshow);
- void Update_Ani_Frame (int frame, int max_frames);
- void Update_Poly_Count (void);
- void Update_Texture_Mem (void);
- void Update_Camera_Location (const Vector3 &position);
- CImageList * Get_Image_List (void) { return &m_ImageList; }
- void Expand_Attenuation_Spheres (float amount);
- void Toggle_Static_Anims (void) { OnDisplayStaticAnimObjects (); }
- protected:
- /////////////////////////////////////////////////////////////////////////
- // Protected methods
- /////////////////////////////////////////////////////////////////////////
- void Create_Toolbars (void);
- void Adjust_Growth_Rate (void);
- void Restore_Window_State (void);
- void Configure_File_Factories (void);
- void Create_Camera_Menu (void);
- private:
- /////////////////////////////////////////////////////////////////////////
- // Private member data
- /////////////////////////////////////////////////////////////////////////
- FormToolbarClass m_OutputToolbar;
- FormToolbarClass m_AmbientLightToolbar;
- FormToolbarClass m_CameraSettingsToolbar;
- CToolBar m_wndBottomToolBar;
- CToolBar m_AniToolbar;
- CReBar m_DialogBar;
- CLevelEditDoc * m_pCurrentDoc;
- CImageList m_ImageList;
- MainDialogBarClass m_TestBar;
- DWORD m_UpdateTimer;
- float m_GrowthRate;
- int m_MaxCamProfiles;
- DynamicVectorClass<StringClass> m_CameraProfiles;
- };
- /////////////////////////////////////////////////////////////////////////////
- //{{AFX_INSERT_LOCATION}}
- // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
- #endif // !defined(AFX_MAINFRM_H__6D711A27_651E_11D2_9FC8_00104B791122__INCLUDED_)
|