#include "StdAfx.h" #include "UICursor.h" #include "Application.h" //#include "RenderSystem.h" #include "StageManager.h" #include "SkillExecuter.h" #include "resource.h" cUICursor* cUICursor::mpSingleton = 0; cUICursor::cUICursor() : mCusorAlpha(0.f) { assert( mpSingleton == 0 && "bad singleton!" ); mpSingleton = this; for( int i = 0; i < eCURSOR_MAX; ++i ) { mCursor[i] = 0; } } cUICursor::~cUICursor() { mpSingleton = 0; } /// ÁÖÀÇ»çÇ× : bool cUICursor::Init() { HINSTANCE hins = THEAPP->GetWindowInstance(); mCursor[eCURSOR_DEFAULT] = LoadCursor( hins, MAKEINTRESOURCE( IDC_CURSOR1 ) ); mCursor[eCURSOR_ATTACK] = LoadCursor( hins, MAKEINTRESOURCE( IDC_CURSOR2 ) ); mCursor[eCURSOR_SKILL] = LoadCursor( hins, MAKEINTRESOURCE( IDC_CURSOR3 ) ); mCursor[eCURSOR_TALK] = LoadCursor( hins, MAKEINTRESOURCE( IDC_CURSOR4 ) ); mCursor[eCURSOR_MOVEMAP] = LoadCursor( hins, MAKEINTRESOURCE( IDC_CURSOR5 ) ); mCursor[eCURSOR_MOVESTOP] = LoadCursor( hins, MAKEINTRESOURCE( IDC_CURSOR6 ) ); mCursor[eCURSOR_DROPITEM] = LoadCursor( hins, MAKEINTRESOURCE( IDC_CURSOR7 ) ); mCursor[eCURSOR_GATHERING] = LoadCursor( hins, MAKEINTRESOURCE( IDC_CURSOR8 ) ); mCursor[eCURSOR_CLICK] = LoadCursor( hins, MAKEINTRESOURCE( IDC_CURSOR9 ) ); mCursor[eCURSOR_USER] = LoadCursor( hins, MAKEINTRESOURCE( IDC_CURSOR10 ) ); mCursor[eCURSOR_USER_SELL] = LoadCursor( hins, MAKEINTRESOURCE( IDC_CURSOR11 ) ); mCursor[eCURSOR_TAROT] = LoadCursor( hins, MAKEINTRESOURCE( IDC_CURSOR12 ) ); /* char pathName[256] = {0,}; for( unsigned int i=0; iGetHWND(),GCL_HCURSOR,(LONG)mCursor); } /// ÁÖÀÇ»çÇ× : void cUICursor::SetCursor( eCursor_Type eType ) { if( eType == eCURSOR_MAX ) { mCurCursorType = eCURSOR_MAX; ::SetCursor( NULL ); return; } eCursor_Type type = eType; /// Ŭ¸¯ À̹ÌÁö »óÅ¿¡¼­´Â ¾ðŬ¸¯ À̹ÌÁö(=±âº»À̹ÌÁö)·Î¸¸ º¯°æÀÌ °¡´ÉÇÏ´Ù. if( mCurCursorType == eCURSOR_CLICK ) { if( type == eCURSOR_UNCLICK ) { type = eCURSOR_DEFAULT; } else return; } else if( type == eCURSOR_CLICK ) /// Ŭ¸¯ À̹ÌÁö´Â ±âº»»óÅ¿¡¼­¸¸ º¯°æ °¡´ÉÇÏ´Ù. { if( mCurCursorType == eCURSOR_DEFAULT ) { type = eCURSOR_CLICK; } else return; } else if( type == eCURSOR_UNCLICK ) /// ±× ¿Ü¿¡ ¾ðŬ¸¯ À̹ÌÁö´Â ¹«½ÃÇÑ´Ù.( ex>Ÿ·Î »óÅ -> ¾ðŬ¸¯ À̹ÌÁö ) { return; } if( STAGEMAN->GetCurrentStage() == eStage_Game ) { if( SKILLEXECUTER->IsFieldSkillCharge() == false ) { if( SKILLEXECUTER->IsSkillCharge() == true ) type = eCURSOR_SKILL; } } /// µ¿ÀÏÇÏ¸é ´©ÀûµÇ¾î¼­ Á¦´ë·Î ½ÇÇàµÇÁö ¾Ê´Â °æ¿ì°¡ /// ÀÖÀ¸¹Ç·Î ¸®ÅϽÃŲ´Ù if( mCurCursorType == type ) { return; } mCurCursorType = type; ::SetCursor( mCursor[ mCurCursorType ]); }