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.
128 lines
2.6 KiB
128 lines
2.6 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $Workfile: $
|
||
|
// $NoKeywords: $
|
||
|
//=============================================================================//
|
||
|
#if !defined( MAPDATA_H )
|
||
|
#define MAPDATA_H
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include <vgui_controls/Panel.h>
|
||
|
#include <vgui/IImage.h>
|
||
|
#include "mathlib/vector.h"
|
||
|
#include "mapdata_shared.h"
|
||
|
#include "sharedinterface.h"
|
||
|
|
||
|
#define MAX_ZONES 32
|
||
|
#define MAX_CLASSES 32
|
||
|
#define MAX_MAP_TEAMS 8
|
||
|
#define MINIMAP_MATERIAL_STRING_SIZE 64
|
||
|
#define MINIMAP_STRING_SIZE 128
|
||
|
|
||
|
class Vector;
|
||
|
class C_BaseEntity;
|
||
|
class BitmapImage;
|
||
|
|
||
|
class CMapClassColors
|
||
|
{
|
||
|
public:
|
||
|
BitmapImage *m_pClassImage;
|
||
|
Color m_clrClass;
|
||
|
};
|
||
|
|
||
|
class CMapTeamColors
|
||
|
{
|
||
|
public:
|
||
|
CMapClassColors m_ClassColors[ MAX_CLASSES ];
|
||
|
|
||
|
BitmapImage *m_pImage;
|
||
|
Color m_clrBlip;
|
||
|
Color m_clrTeam;
|
||
|
};
|
||
|
|
||
|
class CMapPlayers
|
||
|
{
|
||
|
public:
|
||
|
int m_nTeam;
|
||
|
bool m_bVisible;
|
||
|
bool m_bSelected;
|
||
|
int m_nSquadNumber;
|
||
|
int m_nXPos, m_nYPos;
|
||
|
|
||
|
BitmapImage *m_pImage;
|
||
|
Color m_clrPlayer;
|
||
|
};
|
||
|
|
||
|
class CMapZones
|
||
|
{
|
||
|
public:
|
||
|
int m_nControllingTeam;
|
||
|
|
||
|
BitmapImage *m_pZoneImage;
|
||
|
};
|
||
|
|
||
|
struct MinimapData_t
|
||
|
{
|
||
|
char m_szBackgroundMaterial[MINIMAP_MATERIAL_STRING_SIZE];
|
||
|
};
|
||
|
|
||
|
class CMapData : public IMapData
|
||
|
{
|
||
|
public:
|
||
|
CMapData( void );
|
||
|
virtual ~CMapData( void );
|
||
|
|
||
|
void Init( void );
|
||
|
void Clear( void );
|
||
|
void LevelInit( const char *map );
|
||
|
void LevelShutdown( void );
|
||
|
|
||
|
void Update( );
|
||
|
bool IsEntityVisibleToTactical( C_BaseEntity* pEnt ) const;
|
||
|
|
||
|
void UseDefaults( void );
|
||
|
void SetTeamDefaultColor( int iTeamNumber, int r, int g, int b );
|
||
|
|
||
|
void UserCmd_ForceMapReload( void );
|
||
|
|
||
|
// map dimensions
|
||
|
void GetMapBounds(Vector& mins, Vector& maxs);
|
||
|
void GetMapOrigin(Vector& org);
|
||
|
void GetMapSize(Vector& size);
|
||
|
|
||
|
// 3d skybox
|
||
|
void Get3DSkyboxOrigin( Vector &vecOrigin );
|
||
|
float Get3DSkyboxScale( void );
|
||
|
|
||
|
// Indicates the area currently visible in commander mode
|
||
|
void SetVisibleArea( const Vector& mins, const Vector& maxs );
|
||
|
void GetVisibleArea( Vector& mins, Vector& maxs );
|
||
|
|
||
|
public:
|
||
|
CMapZones m_Zones[ MAX_ZONES ];
|
||
|
CMapPlayers m_Players[ MAX_PLAYERS ];
|
||
|
CMapTeamColors m_TeamColors[ MAX_MAP_TEAMS+1 ];
|
||
|
MinimapData_t m_Minimap;
|
||
|
|
||
|
private:
|
||
|
char m_szMap[ MINIMAP_STRING_SIZE ];
|
||
|
|
||
|
// World size + visible size in commander mode
|
||
|
Vector m_WorldMins;
|
||
|
Vector m_WorldMaxs;
|
||
|
Vector m_VisibleMins;
|
||
|
Vector m_VisibleMaxs;
|
||
|
};
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Gets at the singleton map data
|
||
|
//-----------------------------------------------------------------------------
|
||
|
CMapData& MapData();
|
||
|
|
||
|
|
||
|
#endif // MAPDATA_H
|