Changed: #1433 Merge changes from patch 1.13
This commit is contained in:
parent
a66e4ecd90
commit
68fd549142
5 changed files with 31 additions and 17 deletions
|
@ -1347,6 +1347,7 @@ void CClientConfig::setValues()
|
|||
if (stricmp(mode, "over") == 0) p.Mode = SSysInfoParam::Over;
|
||||
else if (stricmp(mode, "overonly") == 0) p.Mode = SSysInfoParam::OverOnly;
|
||||
else if (stricmp(mode, "center") == 0) p.Mode = SSysInfoParam::Center;
|
||||
else if (stricmp(mode, "centeraround") == 0) p.Mode = SSysInfoParam::CenterAround;
|
||||
else if (stricmp(mode, "around") == 0) p.Mode = SSysInfoParam::Around;
|
||||
|
||||
ClientCfg.SystemInfoParams[toLower(sic->asString(2 * k))] = p;
|
||||
|
|
|
@ -635,12 +635,15 @@ struct CClientConfig
|
|||
// Mode is the display settings :
|
||||
// Normal : just display in the system info window
|
||||
// Over : must be displayed at bottom of the screen and in system info window
|
||||
// OverOnly : must be displayed at bottom of the screen
|
||||
// Center ; must be displayed at the center of the screen and in system info window
|
||||
// Around ; must be displayed in the around chat window
|
||||
// CenterAround ; must be displayed at the center of the screen and in around chat window
|
||||
struct SSysInfoParam
|
||||
{
|
||||
CRGBA Color;
|
||||
std::string SysInfoFxName;
|
||||
enum TMode { Normal, Over, OverOnly, Center, Around };
|
||||
enum TMode { Normal, Over, OverOnly, Center, Around, CenterAround };
|
||||
TMode Mode;
|
||||
SSysInfoParam()
|
||||
{
|
||||
|
|
|
@ -244,6 +244,7 @@ CInterfaceGroup *CInterfaceHelp::activateNextWindow(CDBCtrlSheet *elt, sint forc
|
|||
i++;
|
||||
}
|
||||
|
||||
bool showSlotAndCreator = false;
|
||||
// If an active window get the same object, abort, but make it top.
|
||||
for(i=0;i<_ActiveWindows.size();i++)
|
||||
{
|
||||
|
@ -251,10 +252,8 @@ CInterfaceGroup *CInterfaceHelp::activateNextWindow(CDBCtrlSheet *elt, sint forc
|
|||
CDBCtrlSheet *ctrlSrc= elt;
|
||||
// get the ctrl sheet in this help window.
|
||||
CDBCtrlSheet *ctrlDst= dynamic_cast<CDBCtrlSheet*>(group->getCtrl(":ctrl_slot"));
|
||||
bool showSlotAndCreator = false;
|
||||
if(ctrlDst && ctrlSrc)
|
||||
{
|
||||
showSlotAndCreator = true;
|
||||
// if same Aspect
|
||||
if( ctrlSrc->sameAspect(ctrlDst) )
|
||||
{
|
||||
|
@ -263,6 +262,8 @@ CInterfaceGroup *CInterfaceHelp::activateNextWindow(CDBCtrlSheet *elt, sint forc
|
|||
// for items, must also test if they have the same itemSlotId, cause relies also on "ItemInfo system"
|
||||
if(elt->getType() == CCtrlSheetInfo::SheetType_Item)
|
||||
{
|
||||
showSlotAndCreator = true;
|
||||
|
||||
CDBCtrlSheet *realCtrlDst= _InfoWindows[_ActiveWindows[i]].CtrlSheet;
|
||||
if(!realCtrlDst)
|
||||
ok= false;
|
||||
|
@ -279,13 +280,6 @@ CInterfaceGroup *CInterfaceHelp::activateNextWindow(CDBCtrlSheet *elt, sint forc
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
CInterfaceElement *ctrl = group->getElement(group->getId()+":content:ctrl_slot");
|
||||
if (ctrl) ctrl->setActive(showSlotAndCreator);
|
||||
ctrl = group->getElement(group->getId()+":content:creator");
|
||||
if (ctrl) ctrl->setActive(showSlotAndCreator);
|
||||
ctrl = group->getElement(group->getId()+":content:creator_header");
|
||||
if (ctrl) ctrl->setActive(showSlotAndCreator);
|
||||
}
|
||||
|
||||
// If some free window possible, search which to take
|
||||
|
@ -353,6 +347,13 @@ CInterfaceGroup *CInterfaceHelp::activateNextWindow(CDBCtrlSheet *elt, sint forc
|
|||
CInterfaceGroup *group= _InfoWindows[newIndexWindow].Window;
|
||||
nlassert(group);
|
||||
|
||||
CInterfaceElement *ctrl = group->getElement(group->getId()+":content:ctrl_slot");
|
||||
if (ctrl) ctrl->setActive(showSlotAndCreator);
|
||||
ctrl = group->getElement(group->getId()+":content:creator");
|
||||
if (ctrl) ctrl->setActive(showSlotAndCreator);
|
||||
ctrl = group->getElement(group->getId()+":content:creator_header");
|
||||
if (ctrl) ctrl->setActive(showSlotAndCreator);
|
||||
|
||||
// activate it, set top, copy item watched
|
||||
group->setActive(true);
|
||||
pIM->setTopWindow(group);
|
||||
|
@ -1226,6 +1227,7 @@ static void setupSkillToTradeHelp(CSheetHelpSetup &setup)
|
|||
if(setup.DestSheet)
|
||||
{
|
||||
setup.SrcSheet->copyAspect(setup.DestSheet);
|
||||
setup.DestSheet->setActive(true);
|
||||
}
|
||||
|
||||
ucstring skillText;
|
||||
|
@ -2287,6 +2289,7 @@ static void setupItemHelp(CSheetHelpSetup &setup)
|
|||
if(setup.DestSheet)
|
||||
{
|
||||
setup.SrcSheet->copyAspect(setup.DestSheet);
|
||||
setup.DestSheet->setActive(true);
|
||||
}
|
||||
|
||||
// NB: for raw materials only, must do each once only, must not do it at refresh, cause combo reseted
|
||||
|
@ -2575,6 +2578,7 @@ static void setupPactHelp(CSheetHelpSetup &setup)
|
|||
if(setup.DestSheet)
|
||||
{
|
||||
setup.SrcSheet->copyAspect(setup.DestSheet);
|
||||
setup.DestSheet->setActive(true);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2612,6 +2616,7 @@ static void setupMissionHelp(CSheetHelpSetup &setup)
|
|||
if(setup.DestSheet)
|
||||
{
|
||||
setup.SrcSheet->copyAspect(setup.DestSheet);
|
||||
setup.DestSheet->setActive(true);
|
||||
}
|
||||
|
||||
// get detail text id from db
|
||||
|
@ -2849,6 +2854,7 @@ void setupOutpostBuildingHelp(CSheetHelpSetup &setup)
|
|||
if(setup.DestSheet)
|
||||
{
|
||||
setup.SrcSheet->copyAspect(setup.DestSheet);
|
||||
setup.DestSheet->setActive(true);
|
||||
}
|
||||
|
||||
const COutpostBuildingSheet *pOBS = setup.SrcSheet->asOutpostBuildingSheet();
|
||||
|
@ -3173,6 +3179,7 @@ void setupSabrinaPhraseHelp(CSheetHelpSetup &setup, const CSPhraseCom &phrase, u
|
|||
if(setup.DestSheet)
|
||||
{
|
||||
setup.SrcSheet->copyAspect(setup.DestSheet);
|
||||
setup.DestSheet->setActive(true);
|
||||
}
|
||||
|
||||
// **** setup the phrase Text info
|
||||
|
@ -3242,6 +3249,7 @@ static void setupSabrinaBrickHelp(CSheetHelpSetup &setup, bool auraDisabled)
|
|||
if(setup.DestSheet)
|
||||
{
|
||||
setup.SrcSheet->copyAspect(setup.DestSheet);
|
||||
setup.DestSheet->setActive(true);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -4404,12 +4404,14 @@ void CInterfaceManager::displaySystemInfo(const ucstring &str, const string &cat
|
|||
}
|
||||
}
|
||||
|
||||
if (mode == CClientConfig::SSysInfoParam::Center || mode == CClientConfig::SSysInfoParam::CenterAround)
|
||||
InSceneBubbleManager.addMessagePopupCenter(str, color);
|
||||
|
||||
// If over popup a string at the bottom of the screen
|
||||
if ((mode == CClientConfig::SSysInfoParam::Over) || (mode == CClientConfig::SSysInfoParam::OverOnly))
|
||||
InSceneBubbleManager.addMessagePopup(str, color);
|
||||
else if (mode == CClientConfig::SSysInfoParam::Center)
|
||||
InSceneBubbleManager.addMessagePopupCenter(str, color);
|
||||
else if (mode == CClientConfig::SSysInfoParam::Around && PeopleInterraction.AroundMe.Window)
|
||||
else if ( (mode == CClientConfig::SSysInfoParam::Around || mode == CClientConfig::SSysInfoParam::CenterAround)
|
||||
&& PeopleInterraction.AroundMe.Window)
|
||||
PeopleInterraction.ChatInput.AroundMe.displayMessage(str, color, 2);
|
||||
}
|
||||
|
||||
|
|
|
@ -1628,10 +1628,10 @@ vector<ucstring> CStringManagerClient::getTitleInfos(const std::string &titleId,
|
|||
|
||||
if (listInfos.size() > 0)
|
||||
{
|
||||
string title = listInfos[0].toUtf8();
|
||||
if (titleId[0] == '#')
|
||||
title = "#" + title;
|
||||
listInfos[0] = getSpecialWord(title, women);
|
||||
if (titleId[0] != '#')
|
||||
{
|
||||
listInfos[0] = getSpecialWord(listInfos[0].toUtf8(), women);
|
||||
}
|
||||
}
|
||||
|
||||
return listInfos;
|
||||
|
|
Loading…
Reference in a new issue