当前位置: 首页>>代码示例>>C++>>正文


C++ Human::isAmbulanceTeam方法代码示例

本文整理汇总了C++中Human::isAmbulanceTeam方法的典型用法代码示例。如果您正苦于以下问题:C++ Human::isAmbulanceTeam方法的具体用法?C++ Human::isAmbulanceTeam怎么用?C++ Human::isAmbulanceTeam使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Human的用法示例。


在下文中一共展示了Human::isAmbulanceTeam方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: updatePositions

void WorldModel::updatePositions()
{
    for (int i = 0; i < (int) ambulanceTeams.size(); i++)
    {
        Human *human = ambulanceTeams[i];
        if (human->getMotionlessObject() == NULL || human->getMotionlessObject()->getId() != human->getPosition())
        {
            human->setMotionlessObject((MotionlessObject*) objects[human->getPosition()]);
            LOG(Main, 1) << "update position of " << human->getId() << " : " << human->getMotionlessObject()->getId() << endl;
        }
    }
    for (int i = 0; i < (int) humans.size(); i++)
    {
        Human *human = humans[i];
        if (!human->isAmbulanceTeam())
        {
            bool flag = false;
            for (int j = 0; j < (int) ambulanceTeams.size(); j++)
                if (ambulanceTeams[j]->getId() == human->getPosition())
                {
                    human->setMotionlessObject((MotionlessObject*) objects[ambulanceTeams[j]->getPosition()]);
                    LOG(Main, 1) << "update position of (loaded in ambulance) " << human->getId() << " : " << human->getMotionlessObject()->getId() << endl;
                    flag = true;
                    break;
                }
            if (human->getMotionlessObject() == NULL || (human->getMotionlessObject()->getId() != human->getPosition() && !flag))
            {
                human->setMotionlessObject((MotionlessObject*) objects[human->getPosition()]);
                LOG(Main, 1) << "update position of " << human->getId() << " : " << human->getMotionlessObject()->getId() << endl;
            }
        }
        if (human->getLastCycleUpdatedBySense() != world->getTime())
        {
            human->setX(human->getMotionlessObject()->getX());
            human->setY(human->getMotionlessObject()->getY());
        }
    }
    if (self->isPlatoon())
    {
        for (int i = 0; i < civilians.size(); i++)
        {
            if (((Platoon*) self)->getMotionlessObject()->motionlessIndex == civilians[i]->getMotionlessObject()->motionlessIndex && getTime() - civilians[i]->getLastCycleUpdated() > 1)
                civilians[i]->isAvailable = false;
        }
    }
    //set civilians to buildingBlocks
    if (self->isPoliceForce())
    {
        for (int i = 0; i < buildingBlocks.size(); i++)
            buildingBlocks[i]->civilians.clear();
        for (int i = 0; i < civilians.size(); i++)
        {
            if (civilians[i]->getMotionlessObject()->isBuilding())
            {
                LOG(Main, 4) << "civ: " << civilians[i]->getId() << endl;
                LOG(Main, 4) << "((Building*)civilians[i]->getMotionlessObject())->blockNum = " << ((Building*) civilians[i]->getMotionlessObject())->blockNum << endl;
                buildingBlocks[((Building*) civilians[i]->getMotionlessObject())->blockNum]->civilians.push_back(civilians[i]);
            }
        }
    }
    if (self->isPlatoon())
        ((Platoon*) self)->getMotionlessObject()->iHaveBeenHere = true;
}
开发者ID:RGB-RSL,项目名称:rgb,代码行数:63,代码来源:WorldModel.cpp


注:本文中的Human::isAmbulanceTeam方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。