mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-14 20:56:56 +00:00
1
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef PREFAB3D_H
|
||||
#define PREFAB3D_H
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "Prefabs.h"
|
||||
|
||||
|
||||
class CChunkFile;
|
||||
class CMapWorld;
|
||||
class Vector;
|
||||
|
||||
|
||||
enum ChunkFileResult_t;
|
||||
|
||||
|
||||
class CPrefab3D : public CPrefab
|
||||
{
|
||||
public:
|
||||
|
||||
CPrefab3D();
|
||||
~CPrefab3D();
|
||||
|
||||
virtual bool IsLoaded(void);
|
||||
void FreeData();
|
||||
|
||||
void CenterOnZero();
|
||||
|
||||
CMapClass *Create(void);
|
||||
CMapClass *CreateInBox(BoundBox *pBox);
|
||||
CMapClass *CreateAtPoint(const Vector &point);
|
||||
CMapClass *CreateAtPointAroundOrigin( Vector const &point );
|
||||
|
||||
int GetType(void) { return pt3D; }
|
||||
inline CMapWorld *GetWorld(void);
|
||||
inline void SetWorld(CMapWorld *pWorld);
|
||||
|
||||
protected:
|
||||
|
||||
// prefab data:
|
||||
CMapWorld *m_pWorld;
|
||||
};
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Returns a world containing the objects that make up this prefab.
|
||||
//-----------------------------------------------------------------------------
|
||||
CMapWorld *CPrefab3D::GetWorld(void)
|
||||
{
|
||||
return(m_pWorld);
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//-----------------------------------------------------------------------------
|
||||
void CPrefab3D::SetWorld(CMapWorld *pWorld)
|
||||
{
|
||||
FreeData();
|
||||
m_pWorld = pWorld;
|
||||
}
|
||||
|
||||
|
||||
class CPrefabRMF : public CPrefab3D
|
||||
{
|
||||
public:
|
||||
|
||||
CPrefabRMF();
|
||||
~CPrefabRMF();
|
||||
|
||||
int Init(LPCTSTR pszFilename, BOOL bLoadNow = FALSE, DWORD = 0);
|
||||
int Load(DWORD dwFlags = 0);
|
||||
int Save(LPCTSTR pszFilename, DWORD = 0);
|
||||
|
||||
int Init(std::fstream &file, BOOL bLoadNow = FALSE, DWORD = 0);
|
||||
int Save(std::fstream &file, DWORD = 0);
|
||||
|
||||
private:
|
||||
|
||||
int DoLoad(std::fstream&, DWORD = 0);
|
||||
int DoSave(std::fstream&, DWORD = 0);
|
||||
};
|
||||
|
||||
|
||||
class CPrefabVMF : public CPrefab3D
|
||||
{
|
||||
public:
|
||||
|
||||
CPrefabVMF();
|
||||
~CPrefabVMF();
|
||||
|
||||
int Load(DWORD dwFlags = 0);
|
||||
int Save(LPCTSTR pszFilename, DWORD = 0);
|
||||
|
||||
virtual bool IsLoaded(void);
|
||||
|
||||
void SetFilename(const char *szFilename);
|
||||
|
||||
protected:
|
||||
|
||||
static ChunkFileResult_t LoadEntityCallback(CChunkFile *pFile, CPrefabVMF *pPrefab);
|
||||
static ChunkFileResult_t LoadWorldCallback(CChunkFile *pFile, CPrefabVMF *pPrefab);
|
||||
|
||||
char m_szFilename[MAX_PATH]; // Full path of the prefab VMF.
|
||||
int m_nFileTime; // File modification time of the last loaded version of the prefab.
|
||||
};
|
||||
|
||||
#endif // PREFAB3D_H
|
||||
Reference in New Issue
Block a user