Skip to content

Commit

Permalink
Unescape tooltip texts
Browse files Browse the repository at this point in the history
Previously, tooltips didn't unescape escaped formspec texts.
Item descriptions that trigger tooltips like inside inventories or for item_image_button
don't need to get unescaped, as they don't get set using formspec, but from lua.
  • Loading branch information
est31 authored and nerzhul committed Mar 11, 2015
1 parent 29e46d6 commit 140245a
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/guiFormSpecMenu.cpp
Expand Up @@ -1432,7 +1432,7 @@ void GUIFormSpecMenu::parseItemImageButton(parserData* data,std::string element)
video::ITexture *texture = idef->getInventoryTexture(item.getDefinition(idef).name, m_gamedef);

m_tooltips[narrow_to_wide(name)] =
TooltipSpec (item.getDefinition(idef).description,
TooltipSpec(item.getDefinition(idef).description,
m_default_tooltip_bgcolor,
m_default_tooltip_color);

Expand Down Expand Up @@ -1550,13 +1550,15 @@ void GUIFormSpecMenu::parseTooltip(parserData* data, std::string element)
std::vector<std::string> parts = split(element,';');
if (parts.size() == 2) {
std::string name = parts[0];
m_tooltips[narrow_to_wide(name)] = TooltipSpec (parts[1], m_default_tooltip_bgcolor, m_default_tooltip_color);
m_tooltips[narrow_to_wide(name)] = TooltipSpec(unescape_string(parts[1]),
m_default_tooltip_bgcolor, m_default_tooltip_color);
return;
} else if (parts.size() == 4) {
std::string name = parts[0];
video::SColor tmp_color1, tmp_color2;
if ( parseColorString(parts[2], tmp_color1, false) && parseColorString(parts[3], tmp_color2, false) ) {
m_tooltips[narrow_to_wide(name)] = TooltipSpec (parts[1], tmp_color1, tmp_color2);
m_tooltips[narrow_to_wide(name)] = TooltipSpec(unescape_string(parts[1]),
tmp_color1, tmp_color2);
return;
}
}
Expand Down

0 comments on commit 140245a

Please sign in to comment.