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>
143 lines
3.8 KiB
C++
143 lines
3.8 KiB
C++
// 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;
|
|
}
|
|
}
|