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


C++ BaseArray::size方法代码示例

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


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

示例1: getTalkStanceOld

BaseSprite *AdActor::getTalkStance(const char *stance) {
	// forced stance?
	if (_forcedTalkAnimName && !_forcedTalkAnimUsed) {
		_forcedTalkAnimUsed = true;
		delete _animSprite;
		_animSprite = new BaseSprite(_gameRef, this);
		if (_animSprite) {
			bool res = _animSprite->loadFile(_forcedTalkAnimName);
			if (DID_FAIL(res)) {
				_gameRef->LOG(res, "AdActor::GetTalkStance: error loading talk sprite (object:\"%s\" sprite:\"%s\")", getName(), _forcedTalkAnimName);
				delete _animSprite;
				_animSprite = nullptr;
			} else {
				return _animSprite;
			}
		}
	}

	// old way
	if (_talkSprites.size() > 0 || _talkSpritesEx.size() > 0) {
		return getTalkStanceOld(stance);
	}

	// new way
	BaseSprite *ret = nullptr;

	// do we have an animation with this name?
	AdSpriteSet *anim = getAnimByName(stance);
	if (anim) {
		ret = anim->getSprite(_dir);
	}

	// not - get a random talk
	if (!ret) {
		BaseArray<AdSpriteSet *> talkAnims;
		for (uint32 i = 0; i < _anims.size(); i++) {
			if (_talkAnimName.compareToIgnoreCase(_anims[i]->getName()) == 0) {
				talkAnims.add(_anims[i]);
			}
		}

		if (talkAnims.size() > 0) {
			int rnd = BaseEngine::instance().randInt(0, talkAnims.size() - 1);
			ret = talkAnims[rnd]->getSprite(_dir);
		} else {
			if (_standSprite) {
				ret = _standSprite->getSprite(_dir);
			} else {
				anim = getAnimByName(_idleAnimName);
				if (anim) {
					ret = anim->getSprite(_dir);
				}
			}
		}
	}
	return ret;
}
开发者ID:Fyre91,项目名称:scummvm,代码行数:57,代码来源:ad_actor.cpp

示例2: getObjects

BaseObject *AdResponseBox::getPrevAccessObject(BaseObject *currObject) {
    BaseArray<UIObject *> objects;
    getObjects(objects, true);

    if (objects.size() == 0) {
        return nullptr;
    } else {
        if (currObject != nullptr) {
            for (int i = objects.size() - 1; i >= 0; i--) {
                if (objects[i] == currObject) {
                    if (i > 0) {
                        return objects[i - 1];
                    } else {
                        break;
                    }
                }
            }
        }
        return objects[objects.size() - 1];
    }
    return nullptr;
}
开发者ID:rayzer86,项目名称:scummvm,代码行数:22,代码来源:ad_response_box.cpp


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