MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / Sprite_Handle_Player_Enter_Vehicle

Method Sprite_Handle_Player_Enter_Vehicle

Source/Fodder.cpp:4631–4667  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4629}
4630
4631void 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
4669void cFodder::Mouse_Cursor_Update() {
4670 int16 Data0, Data4, Data8;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected