Counter Strike : Global Offensive Source Code
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.
|
|
//========= Copyright � 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#pragma once
#pragma warning(push, 1)
#pragma warning(disable:4701 4702 4530)
#include <fstream>
#pragma warning(pop)
#include "fgdlib/WCKeyValues.h"
#include "mathlib/vector.h"
class BoundBox; class CMapEntity; class Path3D;
class CMapPathNode { public:
CMapPathNode(); CMapPathNode(const CMapPathNode& src);
char szName[128]; // if blank, use default
Vector pos; DWORD dwID; BOOL bSelected;
char szTargets[2][128]; // resolved when saving to map - not used otherwise
int nTargets;
// other values
WCKeyValues kv;
CMapPathNode& operator=(const CMapPathNode& src); };
class CMapPath { friend Path3D;
public:
CMapPath(); ~CMapPath();
enum { ADD_START = 0xfffffff0L, ADD_END = 0xfffffff1L };
DWORD AddNode(DWORD dwAfterID, const Vector &vecPos); void DeleteNode(DWORD dwID); void SetNodePosition(DWORD dwID, Vector& pt); CMapPathNode * NodeForID(DWORD dwID, int* piIndex = NULL); void GetNodeName(int iIndex, int iName, CString& str);
// set name/class
void SetName(LPCTSTR pszName) { strcpy(m_szName, pszName); } LPCTSTR GetName() { return m_szName; } void SetClass(LPCTSTR pszClass) { strcpy(m_szClass, pszClass); } LPCTSTR GetClass() { return m_szClass; }
void EditInfo();
// save/load to/from RMF:
void SerializeRMF(std::fstream&, BOOL fIsStoring); // save to map: (no load!!)
void SerializeMAP(std::fstream&, BOOL fIsStoring, BoundBox *pIntersecting = NULL);
//void SaveVMF(CChunkFile *pFile, CSaveInfo *pSaveInfo);
//void LoadVMF(CChunkFile *pFile);
CMapEntity *CreateEntityForNode(DWORD dwNodeID); void CopyNodeFromEntity(DWORD dwNodeID, CMapEntity *pEntity);
// directions
enum { dirOneway, dirCircular, dirPingpong };
int GetNodeCount() { return m_Nodes.Count(); }
private:
// nodes + number of:
CUtlVector<CMapPathNode> m_Nodes; DWORD GetNewNodeID();
// name:
char m_szName[128]; char m_szClass[128]; int m_iDirection; };
|