|
|
|
|
@ -1384,13 +1384,21 @@ bool IsPlayerDead()
|
|
|
|
|
|
|
|
|
|
void InitKeymapActions() |
|
|
|
|
{ |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"Help", |
|
|
|
|
N_("Help"), |
|
|
|
|
N_("Open Help Screen."), |
|
|
|
|
DVL_VK_F1, |
|
|
|
|
HelpKeyPressed, |
|
|
|
|
[&]() { return !IsPlayerDead(); }); |
|
|
|
|
for (int i = 0; i < 8; ++i) { |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"BeltItem{}", |
|
|
|
|
N_("Belt item {}"), |
|
|
|
|
N_("Use Belt item."), |
|
|
|
|
'1' + i, |
|
|
|
|
[i] { |
|
|
|
|
auto &myPlayer = Players[MyPlayerId]; |
|
|
|
|
if (!myPlayer.SpdList[i].isEmpty() && myPlayer.SpdList[i]._itype != ItemType::Gold) { |
|
|
|
|
UseInvItem(MyPlayerId, INVITEM_BELT_FIRST + i); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
[&]() { return !IsPlayerDead(); }, |
|
|
|
|
i + 1); |
|
|
|
|
} |
|
|
|
|
for (int i = 0; i < 4; ++i) { |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"QuickSpell{}", |
|
|
|
|
@ -1410,30 +1418,41 @@ void InitKeymapActions()
|
|
|
|
|
[&]() { return !IsPlayerDead(); }, |
|
|
|
|
i + 1); |
|
|
|
|
} |
|
|
|
|
for (int i = 0; i < 4; ++i) { |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"QuickMessage{}", |
|
|
|
|
N_("Quick Message {}"), |
|
|
|
|
N_("Use Quick Message in chat."), |
|
|
|
|
DVL_VK_F9 + i, |
|
|
|
|
[i]() { DiabloHotkeyMsg(i); }, |
|
|
|
|
[] { return true; }, |
|
|
|
|
i + 1); |
|
|
|
|
} |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"DecreaseGamma", |
|
|
|
|
N_("Decrease Gamma"), |
|
|
|
|
N_("Reduce screen brightness."), |
|
|
|
|
'G', |
|
|
|
|
DecreaseGamma, |
|
|
|
|
"DisplaySpells", |
|
|
|
|
N_("Speedbook"), |
|
|
|
|
N_("Open Speedbook."), |
|
|
|
|
'S', |
|
|
|
|
DisplaySpellsKeyPressed, |
|
|
|
|
[&]() { return !IsPlayerDead(); }); |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"IncreaseGamma", |
|
|
|
|
N_("Increase Gamma"), |
|
|
|
|
N_("Increase screen brightness."), |
|
|
|
|
'F', |
|
|
|
|
IncreaseGamma, |
|
|
|
|
"QuickSave", |
|
|
|
|
N_("Quick save"), |
|
|
|
|
N_("Saves the game."), |
|
|
|
|
DVL_VK_F2, |
|
|
|
|
[] { gamemenu_save_game(false); }, |
|
|
|
|
[&]() { return !gbIsMultiplayer && !IsPlayerDead(); }); |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"QuickLoad", |
|
|
|
|
N_("Quick load"), |
|
|
|
|
N_("Loads the game."), |
|
|
|
|
DVL_VK_F3, |
|
|
|
|
[] { gamemenu_load_game(false); }, |
|
|
|
|
[&]() { return !gbIsMultiplayer && gbValidSaveFile && stextflag == STORE_NONE; }); |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"QuitGame", |
|
|
|
|
N_("Quit game"), |
|
|
|
|
N_("Closes the game."), |
|
|
|
|
DVL_VK_INVALID, |
|
|
|
|
[] { gamemenu_quit_game(false); }); |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"StopHero", |
|
|
|
|
N_("Stop hero"), |
|
|
|
|
N_("Stops walking and cancel pending actions."), |
|
|
|
|
DVL_VK_INVALID, |
|
|
|
|
[] { Players[MyPlayerId].Stop(); }, |
|
|
|
|
[&]() { return !IsPlayerDead(); }); |
|
|
|
|
|
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"Inventory", |
|
|
|
|
N_("Inventory"), |
|
|
|
|
@ -1455,6 +1474,23 @@ void InitKeymapActions()
|
|
|
|
|
'Q', |
|
|
|
|
QuestLogKeyPressed, |
|
|
|
|
[&]() { return !IsPlayerDead(); }); |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"SpellBook", |
|
|
|
|
N_("Spellbook"), |
|
|
|
|
N_("Open Spellbook."), |
|
|
|
|
'B', |
|
|
|
|
SpellBookKeyPressed, |
|
|
|
|
[&]() { return !IsPlayerDead(); }); |
|
|
|
|
for (int i = 0; i < 4; ++i) { |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"QuickMessage{}", |
|
|
|
|
N_("Quick Message {}"), |
|
|
|
|
N_("Use Quick Message in chat."), |
|
|
|
|
DVL_VK_F9 + i, |
|
|
|
|
[i]() { DiabloHotkeyMsg(i); }, |
|
|
|
|
[] { return true; }, |
|
|
|
|
i + 1); |
|
|
|
|
} |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"Zoom", |
|
|
|
|
N_("Zoom"), |
|
|
|
|
@ -1466,18 +1502,25 @@ void InitKeymapActions()
|
|
|
|
|
}, |
|
|
|
|
[&]() { return !IsPlayerDead(); }); |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"DisplaySpells", |
|
|
|
|
N_("Speedbook"), |
|
|
|
|
N_("Open Speedbook."), |
|
|
|
|
'S', |
|
|
|
|
DisplaySpellsKeyPressed, |
|
|
|
|
"DecreaseGamma", |
|
|
|
|
N_("Decrease Gamma"), |
|
|
|
|
N_("Reduce screen brightness."), |
|
|
|
|
'G', |
|
|
|
|
DecreaseGamma, |
|
|
|
|
[&]() { return !IsPlayerDead(); }); |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"SpellBook", |
|
|
|
|
N_("Spellbook"), |
|
|
|
|
N_("Open Spellbook."), |
|
|
|
|
'B', |
|
|
|
|
SpellBookKeyPressed, |
|
|
|
|
"IncreaseGamma", |
|
|
|
|
N_("Increase Gamma"), |
|
|
|
|
N_("Increase screen brightness."), |
|
|
|
|
'F', |
|
|
|
|
IncreaseGamma, |
|
|
|
|
[&]() { return !IsPlayerDead(); }); |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"Help", |
|
|
|
|
N_("Help"), |
|
|
|
|
N_("Open Help Screen."), |
|
|
|
|
DVL_VK_F1, |
|
|
|
|
HelpKeyPressed, |
|
|
|
|
[&]() { return !IsPlayerDead(); }); |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"GameInfo", |
|
|
|
|
@ -1492,48 +1535,6 @@ void InitKeymapActions()
|
|
|
|
|
UiFlags::ColorWhite); |
|
|
|
|
}, |
|
|
|
|
[&]() { return !IsPlayerDead(); }); |
|
|
|
|
for (int i = 0; i < 8; ++i) { |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"BeltItem{}", |
|
|
|
|
N_("Belt item {}"), |
|
|
|
|
N_("Use Belt item."), |
|
|
|
|
'1' + i, |
|
|
|
|
[i] { |
|
|
|
|
auto &myPlayer = Players[MyPlayerId]; |
|
|
|
|
if (!myPlayer.SpdList[i].isEmpty() && myPlayer.SpdList[i]._itype != ItemType::Gold) { |
|
|
|
|
UseInvItem(MyPlayerId, INVITEM_BELT_FIRST + i); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
[&]() { return !IsPlayerDead(); }, |
|
|
|
|
i + 1); |
|
|
|
|
} |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"QuickSave", |
|
|
|
|
N_("Quick save"), |
|
|
|
|
N_("Saves the game."), |
|
|
|
|
DVL_VK_F2, |
|
|
|
|
[] { gamemenu_save_game(false); }, |
|
|
|
|
[&]() { return !gbIsMultiplayer && !IsPlayerDead(); }); |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"QuickLoad", |
|
|
|
|
N_("Quick load"), |
|
|
|
|
N_("Loads the game."), |
|
|
|
|
DVL_VK_F3, |
|
|
|
|
[] { gamemenu_load_game(false); }, |
|
|
|
|
[&]() { return !gbIsMultiplayer && gbValidSaveFile && stextflag == STORE_NONE; }); |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"QuitGame", |
|
|
|
|
N_("Quit game"), |
|
|
|
|
N_("Closes the game."), |
|
|
|
|
DVL_VK_INVALID, |
|
|
|
|
[] { gamemenu_quit_game(false); }); |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"StopHero", |
|
|
|
|
N_("Stop hero"), |
|
|
|
|
N_("Stops walking and cancel pending actions."), |
|
|
|
|
DVL_VK_INVALID, |
|
|
|
|
[] { Players[MyPlayerId].Stop(); }, |
|
|
|
|
[&]() { return !IsPlayerDead(); }); |
|
|
|
|
#ifdef _DEBUG |
|
|
|
|
sgOptions.Keymapper.AddAction( |
|
|
|
|
"DebugToggle", |
|
|
|
|
|