|
|
@@ -740,6 +740,7 @@ void CGameState::init(const IMapService * mapService, StartInfo * si, bool allow
|
|
|
|
|
|
logGlobal->debug("Initialization:");
|
|
|
|
|
|
+ initGlobalBonuses();
|
|
|
initPlayerStates();
|
|
|
placeCampaignHeroes();
|
|
|
initGrailPosition();
|
|
|
@@ -934,6 +935,19 @@ void CGameState::checkMapChecksum()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void CGameState::initGlobalBonuses()
|
|
|
+{
|
|
|
+ const JsonNode & baseBonuses = VLC->modh->settings.data["baseBonuses"];
|
|
|
+ logGlobal->debug("\tLoading global bonuses");
|
|
|
+ for(const auto & b : baseBonuses.Vector())
|
|
|
+ {
|
|
|
+ auto bonus = JsonUtils::parseBonus(b);
|
|
|
+ bonus->source = Bonus::GLOBAL;//for all
|
|
|
+ bonus->sid = -1; //there is one global object
|
|
|
+ globalEffects.addNewBonus(bonus);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
void CGameState::initGrailPosition()
|
|
|
{
|
|
|
logGlobal->debug("\tPicking grail position");
|