From 906fa04a606ac5d16fccd62fd93cda5ec7aee4b9 Mon Sep 17 00:00:00 2001 From: DjWarmonger Date: Wed, 26 Sep 2012 19:02:44 +0000 Subject: [PATCH] Tweaks for creature bonuses. --- lib/CCreatureHandler.cpp | 4 +++- lib/CModHandler.cpp | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/CCreatureHandler.cpp b/lib/CCreatureHandler.cpp index 8caef7458..1a720aa50 100644 --- a/lib/CCreatureHandler.cpp +++ b/lib/CCreatureHandler.cpp @@ -694,7 +694,9 @@ void CCreatureHandler::loadStackExp(Bonus & b, BonusList & bl, CLegacyConfigPars case 'd': b.type = Bonus::DEFENSIVE_STANCE; break; case 'e': - b.type = Bonus::DOUBLE_DAMAGE_CHANCE; break; + b.type = Bonus::DOUBLE_DAMAGE_CHANCE; + b.subtype = 0; + break; case 'E': b.type = Bonus::DEATH_STARE; b.subtype = 0; //Gorgon diff --git a/lib/CModHandler.cpp b/lib/CModHandler.cpp index 822533e03..c2ac81ffa 100644 --- a/lib/CModHandler.cpp +++ b/lib/CModHandler.cpp @@ -160,12 +160,14 @@ CCreature * CModHandler::loadCreature (const JsonNode &node) BOOST_FOREACH (const JsonNode &bonus, node["abilities"].Vector()) { auto b = ParseBonus(bonus); + b->source = Bonus::CREATURE_ABILITY; b->duration = Bonus::PERMANENT; cre->addNewBonus(b); } BOOST_FOREACH (const JsonNode &exp, node["stackExperience"].Vector()) { auto bonus = ParseBonus (exp["bonus"]); + bonus->source = Bonus::STACK_EXPERIENCE; bonus->duration = Bonus::PERMANENT; const JsonVector &values = exp["values"].Vector(); int lowerLimit = 1;//, upperLimit = 255; @@ -281,6 +283,10 @@ void CModHandler::recreateHandlers() BOOST_FOREACH (auto creature, creatures) { creature->idNumber = VLC->creh->creatures.size(); //calculate next index for every used creature + BOOST_FOREACH (auto bonus, creature->getBonusList()) + { + bonus->sid = creature->idNumber; + } VLC->creh->creatures.push_back (creature); //TODO: use refName? //if (creature->nameRef.size())