Files
LGram16 dd97ddec92 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>
2025-11-29 20:17:20 +09:00

117 lines
2.5 KiB
C++

#ifndef __CWATERW_H__
#define __CWATERW_H__
#include <d3dx8.h>
#include <d3d8.h>
#include <vector>
#include "texture.h"
#include "BaseDataDefine.h"
using namespace std;
#define WATERWWIDTH 256
#define WATERWHEIGHT 256
#define WATERWCHOP 2
#define WATEREMPTY -1
class CWaterW {
public:
// 물위를 떠다니는 것들의 정보를 가지고 있는 class
class CDriftUnit {
public:
// 유닛이 영향을 미치는 범위
int m_nUnitRange;
int m_nIndex; // water에 add 시킬때에 주는 고유 인덱스 번호
D3DXVECTOR3 m_UnitPos;
D3DXVECTOR3 m_UnitFwd;
CDriftUnit(){
m_nUnitRange = 4;
m_nIndex = WATEREMPTY;
m_UnitPos.x = m_UnitPos.y = m_UnitPos.z = 0.0f;
m_UnitFwd.x = m_UnitFwd.y = m_UnitFwd.z = 0.0f;
}
~CDriftUnit(){}
int SetUnitIndex(int n);
};
private:
// water vertex class
class CWaterVertex{
public:
float x,y,z;
//normal
float nx,ny,nz;
/* DWORD color;
float s,t;*/
CWaterVertex() {
x = y = z = 0.0f;
// color = D3DCOLOR_ARGB(255,255,255,255);
// s = t = 0.0f;
}
~CWaterVertex() {}
};
// 0,0 버텍스의 시작 위치
D3DXVECTOR3 m_ZeroPos;
// 쿼드 하나의 사이즈
float m_QuadSize;
double **m_pWaterSpace;
double **m_pWaterChangeValue;
double **m_pWaterCoord;
int m_nWidthSize;
int m_nHeightSize;
double m_fLimitHeight;
float m_nChopPower;
vector<CDriftUnit> m_DriftUnit;
int m_nDriftCount;
int m_IndexNum;
LPDIRECT3DVERTEXBUFFER8 m_WaterVertexBuffer;
LPDIRECT3DINDEXBUFFER8 m_WaterIndexBuffer;
CTexture m_WaterTexture;
CTexture m_WaterEnv;
LPDIRECT3DDEVICE8 m_Device;
LPDIRECT3DTEXTURE8 m_pSkyTex[6];
LPDIRECT3DCUBETEXTURE8 m_pSkyCubeTex;
public:
CWaterW();
CWaterW(int size,double limitheight,float choppower,float x,float z,float quadsize,LPDIRECT3DDEVICE8 device);
CWaterW(int width,int height,double limitheight,float choppower,float x,float z,float size,LPDIRECT3DDEVICE8 device);
bool CreateWaterWSpace();
void InitWaterW();
void ChangeVertexBuffer();
void CreateVertexBuffer();
void CreateTexture();
void SetDevice(LPDIRECT3DDEVICE8 device) { m_Device = device;}
bool SetTexture(char *filename,char *envfile);
void SetZeroPos(float x,float y,float z) {m_ZeroPos.x = x;m_ZeroPos.y = y;m_ZeroPos.z = z;}
void SetQuadSize(float size) { m_QuadSize = size;}
void SetLimitHeight(double h);
void SetChopPower(int p) {m_nChopPower = p;}
void AddDriftUnit(CDriftUnit );
void DeleteDriftUnit(CDriftUnit );
void Render();
void Update(float x,float y,float z);
void UpdateWaterW();
void ComputeWaterW();
void SetHeight(int x,int y,float height);
~CWaterW();
};
#endif