Browse Source

Improve item hints for gamepads

pull/4272/head
Anders Jenbo 4 years ago
parent
commit
7e83aa1429
  1. 76
      Source/items.cpp

76
Source/items.cpp

@ -16,6 +16,7 @@
#include <fmt/format.h> #include <fmt/format.h>
#include "DiabloUI/ui_flags.hpp" #include "DiabloUI/ui_flags.hpp"
#include "controls/plrctrls.h"
#include "cursor.h" #include "cursor.h"
#include "doom.h" #include "doom.h"
#include "dx.h" #include "dx.h"
@ -1806,35 +1807,70 @@ void DrawUniqueInfoWindow(const Surface &out)
void PrintItemMisc(const Item &item) void PrintItemMisc(const Item &item)
{ {
if (item._iMiscId == IMISC_SCROLL) { if (item._iMiscId == IMISC_SCROLL) {
AddPanelString(_("Right-click to read")); if (ControlMode == ControlTypes::KeyboardAndMouse) {
AddPanelString(_("Right-click to read"));
} else {
if (item.IsScrollOf(SPL_TELEPORT) || item.IsScrollOf(SPL_TOWN)) {
AddPanelString(_("Select from spell book, then"));
AddPanelString(_("cast spell to read"));
} else if (!invflag) {
AddPanelString(_("Open inventory to use"));
} else {
AddPanelString(_("Activate to read"));
}
}
} }
if (item._iMiscId == IMISC_SCROLLT) { if (item._iMiscId == IMISC_SCROLLT) {
AddPanelString(_("Right-click to read, then")); if (ControlMode == ControlTypes::KeyboardAndMouse) {
AddPanelString(_("left-click to target")); AddPanelString(_("Right-click to read, then"));
} AddPanelString(_("left-click to target"));
if (item._iMiscId >= IMISC_USEFIRST && item._iMiscId <= IMISC_USELAST) { } else {
PrintItemOil(item._iMiscId); if (item.IsScrollOf(SPL_FIREBALL)
AddPanelString(_("Right-click to use")); || item.IsScrollOf(SPL_FIREWALL)
} || item.IsScrollOf(SPL_FLAME)
if (item._iMiscId > IMISC_OILFIRST && item._iMiscId < IMISC_OILLAST) { || item.IsScrollOf(SPL_GUARDIAN)
PrintItemOil(item._iMiscId); || item.IsScrollOf(SPL_LIGHTNING)
AddPanelString(_("Right click to use")); || item.IsScrollOf(SPL_STONE)
|| item.IsScrollOf(SPL_WAVE)) {
AddPanelString(_("Select from spell book, then"));
AddPanelString(_("cast spell to read"));
} else if (!invflag) {
AddPanelString(_("Open inventory to use"));
} else {
AddPanelString(_("Activate to read"));
}
}
} }
if (item._iMiscId > IMISC_RUNEFIRST && item._iMiscId < IMISC_RUNELAST) { if ((item._iMiscId >= IMISC_USEFIRST && item._iMiscId <= IMISC_USELAST)
|| (item._iMiscId > IMISC_OILFIRST && item._iMiscId < IMISC_OILLAST)
|| (item._iMiscId > IMISC_RUNEFIRST && item._iMiscId < IMISC_RUNELAST)) {
PrintItemOil(item._iMiscId); PrintItemOil(item._iMiscId);
AddPanelString(_("Right click to use")); if (ControlMode == ControlTypes::KeyboardAndMouse) {
} AddPanelString(_("Right-click to use"));
if (item._iMiscId == IMISC_BOOK) { } else {
AddPanelString(_("Right-click to read")); if (!invflag) {
AddPanelString(_("Open inventory to use"));
} else {
AddPanelString(_("Activate to use"));
}
}
} }
if (item._iMiscId == IMISC_NOTE) { if (IsAnyOf(item._iMiscId, IMISC_BOOK, IMISC_NOTE)) {
AddPanelString(_("Right click to read")); if (ControlMode == ControlTypes::KeyboardAndMouse) {
AddPanelString(_("Right-click to read"));
} else {
AddPanelString(_("Activate to read"));
}
} }
if (item._iMiscId == IMISC_MAPOFDOOM) { if (item._iMiscId == IMISC_MAPOFDOOM) {
AddPanelString(_("Right-click to view")); if (ControlMode == ControlTypes::KeyboardAndMouse) {
AddPanelString(_("Right-click to view"));
} else {
AddPanelString(_("Activate to view"));
}
} }
if (item._iMiscId == IMISC_EAR) { if (item._iMiscId == IMISC_EAR) {
AddPanelString(fmt::format(_("Level: {:d}"), item._ivalue)); AddPanelString(fmt::format(pgettext("player", "Level: {:d}"), item._ivalue));
} }
if (item._iMiscId == IMISC_AURIC) { if (item._iMiscId == IMISC_AURIC) {
AddPanelString(_("Doubles gold capacity")); AddPanelString(_("Doubles gold capacity"));

Loading…
Cancel
Save