Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
133
GameTools/Zallad3D SceneClass/BSPBaseClass.h
Normal file
133
GameTools/Zallad3D SceneClass/BSPBaseClass.h
Normal file
@@ -0,0 +1,133 @@
|
||||
#ifndef BSPBASECLASS_H
|
||||
#define BSPBASECLASS_H
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "3DMath.h"
|
||||
#include "Vertex.h"
|
||||
//#include "List.h"
|
||||
#include "QShader.h"
|
||||
class Plane
|
||||
{
|
||||
public:
|
||||
vector3 m_vecPointOnPlane;
|
||||
vector3 m_vecNormal;
|
||||
};
|
||||
|
||||
class Poly
|
||||
{
|
||||
public:
|
||||
LVertex *m_pVertexList;
|
||||
vector3 m_vecNormal;
|
||||
WORD m_nVertex;
|
||||
WORD m_nIndices;
|
||||
WORD *m_pIndices;
|
||||
bool m_bBeenUsedAsSplitter;
|
||||
DWORD m_TextureIndex;
|
||||
|
||||
Poly *m_pNext;
|
||||
};
|
||||
|
||||
class Portal
|
||||
{
|
||||
public:
|
||||
LVertex *m_pVertexList;
|
||||
vector3 m_vecNormal;
|
||||
WORD m_nVertex;
|
||||
WORD m_nIndices;
|
||||
WORD *m_pIndices;
|
||||
BYTE m_nLeafs;
|
||||
long m_LeafOwnerArray[4];
|
||||
Portal *m_pPrev;
|
||||
Portal *m_pNext;
|
||||
};
|
||||
|
||||
class BoundingBox
|
||||
{
|
||||
public:
|
||||
vector3 m_vecBoxMin;
|
||||
vector3 m_vecBoxMax;
|
||||
};
|
||||
|
||||
class Leaf
|
||||
{
|
||||
public:
|
||||
long m_StartPolygon;
|
||||
long m_EndPolygon;
|
||||
long m_PortalIndexList[50];
|
||||
long m_nPortals;
|
||||
long m_PVSIndex;
|
||||
BoundingBox m_BoundingBox;
|
||||
};
|
||||
|
||||
class Node
|
||||
{
|
||||
public:
|
||||
unsigned char m_bLeaf;
|
||||
unsigned long m_Plane;
|
||||
unsigned long m_Front;
|
||||
signed long m_Back;
|
||||
BoundingBox m_BoundingBox;
|
||||
};
|
||||
|
||||
class ClipPlane
|
||||
{
|
||||
public:
|
||||
WORD m_nPlane;
|
||||
Plane *m_pPlane;
|
||||
};
|
||||
|
||||
const int CP_FRONT=1001;
|
||||
const int CP_BACK =1002;
|
||||
const int CP_ONPLANE=1003;
|
||||
const int CP_SPANNING=1004;
|
||||
|
||||
|
||||
class BSPBaseData
|
||||
{
|
||||
public:
|
||||
void Load(char *strFilename);
|
||||
void Save(char *strFilename,std::vector<CQShader*> &ShaderList);
|
||||
void SplitPortal(Portal *pPortal, Plane *pPlane, Portal *pFrontSplit, Portal *pBackSplit);
|
||||
void CopyBspData(BSPBaseData *pData);
|
||||
static Poly* AddPolygon(Poly* pParent,LVertex *Vertices,WORD nVertex);
|
||||
static Poly* LoadMWM(char *strFilename);
|
||||
void DeletePortal(Portal *pPortal);
|
||||
void IncreaseNumberOfPortals();
|
||||
void IncreaseNumberOfLeafs();
|
||||
void IncreaseNumberOfPlanes();
|
||||
void IncreaseNumberOfPolygons();
|
||||
void IncreaseNumberOfNodes();
|
||||
void DeletePolygon(Poly *pPoly);
|
||||
void CalculateBox(BoundingBox *pBox,Poly *pPolyList);
|
||||
bool GetIntersect (vector3 *vecLineStart,vector3 *vecLineEnd,vector3 *pVertex,vector3 *vecNormal,vector3 *vecIntersection,float *fPercentage);
|
||||
ClassifyPoint(vector3 *vecPoint,Plane *pPlane);
|
||||
void SplitPolygon(Poly *pPoly, Plane *pPlane, Poly *pFrontSplit, Poly *pBackSplit);
|
||||
static int ClassifyPoly(Plane *pPlane,Poly *pPoly);
|
||||
static void Create();
|
||||
BSPBaseData();
|
||||
static Node *m_pNodeArray;
|
||||
static Poly *m_pPolygonArray;
|
||||
static Leaf *m_pLeafArray;
|
||||
static Plane *m_pPlaneArray;
|
||||
static Portal **m_pPortalArray;
|
||||
static BYTE *m_pPVSData;
|
||||
static long m_nPolygons;
|
||||
static long m_nNodes;
|
||||
static long m_nLeafs;
|
||||
static long m_nPlanes;
|
||||
static long m_nPortals;
|
||||
|
||||
static long m_nMaxNodes;
|
||||
static long m_nMaxPolygons;
|
||||
static long m_nMaxPlanes;
|
||||
static long m_nMaxLeafs;
|
||||
static long m_nMaxPortals;
|
||||
|
||||
//static BYTE *m_pPVSData;
|
||||
static long m_BytePerSet;
|
||||
static long m_PVSCompressedSize;
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user