#include "SunClientPrecompiledHeader.h" #include "SystemDialog.h" #include "GameFramework.h" #include "LoadScene.h" #include "interfacemanager.h" #include "MainDialog.h" #include "BattleScene.h" #include "VillageScene.h" #include "CharacterScene.h" #include "CastLeaveFieldDialog.h" #include "Application.h" #include "globalfunc.h" #include "uiPartyMan/uiPartyMan.h" #include "uiSystemMan/uiSystemMan.h" #include "uiVendorMan/uiVendorMan_def.h" #include "uiVendorSell/uiVendorSell.h" #ifdef _NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER #include "GuildSystem/GuildSystemFunction.h" #else #include "uiGuildMan/uiGuildMan.h" #endif //_NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER #include "uiOptionMenuMan/uiOptionMenuMan.h" #include "Map.h" #include "uiMenuMan\uiMenuMan.h" #ifdef _NA_000000_20130114_RENEWER_UI #include "uiOptionMan.h" #include "uiOptionView.h" #include "Interface/uiHotKeyDialog/uiHotKeyDialog.h" #include "HotKeyManager.h" #include "Input/KeyCommands.h" #include "input/HotKeyInfoParser.h" #endif #include "uiGuideSystemMan/uiGuideSystemMan.h" #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #include "ChaosSystem/ChaosSystemData.h" #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #include "uiBattleScoreMan\uiBattleScoreMan.h" WzID SystemDialog::m_wzId[System_MAX] = { StrToWzID("TI00"), //System_BACK_TO_THE_VILLAGE = 0, StrToWzID("TI01"), //System_BACK_TO_THE_CHARACTER_SELECT, #ifdef _REMOVE_TO_SERVER_BUTTON_FOR_CHANNELING #else StrToWzID("TI03"), //System_BACK_TO_THE_SERVER_SELECT, #endif StrToWzID("TI04"), //System_OPTION_SETTING StrToWzID("TI05"), //System_CREDIT StrToWzID("TI02"), //System_EXIT, StrToWzID("B999"), // Exit StrToWzID("TI06"), //System_GO_OUT_DOMINATION, }; //---------------------------------------------------------------------------- /** */ SystemDialog::SystemDialog(void) { } //---------------------------------------------------------------------------- /** */ SystemDialog::~SystemDialog(void) { } //---------------------------------------------------------------------------- /** */ VOID SystemDialog::Init( CDrawBase * pDrawBase ) { } //---------------------------------------------------------------------------- /** */ VOID SystemDialog::OnShowWindow(BOOL val) { if (val) { //UpdatePosition(); CControlWZ* back_to_village_button = getControl(System_BACK_TO_THE_VILLAGE); if ((g_pMap != NULL) && (back_to_village_button != NULL)) { SCENE_TYPE current_scene_type = GameFramework::GetCurScene(); if (current_scene_type == SCENE_TYPE_SSQ) { back_to_village_button->EnableWindowWZ(false); } else { back_to_village_button->EnableWindowWZ(true); } CControlWZ* go_out_domination_button = getControl(System_GO_OUT_DOMINATION); if (go_out_domination_button != NULL) { if (current_scene_type == SCENE_TYPE_DOMINATION #ifdef _NA_008334_20150608_SONNENSCHEIN || current_scene_type == SCENE_TYPE_SONNENSCHEIN #endif //_NA_008334_20150608_SONNENSCHEIN ) { back_to_village_button->ShowWindowWZ(WZ_HIDE); go_out_domination_button->ShowWindowWZ(WZ_SHOW); } else { back_to_village_button->ShowWindowWZ(WZ_SHOW); go_out_domination_button->ShowWindowWZ(WZ_HIDE); } } } keyMsg msg; ZeroMemory(&msg,sizeof(msg)); msg.dwType = eDoType_dialog_System_Menu; msg.DoSomething = GlobalFunc::DoSystemDialog; g_KeyQueueManager.PushBack(msg); } else { this->m_packetStatus = 0; g_KeyQueueManager.DeleteMsg(eDoType_dialog_System_Menu); } } //---------------------------------------------------------------------------- /** */ VOID SystemDialog::Release() { } //---------------------------------------------------------------------------- /** */ VOID SystemDialog::MessageProc( SI_MESSAGE * pMessage ) { uiVendorSell * pVendorSell = GET_CAST_DIALOG( uiVendorSell, IM_VENDOR_MANAGER::VENDOR_SELL ); if ( GameFramework::GetCurrentScene() && ( SCENE_TYPE_CHARSELECT == GameFramework::GetCurrentScene()->GetType() || SCENE_TYPE_LOGIN == GameFramework::GetCurrentScene()->GetType()) ) { // ij¸¯ÅÍ ¾À¿¡¼± ÀÌ·± ÀÏÀÌ ÀÖÀ¸¸é ¾ÈµÈ´Ù. return; } TCHAR szMessage[INTERFACE_STRING_LENGTH] = {0,}; switch( pMessage->eResultMsg ) { case RT_MSG_LBUTTONCLICK: { switch( getCtrlIDToPos( pMessage->dwCtrlID ) ) { // game exit case System_GAME_EXIT: { uiGuideSystemMan* guide_manager = GET_DIALOG_MANAGER(uiGuideSystemMan, UIMAN_GUIDE_SYSTEM); if (guide_manager != NULL) { #ifdef _NA_008090_20150226_GAMEOPTION_RECVPACKET_DONT_WAIT guide_manager->SaveData(); #else guide_manager->SaveAndOut(uiGuideSystemMan::kGotoExit); #endif //_NA_008090_20150226_GAMEOPTION_RECVPACKET_DONT_WAIT } TCHAR szMessage[256]; #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND if (GlobalFunc::IsBattleGroundScene() && (ChaosSystem::GetBattleGroundData().battle_ground_progress() != ChaosSystem::BattleGroundData::PROGRESS_END)) { // 2719 Á¤¸»·Î ÆÄƼ ¶°³²? g_InterfaceManager.GetInterfaceString(2719, szMessage); } #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH else if (GlobalFunc::IsGoldRushScene() && (ChaosSystem::GetGoldRushData().gold_rush_progress() != ChaosSystem::GoldRushData::PROGRESS_END)) { // 2719 ÀüÀå¿¡¼­ ÀÌÅ»ÇÏ°Ô µÇ¸é µµ¸ÁÀÚ ÆÐ³ÎƼ¸¦ ¹Þ°Ô µË´Ï´Ù. µµ¸ÁÀÚ ÆÐ³ÎƼ¸¦ ¹Þ°Ô µÇ¸é ÀÏÁ¤½Ã°£µ¿¾È ÀüÀå¿¡ ÀÔÀå ÇÒ ¼ö ¾ø½À´Ï´Ù. Á¤¸» ÀüÀåÀ» ¶°³ª½Ã°Ú½À´Ï±î? g_InterfaceManager.GetInterfaceString(2719, szMessage); } #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH else #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND { //Á¤¸» °ÔÀÓÀ» Á¾·áÇϽðڽÀ´Ï±î? const DWORD dwIsLogOutStringIndex = 5099; g_InterfaceManager.GetInterfaceString(dwIsLogOutStringIndex, szMessage, 256); } uiSystemMan * pSystemMan = (uiSystemMan *)g_InterfaceManager.GetUserInterfaceManager(UIMAN_SYSTEM); if(pSystemMan) pSystemMan->Sys_ConfirmLock(szMessage, GlobalFunc::SystemExitConfirm); ShowDialog(FALSE); } break; case System_EXIT: // exit { ShowDialog(FALSE); } break; // Select Another Game case System_BACK_TO_THE_VILLAGE: { if( GENERALPARAM->IsNet()) { if (BIT_CHECK(this->m_packetStatus, BACK_TO_THE_VILLAGE)) { return; } #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND if (GlobalFunc::IsBattleGroundScene() && (ChaosSystem::GetBattleGroundData().battle_ground_progress() != ChaosSystem::BattleGroundData::PROGRESS_END)) { TCHAR temp_string[INTERFACE_STRING_LENGTH] = {0,}; // 2719 Á¤¸» ÆÄƼ ¶°³²? g_InterfaceManager.GetInterfaceString(2719, temp_string, INTERFACE_STRING_LENGTH); uiSystemMan* system_manager = GET_DIALOG_MANAGER(uiSystemMan, UIMAN_SYSTEM); if (system_manager) { system_manager->Sys_Confirm(temp_string, GlobalFunc::BattleGroundBackToTheVillageConfirm); } } #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH else if (GlobalFunc::IsGoldRushScene() && (ChaosSystem::GetGoldRushData().gold_rush_progress() != ChaosSystem::GoldRushData::PROGRESS_END)) { TCHAR temp_string[INTERFACE_STRING_LENGTH] = {0,}; // 2719 Á¤¸» ÆÄƼ ¶°³²? g_InterfaceManager.GetInterfaceString(2719, temp_string, INTERFACE_STRING_LENGTH); uiSystemMan* system_manager = GET_DIALOG_MANAGER(uiSystemMan, UIMAN_SYSTEM); if (system_manager) { system_manager->Sys_Confirm(temp_string, GlobalFunc::BattleGroundBackToTheVillageConfirm); } } #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH else #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND { BattleScene::BackToTheVillageTransact(); } } else { BattleScene::BackToTheVillageTransact(); } ShowDialog(FALSE); } break; case System_GO_OUT_DOMINATION: { if( GENERALPARAM->IsNet()) { if (BIT_CHECK(this->m_packetStatus, BACK_TO_THE_VILLAGE)) { return; } #ifdef _NA_008334_20150608_SONNENSCHEIN if (GameFramework::GetCurScene() == SCENE_TYPE_SONNENSCHEIN) { BattleScene::BackToTheVillageTransact(); } else #endif //_NA_008334_20150608_SONNENSCHEIN { BattleScene::LeaveDominationTransact(); } } else { BattleScene::LeaveDominationTransact(); } ShowDialog(FALSE); } break; // Character Selection case System_BACK_TO_THE_CHARACTER_SELECT: { if( pVendorSell && pVendorSell->IsStart() ) { //5866 ¸ÕÀú °³ÀλóÁ¡À» Á¾·áÇØ¾ß ÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceString(5866 , szMessage ,INTERFACE_STRING_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_TOP_SHOW , szMessage); ShowDialog(FALSE); break; } #ifdef _NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER GuildSystem::Function::CloseGuildWareHouse(); #else uiGuildMan* pGuildMan = (uiGuildMan*)g_InterfaceManager.GetUserInterfaceManager(UIMAN_GUILD); if(pGuildMan) { if(pGuildMan->IsGuildWareHouseWindow()) { pGuildMan->SEND_CG_GUILD_WAREHOUSE_CLOSE_SYN(); } } #endif //_NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND if (ChaosSystem::GetBattleGroundData().is_on_reservation() == true) { //ÀüÀåÀÌ ¿¹¾à ÁßÀ̸é // 2703: ÀüÀå ¿¹¾àÁß¿£ »ç¿ëºÒ°¡.... g_InterfaceManager.GetInterfaceString(2703 , szMessage ,INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_TOP_SHOW , szMessage); ShowDialog(FALSE); break; } else if (GlobalFunc::IsBattleGroundScene() && (ChaosSystem::GetBattleGroundData().battle_ground_progress() != ChaosSystem::BattleGroundData::PROGRESS_END)) { TCHAR temp_string[INTERFACE_STRING_LENGTH] = {0,}; // 2719 Á¤¸» ÆÄƼ ¶°³²? g_InterfaceManager.GetInterfaceString(2719, temp_string, INTERFACE_STRING_LENGTH); uiSystemMan* system_manager = GET_DIALOG_MANAGER(uiSystemMan, UIMAN_SYSTEM); if (system_manager) { system_manager->Sys_Confirm(temp_string, GlobalFunc::BattleGroundCharacterSelectConfirm); } } #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH else if (GlobalFunc::IsGoldRushScene() && (ChaosSystem::GetGoldRushData().gold_rush_progress() != ChaosSystem::GoldRushData::PROGRESS_END)) { TCHAR temp_string[INTERFACE_STRING_LENGTH] = {0,}; // 2719 Á¤¸» ÆÄƼ ¶°³²? g_InterfaceManager.GetInterfaceString(2719, temp_string, INTERFACE_STRING_LENGTH); uiSystemMan* system_manager = GET_DIALOG_MANAGER(uiSystemMan, UIMAN_SYSTEM); if (system_manager) { system_manager->Sys_Confirm(temp_string, GlobalFunc::BattleGroundCharacterSelectConfirm); } } #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH else #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND { CharacterSelectStandingBy(); } } break; #ifdef _REMOVE_TO_SERVER_BUTTON_FOR_CHANNELING #else case System_BACK_TO_THE_SERVER_SELECT: { if( pVendorSell && pVendorSell->IsStart() ) { //5866 ¸ÕÀú °³ÀλóÁ¡À» Á¾·áÇØ¾ß ÇÕ´Ï´Ù. g_InterfaceManager.GetInterfaceString(5866 , szMessage ,INTERFACE_STRING_LENGTH ); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_TOP_SHOW , szMessage ); ShowDialog(FALSE); break; } #ifdef _NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER GuildSystem::Function::CloseGuildWareHouse(); #else uiGuildMan* pGuildMan = (uiGuildMan*)g_InterfaceManager.GetUserInterfaceManager(UIMAN_GUILD); if(pGuildMan) { if(pGuildMan->IsGuildWareHouseWindow()) { pGuildMan->SEND_CG_GUILD_WAREHOUSE_CLOSE_SYN(); } } #endif //_NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND if (ChaosSystem::GetBattleGroundData().is_on_reservation() == true) { //ÀüÀåÀÌ ¿¹¾à ÁßÀ̸é // 2703: ÀüÀå ¿¹¾àÁß¿£ »ç¿ëºÒ°¡.... g_InterfaceManager.GetInterfaceString(2703 , szMessage ,INTERFACE_STRING_LENGTH); GlobalFunc::OutputMsg_Notice(eOUTPUT_MSG_TOP_SHOW , szMessage ); ShowDialog(FALSE); break; } else if (GlobalFunc::IsBattleGroundScene() && (ChaosSystem::GetBattleGroundData().battle_ground_progress() != ChaosSystem::BattleGroundData::PROGRESS_END)) { // ÀüÀå ¾ÈÀ̸é TCHAR temp_string[INTERFACE_STRING_LENGTH] = {0,}; // 2719 Á¤¸» ÆÄƼ ¶°³²? g_InterfaceManager.GetInterfaceString(2719, temp_string, INTERFACE_STRING_LENGTH); uiSystemMan* system_manager = GET_DIALOG_MANAGER(uiSystemMan, UIMAN_SYSTEM); if (system_manager) { system_manager->Sys_Confirm(temp_string, GlobalFunc::BattleGroundServerSelectConfirm); } } #ifdef _NA_007114_20140313_CHAOSZONE_GOLDRUSH else if (GlobalFunc::IsGoldRushScene() && (ChaosSystem::GetGoldRushData().gold_rush_progress() != ChaosSystem::GoldRushData::PROGRESS_END)) { TCHAR temp_string[INTERFACE_STRING_LENGTH] = {0,}; // 2719 Á¤¸» ÆÄƼ ¶°³²? g_InterfaceManager.GetInterfaceString(2719, temp_string, INTERFACE_STRING_LENGTH); uiSystemMan* system_manager = GET_DIALOG_MANAGER(uiSystemMan, UIMAN_SYSTEM); if (system_manager) { system_manager->Sys_Confirm(temp_string, GlobalFunc::BattleGroundCharacterSelectConfirm); } } #endif // _NA_007114_20140313_CHAOSZONE_GOLDRUSH else #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND { ServerSelectStandingBy(); } } break; #endif//_REMOVE_TO_SERVER_BUTTON_FOR_CHANNELING case System_OPTION_SETTING: { // ¿É¼Ç ´ÙÀ̾ó·Î±× #ifdef _NA_000000_20130114_RENEWER_UI //temp key map dialog // uiHotKeyDialog* hot_key_dialog = GET_CAST_DIALOG(uiHotKeyDialog, IM_OPTION_MENU_MANAGER::HOT_KEY_BINDING_DIALOG); // if(hot_key_dialog) // { // BOOL b = hot_key_dialog->IsVisibleWindow(); // hot_key_dialog->ShowInterface(!b); // } //BOOL b = GET_DIALOG( IM_OPTION_MANAGER::kOptionView_ID )->IsVisibleWindow(); //GET_DIALOG( IM_OPTION_MANAGER::kOptionView_ID )->ShowInterface( !b ); #else BOOL b = GET_DIALOG( IM_OPTION_MENU_MANAGER::OPTION_MENU_DIALOG )->IsVisibleWindow(); GET_DIALOG( IM_OPTION_MENU_MANAGER::OPTION_MENU_DIALOG )->ShowInterface( !b ); #endif ShowDialog(FALSE); } break; case System_CREDIT: { #ifdef _NA_000000_20130114_RENEWER_UI uiOptionMan::ToggleShowActionTap(); #endif } break; } } break; default: { SolarDialog::MessageProc( pMessage ); } break; } } VOID SystemDialog::ServerSelectStandingBy( VOID ) { ShowDialog( FALSE ); #ifdef __NA001334_090420_SERVER_SELECT_FACILITY__ if( GENERALPARAM->IsNet() ) { //¼­¹ö ²÷±â Àü¿¡ RepeatData Àü¼Û uiGuideSystemMan* guide_manager = GET_DIALOG_MANAGER(uiGuideSystemMan, UIMAN_GUIDE_SYSTEM); if (guide_manager != NULL) { #ifdef _NA_008090_20150226_GAMEOPTION_RECVPACKET_DONT_WAIT guide_manager->SaveData(); #else guide_manager->SaveAndOut(uiGuideSystemMan::kGotoServerSelect); #endif //_NA_008090_20150226_GAMEOPTION_RECVPACKET_DONT_WAIT } GlobalFunc::SendServerSelectRequestPacket( MSG_CG_CONNECTION_SERVER_SELECT_REQUEST_SYN::eQuery_StartTransaction ); keyMsg sendMsg; ZeroMemory( &sendMsg, sizeof( sendMsg ) ); sendMsg.dwType = eDoType_ServerSelectStandingBy; sendMsg.DoSomething = GlobalFunc::DoLeaveFieldCancel; sendMsg.wParam = eDoType_ServerSelectStandingBy; sendMsg.lParam = InterfaceManager::DIALOG_DELAY_CASTING; g_KeyQueueManager.PushBack( sendMsg ); #ifdef _DEV_VER StartLeaveFieldCastTimer( eDoType_ServerSelectStandingBy, 1000 ); #else //_DEV_VER StartLeaveFieldCastTimer( eDoType_ServerSelectStandingBy, DELAY_LEAVE_FIELD_TICK ); #endif //_DEV_VER } #else if( GameFramework::GetCurScene() == SCENE_TYPE_VILLAGE ) { ProcessServerSelect(); } else { keyMsg sendMsg; ZeroMemory( &sendMsg, sizeof( sendMsg ) ); sendMsg.dwType = eDoType_ServerSelectStandingBy; sendMsg.DoSomething = GlobalFunc::DoLeaveFieldCancel; sendMsg.wParam = eDoType_ServerSelectStandingBy; sendMsg.lParam = InterfaceManager::DIALOG_DELAY_CASTING; g_KeyQueueManager.PushBack( sendMsg ); #ifdef _DEV_VER StartLeaveFieldCastTimer( eDoType_ServerSelectStandingBy, 1000 ); #else //_DEV_VER StartLeaveFieldCastTimer( eDoType_ServerSelectStandingBy, DELAY_LEAVE_FIELD_TICK ); #endif //_DEV_VER } #endif //__NA001334_090420_SERVER_SELECT_FACILITY__ } VOID SystemDialog::ProcessServerSelect(VOID) { uiBattleScoreMan* battle_score_manager_ptr = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_BATTLE_SCORE)); if (battle_score_manager_ptr) { battle_score_manager_ptr->Reset(); } if (GENERALPARAM->IsNet()) { g_isChangeServer = true; g_CharSelectScene.m_bConnected = false; if (g_pNetwork) { g_pNetwork->Disconnect(CI_GAMESERVERIDX); #if !defined(_NA002676_WORLD_SERVER_RENEWAL) g_pNetwork->Disconnect(CI_CHATSERVERIDX); g_pNetwork->SetEnableSendChatHeartBeat(FALSE); #endif g_pNetwork->SetEnableSendHeartBeat(FALSE); } g_LoadScene.SetNextSceneAfterLoaded(SCENE_TYPE_LOGIN, 11001, 0); GameFramework::ChangeScene(SCENE_TYPE_LOAD); uiPartyMan* partyMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_PARTY)); if (partyMan) { partyMan->DestroyParty(); } } else { g_LoadScene.SetNextSceneAfterLoaded(SCENE_TYPE_LOGIN, 11001, 0); GameFramework::ChangeScene(SCENE_TYPE_LOAD); } } VOID SystemDialog::CharacterSelectStandingBy( VOID ) { uiGuideSystemMan* guide_manager = GET_DIALOG_MANAGER(uiGuideSystemMan, UIMAN_GUIDE_SYSTEM); if (guide_manager != NULL) { #ifdef _NA_008090_20150226_GAMEOPTION_RECVPACKET_DONT_WAIT guide_manager->SaveData(); #else guide_manager->SaveAndOut(uiGuideSystemMan::kGotoCharacterSelect); #endif //_NA_008090_20150226_GAMEOPTION_RECVPACKET_DONT_WAIT } ShowDialog( FALSE ); if( GameFramework::GetCurScene() == SCENE_TYPE_VILLAGE ) { ProcessCharacterSelect(); } else { keyMsg sendMsg; ZeroMemory( &sendMsg, sizeof( sendMsg ) ); sendMsg.dwType = eDoType_CharacterSelectStandingBy; sendMsg.DoSomething = GlobalFunc::DoLeaveFieldCancel; sendMsg.wParam = eDoType_CharacterSelectStandingBy; sendMsg.lParam = InterfaceManager::DIALOG_DELAY_CASTING; g_KeyQueueManager.PushBack( sendMsg ); #ifdef _DEV_VER StartLeaveFieldCastTimer( eDoType_CharacterSelectStandingBy, 1000 ); #else //_DEV_VER StartLeaveFieldCastTimer( eDoType_CharacterSelectStandingBy, DELAY_LEAVE_FIELD_TICK ); #endif //_DEV_VER } } VOID SystemDialog::ProcessCharacterSelect( VOID ) { uiBattleScoreMan* battle_score_manager_ptr = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_BATTLE_SCORE)); if (battle_score_manager_ptr) { battle_score_manager_ptr->Reset(); } if( GENERALPARAM->IsNet() ) { if (!BIT_CHECK(this->m_packetStatus, BACK_TO_THE_CHARACTER_SELECT)) { BIT_ADD(m_packetStatus, BACK_TO_THE_CHARACTER_SELECT); #ifdef _NA_008090_20150226_GAMEOPTION_RECVPACKET_DONT_WAIT MSG_CG_CONNECTION_BACKTOCHARSELECT_SYN SendPacket; GlobalFunc::SendPacket( CI_GAMESERVERIDX, &SendPacket, sizeof(SendPacket) ); #else uiGuideSystemMan* guide_manager = GET_DIALOG_MANAGER(uiGuideSystemMan, UIMAN_GUIDE_SYSTEM); if (guide_manager != NULL) { //ŸÀÌ¸Ó Ã¼Å© ÈÄ Á¾·á guide_manager->set_waiting_repeat_save_recv(true); guide_manager->set_waiting_library_save_recv(true); } //¾Æ·¡ SendPacketÀº GuideSystemMan ¿¡¼­ ŸÀÌ¸Ó Ã¼Å© ÈÄ ½ÇÇàÇÕ´Ï´Ù. (¼ÛÂùÁ¾) //MSG_CG_CONNECTION_BACKTOCHARSELECT_SYN SendPacket; //GlobalFunc::SendPacket( CI_GAMESERVERIDX, &SendPacket, sizeof(SendPacket) ); #endif //_NA_008090_20150226_GAMEOPTION_RECVPACKET_DONT_WAIT } } else { g_LoadScene.SetNextSceneAfterLoaded(SCENE_TYPE_CHARSELECT, GENERALPARAM->GetCharSelectMapID(), 0 ); g_LoadScene.ChangeImage(TRUE); GameFramework::ChangeScene( SCENE_TYPE_LOAD ); } } //---------------------------------------------------------------------------- /** */ VOID SystemDialog::NetworkProc( MSG_BASE * pMsg ) { switch(pMsg->m_byCategory) { case CG_ZONE: { switch(pMsg->m_byProtocol) { case CG_ZONE_LOBBY_LEAVE_ACK: case CG_ZONE_LOBBY_LEAVE_NAK: case CG_ZONE_MISSION_LEAVE_ACK: case CG_ZONE_MISSION_LEAVE_NAK: case CG_ZONE_PVP_LEAVE_ACK: case CG_ZONE_PVP_LEAVE_NAK: case CG_ZONE_CHUNTING_LEAVE_ACK: case CG_ZONE_CHUNTING_LEAVE_NAK: case CG_ZONE_INSTANCE_DUNGEON_LEAVE_ACK: case CG_ZONE_INSTANCE_DUNGEON_LEAVE_NAK: case CG_ZONE_RETURN_VILLAGE_ACK: case CG_ZONE_RETURN_VILLAGE_NAK: { BIT_REMOVE( this->m_packetStatus, BACK_TO_THE_VILLAGE); g_KeyQueueManager.DeleteMsg(eDoType_Delay_Leave_Field); } break; default: break; } } break; case CG_ZONE_EX: { switch(pMsg->m_byProtocol) { #ifdef _NA_008069_20150210_ADD_SPA_SYSTEM case CG_ZONE_EX_SPA_LEAVE_ACK: case CG_ZONE_EX_SPA_LEAVE_NAK: { BIT_REMOVE( this->m_packetStatus, BACK_TO_THE_VILLAGE); g_KeyQueueManager.DeleteMsg(eDoType_Delay_Leave_Field); } break; #endif //_NA_008069_20150210_ADD_SPA_SYSTEM default: break; } } break; case CG_CONNECTION: { switch(pMsg->m_byProtocol) { case CG_CONNECTION_BACKTOCHARSELECT_ACK: { #ifdef _NHN_USA_CHANNELING GlobalFunc::SendHanReportPacket(600);//°ÔÀÓ³»¿¡¼­Ä³¸¯¼±ÅÃÀ¸·ÎÀ̵¿(600) #endif//_NHN_USA_CHANNELING ResetPacketStatus(); } break; case CG_CONNECTION_BACKTOCHARSELECT_NAK: { BIT_REMOVE( this->m_packetStatus, BACK_TO_THE_CHARACTER_SELECT); } break; default: break; } } break; } } //---------------------------------------------------------------------------- /** */ VOID SystemDialog::Update() { } //---------------------------------------------------------------------------- /** */ CControlWZ * SystemDialog::getControl( POSTYPE AtPos ) { assert( AtPos < System_MAX ); return GetControlWZ( m_wzId[AtPos] ); } //---------------------------------------------------------------------------- /** */ POSTYPE SystemDialog::getCtrlIDToPos( WzID wzId ) { for( POSTYPE i = 0 ; i < System_MAX; ++i ) { if( m_wzId[i] == wzId ) { return i; } } return System_MAX; } //void SystemDialog::UpdatePosition() //{ // //RECT rc; // //GetDialogWZ()->GetDlgSize(&rc); // // //long width = rc.right; // //long height = rc.bottom; // // //float mw = (long)width * 0.5f; // //float mh = (long)height * 0.5f; // // // // // //long sw; // //long sh; // // //POINT pt = g_pApplication->Get2DModeMapping(); // // //sw = pt.x; // //sh = pt.y; // // // // //float pw = (float)(sw * 0.5f) - mw; // //float ph = (float)(sh * 0.5f) - mh; // // // //MoveWindowWZ(pw, ph); //} //---------------------------------------------------------------------------- /** */ void SystemDialog::AddPacketStatus(SYSTEM_PACKET_STATUS ePacketStatus) { BIT_ADD(this->m_packetStatus, ePacketStatus); } //---------------------------------------------------------------------------- /** */ void SystemDialog::RemovePacketStatus(SYSTEM_PACKET_STATUS ePacketStatus) { BIT_REMOVE(this->m_packetStatus, ePacketStatus); } void SystemDialog::CheckModifyOption() { KEY_BIND_PAIR_MAP::iterator found_itr = HotKeyManager::Instance()->current_using_key_bind_info().key_bind_pair_map().find(kOpen_SystemMenu_UI); KEY_BIND_PAIR temp_key_bind_pair = found_itr->second; STLX_STRING hot_key_string; DWORD string_code = 0; HOT_KEY_CODE hot_ket_code(temp_key_bind_pair.GetHotKeyCode(KEY_BIND_PAIR::kMainHotKey)); if (hot_ket_code.key_code_ != 0) { if (hot_ket_code.ctrl_key_ == 1) { hot_key_string += g_InterfaceManager.GetInterfaceString(8218); hot_key_string += " + "; } if (hot_ket_code.alt_key_ == 1) { hot_key_string += g_InterfaceManager.GetInterfaceString(8219); hot_key_string += " + "; } if (hot_ket_code.shift_key_ == 1) { hot_key_string += g_InterfaceManager.GetInterfaceString(8217); hot_key_string += " + "; } string_code = HotKeyInfoParser::Instance()->GetStringCodeByKeyCode(hot_ket_code.key_code_); if(strstr(g_InterfaceManager.GetInterfaceString(string_code),"Back Slash")) { hot_key_string += "\\"; } else hot_key_string += g_InterfaceManager.GetInterfaceString(string_code); } CControlWZ* Control_Key = getControl(System_CREDIT); if(Control_Key) { DWORD ControlTextID = Control_Key->GetTextID(); TCHAR OutputText[256]; g_InterfaceManager.GetInterfaceStringFormat(OutputText,256,ControlTextID,hot_key_string.c_str()); Control_Key->SetTextWZA(OutputText); } }