Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Nikolay Korolev 2020-05-02 21:31:41 +03:00
commit b095bc1b5a
3 changed files with 28 additions and 42 deletions

View File

@ -8865,8 +8865,8 @@ cAudioManager::ProcessVehicleSkidding(cVehicleParams *params)
CAutomobile *automobile; CAutomobile *automobile;
cTransmission *transmission; cTransmission *transmission;
int32 emittingVol; int32 emittingVol;
float newSkidVal = 0.f; float newSkidVal = 0.0f;
float skidVal = 0.f; float skidVal = 0.0f;
if (params->m_fDistance >= 1600.f) if (params->m_fDistance >= 1600.f)
return; return;
@ -8875,47 +8875,36 @@ cAudioManager::ProcessVehicleSkidding(cVehicleParams *params)
return; return;
CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance); CalculateDistance(params->m_bDistanceCalculated, params->m_fDistance);
for (int32 i = 0; i < ARRAY_SIZE(automobile->m_aWheelState); i++) { for (int32 i = 0; i < ARRAY_SIZE(automobile->m_aWheelState); i++) {
if (!automobile->m_aWheelState[i] || automobile->Damage.GetWheelStatus(i) == WHEEL_STATUS_MISSING) if (automobile->m_aWheelState[i] == WHEEL_STATE_NORMAL || automobile->Damage.GetWheelStatus(i) == WHEEL_STATUS_MISSING)
continue; continue;
transmission = params->m_pTransmission; transmission = params->m_pTransmission;
if (transmission->nDriveType == '4') { switch (transmission->nDriveType)
{
case '4':
newSkidVal = GetVehicleDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange); newSkidVal = GetVehicleDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange);
if (newSkidVal > skidVal) break;
skidVal = newSkidVal; case 'F':
continue; if (i == CARWHEEL_FRONT_LEFT || i == CARWHEEL_FRONT_RIGHT)
} newSkidVal = GetVehicleDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange);
if (transmission->nDriveType != 'F') { else
if (transmission->nDriveType != 'R') {
if (newSkidVal > skidVal)
skidVal = newSkidVal;
continue;
}
if (i != 1 && i != 3) {
newSkidVal = GetVehicleNonDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange); newSkidVal = GetVehicleNonDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange);
if (newSkidVal > skidVal) break;
skidVal = newSkidVal; case 'R':
continue; if (i == CARWHEEL_REAR_LEFT || i == CARWHEEL_REAR_RIGHT)
} newSkidVal = GetVehicleDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange);
newSkidVal = GetVehicleDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange); else
if (newSkidVal > skidVal) newSkidVal = GetVehicleNonDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange);
skidVal = newSkidVal; break;
continue; default:
break;
} }
if (i == 0 || i == 2) { skidVal = Max(skidVal, newSkidVal);
newSkidVal = GetVehicleDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange);
if (newSkidVal > skidVal)
skidVal = newSkidVal;
continue;
}
newSkidVal = GetVehicleNonDriveWheelSkidValue(i, automobile, transmission, params->m_fVelocityChange);
if (newSkidVal > skidVal)
skidVal = newSkidVal;
} }
if (skidVal > 0.0f) { if (skidVal > 0.0f) {
emittingVol = 50.f * skidVal; emittingVol = 50.f * skidVal;
m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, 40.f, m_sQueueSample.m_fDistance); m_sQueueSample.m_nVolume = ComputeVolume(emittingVol, 40.f, m_sQueueSample.m_fDistance);
if (m_sQueueSample.m_nVolume) { if (m_sQueueSample.m_nVolume != 0) {
m_sQueueSample.m_nCounter = 3; m_sQueueSample.m_nCounter = 3;
switch (params->m_pVehicle->m_nSurfaceTouched) { switch (params->m_pVehicle->m_nSurfaceTouched) {
case SURFACE_GRASS: case SURFACE_GRASS:
@ -9242,10 +9231,7 @@ cAudioManager::Service()
void void
cAudioManager::ServiceSoundEffects() cAudioManager::ServiceSoundEffects()
{ {
if (m_FrameCounter++ % 5) m_bFifthFrameFlag = (m_FrameCounter++ % 5) == 0;
m_bFifthFrameFlag = false;
else
m_bFifthFrameFlag = true;
if (m_nUserPause && !m_nPreviousUserPause) { if (m_nUserPause && !m_nPreviousUserPause) {
for (int32 i = 0; i < allChannels; i++) for (int32 i = 0; i < allChannels; i++)
SampleManager.StopChannel(i); SampleManager.StopChannel(i);

View File

@ -5617,9 +5617,9 @@ CMenuManager::ConstructStatLine(int rowIdx)
STAT_LINE("PER_COM", &percentCompleted, false, nil); STAT_LINE("PER_COM", &percentCompleted, false, nil);
STAT_LINE("NMISON", &CStats::MissionsGiven, false, nil); STAT_LINE("NMISON", &CStats::MissionsGiven, false, nil);
STAT_LINE("FEST_MP", &CStats::MissionsPassed, 0, &CStats::TotalNumberMissions); STAT_LINE("FEST_MP", &CStats::MissionsPassed, false, &CStats::TotalNumberMissions);
if (CGame::nastyGame) { if (CGame::nastyGame) {
STAT_LINE("FEST_RP", &CStats::NumberKillFrenziesPassed, 0, &CStats::TotalNumberKillFrenzies); STAT_LINE("FEST_RP", &CStats::NumberKillFrenziesPassed, false, &CStats::TotalNumberKillFrenzies);
} }
CPlayerInfo &player = CWorld::Players[CWorld::PlayerInFocus]; CPlayerInfo &player = CWorld::Players[CWorld::PlayerInFocus];
@ -5628,8 +5628,8 @@ CMenuManager::ConstructStatLine(int rowIdx)
packagesPercent = player.m_nCollectedPackages * 100.0f / player.m_nTotalPackages; packagesPercent = player.m_nCollectedPackages * 100.0f / player.m_nTotalPackages;
int nPackagesPercent = packagesPercent; int nPackagesPercent = packagesPercent;
STAT_LINE("PERPIC", &nPackagesPercent, 0, &(nTemp = 100)); STAT_LINE("PERPIC", &nPackagesPercent, false, &(nTemp = 100));
STAT_LINE("NOUNIF", &CStats::TotalNumberOfUniqueJumps, 0, &CStats::NumberOfUniqueJumpsFound); STAT_LINE("NOUNIF", &CStats::NumberOfUniqueJumpsFound, false, &CStats::TotalNumberOfUniqueJumps);
STAT_LINE("DAYSPS", &CStats::DaysPassed, false, nil); STAT_LINE("DAYSPS", &CStats::DaysPassed, false, nil);
if (CGame::nastyGame) { if (CGame::nastyGame) {
STAT_LINE("PE_WAST", &CStats::PeopleKilledByPlayer, false, nil); STAT_LINE("PE_WAST", &CStats::PeopleKilledByPlayer, false, nil);

View File

@ -241,7 +241,7 @@ enum Config {
#define CAMERA_PICKUP #define CAMERA_PICKUP
// Peds // Peds
#define PED_SKIN // support for skinned geometry on peds //#define PED_SKIN // support for skinned geometry on peds
#define ANIMATE_PED_COL_MODEL #define ANIMATE_PED_COL_MODEL
#define VC_PED_PORTS // various ports from VC's CPed, mostly subtle #define VC_PED_PORTS // various ports from VC's CPed, mostly subtle
// #define NEW_WALK_AROUND_ALGORITHM // to make walking around vehicles/objects less awkward // #define NEW_WALK_AROUND_ALGORITHM // to make walking around vehicles/objects less awkward