本文整理汇总了C++中BaseArray::add方法的典型用法代码示例。如果您正苦于以下问题:C++ BaseArray::add方法的具体用法?C++ BaseArray::add怎么用?C++ BaseArray::add使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BaseArray
的用法示例。
在下文中一共展示了BaseArray::add方法的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;
}
示例2: getObjects
bool AdResponseBox::getObjects(BaseArray<UIObject *> &objects, bool interactiveOnly) {
for (uint32 i = 0; i < _respButtons.size(); i++) {
objects.add(_respButtons[i]);
}
if (_window) {
_window->getWindowObjects(objects, interactiveOnly);
}
return STATUS_OK;
}