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:
246
GameTools/Zallad3D SceneClass/SectorScene.h
Normal file
246
GameTools/Zallad3D SceneClass/SectorScene.h
Normal file
@@ -0,0 +1,246 @@
|
||||
// SectorScene.h: interface for the CSectorScene class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(AFX_SECTORSCENE_H__DB1905EF_7F19_458A_8EB7_725758651CB2__INCLUDED_)
|
||||
#define AFX_SECTORSCENE_H__DB1905EF_7F19_458A_8EB7_725758651CB2__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#include "SceneNode.h"
|
||||
#include "MapStorage.h"
|
||||
#include <VertexBuffer.h>
|
||||
#include "MeshObjectContainer.h"
|
||||
#include "SectorDefine.h"
|
||||
#include "PerlinNoise.h"
|
||||
#include "MapStorage.h"
|
||||
#include "TriTreeNode.h"
|
||||
#include "HouseObjectScene.h"
|
||||
#include "TreeScene.h"
|
||||
#include "WaterScene.h"
|
||||
//#include "FallScene.h"
|
||||
#include "GrassScene.h"
|
||||
//#include "LayerFogScene.h"
|
||||
#include "StateLog.h"
|
||||
//#include "Z3DSound.h"
|
||||
#include "X3DEffect.h"
|
||||
#include "X3DEffectManager.h"
|
||||
#include "ShadowVolume.h"
|
||||
#include "boidscene2.h"
|
||||
#include "SectorLight.h"
|
||||
|
||||
|
||||
class CSectorScene : public CSceneNode
|
||||
{
|
||||
|
||||
|
||||
LPDIRECT3DBASETEXTURE8 m_MapTexture;
|
||||
|
||||
static DWORD m_dwObjectDiffuseVertexShader;
|
||||
static DWORD m_dwObjectSpecularVertexShader;
|
||||
|
||||
static DWORD m_dwObjectDiffusePixelShader;
|
||||
static DWORD m_dwObjectSpecularPixelShader;
|
||||
|
||||
static LPDIRECT3DCUBETEXTURE8 m_pNormalizeCubeMap;
|
||||
|
||||
public:
|
||||
CMapStorage *m_pMapStorage;
|
||||
|
||||
void RenderGlare(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
List<int> m_ShadowPolyList;
|
||||
static CRenderTexture m_pShadowTexture;//<2F><EFBFBD><D7B8><EFBFBD>
|
||||
void RenderObjectShadow(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
void UnloadAllData();
|
||||
void GetPickHousePoly(vector3 vecStart,vector3 vecEnd,List<vector3> &vecPolyList);
|
||||
static color m_TerrainDetailFixColor;
|
||||
void GenerateLandscapeEffect();
|
||||
void RenderLandscapeEffect(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
void UpdateLandscapeEffect();
|
||||
void FullVertexROAMVertex();
|
||||
CShadowVolume m_ShadowVolume;
|
||||
void RenderTerrainSelfShadow(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
void HouseAllLoad();
|
||||
float GetHighPolyHeight(vector3 vecPos);
|
||||
void GenerateTerrainLightmap(LPDIRECT3DDEVICE8 pd3dDevice,CSectorScene *NeighborSector[8]);
|
||||
void GenerateTerrainMinimap(LPDIRECT3DDEVICE8 pd3dDevice,CSectorScene *NeighborSector[8]);
|
||||
|
||||
void FixedTerrainLightmap(LPDIRECT3DDEVICE8 pd3dDevice,CSectorScene *NeighborSector[8]);
|
||||
|
||||
void RenderDetail(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
void GenerateObjectShadowed();
|
||||
void GetHeightFieldRangePoly(vector3 vecPos,List<vector3> &vecPolyList,float fRange);
|
||||
// void GenerateSound();
|
||||
void AllObjectCalcLens();
|
||||
void GenerateEffect();
|
||||
void GenerateMustDivideVertex();
|
||||
void RenderGrass(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
void DynamicLoad();
|
||||
void GetLight(vector3 vecPos,List<D3DLIGHT8> &LightList);
|
||||
void GetLineIntersectPoly(vector3 vecStart,vector3 vecEnd,List<vector3> &vecPolyList);
|
||||
void GetHeightFieldShadowPoly(vector3 vecPos,List<vector3> &vecPolyList);
|
||||
void GetInHouseShadowPoly(vector3 vecPos,List<vector3> &vecPolyList,vector3 vecChrLightPos);
|
||||
int m_ShadowUsed;
|
||||
// Shadow Texture//
|
||||
static CRenderTexture m_SwapShadowTexture;
|
||||
static CRenderTexture m_ObjectShadowTexture;
|
||||
static CRenderTexture m_SectorShadowTexture[9];
|
||||
static CRenderTexture m_TerrainShadeTexture;
|
||||
static char m_SectorShadowCollision[9][256*256];
|
||||
//static CTexture m_CompleteShadowAndTerrainTexture[9];
|
||||
static int m_UsedShadowTerrain[9];
|
||||
//Cloud-Shadowed Texture//
|
||||
static CTexture m_CloudShadow;
|
||||
static float m_fCloudMove;
|
||||
static CTexture m_LODGrassTexture;
|
||||
CTexture *m_pLODGrassAlpha;
|
||||
static CTexture *m_GrassRangeTexture;
|
||||
|
||||
//follow data for ROAM //
|
||||
int m_RenderUsedVertex[SECTORSX*SECTORSY];
|
||||
float m_fAvgHeight;
|
||||
float m_HeightData[SECTORSX*SECTORSY];
|
||||
LPDIRECT3DVERTEXBUFFER8 m_pROAMVertex;
|
||||
LPDIRECT3DINDEXBUFFER8 m_pROAMIndices;
|
||||
long m_UsedIndices,m_UsedVertex;
|
||||
SectorVertex m_SectorVertex[SECTORSX*SECTORSY];
|
||||
int m_VarianceLeft[1<<(VARIANCE_DEPTH)];
|
||||
int m_VarianceRight[1<<(VARIANCE_DEPTH)];
|
||||
int *m_CurrentVariance;
|
||||
static TriTreeNode m_TriPool[POOL_SIZE];
|
||||
SectorVertex *m_pDrawVertex;
|
||||
WORD *m_pDrawIndices;
|
||||
static long m_NextTriNode;
|
||||
TriTreeNode m_BaseLeft;
|
||||
TriTreeNode m_BaseRight;
|
||||
|
||||
//Following Function is used ROAM//
|
||||
TriTreeNode * AllocateTri();
|
||||
void ComputeVariance();
|
||||
void Tessellate();
|
||||
void PrepareRender();
|
||||
void Reset();
|
||||
void Split(TriTreeNode *tri);
|
||||
void RecursRender(TriTreeNode *tri, int leftX, int leftY, int rightX, int rightY, int apexX, int apexY);
|
||||
void RecursTessellate(TriTreeNode *tri,int leftx,int leftY,int rightX,int rightY,int apexX,int apexY,int node);
|
||||
int RecursComputeVariance(int leftX,int leftY,float leftZ,int rightX,int rightY,float rightZ,int apexX,int apexY,float apexZ,int node);
|
||||
|
||||
//Editing data//
|
||||
bool m_isEdit;
|
||||
//Scene List //
|
||||
List<CHouseObjectScene*> m_HouseObjectNode;
|
||||
List<CObjectScene*> m_ObjectSceneNode;
|
||||
CX3DEffectManager m_WorldEffectManager;
|
||||
|
||||
List<void*> m_LandscapeEffectNode;
|
||||
List<int> m_LandscapeEffectNodeValue;
|
||||
|
||||
CTreeScene m_TreeObjectNode;
|
||||
//CGrassScene m_GrassObjectNode;
|
||||
static CWaterScene m_WaterScene;
|
||||
// CFallScene m_FallScene;
|
||||
// List<CZ3DSound*> m_SoundObjectNode;
|
||||
//Scene MapStorage Pointer//
|
||||
CSectorDungeonMap *m_MapDungeon;
|
||||
CSectorHeightMap *m_MapHeight;
|
||||
CSectorMeshMap *m_MapMash;
|
||||
CSectorPlantMap *m_MapPlant;
|
||||
CSectorWideMap *m_MapWide;
|
||||
CSectorHouseMap *m_MapHouse;
|
||||
CSectorWaterMap *m_MapWater;
|
||||
CSectorFallMap *m_MapFall;
|
||||
CSectorMeshMap *m_MapMesh;
|
||||
CSectorMustDivideVertexMap *m_MapMustDivideVertex;
|
||||
CSectorEffectMap *m_MapEffect;
|
||||
CSectorLandscapeEffectMap *m_MapLandscapeEffect;
|
||||
//boid cash
|
||||
static CGemRender *m_Boid[3];
|
||||
static bool m_bBoidMeshSet;
|
||||
// Sector Light manager - wizardbug (03. 08. 04)
|
||||
CSectorLightManager m_SectorLightManager;
|
||||
|
||||
// CSectorSoundMap *m_MapSound;
|
||||
|
||||
//Scene Generate Func//
|
||||
void Generate(float fStartX,float fStartY);
|
||||
void GenerateHouseObject();
|
||||
void GenerateHouseObjectLastIn();
|
||||
|
||||
void GenerateWideMap();
|
||||
void ReloadWideMap();
|
||||
|
||||
float GenerateHeight();
|
||||
void GeneratePlant();
|
||||
void GenerateObject();
|
||||
void GenerateObjectLastIn();
|
||||
void GenerateFall();
|
||||
void GenerateWater();
|
||||
void GenerateShadow(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
void GenerateSectorLight();
|
||||
|
||||
void CalcNormal();
|
||||
float GetHeight(vector3 vecPos);
|
||||
|
||||
|
||||
//Terrain & Detail Texture, Terrain Texture Determin func//
|
||||
static CTexture m_DetailTexture;
|
||||
static CTexture m_TerrainTexture[12];
|
||||
static CTexture m_NormalPlantTexture;
|
||||
static CTexture m_LayerFogTexture;
|
||||
void DeterminTerrainTexture(float fHeight,float fPosx,float fPosy);
|
||||
|
||||
//Scene & Terrain Rendering func//
|
||||
void Render(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
void RenderEffect(bool bCull = true);
|
||||
void RenderSectorLight();
|
||||
|
||||
void UpdateEffect(bool bCull = true);
|
||||
|
||||
void RenderNotCullHouseObject(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
|
||||
void RenderHouseObject(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
void RenderEnvHouseObject(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
void RenderPlant(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
void RenderEnvPlant(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
void RenderObject(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
void RenderFall(LPDIRECT3DDEVICE8 pd3dDevice);
|
||||
void RenderWater(LPDIRECT3DDEVICE8 pd3dDevice,bool bFlare);
|
||||
void RenderBlackWater(LPDIRECT3DDEVICE8 pd3dDevice,bool bFlare);
|
||||
|
||||
//boid
|
||||
void SetBoidMesh();
|
||||
void DeleteBoidMesh();
|
||||
void DeleteCullHouseIndex();
|
||||
|
||||
vector3 m_SectorPosition;
|
||||
void Create(CMapStorage *pMapStorage);
|
||||
CSectorScene();
|
||||
virtual ~CSectorScene();
|
||||
// night
|
||||
void SettingNight(bool bNight);
|
||||
bool m_bNight;
|
||||
|
||||
static CEffScript *m_pLightEsf;
|
||||
|
||||
int *m_pNotCullHouseIndex;
|
||||
int m_iNotCullHouseIndex;
|
||||
|
||||
//====================================
|
||||
// <20>۷<EFBFBD><DBB7><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
//====================================
|
||||
void RenderBlackTerrain( LPDIRECT3DDEVICE8 pDevice );
|
||||
void RenderBlackDetail( LPDIRECT3DDEVICE8 pDevice );
|
||||
void RenderBlackHouse( LPDIRECT3DDEVICE8 pd3dDevice );
|
||||
void RenderBlackPlant( LPDIRECT3DDEVICE8 pd3dDevice );
|
||||
|
||||
LPDIRECT3DBASETEXTURE8 GetMapTexture() { return m_MapWide->m_WideMapTexture[0].GetTexture(); }
|
||||
// Sector Lightmap
|
||||
bool IntersectionTerrain(D3DXVECTOR3 vecPos,D3DXVECTOR3 vecSunPos,D3DXVECTOR3 vecSunDir,CSectorScene *NeighborSector[8]);
|
||||
// sector, <20>浹 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> true
|
||||
bool CheckRayCollisionHouse(const D3DXVECTOR3 &vecPos1,const D3DXVECTOR3 &vecPos2);
|
||||
};
|
||||
|
||||
|
||||
#endif // !defined(AFX_SECTORSCENE_H__DB1905EF_7F19_458A_8EB7_725758651CB2__INCLUDED_)
|
||||
Reference in New Issue
Block a user