@ -400,9 +400,9 @@ namespace MWGui
else
else
mDynamicToolTipBox - > changeWidgetSkin ( MWBase : : Environment : : get ( ) . getWindowManager ( ) - > isGuiMode ( ) ? " HUD_Box_NoTransp " : " HUD_Box " ) ;
mDynamicToolTipBox - > changeWidgetSkin ( MWBase : : Environment : : get ( ) . getWindowManager ( ) - > isGuiMode ( ) ? " HUD_Box_NoTransp " : " HUD_Box " ) ;
std : : string caption = info . caption ;
const std : : string & caption = info . caption ;
std : : string image = info . icon ;
const std : : string & image = info . icon ;
int imageSize = ( image ! = " " ) ? info . imageSize : 0 ;
int imageSize = ( ! image . empty ( ) ) ? info . imageSize : 0 ;
std : : string text = info . text ;
std : : string text = info . text ;
// remove the first newline (easier this way)
// remove the first newline (easier this way)
@ -411,7 +411,7 @@ namespace MWGui
const ESM : : Enchantment * enchant = nullptr ;
const ESM : : Enchantment * enchant = nullptr ;
const MWWorld : : ESMStore & store = MWBase : : Environment : : get ( ) . getWorld ( ) - > getStore ( ) ;
const MWWorld : : ESMStore & store = MWBase : : Environment : : get ( ) . getWorld ( ) - > getStore ( ) ;
if ( info . enchant ! = " " )
if ( ! info . enchant . empty ( ) )
{
{
enchant = store . get < ESM : : Enchantment > ( ) . search ( info . enchant ) ;
enchant = store . get < ESM : : Enchantment > ( ) . search ( info . enchant ) ;
if ( enchant )
if ( enchant )
@ -432,8 +432,8 @@ namespace MWGui
const MyGUI : : IntPoint padding ( 8 , 8 ) ;
const MyGUI : : IntPoint padding ( 8 , 8 ) ;
const int imageCaptionHPadding = ( caption ! = " " ? 8 : 0 ) ;
const int imageCaptionHPadding = ! caption . empty ( ) ? 8 : 0 ;
const int imageCaptionVPadding = ( caption ! = " " ? 4 : 0 ) ;
const int imageCaptionVPadding = ! caption . empty ( ) ? 4 : 0 ;
const int maximumWidth = MyGUI : : RenderManager : : getInstance ( ) . getViewSize ( ) . width - imageCaptionHPadding * 2 ;
const int maximumWidth = MyGUI : : RenderManager : : getInstance ( ) . getViewSize ( ) . width - imageCaptionHPadding * 2 ;
@ -446,7 +446,7 @@ namespace MWGui
captionWidget - > setCaptionWithReplacing ( caption ) ;
captionWidget - > setCaptionWithReplacing ( caption ) ;
MyGUI : : IntSize captionSize = captionWidget - > getTextSize ( ) ;
MyGUI : : IntSize captionSize = captionWidget - > getTextSize ( ) ;
int captionHeight = std : : max ( caption ! = " " ? captionSize . height : 0 , imageSize ) ;
int captionHeight = std : : max ( ! caption . empty ( ) ? captionSize . height : 0 , imageSize ) ;
Gui : : EditBox * textWidget = mDynamicToolTipBox - > createWidget < Gui : : EditBox > ( " SandText " , MyGUI : : IntCoord ( 0 , captionHeight + imageCaptionVPadding , 300 , 300 - captionHeight - imageCaptionVPadding ) , MyGUI : : Align : : Stretch , " ToolTipText " ) ;
Gui : : EditBox * textWidget = mDynamicToolTipBox - > createWidget < Gui : : EditBox > ( " SandText " , MyGUI : : IntCoord ( 0 , captionHeight + imageCaptionVPadding , 300 , 300 - captionHeight - imageCaptionVPadding ) , MyGUI : : Align : : Stretch , " ToolTipText " ) ;
textWidget - > setEditStatic ( true ) ;
textWidget - > setEditStatic ( true ) ;
@ -458,8 +458,8 @@ namespace MWGui
MyGUI : : IntSize textSize = textWidget - > getTextSize ( ) ;
MyGUI : : IntSize textSize = textWidget - > getTextSize ( ) ;
captionSize + = MyGUI : : IntSize ( imageSize , 0 ) ; // adjust for image
captionSize + = MyGUI : : IntSize ( imageSize , 0 ) ; // adjust for image
MyGUI : : IntSize totalSize = MyGUI : : IntSize ( std : : min ( std : : max ( textSize . width , captionSize . width + ( ( image ! = " " ) ? imageCaptionHPadding : 0 ) ) , maximumWidth ) ,
MyGUI : : IntSize totalSize = MyGUI : : IntSize ( std : : min ( std : : max ( textSize . width , captionSize . width + ( ( ! image . empty ( ) ) ? imageCaptionHPadding : 0 ) ) , maximumWidth ) ,
( ( text ! = " " ) ? textSize . height + imageCaptionVPadding : 0 ) + captionHeight ) ;
( ! text . empty ( ) ? textSize . height + imageCaptionVPadding : 0 ) + captionHeight ) ;
for ( const std : : string & note : info . notes )
for ( const std : : string & note : info . notes )
{
{
@ -578,7 +578,7 @@ namespace MWGui
textWidget - > setPosition ( textWidget - > getPosition ( ) + MyGUI : : IntPoint ( 0 , padding . top ) ) ; // only apply vertical padding, the horizontal works automatically due to Align::HCenter
textWidget - > setPosition ( textWidget - > getPosition ( ) + MyGUI : : IntPoint ( 0 , padding . top ) ) ; // only apply vertical padding, the horizontal works automatically due to Align::HCenter
if ( image ! = " " )
if ( ! image . empty ( ) )
{
{
MyGUI : : ImageBox * imageWidget = mDynamicToolTipBox - > createWidget < MyGUI : : ImageBox > ( " ImageBox " ,
MyGUI : : ImageBox * imageWidget = mDynamicToolTipBox - > createWidget < MyGUI : : ImageBox > ( " ImageBox " ,
MyGUI : : IntCoord ( ( totalSize . width - captionSize . width - imageCaptionHPadding ) / 2 , 0 , imageSize , imageSize ) ,
MyGUI : : IntCoord ( ( totalSize . width - captionSize . width - imageCaptionHPadding ) / 2 , 0 , imageSize , imageSize ) ,
@ -611,7 +611,7 @@ namespace MWGui
std : : string ToolTips : : getWeightString ( const float weight , const std : : string & prefix )
std : : string ToolTips : : getWeightString ( const float weight , const std : : string & prefix )
{
{
if ( weight = = 0 )
if ( weight = = 0 )
return " " ;
return { } ;
else
else
return " \n " + prefix + " : " + toString ( weight ) ;
return " \n " + prefix + " : " + toString ( weight ) ;
}
}
@ -619,7 +619,7 @@ namespace MWGui
std : : string ToolTips : : getPercentString ( const float value , const std : : string & prefix )
std : : string ToolTips : : getPercentString ( const float value , const std : : string & prefix )
{
{
if ( value = = 0 )
if ( value = = 0 )
return " " ;
return { } ;
else
else
return " \n " + prefix + " : " + toString ( value * 100 ) + " % " ;
return " \n " + prefix + " : " + toString ( value * 100 ) + " % " ;
}
}
@ -627,15 +627,15 @@ namespace MWGui
std : : string ToolTips : : getValueString ( const int value , const std : : string & prefix )
std : : string ToolTips : : getValueString ( const int value , const std : : string & prefix )
{
{
if ( value = = 0 )
if ( value = = 0 )
return " " ;
return { } ;
else
else
return " \n " + prefix + " : " + toString ( value ) ;
return " \n " + prefix + " : " + toString ( value ) ;
}
}
std : : string ToolTips : : getMiscString ( const std : : string & text , const std : : string & prefix )
std : : string ToolTips : : getMiscString ( const std : : string & text , const std : : string & prefix )
{
{
if ( text = = " " )
if ( text . empty ( ) )
return " " ;
return { } ;
else
else
return " \n " + prefix + " : " + text ;
return " \n " + prefix + " : " + text ;
}
}
@ -643,7 +643,7 @@ namespace MWGui
std : : string ToolTips : : getCountString ( const int value )
std : : string ToolTips : : getCountString ( const int value )
{
{
if ( value = = 1 )
if ( value = = 1 )
return " " ;
return { } ;
else
else
return " ( " + MyGUI : : utility : : toString ( value ) + " ) " ;
return " ( " + MyGUI : : utility : : toString ( value ) + " ) " ;
}
}
@ -652,11 +652,11 @@ namespace MWGui
{
{
const std : : string & soul = cellref . getSoul ( ) ;
const std : : string & soul = cellref . getSoul ( ) ;
if ( soul . empty ( ) )
if ( soul . empty ( ) )
return std : : string ( ) ;
return { } ;
const MWWorld : : ESMStore & store = MWBase : : Environment : : get ( ) . getWorld ( ) - > getStore ( ) ;
const MWWorld : : ESMStore & store = MWBase : : Environment : : get ( ) . getWorld ( ) - > getStore ( ) ;
const ESM : : Creature * creature = store . get < ESM : : Creature > ( ) . search ( soul ) ;
const ESM : : Creature * creature = store . get < ESM : : Creature > ( ) . search ( soul ) ;
if ( ! creature )
if ( ! creature )
return std : : string ( ) ;
return { } ;
if ( creature - > mName . empty ( ) )
if ( creature - > mName . empty ( ) )
return " ( " + creature - > mId + " ) " ;
return " ( " + creature - > mId + " ) " ;
return " ( " + creature - > mName + " ) " ;
return " ( " + creature - > mName + " ) " ;
@ -677,7 +677,7 @@ namespace MWGui
if ( cellref . getFactionRank ( ) > = 0 )
if ( cellref . getFactionRank ( ) > = 0 )
{
{
int rank = cellref . getFactionRank ( ) ;
int rank = cellref . getFactionRank ( ) ;
const std : : string rankName = fact - > mRanks [ rank ] ;
const std : : string & rankName = fact - > mRanks [ rank ] ;
if ( rankName . empty ( ) )
if ( rankName . empty ( ) )
ret + = getValueString ( cellref . getFactionRank ( ) , " Rank " ) ;
ret + = getValueString ( cellref . getFactionRank ( ) , " Rank " ) ;
else
else
@ -802,9 +802,9 @@ namespace MWGui
if ( attributeId = = - 1 )
if ( attributeId = = - 1 )
return ;
return ;
std : : string icon = ESM : : Attribute : : sAttributeIcons [ attributeId ] ;
const std : : string & icon = ESM : : Attribute : : sAttributeIcons [ attributeId ] ;
std : : string name = ESM : : Attribute : : sGmstAttributeIds [ attributeId ] ;
const std : : string & name = ESM : : Attribute : : sGmstAttributeIds [ attributeId ] ;
std : : string desc = ESM : : Attribute : : sGmstAttributeDescIds [ attributeId ] ;
const std : : string & desc = ESM : : Attribute : : sGmstAttributeDescIds [ attributeId ] ;
widget - > setUserString ( " ToolTipType " , " Layout " ) ;
widget - > setUserString ( " ToolTipType " , " Layout " ) ;
widget - > setUserString ( " ToolTipLayout " , " AttributeToolTip " ) ;
widget - > setUserString ( " ToolTipLayout " , " AttributeToolTip " ) ;
@ -850,12 +850,9 @@ namespace MWGui
widget - > setUserString ( " ToolTipType " , " Layout " ) ;
widget - > setUserString ( " ToolTipType " , " Layout " ) ;
widget - > setUserString ( " ToolTipLayout " , " BirthSignToolTip " ) ;
widget - > setUserString ( " ToolTipLayout " , " BirthSignToolTip " ) ;
widget - > setUserString ( " ImageTexture_BirthSignImage " , Misc : : ResourceHelpers : : correctTexturePath ( sign - > mTexture , vfs ) ) ;
widget - > setUserString ( " ImageTexture_BirthSignImage " , Misc : : ResourceHelpers : : correctTexturePath ( sign - > mTexture , vfs ) ) ;
std : : string text ;
std : : string text = sign - > mName + " \n #{fontcolourhtml=normal} " + sign - > mDescription ;
text + = sign - > mName ;
std : : vector < const ESM : : Spell * > abilities , powers , spells ;
text + = " \n #{fontcolourhtml=normal} " + sign - > mDescription ;
std : : vector < std : : string > abilities , powers , spells ;
for ( const std : : string & spellId : sign - > mPowers . mList )
for ( const std : : string & spellId : sign - > mPowers . mList )
{
{
@ -867,35 +864,27 @@ namespace MWGui
continue ; // We only want spell, ability and powers.
continue ; // We only want spell, ability and powers.
if ( type = = ESM : : Spell : : ST_Ability )
if ( type = = ESM : : Spell : : ST_Ability )
abilities . push_back ( spell Id ) ;
abilities . push_back ( spell ) ;
else if ( type = = ESM : : Spell : : ST_Power )
else if ( type = = ESM : : Spell : : ST_Power )
powers . push_back ( spell Id ) ;
powers . push_back ( spell ) ;
else if ( type = = ESM : : Spell : : ST_Spell )
else if ( type = = ESM : : Spell : : ST_Spell )
spells . push_back ( spellId ) ;
spells . push_back ( spell ) ;
}
struct {
const std : : vector < std : : string > & spells ;
std : : string label ;
}
}
categories [ 3 ] = {
{ abilities , " sBirthsignmenu1 " } ,
{ powers , " sPowers " } ,
{ spells , " sBirthsignmenu2 " }
} ;
for ( int category = 0 ; category < 3 ; + + category )
using Category = std : : pair < const std : : vector < const ESM : : Spell * > & , std : : string_view > ;
for ( const auto & [ category , label ] : std : : initializer_list < Category > { { abilities , " sBirthsignmenu1 " } , { powers , " sPowers " } , { spells , " sBirthsignmenu2 " } } )
{
{
bool addHeader = true ;
bool addHeader = true ;
for ( const std: : string & spellId : categories [ category ] . spells )
for ( const ESM: : Spell * spell : category )
{
{
if ( addHeader )
if ( addHeader )
{
{
text + = std : : string ( " \n \n #{fontcolourhtml=header} " ) + std : : string ( " #{ " ) + categories [ category ] . label + " } " ;
text + = " \n \n #{fontcolourhtml=header}#{ " ;
text + = label ;
text + = ' } ' ;
addHeader = false ;
addHeader = false ;
}
}
const ESM : : Spell * spell = store . get < ESM : : Spell > ( ) . find ( spellId ) ;
text + = " \n #{fontcolourhtml=normal} " + spell - > mName ;
text + = " \n #{fontcolourhtml=normal} " + spell - > mName ;
}
}
}
}