Restructure repository to include all source folders
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>
This commit is contained in:
328
GameTools/NeoRylClient/HumanJobChange.cpp
Normal file
328
GameTools/NeoRylClient/HumanJobChange.cpp
Normal file
@@ -0,0 +1,328 @@
|
||||
// HumanJobChange.cpp: implementation of the CHumanJobChange class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "ClientMain.h"
|
||||
#include "GUITextEdit.h"
|
||||
#include "HumanJobChange.h"
|
||||
#include "WinInput.h"
|
||||
#include "GUIMessageBox.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Construction/Destruction
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
CHumanJobChange::CHumanJobChange()
|
||||
{
|
||||
}
|
||||
|
||||
CHumanJobChange::~CHumanJobChange()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
BOOL CHumanJobChange::Init(unsigned short x, unsigned short y)
|
||||
{
|
||||
CSprite *lpSprite;
|
||||
lpSprite = new CSprite;
|
||||
lpSprite->Create(x, y, 0, 0, 256, 256, g_ClientMain.m_lpInterface->m_lstTexture[35]);
|
||||
m_lstSprite.push_back(lpSprite);
|
||||
|
||||
lpSprite = new CSprite;
|
||||
lpSprite->Create(x + 256, y, 0, 0, 78, 256, g_ClientMain.m_lpInterface->m_lstTexture[36]);
|
||||
m_lstSprite.push_back(lpSprite);
|
||||
|
||||
lpSprite = new CSprite;
|
||||
lpSprite->Create(x, y + 256, 0, 0, 256, 160, g_ClientMain.m_lpInterface->m_lstTexture[37]);
|
||||
m_lstSprite.push_back(lpSprite);
|
||||
|
||||
lpSprite = new CSprite;
|
||||
lpSprite->Create(x + 256, y + 256, 0, 0, 78, 160, g_ClientMain.m_lpInterface->m_lstTexture[38]);
|
||||
m_lstSprite.push_back(lpSprite);
|
||||
|
||||
CGUIButton *lpButton;
|
||||
lpButton = new CGUIButton;
|
||||
lpButton->m_nMethod = BUTTON_SIMPLE;
|
||||
lpButton->m_lpNormalButton = new CSprite;
|
||||
lpButton->m_lpNormalButton->Create(58, 379, 82, 0, 201, 20, g_ClientMain.m_lpInterface->m_lstTexture[36]);
|
||||
lpButton->m_lpClickMouseButton = new CSprite;
|
||||
lpButton->m_lpClickMouseButton->Create(58, 379, 82, 0, 201, 20, g_ClientMain.m_lpInterface->m_lstTexture[38]);
|
||||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[175]);
|
||||
lpButton->SetMove(x, y);
|
||||
lpButton->ShowButton(FALSE);
|
||||
m_ButtonManager.AddButton(lpButton);
|
||||
|
||||
lpButton = new CGUIButton;
|
||||
lpButton->m_nMethod = BUTTON_SIMPLE;
|
||||
lpButton->m_lpNormalButton = new CSprite;
|
||||
lpButton->m_lpNormalButton->Create(198, 379, 82, 26, 201, 46, g_ClientMain.m_lpInterface->m_lstTexture[36]);
|
||||
lpButton->m_lpClickMouseButton = new CSprite;
|
||||
lpButton->m_lpClickMouseButton->Create(198, 379, 82, 26, 201, 46, g_ClientMain.m_lpInterface->m_lstTexture[38]);
|
||||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[176]);
|
||||
lpButton->SetMove(x, y);
|
||||
lpButton->ShowButton(FALSE);
|
||||
m_ButtonManager.AddButton(lpButton);
|
||||
|
||||
lpButton = new CGUIButton;
|
||||
lpButton->m_nMethod = BUTTON_SIMPLE;
|
||||
lpButton->m_lpNormalButton = new CSprite;
|
||||
lpButton->m_lpNormalButton->Create(58, 379, 82, 52, 201, 72, g_ClientMain.m_lpInterface->m_lstTexture[36]);
|
||||
lpButton->m_lpClickMouseButton = new CSprite;
|
||||
lpButton->m_lpClickMouseButton->Create(58, 379, 82, 52, 201, 72, g_ClientMain.m_lpInterface->m_lstTexture[38]);
|
||||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[177]);
|
||||
lpButton->SetMove(x, y);
|
||||
lpButton->ShowButton(FALSE);
|
||||
m_ButtonManager.AddButton(lpButton);
|
||||
|
||||
lpButton = new CGUIButton;
|
||||
lpButton->m_nMethod = BUTTON_SIMPLE;
|
||||
lpButton->m_lpNormalButton = new CSprite;
|
||||
lpButton->m_lpNormalButton->Create(198, 379, 82, 78, 201, 98, g_ClientMain.m_lpInterface->m_lstTexture[36]);
|
||||
lpButton->m_lpClickMouseButton = new CSprite;
|
||||
lpButton->m_lpClickMouseButton->Create(198, 379, 82, 78, 201, 98, g_ClientMain.m_lpInterface->m_lstTexture[38]);
|
||||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[178]);
|
||||
lpButton->SetMove(x, y);
|
||||
lpButton->ShowButton(FALSE);
|
||||
m_ButtonManager.AddButton(lpButton);
|
||||
|
||||
lpButton = new CGUIButton;
|
||||
lpButton->m_nMethod = BUTTON_SIMPLE;
|
||||
lpButton->m_lpNormalButton = new CSprite;
|
||||
lpButton->m_lpNormalButton->Create(58, 379, 82, 104, 201, 124, g_ClientMain.m_lpInterface->m_lstTexture[36]);
|
||||
lpButton->m_lpClickMouseButton = new CSprite;
|
||||
lpButton->m_lpClickMouseButton->Create(58, 379, 82, 104, 201, 124, g_ClientMain.m_lpInterface->m_lstTexture[38]);
|
||||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[179]);
|
||||
lpButton->SetMove(x, y);
|
||||
lpButton->ShowButton(FALSE);
|
||||
m_ButtonManager.AddButton(lpButton);
|
||||
|
||||
lpButton = new CGUIButton;
|
||||
lpButton->m_nMethod = BUTTON_SIMPLE;
|
||||
lpButton->m_lpNormalButton = new CSprite;
|
||||
lpButton->m_lpNormalButton->Create(198, 379, 82, 130, 201, 150, g_ClientMain.m_lpInterface->m_lstTexture[36]);
|
||||
lpButton->m_lpClickMouseButton = new CSprite;
|
||||
lpButton->m_lpClickMouseButton->Create(198, 379, 82, 130, 201, 150, g_ClientMain.m_lpInterface->m_lstTexture[38]);
|
||||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[180]);
|
||||
lpButton->SetMove(x, y);
|
||||
lpButton->ShowButton(FALSE);
|
||||
m_ButtonManager.AddButton(lpButton);
|
||||
|
||||
lpButton = new CGUIButton;
|
||||
lpButton->m_nMethod = BUTTON_SIMPLE;
|
||||
lpButton->m_lpNormalButton = new CSprite;
|
||||
lpButton->m_lpNormalButton->Create(58, 379, 82, 156, 201, 176, g_ClientMain.m_lpInterface->m_lstTexture[36]);
|
||||
lpButton->m_lpClickMouseButton = new CSprite;
|
||||
lpButton->m_lpClickMouseButton->Create(58, 379, 82, 156, 201, 176, g_ClientMain.m_lpInterface->m_lstTexture[38]);
|
||||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[181]);
|
||||
lpButton->SetMove(x, y);
|
||||
lpButton->ShowButton(FALSE);
|
||||
m_ButtonManager.AddButton(lpButton);
|
||||
|
||||
lpButton = new CGUIButton;
|
||||
lpButton->m_nMethod = BUTTON_SIMPLE;
|
||||
lpButton->m_lpNormalButton = new CSprite;
|
||||
lpButton->m_lpNormalButton->Create(198, 379, 82, 182, 201, 202, g_ClientMain.m_lpInterface->m_lstTexture[36]);
|
||||
lpButton->m_lpClickMouseButton = new CSprite;
|
||||
lpButton->m_lpClickMouseButton->Create(198, 379, 82, 182, 201, 202, g_ClientMain.m_lpInterface->m_lstTexture[38]);
|
||||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[182]);
|
||||
lpButton->SetMove(x, y);
|
||||
lpButton->ShowButton(FALSE);
|
||||
m_ButtonManager.AddButton(lpButton);
|
||||
|
||||
lpButton = new CGUIButton;
|
||||
lpButton->m_nMethod = BUTTON_SIMPLE;
|
||||
lpButton->m_lpNormalButton = new CSprite;
|
||||
lpButton->m_lpNormalButton->Create(281, 355, 221, 126, 234, 138, g_ClientMain.m_lpInterface->m_lstTexture[36]);
|
||||
lpButton->m_lpClickMouseButton = new CSprite;
|
||||
lpButton->m_lpClickMouseButton->Create(281, 355, 234, 126, 247, 138, g_ClientMain.m_lpInterface->m_lstTexture[36]);
|
||||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[183]);
|
||||
lpButton->SetMove(x, y);
|
||||
lpButton->ShowButton(FALSE);
|
||||
m_ButtonManager.AddButton(lpButton);
|
||||
|
||||
lpButton = new CGUIButton;
|
||||
lpButton->m_nMethod = BUTTON_SIMPLE;
|
||||
lpButton->m_lpNormalButton = new CSprite;
|
||||
lpButton->m_lpNormalButton->Create(299, 355, 221, 138, 234, 150, g_ClientMain.m_lpInterface->m_lstTexture[36]);
|
||||
lpButton->m_lpClickMouseButton = new CSprite;
|
||||
lpButton->m_lpClickMouseButton->Create(299, 355, 234, 138, 247, 150, g_ClientMain.m_lpInterface->m_lstTexture[36]);
|
||||
lpButton->SetTooltip(&m_TooltipManager, g_StringTable.m_strString[184]);
|
||||
lpButton->SetMove(x, y);
|
||||
lpButton->ShowButton(FALSE);
|
||||
m_ButtonManager.AddButton(lpButton);
|
||||
|
||||
m_bShow = FALSE;
|
||||
|
||||
m_dwWindowKind = WINDOW_FIX;
|
||||
|
||||
m_rcWindowSize.left = x; m_rcWindowSize.top = y;
|
||||
m_rcWindowSize.right = x + 334; m_rcWindowSize.bottom = y + 416;
|
||||
|
||||
m_rcMoveEdge.left = x; m_rcMoveEdge.top = y;
|
||||
m_rcMoveEdge.right = x + 334; m_rcMoveEdge.bottom = y + 20;
|
||||
|
||||
InitValue();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CHumanJobChange::InitValue(void)
|
||||
{
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
m_ButtonManager.m_lstButton[i]->ShowButton(FALSE);
|
||||
}
|
||||
|
||||
switch(g_ClientMain.m_csStatus.m_Info.Class)
|
||||
{
|
||||
case 1:
|
||||
m_ButtonManager.m_lstButton[0]->ShowButton(TRUE);
|
||||
m_ButtonManager.m_lstButton[1]->ShowButton(TRUE);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
m_ButtonManager.m_lstButton[2]->ShowButton(TRUE);
|
||||
m_ButtonManager.m_lstButton[3]->ShowButton(TRUE);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
m_ButtonManager.m_lstButton[4]->ShowButton(TRUE);
|
||||
m_ButtonManager.m_lstButton[5]->ShowButton(TRUE);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
m_ButtonManager.m_lstButton[6]->ShowButton(TRUE);
|
||||
m_ButtonManager.m_lstButton[7]->ShowButton(TRUE);
|
||||
break;
|
||||
}
|
||||
|
||||
m_dwChangeResult = 0;
|
||||
m_wClassChange = 0;
|
||||
}
|
||||
|
||||
BOOL CHumanJobChange::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;
|
||||
}
|
||||
}
|
||||
|
||||
POINT *ptMousePos = g_DeviceInput.GetMousePosition();
|
||||
unsigned long dwMousePosX = ptMousePos->x - (m_rcWindowSize.left + 18);
|
||||
unsigned long dwMousePosY = ptMousePos->y - (m_rcWindowSize.top + 286);
|
||||
|
||||
m_ButtonManager.Update();
|
||||
m_TooltipManager.Update();
|
||||
|
||||
if(m_dwChangeResult & MB_YES)
|
||||
{
|
||||
g_ClientMain.m_Network.m_nsNetworkState = NS_UPGRADECLASS;
|
||||
g_ClientMain.m_Network.m_pSocket->CharClassUpgrade(g_ClientMain.m_dwMyChrID, m_wClassChange);
|
||||
|
||||
m_dwChangeResult = 0;
|
||||
m_wClassChange = 0;
|
||||
ShowWindow(FALSE);
|
||||
return TRUE;
|
||||
} else if(m_dwChangeResult & MB_NO || m_dwChangeResult & MB_EXIT)
|
||||
{
|
||||
m_dwChangeResult = 0;
|
||||
m_wClassChange = 0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
for(int i = 0; i < 8; i++)
|
||||
{
|
||||
if(m_ButtonManager.m_lstButton[i]->m_nState == BUTTON_CLICK)
|
||||
{
|
||||
char strText[MAX_PATH];
|
||||
CGUIMessageBox *lpMessageBox = new CGUIMessageBox;
|
||||
sprintf(strText, g_StringTable.m_strString[185], g_ClientMain.m_lpCommonInterface->GetClassName(5 + i));
|
||||
lpMessageBox->Create(strText, MB_YES | MB_NO | MB_EXIT);
|
||||
lpMessageBox->SetResult(&m_dwChangeResult);
|
||||
m_dwChangeResult = 0;
|
||||
m_wClassChange = 5 + i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CHumanJobChange::ShowWindow(BOOL bShow)
|
||||
{
|
||||
m_bShow = bShow;
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
m_ButtonManager.m_lstButton[i]->ShowButton(bShow);
|
||||
}
|
||||
|
||||
if(bShow == FALSE)
|
||||
{
|
||||
vector<LPMessage>::iterator it;
|
||||
LPMessage lpMessage;
|
||||
for(it = m_lstMessage.begin(); it != m_lstMessage.end();)
|
||||
{
|
||||
lpMessage = (*it);
|
||||
it = m_lstMessage.erase(it);
|
||||
delete lpMessage;
|
||||
}
|
||||
m_lstMessage.clear();
|
||||
}
|
||||
}
|
||||
|
||||
void CHumanJobChange::Render(LPDIRECT3DDEVICE8 lpD3DDevice)
|
||||
{
|
||||
m_lstSprite[0]->Render(lpD3DDevice);
|
||||
m_lstSprite[1]->Render(lpD3DDevice);
|
||||
m_lstSprite[2]->Render(lpD3DDevice);
|
||||
m_lstSprite[3]->Render(lpD3DDevice);
|
||||
|
||||
RECT rect;
|
||||
for(int i = 0; i < m_lstMessage.size(); i++)
|
||||
{
|
||||
rect.left = m_rcWindowSize.left + 14;
|
||||
rect.top = m_rcWindowSize.top + 20 + i * 16;
|
||||
rect.right = rect.left + 304;
|
||||
rect.bottom = rect.top + 16;
|
||||
|
||||
g_TextEdit.DrawText(m_lstMessage[i]->strMessage, &rect, DT_LEFT | DT_VCENTER, D3DCOLOR_RGBA(255, 255, 255, 255));
|
||||
}
|
||||
|
||||
m_ButtonManager.Render(lpD3DDevice);
|
||||
}
|
||||
|
||||
void CHumanJobChange::SetText(const char *strMessage)
|
||||
{
|
||||
vector<LPMessage>::iterator it;
|
||||
LPMessage lpMessage;
|
||||
for(it = m_lstMessage.begin(); it != m_lstMessage.end();)
|
||||
{
|
||||
lpMessage = (*it);
|
||||
it = m_lstMessage.erase(it);
|
||||
delete lpMessage;
|
||||
}
|
||||
m_lstMessage.clear();
|
||||
|
||||
char *strMessageTemp, *token, seps[] = "\\n";
|
||||
strMessageTemp = new char[strlen(strMessage) + 100];
|
||||
strcpy(strMessageTemp, strMessage);
|
||||
token = strtok(strMessageTemp, seps);
|
||||
|
||||
while(token != NULL)
|
||||
{
|
||||
lpMessage = new Message;
|
||||
strcpy(lpMessage->strMessage, token);
|
||||
m_lstMessage.push_back(lpMessage);
|
||||
|
||||
token = strtok(NULL, seps);
|
||||
}
|
||||
|
||||
delete[] strMessageTemp;
|
||||
}
|
||||
Reference in New Issue
Block a user