| 13360 | } |
| 13361 | |
| 13362 | void cFodder::Sprite_Handle_Civilian_Spear2(sSprite* pSprite) { |
| 13363 | int16 Data0, Data4, Data8, DataC, Data1C; |
| 13364 | |
| 13365 | ++pSprite->field_64; |
| 13366 | |
| 13367 | if (!pSprite->field_12) |
| 13368 | goto loc_1D0F6; |
| 13369 | |
| 13370 | pSprite->field_12 -= 1; |
| 13371 | pSprite->field_3A += 1; |
| 13372 | |
| 13373 | if (pSprite->field_44) |
| 13374 | goto loc_1CFF7; |
| 13375 | |
| 13376 | Sprite_XY_Store(pSprite); |
| 13377 | Data1C = pSprite->field_10; |
| 13378 | |
| 13379 | if (pSprite->field_59) |
| 13380 | goto loc_1CF3E; |
| 13381 | |
| 13382 | Data0 = pSprite->field_2E; |
| 13383 | Data4 = pSprite->field_30; |
| 13384 | |
| 13385 | Sprite_Direction_Between_Points(pSprite, Data0, Data4); |
| 13386 | Data0 = pSprite->field_50; |
| 13387 | |
| 13388 | if (Data0) { |
| 13389 | pSprite->field_10 += Data0; |
| 13390 | pSprite->field_10 &= 0x1FE; |
| 13391 | pSprite->field_59 = -1; |
| 13392 | } |
| 13393 | |
| 13394 | if (pSprite->field_34 < 0) |
| 13395 | pSprite->field_34 = pSprite->field_10; |
| 13396 | |
| 13397 | loc_1CF3E:; |
| 13398 | Sprite_Movement_Calculate(pSprite); |
| 13399 | if (mSprite_Bullet_Destroy) |
| 13400 | goto loc_1D17A; |
| 13401 | |
| 13402 | pSprite->field_36 = pSprite->field_4A; |
| 13403 | if (pSprite->field_59) |
| 13404 | goto loc_1D00F; |
| 13405 | |
| 13406 | Data0 = pSprite->field_0; |
| 13407 | Data4 = pSprite->field_4; |
| 13408 | Data8 = pSprite->field_2E; |
| 13409 | DataC = pSprite->field_30; |
| 13410 | |
| 13411 | Map_Get_Distance_BetweenPoints_Within_Window(Data0, Data4, Data8, DataC); |
| 13412 | Data4 = pSprite->field_36; |
| 13413 | Data4 >>= 3; |
| 13414 | if (Data0 > Data4) |
| 13415 | goto loc_1D00F; |
| 13416 | |
| 13417 | pSprite->field_2C = eSprite_Draw_Second; |
| 13418 | pSprite->field_0 = pSprite->field_2E; |
| 13419 | pSprite->field_4 = pSprite->field_30; |
nothing calls this directly
no outgoing calls
no test coverage detected