| 4629 | } |
| 4630 | |
| 4631 | void cFodder::Sprite_Handle_Player_Enter_Vehicle(sSprite* pSprite) { |
| 4632 | // Have a target vehicle? |
| 4633 | if (!pSprite->field_66) |
| 4634 | return; |
| 4635 | |
| 4636 | sSprite* Vehicle = pSprite->field_66; |
| 4637 | |
| 4638 | int16 VehicleX = Vehicle->field_0 + 0x10; |
| 4639 | |
| 4640 | if (Vehicle->field_6F == eVehicle_Turret_Cannon || Vehicle->field_6F == eVehicle_Turret_Missile) |
| 4641 | VehicleX -= 0x0C; |
| 4642 | |
| 4643 | int16 VehicleY = Vehicle->field_4 - 9; |
| 4644 | int16 SoldierX = pSprite->field_0 + 4; |
| 4645 | int16 SoldierY = pSprite->field_4; |
| 4646 | |
| 4647 | // Is the sprite close enough to enter the vehicle? |
| 4648 | int16 Distance = 0x1F; |
| 4649 | if (Map_Get_Distance_BetweenPoints(VehicleX, VehicleY, SoldierX, Distance, SoldierY) >= 0x0D) |
| 4650 | return; |
| 4651 | |
| 4652 | // Enter the vehicle |
| 4653 | pSprite->field_6A_sprite = Vehicle; |
| 4654 | pSprite->field_6E = -1; |
| 4655 | sSprite* Data20 = 0; |
| 4656 | |
| 4657 | sub_305D5(Data20); |
| 4658 | |
| 4659 | // First member of current player squad |
| 4660 | sSprite* eax = mSquads[pSprite->field_32][0]; |
| 4661 | |
| 4662 | // Is this the first member of the squad |
| 4663 | if (eax != pSprite) |
| 4664 | return; |
| 4665 | |
| 4666 | mSquad_EnteredVehicleTimer[pSprite->field_32] = 0x190; |
| 4667 | } |
| 4668 | |
| 4669 | void cFodder::Mouse_Cursor_Update() { |
| 4670 | int16 Data0, Data4, Data8; |
nothing calls this directly
no outgoing calls
no test coverage detected