mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-21 00:19:29 +02:00
Use bonus only as shared_ptr to avoid memory corruption
This commit is contained in:
@ -152,24 +152,24 @@ void Rewardable::Interface::grantRewardAfterLevelup(IGameEventCallback & gameEve
|
||||
gameEvents.setMovePoints(&smp);
|
||||
}
|
||||
|
||||
for(const Bonus & bonus : info.reward.heroBonuses)
|
||||
for(const auto & bonus : info.reward.heroBonuses)
|
||||
{
|
||||
GiveBonus gb(GiveBonus::ETarget::OBJECT, hero->id, bonus);
|
||||
GiveBonus gb(GiveBonus::ETarget::OBJECT, hero->id, *bonus);
|
||||
gameEvents.giveHeroBonus(&gb);
|
||||
}
|
||||
|
||||
if (hero->getCommander())
|
||||
{
|
||||
for(const Bonus & bonus : info.reward.commanderBonuses)
|
||||
for(const auto & bonus : info.reward.commanderBonuses)
|
||||
{
|
||||
GiveBonus gb(GiveBonus::ETarget::HERO_COMMANDER, hero->id, bonus);
|
||||
GiveBonus gb(GiveBonus::ETarget::HERO_COMMANDER, hero->id, *bonus);
|
||||
gameEvents.giveHeroBonus(&gb);
|
||||
}
|
||||
}
|
||||
|
||||
for(const Bonus & bonus : info.reward.playerBonuses)
|
||||
for(const auto & bonus : info.reward.playerBonuses)
|
||||
{
|
||||
GiveBonus gb(GiveBonus::ETarget::PLAYER, hero->getOwner(), bonus);
|
||||
GiveBonus gb(GiveBonus::ETarget::PLAYER, hero->getOwner(), *bonus);
|
||||
gameEvents.giveHeroBonus(&gb);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user