| 12697 | } |
| 12698 | |
| 12699 | void cFodder::Sprite_Handle_Sparks(sSprite* pSprite) { |
| 12700 | Sprite_Movement_Calculate(pSprite); |
| 12701 | int32 Data0 = (int32)pSprite->field_1A; |
| 12702 | |
| 12703 | Data0 += pSprite->field_1E; |
| 12704 | |
| 12705 | pSprite->field_1E_Big = Data0; |
| 12706 | |
| 12707 | if (pSprite->field_1E_Big < 0) { |
| 12708 | pSprite->field_1E_Big = 0; |
| 12709 | Data0 = -Data0; |
| 12710 | Data0 >>= 1; |
| 12711 | } |
| 12712 | |
| 12713 | Data0 -= 0x22000; |
| 12714 | pSprite->field_1A = Data0; |
| 12715 | |
| 12716 | Data0 = Data0 >> 16; |
| 12717 | if (!pSprite->field_A) |
| 12718 | goto loc_1C248; |
| 12719 | |
| 12720 | if (pSprite->field_20) |
| 12721 | goto loc_1C262; |
| 12722 | |
| 12723 | if (Data0 > 1) |
| 12724 | goto loc_1C262; |
| 12725 | |
| 12726 | loc_1C248:; |
| 12727 | pSprite->field_A++; |
| 12728 | if (pSprite->field_A >= 3) { |
| 12729 | Sprite_Destroy_Wrapper(pSprite); |
| 12730 | return; |
| 12731 | } |
| 12732 | |
| 12733 | loc_1C262:; |
| 12734 | Sprite_Create_FireTrail(pSprite); |
| 12735 | } |
| 12736 | |
| 12737 | void cFodder::Sprite_Handle_FireTrail(sSprite* pSprite) { |
| 12738 | pSprite->field_2A += 1; |
nothing calls this directly
no outgoing calls
no test coverage detected