initial
This commit is contained in:
167
game/client/cstrike15/gameui/bonusmapsdatabase.h
Normal file
167
game/client/cstrike15/gameui/bonusmapsdatabase.h
Normal file
@ -0,0 +1,167 @@
|
||||
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef BONUSMAPSDATABASE_H
|
||||
#define BONUSMAPSDATABASE_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
|
||||
#include "utlvector.h"
|
||||
|
||||
|
||||
struct ChallengeDescription_t
|
||||
{
|
||||
char szName[32];
|
||||
char szComment[256];
|
||||
|
||||
int iType;
|
||||
|
||||
int iBronze;
|
||||
int iSilver;
|
||||
int iGold;
|
||||
|
||||
int iBest;
|
||||
};
|
||||
|
||||
struct BonusMapDescription_t
|
||||
{
|
||||
bool bIsFolder;
|
||||
|
||||
char szShortName[64];
|
||||
char szFileName[128];
|
||||
|
||||
char szMapFileName[128];
|
||||
char szChapterName[128];
|
||||
char szImageName[128];
|
||||
|
||||
char szMapName[64];
|
||||
char szComment[256];
|
||||
|
||||
bool bLocked;
|
||||
bool bComplete;
|
||||
|
||||
CUtlVector<ChallengeDescription_t> *m_pChallenges;
|
||||
|
||||
BonusMapDescription_t( void )
|
||||
{
|
||||
bIsFolder = false;
|
||||
|
||||
szShortName[ 0 ] = '\0';
|
||||
szFileName[ 0 ] = '\0';
|
||||
|
||||
szMapFileName[ 0 ] = '\0';
|
||||
szChapterName[ 0 ] = '\0';
|
||||
szImageName[ 0 ] = '\0';
|
||||
|
||||
szMapName[ 0 ] = '\0';
|
||||
szComment[ 0 ] = '\0';
|
||||
|
||||
bLocked = false;
|
||||
bComplete = false;
|
||||
|
||||
m_pChallenges = NULL;
|
||||
}
|
||||
};
|
||||
|
||||
struct BonusMapChallenge_t
|
||||
{
|
||||
char szFileName[128];
|
||||
char szMapName[32];
|
||||
char szChallengeName[32];
|
||||
int iBest;
|
||||
};
|
||||
|
||||
|
||||
class KeyValues;
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Keeps track of bonus maps on disk
|
||||
//-----------------------------------------------------------------------------
|
||||
class CBonusMapsDatabase
|
||||
{
|
||||
|
||||
public:
|
||||
CBonusMapsDatabase( void );
|
||||
~CBonusMapsDatabase();
|
||||
|
||||
bool ReadBonusMapSaveData( void );
|
||||
bool WriteSaveData( void );
|
||||
|
||||
const char * GetPath( void ) { return m_szCurrentPath; }
|
||||
void RootPath( void );
|
||||
void AppendPath( const char *pchAppend );
|
||||
void BackPath( void );
|
||||
void SetPath( const char *pchPath, int iDirDepth );
|
||||
|
||||
void ClearBonusMapsList( void );
|
||||
void ScanBonusMaps( void );
|
||||
void RefreshMapData( void );
|
||||
|
||||
int BonusCount( void );
|
||||
BonusMapDescription_t * GetBonusData( int iIndex ) { return &(m_BonusMaps[ iIndex ]); }
|
||||
int InvalidIndex( void ) { return m_BonusMaps.InvalidIndex(); }
|
||||
bool IsValidIndex( int iIndex ) { return m_BonusMaps.IsValidIndex( iIndex ); }
|
||||
|
||||
bool GetBlink( void );
|
||||
void SetBlink( bool bState );
|
||||
|
||||
bool BonusesUnlocked( void );
|
||||
|
||||
void SetCurrentChallengeNames( const char *pchFileName, const char *pchMapName, const char *pchChallengeName );
|
||||
void GetCurrentChallengeNames( char *pchFileName, char *pchMapName, char *pchChallengeName );
|
||||
void SetCurrentChallengeObjectives( int iBronze, int iSilver, int iGold );
|
||||
void GetCurrentChallengeObjectives( int &iBronze, int &iSilver, int &iGold );
|
||||
|
||||
bool SetBooleanStatus( const char *pchName, const char *pchFileName, const char *pchMapName, bool bValue );
|
||||
bool SetBooleanStatus( const char *pchName, int iIndex, bool bValue );
|
||||
bool UpdateChallengeBest( const char *pchFileName, const char *pchMapName, const char *pchChallengeName, int iBest );
|
||||
|
||||
float GetCompletionPercentage( void );
|
||||
|
||||
int NumAdvancedComplete( void );
|
||||
void NumMedals( int piNumMedals[ 3 ] );
|
||||
|
||||
private:
|
||||
|
||||
void AddBonus( const char *pCurrentPath, const char *pDirFileName, bool bIsFolder );
|
||||
void BuildSubdirectoryList( const char *pCurrentPath, bool bOutOfRoot );
|
||||
void BuildBonusMapsList( const char *pCurrentPath, bool bOutOfRoot );
|
||||
|
||||
void ParseBonusMapData( char const *pszFileName, char const *pszShortName, bool bIsFolder );
|
||||
|
||||
private:
|
||||
|
||||
KeyValues *m_pBonusMapsManifest;
|
||||
|
||||
CUtlVector<BonusMapDescription_t> m_BonusMaps;
|
||||
|
||||
KeyValues *m_pBonusMapSavedData;
|
||||
bool m_bSavedDataChanged;
|
||||
|
||||
int m_iX360BonusesUnlocked; // Only used on 360
|
||||
bool m_bHasLoadedSaveData;
|
||||
|
||||
int m_iDirDepth;
|
||||
char m_szCurrentPath[_MAX_PATH];
|
||||
float m_fCurrentCompletion;
|
||||
int m_iCompletableLevels;
|
||||
|
||||
BonusMapChallenge_t m_CurrentChallengeNames;
|
||||
ChallengeDescription_t m_CurrentChallengeObjectives;
|
||||
};
|
||||
|
||||
|
||||
void GetChallengeMedals( ChallengeDescription_t *pChallengeDescription, int &iBest, int &iEarnedMedal, int &iNext, int &iNextMedal );
|
||||
CBonusMapsDatabase *BonusMapsDatabase( void );
|
||||
|
||||
extern const char g_pszMedalNames[4][8];
|
||||
|
||||
|
||||
#endif // BONUSMAPSDATABASE_H
|
Reference in New Issue
Block a user