mirror of
https://github.com/vcmi/vcmi.git
synced 2025-01-12 02:28:11 +02:00
NetPacks: change GiveBonus enum to enum class.
This commit is contained in:
parent
b2f5042942
commit
5716925b47
@ -324,13 +324,13 @@ void ApplyClientNetPackVisitor::visitGiveBonus(GiveBonus & pack)
|
|||||||
cl.invalidatePaths();
|
cl.invalidatePaths();
|
||||||
switch(pack.who)
|
switch(pack.who)
|
||||||
{
|
{
|
||||||
case GiveBonus::HERO:
|
case GiveBonus::ETarget::HERO:
|
||||||
{
|
{
|
||||||
const CGHeroInstance *h = gs.getHero(ObjectInstanceID(pack.id));
|
const CGHeroInstance *h = gs.getHero(ObjectInstanceID(pack.id));
|
||||||
callInterfaceIfPresent(cl, h->tempOwner, &IGameEventsReceiver::heroBonusChanged, h, *h->getBonusList().back(), true);
|
callInterfaceIfPresent(cl, h->tempOwner, &IGameEventsReceiver::heroBonusChanged, h, *h->getBonusList().back(), true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case GiveBonus::PLAYER:
|
case GiveBonus::ETarget::PLAYER:
|
||||||
{
|
{
|
||||||
const PlayerState *p = gs.getPlayerState(PlayerColor(pack.id));
|
const PlayerState *p = gs.getPlayerState(PlayerColor(pack.id));
|
||||||
callInterfaceIfPresent(cl, PlayerColor(pack.id), &IGameEventsReceiver::playerBonusChanged, *p->getBonusList().back(), true);
|
callInterfaceIfPresent(cl, PlayerColor(pack.id), &IGameEventsReceiver::playerBonusChanged, *p->getBonusList().back(), true);
|
||||||
@ -399,13 +399,13 @@ void ApplyClientNetPackVisitor::visitRemoveBonus(RemoveBonus & pack)
|
|||||||
cl.invalidatePaths();
|
cl.invalidatePaths();
|
||||||
switch(pack.who)
|
switch(pack.who)
|
||||||
{
|
{
|
||||||
case RemoveBonus::HERO:
|
case GiveBonus::ETarget::HERO:
|
||||||
{
|
{
|
||||||
const CGHeroInstance *h = gs.getHero(ObjectInstanceID(pack.id));
|
const CGHeroInstance *h = gs.getHero(ObjectInstanceID(pack.id));
|
||||||
callInterfaceIfPresent(cl, h->tempOwner, &IGameEventsReceiver::heroBonusChanged, h, pack.bonus, false);
|
callInterfaceIfPresent(cl, h->tempOwner, &IGameEventsReceiver::heroBonusChanged, h, pack.bonus, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RemoveBonus::PLAYER:
|
case GiveBonus::ETarget::PLAYER:
|
||||||
{
|
{
|
||||||
//const PlayerState *p = gs.getPlayerState(pack.id);
|
//const PlayerState *p = gs.getPlayerState(pack.id);
|
||||||
callInterfaceIfPresent(cl, PlayerColor(pack.id), &IGameEventsReceiver::playerBonusChanged, pack.bonus, false);
|
callInterfaceIfPresent(cl, PlayerColor(pack.id), &IGameEventsReceiver::playerBonusChanged, pack.bonus, false);
|
||||||
|
@ -349,15 +349,16 @@ struct DLL_LINKAGE SetAvailableHeroes : public CPackForClient
|
|||||||
|
|
||||||
struct DLL_LINKAGE GiveBonus : public CPackForClient
|
struct DLL_LINKAGE GiveBonus : public CPackForClient
|
||||||
{
|
{
|
||||||
GiveBonus(ui8 Who = 0)
|
enum class ETarget : ui8 { HERO, PLAYER, TOWN };
|
||||||
|
|
||||||
|
GiveBonus(ETarget Who = ETarget::HERO)
|
||||||
:who(Who)
|
:who(Who)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void applyGs(CGameState * gs);
|
void applyGs(CGameState * gs);
|
||||||
|
|
||||||
enum { HERO, PLAYER, TOWN };
|
ETarget who = ETarget::HERO; //who receives bonus
|
||||||
ui8 who = 0; //who receives bonus, uses enum above
|
|
||||||
si32 id = 0; //hero. town or player id - whoever receives it
|
si32 id = 0; //hero. town or player id - whoever receives it
|
||||||
Bonus bonus;
|
Bonus bonus;
|
||||||
MetaString bdescr;
|
MetaString bdescr;
|
||||||
@ -424,15 +425,14 @@ struct DLL_LINKAGE PlayerReinitInterface : public CPackForClient
|
|||||||
|
|
||||||
struct DLL_LINKAGE RemoveBonus : public CPackForClient
|
struct DLL_LINKAGE RemoveBonus : public CPackForClient
|
||||||
{
|
{
|
||||||
RemoveBonus(ui8 Who = 0)
|
RemoveBonus(GiveBonus::ETarget Who = GiveBonus::ETarget::HERO)
|
||||||
:who(Who)
|
:who(Who)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void applyGs(CGameState * gs);
|
void applyGs(CGameState * gs);
|
||||||
|
|
||||||
enum { HERO, PLAYER, TOWN };
|
GiveBonus::ETarget who; //who receives bonus
|
||||||
ui8 who; //who receives bonus, uses enum above
|
|
||||||
ui32 whoID = 0; //hero, town or player id - whoever loses bonus
|
ui32 whoID = 0; //hero, town or player id - whoever loses bonus
|
||||||
|
|
||||||
//vars to identify bonus: its source
|
//vars to identify bonus: its source
|
||||||
|
@ -952,13 +952,13 @@ void GiveBonus::applyGs(CGameState *gs)
|
|||||||
CBonusSystemNode *cbsn = nullptr;
|
CBonusSystemNode *cbsn = nullptr;
|
||||||
switch(who)
|
switch(who)
|
||||||
{
|
{
|
||||||
case HERO:
|
case ETarget::HERO:
|
||||||
cbsn = gs->getHero(ObjectInstanceID(id));
|
cbsn = gs->getHero(ObjectInstanceID(id));
|
||||||
break;
|
break;
|
||||||
case PLAYER:
|
case ETarget::PLAYER:
|
||||||
cbsn = gs->getPlayerState(PlayerColor(id));
|
cbsn = gs->getPlayerState(PlayerColor(id));
|
||||||
break;
|
break;
|
||||||
case TOWN:
|
case ETarget::TOWN:
|
||||||
cbsn = gs->getTown(ObjectInstanceID(id));
|
cbsn = gs->getTown(ObjectInstanceID(id));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1106,7 +1106,7 @@ void PlayerReinitInterface::applyGs(CGameState *gs)
|
|||||||
void RemoveBonus::applyGs(CGameState *gs)
|
void RemoveBonus::applyGs(CGameState *gs)
|
||||||
{
|
{
|
||||||
CBonusSystemNode * node = nullptr;
|
CBonusSystemNode * node = nullptr;
|
||||||
if (who == HERO)
|
if (who == GiveBonus::ETarget::HERO)
|
||||||
node = gs->getHero(ObjectInstanceID(whoID));
|
node = gs->getHero(ObjectInstanceID(whoID));
|
||||||
else
|
else
|
||||||
node = gs->getPlayerState(PlayerColor(whoID));
|
node = gs->getPlayerState(PlayerColor(whoID));
|
||||||
|
@ -318,7 +318,7 @@ void CRewardableObject::grantRewardAfterLevelup(const CRewardVisitInfo & info, c
|
|||||||
assert(bonus.source == Bonus::OBJECT);
|
assert(bonus.source == Bonus::OBJECT);
|
||||||
assert(bonus.sid == ID);
|
assert(bonus.sid == ID);
|
||||||
GiveBonus gb;
|
GiveBonus gb;
|
||||||
gb.who = GiveBonus::HERO;
|
gb.who = GiveBonus::ETarget::HERO;
|
||||||
gb.bonus = bonus;
|
gb.bonus = bonus;
|
||||||
gb.id = hero->id.getNum();
|
gb.id = hero->id.getNum();
|
||||||
cb->giveHeroBonus(&gb);
|
cb->giveHeroBonus(&gb);
|
||||||
|
@ -2142,7 +2142,7 @@ void CGLighthouse::onHeroVisit( const CGHeroInstance * h ) const
|
|||||||
|
|
||||||
if(oldOwner < PlayerColor::PLAYER_LIMIT) //remove bonus from old owner
|
if(oldOwner < PlayerColor::PLAYER_LIMIT) //remove bonus from old owner
|
||||||
{
|
{
|
||||||
RemoveBonus rb(RemoveBonus::PLAYER);
|
RemoveBonus rb(GiveBonus::ETarget::PLAYER);
|
||||||
rb.whoID = oldOwner.getNum();
|
rb.whoID = oldOwner.getNum();
|
||||||
rb.source = Bonus::OBJECT;
|
rb.source = Bonus::OBJECT;
|
||||||
rb.id = id.getNum();
|
rb.id = id.getNum();
|
||||||
@ -2162,7 +2162,7 @@ void CGLighthouse::initObj(CRandomGenerator & rand)
|
|||||||
|
|
||||||
void CGLighthouse::giveBonusTo(const PlayerColor & player, bool onInit) const
|
void CGLighthouse::giveBonusTo(const PlayerColor & player, bool onInit) const
|
||||||
{
|
{
|
||||||
GiveBonus gb(GiveBonus::PLAYER);
|
GiveBonus gb(GiveBonus::ETarget::PLAYER);
|
||||||
gb.bonus.type = Bonus::MOVEMENT;
|
gb.bonus.type = Bonus::MOVEMENT;
|
||||||
gb.bonus.val = 500;
|
gb.bonus.val = 500;
|
||||||
gb.id = player.getNum();
|
gb.id = player.getNum();
|
||||||
|
@ -6943,7 +6943,7 @@ void CGameHandler::handleCheatCode(std::string & cheat, PlayerColor player, cons
|
|||||||
giveHeroNewArtifact(hero, VLC->arth->objects[ArtifactID::SPELLBOOK], ArtifactPosition::SPELLBOOK);
|
giveHeroNewArtifact(hero, VLC->arth->objects[ArtifactID::SPELLBOOK], ArtifactPosition::SPELLBOOK);
|
||||||
|
|
||||||
///Give all spells with bonus (to allow banned spells)
|
///Give all spells with bonus (to allow banned spells)
|
||||||
GiveBonus giveBonus(GiveBonus::HERO);
|
GiveBonus giveBonus(GiveBonus::ETarget::HERO);
|
||||||
giveBonus.id = hero->id.getNum();
|
giveBonus.id = hero->id.getNum();
|
||||||
giveBonus.bonus = Bonus(Bonus::PERMANENT, Bonus::SPELLS_OF_LEVEL, Bonus::OTHER, 0, 0);
|
giveBonus.bonus = Bonus(Bonus::PERMANENT, Bonus::SPELLS_OF_LEVEL, Bonus::OTHER, 0, 0);
|
||||||
//start with level 0 to skip abilities
|
//start with level 0 to skip abilities
|
||||||
@ -7089,7 +7089,7 @@ void CGameHandler::handleCheatCode(std::string & cheat, PlayerColor player, cons
|
|||||||
smp.val = 1000000;
|
smp.val = 1000000;
|
||||||
sendAndApply(&smp);
|
sendAndApply(&smp);
|
||||||
|
|
||||||
GiveBonus gb(GiveBonus::HERO);
|
GiveBonus gb(GiveBonus::ETarget::HERO);
|
||||||
gb.bonus.type = Bonus::FREE_SHIP_BOARDING;
|
gb.bonus.type = Bonus::FREE_SHIP_BOARDING;
|
||||||
gb.bonus.duration = Bonus::ONE_DAY;
|
gb.bonus.duration = Bonus::ONE_DAY;
|
||||||
gb.bonus.source = Bonus::OTHER;
|
gb.bonus.source = Bonus::OTHER;
|
||||||
|
Loading…
Reference in New Issue
Block a user