Fixes! Closes #235 and more:
* Hotkeys now save by server & player rather than just player * Added double clicking to module dialog options * Fixed a bug in the modal dialog for > pv970 (protocol changed) * Fixed a login bug for pv970. WARNING: Will remove all your current hotkeys.
This commit is contained in:
parent
27d5506262
commit
caf86a9fc6
|
@ -53,6 +53,8 @@ function show()
|
|||
if g_game.getFeature(GameSpellList) then
|
||||
cooldownWindow:show()
|
||||
cooldownButton:show()
|
||||
else
|
||||
hide()
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -91,10 +91,14 @@ function load()
|
|||
local hotkeySettings = g_settings.getNode('HotkeysManager')
|
||||
local hasCombos = false
|
||||
if not table.empty(hotkeySettings) then
|
||||
local playerHotkeySettings = hotkeySettings[g_game.getLocalPlayer():getName()]
|
||||
local serverHotkeys = hotkeySettings[G.host]
|
||||
|
||||
if not table.empty(playerHotkeySettings) then
|
||||
for k, setting in pairs(playerHotkeySettings) do
|
||||
local hotkeys
|
||||
if not table.empty(serverHotkeys) then
|
||||
hotkeys = serverHotkeys[g_game.getLocalPlayer():getName()]
|
||||
end
|
||||
if not table.empty(hotkeys) then
|
||||
for k, setting in pairs(hotkeys) do
|
||||
addKeyCombo(nil, setting.keyCombo, setting)
|
||||
hasCombos = true
|
||||
end
|
||||
|
@ -109,11 +113,15 @@ end
|
|||
|
||||
function save()
|
||||
local char = g_game.getLocalPlayer():getName()
|
||||
local server = G.host
|
||||
|
||||
local hotkeySettings = g_settings.getNode('HotkeysManager') or {}
|
||||
hotkeySettings[char] = {}
|
||||
hotkeySettings[server] = {}
|
||||
hotkeySettings[server][char] = {}
|
||||
|
||||
for i=1, currentHotkeysList:getChildCount() do
|
||||
local child = currentHotkeysList:getChildByIndex(i)
|
||||
table.insert(hotkeySettings[char], {
|
||||
table.insert(hotkeySettings[server][char], {
|
||||
keyCombo = child.keyCombo,
|
||||
autoSend = child.autoSend,
|
||||
itemId = child.itemId,
|
||||
|
|
|
@ -60,6 +60,8 @@ function onModalDialog(id, title, message, enterId, enterText, escapeId, escapeT
|
|||
destroy()
|
||||
end
|
||||
|
||||
choiceList.onDoubleClick = enterFunc
|
||||
|
||||
enterButton.onClick = enterFunc
|
||||
modalDialog.onEnter = enterFunc
|
||||
|
||||
|
|
|
@ -1500,20 +1500,26 @@ void ProtocolGame::parseShowModalDialog(const InputMessagePtr& msg)
|
|||
choiceList.push_back(std::make_tuple(id, value));
|
||||
}
|
||||
|
||||
int enterButton = msg->getU8();
|
||||
int escapeButton = msg->getU8();
|
||||
int enterButton, escapeButton;
|
||||
if(g_game.getProtocolVersion() > 970) {
|
||||
escapeButton = msg->getU8();
|
||||
enterButton = msg->getU8();
|
||||
}
|
||||
else {
|
||||
enterButton = msg->getU8();
|
||||
escapeButton = msg->getU8();
|
||||
}
|
||||
|
||||
msg->getU8(); // popup value (no clue what it is for)
|
||||
|
||||
std::map<int, std::string>::iterator itEnter = buttonList.find(enterButton);
|
||||
if(itEnter == buttonList.end())
|
||||
{
|
||||
if(itEnter == buttonList.end()) {
|
||||
g_logger.info(stdext::format("Enter button does not exist for dialog id: %d", id));
|
||||
return;
|
||||
}
|
||||
|
||||
std::map<int, std::string >::iterator itEscape = buttonList.find(escapeButton);
|
||||
if(itEscape == buttonList.end())
|
||||
{
|
||||
if(itEscape == buttonList.end()) {
|
||||
g_logger.info(stdext::format("Escape button does not exist for dialog id: %d", id));
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ void ProtocolGame::sendLoginPacket(uint challengeTimestamp, uint8 challengeRando
|
|||
|
||||
msg->addU16(g_game.getProtocolVersion());
|
||||
|
||||
if(g_game.getProtocolVersion() >= 970) {
|
||||
if(g_game.getProtocolVersion() >= 971) {
|
||||
msg->addU32(g_game.getClientVersion());
|
||||
msg->addU8(0); // clientType
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue