mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-09-01 15:09:19 +00:00
upload "kind" alien swarm
This commit is contained in:
@@ -0,0 +1,168 @@
|
||||
|
||||
#ifndef TILEGENDIALOG_H
|
||||
#define TILEGENDIALOG_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include <vgui_controls/Frame.h>
|
||||
#include <vgui_controls/ImageList.h>
|
||||
#include <vgui_controls/SectionedListPanel.h>
|
||||
#include <vgui_controls/PHandle.h>
|
||||
#include <FileSystem.h>
|
||||
#include "vgui/mousecode.h"
|
||||
#include "vgui/IScheme.h"
|
||||
|
||||
#include "ConfigManager.h"
|
||||
|
||||
class CThemeDetails;
|
||||
class CRoomTemplate;
|
||||
class CRoomTemplateListPanel;
|
||||
class CScrollingWindow;
|
||||
class CMapLayoutPanel;
|
||||
class CRoomTemplatePanel;
|
||||
class VMFExporter;
|
||||
class CMapLayout;
|
||||
class CRoom;
|
||||
class CEnterSeedDialog;
|
||||
class CKV_Editor;
|
||||
class CTileGenLayoutPage;
|
||||
class CTilegenLayoutSystemPage;
|
||||
class CLayoutSystem;
|
||||
class CTilegenMissionPreprocessor;
|
||||
|
||||
namespace vgui
|
||||
{
|
||||
class PanelListPanel;
|
||||
class ImagePanel;
|
||||
class MenuBar;
|
||||
class CheckButton;
|
||||
class Button;
|
||||
class Menu;
|
||||
class PropertySheet;
|
||||
class TextEntry;
|
||||
};
|
||||
|
||||
using namespace vgui;
|
||||
|
||||
// determines max tile grid size
|
||||
#define MAP_LAYOUT_TILES_WIDE 120
|
||||
|
||||
enum TileGen_FileSelectType
|
||||
{
|
||||
FST_LAYOUT_OPEN,
|
||||
FST_LAYOUT_SAVE_AS
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Main dialog for tile based map generator
|
||||
//-----------------------------------------------------------------------------
|
||||
class CTileGenDialog : public Frame
|
||||
{
|
||||
DECLARE_CLASS_SIMPLE( CTileGenDialog, Frame );
|
||||
|
||||
public:
|
||||
CTileGenDialog( Panel *parent, const char *name );
|
||||
virtual ~CTileGenDialog();
|
||||
|
||||
virtual void PerformLayout();
|
||||
virtual void OnTick();
|
||||
virtual void ApplySchemeSettings(vgui::IScheme *pScheme);
|
||||
virtual void OnKeyCodeTyped( vgui::KeyCode code );
|
||||
|
||||
// main menu bar
|
||||
MenuBar *m_pMenuBar;
|
||||
|
||||
// themes and room template browser
|
||||
CThemeDetails* m_pCurrentThemeDetails;
|
||||
CScrollingWindow* m_pTemplateListContainer;
|
||||
vgui::TextEntry *m_pTemplateFilter;
|
||||
CRoomTemplateListPanel* m_pTemplateListPanel;
|
||||
|
||||
// Tabbed area
|
||||
vgui::PropertySheet* m_pPropertySheet;
|
||||
CTileGenLayoutPage *m_pLayoutPage;
|
||||
CTilegenLayoutSystemPage *m_pLayoutSystemPage;
|
||||
|
||||
// the current room template attached to the cursor. if this is set, then clicking over the map will stamp down a room with that template
|
||||
void SetCursorRoomTemplate( const CRoomTemplate *pRoomTemplate );
|
||||
const CRoomTemplate *m_pCursorTemplate; // the current room template we're stamping down
|
||||
CRoomTemplatePanel *m_pCursorPanel; // the panel showing the current room template (attaches to mouse cursor)
|
||||
|
||||
// the currently selected placed rooms within out map layout
|
||||
void ToggleRoomSelection(CRoom* pRoom); // adds or removes a room from the current selection
|
||||
void SetRoomSelection(CRoom* pRoom); // sets the room selection to just the specified room
|
||||
void ClearRoomSelection();
|
||||
CUtlVector<CRoom*> m_SelectedRooms;
|
||||
void OnStartDraggingSelectedRooms(); // the user may have started dragging a selected room (we will monitor the mouse from here to see if he actually does)
|
||||
bool IsASelectedRoom( CRoom *pRoom );
|
||||
int m_iStartDragX;
|
||||
int m_iStartDragY;
|
||||
|
||||
// rubber band selection
|
||||
void StartRubberBandSelection( int mx, int my );
|
||||
void EndRubberBandSelection( int mx, int my );
|
||||
bool GetRubberBandStart( int &sx, int &sy );
|
||||
int m_iStartRubberBandX;
|
||||
int m_iStartRubberBandY;
|
||||
|
||||
// options
|
||||
vgui::CheckButton* m_pShowExitsCheck;
|
||||
vgui::CheckButton* m_pShowTileSquaresCheck;
|
||||
bool m_bShowExits; // show the blue exit markers on the edges of room templates?
|
||||
bool m_bShowTileSquares; // show the black square corners on each tile of a room template?
|
||||
vgui::Button* m_pZoomInButton;
|
||||
vgui::Button* m_pZoomOutButton;
|
||||
vgui::Label* m_pCoordinateLabel;
|
||||
vgui::Menu* m_pToolsMenu;
|
||||
|
||||
MESSAGE_FUNC_PARAMS( OnUpdateCurrentTheme, "UpdateCurrentTheme", params );
|
||||
MESSAGE_FUNC_PARAMS( OnAddToP4, "AddToP4", pKV );
|
||||
MESSAGE_FUNC_PTR( OnCheckButtonChecked, "CheckButtonChecked", panel );
|
||||
MESSAGE_FUNC_PTR( OnTextChanged, "TextChanged", panel );
|
||||
DECLARE_PANELMAP();
|
||||
|
||||
float RoomTemplatePanelTileSize() { return m_fTileSize; } // size of our tiles in the UI
|
||||
int MapLayoutTilesWide() { return MAP_LAYOUT_TILES_WIDE; }
|
||||
|
||||
// io
|
||||
VMFExporter* m_VMFExporter;
|
||||
void DoFileSaveAs();
|
||||
void DoFileOpen();
|
||||
void OnFileSelected(const char *fullpath);
|
||||
TileGen_FileSelectType m_FileSelectType; // set when the file dialog is launched in save mode
|
||||
|
||||
void GenerateMission( const char *szMissionFile );
|
||||
bool IsGenerating();
|
||||
CMapLayout* GetMapLayout() { return m_pMapLayout; }
|
||||
|
||||
void GenerateRoomThumbnails( bool bAddToPerforce = false );
|
||||
|
||||
void Zoom( int iChange );
|
||||
|
||||
bool m_bFirstPerformLayout;
|
||||
|
||||
CScrollingWindow* GetScrollingWindow();
|
||||
CMapLayoutPanel* GetMapLayoutPanel();
|
||||
|
||||
protected:
|
||||
virtual void OnClose();
|
||||
virtual void OnCommand( const char *command );
|
||||
|
||||
// New layout system stuff
|
||||
CLayoutSystem *m_pLayoutSystem;
|
||||
int m_nShowDefaultParametersMenuItemID;
|
||||
int m_nShowAddButtonsMenuItemID;
|
||||
|
||||
CMapLayout *m_pMapLayout;
|
||||
KeyValues *m_pGenerationOptions;
|
||||
char m_szGenerationOptionsFileName[MAX_PATH];
|
||||
float m_fTileSize;
|
||||
};
|
||||
|
||||
extern CTileGenDialog *g_pTileGenDialog;
|
||||
|
||||
void VGUIMessageBox( vgui::Panel *pParent, const char *pTitle, const char *pMsg, ... );
|
||||
char* TileGenCopyString( const char *szString );
|
||||
|
||||
#endif // TILEGENDIALOG_H
|
||||
Reference in New Issue
Block a user