You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.9 KiB
64 lines
1.9 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
//=============================================================================//
|
||
|
|
||
|
#ifndef LOADCOMMENTARYDIALOG_H
|
||
|
#define LOADCOMMENTARYDIALOG_H
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include "vgui_controls/Frame.h"
|
||
|
#include "filesystem.h"
|
||
|
#include "utlvector.h"
|
||
|
|
||
|
|
||
|
#define COMMENTARY_MAPFILENAME_MAX_LEN MAX_PATH
|
||
|
#define COMMENTARY_MAPNAME_MAX_LEN 32
|
||
|
#define COMMENTARY_DESCRIP_MAX_LEN 512
|
||
|
#define MAX_LISTED_COMMENTARY_ITEMS 32
|
||
|
|
||
|
struct CommentaryItem_t
|
||
|
{
|
||
|
char szMapFileName[COMMENTARY_MAPFILENAME_MAX_LEN]; // file location of the map
|
||
|
char szMapName[COMMENTARY_MAPNAME_MAX_LEN]; // clean name of the map, eg "dod_kalt"
|
||
|
char szPrintName[COMMENTARY_MAPNAME_MAX_LEN]; // printable name "Kalt"
|
||
|
char szDescription[COMMENTARY_DESCRIP_MAX_LEN]; // track description "This map is fun, and people like it!"
|
||
|
|
||
|
//int iChannel; // TODO: multiple channels within a single map, loaded into separate commentary tracks
|
||
|
};
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Purpose: Base class for save & load game dialogs
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class CLoadCommentaryDialog : public vgui::Frame
|
||
|
{
|
||
|
DECLARE_CLASS_SIMPLE( CLoadCommentaryDialog, vgui::Frame );
|
||
|
|
||
|
public:
|
||
|
CLoadCommentaryDialog( vgui::Panel *parent );
|
||
|
|
||
|
protected:
|
||
|
CUtlVector<CommentaryItem_t> m_CommentaryItems;
|
||
|
vgui::PanelListPanel *m_pGameList;
|
||
|
|
||
|
virtual void OnCommand( const char *command );
|
||
|
virtual void OnKeyCodePressed( vgui::KeyCode code );
|
||
|
|
||
|
void ScanCommentaryFiles();
|
||
|
void CreateCommentaryItemList();
|
||
|
int GetSelectedItemIndex();
|
||
|
void AddCommentaryItemToList( int saveIndex );
|
||
|
|
||
|
void ParseCommentaryFile( char const *pszFileName, char const *pszShortName );
|
||
|
static int __cdecl SaveGameSortFunc( const void *lhs, const void *rhs );
|
||
|
|
||
|
private:
|
||
|
MESSAGE_FUNC( OnPanelSelected, "PanelSelected" );
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif // LOADCOMMENTARYDIALOG_H
|