Files
Client/GameTools/NeoRylClient/CommonOption.cpp
LGram16 dd97ddec92 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>
2025-11-29 20:17:20 +09:00

383 lines
15 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// CommonOption.cpp: implementation of the CCommonOption class.
//
//////////////////////////////////////////////////////////////////////
#include "ClientMain.h"
#include "CommonOption.h"
#include "WinInput.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCommonOption::CCommonOption()
{
}
CCommonOption::~CCommonOption()
{
}
void CCommonOption::InitValue()
{
m_dwShowOption = 0;
m_dwStartMusic = 0;
m_dwStartSound = 0;
m_ButtonManager.m_lstButton[0]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[1]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[2]->ShowButton(TRUE);
m_ButtonManager.m_lstButton[3]->ShowButton(TRUE);
m_ButtonManager.m_lstButton[4]->ShowButton(TRUE);
m_ButtonManager.m_lstButton[5]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[6]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[7]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[8]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[9]->ShowButton(FALSE);
}
BOOL CCommonOption::Init(unsigned short x, unsigned short y)
{
CSprite *lpSprite;
lpSprite = new CSprite;
lpSprite->Create(x, y, 0, 0, 222, 217, g_ClientMain.m_lpInterface->m_lstTexture[19]);
m_lstSprite.push_back(lpSprite);
lpSprite = new CSprite;
lpSprite->Create(x, y, 0, 0, 222, 217, g_ClientMain.m_lpInterface->m_lstTexture[21]);
m_lstSprite.push_back(lpSprite);
lpSprite = new CSprite;
lpSprite->Create(x, y + 217, 0, 0, 222, 114, g_ClientMain.m_lpInterface->m_lstTexture[40]);
m_lstSprite.push_back(lpSprite);
CGUIButton *lpButton;
lpButton = new CGUIButton;
lpButton->m_nMethod = BUTTON_SIMPLE;
lpButton->m_lpNormalButton = new CSprite;
lpButton->m_lpNormalButton->Create(48, 59, 48, 59, 175, 85, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpButton->m_lpClickMouseButton = new CSprite;
lpButton->m_lpClickMouseButton->Create(48, 59, 0, 220, 127, 246, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpButton->SetTooltip(&m_TooltipManager, "");
lpButton->SetMove(x, y);
m_ButtonManager.AddButton(lpButton);
lpButton = new CGUIButton;
lpButton->m_nMethod = BUTTON_SIMPLE;
lpButton->m_lpNormalButton = new CSprite;
lpButton->m_lpNormalButton->Create(77, 291, 77, 74, 145, 100, g_ClientMain.m_lpInterface->m_lstTexture[40]);
lpButton->m_lpClickMouseButton = new CSprite;
lpButton->m_lpClickMouseButton->Create(77, 291, 127, 220, 195, 246, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpButton->SetTooltip(&m_TooltipManager, "");
lpButton->SetMove(x, y);
m_ButtonManager.AddButton(lpButton);
lpButton = new CGUIButton;
lpButton->m_nMethod = BUTTON_NORMAL;
lpButton->m_lpNormalButton = new CSprite;
lpButton->m_lpNormalButton->Create(41, 102, 41, 102, 182, 118, g_ClientMain.m_lpInterface->m_lstTexture[19]);
lpButton->m_lpOnMouseButton = new CSprite;
lpButton->m_lpOnMouseButton->Create(41, 102, 0, 32, 141, 48, g_ClientMain.m_lpInterface->m_lstTexture[20]);
lpButton->m_lpClickMouseButton = new CSprite;
lpButton->m_lpClickMouseButton->Create(41, 102, 0, 112, 141, 128, g_ClientMain.m_lpInterface->m_lstTexture[20]);
lpButton->SetTooltip(&m_TooltipManager, "");
lpButton->SetMove(x, y);
m_ButtonManager.AddButton(lpButton);
lpButton = new CGUIButton;
lpButton->m_nMethod = BUTTON_NORMAL;
lpButton->m_lpNormalButton = new CSprite;
lpButton->m_lpNormalButton->Create(41, 136, 41, 136, 182, 152, g_ClientMain.m_lpInterface->m_lstTexture[19]);
lpButton->m_lpOnMouseButton = new CSprite;
lpButton->m_lpOnMouseButton->Create(41, 136, 0, 48, 141, 64, g_ClientMain.m_lpInterface->m_lstTexture[20]);
lpButton->m_lpClickMouseButton = new CSprite;
lpButton->m_lpClickMouseButton->Create(41, 136, 0, 128, 141, 144, g_ClientMain.m_lpInterface->m_lstTexture[20]);
lpButton->SetTooltip(&m_TooltipManager, "");
lpButton->SetMove(x, y);
m_ButtonManager.AddButton(lpButton);
lpButton = new CGUIButton;
lpButton->m_nMethod = BUTTON_NORMAL;
lpButton->m_lpNormalButton = new CSprite;
lpButton->m_lpNormalButton->Create(41, 172, 41, 172, 182, 188, g_ClientMain.m_lpInterface->m_lstTexture[19]);
lpButton->m_lpOnMouseButton = new CSprite;
lpButton->m_lpOnMouseButton->Create(41, 172, 0, 64, 141, 80, g_ClientMain.m_lpInterface->m_lstTexture[20]);
lpButton->m_lpClickMouseButton = new CSprite;
lpButton->m_lpClickMouseButton->Create(41, 172, 0, 144, 141, 160, g_ClientMain.m_lpInterface->m_lstTexture[20]);
lpButton->SetTooltip(&m_TooltipManager, "");
lpButton->SetMove(x, y);
m_ButtonManager.AddButton(lpButton);
lpButton = new CGUIButton;
lpButton->m_nMethod = BUTTON_SIMPLECHECK;
lpButton->m_lpNormalButton = new CSprite;
lpButton->m_lpNormalButton->Create(30, 169, 30, 169, 48, 186, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpButton->m_lpClickMouseButton = new CSprite;
lpButton->m_lpClickMouseButton->Create(30, 169, 195, 229, 213, 246, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpButton->SetTooltip(&m_TooltipManager, "");
lpButton->SetMove(x, y);
m_ButtonManager.AddButton(lpButton);
lpButton = new CGUIButton;
lpButton->m_nMethod = BUTTON_SIMPLECHECK;
lpButton->m_lpNormalButton = new CSprite;
lpButton->m_lpNormalButton->Create(30, 193, 30, 193, 48, 210, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpButton->m_lpClickMouseButton = new CSprite;
lpButton->m_lpClickMouseButton->Create(30, 193, 195, 229, 213, 246, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpButton->SetTooltip(&m_TooltipManager, "");
lpButton->SetMove(x, y);
m_ButtonManager.AddButton(lpButton);
lpButton = new CGUIButton;
lpButton->m_nMethod = BUTTON_SIMPLECHECK;
lpButton->m_lpNormalButton = new CSprite;
lpButton->m_lpNormalButton->Create(30, 217, 30, 0, 48, 17, g_ClientMain.m_lpInterface->m_lstTexture[40]);
lpButton->m_lpClickMouseButton = new CSprite;
lpButton->m_lpClickMouseButton->Create(30, 217, 195, 229, 213, 246, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpButton->SetTooltip(&m_TooltipManager, "");
lpButton->SetMove(x, y);
m_ButtonManager.AddButton(lpButton);
lpButton = new CGUIButton;
lpButton->m_nMethod = BUTTON_SIMPLECHECK;
lpButton->m_lpNormalButton = new CSprite;
lpButton->m_lpNormalButton->Create(30, 241, 30, 24, 48, 41, g_ClientMain.m_lpInterface->m_lstTexture[40]);
lpButton->m_lpClickMouseButton = new CSprite;
lpButton->m_lpClickMouseButton->Create(30, 241, 195, 229, 213, 246, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpButton->SetTooltip(&m_TooltipManager, "");
lpButton->SetMove(x, y);
m_ButtonManager.AddButton(lpButton);
lpButton = new CGUIButton;
lpButton->m_nMethod = BUTTON_SIMPLECHECK;
lpButton->m_lpNormalButton = new CSprite;
lpButton->m_lpNormalButton->Create(30, 265, 30, 24, 48, 41, g_ClientMain.m_lpInterface->m_lstTexture[40]);
lpButton->m_lpClickMouseButton = new CSprite;
lpButton->m_lpClickMouseButton->Create(30, 265, 195, 229, 213, 246, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpButton->SetTooltip(&m_TooltipManager, "");
lpButton->SetMove(x, y);
m_ButtonManager.AddButton(lpButton);
CGUIScroll *lpScroll;
lpScroll = new CGUIScroll;
lpScroll->m_lpBarButton = new CGUIButton;
lpScroll->m_lpBarButton->m_nMethod = BUTTON_SIMPLE;
lpScroll->m_lpBarButton->m_lpNormalButton = new CSprite;
lpScroll->m_lpBarButton->m_lpNormalButton->Create(83, 105, 195, 220, 211, 229, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpScroll->m_lpBarButton->m_lpClickMouseButton = new CSprite;
lpScroll->m_lpBarButton->m_lpClickMouseButton->Create(83, 105, 195, 220, 211, 229, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpScroll->m_lValue = (long *)&m_dwStartMusic;
lpScroll->SetScrollKind(SCROLL_HSCROLL);
lpScroll->SetMove(x, y);
lpScroll->SetPosition(83, 105);
lpScroll->SetEdge(0, 0, 102, 11);
lpScroll->SetRange(0, 6);
m_lstScroll.push_back(lpScroll);
lpScroll = new CGUIScroll;
lpScroll->m_lpBarButton = new CGUIButton;
lpScroll->m_lpBarButton->m_nMethod = BUTTON_SIMPLE;
lpScroll->m_lpBarButton->m_lpNormalButton = new CSprite;
lpScroll->m_lpBarButton->m_lpNormalButton->Create(83, 127, 195, 220, 211, 229, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpScroll->m_lpBarButton->m_lpClickMouseButton = new CSprite;
lpScroll->m_lpBarButton->m_lpClickMouseButton->Create(83, 127, 195, 220, 211, 229, g_ClientMain.m_lpInterface->m_lstTexture[21]);
lpScroll->m_lValue = (long *)&m_dwStartMusic;
lpScroll->SetScrollKind(SCROLL_HSCROLL);
lpScroll->SetMove(x, y);
lpScroll->SetPosition(83, 127);
lpScroll->SetEdge(0, 0, 102, 11);
lpScroll->SetRange(0, 6);
m_lstScroll.push_back(lpScroll);
m_bShow = FALSE;
m_dwWindowKind = WINDOW_FIX;
m_rcWindowSize.left = x; m_rcWindowSize.top = y;
m_rcWindowSize.right = x + 222; m_rcWindowSize.bottom = y + 480;
m_rcMoveEdge.left = x; m_rcMoveEdge.top = y;
m_rcMoveEdge.right = x + 150; m_rcMoveEdge.bottom = y + 20;
InitValue();
return TRUE;
}
BOOL CCommonOption::Update(BOOL &bClick, BOOL &bEdge)
{
if(g_DeviceInput.InRect(m_rcWindowSize.left, m_rcWindowSize.top, m_rcWindowSize.right, m_rcWindowSize.bottom))
{
bEdge = TRUE;
if(g_DeviceInput.GetIsLeftMouseDown() || g_DeviceInput.GetIsMiddleMouseDown() || g_DeviceInput.GetIsRightMouseDown() ||
g_DeviceInput.GetIsLeftMousePress() || g_DeviceInput.GetIsMiddleMousePress() || g_DeviceInput.GetIsRightMousePress() ||
g_DeviceInput.GetIsLeftMouseUp() || g_DeviceInput.GetIsMiddleMouseUp() || g_DeviceInput.GetIsRightMouseUp())
{
bClick = TRUE;
}
}
m_ButtonManager.Update();
m_TooltipManager.Update();
switch(m_dwShowOption)
{
case 0: // <20><><EFBFBD><EFBFBD> <20>޴<EFBFBD>
if(m_ButtonManager.m_lstButton[2]->m_nState == BUTTON_CLICK)
{
SendMessage(g_ClientMain.m_hWnd, WM_DESTROY, 0, 0);
g_ClientMain.m_dwClientMode = CLIENT_END;
return FALSE;
} else if(m_ButtonManager.m_lstButton[3]->m_nState == BUTTON_CLICK)
{
m_dwShowOption = 1;
m_ButtonManager.m_lstButton[0]->ShowButton(TRUE);
m_ButtonManager.m_lstButton[1]->ShowButton(TRUE);
m_ButtonManager.m_lstButton[2]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[3]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[4]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[5]->ShowButton(TRUE);
m_ButtonManager.m_lstButton[6]->ShowButton(TRUE);
m_ButtonManager.m_lstButton[7]->ShowButton(TRUE);
m_ButtonManager.m_lstButton[8]->ShowButton(TRUE);
m_ButtonManager.m_lstButton[9]->ShowButton(TRUE);
} else if(m_ButtonManager.m_lstButton[4]->m_nState == BUTTON_CLICK)
{
m_bShow = FALSE;
}
break;
case 1: // <20><><EFBFBD><EFBFBD> <20>ɼ<EFBFBD>
if(m_ButtonManager.m_lstButton[0]->m_nState == BUTTON_CLICK)
{
} else if(m_ButtonManager.m_lstButton[1]->m_nState == BUTTON_CLICK)
{
m_dwShowOption = 0;
m_ButtonManager.m_lstButton[0]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[1]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[2]->ShowButton(TRUE);
m_ButtonManager.m_lstButton[3]->ShowButton(TRUE);
m_ButtonManager.m_lstButton[4]->ShowButton(TRUE);
m_ButtonManager.m_lstButton[5]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[6]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[7]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[8]->ShowButton(FALSE);
m_ButtonManager.m_lstButton[9]->ShowButton(FALSE);
}
m_lstScroll[0]->Update();
m_lstScroll[1]->Update();
break;
}
if(g_DeviceInput.InRect(m_rcWindowSize.left + 30, m_rcWindowSize.top + 169, m_rcWindowSize.left + 48, m_rcWindowSize.top + 186) && g_DeviceInput.GetIsLeftMouseDown()) // <20><>Ƽ <20>ź<EFBFBD>
{
RejectOption roOption;
roOption.m_wReject = g_ClientMain.m_roOption.m_wReject;
if(roOption.Reject.m_Party)
roOption.Reject.m_Party = 0;
else
roOption.Reject.m_Party = 1;
g_ClientMain.m_Network.m_pSocket->CharControlOption(g_ClientMain.m_dwMyChrID, roOption);
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 30, m_rcWindowSize.top + 193, m_rcWindowSize.left + 48, m_rcWindowSize.top + 210) && g_DeviceInput.GetIsLeftMouseDown()) // <20><>ȯ <20>ź<EFBFBD>
{
RejectOption roOption;
roOption.m_wReject = g_ClientMain.m_roOption.m_wReject;
if(roOption.Reject.m_Exchange)
roOption.Reject.m_Exchange = 0;
else
roOption.Reject.m_Exchange = 1;
g_ClientMain.m_Network.m_pSocket->CharControlOption(g_ClientMain.m_dwMyChrID, roOption);
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 30, m_rcWindowSize.top + 217, m_rcWindowSize.left + 48, m_rcWindowSize.top + 234) && g_DeviceInput.GetIsLeftMouseDown()) // <20>ӼӸ<D3BC> <20>ź<EFBFBD>
{
RejectOption roOption;
roOption.m_wReject = g_ClientMain.m_roOption.m_wReject;
if(roOption.Reject.m_Whisper)
roOption.Reject.m_Whisper = 0;
else
roOption.Reject.m_Whisper = 1;
g_ClientMain.m_Network.m_pSocket->CharControlOption(g_ClientMain.m_dwMyChrID, roOption);
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 30, m_rcWindowSize.top + 241, m_rcWindowSize.left + 48, m_rcWindowSize.top + 258) && g_DeviceInput.GetIsLeftMouseDown()) // <20><><EFBFBD><EFBFBD> <20>ź<EFBFBD>
{
RejectOption roOption;
roOption.m_wReject = g_ClientMain.m_roOption.m_wReject;
if(roOption.Reject.m_Duel)
roOption.Reject.m_Duel = 0;
else
roOption.Reject.m_Duel = 1;
g_ClientMain.m_Network.m_pSocket->CharControlOption(g_ClientMain.m_dwMyChrID, roOption);
} else if(g_DeviceInput.InRect(m_rcWindowSize.left + 30, m_rcWindowSize.top + 265, m_rcWindowSize.left + 48, m_rcWindowSize.top + 282) && g_DeviceInput.GetIsLeftMouseDown()) // ģ<><C4A3> <20><><EFBFBD><EFBFBD> <20>ź<EFBFBD>
{
RejectOption roOption;
roOption.m_wReject = g_ClientMain.m_roOption.m_wReject;
if(roOption.Reject.m_Friend)
roOption.Reject.m_Friend = 0;
else
roOption.Reject.m_Friend = 1;
g_ClientMain.m_Network.m_pSocket->CharControlOption(g_ClientMain.m_dwMyChrID, roOption);
}
return TRUE;
}
void CCommonOption::Render(LPDIRECT3DDEVICE8 lpD3DDevice)
{
switch(m_dwShowOption)
{
case 0:
m_lstSprite[0]->Render(lpD3DDevice, m_cAlpha);
break;
case 1:
m_lstSprite[1]->Render(lpD3DDevice, m_cAlpha);
m_lstSprite[2]->Render(lpD3DDevice, m_cAlpha);
if(g_ClientMain.m_roOption.Reject.m_Party)
m_ButtonManager.m_lstButton[5]->m_nState = BUTTON_ON;
else
m_ButtonManager.m_lstButton[5]->m_nState = BUTTON_OFF;
if(g_ClientMain.m_roOption.Reject.m_Exchange)
m_ButtonManager.m_lstButton[6]->m_nState = BUTTON_ON;
else
m_ButtonManager.m_lstButton[6]->m_nState = BUTTON_OFF;
if(g_ClientMain.m_roOption.Reject.m_Whisper)
m_ButtonManager.m_lstButton[7]->m_nState = BUTTON_ON;
else
m_ButtonManager.m_lstButton[7]->m_nState = BUTTON_OFF;
if(g_ClientMain.m_roOption.Reject.m_Duel)
m_ButtonManager.m_lstButton[8]->m_nState = BUTTON_ON;
else
m_ButtonManager.m_lstButton[8]->m_nState = BUTTON_OFF;
if(g_ClientMain.m_roOption.Reject.m_Friend)
m_ButtonManager.m_lstButton[9]->m_nState = BUTTON_ON;
else
m_ButtonManager.m_lstButton[9]->m_nState = BUTTON_OFF;
m_lstScroll[0]->Render(lpD3DDevice, m_cAlpha);
m_lstScroll[1]->Render(lpD3DDevice, m_cAlpha);
break;
}
m_ButtonManager.Render(lpD3DDevice);
}