// AkhanChrSelect2.cpp: implementation of the CAkhanChrSelect2 class. // ////////////////////////////////////////////////////////////////////// #include "ClientMain.h" #include "AkhanGUI.h" #include "AkhanChrSelect2.h" #include "FrameTimer.h" #include "GUIMessageBoxManager.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CAkhanChrSelect2::CAkhanChrSelect2() { } CAkhanChrSelect2::~CAkhanChrSelect2() { } void CAkhanChrSelect2::InitValue(void) { m_dwChrDeleteResult = 0; m_dwEndTimer = 0xFFFFFFFF; g_ClientMain.m_bDeleteChar = FALSE; } BOOL CAkhanChrSelect2::Init(unsigned short x, unsigned short y) { CSprite *lpSprite; lpSprite = new CSprite; lpSprite->Create(0, 457, 0, 0, 234, 143, g_ClientMain.m_lpInterface->m_lstTexture[1]); m_lstSprite.push_back(lpSprite); lpSprite = new CSprite; lpSprite->Create(617, 462, 73, 0, 256, 143, g_ClientMain.m_lpInterface->m_lstTexture[2]); m_lstSprite.push_back(lpSprite); CGUIButton *lpButton; lpButton = new CGUIButton; lpButton->m_nMethod = BUTTON_NORMAL; lpButton->m_lpNormalButton = new CSprite; lpButton->m_lpNormalButton->Create(61, 479, 0, 143, 163, 177, g_ClientMain.m_lpInterface->m_lstTexture[1]); lpButton->m_lpOnMouseButton = new CSprite; lpButton->m_lpOnMouseButton->Create(61, 479, 0, 177, 163, 211, g_ClientMain.m_lpInterface->m_lstTexture[1]); lpButton->m_lpClickMouseButton = new CSprite; lpButton->m_lpClickMouseButton->Create(61, 479, 0, 211, 163, 245, g_ClientMain.m_lpInterface->m_lstTexture[1]); lpButton->SetTooltip(&m_TooltipManager, ""); lpButton->SetMove(x, y); m_ButtonManager.AddButton(lpButton); lpButton = new CGUIButton; lpButton->m_nMethod = BUTTON_NORMAL; lpButton->m_lpNormalButton = new CSprite; lpButton->m_lpNormalButton->Create(31, 527, 144, 154, 256, 188, g_ClientMain.m_lpInterface->m_lstTexture[2]); lpButton->m_lpOnMouseButton = new CSprite; lpButton->m_lpOnMouseButton->Create(31, 527, 144, 188, 256, 222, g_ClientMain.m_lpInterface->m_lstTexture[2]); lpButton->m_lpClickMouseButton = new CSprite; lpButton->m_lpClickMouseButton->Create(31, 527, 144, 222, 256, 256, g_ClientMain.m_lpInterface->m_lstTexture[2]); lpButton->SetTooltip(&m_TooltipManager, ""); lpButton->SetMove(x, y); m_ButtonManager.AddButton(lpButton); lpButton = new CGUIButton; lpButton->m_nMethod = BUTTON_NORMAL; lpButton->m_lpNormalButton = new CSprite; lpButton->m_lpNormalButton->Create(624, 526, 0, 154, 144, 188, g_ClientMain.m_lpInterface->m_lstTexture[2]); lpButton->m_lpOnMouseButton = new CSprite; lpButton->m_lpOnMouseButton->Create(624, 526, 0, 188, 144, 222, g_ClientMain.m_lpInterface->m_lstTexture[2]); lpButton->m_lpClickMouseButton = new CSprite; lpButton->m_lpClickMouseButton->Create(624, 526, 0, 222, 144, 256, g_ClientMain.m_lpInterface->m_lstTexture[2]); lpButton->SetTooltip(&m_TooltipManager, ""); lpButton->SetMove(x, y); m_ButtonManager.AddButton(lpButton); m_dwWindowKind = WINDOW_FIX; m_rcWindowSize.left = x; m_rcWindowSize.top = y; m_rcWindowSize.right = x; m_rcWindowSize.bottom = y; m_rcMoveEdge.left = x; m_rcMoveEdge.top = y; m_rcMoveEdge.right = x; m_rcMoveEdge.bottom = y; return TRUE; } BOOL CAkhanChrSelect2::Update(BOOL &bClick, BOOL &bEdge) { g_MessageBoxManager.Update(); if(g_ClientMain.m_bSelectChar) return TRUE; if(m_dwEndTimer != 0xFFFFFFFF) { if(CFrameTimer::GetUpdateTimer(m_dwEndTimer) >= 1.0f) { g_ClientMain.m_dwClientState = CHRSELECT_INITSELECT; g_MessageBoxManager.DestroyList(); } return TRUE; } if(m_dwChrDeleteResult & MB_YES) { g_ClientMain.m_bDeleteChar = TRUE; g_ClientMain.m_Network.SendDeleteChar(g_ClientMain.m_dwSelectChr, g_ClientMain.m_scLoginChar[g_ClientMain.m_dwSelectChr].UID); CGUIMessageBox *lpMessage; lpMessage = new CGUIMessageBox; lpMessage->Create(g_StringTable.m_strString[120]); lpMessage->SetTimer(100000); m_dwChrDeleteResult = 0; return TRUE; } else if(m_dwChrDeleteResult & MB_NO || m_dwChrDeleteResult & MB_EXIT) { m_dwChrDeleteResult = 0; return TRUE; } if(g_ClientMain.m_Network.GetState() != NS_NOWAITING) return TRUE; if(g_ClientMain.m_bDeleteChar) { if(g_ClientMain.m_Network.GetState() == NS_NOWAITING) { if(!g_ClientMain.m_Network.GetError()) { for(int cCash=0;cCashm_lpChrModel==g_CharacterData.m_ChrCashList[cCash].m_lpChrModel) { g_ClientMain.m_lpSceneManager->DeleteCharacter(g_CharacterData.m_lstCharData[g_ClientMain.m_dwSelectChr]->m_lpChrModel); g_CharacterData.m_ChrCashList[cCash].m_lpChrModel=g_CharacterData.m_lstCharData[g_ClientMain.m_dwSelectChr]->m_lpChrModel = g_ClientMain.m_lpSceneManager->AddCharacter("PC_Akhan_A.GCMDS", "FACE01", "HAIR01"); for(int j = 0; j < 15; j++) { strcpy(g_CharacterData.m_lstCharData[g_ClientMain.m_dwSelectChr]->m_strShape[j], ""); } break; } } g_CharacterData.m_lstCharData[g_ClientMain.m_dwSelectChr]->m_lpChrModel->SetPosition(g_ClientMain.m_vecCharSelectPos[g_ClientMain.m_dwSelectChr]); g_CharacterData.m_lstCharData[g_ClientMain.m_dwSelectChr]->m_lpChrModel->SetDirection(0.0f); // g_CharacterData.m_lstCharData[g_ClientMain.m_dwSelectChr]->m_lpChrModel->SetMotion("WAIT"); g_CharacterData.m_lstCharData[g_ClientMain.m_dwSelectChr]->InitWeapon(0); m_dwEndTimer = CFrameTimer::Regist(1.0f); char strCameraPath[MAX_PATH]; switch(g_ClientMain.m_dwSelectChr) { case 0: sprintf(strCameraPath, "%s\\1stCSzo_a.zca", g_ClientMain.m_strClientPath); g_ClientMain.m_lpSceneManager->GetCamera()->Unload(); g_ClientMain.m_lpSceneManager->GetCamera()->Load(strCameraPath); g_ClientMain.m_lpSceneManager->GetCamera()->SetTotalAniTime(1000.0f); g_ClientMain.m_lpSceneManager->GetCamera()->StartPlay(); g_ClientMain.m_lpSceneManager->GetCamera()->PlayAnimate(); break; case 1: sprintf(strCameraPath, "%s\\2ndCSzo_a.zca", g_ClientMain.m_strClientPath); g_ClientMain.m_lpSceneManager->GetCamera()->Unload(); g_ClientMain.m_lpSceneManager->GetCamera()->Load(strCameraPath); g_ClientMain.m_lpSceneManager->GetCamera()->SetTotalAniTime(1000.0f); g_ClientMain.m_lpSceneManager->GetCamera()->StartPlay(); g_ClientMain.m_lpSceneManager->GetCamera()->PlayAnimate(); break; case 2: sprintf(strCameraPath, "%s\\3rdCSzo_a.zca", g_ClientMain.m_strClientPath); g_ClientMain.m_lpSceneManager->GetCamera()->Unload(); g_ClientMain.m_lpSceneManager->GetCamera()->Load(strCameraPath); g_ClientMain.m_lpSceneManager->GetCamera()->SetTotalAniTime(1000.0f); g_ClientMain.m_lpSceneManager->GetCamera()->StartPlay(); g_ClientMain.m_lpSceneManager->GetCamera()->PlayAnimate(); break; } g_ClientMain.m_dwSelectChr = 0xFFFFFFFF; } else { g_ClientMain.m_bDeleteChar = FALSE; } } return TRUE; } m_ButtonManager.Update(); m_TooltipManager.Update(); if(m_ButtonManager.m_lstButton[0]->m_nState == BUTTON_CLICK) // Áö¿ì±â { CGUIMessageBox *lpMessage; lpMessage = new CGUIMessageBox; lpMessage->Create(g_StringTable.m_strString[121], MB_EXIT | MB_YES | MB_NO); lpMessage->SetResult(&m_dwChrDeleteResult); m_dwChrDeleteResult = 0; return TRUE; } else if(m_ButtonManager.m_lstButton[1]->m_nState == BUTTON_CLICK) // Ãë¼Ò { char strCameraPath[MAX_PATH]; m_dwEndTimer = CFrameTimer::Regist(1.0f); switch(g_ClientMain.m_dwSelectChr) { case 0: sprintf(strCameraPath, "%s\\1stCSzo_a.zca", g_ClientMain.m_strClientPath); g_ClientMain.m_lpSceneManager->GetCamera()->Unload(); g_ClientMain.m_lpSceneManager->GetCamera()->Load(strCameraPath); g_ClientMain.m_lpSceneManager->GetCamera()->SetTotalAniTime(1000.0f); g_ClientMain.m_lpSceneManager->GetCamera()->StartPlay(); g_ClientMain.m_lpSceneManager->GetCamera()->PlayAnimate(); break; case 1: sprintf(strCameraPath, "%s\\2ndCSzo_a.zca", g_ClientMain.m_strClientPath); g_ClientMain.m_lpSceneManager->GetCamera()->Unload(); g_ClientMain.m_lpSceneManager->GetCamera()->Load(strCameraPath); g_ClientMain.m_lpSceneManager->GetCamera()->SetTotalAniTime(1000.0f); g_ClientMain.m_lpSceneManager->GetCamera()->StartPlay(); g_ClientMain.m_lpSceneManager->GetCamera()->PlayAnimate(); break; case 2: sprintf(strCameraPath, "%s\\3rdCSzo_a.zca", g_ClientMain.m_strClientPath); g_ClientMain.m_lpSceneManager->GetCamera()->Unload(); g_ClientMain.m_lpSceneManager->GetCamera()->Load(strCameraPath); g_ClientMain.m_lpSceneManager->GetCamera()->SetTotalAniTime(1000.0f); g_ClientMain.m_lpSceneManager->GetCamera()->StartPlay(); g_ClientMain.m_lpSceneManager->GetCamera()->PlayAnimate(); break; } g_ClientMain.m_dwSelectChr = 0xFFFFFFFF; return TRUE; } else if(m_ButtonManager.m_lstButton[2]->m_nState == BUTTON_CLICK) // µé¾î°¡±â { g_ClientMain.m_Network.CharSelect(g_ClientMain.m_scLoginChar[g_ClientMain.m_dwSelectChr].UID); } return TRUE; } void CAkhanChrSelect2::Render(LPDIRECT3DDEVICE8 lpD3DDevice) { if(m_dwEndTimer != 0xFFFFFFFF) return; m_lstSprite[0]->Render(lpD3DDevice, m_cAlpha); m_lstSprite[1]->Render(lpD3DDevice, m_cAlpha); m_ButtonManager.Render(lpD3DDevice, m_cAlpha); g_MessageBoxManager.Render(lpD3DDevice); }