Lines Matching refs:_actor

204 	_actor = 0;  in Control()
219 if (_actor && !(_actor->_flags & Illusions::ACTOR_FLAG_200)) in pause()
220 _actor->destroySurface(); in pause()
232 if (_actor && !(_actor->_flags & Illusions::ACTOR_FLAG_200)) { in unpause()
238 surfInfo = _actor->_surfInfo; in unpause()
239 _actor->createSurface(surfInfo); in unpause()
246 _actor->_flags |= Illusions::ACTOR_FLAG_IS_VISIBLE; in appearActor()
248 if (_actor->_frameIndex) { in appearActor()
249 _actor->_flags |= Illusions::ACTOR_FLAG_2000; in appearActor()
250 _actor->_flags |= Illusions::ACTOR_FLAG_4000; in appearActor()
258 if (_actor->_frameIndex || _actorTypeId == 0x50004) { in appearActor()
259 _actor->_flags |= Illusions::ACTOR_FLAG_IS_VISIBLE; in appearActor()
261 _actor->_flags |= Illusions::ACTOR_FLAG_1000; in appearActor()
264 if (_actor->_subobjects[i]) { in appearActor()
265 Control *subControl = _vm->_dict->getObjectControl(_actor->_subobjects[i]); in appearActor()
276 _actor->_flags &= ~Illusions::ACTOR_FLAG_IS_VISIBLE; in disappearActor()
281 _actor->_flags &= ~Illusions::ACTOR_FLAG_IS_VISIBLE; in disappearActor()
282 _actor->_flags &= ~Illusions::ACTOR_FLAG_1000; in disappearActor()
284 if (_actor->_subobjects[i]) { in disappearActor()
285 Control *subControl = _vm->_dict->getObjectControl(_actor->_subobjects[i]); in disappearActor()
294 return (_actor->_flags & Illusions::ACTOR_FLAG_IS_VISIBLE) != 0; in isActorVisible()
299 if (_actor) { in activateObject()
301 if (_actor->_subobjects[i]) { in activateObject()
302 Control *subControl = _vm->_dict->getObjectControl(_actor->_subobjects[i]); in activateObject()
311 if (_actor) { in deactivateObject()
313 if (_actor->_subobjects[i]) { in deactivateObject()
314 Control *subControl = _vm->_dict->getObjectControl(_actor->_subobjects[i]); in deactivateObject()
342 _actor->_position = position; in setActorPosition()
346 if (_actor) in getActorPosition()
347 return _actor->_position; in getActorPosition()
352 _actor->_scale = scale; in setActorScale()
354 if (_actor->_subobjects[i]) { in setActorScale()
355 Control *subControl = _vm->_dict->getObjectControl(_actor->_subobjects[i]); in setActorScale()
362 _actor->_facing = facing; in faceActor()
364 if (_actor->_subobjects[i]) { in faceActor()
365 Control *subControl = _vm->_dict->getObjectControl(_actor->_subobjects[i]); in faceActor()
372 _actor->_parentObjectId = parentObjectId; in linkToObject()
373 _actor->_linkIndex = linkedObjectValue; in linkToObject()
377 _actor->_parentObjectId = 0; in unlinkObject()
378 _actor->_linkIndex = 0; in unlinkObject()
382 _actor->_notifyThreadId1 = 0; in clearNotifyThreadId1()
387 if (_actor->_subobjects[i]) { in clearNotifyThreadId2()
388 Control *subControl = _vm->_dict->getObjectControl(_actor->_subobjects[i]); in clearNotifyThreadId2()
389 subControl->_actor->_flags &= ~Illusions::ACTOR_FLAG_80; in clearNotifyThreadId2()
390 subControl->_actor->_entryTblPtr = 0; in clearNotifyThreadId2()
391 subControl->_actor->_notifyThreadId2 = 0; in clearNotifyThreadId2()
394 _actor->_flags &= ~Illusions::ACTOR_FLAG_80; in clearNotifyThreadId2()
395 _actor->_entryTblPtr = 0; in clearNotifyThreadId2()
396 _actor->_notifyThreadId2 = 0; in clearNotifyThreadId2()
406 if (_actor) { in getPriority()
407 if (_actor->_parentObjectId && (_actor->_flags & Illusions::ACTOR_FLAG_40)) { in getPriority()
412 positionY = parentControl->_actor->_position.y; in getPriority()
416 positionY = _actor->_position.y; in getPriority()
446 return (_actor->_position.y + 32768) | (_priority << 16); in getDrawPriority()
451 if (_actor->_parentObjectId) { in calcPosition()
453 Actor *actor = _actor; in calcPosition()
458 actor = parentControl->_actor; in calcPosition()
463 _actor->_position = pos; in calcPosition()
469 pos = _actor->_position; in calcPosition()
481 Actor *actor = _vm->_dict->getObjectControl(parentObjectId)->_actor; in getSubActorParent()
492 if (_actor && _actor->_frameIndex) { in getCollisionRectAccurate()
494 -_position.x + _actor->_surfInfo._dimensions._width - 1, in getCollisionRectAccurate()
495 -_position.y + _actor->_surfInfo._dimensions._height - 1); in getCollisionRectAccurate()
500 if (_actor) { in getCollisionRectAccurate()
501 if (_actor->_scale != 100) { in getCollisionRectAccurate()
502 collisionRect.left = collisionRect.left * _actor->_scale / 100; in getCollisionRectAccurate()
503 collisionRect.top = collisionRect.top * _actor->_scale / 100; in getCollisionRectAccurate()
504 collisionRect.right = collisionRect.right * _actor->_scale / 100; in getCollisionRectAccurate()
505 collisionRect.bottom = collisionRect.bottom * _actor->_scale / 100; in getCollisionRectAccurate()
507 collisionRect.translate(_actor->_position.x, _actor->_position.y); in getCollisionRectAccurate()
519 if (_actor) { in getCollisionRect()
520 if (_actor->_scale != 100) { in getCollisionRect()
521 collisionRect.left = collisionRect.left * _actor->_scale / 100; in getCollisionRect()
522 collisionRect.top = collisionRect.top * _actor->_scale / 100; in getCollisionRect()
523 collisionRect.right = collisionRect.right * _actor->_scale / 100; in getCollisionRect()
524 collisionRect.bottom = collisionRect.bottom * _actor->_scale / 100; in getCollisionRect()
526 collisionRect.translate(_actor->_position.x, _actor->_position.y); in getCollisionRect()
543 _actor->_frameIndex = frameIndex; in setActorFrameIndex()
544 const Frame &frame = (*_actor->_frames)[frameIndex - 1]; in setActorFrameIndex()
545 _actor->_surfInfo = frame._surfInfo; in setActorFrameIndex()
547 _actor->_flags |= Illusions::ACTOR_FLAG_2000; in setActorFrameIndex()
548 _actor->_flags |= Illusions::ACTOR_FLAG_4000; in setActorFrameIndex()
549 _actor->_newFrameIndex = 0; in setActorFrameIndex()
554 _actor->_seqCodeIp = 0; in stopActor()
555 if (_actor->_pathNode) { in stopActor()
556 if (_actor->_flags & Illusions::ACTOR_FLAG_400) { in stopActor()
557 delete _actor->_pathNode; in stopActor()
558 _actor->_flags &= ~Illusions::ACTOR_FLAG_400; in stopActor()
560 _actor->_pathNode = 0; in stopActor()
561 _actor->_pathPoints = 0; in stopActor()
562 _actor->_pathPointsCount = 0; in stopActor()
563 _actor->_pathPointIndex = 0; in stopActor()
564 _actor->_walkCallerThreadId1 = 0; in stopActor()
567 _vm->notifyThreadId(_actor->_notifyId3C); in stopActor()
568 _vm->notifyThreadId(_actor->_notifyThreadId1); in stopActor()
577 if (_actor->_flags & Illusions::ACTOR_FLAG_40) { in stopSequenceActor()
579 _actor->_frameIndex = 0; in stopSequenceActor()
580 …if ((_actor->_flags & Illusions::ACTOR_FLAG_IS_VISIBLE) || (_actor->_flags & Illusions::ACTOR_FLAG… in stopSequenceActor()
581 _actor->_flags &= ~Illusions::ACTOR_FLAG_IS_VISIBLE; in stopSequenceActor()
582 _actor->_flags |= Illusions::ACTOR_FLAG_1000; in stopSequenceActor()
586 if (_actor->_subobjects[i]) { in stopSequenceActor()
587 Control *subControl = _vm->_dict->getObjectControl(_actor->_subobjects[i]); in stopSequenceActor()
595 if (_actor->_linkIndex2) { in startTalkActor()
596 Control *subControl = _vm->_dict->getObjectControl(_actor->_subobjects[_actor->_linkIndex2 - 1]); in startTalkActor()
597 if (subControl->_actor->_flags & Illusions::ACTOR_FLAG_IS_VISIBLE) { in startTalkActor()
598 if (_actor->_pathNode) { in startTalkActor()
600 subControl->_actor->_notifyThreadId2 = threadId; in startTalkActor()
601 subControl->_actor->_entryTblPtr = entryTblPtr; in startTalkActor()
602 subControl->_actor->_flags |= Illusions::ACTOR_FLAG_80; in startTalkActor()
613 if (_actor->_pauseCtr > 0) in sequenceActor()
620 _actor->_seqCodeValue3 -= _actor->_seqCodeValue1; in sequenceActor()
622 while (_actor->_seqCodeValue3 <= 0 && !sequenceFinished) { in sequenceActor()
626 opCall._op = _actor->_seqCodeIp[0] & 0x7F; in sequenceActor()
627 opCall._opSize = _actor->_seqCodeIp[1]; in sequenceActor()
628 opCall._code = _actor->_seqCodeIp + 2; in sequenceActor()
630 if (_actor->_seqCodeIp[0] & 0x80) in sequenceActor()
639 _actor->_seqCodeIp += opCall._deltaOfs; in sequenceActor()
641 _actor->_seqCodeValue3 += _actor->_seqCodeValue2; in sequenceActor()
644 if (_actor->_newFrameIndex != 0) { in sequenceActor()
646 setActorFrameIndex(_actor->_newFrameIndex); in sequenceActor()
648 …!(_actor->_flags & Illusions::ACTOR_FLAG_IS_VISIBLE) && (_actor->_flags & Illusions::ACTOR_FLAG_10… in sequenceActor()
650 _actor->_flags &= ~Illusions::ACTOR_FLAG_1000; in sequenceActor()
657 _actor->_seqCodeIp = 0; in sequenceActor()
662 _actor->_actorIndex = actorIndex; in setActorIndex()
666 _actor->_actorIndex = 1; in setActorIndexTo1()
670 _actor->_actorIndex = 2; in setActorIndexTo2()
674 Control *linkedControl = _vm->_dict->getObjectControl(_actor->_subobjects[linkIndex - 1]); in startSubSequence()
675 Actor *linkedActor = linkedControl->_actor; in startSubSequence()
697 Control *linkedControl = _vm->_dict->getObjectControl(_actor->_subobjects[linkIndex - 1]); in stopSubSequence()
698 Actor *linkedActor = linkedControl->_actor; in stopSubSequence()
699 uint32 notifyThreadId2 = _actor->_notifyThreadId2; in stopSubSequence()
700 _actor->_linkIndex2 = linkIndex; in stopSubSequence()
701 if (_actor->_entryTblPtr) { in stopSubSequence()
703 linkedActor->_entryTblPtr = _actor->_entryTblPtr; in stopSubSequence()
704 linkedActor->_notifyThreadId2 = _actor->_notifyThreadId2; in stopSubSequence()
705 linkedActor->_seqCodeValue1 = _actor->_seqCodeValue1; in stopSubSequence()
706 linkedActor->_seqCodeValue3 = _actor->_seqCodeValue3; in stopSubSequence()
707 _actor->_flags &= ~Illusions::ACTOR_FLAG_80; in stopSubSequence()
708 _actor->_entryTblPtr = 0; in stopSubSequence()
709 _actor->_notifyThreadId1 = 0; in stopSubSequence()
710 _actor->_notifyThreadId2 = 0; in stopSubSequence()
723 _actor->_pathAngle = 0; in startMoveActor()
724 _actor->_pathFlag50 = false; in startMoveActor()
725 _actor->_seqCodeValue3 = 0; in startMoveActor()
726 _actor->_seqCodeValue1 = 0; in startMoveActor()
727 _actor->_pathInitialPosFlag = true; in startMoveActor()
730 if (_vm->calcPointDirection(_actor->_position, destPt, newFacing)) in startMoveActor()
734 _actor->_pathCtrY = actorType->_value1E; in startMoveActor()
736 _actor->_pathCtrY = 140; in startMoveActor()
741 _actor->_position.x == (*pathNode)[0].x && in startMoveActor()
742 _actor->_position.y == (*pathNode)[0].y) { in startMoveActor()
746 _actor->_posXShl = _actor->_position.x << 16; in startMoveActor()
747 _actor->_posYShl = _actor->_position.y << 16; in startMoveActor()
749 _actor->_pathNode = pathNode; in startMoveActor()
750 _actor->_pathPointsCount = pathNode->size(); in startMoveActor()
751 _actor->_pathPoints = pathNode->size(); in startMoveActor()
752 _actor->_flags |= Illusions::ACTOR_FLAG_400; in startMoveActor()
753 _actor->_walkCallerThreadId1 = callerThreadId1; in startMoveActor()
754 _vm->notifyThreadId(_actor->_notifyId3C); in startMoveActor()
755 _actor->_notifyId3C = callerThreadId2; in startMoveActor()
756 _actor->_pathPointIndex = 0; in startMoveActor()
763 …PointArray *walkPoints = (_actor->_flags & Illusions::ACTOR_FLAG_HAS_WALK_POINTS) ? _actor->_pathW… in createPath()
764 …PathLines *walkRects = (_actor->_flags & Illusions::ACTOR_FLAG_HAS_WALK_RECTS) ? _actor->_pathWalk… in createPath()
767 …PointArray *path = pathFinder.findPath(_vm->_camera, _actor->_position, destPt, walkPoints, walkRe… in createPath()
782 _actor->_flags |= Illusions::ACTOR_FLAG_8000; in updateActorMovement()
783 _actor->_seqCodeIp = 0; in updateActorMovement()
791 if (_actor->_pathPointIndex == 0) { in updateActorMovement()
792 if (_actor->_pathInitialPosFlag) { in updateActorMovement()
793 _actor->_pathCtrX = 0; in updateActorMovement()
794 _actor->_pathInitialPos = _actor->_position; in updateActorMovement()
795 _actor->_pathInitialPosFlag = false; in updateActorMovement()
797 prevPt = _actor->_pathInitialPos; in updateActorMovement()
799 prevPt = (*_actor->_pathNode)[_actor->_pathPointIndex - 1]; in updateActorMovement()
802 Common::Point currPt = (*_actor->_pathNode)[_actor->_pathPointIndex]; in updateActorMovement()
807 if (!_actor->_pathFlag50) { in updateActorMovement()
818 _actor->_pathAngle = angle; in updateActorMovement()
833 if (newFacing != _actor->_facing) { in updateActorMovement()
838 _actor->_pathFlag50 = true; in updateActorMovement()
844 if (_actor->_flags & Illusions::ACTOR_FLAG_400) { in updateActorMovement()
846 FixedPoint16 v20 = fixedMul((deltaTime + _actor->_pathCtrX) << 16, _actor->_pathCtrY << 16); in updateActorMovement()
848 FixedPoint16 v22 = fixedMul(v21, _actor->_scale << 16); in updateActorMovement()
850 _actor->_seqCodeValue1 = 100 * _actor->_pathCtrY * deltaTime / 100; in updateActorMovement()
852 …16 prevDistance = fixedDistance(prevPt.x << 16, prevPt.y << 16, _actor->_posXShl, _actor->_posYShl… in updateActorMovement()
856 deltaX24 = fixedMul(fixedCos(_actor->_pathAngle), distance); in updateActorMovement()
857 deltaY24 = fixedMul(fixedSin(_actor->_pathAngle), distance); in updateActorMovement()
859 deltaX24 = _actor->_posXShl - (prevPt.x << 16); in updateActorMovement()
860 deltaY24 = _actor->_posYShl - (prevPt.y << 16); in updateActorMovement()
863 if (100 * (int)deltaTime <= _actor->_seqCodeValue2) in updateActorMovement()
873 if (newX == _actor->_posXShl && newY == _actor->_posYShl) { in updateActorMovement()
874 _actor->_pathCtrX += deltaTime; in updateActorMovement()
876 _actor->_pathCtrX = 0; in updateActorMovement()
877 _actor->_posXShl = newX; in updateActorMovement()
878 _actor->_posYShl = newY; in updateActorMovement()
879 _actor->_position.x = fixedTrunc(_actor->_posXShl); in updateActorMovement()
880 _actor->_position.y = fixedTrunc(_actor->_posYShl); in updateActorMovement()
883 _actor->_position = currPt; in updateActorMovement()
884 _actor->_posXShl = _actor->_position.x << 16; in updateActorMovement()
885 _actor->_posYShl = _actor->_position.y << 16; in updateActorMovement()
886 --_actor->_pathPointsCount; in updateActorMovement()
887 ++_actor->_pathPointIndex; in updateActorMovement()
888 ++_actor->_pathPoints; in updateActorMovement()
889 _actor->_pathInitialPosFlag = true; in updateActorMovement()
890 if (_actor->_pathPointsCount == 0) { in updateActorMovement()
891 if (_actor->_flags & Illusions::ACTOR_FLAG_400) { in updateActorMovement()
892 delete _actor->_pathNode; in updateActorMovement()
893 _actor->_flags &= ~Illusions::ACTOR_FLAG_400; in updateActorMovement()
895 _actor->_pathNode = 0; in updateActorMovement()
896 _actor->_pathPoints = 0; in updateActorMovement()
897 _actor->_pathPointsCount = 0; in updateActorMovement()
898 _actor->_pathPointIndex = 0; in updateActorMovement()
899 if (_actor->_notifyId3C) { in updateActorMovement()
900 _vm->notifyThreadId(_actor->_notifyId3C); in updateActorMovement()
901 _actor->_walkCallerThreadId1 = 0; in updateActorMovement()
905 _actor->_pathFlag50 = false; in updateActorMovement()
913 Sequence *sequence = _vm->_dict->findSequence(_actor->_sequenceId); in refreshSequenceCode()
914 _actor->_seqCodeIp = sequence->_sequenceCode; in refreshSequenceCode()
918 dimensions._width = _actor->_surface->w; in getActorFrameDimensions()
919 dimensions._height = _actor->_surface->h; in getActorFrameDimensions()
923 _vm->_screen->fillSurfaceRect(_actor->_surface, r, color); in drawActorRect()
924 _actor->_flags |= Illusions::ACTOR_FLAG_4000; in drawActorRect()
928 _vm->_screen->fillSurface(_actor->_surface, color); in fillActor()
929 _actor->_flags |= Illusions::ACTOR_FLAG_4000; in fillActor()
933 Frame *frame = &(*_actor->_frames)[_actor->_frameIndex - 1]; in isPixelCollision()
934 return _vm->_screen->isSpritePixelSolid(pt, _position, _actor->_position, in isPixelCollision()
935 _actor->_surfInfo, _actor->_scale, frame->_flags, frame->_compressedPixels); in isPixelCollision()
941 _actor->_flags &= ~Illusions::ACTOR_FLAG_80; in startSequenceActorIntern()
942 _actor->_flags &= ~Illusions::ACTOR_FLAG_400; in startSequenceActorIntern()
943 _actor->_flags |= Illusions::ACTOR_FLAG_100; in startSequenceActorIntern()
945 sequenceId = _actor->_defaultSequences.use(sequenceId); in startSequenceActorIntern()
947 _actor->_sequenceId = sequenceId; in startSequenceActorIntern()
948 _actor->_notifyThreadId1 = notifyThreadId; in startSequenceActorIntern()
949 _actor->_notifyId3C = 0; in startSequenceActorIntern()
950 _actor->_walkCallerThreadId1 = 0; in startSequenceActorIntern()
951 _actor->_entryTblPtr = 0; in startSequenceActorIntern()
959 _actor->_flags |= Illusions::ACTOR_FLAG_800; in startSequenceActorIntern()
962 _actor->_seqCodeIp = sequence->_sequenceCode; in startSequenceActorIntern()
963 _actor->_frames = _vm->findActorSequenceFrames(sequence); in startSequenceActorIntern()
965 _actor->_seqCodeValue3 = 0; in startSequenceActorIntern()
966 _actor->_seqCodeValue1 = 0; in startSequenceActorIntern()
969 _actor->_seqCodeValue2 = value == 1 ? 350 : 600; in startSequenceActorIntern()
971 _actor->_seqCodeValue2 = value == 1 ? 350 : 750; in startSequenceActorIntern()
974 _actor->initSequenceStack(); in startSequenceActorIntern()
979 _actor->_linkIndex2 = 0; in startSequenceActorIntern()
982 _actor->_flags |= Illusions::ACTOR_FLAG_80; in startSequenceActorIntern()
983 _actor->_entryTblPtr = entryTblPtr; in startSequenceActorIntern()
985 _actor->_notifyThreadId1 = 0; in startSequenceActorIntern()
986 _actor->_notifyThreadId2 = notifyThreadId; in startSequenceActorIntern()
1033 control->_actor = actor; in placeActor()
1114 control->_actor = actor; in placeSequenceLessActor()
1142 control->_actor = 0; in placeActorLessObject()
1151 parentControl->_actor->_subobjects[linkIndex - 1] = tempObjectId; in placeSubActor()
1152 Actor *subActor = _vm->_dict->getObjectControl(tempObjectId)->_actor; in placeSubActor()
1167 control->_actor = actor; in placeDialogItem()
1225 if (control->_actor && in threadIsDead()
1226 (control->_actor->_notifyThreadId1 == threadId || control->_actor->_notifyId3C == threadId)) { in threadIsDead()
1227 control->_actor->_notifyThreadId1 = 0; in threadIsDead()
1228 control->_actor->_notifyId3C = 0; in threadIsDead()
1282 (!testControl->_actor || (testControl->_actor->_flags & Illusions::ACTOR_FLAG_IS_VISIBLE))) { in getOverlappedObject()
1297 …if (foundControl->_actor && foundControl->_actor->_parentObjectId && (foundControl->_actor->_flags… in getOverlappedObject()
1316 (!testControl->_actor || (testControl->_actor->_flags & Illusions::ACTOR_FLAG_IS_VISIBLE))) { in getOverlappedObjectAccurate()
1320 (!testControl->_actor || testControl->isPixelCollision(pt))) { in getOverlappedObjectAccurate()
1332 …if (foundControl->_actor && foundControl->_actor->_parentObjectId && (foundControl->_actor->_flags… in getOverlappedObjectAccurate()
1385 …if (control->_pauseCtr == 0 && control->_actor && control->_actor->findNamedPoint(namedPointId, pt… in findNamedPoint()
1393 Actor *actor = control->_actor; in actorControlRoutine()
1398 if (control->_actor->_pathNode) { in actorControlRoutine()
1443 Actor *actor = control->_actor; in dialogItemControlRoutine()
1475 if (control->_actor) { in destroyControlInternal()
1476 if (control->_actor->_pathNode && (control->_actor->_flags & Illusions::ACTOR_FLAG_400)) in destroyControlInternal()
1477 delete control->_actor->_pathNode; in destroyControlInternal()
1478 if (!(control->_actor->_flags & Illusions::ACTOR_FLAG_200)) in destroyControlInternal()
1479 control->_actor->destroySurface(); in destroyControlInternal()
1480 delete control->_actor; in destroyControlInternal()
1481 control->_actor = 0; in destroyControlInternal()
1516 if (control->_actor && control->_objectId != objectId) { in pauseActors()
1517 control->_actor->pause(); in pauseActors()
1525 if (control->_actor && control->_objectId != objectId) { in unpauseActors()
1526 control->_actor->unpause(); in unpauseActors()