// HumanQuest.cpp: implementation of the CHumanQuest class. // ////////////////////////////////////////////////////////////////////// #include "ClientMain.h" #include "HumanQuest.h" #include "WinInput.h" #include "GUITextEdit.h" #include "GUITooltipItem.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CHumanQuest::CHumanQuest() { } CHumanQuest::~CHumanQuest() { } BOOL CHumanQuest::Init(unsigned short x, unsigned short y) { CSprite *lpSprite; lpSprite = new CSprite; lpSprite->Create(x, y, 0, 0, 222, 256, g_ClientMain.m_lpInterface->m_lstTexture[50]); m_lstSprite.push_back(lpSprite); lpSprite = new CSprite; lpSprite->Create(x, y + 256, 0, 0, 222, 224, g_ClientMain.m_lpInterface->m_lstTexture[51]); m_lstSprite.push_back(lpSprite); lpSprite = new CSprite; lpSprite->Create(x, y + 56, 0, 0, 222, 256, g_ClientMain.m_lpInterface->m_lstTexture[52]); m_lstSprite.push_back(lpSprite); lpSprite = new CSprite; lpSprite->Create(x, y + 312, 0, 0, 222, 168, g_ClientMain.m_lpInterface->m_lstTexture[53]); m_lstSprite.push_back(lpSprite); lpSprite = new CSprite; lpSprite->Create(x, y + 56, 0, 0, 222, 256, g_ClientMain.m_lpInterface->m_lstTexture[54]); m_lstSprite.push_back(lpSprite); lpSprite = new CSprite; lpSprite->Create(x, y + 312, 0, 0, 222, 168, g_ClientMain.m_lpInterface->m_lstTexture[55]); m_lstSprite.push_back(lpSprite); lpSprite = new CSprite; lpSprite->Create(x + 4, y + 26, 0, 54, 107, 84, g_ClientMain.m_lpInterface->m_lstTexture[56]); m_lstSprite.push_back(lpSprite); lpSprite = new CSprite; lpSprite->Create(x + 4, y + 26, 0, 84, 107, 114, g_ClientMain.m_lpInterface->m_lstTexture[56]); m_lstSprite.push_back(lpSprite); lpSprite = new CSprite; lpSprite->Create(0, 0, 0, 0, 107, 54, g_ClientMain.m_lpInterface->m_lstTexture[56]); m_lstSprite.push_back(lpSprite); 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; } void CHumanQuest::InitValue(void) { m_dwStartQuest = 0; m_dwStartDesc = 0; m_dwStartDone = 0; m_dwQuestWindowMode = 0; } BOOL CHumanQuest::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; } } if(g_DeviceInput.GetIsLeftMouseDown()) { if(g_DeviceInput.InRect(m_rcWindowSize.left + 4, m_rcWindowSize.top + 26, m_rcWindowSize.left + 58, m_rcWindowSize.top + 56)) { m_dwQuestWindowMode = 0; } else if(g_DeviceInput.InRect(m_rcWindowSize.left + 58, m_rcWindowSize.top + 26, m_rcWindowSize.left + 111, m_rcWindowSize.top + 56)) { m_dwQuestWindowMode = 1; } } return TRUE; } void CHumanQuest::ShowWindow(BOOL bShow) { m_bShow = bShow; } void CHumanQuest::Render(LPDIRECT3DDEVICE8 lpD3DDevice) { m_lstSprite[0]->Render(lpD3DDevice); m_lstSprite[1]->Render(lpD3DDevice); switch(m_dwQuestWindowMode) { case 0: m_lstSprite[6]->Render(lpD3DDevice); m_lstSprite[2]->Render(lpD3DDevice); m_lstSprite[3]->Render(lpD3DDevice); break; case 1: m_lstSprite[7]->Render(lpD3DDevice); m_lstSprite[4]->Render(lpD3DDevice); m_lstSprite[5]->Render(lpD3DDevice); break; } }