// 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); }