Initial commit: ROW Client source code
Game client codebase including: - CharacterActionControl: Character and creature management - GlobalScript: Network, items, skills, quests, utilities - RYLClient: Main client application with GUI and event handlers - Engine: 3D rendering engine (RYLGL) - MemoryManager: Custom memory allocation - Library: Third-party dependencies (DirectX, boost, etc.) - Tools: Development utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
168
Engine/Zalla3D Scene Class/FogManager.cpp
Normal file
168
Engine/Zalla3D Scene Class/FogManager.cpp
Normal file
@@ -0,0 +1,168 @@
|
||||
|
||||
#include "FogManager.h"
|
||||
#include "GMMemory.h"
|
||||
|
||||
/*************************************************************************************************************
|
||||
|
||||
CFogManager class
|
||||
|
||||
***************************************************************************************************************/
|
||||
|
||||
|
||||
CFogManager :: CFogManager() {
|
||||
int m_FogNum = 0;
|
||||
}
|
||||
CFogManager ::~CFogManager() {
|
||||
|
||||
for(int i = 0;i<m_FogNum;i++)
|
||||
delete m_FogUnit[i];
|
||||
|
||||
m_FogUnit.clear();
|
||||
}
|
||||
|
||||
// return value : update <20><> particle <20><>ü <20><><EFBFBD><EFBFBD>
|
||||
// arg 1 ,2 : <20>˻<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ǥ
|
||||
int CFogManager::UpdateFog(int secx,int secy) {
|
||||
|
||||
int i; /* close person <20>Լ<EFBFBD> <20>߰<EFBFBD>*/
|
||||
int count = 0; /* SECTORSIZE <20><> <20><><EFBFBD>ϵǾ<CFB5><C7BE>ִ<EFBFBD> SectorDefine.h include */
|
||||
//Z3D Sceneclass <20>ȿ<EFBFBD> <20>ִ<EFBFBD>.
|
||||
vector3 center;
|
||||
vector3 pos;
|
||||
// int indexx,indexy;
|
||||
|
||||
for(i=0;i<m_FogNum;i++) {
|
||||
center = m_FogUnit[i]->GetCenter();
|
||||
//indexx = (int)(center.x/SECTORSIZE);
|
||||
//indexy = (int)(center.z/SECTORSIZE);
|
||||
// Sector <20><><EFBFBD><EFBFBD> <20><EFBFBD> rendering
|
||||
// if(secx == indexx && secy == indexy) {
|
||||
//get person pos;
|
||||
m_FogUnit[i]->Update(pos.x,pos.y,pos.z);
|
||||
count++;
|
||||
// }
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
int CFogManager::UpdateFog(int num) {
|
||||
D3DXVECTOR3 pos;
|
||||
//get person pos
|
||||
m_FogUnit[num]->Update(pos.x,pos.y,pos.z);
|
||||
return num;
|
||||
}
|
||||
|
||||
int CFogManager::Render(int num) {
|
||||
m_FogUnit[num]->Render();
|
||||
return num;
|
||||
}
|
||||
int CFogManager::Render() {
|
||||
|
||||
int i;
|
||||
int count = 0;
|
||||
vector3 center;
|
||||
// secter index
|
||||
// int indexx,indexy;
|
||||
|
||||
for(i=0;i<m_FogNum;i++) {
|
||||
center = m_FogUnit[i]->GetCenter();
|
||||
//indexx = (int)(center.x/SECTORSIZE);
|
||||
//indexy = (int)(center.z/SECTORSIZE);
|
||||
//if(secx == indexx && secy == indexy) {
|
||||
m_FogUnit[i]->Render();
|
||||
count++;
|
||||
//}
|
||||
}
|
||||
return count;
|
||||
|
||||
}
|
||||
int CFogManager::SetFog(int num) {
|
||||
|
||||
/* m_FogUnit[num]->SetCenter(30.0f);
|
||||
m_FogUnit[num]->SetCenterPos(0.0f,0.0f,10.0f);
|
||||
m_FogUnit[num]->SetColor(1.0f,1.0f,1.0f,1.0f);
|
||||
m_FogUnit[num]->SetFlow(-2.0f);
|
||||
m_FogUnit[num]->SetGravity(0.0f,0.0f,0.0f);
|
||||
D3DXVECTOR3 tm;
|
||||
tm.z = 0.3f;
|
||||
tm.x = 0.6f;
|
||||
tm.y = 0.1f;
|
||||
// tm.x = tm.y = tm.z = 0.0f;
|
||||
// tm.x = 0.3f;
|
||||
// tm.y = 0.1f;
|
||||
m_FogUnit[num]->SetSize(5.0f);
|
||||
m_FogUnit[num]->SetImpress(tm);
|
||||
m_FogUnit[num]->SetPos();
|
||||
m_FogUnit[num]->SetColor(1.0f,1.0f,1.0f,1.0f);
|
||||
m_FogUnit[num]->SetEtc();
|
||||
m_FogUnit[num]->SetRad(5.0f);
|
||||
m_FogUnit[num]->SetSpeed(0.0f,0.0f,0.0f);
|
||||
m_FogUnit[num]->SetSpeedPower(0.0f);
|
||||
m_FogUnit[num]->SetWind(0.0f,0.0f,0.0f);
|
||||
m_FogUnit[num]->CreateTextureBuffer(2);
|
||||
|
||||
m_FogUnit[num]->SetTexture(0,"white.dds");
|
||||
m_FogUnit[num]->SetTexture(1,"white32.dds");
|
||||
m_FogUnit[num]->Setfadein(1.0f);
|
||||
m_FogUnit[num]->CreateVertexBuffer();*/
|
||||
//m_FogUnit[num]->Create();
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
void CFogManager::Insert_Fog() {
|
||||
CFogScene *tmp;
|
||||
|
||||
m_FogUnit.push_back(tmp);
|
||||
m_FogUnit[m_FogNum] = new CFogScene();
|
||||
|
||||
/// m_FogUnit[m_FogNum]->Create();
|
||||
|
||||
m_FogNum++;
|
||||
}
|
||||
int CFogManager::FindFog(float x,float y,float z) {
|
||||
vector3 center;
|
||||
for(int i=0;i<m_FogNum;i++) {
|
||||
center = m_FogUnit[i]->GetCenter();
|
||||
if(center.x == x && center.y == y && center.z == z)
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// <20><><EFBFBD>ӿ<EFBFBD> <20>߰<EFBFBD> <20>Ǹ鼭 <20><><EFBFBD>Ƴ<EFBFBD> <20>ڵ<EFBFBD>
|
||||
/*void CFogManager::CalculateLod() {
|
||||
int i;
|
||||
vector3 f_pos;
|
||||
|
||||
// cameram get
|
||||
matrix *matViewPosition=(matrix*)CSceneManager::GetCamera()->GetMatPosition();
|
||||
vector3 vecViewPos=matViewPosition->GetLoc();
|
||||
|
||||
vecViewPos.x-=m_AccumulateTM._41;
|
||||
vecViewPos.z-=m_AccumulateTM._43;
|
||||
|
||||
float fLens=0.0f;
|
||||
|
||||
if( 0.0f-fLens_FarTree <= vecViewPos.x &&
|
||||
SECTORSIZE+fLens_FarTree > vecViewPos.x &&
|
||||
0.0f-fLens_FarTree <= vecViewPos.z &&
|
||||
SECTORSIZE+fLens_FarTree > vecViewPos.z) {
|
||||
for(i=0;i<Fog_Num;i++) {
|
||||
|
||||
f_pos.x = Fog_Unit[i]->Center_Point.x - vecViewPos.x;
|
||||
f_pos.y = Fog_Unit[i]->Center_Point.y - vecViewPos.y;
|
||||
f_pos.z = Fog_Unit[i]->Center_Point.z - vecViewPos.z;
|
||||
fLens=CFastMath::FastSqrt((f_pos.x*f_pos.x)+(f_pos.y*f_pos.y)+(f_pos.z*f_pos.z));
|
||||
|
||||
if(fLens <=LOD_NEAR)
|
||||
Fog_Unit[i]->Lod = NEAR_LOD;
|
||||
else if(fLens <=LOD_FAR)
|
||||
Fog_Unit[i]->Lod = FAR_LOD;
|
||||
else
|
||||
Fog_Unit[i]->Lod = NOT_SCENE;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
*/
|
||||
Reference in New Issue
Block a user