112 lines
1.9 KiB
C++
112 lines
1.9 KiB
C++
|
|
|
|
#pragma once
|
|
#include "KRenderDeviceDX.h"
|
|
#include <toolkit/XBossWorker.h>
|
|
|
|
class KTextureManager;
|
|
class K3DRenderDeviceDX;
|
|
|
|
const int CURSOR_CNT = 5;
|
|
|
|
extern const char * pCursorName[];
|
|
|
|
class SGameCursorMng
|
|
{
|
|
public:
|
|
enum CURSOR_TYPE
|
|
{
|
|
CURSOR_DEFAULT = 0,
|
|
CURSOR_ATTACK,
|
|
CURSOR_PICKUP,
|
|
CURSOR_MOVE,
|
|
CURSOR_SIDE,
|
|
CURSOR_TOPBOTTOM,
|
|
};
|
|
|
|
SGameCursorMng( K3DRenderDeviceDX *pRenderDevice, KTextureManager * pTextureMng )
|
|
{
|
|
m_pGraphics = pRenderDevice;
|
|
m_pTextureMng = pTextureMng;
|
|
m_nMouseX = m_nMouseY = 0;
|
|
m_nCursorType = 0;
|
|
|
|
//TODO : 리소스 옵션 로딩 추가 작업 중.
|
|
NX3LoadPack loadpack;
|
|
loadpack.Init();
|
|
|
|
for ( int i=0 ; i<CURSOR_CNT ; ++i )
|
|
{
|
|
m_spCursorTextureArray[i] = pTextureMng->GetTextureOriginal( pCursorName[i], &loadpack );
|
|
}
|
|
|
|
::ShowCursor(TRUE);
|
|
m_dwTime = 0;
|
|
}
|
|
|
|
~SGameCursorMng()
|
|
{
|
|
m_pGraphics->ShowCursor(FALSE);
|
|
|
|
for ( int i=0 ; i<CURSOR_CNT ; ++i )
|
|
{
|
|
m_spCursorTextureArray[i] = NULL;
|
|
}
|
|
}
|
|
|
|
void ShowCursor( BOOL bShow )
|
|
{
|
|
m_pGraphics->ShowCursor( bShow );
|
|
}
|
|
|
|
void SetCursorPos( int nX, int nY )
|
|
{
|
|
m_pGraphics->SetCursorPos( nX, nY );
|
|
}
|
|
|
|
static void OnDeviceLost()
|
|
{
|
|
m_bUpdate = true;
|
|
}
|
|
|
|
static void SetCursor( CURSOR_TYPE nFrameIndex )
|
|
{
|
|
if( m_nCursorFrame == nFrameIndex ) return;
|
|
|
|
if( nFrameIndex >= 0 && nFrameIndex < CURSOR_CNT )
|
|
m_nCursorFrame = nFrameIndex;
|
|
|
|
m_bUpdate = true;
|
|
}
|
|
|
|
void Process( DWORD dwTime )
|
|
{
|
|
if( m_dwTime == 0 )
|
|
m_dwTime = dwTime;
|
|
|
|
if( dwTime-m_dwTime>150 )
|
|
{
|
|
m_dwTime = 0;
|
|
}
|
|
}
|
|
|
|
void Render()
|
|
{
|
|
if( m_bUpdate )
|
|
{
|
|
m_pGraphics->SetCursor( m_spCursorTextureArray[m_nCursorFrame], 0, 0 );
|
|
m_bUpdate = false;
|
|
}
|
|
}
|
|
private:
|
|
DWORD m_dwTime;
|
|
int m_nCursorType;
|
|
int m_nMouseX, m_nMouseY;
|
|
class K3DRenderDeviceDX* m_pGraphics;
|
|
KTextureManager* m_pTextureMng;
|
|
K3DTextureSPtr m_spCursorTextureArray[CURSOR_CNT];
|
|
|
|
static bool m_bUpdate;
|
|
static int m_nCursorFrame;
|
|
};
|