#include "SunClientPrecompiledHeader.h" #include "hotkeymanager.h" #include "SolarDialog.h" #include "Input.h" #include "ItemManager.h" #include "MainDialog.h" #include "interfacemanager.h" #include "MouseHandler.h" #include "hero.h" #include "GlobalFunc.h" #include "uiBattleScoreMan/uiBattleScoreMan.h" #include "QuickContainer.h" #include "uiGuildMan/uiGuildMan.h" #include "HeroActionInput.h" #include "uiQuestMan/uiQuestMan.h" #include "BattleScene.h" #include "RadarFullDialog.h" #include "uiRadarMan/uiRadarMan.h" #include "ExtendInventoryDialog.h" #include "uiInventoryMan/uiInventoryMan.h" #include "ChatDialog.h" #include "uiChatMan/uiChatMan.h" #ifdef _DH_BATTLEZONE2_ #include "uiBattlezone2Man/uiBattlezone2Man.h" #endif//_DH_BATTLEZONE2_ #include "Input/KeyCommands.h" #include "Interface/UIActionFunction.h" #include "Input/HotKeyInfoParser.h" #include "uiOptionMenuMan/uiOptionMenuMan.h" #include "uiHotKeyDialog/uiHotKeyDialog.h" #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #include "ChaosSystem/ChaosSystemMan.h" #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_000000_20121210_REFACTORY_GAME_USER #include "uiPersonalWayPointMan/uiPersonalWayPointMan.h" #endif //_NA_000000_20121210_REFACTORY_GAME_USER #include "uiOptionKeyBinding.h" #include "uiMenuMan/uiMenuMan.h" #ifdef _NA_006643_20130417_UI_OUT_WINDOW_BREAK #include "RadarFullDialog.h" #include "uiInventoryMan/uiInventoryMan.h" #include "InventoryDialog.h" #endif #ifdef _NA_007086_20140318_MONSTERBOOK #include "uiMonsterBookMan/uiMonsterBookMan.h" #endif //_NA_007086_20140318_MONSTERBOOK #ifdef _NA_007932_20150112_ATTENDANCE_CHECK_SYSTEM #include "uiAttendanceCheck/uiAttendanceCheckMan.h" #endif //_NA_007932_20150112_ATTENDANCE_CHECK_SYSTEM #ifdef _NA_008016_20150203_SUN_RANKING_SYSTEM #include "uiSUNRankingMan/uiSUNRankingMan.h" #endif // _NA_008016_20150203_SUN_RANKING_SYSTEM #ifdef _NA_008405_20150716_MINIGAME_BINGO #include "uiMiniGameMan/uiMiniGameMan.h" #endif // _NA_008405_20150716_MINIGAME_BINGO HotKeyManager::HotKeyManager() { set_is_character_setting(false); set_is_user_setting_mode(false); } HotKeyManager::~HotKeyManager() { DialogToggleCommand::DestroyInstance(); QuickSlotModeCommand::DestroyInstance(); QuickSlotUseCommand::DestroyInstance(); SummonControlCommand::DestroyInstance(); TargetEnemyCommand::DestroyInstance(); TargetPartyMemberCommand::DestroyInstance(); ScreenShotCommand::DestroyInstance(); ChatOpenNSendCommand::DestroyInstance(); CameraControlCommand::DestroyInstance(); SystemMenuNCancelCommand::DestroyInstance(); HeroAutoRunCommand::DestroyInstance(); HeroMoveCommand::DestroyInstance(); HeroJumpCommand::DestroyInstance(); HeroActionSkillCommand::DestroyInstance(); HeroSpreadWingCommand::DestroyInstance(); } void HotKeyManager::Initialize() { BuildDefalutKeyBindInfo(); current_using_key_bind_info() = defalut_key_bind_info(); } void HotKeyManager::Process() { if (is_user_setting_mode() == false) { // Åë»óÀû ó¸® KEY_BIND_PAIR_MAP& bind_pair_map = current_using_key_bind_info().key_bind_pair_map(); KEY_BIND_PAIR_MAP::iterator begin_itr = bind_pair_map.begin(); KEY_BIND_PAIR_MAP::iterator end_itr = bind_pair_map.end(); HOT_KEY_FUNCTION_INDEX key_function_index; KEY_BIND_PAIR bind_pair; KeyCommand* key_command = NULL; for ( ; begin_itr != end_itr; ++begin_itr) { key_function_index = begin_itr->first; bind_pair = begin_itr->second; key_command = GetKeyCommand(key_function_index); if (key_command != NULL) { key_command->OnAction(key_function_index, bind_pair); } } } else { // À¯ÀúŰ ÀԷ´ë±â »óÅ WORD input_key_code = 0; input_key_code = CheckUserKeyInput(); if (input_key_code != 0) { EndUserSettingMode(input_key_code); } } } void HotKeyManager::ProcessHotkeyFunction(HOT_KEY_FUNCTION_INDEX hot_key_function_index) { KEY_BIND_PAIR_MAP& bind_pair_map = current_using_key_bind_info().key_bind_pair_map(); KEY_BIND_PAIR_MAP::iterator found_itr = bind_pair_map.find(hot_key_function_index); if (found_itr != bind_pair_map.end()) { KeyCommand* key_command = GetKeyCommand(hot_key_function_index); if (key_command != NULL) { key_command->OnAction(hot_key_function_index, found_itr->second); } } } void HotKeyManager::StartUserSettingMode() { set_is_user_setting_mode(true); } void HotKeyManager::EndUserSettingMode(WORD input_key_code) { set_is_user_setting_mode(false); if (input_key_code != 0) { // Á¶ÇÕµÈ È®ÀåŰ »óÅ üũ HOT_KEY_CODE hot_key_code; if (g_Input.GetState(DIK_LSHIFT, KS_KEY, TRUE) || g_Input.GetState(DIK_LSHIFT, IKS_KEY, TRUE)) { hot_key_code.shift_key_ = 1; } if (g_Input.GetState(DIK_LALT, KS_KEY, TRUE) || g_Input.GetState(DIK_LALT, IKS_KEY, TRUE)) { hot_key_code.alt_key_ = 1; } if (g_Input.GetState(DIK_LCONTROL, KS_KEY, TRUE) || g_Input.GetState(DIK_LCONTROL, IKS_KEY, TRUE)) { hot_key_code.ctrl_key_ = 1; } hot_key_code.key_code_ = input_key_code; #ifdef _NA_000000_20130114_RENEWER_UI // UI¿¡ ŰÁ¶ÇÕ Àü´Þ uiOptionKeyBinding* hot_key_dialog = GET_CAST_DIALOG(uiOptionKeyBinding, IM_OPTION_MENU_MANAGER::HOT_KEY_BINDING_DIALOG); if (hot_key_dialog != NULL) { hot_key_dialog->RecvUserKeySetting(hot_key_code.hot_key_code_); } #else //_NA_000000_20130114_RENEWER_UI // UI¿¡ ŰÁ¶ÇÕ Àü´Þ uiHotKeyDialog* hot_key_dialog = GET_CAST_DIALOG(uiHotKeyDialog, IM_OPTION_MENU_MANAGER::HOT_KEY_BINDING_DIALOG); if (hot_key_dialog != NULL) { hot_key_dialog->RecvUserKeySetting(hot_key_code.hot_key_code_); } #endif //_NA_000000_20130114_RENEWER_UI } } WORD HotKeyManager::CheckUserKeyInput() { // ÀÔ·Â Çã¿ëŰ »óÅ üũ BOOL is_input = FALSE; HotKeyInfoParser::AllowKeyCodeMap& allow_key_map = HotKeyInfoParser::Instance()->allow_key_code_map(); HotKeyInfoParser::AllowKeyCodeMap::iterator found_itr = allow_key_map.begin(); HotKeyInfoParser::AllowKeyCodeMap::iterator end_itr = allow_key_map.end(); for ( ; found_itr != end_itr; ++found_itr) { WORD key_code = found_itr->first; if (key_code == 0) { continue; } if (key_code < MAX_KEY_BUFFER) { // ŰÀÔ·Â if (g_Input.GetState(key_code, KS_UP, TRUE) || g_Input.GetState(key_code, IKS_UP, TRUE)) { is_input = TRUE; } } else if (key_code < (MOUSE_BUTTON8 + 1)) { // ¸¶¿ì½º ¹öưÀÔ·Â if (g_Input.GetState(key_code, KS_MOUSE_UP, TRUE) || g_Input.GetState(key_code, IKS_MOUSE_UP, TRUE)) { is_input = TRUE; } } else if (key_code < (MOUSE_WHEEL_BUTTON_DOWN + 1)) { // ¸¶¿ì½º ÈÙÀÔ·Â if (g_Input.GetMouseWheel() == (key_code - MOUSE_WHEEL_BUTTON_UP + 1)) { is_input = TRUE; } } if (is_input == TRUE) { return key_code; } } return 0; } KEY_BIND_PAIR* HotKeyManager::GetKeyBindPair(HOT_KEY_FUNCTION_INDEX hot_key_function_index) { KEY_BIND_PAIR_MAP& bind_pair_map = current_using_key_bind_info().key_bind_pair_map(); KEY_BIND_PAIR_MAP::iterator found_itr = bind_pair_map.find(hot_key_function_index); if (found_itr != bind_pair_map.end()) { return &(found_itr->second); } return NULL; } bool HotKeyManager::CheckInputBindKey(KEY_BIND_PAIR& key_bind_pair, int key_state, BOOL force_input /*= FALSE*/) { int ext_key_state = KS_KEY; BYTE shift_key = (g_Input.GetState(DIK_LSHIFT, ext_key_state, force_input) != FALSE) ? 1 : 0; BYTE ctrl_key = (g_Input.GetState(DIK_LCONTROL, ext_key_state, force_input) != FALSE) ? 1 : 0; BYTE alt_key = (g_Input.GetState(DIK_LALT, ext_key_state, force_input) != FALSE) ? 1 : 0; WORD key_code = key_bind_pair.hot_key_code[KEY_BIND_PAIR::kMainHotKey].key_code_; if ((key_code != 0) && (key_bind_pair.hot_key_code[KEY_BIND_PAIR::kMainHotKey].shift_key_ == shift_key) && (key_bind_pair.hot_key_code[KEY_BIND_PAIR::kMainHotKey].ctrl_key_ == ctrl_key) && (key_bind_pair.hot_key_code[KEY_BIND_PAIR::kMainHotKey].alt_key_ == alt_key)) { if (g_Input.GetState(key_code, key_state, force_input) != FALSE) { return true; } } key_code = key_bind_pair.hot_key_code[KEY_BIND_PAIR::kSubHotKey].key_code_; if ((key_code != 0) && (key_bind_pair.hot_key_code[KEY_BIND_PAIR::kSubHotKey].shift_key_ == shift_key) && (key_bind_pair.hot_key_code[KEY_BIND_PAIR::kSubHotKey].ctrl_key_ == ctrl_key) && (key_bind_pair.hot_key_code[KEY_BIND_PAIR::kSubHotKey].alt_key_ == alt_key)) { if (g_Input.GetState(key_code, key_state, force_input) != FALSE) { return true; } } if (force_input == TRUE) { ext_key_state = KS_KEY>>4; key_state = key_state>>4; shift_key = (g_Input.GetState(DIK_LSHIFT, ext_key_state, force_input) != FALSE) ? 1 : 0; ctrl_key = (g_Input.GetState(DIK_LCONTROL, ext_key_state, force_input) != FALSE) ? 1 : 0; alt_key = (g_Input.GetState(DIK_LALT, ext_key_state, force_input) != FALSE) ? 1 : 0; key_code = key_bind_pair.hot_key_code[KEY_BIND_PAIR::kMainHotKey].key_code_; if ((key_code != 0) && (key_bind_pair.hot_key_code[KEY_BIND_PAIR::kMainHotKey].shift_key_ == shift_key) && (key_bind_pair.hot_key_code[KEY_BIND_PAIR::kMainHotKey].ctrl_key_ == ctrl_key) && (key_bind_pair.hot_key_code[KEY_BIND_PAIR::kMainHotKey].alt_key_ == alt_key)) { if (g_Input.GetState(key_code, key_state, force_input) != FALSE) { return true; } } key_code = key_bind_pair.hot_key_code[KEY_BIND_PAIR::kSubHotKey].key_code_; if ((key_code != 0) && (key_bind_pair.hot_key_code[KEY_BIND_PAIR::kSubHotKey].shift_key_ == shift_key) && (key_bind_pair.hot_key_code[KEY_BIND_PAIR::kSubHotKey].ctrl_key_ == ctrl_key) && (key_bind_pair.hot_key_code[KEY_BIND_PAIR::kSubHotKey].alt_key_ == alt_key)) { if (g_Input.GetState(key_code, key_state, force_input) != FALSE) { return true; } } } return false; } bool HotKeyManager::CompareHotKeyInfo(KEY_BIND_INFO& left_Info, KEY_BIND_INFO& right_Info) { KEY_BIND_PAIR_MAP::iterator left_found_itr = left_Info.key_bind_pair_map().begin(); KEY_BIND_PAIR_MAP::iterator left_end_itr = left_Info.key_bind_pair_map().end(); KEY_BIND_PAIR_MAP::iterator right_found_itr = right_Info.key_bind_pair_map().begin(); KEY_BIND_PAIR_MAP::iterator right_end_itr = right_Info.key_bind_pair_map().end(); for ( ; left_found_itr != left_end_itr; ++left_found_itr) { if(left_found_itr==left_Info.key_bind_pair_map().end() ||right_found_itr==right_Info.key_bind_pair_map().end()) { return false; } if (left_found_itr->first != right_found_itr->first) { return false; } KEY_BIND_PAIR& left_pair = left_found_itr->second; KEY_BIND_PAIR& right_pair = right_found_itr->second; if (left_pair.GetHotKeyCode(KEY_BIND_PAIR::kMainHotKey) != right_pair.GetHotKeyCode(KEY_BIND_PAIR::kMainHotKey)) { return false; } if (left_pair.GetHotKeyCode(KEY_BIND_PAIR::kSubHotKey) != right_pair.GetHotKeyCode(KEY_BIND_PAIR::kSubHotKey)) { return false; } ++right_found_itr; if (right_found_itr == right_end_itr) { ++left_found_itr; break; } } if ((left_found_itr != left_end_itr) || (right_found_itr != right_end_itr)) { return false; } return true; } bool HotKeyManager::MakeToStream(GameOption& game_option) { WORD* stream = (WORD*)(&game_option.binary_data_[0]); int offset = 0; // ¹öÀü °ü¸®, offset : 0 *(stream + offset++) = 1; // ۰ªÀúÀå KEY_BIND_PAIR_MAP::iterator found_itr = temp_key_bind_info().key_bind_pair_map().begin(); KEY_BIND_PAIR_MAP::iterator end_itr = temp_key_bind_info().key_bind_pair_map().end(); for ( ; found_itr != end_itr; ++found_itr) { *(stream + offset++) = (WORD)found_itr->first; KEY_BIND_PAIR& key_bind_pair = found_itr->second; *(stream + offset++) = key_bind_pair.GetHotKeyCode(KEY_BIND_PAIR::kMainHotKey); *(stream + offset++) = key_bind_pair.GetHotKeyCode(KEY_BIND_PAIR::kSubHotKey); if (((offset + 3) * sizeof(WORD)) > MAX_GAMEOPTIONSTREAM_SIZE) { assert(!"((offset + 3) * sizeof(WORD)) > MAX_GAMEOPTIONSTREAM_SIZE"); return false; } } game_option.binary_data_size_ = (offset * sizeof(WORD)); return true; } bool HotKeyManager::MakeToHotKeyInfo(GameOption& game_option, KEY_BIND_INFO& apply_info) { bool is_success = false; if (game_option.binary_data_size_ < sizeof(WORD)) { return is_success; } WORD* stream = (WORD*)(&game_option.binary_data_[0]); int offset = 0; // ¹öÀü ¾ò±â WORD version = *(stream + offset++); if (version == 1) { temp_key_bind_info().key_bind_pair_map().clear(); temp_key_bind_info().hot_key_code_association_map().clear(); HOT_KEY_FUNCTION_INDEX function_index; KEY_BIND_PAIR key_bind_pair; for ( ; ((offset + 3) * sizeof(WORD)) <= game_option.binary_data_size_; ) { function_index = static_cast(*(stream + offset++)); key_bind_pair.SetHotKeyCode(KEY_BIND_PAIR::kMainHotKey, *(stream + offset++)); key_bind_pair.SetHotKeyCode(KEY_BIND_PAIR::kSubHotKey, *(stream + offset++)); temp_key_bind_info().SetKeyBindInfo(function_index, key_bind_pair); } apply_info = temp_key_bind_info(); //set_is_character_setting(true); is_success = true; } return is_success; } void HotKeyManager::SaveHotKeyInfoToServer(bool is_check_character) { // ½ºÆ®¸²À¸·Î º¯°æ MSG_CG_ETC_GAMEOPTION_SAVE_SYN send_packet; if (is_character_setting() == true) { if (is_check_character == true) { // ij¸¯ÅÍ -> ij¸¯ÅÍ : ij¸¯ÅÍ ¾÷µ¥ÀÌÆ® // µðÆúÆ®¿Í °°ÀºÁö üũÇÏ¿© ´Ù¸£¸é ÀúÀåÇÔ if (CompareHotKeyInfo(temp_key_bind_info(), current_using_key_bind_info()) == false) { send_packet.game_option_.option_type_ = GameOption::kKeyCustomizingPerChar; if (MakeToStream(send_packet.game_option_) == true) { GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); } } } else { // ij¸¯ÅÍ -> °èÁ¤ : °èÁ¤ ÀúÀå, ij¸¯ÅÍ »èÁ¦ if (CompareHotKeyInfo(temp_key_bind_info(), account_key_bind_info()) == false) { send_packet.game_option_.option_type_ = GameOption::kKeyCustomizing; if (MakeToStream(send_packet.game_option_) == true) { GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); } } send_packet.game_option_.option_type_ = GameOption::kKeyCustomizingPerChar; send_packet.game_option_.binary_data_size_ = 0; send_packet.game_option_.binary_data_[0] = 0; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); } } else { if (is_check_character == true) { // °èÁ¤ -> ij¸¯ÅÍ : ij¸¯ÅÍ ÀúÀå send_packet.game_option_.option_type_ = GameOption::kKeyCustomizingPerChar; if (MakeToStream(send_packet.game_option_) == true) { GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); } } else { // °èÁ¤/ij¸¯ÅÍ ÀúÀå ¿©ºÎ¿¡ µû¸¥ ºÐ±â // °èÁ¤ -> °èÁ¤ : °èÁ¤ ¾÷µ¥ÀÌÆ® // µðÆúÆ®¿Í °°ÀºÁö üũÇÏ¿© ´Ù¸£¸é ÀúÀåÇÔ if (CompareHotKeyInfo(temp_key_bind_info(), account_key_bind_info()) == false) { send_packet.game_option_.option_type_ = GameOption::kKeyCustomizing; if (MakeToStream(send_packet.game_option_) == true) { GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); } } } } set_is_character_setting(is_check_character); } void HotKeyManager::LoadHotKeyInfoFromServer() { current_using_key_bind_info() = defalut_key_bind_info(); MSG_CG_ETC_GAMEOPTION_LOAD_SYN send_packet; send_packet.option_type_ = GameOption::kKeyCustomizing; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); set_is_character_setting(false); } void HotKeyManager::LoadHotKeyInfoFromServerByCharacter() { MSG_CG_ETC_GAMEOPTION_LOAD_SYN send_packet; send_packet.option_type_ = GameOption::kKeyCustomizingPerChar; GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); } void HotKeyManager::RecvHotKeyInfo(GameOption& game_option) { if (game_option.option_type_ == GameOption::kKeyCustomizing) { // °èÁ¤ ¼¼ÆÃ // ½ºÆ®¸²À» Ç®¾î¼­ current¿¡ ÀúÀå if (MakeToHotKeyInfo(game_option, account_key_bind_info())) { #ifdef _NA_008168_20150330_IMPROVED_REGISTRATION_OF_NEW_SHORTCUTS InValidDefaultShortCutCheck(account_key_bind_info(), GameOption::kKeyCustomizing); // »õ·Î Ãß°¡µÈ ۰¡ ÀÖ´ÂÁö °Ë»ç #endif // _NA_008168_20150330_IMPROVED_REGISTRATION_OF_NEW_SHORTCUTS current_using_key_bind_info() = account_key_bind_info(); } // ij¸¯ÅÍ ¼¼ÆÃ ¿äû LoadHotKeyInfoFromServerByCharacter(); } else if (game_option.option_type_ == GameOption::kKeyCustomizingPerChar) { // ij¸¯ÅÍ ¼¼ÆÃ // ½ºÆ®¸²À» Ç®¾î¼­ current¿¡ ÀúÀå if (MakeToHotKeyInfo(game_option, current_using_key_bind_info()) == true) { #ifdef _NA_008168_20150330_IMPROVED_REGISTRATION_OF_NEW_SHORTCUTS InValidDefaultShortCutCheck(current_using_key_bind_info(), GameOption::kKeyCustomizingPerChar); #endif // _NA_008168_20150330_IMPROVED_REGISTRATION_OF_NEW_SHORTCUTS set_is_character_setting(true); } } #ifdef _NA_000000_20130114_RENEWER_UI uiMenuMan* MainMenuMan = static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_MENU)); if(MainMenuMan) { MainMenuMan->KeyModifyChange(); } #ifdef _NA_006643_20130417_UI_OUT_WINDOW_BREAK RadarFullDialog* pfullRadar = GET_CAST_DIALOG(RadarFullDialog, IM_RADAR_MANAGER::RADAR_DIALOG_FULL); if (pfullRadar) { pfullRadar->CheckModifyOption(); } InventoryDialog* pInventory = GET_CAST_DIALOG(InventoryDialog, IM_INVENTORY_MANAGER::INVEN_DLG); if (pInventory) { pInventory->CheckModifyOption(); } #endif #endif } void HotKeyManager::RecLoadNak(GameOption::Type option_type) { if (option_type == GameOption::kKeyCustomizing) { LoadHotKeyInfoFromServerByCharacter(); } } void HotKeyManager::BuildDefalutKeyBindInfo() { HotKeyInfoParser::Instance()->GetDefalutKeyInfo(defalut_key_bind_info()); BuildKeyCommands(); } void HotKeyManager::BuildKeyCommands() { // °¢ KeyCommand ÀνºÅϽº ÄÁÅ×ÀÌ³Ê »ðÀÔ // ij¸¯ÅÍ À̵¿ °ü·Ã key_command_container().insert(KEY_COMMAND_MAP::value_type(kMove_Forward, HeroMoveCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kMove_Backward, HeroMoveCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kMove_LeftSide, HeroMoveCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kMove_RightSide, HeroMoveCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kTurn_Left, HeroMoveCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kTurn_Right, HeroMoveCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kJump, HeroJumpCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kAutoRun, HeroAutoRunCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kSitStand, HeroActionSkillCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kPickUp_Item, HeroActionSkillCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kWingSpread, HeroSpreadWingCommand::Instance())); // ´ëÈ­ ÀÔ·Â/º¸³»±â key_command_container().insert(KEY_COMMAND_MAP::value_type(kScreenShot, ScreenShotCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kScreenShotMode, ScreenShotCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kHide_InterfaceAll, ScreenShotCommand::Instance())); // Ÿ°Ù ¼±Åà key_command_container().insert(KEY_COMMAND_MAP::value_type(kSelect_TargetEnemy, TargetEnemyCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kNext_TargetEnemy, TargetEnemyCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kPrev_TargetEnemy, TargetEnemyCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kSelect_Hero, TargetPartyMemberCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kSelect_PartyMember1, TargetPartyMemberCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kSelect_PartyMember2, TargetPartyMemberCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kSelect_PartyMember3, TargetPartyMemberCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kSelect_PartyMember4, TargetPartyMemberCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kSelect_PartyMember5, TargetPartyMemberCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kSelect_PartyMember6, TargetPartyMemberCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kSelect_PartyMember7, TargetPartyMemberCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kSelect_PartyMember8, TargetPartyMemberCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kSelect_PartyMember9, TargetPartyMemberCommand::Instance())); // Äü½½·Ô È®Àå Åä±Û key_command_container().insert(KEY_COMMAND_MAP::value_type(kExpand_QuickSlotBar, QuickSlotModeCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kExchange_QuickSlotBar, QuickSlotModeCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot1, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot2, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot3, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot4, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot5, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot6, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot7, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot8, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot9, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot10, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot11, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot12, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot13, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot14, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot15, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot16, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot17, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot18, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot19, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot20, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot21, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot22, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot23, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot24, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot25, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot26, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot27, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot28, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot29, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot30, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot31, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot32, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot33, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot34, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot35, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot36, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot37, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot38, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot39, QuickSlotUseCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_QuickSlot40, QuickSlotUseCommand::Instance())); // UI Åä±Û key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_CharacterStatus_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_Inventory_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kModeChange_ExtendInventory_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_Skill_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_Quest_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_Guild_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_Community_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_AreaConquest_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_PetStatus_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_SystemMenu_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_ContinentMap_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_BattleScore_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kModeChange_Radar_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kModeChange_FullRadar_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_CashShop_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_GuideInfomation_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_MissionObject_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_BattleZone_UI, DialogToggleCommand::Instance())); #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_ChaosZone_UI, DialogToggleCommand::Instance())); #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_000000_20121210_REFACTORY_GAME_USER key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_personal_Warp_UI, DialogToggleCommand::Instance())); #endif //_NA_000000_20121210_REFACTORY_GAME_USER #ifdef _NA_007086_20140318_MONSTERBOOK key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_MonsterBook_UI, DialogToggleCommand::Instance())); #endif //_NA_007086_20140318_MONSTERBOOK #ifdef _NA_007932_20150112_ATTENDANCE_CHECK_SYSTEM key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_Attendance_UI, DialogToggleCommand::Instance())); #endif //_NA_007932_20150112_ATTENDANCE_CHECK_SYSTEM #ifdef _NA_008016_20150203_SUN_RANKING_SYSTEM key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_SUN_Ranking_UI, DialogToggleCommand::Instance())); #endif // _NA_008016_20150203_SUN_RANKING_SYSTEM #ifdef _NA_008405_20150716_MINIGAME_BINGO key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_MINI_Game_UI, DialogToggleCommand::Instance())); #endif // _NA_008405_20150716_MINIGAME_BINGO /*key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_Service_UI, DialogToggleCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_Event_UI, DialogToggleCommand::Instance()));*/ // Ãë¼Ò/½Ã½ºÅÛ¸Þ´º key_command_container().insert(KEY_COMMAND_MAP::value_type(kOpen_SystemMenu_N_Cancel, SystemMenuNCancelCommand::Instance())); // ¼Òȯ¼ö Á¶Á¾ key_command_container().insert(KEY_COMMAND_MAP::value_type(kSelect_MySummonMonster, SummonControlCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_SummonSkill1, SummonControlCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_SummonSkill2, SummonControlCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_SummonSkill3, SummonControlCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kUse_SummonSkill4, SummonControlCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOrderAttack_SummonMonster, SummonControlCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOrderFollow_SummonMonster, SummonControlCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kAttackMode_SummonMonster, SummonControlCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kDefenceMode_SummonMonster, SummonControlCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kRelease_SummonMonster, SummonControlCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kOrderNonPKAttack_SummonMonster, SummonControlCommand::Instance())); // Ä«¸Þ¶óÁ¶Á¾ key_command_container().insert(KEY_COMMAND_MAP::value_type(kZoom_In, CameraControlCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kZoom_Out, CameraControlCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kRotate_Left_Camera, CameraControlCommand::Instance())); key_command_container().insert(KEY_COMMAND_MAP::value_type(kRotate_Right_Camera, CameraControlCommand::Instance())); // °¢ KeyCommand ¿¡ ´ëÇÑ Ãß°¡ÀûÀΠó¸® DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_CharacterStatus_UI, UIActionFunction::ToggleCharacterStatusUI); DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_Inventory_UI, UIActionFunction::ToggleInventoryUI); DialogToggleCommand::Instance()->RegisterActionFunction(kModeChange_ExtendInventory_UI, UIActionFunction::ToggleExtendInventoryUI); DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_Skill_UI, UIActionFunction::ToggleSkillUI); DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_Quest_UI, UIActionFunction::ToggleQuestUI); DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_Guild_UI, UIActionFunction::ToggleGuildUI); DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_Community_UI, UIActionFunction::ToggleCommunityUI); DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_AreaConquest_UI, UIActionFunction::ToggleACUI); DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_PetStatus_UI, UIActionFunction::TogglePetUI); DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_SystemMenu_UI, UIActionFunction::ToggleSystemMenuUI); DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_ContinentMap_UI, UIActionFunction::ToggleContinentMap); DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_BattleScore_UI, UIActionFunction::ToggleBattleScoreUI); DialogToggleCommand::Instance()->RegisterActionFunction(kModeChange_Radar_UI, BattleScene::ShowRadirDialog); DialogToggleCommand::Instance()->RegisterActionFunction(kModeChange_FullRadar_UI, UIActionFunction::ToggleFullRadarMode); DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_CashShop_UI, UIActionFunction::ToggleCashShopUI); DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_GuideInfomation_UI, UIActionFunction::ToggleGuideInfomationUI); DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_MissionObject_UI, UIActionFunction::ToggleMissionObjectUI); #ifdef _DH_BATTLEZONE2_ DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_BattleZone_UI, uiBattlezone2Man::ToggleBattlezoneDialog); #endif //_DH_BATTLEZONE2_ #ifdef _NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_ChaosZone_UI, uiChaosSystemMan::HotKeyToggleChaoszoneDialog); #endif //_NA_005026_20120527_CHAOS_ZONE_BATTLE_GROUND #ifdef _NA_000000_20121210_REFACTORY_GAME_USER DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_personal_Warp_UI, uiPersonalWayPointMan::HotKeyTogglePersonalwarpDialog); #endif //_NA_000000_20121210_REFACTORY_GAME_USER #ifdef _NA_007086_20140318_MONSTERBOOK DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_MonsterBook_UI, uiMonsterBookMan::HotKeyToggleMonsterBookDialog); #endif //_NA_007086_20140318_MONSTERBOOK #ifdef _NA_007932_20150112_ATTENDANCE_CHECK_SYSTEM DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_Attendance_UI, uiAttendanceCheckMan::HotKeyToggleAttendanceCheckDialog); #endif //_NA_007932_20150112_ATTENDANCE_CHECK_SYSTEM #ifdef _NA_008016_20150203_SUN_RANKING_SYSTEM DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_SUN_Ranking_UI, uiSUNRankingMan::HotKeyToggleSUNRankingDialog); #endif // _NA_008016_20150203_SUN_RANKING_SYSTEM #ifdef _NA_008405_20150716_MINIGAME_BINGO DialogToggleCommand::Instance()->RegisterActionFunction(kOpen_MINI_Game_UI, uiMiniGameMan::HotKeyToggleMiniGameBingoDialog); #endif // _NA_008405_20150716_MINIGAME_BINGO } KeyCommand* HotKeyManager::GetKeyCommand(HOT_KEY_FUNCTION_INDEX hot_key_function_index) { STLX_MAP::iterator found_itr = key_command_container().find(hot_key_function_index); if (found_itr != key_command_container().end()) { return found_itr->second; } return NULL; } #ifdef _NA_008168_20150330_IMPROVED_REGISTRATION_OF_NEW_SHORTCUTS void HotKeyManager::InValidDefaultShortCutCheck(KEY_BIND_INFO& dest_key_bind, GameOption::Type option_type) { // ÇöÀç ´ÜÃàŰ¿Í ±âº» ´ÜÃà۰¡ ´Ù¸¦ ¶§... if ( CompareHotKeyInfo(dest_key_bind, defalut_key_bind_info()) == false ) { KEY_BIND_PAIR_MAP::iterator found_itr = defalut_key_bind_info().key_bind_pair_map().begin(); KEY_BIND_PAIR_MAP::iterator end_itr = defalut_key_bind_info().key_bind_pair_map().end(); KEY_BIND_PAIR_MAP::iterator temp_itr; bool is_change = false; for ( ; found_itr != end_itr; ++found_itr) { temp_itr = dest_key_bind.key_bind_pair_map().find(found_itr->first); if ( temp_itr == dest_key_bind.key_bind_pair_map().end() ) { HOT_KEY_FUNCTION_INDEX index = found_itr->first; KEY_BIND_PAIR& key_bind_pair = found_itr->second; WORD main_hot_key = key_bind_pair.GetHotKeyCode(KEY_BIND_PAIR::kMainHotKey); WORD sub_hot_key = key_bind_pair.GetHotKeyCode(KEY_BIND_PAIR::kSubHotKey); bool is_exist_key = false; KEY_BIND_PAIR_MAP::iterator temp_find_itr = dest_key_bind.key_bind_pair_map().begin(); for ( ; temp_find_itr != dest_key_bind.key_bind_pair_map().end(); ++temp_find_itr ) { is_exist_key = false; // ÀÌ¹Ì °°Àº ۰¡ Á¸ÀçÇÏ´ÂÁö °Ë»ç. WORD temp_main_hot_key = temp_find_itr->second.GetHotKeyCode(KEY_BIND_PAIR::kMainHotKey); WORD temp_sub_hot_key = temp_find_itr->second.GetHotKeyCode(KEY_BIND_PAIR::kSubHotKey); if ( main_hot_key == temp_main_hot_key && sub_hot_key == temp_sub_hot_key ) { is_exist_key = true; break; } } // ÀÌ¹Ì Å°°¡ Á¸ÀçÇϸé 0À¸·Î ¼ÂÆÃ. if ( is_exist_key == true ) { KEY_BIND_PAIR temp_key_bind_pair; temp_key_bind_pair.SetHotKeyCode(KEY_BIND_PAIR::kMainHotKey, 0); temp_key_bind_pair.SetHotKeyCode(KEY_BIND_PAIR::kSubHotKey, 0); dest_key_bind.SetKeyBindInfo(index, temp_key_bind_pair); } else { dest_key_bind.SetKeyBindInfo(index, key_bind_pair); } is_change = true; } } if ( is_change == true ) { temp_key_bind_info() = dest_key_bind; // ½ºÆ®¸²À¸·Î º¯°æ MSG_CG_ETC_GAMEOPTION_SAVE_SYN send_packet; send_packet.game_option_.option_type_ = option_type; if (MakeToStream(send_packet.game_option_) == true) { GlobalFunc::SendPacket(CI_GAMESERVERIDX, &send_packet, sizeof(send_packet)); } } } } #endif // _NA_008168_20150330_IMPROVED_REGISTRATION_OF_NEW_SHORTCUTS ////////////////////////////////////////////////////////////////////////// //HOT_CODE HotKeyManager::m_HotCode[eHOTKEY_MAX] = //{ // /* { shift, ctrl, alt, normal_key, excute } */ // { false, true, false, DIK_ESCAPE, OPERATION_TOGGLE_DIALOG_FUNCTION }, //eHOTKEY_SYSTEMDLG, // { false, false, false, DIK_I, OPERATION_TOGGLE_DIALOG_WITHOUT_FULLMAP }, //eHOTKEY_INVENTORYDLG, // { false, false, false, DIK_K, OPERATION_TOGGLE_DIALOG_FUNCTION }, //eHOTKEY_SKILLDLG, // { false, false, false, DIK_O, OPERATION_TOGGLE_DIALOG_FUNCTION }, //eHOTKEY_MISSIONOBJECTDLG, // { false, false, false, DIK_C, OPERATION_TOGGLE_DIALOG_WITHOUT_FULLMAP }, //eHOTKEY_CHARACTERSKILLDLG, // { false, false, false, DIK_F, OPERATION_TOGGLE_DIALOG_WITHOUT_FULLMAP }, //eHOTKEY_FRIENDDLG, // { false, false, false, DIK_J, OPERATION_TOGGLE_DIALOG_WITHOUT_FULLMAP }, //eHOTKEY_ACDLG, // { false, false, false, DIK_Z, OPERATION_TOGGLE_DIALOG_FUNCTION }, //eHOTKEY_BATTLE_RESULT_DLG, // { false, false, false, DIK_G, OPERATION_TOGGLE_DIALOG_FUNCTION }, //eHOTKEY_GUILDDLG // { false, false, false, DIK_P, OPERATION_TOGGLE_DIALOG_FUNCTION }, //eHOTKEY_PETDLG // { false, false, false, DIK_L, OPERATION_TOGGLE_DIALOG_FUNCTION }, //eHOTKEY_QUESTDLG // { false, false, false, DIK_N, OPERATION_TOGGLE_DIALOG_FUNCTION }, //eHOTKEY_RADARDLG // { false, false, false, DIK_M, OPERATION_TOGGLE_DIALOG_FUNCTION }, //eHOTKEY_FULLMAPDLG // { false, false, false, DIK_B, OPERATION_TOGGLE_DIALOG_FUNCTION }, //eHOTKEY_WORLDMAPDLG // { false, false, false, DIK_F12, OPERATION_TOGGLE_DIALOG_WITHOUT_FULLMAP }, //eHOTKEY_OPTIONDLG // { false, false, false, DIK_U, OPERATION_TOGGLE_DIALOG_FUNCTION }, //eHOTKEY_EXTEND_INVENTORY_DLG // { false, false, false, DIK_RETURN, OPERATION_TOGGLE_DIALOG_FUNCTION }, //eHOTKEY_CHATTING_DLG // // { false, false, false, DIK_1, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_1 // { false, false, false, DIK_2, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_2 // { false, false, false, DIK_3, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_3 // { false, false, false, DIK_4, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_4 // { false, false, false, DIK_5, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_5 // { false, false, false, DIK_6, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_6 // { false, false, false, DIK_7, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_7 // { false, false, false, DIK_8, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_8 // { false, false, false, DIK_9, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_9 // { false, false, false, DIK_0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_10 // { false, false, false, DIK_1, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_11 // { false, false, true, DIK_2, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_12 // { false, false, true, DIK_3, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_13 // { false, false, true, DIK_4, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_14 // { false, false, true, DIK_5, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_15 // { false, false, true, DIK_6, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_16 // { false, false, true, DIK_7, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_17 // { false, false, true, DIK_8, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_18 // { false, false, true, DIK_9, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_19 // { false, false, true, DIK_0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_20 // // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_21 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_22 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_23 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_24 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_25 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_26 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_27 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_28 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_29 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_30 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_31 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_32 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_33 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_34 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_35 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_36 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_37 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_38 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_39 // { false, false, false, 0, OPERATION_QUICK_SLOT }, //eHOTKEY_QUICK_40 // // { false, false, false, DIK_F1, OPERATION_SELECT_PARTY }, //eHOTKEY_SELECT_PARTY_SELF, // { false, false, false, DIK_F2, OPERATION_SELECT_PARTY }, //eHOTKEY_SELECT_PARTY_1, // { false, false, false, DIK_F3, OPERATION_SELECT_PARTY }, //eHOTKEY_SELECT_PARTY_2, // { false, false, false, DIK_F4, OPERATION_SELECT_PARTY }, //eHOTKEY_SELECT_PARTY_3, // { false, false, false, DIK_F5, OPERATION_SELECT_PARTY }, //eHOTKEY_SELECT_PARTY_4, // { false, false, false, DIK_F6, OPERATION_SELECT_PARTY }, //eHOTKEY_SELECT_PARTY_5, // { false, false, false, DIK_F7, OPERATION_SELECT_PARTY }, //eHOTKEY_SELECT_PARTY_6, // { false, false, false, DIK_F8, OPERATION_SELECT_PARTY }, //eHOTKEY_SELECT_PARTY_7, // { false, false, false, DIK_F9, OPERATION_SELECT_PARTY }, //eHOTKEY_SELECT_PARTY_8, // { false, false, false, DIK_F10, OPERATION_SELECT_PARTY }, //eHOTKEY_SELECT_PARTY_9, // //#ifdef _JAPAN // { false, false, false, DIK_MINUS, OPERATION_SYSTEM }, //eHOTKEY_SYSTEM_QUICK_CHANGE, Äü½½·Ô º¯°æ // { false, false, false, DIK_CIRCUMFLEX, OPERATION_SYSTEM },//eHOTKEY_SYSTEM_QUICK_EXTEND, Äü½½·Ô È®Àå,Ãà¼Ò //#else // { false, false, false, DIK_GRAVE, OPERATION_SYSTEM }, //eHOTKEY_SYSTEM_QUICK_CHANGE, Äü½½·Ô º¯°æ // { false, false, false, DIK_MINUS, OPERATION_SYSTEM },//eHOTKEY_SYSTEM_QUICK_EXTEND, Äü½½·Ô È®Àå,Ãà¼Ò //#endif//_JAPAN //}; // //HotKeyManager::HotKeyManager() //{ //} // //HotKeyManager::~HotKeyManager() //{ //} // //VOID HotKeyManager::HotKeyUpdate() //{ // for( int code = 0 ; code < eHOTKEY_MAX ; ++code ) // { // { // bool is_shift_down = ((g_Input.GetState(DIK_LSHIFT, KS_KEY) != FALSE) || (g_Input.GetState(DIK_RSHIFT, KS_KEY)!= FALSE)); // bool is_alt_down = (g_Input.GetState(DIK_LALT, KS_KEY) != FALSE); // bool is_control_down = (g_Input.GetState(DIK_LCONTROL, KS_KEY) != FALSE); // // if(!(is_shift_down ^ m_HotCode[code].shift_key) && // shift°¡ Ȱ¼ºÈ­ À϶§ shift Ű Àΰæ¿ì true // !(is_alt_down ^ m_HotCode[code].alt_key) && // alt۰¡ Ȱ¼ºÈ­ À϶§ laltÀÎ °æ¿ì true // !(is_control_down ^ m_HotCode[code].ctrl_key) && // alt۰¡ Ȱ¼ºÈ­ À϶§ laltÀÎ °æ¿ì true // g_Input.GetState(m_HotCode[code].iCmdKey, KS_DOWN)) // { // // ´Üµ¶Å° »ç¿ë( Á¶ÇÕŰ ¾øÀÌ ´Üµ¶À¸·Î ) // ExcuteHotKey( (eHOTKEYCODE)code, m_HotCode[code].iOpeType ); // } // } // // } //} // //VOID HotKeyManager::Initialize() //{ // int i = 0; // for (i = 0; i < eHOTKEY_DLG_MAX; ++i) // { // datas[i] = 0; // } //} // //VOID HotKeyManager::RegisterHotKey( eHOTKEYCODE code, SolarDialog * pDlg ) //{ //#ifdef MAP_EDIT_MODE // // no operation //#else // datas[code] = static_cast(pDlg); //#endif //} // //VOID HotKeyManager::UnregisteredHotKey(eHOTKEYCODE code) //{ // //assert( m_pDlg[ code ] ); // datas[code] = NULL; //} // //VOID HotKeyManager::ShowDialogFunction(eHOTKEYCODE code) //{ // switch (code) // { // case eHOTKEY_BATTLE_RESULT_DLG: // { //#ifdef _NA_0_20091118_GAMEROOM_BATTLE_RESULT // uiBattleScoreMan* battle_score_manager_ptr = // static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_BATTLE_SCORE)); // if (battle_score_manager_ptr && battle_score_manager_ptr->GetMode() != uiBattleScoreMan::eBTS_NONE_MODE && // battle_score_manager_ptr->GetMode() != uiBattleScoreMan::eBTS_MODE_MAX) // { // battle_score_manager_ptr->set_toggle_ui_open(false); // battle_score_manager_ptr->ToggleBattleScoreWindow(); // } //#endif //_NA_0_20091118_GAMEROOM_BATTLE_RESULT // } // break; // case eHOTKEY_MISSIONOBJECTDLG: // { //#if defined(_NA_0_20091118_GAMEROOM_BATTLE_RESULT) // uiBattleScoreMan* battle_score_manager_ptr = // static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_BATTLE_SCORE)); // if (battle_score_manager_ptr && battle_score_manager_ptr->GetMode() == uiBattleScoreMan::eBTS_MISSION) // { // if( NULL == datas[ code ] ) return; // SolarDialog* dialog = static_cast(datas[code]); // BOOL val = dialog->IsVisibleWindow(); // if( g_pHero && g_pHero->IsShowFullMap() == FALSE ) // { // dialog->ShowDialog( val ^= TRUE ); // } // } //#endif//_NA_0_20091118_GAMEROOM_BATTLE_RESULT // } // break; // case eHOTKEY_SKILLDLG: // { // // Àüü¸ã Ãâ·ÂÇÒ ¶§´Â ´ÙÀ̾ó·Î±× ÀÚü¸¦ ó¸® ¾ÈÇÑ´Ù. // if( g_pHero && g_pHero->IsShowFullMap() == FALSE ) // { // uiBase* pUIBase = g_InterfaceManager.GetUISkillCurrentDialog(); // // if (pUIBase) // { // BOOL visible = pUIBase->IsVisible(); // pUIBase->ShowInterfaceWithSound(visible); // } // } // } // break; // case eHOTKEY_SYSTEMDLG: // { // GlobalFunc::DoSystemDialog(0,0); // } // break; // case eHOTKEY_GUILDDLG: // { // // ±æµå ¸Þ´º // uiGuildMan* guildMan = // static_cast(g_InterfaceManager.GetUserInterfaceManager(UIMAN_GUILD)); // // if (guildMan) // { // if(guildMan->IsShowWindow()) // { // guildMan->CloseWin(); // } // else // { // guildMan->SetShowGuildMain(); // guildMan->SEND_CG_GUILD_TOTALINFO_REQ_SYN(); // } // } // } // break; // case eHOTKEY_PETDLG: // { // if (g_pHero->IsPetReturn()) // { // g_HeroInput.ToggleShowPetInfo(); // } // } // break; // case eHOTKEY_QUESTDLG: // { // uiQuestMan* pQuestMan = // (uiQuestMan*)g_InterfaceManager.GetUserInterfaceManager(UIMAN_QUEST); // // if (pQuestMan) // { // pQuestMan->OpenQuestList(); // } // } // break; // case eHOTKEY_RADARDLG: // { // BattleScene::ShowRadirDialog(); // } // break; // case eHOTKEY_FULLMAPDLG: // { // if (GlobalFunc::IsSSQScene() == FALSE) // { // RadarFullDialog* pRadarFullDlg = GET_CAST_DIALOG(RadarFullDialog, IM_RADAR_MANAGER::RADAR_DIALOG_FULL); // if (pRadarFullDlg) // { // pRadarFullDlg->IncreaseRadarState(); // if (eFULL_RADAR_STATE_MAX != pRadarFullDlg->GetRadarState()) // { // pRadarFullDlg->ShowDialog(TRUE); // } // else // { // pRadarFullDlg->ShowDialog(FALSE); // } // } // } // } // break; // case eHOTKEY_WORLDMAPDLG: // { // uiRadarMan* ui_radar_manager = GET_DIALOG_MANAGER(uiRadarMan, UIMAN_RADAR); // if (ui_radar_manager != NULL) // { // ui_radar_manager->ToggleShowContinentMap(); // } // } // break; // case eHOTKEY_EXTEND_INVENTORY_DLG: // { // ExtendInventoryDialog* extend_inventory_dialog = // GET_CAST_DIALOG(ExtendInventoryDialog, IM_INVENTORY_MANAGER::EXTEND_INVEN_DLG); // if (extend_inventory_dialog != NULL) // { // extend_inventory_dialog->ShowExtendInventory(); // } // } // break; // case eHOTKEY_CHATTING_DLG: // { // if (g_Input.GetState(DIK_RETURN, KS_DOWN) || g_Input.GetState(DIK_NUMPADENTER, KS_DOWN)) // { // ChatDialog* pDlg = GET_CAST_DIALOG(ChatDialog, IM_CHAT_MANAGER::CHAT_DIALOG); // if (pDlg && !pDlg->IsAlwaysOnTop()) // { // if (!pDlg->m_preShow && !pDlg->IsVisibleWindow()) // { // pDlg->ShowDialog(TRUE); // } // else // { // pDlg->m_preShow=FALSE; // } // } // } // } // break; // } //} // //VOID HotKeyManager::SystemFunction(eHOTKEYCODE code) //{ // switch (code) // { // case eHOTKEY_SYSTEM_QUICK_CHANGE: // { // g_HeroInput.PressQuickSlotKey(); // } // break; // // case eHOTKEY_SYSTEM_QUICK_EXTEND: // { // g_HeroInput.ToggleChangeSlotSize();//»çÀÌÁ°æ // } // break; // } //} // //VOID HotKeyManager::ExcuteHotKey( eHOTKEYCODE code, eOPE_TYPE opeType ) //{ // switch( opeType ) // { // case OPERATION_TOGGLE_DIALOG_WITHOUT_FULLMAP: // { // if( NULL == datas[ code ] ) return; // // SolarDialog* dialog = static_cast(datas[code]); // BOOL val = dialog->IsVisibleWindow(); // // // ´ÜÃàŰ¿Í ȣȯÇÏ´Â °¢ ´ÙÀ̾ó·Î±× ¹öư On/Off ¼³Á¤ // /*case eHOTKEY_CHARACTERSKILLDLG: // case eHOTKEY_INVENTORYDLG: // case eHOTKEY_ACDLG: // case eHOTKEY_OPTIONDLG:*/ // if( g_pHero && g_pHero->IsShowFullMap() == FALSE ) // { // dialog->ShowDialog( val ^= TRUE ); // } // } // break; // case OPERATION_TOGGLE_DIALOG_FUNCTION: // { // ShowDialogFunction(code); // } // break; // // case OPERATION_QUICK_SLOT: // { // const int QUICK_MAX = 40; // int quickslot_tab_number = 0; // QuickContainer* quick_container = NULL; // if (g_pHero == NULL) // { // return; // } // quick_container = g_pHero->GetQuickContainer(); // if (quick_container && quick_container->double_size()) // { // quickslot_tab_number = quick_container->GetCurTabNum(); // } // // int index = code-eHOTKEY_QUICK_1; // index += quickslot_tab_number; // index %= QUICK_MAX; // MouseHandler::Instance()->ItemUseTransaction(SI_QUICK, index); // } // break; // // case OPERATION_SELECT_PARTY: // { // int index = code-eHOTKEY_SELECT_PARTY_1;// eHOTKEY_SELECT_PARTY_SELF = -1 // BattleScene::ProcessKeyInput_PartyMember(index); // } // break; // // case OPERATION_SYSTEM: // { // SystemFunction(code); // } // break; // } //} //