本文整理汇总了C++中Interaction::isOverlapping方法的典型用法代码示例。如果您正苦于以下问题:C++ Interaction::isOverlapping方法的具体用法?C++ Interaction::isOverlapping怎么用?C++ Interaction::isOverlapping使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Interaction
的用法示例。
在下文中一共展示了Interaction::isOverlapping方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleInteraction
//.........这里部分代码省略.........
ani->queueMessageQueue(0);
LABEL_38:
if (inter->_messageQueue) {
mq = new MessageQueue(inter->_messageQueue, 0, 1);
mq->changeParam28ForObjectId(ani->_id, -1, ani->_okeyCode);
if (!mq->chain(0))
return false;
}
}
return true;
}
if (obj && !subj)
return true;
if (!obj || inter->_objectId3 == obj->_id) {
if (subj) {
if (inter->_messageQueue) {
if (subj->isIdle()) {
mq = new MessageQueue(inter->_messageQueue, 0, 1);
if (!mq->chain(subj)) {
delete mq;
return false;
}
}
}
}
return true;
}
if (inter->isOverlapping(subj, obj)) {
if (obj->_objtype == kObjTypeStaticANIObject) {
StaticANIObject *ani = (StaticANIObject *)obj;
ani->queueMessageQueue(0);
if (inter->_staticsId1)
ani->changeStatics2(inter->_staticsId1);
if (!(inter->_flags & 0x10000))
obj->_flags |= 0x80;
}
if (!inter->_messageQueue)
return false;
subj->setOXY(inter->_xOffs + obj->_ox, inter->_yOffs + obj->_oy);
mq = new MessageQueue(inter->_messageQueue, 0, 1);
mq->changeParam28ForObjectId(obj->_id, -1, obj->_okeyCode);
mq->_flags |= 1;
if (!(inter->_flags & 0x10000)) {
ex = new ExCommand(obj->_id, 34, 0x80, 0, 0, 0, 1, 0, 0, 0);
ex->_keyCode = obj->_okeyCode;
ex->_field_14 = 0x100;
ex->_messageNum = 0;
ex->_excFlags = 3;
mq->_exCommands.push_back(ex);
}
ex = new ExCommand(obj->_id, 34, 0x100, 0, 0, 0, 1, 0, 0, 0);
ex->_keyCode = obj->_okeyCode;
示例2: handleInteraction
//.........这里部分代码省略.........
}
if (inter->_messageQueue) {
mq = new MessageQueue(inter->_messageQueue, 0, 1);
mq->changeParam28ForObjectId(obj->_id, -1, obj->_odelay);
if (!mq->chain(0))
return false;
}
return true;
}
if (obj && !subj)
return true;
if (!obj || inter->_objectId3 == obj->_id) {
if (subj) {
if (inter->_messageQueue) {
if (subj->isIdle()) {
mq = new MessageQueue(inter->_messageQueue, 0, 1);
if (!mq->chain(subj)) {
delete mq;
return false;
}
}
}
}
return true;
}
if (inter->isOverlapping(subj, obj)) {
if (obj->_objtype == kObjTypeStaticANIObject) {
StaticANIObject *ani = static_cast<StaticANIObject *>(obj);
ani->queueMessageQueue(0);
if (inter->_staticsId1)
ani->changeStatics2(inter->_staticsId1);
if (!(inter->_flags & 0x10000))
obj->_flags |= 0x80;
}
if (!inter->_messageQueue)
return false;
subj->setOXY(inter->_xOffs + obj->_ox, inter->_yOffs + obj->_oy);
mq = new MessageQueue(inter->_messageQueue, 0, 1);
mq->changeParam28ForObjectId(obj->_id, -1, obj->_odelay);
mq->_flags |= 1;
if (!(inter->_flags & 0x10000)) {
ex = new ExCommand(obj->_id, 34, 0x80, 0, 0, 0, 1, 0, 0, 0);
ex->_param = obj->_odelay;
ex->_z = 0x80;
ex->_messageNum = 0;
ex->_excFlags = 3;
mq->addExCommandToEnd(ex);
}
ex = new ExCommand(obj->_id, 34, 0x100, 0, 0, 0, 1, 0, 0, 0);
ex->_param = obj->_odelay;