comparison mm7_3.cpp @ 844:d593ca75c366

more UpdateActorAI cleaning 2
author zipi
date Fri, 29 Mar 2013 14:53:06 +0000
parents 292c6288204d
children 8f135b689262
comparison
equal deleted inserted replaced
843:292c6288204d 844:d593ca75c366
15143 unsigned __int8 v54; // c0@224 15143 unsigned __int8 v54; // c0@224
15144 unsigned __int8 v55; // c3@224 15144 unsigned __int8 v55; // c3@224
15145 double v56; // st7@226 15145 double v56; // st7@226
15146 AIDirection *v57; // eax@246 15146 AIDirection *v57; // eax@246
15147 double v58; // st7@246 15147 double v58; // st7@246
15148 signed int v59; // [sp-18h] [bp-C8h]@213 15148 //signed int v59; // [sp-18h] [bp-C8h]@213
15149 //int v60; // [sp-14h] [bp-C4h]@144 15149 //int v60; // [sp-14h] [bp-C4h]@144
15150 //int v61; // [sp-14h] [bp-C4h]@168 15150 //int v61; // [sp-14h] [bp-C4h]@168
15151 AIDirection *v62; // [sp-14h] [bp-C4h]@213 15151 //AIDirection *v62; // [sp-14h] [bp-C4h]@213
15152 signed int v63; // [sp-14h] [bp-C4h]@216 15152 //signed int v63; // [sp-14h] [bp-C4h]@216
15153 unsigned int v64; // [sp-14h] [bp-C4h]@219 15153 unsigned int v64; // [sp-14h] [bp-C4h]@219
15154 unsigned int v65; // [sp-10h] [bp-C0h]@144 15154 unsigned int v65; // [sp-10h] [bp-C0h]@144
15155 char v66; // [sp-10h] [bp-C0h]@147 15155 char v66; // [sp-10h] [bp-C0h]@147
15156 //AIDirection *v67; // [sp-10h] [bp-C0h]@167 15156 //AIDirection *v67; // [sp-10h] [bp-C0h]@167
15157 //int v68; // [sp-10h] [bp-C0h]@168 15157 //int v68; // [sp-10h] [bp-C0h]@168
15505 v38 = ((v36 - 5120) & 0x80000000u) != 0; 15505 v38 = ((v36 - 5120) & 0x80000000u) != 0;
15506 } 15506 }
15507 if ( v37 >= 1 && v37 <= 4 && v38 ^ v39 || v37 == 1 ) 15507 if ( v37 >= 1 && v37 <= 4 && v38 ^ v39 || v37 == 1 )
15508 v21->pMonsterInfo.uHostilityType = MonsterInfo::Hostility_Long; 15508 v21->pMonsterInfo.uHostilityType = MonsterInfo::Hostility_Long;
15509 } 15509 }
15510
15510 if ( (signed __int64)v21->pActorBuffs[4].uExpireTime > 0 ) 15511 if ( (signed __int64)v21->pActorBuffs[4].uExpireTime > 0 )
15511 { 15512 {
15512 if ( (signed int)v36 >= 10240 ) 15513 if ( (signed int)v36 >= 10240 )
15513 { 15514 {
15514 Actor::_4032B2(actor_id, actor_pid, 1024, 0); 15515 Actor::_4032B2(actor_id, actor_pid, 1024, 0);
15519 //guard after attacked 15520 //guard after attacked
15520 Actor::_402968(actor_id, actor_pid, 0, &pDir); 15521 Actor::_402968(actor_id, actor_pid, 0, &pDir);
15521 } 15522 }
15522 continue; 15523 continue;
15523 } 15524 }
15525
15524 if ( v21->pMonsterInfo.uHostilityType == MonsterInfo::Hostility_Long && actor_pid ) 15526 if ( v21->pMonsterInfo.uHostilityType == MonsterInfo::Hostility_Long && actor_pid )
15525 { 15527 {
15526 if ( !(v21->uAttributes & 0x020000) || v21->pMonsterInfo.uAIType == 1 ) 15528
15529 if ( v21->pMonsterInfo.uAIType == 1 )
15527 { 15530 {
15528 if ( v21->pMonsterInfo.uAIType == 1 ) 15531 if ( v21->pMonsterInfo.uMovementType == 5 )
15529 { 15532 {
15530 if ( v21->pMonsterInfo.uMovementType == 5 ) 15533 Actor::AI_Stand(actor_id, actor_pid, (signed __int64)((double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333), &pDir);
15531 {
15532 Actor::AI_Stand(actor_id, actor_pid, (signed __int64)((double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333), &pDir);
15533 }
15534 else
15535 {
15536 Actor::_402968(actor_id, actor_pid, 0, &pDir);
15537 continue;
15538 }
15539
15540 } 15534 }
15541 else 15535 else
15542 { 15536 {
15537 Actor::_402968(actor_id, actor_pid, 0, &pDir);
15538 continue;
15539 }
15540
15541 }
15542 if ( !(v21->uAttributes & 0x020000) )
15543 {
15544 if ( v21->pMonsterInfo.uAIType == 2 || v21->pMonsterInfo.uAIType == 3)
15545 {
15546 if ( v21->pMonsterInfo.uAIType == 2 )
15547 v43 = (double)(signed int)v21->pMonsterInfo.uHP * 0.2;
15548 if ( v21->pMonsterInfo.uAIType == 3 )
15549 v43 = (double)(signed int)v21->pMonsterInfo.uHP * 0.1;
15543 v84 = v21->sCurrentHP; 15550 v84 = v21->sCurrentHP;
15544 v42 = (double)(signed int)v84; 15551 v42 = (double)(signed int)v84;
15545 if ( v21->pMonsterInfo.uAIType == 2 ) 15552 if ( v43 > v42 && (signed int)v36 < 10240 )
15546 {
15547
15548 v43 = (double)(signed int)v21->pMonsterInfo.uHP * 0.2;
15549 }
15550 else
15551 {
15552 v43 = (double)(signed int)v21->pMonsterInfo.uHP * 0.1;
15553 }
15554 if ( v21->pMonsterInfo.uAIType == 2 || v21->pMonsterInfo.uAIType == 3 && v43 > v42 && (signed int)v36 < 10240 )
15555 { 15553 {
15556 Actor::_402968(actor_id, actor_pid, 0, &pDir); 15554 Actor::_402968(actor_id, actor_pid, 0, &pDir);
15557 continue; 15555 continue;
15558 } 15556 }
15559 } 15557 }
15560 } 15558 }
15559
15561 v81 = v36 - v21->uActorRadius; 15560 v81 = v36 - v21->uActorRadius;
15562 if ( actor_pid_type == OBJECT_Actor ) 15561 if ( actor_pid_type == OBJECT_Actor )
15563 v81 -= pActors[actor_pid >> 3].uActorRadius; 15562 v81 -= pActors[actor_pid >> 3].uActorRadius;
15564 if ( v81 < 0 ) 15563 if ( v81 < 0 )
15565 v81 = 0; 15564 v81 = 0;
15566 rand(); 15565 rand();
15567 v21->uAttributes &= 0xFBFFFF; 15566 v21->uAttributes &= 0xFBFFFF;
15568 if ( v81 < 5120 ) 15567 if ( v81 < 5120 )
15569 { 15568 {
15570 v45 = stru_50C198.special_ability_use_check(v21, actor_id); 15569 v45 = stru_50C198.special_ability_use_check(v21, actor_id);
15571 if ( !v45 ) 15570 if ( v45 == 0 )
15572 { 15571 {
15573 if ( v21->pMonsterInfo.uMissleAttack1Type ) 15572 if ( v21->pMonsterInfo.uMissleAttack1Type )
15574 { 15573 {
15575 if ( (signed int)v21->pMonsterInfo.uRecoveryTime <= 0 ) 15574 if ( (signed int)v21->pMonsterInfo.uRecoveryTime <= 0 )
15576 { 15575 {
15577 Actor::_403476(actor_id, actor_pid, &pDir); 15576 Actor::_403476(actor_id, actor_pid, &pDir);
15578 continue;
15579
15580 } 15577 }
15581 if ( v21->pMonsterInfo.uMovementType == 5 ) 15578 else if ( v21->pMonsterInfo.uMovementType == 5 )
15582 { 15579 {
15583 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333; 15580 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15584 v64 = (signed __int64)v47; 15581 v64 = (signed __int64)v47;
15585 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir); 15582 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15586 continue;
15587 } 15583 }
15588 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333; 15584 else
15589 if ( !(v54 | v55) )
15590 { 15585 {
15591 v64 = (signed __int64)v47; 15586 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15592 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir); 15587 if ( !(v54 | v55) )
15593 continue; 15588 {
15589 v64 = (signed __int64)v47;
15590 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15591 continue;
15592 }
15593 Actor::_402AD7(actor_id, actor_pid, actor_id, (signed __int64)v47, &pDir);
15594 } 15594 }
15595 Actor::_402AD7(actor_id, actor_pid, actor_id, (signed __int64)v47, &pDir);
15596 continue;
15597 } 15595 }
15598 v56 = v80 * 307.2; 15596 else
15599 if ( (double)v81 >= v56 )
15600 { 15597 {
15601 if ( v81 >= 1024 ) 15598 v56 = v80 * 307.2;
15599 if ( (double)v81 >= v56 )
15602 { 15600 {
15603 if ( v21->pMonsterInfo.uMovementType == 5 ) 15601 if ( v81 >= 1024 )
15602 {
15603 if ( v21->pMonsterInfo.uMovementType == 5 )
15604 {
15605 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15606 v64 = (signed __int64)v47;
15607 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15608 }
15609 else
15610 {
15611 //monsters
15612 Actor::_402686(actor_id, actor_pid, 0, &pDir);
15613 }
15614 }
15615 else if ( v21->pMonsterInfo.uMovementType == 5 )
15604 { 15616 {
15605 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333; 15617 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15606 v64 = (signed __int64)v47; 15618 v64 = (signed __int64)v47;
15607 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir); 15619 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15608 continue;
15609 } 15620 }
15610 v63 = 0; 15621 else
15611 //monsters 15622 {
15612 Actor::_402686(actor_id, actor_pid, v63, &pDir); 15623 v70 = (signed __int64)v56;
15613 continue; 15624 //monsters
15625 //guard after player runs away
15626 // follow player
15627 Actor::_40281C(actor_id, actor_pid, 0, &pDir, v70);
15628 }
15614 } 15629 }
15615 if ( v21->pMonsterInfo.uMovementType == 5 ) 15630 else if ( (signed int)v21->pMonsterInfo.uRecoveryTime > 0 )
15616 { 15631 {
15617 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333; 15632 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15618 v64 = (signed __int64)v47; 15633 v64 = (signed __int64)v47;
15619 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir); 15634 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15620 continue;
15621 } 15635 }
15622 v70 = (signed __int64)v56; 15636 else
15623 v62 = &pDir; 15637 {
15624 v59 = 0; 15638 //monsters
15625 //monsters 15639 Actor::_403C6C(actor_id, actor_pid, &pDir);
15626 //guard after player runs away 15640 }
15627 // follow player
15628 Actor::_40281C(actor_id, actor_pid, v59, v62, v70);
15629 continue;
15630 } 15641 }
15631 if ( (signed int)v21->pMonsterInfo.uRecoveryTime > 0 )
15632 {
15633 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15634 v64 = (signed __int64)v47;
15635 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15636 continue;
15637 }
15638 //monsters
15639 Actor::_403C6C(actor_id, actor_pid, &pDir);
15640 continue; 15642 continue;
15641 } 15643 }
15642 if ( v45 != 1 ) 15644 else if ( v45 == 2 || v45 == 3 )
15643 { 15645 {
15644 if ( v45 > 1 && v45 <= 3 ) 15646 if ( v45 == 2 )
15647 v46 = v21->pMonsterInfo.uSpell1ID;
15648 else
15649 v46 = v21->pMonsterInfo.uSpell2ID;
15650 if ( v46 )
15645 { 15651 {
15646 if ( v45 == 2 ) 15652 if ( (signed int)v21->pMonsterInfo.uRecoveryTime <= 0 )
15647 v46 = v21->pMonsterInfo.uSpell1ID; 15653 {
15654 if ( v45 == 2 )
15655 Actor::_403854(actor_id, actor_pid, &pDir);
15656 else
15657 Actor::_403A60(actor_id, actor_pid, &pDir);
15658 }
15659 else if ( v80 * 307.2 > (double)v81 || v21->pMonsterInfo.uMovementType == 5 )
15660 {
15661 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15662 v64 = (signed __int64)v47;
15663 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15664 }
15648 else 15665 else
15649 v46 = v21->pMonsterInfo.uSpell2ID;
15650 if ( v46 )
15651 { 15666 {
15652 if ( (signed int)v21->pMonsterInfo.uRecoveryTime <= 0 )
15653 {
15654 if ( v45 == 2 )
15655 Actor::_403854(actor_id, actor_pid, &pDir);
15656 else
15657 Actor::_403A60(actor_id, actor_pid, &pDir);
15658 continue;
15659 }
15660 if ( v80 * 307.2 > (double)v81 || v21->pMonsterInfo.uMovementType == 5 )
15661 {
15662 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15663 v64 = (signed __int64)v47;
15664 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15665 continue;
15666
15667 }
15668 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333; 15667 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15669 Actor::_402AD7(actor_id, actor_pid, actor_id, (signed __int64)v47, &pDir); 15668 Actor::_402AD7(actor_id, actor_pid, actor_id, (signed __int64)v47, &pDir);
15670 continue;
15671 } 15669 }
15670 }
15671 else
15672 {
15672 v48 = v80 * 307.2; 15673 v48 = v80 * 307.2;
15673 if ( (double)v81 >= v48 ) 15674 if ( (double)v81 >= v48 )
15674 { 15675 {
15675 if ( v81 >= 1024 ) 15676 if ( v81 >= 1024 )
15676 { 15677 {
15682 } 15683 }
15683 else 15684 else
15684 { 15685 {
15685 Actor::_402686(actor_id, actor_pid, 256, &pDir); 15686 Actor::_402686(actor_id, actor_pid, 256, &pDir);
15686 } 15687 }
15687 continue;
15688
15689 } 15688 }
15690 if ( v21->pMonsterInfo.uMovementType == 5 ) 15689 else if ( v21->pMonsterInfo.uMovementType == 5 )
15691 { 15690 {
15692 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333; 15691 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15693 v64 = (signed __int64)v47; 15692 v64 = (signed __int64)v47;
15694 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir); 15693 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15695 continue;
15696 } 15694 }
15697 v70 = (signed __int64)v48; 15695 else
15698 v62 = &pDir; 15696 {
15699 v59 = 0; 15697 v70 = (signed __int64)v48;
15700 Actor::_40281C(actor_id, actor_pid, v59, v62, v70); 15698 Actor::_40281C(actor_id, actor_pid, 0, &pDir, v70);
15701 continue; 15699 }
15702 } 15700 }
15703 if ( (signed int)v21->pMonsterInfo.uRecoveryTime > 0 ) 15701 else if ( (signed int)v21->pMonsterInfo.uRecoveryTime > 0 )
15704 { 15702 {
15705 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333; 15703 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15706 v64 = (signed __int64)v47; 15704 v64 = (signed __int64)v47;
15707 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir); 15705 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15708 continue;
15709 } 15706 }
15710 Actor::_403C6C(actor_id, actor_pid, &pDir); 15707 else
15711 continue; 15708 {
15709 Actor::_403C6C(actor_id, actor_pid, &pDir);
15710 }
15712 } 15711 }
15712 continue;
15713 } 15713 }
15714 } 15714 }
15715 } 15715 }
15716
15716 if ( v21->pMonsterInfo.uHostilityType != MonsterInfo::Hostility_Long || !actor_pid || v81 >= 5120 || v45 != 1 ) 15717 if ( v21->pMonsterInfo.uHostilityType != MonsterInfo::Hostility_Long || !actor_pid || v81 >= 5120 || v45 != 1 )
15717 { 15718 {
15718 if ( !v21->pMonsterInfo.uMovementType ) 15719 if ( !v21->pMonsterInfo.uMovementType )
15719 { 15720 {
15720 Actor::_4032B2(actor_id, 4, 1024, 0); 15721 Actor::_4032B2(actor_id, 4, 1024, 0);
15721 continue;
15722
15723 } 15722 }
15724 if ( v21->pMonsterInfo.uMovementType == 1 ) 15723 else if ( v21->pMonsterInfo.uMovementType == 1 )
15725 { 15724 {
15726 Actor::_4032B2(actor_id, 4, 2560, 0); 15725 Actor::_4032B2(actor_id, 4, 2560, 0);
15727 continue;
15728 } 15726 }
15729 if ( v21->pMonsterInfo.uMovementType == 2 ) 15727 else if ( v21->pMonsterInfo.uMovementType == 2 )
15730 { 15728 {
15731 Actor::_4032B2(actor_id, 4, 5120, 0); 15729 Actor::_4032B2(actor_id, 4, 5120, 0);
15732 continue;
15733 } 15730 }
15734 if ( v21->pMonsterInfo.uMovementType == 4 ) 15731 else if ( v21->pMonsterInfo.uMovementType == 4 )
15735 { 15732 {
15736 Actor::_4032B2(actor_id, 4, 10240, 0); 15733 Actor::_4032B2(actor_id, 4, 10240, 0);
15737 continue;
15738 } 15734 }
15739 if ( v21->pMonsterInfo.uMovementType == 5 ) 15735 else if ( v21->pMonsterInfo.uMovementType == 5 )
15740 { 15736 {
15741 v57 = Actor::GetDirectionInfo(a1, 4u, &v72, 0); 15737 v57 = Actor::GetDirectionInfo(a1, 4u, &v72, 0);
15742 v58 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333; 15738 v58 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15743 memcpy(&v74, v57, sizeof(v74)); 15739 memcpy(&v74, v57, sizeof(v74));
15744 memcpy(&pDir, &v74, sizeof(pDir)); 15740 memcpy(&pDir, &v74, sizeof(pDir));
15745 v64 = (signed __int64)v58; 15741 v64 = (signed __int64)v58;
15746 Actor::AI_Stand(actor_id, 4, v64, &pDir); 15742 Actor::AI_Stand(actor_id, 4, v64, &pDir);
15747 continue; 15743 }
15748 }
15749 continue;
15750
15751 } 15744 }
15752 if ( !v21->pMonsterInfo.uMissleAttack2Type ) 15745 else if ( !v21->pMonsterInfo.uMissleAttack2Type )
15753 { 15746 {
15754 v56 = v80 * 307.2; 15747 v56 = v80 * 307.2;
15755 if ( (double)v81 >= v56 ) 15748 if ( (double)v81 >= v56 )
15756 { 15749 {
15757 if ( v81 >= 1024 ) 15750 if ( v81 >= 1024 )
15759 if ( v21->pMonsterInfo.uMovementType == 5 ) 15752 if ( v21->pMonsterInfo.uMovementType == 5 )
15760 { 15753 {
15761 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333; 15754 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15762 v64 = (signed __int64)v47; 15755 v64 = (signed __int64)v47;
15763 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir); 15756 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15764 continue;
15765 } 15757 }
15766 v63 = 256; 15758 else
15767 Actor::_402686(actor_id, actor_pid, v63, &pDir); 15759 {
15768 continue; 15760 Actor::_402686(actor_id, actor_pid, 256, &pDir);
15761 }
15769 } 15762 }
15770 if ( v21->pMonsterInfo.uMovementType == 5 ) 15763 else if ( v21->pMonsterInfo.uMovementType == 5 )
15771 { 15764 {
15772 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333; 15765 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15773 v64 = (signed __int64)v47; 15766 v64 = (signed __int64)v47;
15774 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir); 15767 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15775 continue;
15776 } 15768 }
15777 v70 = (signed __int64)v56; 15769 else
15778 v62 = &pDir; 15770 {
15779 v59 = 0; 15771 v70 = (signed __int64)v56;
15780 Actor::_40281C(actor_id, actor_pid, v59, v62, v70); 15772 Actor::_40281C(actor_id, actor_pid, 0, &pDir, v70);
15781 continue; 15773 }
15782
15783 } 15774 }
15784 if ( (signed int)v21->pMonsterInfo.uRecoveryTime > 0 ) 15775 else if ( (signed int)v21->pMonsterInfo.uRecoveryTime > 0 )
15785 { 15776 {
15786 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333; 15777 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15787 v64 = (signed __int64)v47; 15778 v64 = (signed __int64)v47;
15788 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir); 15779 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15789 continue;
15790 } 15780 }
15791 Actor::_403C6C(actor_id, actor_pid, &pDir); 15781 else
15792 continue; 15782 {
15783 Actor::_403C6C(actor_id, actor_pid, &pDir);
15784 }
15793 } 15785 }
15794 if ( (signed int)v21->pMonsterInfo.uRecoveryTime > 0 ) 15786 else if ( (signed int)v21->pMonsterInfo.uRecoveryTime > 0 )
15795 { 15787 {
15796 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333; 15788 v47 = (double)(signed int)v21->pMonsterInfo.uRecoveryTime * 2.133333333333333;
15797 if ( !(v54 | v55) || v21->pMonsterInfo.uMovementType == 5 ) 15789 if ( !(v54 | v55) || v21->pMonsterInfo.uMovementType == 5 )
15798 { 15790 {
15799 v64 = (signed __int64)v47; 15791 v64 = (signed __int64)v47;
15800 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir); 15792 Actor::AI_Stand(actor_id, actor_pid, v64, &pDir);
15801 continue;
15802 } 15793 }
15803 Actor::_402AD7(actor_id, actor_pid, actor_id, (signed __int64)v47, &pDir); 15794 else
15804 continue; 15795 {
15796 Actor::_402AD7(actor_id, actor_pid, actor_id, (signed __int64)v47, &pDir);
15797 }
15805 } 15798 }
15806 Actor::_40368B(actor_id, actor_pid, &pDir); 15799 else
15800 {
15801 Actor::_40368B(actor_id, actor_pid, &pDir);
15802 }
15807 } 15803 }
15808 } 15804 }
15809 } 15805 }
15810 15806
15811 //----- (0040261D) -------------------------------------------------------- 15807 //----- (0040261D) --------------------------------------------------------