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>
154 lines
5.4 KiB
C++
154 lines
5.4 KiB
C++
// HumanSimpleWindow.cpp: implementation of the CHumanSimpleWindow class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#include "ClientMain.h"
|
|
#include "HumanSimpleWindow.h"
|
|
#include "WinInput.h"
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Construction/Destruction
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
CHumanSimpleWindow::CHumanSimpleWindow()
|
|
{
|
|
|
|
}
|
|
|
|
CHumanSimpleWindow::~CHumanSimpleWindow()
|
|
{
|
|
|
|
}
|
|
|
|
BOOL CHumanSimpleWindow::Init(unsigned short x, unsigned short y)
|
|
{
|
|
CSprite *lpSprite;
|
|
lpSprite = new CSprite;
|
|
lpSprite->Create(x, y, 40, 2, 80, 156, g_ClientMain.m_lpInterface->m_lstTexture[26]);
|
|
m_lstSprite.push_back(lpSprite);
|
|
|
|
lpSprite = new CSprite; // HP
|
|
lpSprite->Create(x + 3, y + 9, 82, 0, 92, 136, g_ClientMain.m_lpInterface->m_lstTexture[26]);
|
|
lpSprite->SetDirection(FALSE);
|
|
m_lstSprite.push_back(lpSprite);
|
|
|
|
lpSprite = new CSprite; // MP
|
|
lpSprite->Create(x + 18, y + 9, 92, 0, 102, 136, g_ClientMain.m_lpInterface->m_lstTexture[26]);
|
|
lpSprite->SetDirection(FALSE);
|
|
m_lstSprite.push_back(lpSprite);
|
|
|
|
lpSprite = new CSprite; // EXP
|
|
lpSprite->Create(x + 34, y + 9, 102, 0, 104, 136, g_ClientMain.m_lpInterface->m_lstTexture[26]);
|
|
lpSprite->SetDirection(FALSE);
|
|
m_lstSprite.push_back(lpSprite);
|
|
|
|
CGUITooltipButton *lpTooltip;
|
|
lpTooltip = new CGUITooltipButton;
|
|
lpTooltip->InitTooltip(g_StringTable.m_strString[207]);
|
|
lpTooltip->SetRect(3, 8, 12, 144);
|
|
m_TooltipManager.AddTooltip(lpTooltip);
|
|
|
|
lpTooltip = new CGUITooltipButton;
|
|
lpTooltip->InitTooltip(g_StringTable.m_strString[208]);
|
|
lpTooltip->SetRect(17, 8, 27, 144);
|
|
m_TooltipManager.AddTooltip(lpTooltip);
|
|
|
|
lpTooltip = new CGUITooltipButton;
|
|
lpTooltip->InitTooltip(g_StringTable.m_strString[209]);
|
|
lpTooltip->SetRect(33, 8, 35, 144);
|
|
m_TooltipManager.AddTooltip(lpTooltip);
|
|
|
|
m_dwWindowKind = WINDOW_FIX;
|
|
|
|
m_rcWindowSize.left = x; m_rcWindowSize.top = y;
|
|
m_rcWindowSize.right = x + 40; m_rcWindowSize.bottom = y + 155;
|
|
|
|
m_rcMoveEdge.left = x; m_rcMoveEdge.top = y;
|
|
m_rcMoveEdge.right = x + 40; m_rcMoveEdge.bottom = y + 155;
|
|
|
|
InitValue();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CHumanSimpleWindow::InitValue(void)
|
|
{
|
|
}
|
|
|
|
BOOL CHumanSimpleWindow::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;
|
|
}
|
|
}
|
|
|
|
char strString[MAX_PATH];
|
|
|
|
sprintf(strString, "%d / %d", g_ClientMain.m_csStatus.m_Info.HP, g_ClientMain.m_csStatus.m_MaxHP + g_ClientMain.m_csStatus.m_lAddMaxHP);
|
|
((CGUITooltipButton *)m_TooltipManager.m_lstTooltip[0])->InitTooltip(strString);
|
|
m_lstSprite[1]->SetRate((float)g_ClientMain.m_csStatus.m_Info.HP / (float)(g_ClientMain.m_csStatus.m_MaxHP + g_ClientMain.m_csStatus.m_lAddMaxHP));
|
|
|
|
sprintf(strString, "%d / %d", g_ClientMain.m_csStatus.m_Info.MP, g_ClientMain.m_csStatus.m_MaxMP + g_ClientMain.m_csStatus.m_lAddMaxMP);
|
|
((CGUITooltipButton *)m_TooltipManager.m_lstTooltip[1])->InitTooltip(strString);
|
|
m_lstSprite[2]->SetRate((float)g_ClientMain.m_csStatus.m_Info.MP / (float)(g_ClientMain.m_csStatus.m_MaxMP + g_ClientMain.m_csStatus.m_lAddMaxMP));
|
|
|
|
unsigned long dwExp, dwExpMax;
|
|
char strExp[2], strExpMax[2];
|
|
if(1000000 < g_ClientMain.m_csStatus.m_Info.Exp && g_ClientMain.m_csStatus.m_Info.Exp <= 1000000000)
|
|
{
|
|
dwExp = g_ClientMain.m_csStatus.m_Info.Exp / 1000;
|
|
strcpy(strExp, "K");
|
|
} else if(1000000000 < g_ClientMain.m_csStatus.m_Info.Exp && g_ClientMain.m_csStatus.m_Info.Exp <= 1000000000000)
|
|
{
|
|
dwExp = g_ClientMain.m_csStatus.m_Info.Exp / 1000000;
|
|
strcpy(strExp, "M");
|
|
} else if(1000000000000 < g_ClientMain.m_csStatus.m_Info.Exp && g_ClientMain.m_csStatus.m_Info.Exp <= 1000000000000000)
|
|
{
|
|
dwExp = g_ClientMain.m_csStatus.m_Info.Exp / 1000000000;
|
|
strcpy(strExp, "T");
|
|
} else
|
|
{
|
|
dwExp = g_ClientMain.m_csStatus.m_Info.Exp;
|
|
strcpy(strExp, "");
|
|
}
|
|
if(1000000 < g_ClientMain.m_csStatus.m_llExpMax && g_ClientMain.m_csStatus.m_llExpMax <= 1000000000)
|
|
{
|
|
dwExpMax = g_ClientMain.m_csStatus.m_llExpMax / 1000;
|
|
strcpy(strExpMax, "K");
|
|
} else if(1000000000 < g_ClientMain.m_csStatus.m_llExpMax && g_ClientMain.m_csStatus.m_llExpMax <= 1000000000000)
|
|
{
|
|
dwExpMax = g_ClientMain.m_csStatus.m_llExpMax / 1000000;
|
|
strcpy(strExpMax, "M");
|
|
} else if(1000000000000 < g_ClientMain.m_csStatus.m_llExpMax && g_ClientMain.m_csStatus.m_llExpMax <= 1000000000000000)
|
|
{
|
|
dwExpMax = g_ClientMain.m_csStatus.m_llExpMax / 1000000000;
|
|
strcpy(strExpMax, "T");
|
|
} else
|
|
{
|
|
dwExpMax = g_ClientMain.m_csStatus.m_llExpMax;
|
|
strcpy(strExpMax, "");
|
|
}
|
|
sprintf(strString, "%d%s / %d%s", dwExp, strExp, dwExpMax, strExpMax);
|
|
((CGUITooltipButton *)m_TooltipManager.m_lstTooltip[2])->InitTooltip(strString);
|
|
m_lstSprite[3]->SetRate((double)g_ClientMain.m_csStatus.m_Info.Exp / (double)g_ClientMain.m_csStatus.m_llExpMax);
|
|
|
|
m_TooltipManager.Update(m_rcWindowSize.left, m_rcWindowSize.top);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CHumanSimpleWindow::Render(LPDIRECT3DDEVICE8 lpD3DDevice)
|
|
{
|
|
m_lstSprite[0]->Render(lpD3DDevice);
|
|
m_lstSprite[1]->Render(lpD3DDevice);
|
|
m_lstSprite[2]->Render(lpD3DDevice);
|
|
m_lstSprite[3]->Render(lpD3DDevice);
|
|
}
|