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>
173 lines
5.8 KiB
C++
173 lines
5.8 KiB
C++
// CharacterLightShadowManager.h: interface for the CCharacterLightShadowManager class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_CHARACTERLIGHTSHADOWMANAGER_H__33851909_688F_4AB6_B1C8_A6A5D8F8011A__INCLUDED_)
|
|
#define AFX_CHARACTERLIGHTSHADOWMANAGER_H__33851909_688F_4AB6_B1C8_A6A5D8F8011A__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#include "List.h"
|
|
#include "Z3DGeneralChrModel.h"
|
|
#include "Z3DAttachment.h"
|
|
#include "RenderTexture.h"
|
|
#include "HeightFieldScene.h"
|
|
#include "CollisionDetection.h"
|
|
//#include "Z3DSoundEventHelper.h"
|
|
#include "Z3DEventSignal.h"
|
|
#include "ShadowMap.h"
|
|
|
|
#define EVENT_HIT 0x00000001<<0
|
|
#define EVENT_WEAPON_TRAIL_ON 0x00000001<<1
|
|
#define EVENT_WEAPON_TRAIL_OFF 0x00000001<<2
|
|
#define EVENT_JUMP 0x00000001<<3
|
|
#define EVENT_WALK 0x00000001<<4
|
|
#define EVENT_CANCEL 0x00000001<<5
|
|
#define EVENT_SHOT 0x00000001<<6
|
|
#define EVENT_JUST 0x00000001<<7
|
|
#define EVENT_JUSTSTART 0x00000001<<8
|
|
#define EVENT_JUSTEND 0x00000001<<9
|
|
//CollisionDetection Type
|
|
#define CDT_NONE 0
|
|
#define CDT_FULL 1
|
|
#define CDT_ONLYTERRAIN 2
|
|
#define CDT_FIRSTBOTTOM 3
|
|
|
|
class CCharacterLightShadowManager
|
|
{
|
|
CHeightFieldScene *m_pHeightField;
|
|
class CChrLightNode
|
|
{
|
|
public:
|
|
D3DLIGHT8 m_Light;
|
|
int m_dwTimer;
|
|
};
|
|
DWORD m_dwCharacterPixelShader;
|
|
DWORD m_dwCharacterVertexShader;
|
|
DWORD m_dwCharacterSpecPixelShader;
|
|
DWORD m_dwCharacterSpecularVertexShader;
|
|
LPDIRECT3DTEXTURE8 m_pTex_DiffSpec_IlluminationMap;
|
|
|
|
// Rain µ¿±â Ãß°¡
|
|
LPDIRECT3DVERTEXBUFFER8 m_lpRainVertexBuffer;
|
|
float *m_pRainLoopValue;
|
|
|
|
DWORD m_dwRainVertexsNum;
|
|
DWORD m_dwRainUseNum;
|
|
|
|
bool m_bRainBufferSet;
|
|
|
|
/*
|
|
static List<CollisionType> m_CharacterCollisionType;
|
|
static List<CZ3DGeneralChrModel*> m_CharacterList;
|
|
// static List<CZ3DSoundEventHelper*> m_CharacterSoundHelperList;
|
|
static List<POINT> m_CharacterScreenPositionList;
|
|
static List<bool> m_CharacterAttackEventList;
|
|
static List<bool> m_CharacterTrailOnEventList;
|
|
static List<bool> m_CharacterTrailOffEventList;
|
|
static List<int> m_CharacterDelayTimer;
|
|
static List<CChrLightNode> m_CharacterLightList;
|
|
static List<vector3> m_CharacterPerFrameMove;
|
|
static List<vector3> m_CharacterRealPosition;
|
|
static List<int> m_CharacterRandomPostionTimer;
|
|
static List<vector3> m_CharacterRandomPostionAdder;
|
|
*/
|
|
|
|
public:
|
|
|
|
class CCharacterDataNode
|
|
{
|
|
public:
|
|
CollisionType m_CollisionType;
|
|
CZ3DGeneralChrModel *m_pChrmodel;
|
|
POINT m_ptScreenPosition;
|
|
DWORD m_dwEvent;
|
|
int m_DelayTimer;
|
|
CChrLightNode m_Light;
|
|
vector3 m_vecPerFrameMove;
|
|
float m_fAccelate;
|
|
vector3 m_vecZeroVelocity;
|
|
vector3 m_vecRealPosition;
|
|
int m_RandomPositionTimer;
|
|
float m_fFallSpeed;
|
|
vector3 m_vecRandomPositionAdder;
|
|
bool m_bFirstAccelate;
|
|
bool m_bCollisionDetectAble;
|
|
bool m_bGravityAble;
|
|
int m_CollisionDetectType;
|
|
bool m_bRender;
|
|
float m_fAlphaValue;
|
|
|
|
int m_cAttackEvent;
|
|
int m_cJumpEvent;
|
|
int m_cWalkEvent;
|
|
int m_cCancelEvent;
|
|
int m_cShotEvent;
|
|
int m_cJustEvent;
|
|
int m_cJustStartEvent;
|
|
int m_cJustEndEvent;
|
|
};
|
|
|
|
CCharacterDataNode GetCharacterDataNode(CZ3DGeneralChrModel *pChrmodel);
|
|
void SetCharacterDataNode(CCharacterDataNode SetNode);
|
|
void CharacterCollisionDetectType(CZ3DGeneralChrModel *pChrmodel,int nType);
|
|
void CharacterGravityAble(CZ3DGeneralChrModel *pChrmodel,bool bGravityAble);
|
|
static void CharacterCollisionAble(CZ3DGeneralChrModel *pChrmodel, bool bCollisionDetectionAble);
|
|
void CharacterFirstAccelate(CZ3DGeneralChrModel *pChrmodel,bool bFirstAccelate);
|
|
float GetCharacterVelocity(CZ3DGeneralChrModel *pChrmodel);
|
|
CollisionType GetCharacterCollisionType(CZ3DGeneralChrModel *pChrmodel);
|
|
static List<CCharacterDataNode> m_CharacterList;
|
|
CShadowMap m_CharacterShadowmap;
|
|
void RenderGlare(LPDIRECT3DDEVICE8 pd3dDevice);
|
|
void CharacterRandomPos(CZ3DGeneralChrModel *pChrmodel,int nTimer,vector3 vecRand);
|
|
vector3 GetCharacterMovementVector(CZ3DGeneralChrModel *pChrmodel);
|
|
void CharacterMovementVector(CZ3DGeneralChrModel *pChrmodel,vector3 vecChrMove,float fAccelate=0.0f);
|
|
void DelChrLight(DWORD dwLightID);
|
|
void UpdateLight();
|
|
void AddChrLight(CZ3DGeneralChrModel *pChrmodel,vector3 vecPos,DWORD dwColor,float fLens,DWORD dwTime);
|
|
void CreateEditor();
|
|
void AddDelayTimer(CZ3DGeneralChrModel *pChr,int nDelay);
|
|
int GetCharacterEvent(CZ3DGeneralChrModel *pChrmodel,DWORD Event);
|
|
void CharacterSoundPlay(CZ3DGeneralChrModel *pChrmodel, char *strSoundFile);
|
|
void HeightFiledOnChrFixPos();
|
|
CollisionType CharacterCollisionType(CZ3DGeneralChrModel* pFindCharacter);
|
|
|
|
static CRenderTexture m_pShadowTexture;//±×¸²ÀÚ
|
|
CTexture *m_pCharacterLight;// ¹ã¿ë light
|
|
|
|
void CameraTest(LPDIRECT3DDEVICE8 pd3dDevice);
|
|
void SetHeightField(CHeightFieldScene *pHeightField){m_pHeightField=pHeightField;};
|
|
|
|
void UpdateFrame(int m_nFocuesCharacter);
|
|
void ActionProcess();
|
|
|
|
//CZ3DGeneralChrModel* AddCharacter( Z3D_CHR_TYPE ct, Z3D_CHR_FACE_TYPE ft, Z3D_CHR_HAIR_STYLE hs, Z3D_CHR_DEFAULT_TYPE dt );
|
|
CZ3DGeneralChrModel* AddCharacter( const char* szGCMDSName, const char* szFaceType, const char* szHairStyle );
|
|
void DeleteCharacter(CZ3DGeneralChrModel* pDelChr);
|
|
|
|
float GetCollisionChrCamera(vector3 vecStart,vector3 vecEnd);
|
|
void HeightFieldShadowRender(LPDIRECT3DDEVICE8 pd3dDevice);
|
|
void HeightFieldCharacterLightRender(LPDIRECT3DDEVICE8 pd3dDevice);
|
|
void HeightFieldRainRender(LPDIRECT3DDEVICE8 pd3dDevice);
|
|
|
|
void InHouseShadowRender(LPDIRECT3DDEVICE8 pd3dDevice);
|
|
void CharacterLightSetting(int nChr,LPDIRECT3DDEVICE8 pd3dDevice);
|
|
|
|
void Create();
|
|
void Render(LPDIRECT3DDEVICE8 pd3dDevice);
|
|
void RenderEnv(LPDIRECT3DDEVICE8 pd3dDevice);
|
|
|
|
CCharacterLightShadowManager();
|
|
virtual ~CCharacterLightShadowManager();
|
|
//=====================
|
|
// CharacterGlare
|
|
//=====================
|
|
void RenderCharacterSpecular(LPDIRECT3DDEVICE8 pd3dDevice);
|
|
|
|
|
|
};
|
|
|
|
#endif // !defined(AFX_CHARACTERLIGHTSHADOWMANAGER_H__33851909_688F_4AB6_B1C8_A6A5D8F8011A__INCLUDED_)
|