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:
114
GameTools/Effect/X3DEffectParticle.h
Normal file
114
GameTools/Effect/X3DEffectParticle.h
Normal file
@@ -0,0 +1,114 @@
|
||||
// X3DEffectParticle.h: interface for the CX3DEffectParticle class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(AFX_X3DEFFECTPARTICLE_H__0750B6D9_11E2_41A9_BFEF_D92F0F1E0CC5__INCLUDED_)
|
||||
#define AFX_X3DEFFECTPARTICLE_H__0750B6D9_11E2_41A9_BFEF_D92F0F1E0CC5__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#include "X3DEffectBase.h"
|
||||
|
||||
typedef struct _Particle
|
||||
{
|
||||
vector3 vecPos;
|
||||
vector3 vecVel;
|
||||
float fLifetime;
|
||||
float fMaxLife;
|
||||
float fTexFrame;
|
||||
|
||||
float fRotation;
|
||||
unsigned long dwRotationCount;
|
||||
float fWidth;
|
||||
float fHeight;
|
||||
color lColor;
|
||||
} Particle, *LPParticle;
|
||||
|
||||
class CX3DEffectParticle : public CX3DEffectBase
|
||||
{
|
||||
protected:
|
||||
unsigned long m_dwMaxAmount;
|
||||
unsigned long m_dwDrawAmount;
|
||||
float m_fAlpha;
|
||||
float m_fPower;
|
||||
float m_fAngle;
|
||||
vector3 m_vecEForce;
|
||||
quaternion m_quatDir;
|
||||
|
||||
float m_fPowerSeed;
|
||||
float m_fLifetime;
|
||||
float m_fLifetimeSeed;
|
||||
|
||||
float m_fRotation;
|
||||
float m_fTexSpeed;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
unsigned long m_dwVolumeType; // 0 : None, 1 : Square, 2 : Circle
|
||||
float m_fVolX;
|
||||
float m_fVolY;
|
||||
float m_fVolZ;
|
||||
float m_fRadius;
|
||||
float m_fInnerRadius;
|
||||
|
||||
// <20><>ƼŬ <20><><EFBFBD><EFBFBD> / <20><><EFBFBD><EFBFBD>
|
||||
LPParticle m_lpVerticeInfo;
|
||||
LPDIRECT3DVERTEXBUFFER8 m_lpVertices;
|
||||
LPDIRECT3DVERTEXBUFFER8 m_lpVerticesBlend;
|
||||
LPDIRECT3DINDEXBUFFER8 m_lpVerticeIndex;
|
||||
|
||||
public:
|
||||
CKeyList<FloatKeyList> m_lstAmount;
|
||||
CKeyList<FloatKeyList> m_lstAlpha;
|
||||
CKeyList<FloatKeyList> m_lstPower;
|
||||
CKeyList<FloatKeyList> m_lstAngle;
|
||||
CKeyList<VectorKeyList> m_lstEForce;
|
||||
CKeyList<QuaternionKeyList> m_lstDirection;
|
||||
|
||||
// Scenario<69><6F> <20><><EFBFBD><EFBFBD>Ʈ
|
||||
CKeyList<FloatKeyList> m_lstWidth;
|
||||
CKeyList<FloatKeyList> m_lstHeight;
|
||||
|
||||
public:
|
||||
CX3DEffectParticle();
|
||||
virtual ~CX3DEffectParticle();
|
||||
|
||||
void SetVolumeNone(void);
|
||||
void SetVolumeSquare(float fVolX, float fVolY, float fVolZ);
|
||||
void SetVolumeCircle(float fRadius, float fInnerRadius);
|
||||
|
||||
void SetPowerSeed(float fPowerSeed) { m_fPowerSeed = fPowerSeed; }
|
||||
void SetLifetime(float fLifetime) { m_fLifetime = fLifetime; }
|
||||
void SetLifetimeSeed(float fLifetimeSeed) { m_fLifetimeSeed = fLifetimeSeed; }
|
||||
void SetRotation(float fRotation) { m_fRotation = fRotation; }
|
||||
void SetTexSpeed(float fTexSpeed) { m_fTexSpeed = fTexSpeed; }
|
||||
|
||||
vector3 GetEForce(void) { return m_vecEForce; }
|
||||
unsigned char GetMainAlpha(void) { return (unsigned char)(m_fAlpha * 255); }
|
||||
float GetAmount(float fFrame) { float temp; m_lstAmount.Interpolation(fFrame, temp); return temp;}
|
||||
float GetLifetime(void) { return m_fLifetime; }
|
||||
float GetPower(void) { return m_fPower; }
|
||||
float GetAngle(void) { return m_fAngle; }
|
||||
quaternion GetDirection(void) { return m_quatDir; }
|
||||
float GetWidth(float fFrame) { float temp; m_lstWidth.Interpolation(fFrame, temp); return temp; }
|
||||
float GetHeight(float fFrame) { float temp; m_lstHeight.Interpolation(fFrame, temp); return temp; }
|
||||
|
||||
unsigned char GetAlpha(float fFrame) { color temp; m_lstColor.InterpolationC(fFrame, temp); return temp.a; }
|
||||
unsigned char GetRColor(float fFrame) { color temp; m_lstColor.InterpolationC(fFrame, temp); return temp.r; }
|
||||
unsigned char GetGColor(float fFrame) { color temp; m_lstColor.InterpolationC(fFrame, temp); return temp.g; }
|
||||
unsigned char GetBColor(float fFrame) { color temp; m_lstColor.InterpolationC(fFrame, temp); return temp.b; }
|
||||
|
||||
BOOL CreateParticle(LPParticle lpParticle);
|
||||
|
||||
void Create(unsigned long dwStartFrame, unsigned long dwEndFrame);
|
||||
BOOL CreateBuffer(void);
|
||||
void Render(void);
|
||||
BOOL Interpolation(float fFrame);
|
||||
void Load(FILE *fp, const char *strOriginalPath = NULL);
|
||||
void Save(FILE *fp, const char *strOriginalPath = NULL);
|
||||
|
||||
BOOL ParticleInterpolation(unsigned long dwNumber);
|
||||
};
|
||||
|
||||
#endif // !defined(AFX_X3DEFFECTPARTICLE_H__0750B6D9_11E2_41A9_BFEF_D92F0F1E0CC5__INCLUDED_)
|
||||
Reference in New Issue
Block a user