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:
444
GameTools/CaldronBase/DInput8Mgr.cpp
Normal file
444
GameTools/CaldronBase/DInput8Mgr.cpp
Normal file
@@ -0,0 +1,444 @@
|
||||
// DInput9Mgr.cpp: implementation of the CDInput9Mgr class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "DInput8Mgr.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
int Caldron::Base::CDInput8Mgr::ms_iLockKey = -1;
|
||||
DIMOUSESTATE Caldron::Base::CDInput8Mgr::m_MouseState;
|
||||
int Caldron::Base::CDInput8Mgr::m_iMouseMove[MOUSE_AXISNUMS];
|
||||
char Caldron::Base::CDInput8Mgr::m_strKeys[256];
|
||||
char Caldron::Base::CDInput8Mgr::m_strBackKeys[256];
|
||||
LPDIRECTINPUTDEVICE8 Caldron::Base::CDInput8Mgr::m_lpMouseDevice = NULL;
|
||||
|
||||
Caldron::Base::CDInput8Mgr::CDInput8Mgr()
|
||||
{
|
||||
|
||||
m_lpKeyboardDevice = NULL;
|
||||
m_lpMouseDevice = NULL;
|
||||
m_lpDirectInput = NULL;
|
||||
|
||||
}
|
||||
|
||||
Caldron::Base::CDInput8Mgr::~CDInput8Mgr()
|
||||
{
|
||||
if(m_lpKeyboardDevice)
|
||||
{
|
||||
m_lpKeyboardDevice->Unacquire();
|
||||
SafeRelease(m_lpKeyboardDevice);
|
||||
}
|
||||
if(m_lpMouseDevice)
|
||||
{
|
||||
m_lpMouseDevice->Unacquire();
|
||||
SafeRelease(m_lpMouseDevice);
|
||||
m_lpMouseDevice = NULL;
|
||||
}
|
||||
|
||||
if(m_lpDirectInput)
|
||||
{
|
||||
SafeRelease(m_lpDirectInput);
|
||||
}
|
||||
}
|
||||
|
||||
HRESULT Caldron::Base::CDInput8Mgr::InitInputMgr(HINSTANCE hInstance,HWND hWnd,DWORD dwKeyboardLevel,DWORD dwMouseLevel)
|
||||
{
|
||||
HRESULT hr;
|
||||
// direct input create
|
||||
if(Failed(hr = DirectInput8Create(hInstance,DIRECTINPUT_VERSION,IID_IDirectInput8,(void **)&m_lpDirectInput,NULL)))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : DInput8 Create Failed");
|
||||
return hr;
|
||||
|
||||
}
|
||||
//device create
|
||||
if(Failed(hr = m_lpDirectInput->CreateDevice(GUID_SysMouse,&m_lpMouseDevice,NULL)))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Mouse Device Create Failed");
|
||||
return hr;
|
||||
}
|
||||
if(Failed(hr = m_lpDirectInput->CreateDevice(GUID_SysKeyboard,&m_lpKeyboardDevice,NULL)))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Keyboard Device Create Failed");
|
||||
return hr;
|
||||
|
||||
}
|
||||
|
||||
//device information interface setting
|
||||
if(Failed(hr = m_lpKeyboardDevice->SetDataFormat(&c_dfDIKeyboard)))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Keyboard DataFormat Set Failed");
|
||||
return hr;
|
||||
|
||||
}
|
||||
if(Failed(hr = m_lpMouseDevice->SetDataFormat(&c_dfDIMouse)))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Mouse DataFormat Set Failed");
|
||||
return hr;
|
||||
|
||||
}
|
||||
|
||||
//device cooperative setting (Ű ¾î¶»°Ô °¡·ÎÿÁö.)
|
||||
if(Failed(hr = m_lpKeyboardDevice->SetCooperativeLevel(hWnd,dwKeyboardLevel)))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Keyboard CooperativeLevel Set Failed");
|
||||
return hr;
|
||||
|
||||
}
|
||||
if(Failed(hr = m_lpMouseDevice->SetCooperativeLevel(hWnd,dwMouseLevel)))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Mouse CooperativeLevel Set Failed");
|
||||
return hr;
|
||||
|
||||
}
|
||||
|
||||
//device acquire
|
||||
|
||||
if(Failed(hr = m_lpKeyboardDevice->Acquire()))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : KeyBoard Acquire Failed");
|
||||
return hr;
|
||||
}
|
||||
if(Failed(hr = m_lpMouseDevice->Acquire()))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Mouse Acquire Failed");
|
||||
return hr;
|
||||
|
||||
}
|
||||
|
||||
// information update
|
||||
memset(m_strKeys,0,sizeof(char) * 256);
|
||||
memset(m_strBackKeys,0,sizeof(char) * 256);
|
||||
|
||||
|
||||
if(Failed(hr = m_lpKeyboardDevice->GetDeviceState(256,&m_strKeys)))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Keyboard DeviceState Read Failed");
|
||||
return hr;
|
||||
|
||||
}
|
||||
if(Failed(hr = m_lpMouseDevice->GetDeviceState(sizeof(DIMOUSESTATE),&m_MouseState)))
|
||||
{
|
||||
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Mouse DeviceState Read Failed");
|
||||
return hr;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
}
|
||||
HRESULT Caldron::Base::CDInput8Mgr::Acquire()
|
||||
{
|
||||
HRESULT hr;
|
||||
if(Failed(hr = m_lpMouseDevice->Acquire()))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Mouse Acquire Failed");
|
||||
return hr;
|
||||
}
|
||||
if(Failed(hr = m_lpKeyboardDevice->Acquire()))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Keyboard Acquire Failed");
|
||||
return hr;
|
||||
}
|
||||
|
||||
return S_OK;
|
||||
|
||||
}
|
||||
HRESULT Caldron::Base::CDInput8Mgr::Unacquire()
|
||||
{
|
||||
HRESULT hr;
|
||||
if(Failed(hr = m_lpMouseDevice->Unacquire()))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Mouse Unacquire Failed");
|
||||
return hr;
|
||||
|
||||
}
|
||||
|
||||
if(Failed(hr = m_lpKeyboardDevice->Unacquire()))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Keyboard Unacquire Failed");
|
||||
return hr;
|
||||
}
|
||||
return S_OK;
|
||||
|
||||
}
|
||||
|
||||
bool Caldron::Base::CDInput8Mgr ::PushButton(int index,int iKey)
|
||||
{
|
||||
if(ms_iLockKey != iKey)
|
||||
return false;
|
||||
|
||||
HRESULT hr;
|
||||
if(Failed(hr = m_lpMouseDevice->Acquire()))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Mouse Acquire Failed");
|
||||
return false;
|
||||
|
||||
}
|
||||
if(Failed(hr = m_lpMouseDevice->GetDeviceState(sizeof(DIMOUSESTATE),&m_MouseState)))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Mouse DeviceState Get Failed");
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
return (m_MouseState.rgbButtons[index] &0x80) ? true : false;
|
||||
}
|
||||
|
||||
bool Caldron::Base::CDInput8Mgr::UpButton(int index,int iKey)
|
||||
{
|
||||
if(ms_iLockKey != iKey)
|
||||
return false;
|
||||
|
||||
HRESULT hr;
|
||||
if(Failed(hr = m_lpMouseDevice->Acquire()))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Mouse Acquire Failed");
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
if(Failed(hr = m_lpMouseDevice->GetDeviceState(sizeof(DIMOUSESTATE),&m_MouseState)))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Mouse DeviceState Get Failed");
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
return (m_MouseState.rgbButtons[index] &0x80) ? false : true;
|
||||
}
|
||||
bool Caldron::Base::CDInput8Mgr:: PushOnceKey(int index,int iKey)
|
||||
{
|
||||
if(ms_iLockKey != iKey)
|
||||
return false;
|
||||
|
||||
bool bReturn = (m_strKeys[index] &0x80) ? true : false;
|
||||
if(bReturn && (m_strBackKeys[index] != m_strKeys[index]))
|
||||
return bReturn;
|
||||
return false;
|
||||
|
||||
}
|
||||
bool Caldron::Base::CDInput8Mgr::KeyStrok(char *strBuffer,int &iPos)
|
||||
{
|
||||
bool bPush = false;
|
||||
|
||||
for(int i = 0; i < 256; i++ )
|
||||
{
|
||||
|
||||
bPush = (m_strKeys[i] &0x80) ? true : false;
|
||||
if(bPush && (m_strBackKeys[i] != m_strKeys[i])) {
|
||||
switch(i)
|
||||
{
|
||||
case 0x02:
|
||||
strBuffer[iPos++] = '1';
|
||||
break;
|
||||
case 0x03:
|
||||
strBuffer[iPos++] = '2';
|
||||
break;
|
||||
case 0x04:
|
||||
strBuffer[iPos++] = '3';
|
||||
break;
|
||||
case 0x05:
|
||||
strBuffer[iPos++] = '4';
|
||||
break;
|
||||
case 0x06:
|
||||
strBuffer[iPos++] = '5';
|
||||
break;
|
||||
case 0x07:
|
||||
strBuffer[iPos++] = '6';
|
||||
break;
|
||||
case 0x08:
|
||||
strBuffer[iPos++] = '7';
|
||||
break;
|
||||
case 0x09:
|
||||
strBuffer[iPos++] = '8';
|
||||
break;
|
||||
case 0x0A:
|
||||
strBuffer[iPos++] = '9';
|
||||
break;
|
||||
case 0x0B:
|
||||
strBuffer[iPos++] = '0';
|
||||
break;
|
||||
case 0x0C:
|
||||
strBuffer[iPos++] = '-';
|
||||
break;
|
||||
case 0x0D:
|
||||
strBuffer[iPos++] = '=';
|
||||
break;
|
||||
case 0x0E:
|
||||
strBuffer[iPos--] = 0;
|
||||
break;
|
||||
case 0x0F:
|
||||
strBuffer[iPos++] = '\t';
|
||||
break;
|
||||
case 0x10:
|
||||
strBuffer[iPos++] = 'Q';
|
||||
break;
|
||||
case 0x11:
|
||||
strBuffer[iPos++] = 'W';
|
||||
break;
|
||||
case 0x12:
|
||||
strBuffer[iPos++] = 'E';
|
||||
break;
|
||||
case 0x13:
|
||||
strBuffer[iPos++] = 'R';
|
||||
break;
|
||||
case 0x14:
|
||||
strBuffer[iPos++] = 'T';
|
||||
break;
|
||||
case 0x15:
|
||||
strBuffer[iPos++] = 'Y';
|
||||
break;
|
||||
case 0x16:
|
||||
strBuffer[iPos++] = 'U';
|
||||
break;
|
||||
case 0x17:
|
||||
strBuffer[iPos++] = 'I';
|
||||
break;
|
||||
case 0x18:
|
||||
strBuffer[iPos++] = 'O';
|
||||
break;
|
||||
case 0x19:
|
||||
strBuffer[iPos++] = 'P';
|
||||
break;
|
||||
case 0x1E:
|
||||
strBuffer[iPos++] = 'A';
|
||||
break;
|
||||
case 0x1F:
|
||||
strBuffer[iPos++] = 'S';
|
||||
break;
|
||||
case 0x20:
|
||||
strBuffer[iPos++] = 'D';
|
||||
break;
|
||||
case 0x21:
|
||||
strBuffer[iPos++] = 'F';
|
||||
break;
|
||||
case 0x22:
|
||||
strBuffer[iPos++] = 'G';
|
||||
break;
|
||||
case 0x23:
|
||||
strBuffer[iPos++] = 'H';
|
||||
break;
|
||||
case 0x24:
|
||||
strBuffer[iPos++] = 'J';
|
||||
break;
|
||||
case 0x25:
|
||||
strBuffer[iPos++] = 'K';
|
||||
break;
|
||||
case 0x26:
|
||||
strBuffer[iPos++] = 'L';
|
||||
break;
|
||||
case 0x27:
|
||||
strBuffer[iPos++] = ';';
|
||||
break;
|
||||
case 0x2B:
|
||||
strBuffer[iPos++] = '\\';
|
||||
break;
|
||||
case 0x2C:
|
||||
strBuffer[iPos++] = 'Z';
|
||||
break;
|
||||
case 0x2D:
|
||||
strBuffer[iPos++] = 'X';
|
||||
break;
|
||||
case 0x2E:
|
||||
strBuffer[iPos++] = 'C';
|
||||
break;
|
||||
case 0x2F:
|
||||
strBuffer[iPos++] = 'V';
|
||||
break;
|
||||
case 0x30:
|
||||
strBuffer[iPos++] = 'B';
|
||||
break;
|
||||
case 0x31:
|
||||
strBuffer[iPos++] = 'N';
|
||||
break;
|
||||
case 0x32:
|
||||
strBuffer[iPos++] = 'M';
|
||||
break;
|
||||
case 0x33:
|
||||
strBuffer[iPos++] = ',';
|
||||
break;
|
||||
case 0x34:
|
||||
strBuffer[iPos++] = '.';
|
||||
break;
|
||||
case 0x39:
|
||||
strBuffer[iPos++] = ' ';
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return bPush;
|
||||
|
||||
}
|
||||
bool Caldron::Base::CDInput8Mgr::PushKey(int index,int iKey)
|
||||
{
|
||||
if(ms_iLockKey != iKey)
|
||||
return false;
|
||||
|
||||
return (m_strKeys[index] &0x80) ? true : false;
|
||||
|
||||
}
|
||||
bool Caldron::Base::CDInput8Mgr:: UpKey(int index,int iKey)
|
||||
{
|
||||
if(ms_iLockKey != iKey)
|
||||
return false;
|
||||
|
||||
return (m_strKeys[index] &0x80) ? false : true;
|
||||
}
|
||||
|
||||
HRESULT Caldron::Base::CDInput8Mgr::Update()
|
||||
{
|
||||
HRESULT hr;
|
||||
|
||||
// Key
|
||||
// memset(m_strKeys,0,256);
|
||||
if(Failed(hr = m_lpKeyboardDevice->Acquire()))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : KeyBoard Acquire Failed");
|
||||
return hr;
|
||||
}
|
||||
memcpy(m_strBackKeys,m_strKeys,sizeof(char) * 256);
|
||||
|
||||
if(Failed(hr = m_lpKeyboardDevice->GetDeviceState(256,&m_strKeys)))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Keyboard DeviceState Get Failed");
|
||||
return hr;
|
||||
|
||||
}
|
||||
|
||||
// Mouse
|
||||
if(Failed(hr = m_lpMouseDevice->Acquire()))
|
||||
{
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Mouse Acquire Failed");
|
||||
return hr;
|
||||
}
|
||||
|
||||
if(Failed(hr = m_lpMouseDevice->GetDeviceState(sizeof(DIMOUSESTATE),&m_MouseState)))
|
||||
{
|
||||
|
||||
CLogMgr::_LogError("CDInput8Mgr::InitInputMgr() : Mouse DeviceState Get Failed");
|
||||
return hr;
|
||||
|
||||
}
|
||||
|
||||
m_iMouseMove[MOUSE_XAXIS] = m_MouseState.lX;
|
||||
m_iMouseMove[MOUSE_YAXIS] = m_MouseState.lY;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
void Caldron::Base::CDInput8Mgr::GetMouseMove(int &iX,int &iY,int iKey)
|
||||
{
|
||||
if(ms_iLockKey != iKey)
|
||||
{
|
||||
iX = 0;
|
||||
iY = 0;
|
||||
}
|
||||
iX = m_iMouseMove[MOUSE_XAXIS];
|
||||
iY = m_iMouseMove[MOUSE_YAXIS];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user