1245 lines
55 KiB
C++
1245 lines
55 KiB
C++
#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<HOT_KEY_FUNCTION_INDEX>(*(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)
|
|
{
|
|
// 캐릭터 -> 캐릭터 : 캐릭터 업데이트
|
|
// 디폴트와 같은지 체크하여 다르면 저장함
|
|
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
|
|
{
|
|
// 캐릭터 -> 계정 : 계정 저장, 캐릭터 삭제
|
|
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)
|
|
{
|
|
// 계정 -> 캐릭터 : 캐릭터 저장
|
|
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
|
|
{
|
|
// 계정/캐릭터 저장 여부에 따른 분기
|
|
// 계정 -> 계정 : 계정 업데이트
|
|
// 디폴트와 같은지 체크하여 다르면 저장함
|
|
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();
|
|
}
|
|
|
|
// 캐릭터 세팅 요청
|
|
LoadHotKeyInfoFromServerByCharacter();
|
|
}
|
|
else if (game_option.option_type_ == GameOption::kKeyCustomizingPerChar)
|
|
{
|
|
// 캐릭터 세팅
|
|
// 스트림을 풀어서 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<uiMenuMan*>(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 인스턴스 컨테이너 삽입
|
|
// 캐릭터 이동 관련
|
|
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<HOT_KEY_FUNCTION_INDEX, KeyCommand*>::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<void*>(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<uiBattleScoreMan*>(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<uiBattleScoreMan*>(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<SolarDialog*>(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<uiGuildMan*>(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<SolarDialog*>(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;
|
|
// }
|
|
//}
|
|
//
|