// 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: // ¸ÞÀÎ ¸Þ´º 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: // ¼¼ºÎ ¿É¼Ç 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()) // ÆÄƼ °ÅºÎ { 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()) // ±³È¯ °ÅºÎ { 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()) // ±Ó¼Ó¸» °ÅºÎ { 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()) // °áÅõ °ÅºÎ { 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()) // Ä£±¸ µî·Ï °ÅºÎ { 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); }