Crash safely with an error when sphrase is missing on client
This commit is contained in:
parent
b38468036d
commit
ebb20fe86c
1 changed files with 7 additions and 5 deletions
|
@ -4504,17 +4504,19 @@ sint32 CSPhraseManager::getSheetFromPhrase(const CSPhraseCom &phrase) const
|
|||
uint32 CSPhraseManager::getTotalActionMalus(const CSPhraseCom &phrase) const
|
||||
{
|
||||
CInterfaceManager *pIM = CInterfaceManager::getInstance();
|
||||
CSBrickManager *pBM= CSBrickManager::getInstance();
|
||||
uint32 totalActionMalus= 0;
|
||||
CSBrickManager *pBM = CSBrickManager::getInstance();
|
||||
uint32 totalActionMalus = 0;
|
||||
CCDBNodeLeaf *actMalus = _TotalMalusEquipLeaf ? &*_TotalMalusEquipLeaf
|
||||
: &*(_TotalMalusEquipLeaf = NLGUI::CDBManager::getInstance()->getDbProp("UI:VARIABLES:TOTAL_MALUS_EQUIP", false));
|
||||
// root brick must not be Power or aura, because Action malus don't apply to them
|
||||
// (ie leave 0 ActionMalus for Aura or Powers
|
||||
if (!phrase.Bricks.empty())
|
||||
{
|
||||
CSBrickSheet *rootBrick= pBM->getBrick(phrase.Bricks[0]);
|
||||
if(actMalus && !rootBrick->isSpecialPower())
|
||||
totalActionMalus= actMalus->getValue32();
|
||||
CSBrickSheet *rootBrick = pBM->getBrick(phrase.Bricks[0]);
|
||||
if (!rootBrick)
|
||||
nlerror("Invalid root sbrick in sphrase_com '%s'", phrase.Name.toUtf8().c_str());
|
||||
else if (actMalus && !rootBrick->isSpecialPower())
|
||||
totalActionMalus = actMalus->getValue32();
|
||||
}
|
||||
return totalActionMalus;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue