本文整理汇总了C++中Heroes::SetMove方法的典型用法代码示例。如果您正苦于以下问题:C++ Heroes::SetMove方法的具体用法?C++ Heroes::SetMove怎么用?C++ Heroes::SetMove使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Heroes
的用法示例。
在下文中一共展示了Heroes::SetMove方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetFocusHeroes
void Interface::Basic::EventDefaultAction(void)
{
Heroes* hero = GetFocusHeroes();
if(hero)
{
const Maps::Tiles & tile = world.GetTiles(hero->GetIndex());
// 1. action object
if(MP2::isActionObject(hero->GetMapsObject(), hero->isShipMaster()) &&
(! MP2::isMoveObject(hero->GetMapsObject()) || hero->CanMove()))
{
hero->Action(hero->GetIndex());
if(MP2::OBJ_STONELIGHTS == tile.GetObject(false) || MP2::OBJ_WHIRLPOOL == tile.GetObject(false))
SetRedraw(REDRAW_HEROES);
SetRedraw(REDRAW_GAMEAREA);
}
else
// 2. continue
if(hero->GetPath().isValid())
hero->SetMove(true);
else
// 3. hero dialog
Game::OpenHeroesDialog(*hero);
}
else
// 4. town dialog
if(GetFocusCastle())
{
Game::OpenCastleDialog(*GetFocusCastle());
}
}
示例2: MoveStep
void Heroes::MoveStep(Heroes & hero, s32 index_from, s32 index_to, bool newpos)
{
if(newpos)
{
hero.Move2Dest(index_to);
hero.GetPath().PopFront();
// possible hero is die
if(!hero.isFreeman() &&
index_to == hero.GetPath().GetDestinationIndex())
{
hero.GetPath().Reset();
hero.Action(index_to);
hero.SetMove(false);
}
}
else
{
hero.ApplyPenaltyMovement();
hero.GetPath().Reset();
hero.Action(index_to);
hero.SetMove(false);
}
}