| 5626 | } |
| 5627 | |
| 5628 | void cFodder::Sprite_Handle_Turret(sSprite* pSprite) { |
| 5629 | sSprite* Data28 = 0; |
| 5630 | sSprite* Data34 = 0; |
| 5631 | int16 Data0, Data4, Data8, DataC, Data10; |
| 5632 | |
| 5633 | // Turrets in Moors / Interior can't be destroyed |
| 5634 | if (mVersionCurrent->isCannonFodder1()) { |
| 5635 | if (mMapLoaded->getTileType() == eTileTypes_Moors || mMapLoaded->getTileType() == eTileTypes_Int) { |
| 5636 | |
| 5637 | if (pSprite->field_38 == eSprite_Anim_Die1) |
| 5638 | pSprite->field_38 = eSprite_Anim_None; |
| 5639 | } |
| 5640 | } |
| 5641 | |
| 5642 | if (pSprite->field_38 == eSprite_Anim_Die3 || pSprite->field_38 == eSprite_Anim_Die1) { |
| 5643 | |
| 5644 | pSprite->field_18 = eSprite_Explosion; |
| 5645 | pSprite->field_26 = 0x1F45; |
| 5646 | pSprite->field_28 = -2; |
| 5647 | if (pSprite->field_22 == eSprite_PersonType_Human) |
| 5648 | return; |
| 5649 | |
| 5650 | Sprite_Destroy(pSprite + 1); |
| 5651 | return; |
| 5652 | } |
| 5653 | |
| 5654 | //loc_23F70 |
| 5655 | pSprite->field_8 = 0xD2; |
| 5656 | pSprite->field_65 = -1; |
| 5657 | if (pSprite->field_22 == eSprite_PersonType_Human) |
| 5658 | goto loc_24075; |
| 5659 | |
| 5660 | mTurretFires_HomingMissile = 0; |
| 5661 | Data0 = eSprite_Player; |
| 5662 | Data4 = -1; |
| 5663 | Data8 = -1; |
| 5664 | DataC = -1; |
| 5665 | Data10 = -1; |
| 5666 | |
| 5667 | if (mGame_Data.mGamePhase_Data.mGoals_Remaining[eObjective_Get_Civilian_Home - 1]) { |
| 5668 | Data4 = eSprite_Civilian; |
| 5669 | Data8 = eSprite_Civilian2; |
| 5670 | DataC = eSprite_Civilian_Spear; |
| 5671 | Data10 = -1; |
| 5672 | } |
| 5673 | |
| 5674 | if (Sprite_Find_By_Types(pSprite, Data0, Data4, Data8, DataC, Data10, Data28)) |
| 5675 | goto loc_240F3; |
| 5676 | |
| 5677 | if (mSprite_Find_Distance >= 0x28) { |
| 5678 | |
| 5679 | Data0 = tool_RandomGet(); |
| 5680 | if (mGame_Data.mGamePhase_Data.mSprite_Enemy_AggressionAverage < 5) |
| 5681 | Data0 &= 0x3F; |
| 5682 | else |
| 5683 | Data0 &= 0x1F; |
| 5684 | |
| 5685 | if (Data0 == 4) |
nothing calls this directly
no test coverage detected