@@ -53,6 +53,7 @@ void CVehicleRPCs::LoadFunctions()
53
53
AddHandler (SET_VEHICLE_SIRENS, SetVehicleSirens, " setVehicleSirens" );
54
54
AddHandler (SET_VEHICLE_PLATE_TEXT, SetVehiclePlateText, " setVehiclePlateText" );
55
55
AddHandler (SPAWN_VEHICLE_FLYING_COMPONENT, SpawnVehicleFlyingComponent, " spawnVehicleFlyingComponent" );
56
+ AddHandler (SET_VEHICLE_NITRO_ACTIVATED, SetVehicleNitroActivated, " SetVehicleNitroActivated" );
56
57
}
57
58
58
59
void CVehicleRPCs::DestroyAllVehicles (NetBitStreamInterface& bitStream)
@@ -667,3 +668,26 @@ void CVehicleRPCs::SpawnVehicleFlyingComponent(CClientEntity* const sourceEntity
667
668
if (bitStream.Read (nodeIndex) && bitStream.Read (collisionType) && bitStream.Read (removalTime))
668
669
vehicle->SpawnFlyingComponent (static_cast <eCarNodes>(nodeIndex), static_cast <eCarComponentCollisionTypes>(collisionType), removalTime);
669
670
}
671
+
672
+ void CVehicleRPCs::SetVehicleNitroActivated (CClientEntity* pSourceEntity, NetBitStreamInterface& bitStream)
673
+ {
674
+ bool state = bitStream.ReadBit ();
675
+
676
+ CClientVehicle* vehicle = m_pVehicleManager->Get (pSourceEntity->GetID ());
677
+ if (!vehicle)
678
+ return ;
679
+
680
+ if (!vehicle->IsNitroInstalled ())
681
+ return ;
682
+
683
+ // If nitro level < 0, nitro is activated. (until nitro level reaches -1, at that point it will become 0 and increase instead of decrease)
684
+ if ((vehicle->GetNitroLevel () < 0 .0f ) == state)
685
+ return ;
686
+
687
+ // Apply nitro level change
688
+ if (state)
689
+ vehicle->SetNitroLevel (vehicle->GetNitroLevel () - 1 .0001f );
690
+ else
691
+ vehicle->SetNitroLevel (vehicle->GetNitroLevel () + 1 .0001f );
692
+ }
693
+
0 commit comments