Noskillx's PR + fix .set loading

This commit is contained in:
eray orçunus 2020-07-06 19:26:06 +03:00
parent 70fa4ab79c
commit c483a044b5
10 changed files with 90 additions and 76 deletions

View File

@ -112,25 +112,69 @@ cDMAudio::Get3DProviderName(uint8 id)
return AudioManager.Get3DProviderName(id); return AudioManager.Get3DProviderName(id);
} }
// TODO(Miami): Content of this moved to cSampleManager or cAudioManager
int8 cDMAudio::AutoDetect3DProviders(void) int8 cDMAudio::AutoDetect3DProviders(void)
{ {
if (!AudioManager.IsAudioInitialised())
return -1;
int eax = -1, eax2 = -1, eax3 = -1, ds3dh = -1, ds3ds = -1;
for ( int32 i = 0; i < GetNum3DProvidersAvailable(); i++ ) for ( int32 i = 0; i < GetNum3DProvidersAvailable(); i++ )
{ {
wchar buff[64]; char *providername = Get3DProviderName(i);
char *name = Get3DProviderName(i);
AsciiToUnicode(name, buff);
char *providername = UnicodeToAscii(buff);
strupr(providername); strupr(providername);
#if defined(AUDIO_MSS)
if ( !strcmp(providername, "MILES FAST 2D POSITIONAL AUDIO") ) #if defined(AUDIO_OAL)
return i; if (!strcmp(providername, "OPENAL SOFT")) {
#elif defined(AUDIO_OAL) SetCurrent3DProvider(i);
if ( !strcmp(providername, "OPENAL SOFT") ) if (GetCurrent3DProviderIndex() == i)
return i; return i;
}
#else
if (!strcmp(providername, "CREATIVE LABS EAX 3 (TM)")) {
SetCurrent3DProvider(i);
if (GetCurrent3DProviderIndex() == i) {
eax3 = i;
}
}
if (!strcmp(providername, "CREATIVE LABS EAX 2 (TM)")) {
SetCurrent3DProvider(i);
if (GetCurrent3DProviderIndex() == i)
eax2 = i;
}
if (!strcmp(providername, "CREATIVE LABS EAX (TM)")) {
SetCurrent3DProvider(i);
if (GetCurrent3DProviderIndex() == i)
eax = i;
}
if (!strcmp(providername, "DIRECTSOUND3D HARDWARE SUPPORT")) {
SetCurrent3DProvider(i);
if (GetCurrent3DProviderIndex() == i)
ds3dh = i;
}
if (!strcmp(providername, "DIRECTSOUND3D SOFTWARE EMULATION")) {
SetCurrent3DProvider(i);
if (GetCurrent3DProviderIndex() == i)
ds3ds = i;
}
#endif #endif
} }
if (eax3 != -1)
return eax3;
if (eax2 != -1)
return eax2;
if (eax != -1)
return eax;
if (ds3dh != -1)
return ds3dh;
if (ds3ds != -1)
return ds3ds;
return -1; return -1;
} }

View File

@ -7,6 +7,9 @@
#define AEHANDLE_IS_FAILED(h) ((h)<0) #define AEHANDLE_IS_FAILED(h) ((h)<0)
#define AEHANDLE_IS_OK(h) ((h)>=0) #define AEHANDLE_IS_OK(h) ((h)>=0)
#define NO_AUDIO_PROVIDER -3
#define AUDIO_PROVIDER_NOT_DETERMINED -99
class cAudioScriptObject; class cAudioScriptObject;
class CEntity; class CEntity;

View File

@ -1386,6 +1386,7 @@ bool CGarages::IsCarSprayable(CVehicle * pVehicle)
case MI_BARRACKS: case MI_BARRACKS:
case MI_DODO: case MI_DODO:
case MI_COACH: case MI_COACH:
case MI_FBIRANCH:
return false; return false;
default: default:
break; break;

View File

@ -269,12 +269,12 @@ CPickup::Update(CPlayerPed *player, CVehicle *vehicle, int playerId)
return true; return true;
case PICKUP_COLLECTABLE1: case PICKUP_COLLECTABLE1:
CWorld::Players[playerId].m_nCollectedPackages++; CWorld::Players[playerId].m_nCollectedPackages++;
CWorld::Players[playerId].m_nMoney += 1000; CWorld::Players[playerId].m_nMoney += 100;
if (CWorld::Players[playerId].m_nCollectedPackages == CWorld::Players[playerId].m_nTotalPackages) { if (CWorld::Players[playerId].m_nCollectedPackages == CWorld::Players[playerId].m_nTotalPackages) {
printf("All collectables have been picked up\n"); printf("All collectables have been picked up\n");
CGarages::TriggerMessage("CO_ALL", -1, 5000, -1); CGarages::TriggerMessage("CO_ALL", -1, 5000, -1);
CWorld::Players[CWorld::PlayerInFocus].m_nMoney += 1000000; CWorld::Players[CWorld::PlayerInFocus].m_nMoney += 100000;
} else } else
CGarages::TriggerMessage("CO_ONE", CWorld::Players[CWorld::PlayerInFocus].m_nCollectedPackages, 5000, CWorld::Players[CWorld::PlayerInFocus].m_nTotalPackages); CGarages::TriggerMessage("CO_ONE", CWorld::Players[CWorld::PlayerInFocus].m_nCollectedPackages, 5000, CWorld::Players[CWorld::PlayerInFocus].m_nTotalPackages);

View File

@ -131,6 +131,7 @@ void CControllerConfigManager::SaveSettings(int32 file)
void CControllerConfigManager::LoadSettings(int32 file) void CControllerConfigManager::LoadSettings(int32 file)
{ {
bool bValid = true; bool bValid = true;
int nVersion = 0;
if (file) if (file)
{ {
@ -139,11 +140,13 @@ void CControllerConfigManager::LoadSettings(int32 file)
if (!strncmp(buff, TopLineEmptyFile, sizeof(TopLineEmptyFile)-1)) if (!strncmp(buff, TopLineEmptyFile, sizeof(TopLineEmptyFile)-1))
bValid = false; bValid = false;
else else {
CFileMgr::Seek(file, 0, 0); CFileMgr::Seek(file, 0, 0);
CFileMgr::Read(file, (char*)&nVersion, sizeof(nVersion));
}
} }
if (bValid) if (bValid && nVersion >= 3)
{ {
ControlsManager.MakeControllerActionsBlank(); ControlsManager.MakeControllerActionsBlank();

View File

@ -41,9 +41,6 @@
// TODO(Miami): Remove that!! That was my map implementation for III, instead use MAP_ENHACEMENTS on some places // TODO(Miami): Remove that!! That was my map implementation for III, instead use MAP_ENHACEMENTS on some places
#define CUSTOM_MAP #define CUSTOM_MAP
// TODO(Miami): This is -3 on VC but still -1 on AudioManager?!? What the hell?
#define INVALID_AUDIO_PROVIDER -1
// Similar story to Hud.cpp: // Similar story to Hud.cpp:
// Game has colors inlined in code. // Game has colors inlined in code.
// For easier modification we collect them here: // For easier modification we collect them here:
@ -355,7 +352,7 @@ CMenuManager::ThingsToDoBeforeLeavingPage()
if ((m_nCurrScreen == MENUPAGE_SKIN_SELECT) && strcmp(m_aSkinName, m_PrefsSkinFile) != 0) { if ((m_nCurrScreen == MENUPAGE_SKIN_SELECT) && strcmp(m_aSkinName, m_PrefsSkinFile) != 0) {
CWorld::Players[0].SetPlayerSkin(m_PrefsSkinFile); CWorld::Players[0].SetPlayerSkin(m_PrefsSkinFile);
} else if (m_nCurrScreen == MENUPAGE_SOUND_SETTINGS) { } else if (m_nCurrScreen == MENUPAGE_SOUND_SETTINGS) {
if (m_nPrefsAudio3DProviderIndex != INVALID_AUDIO_PROVIDER) if (m_nPrefsAudio3DProviderIndex != NO_AUDIO_PROVIDER)
m_nPrefsAudio3DProviderIndex = DMAudio.GetCurrent3DProviderIndex(); m_nPrefsAudio3DProviderIndex = DMAudio.GetCurrent3DProviderIndex();
#ifdef TIDY_UP_PBP #ifdef TIDY_UP_PBP
DMAudio.StopFrontEndTrack(); DMAudio.StopFrontEndTrack();
@ -388,7 +385,7 @@ CMenuManager::CMenuManager()
m_PrefsRadioStation = 0; m_PrefsRadioStation = 0;
m_PrefsStereoMono = 1; m_PrefsStereoMono = 1;
m_PrefsBrightness = 256; m_PrefsBrightness = 256;
m_PrefsLOD = 1.2f; m_PrefsLOD = CRenderer::ms_lodDistScale;
m_KeyPressedCode = -1; m_KeyPressedCode = -1;
m_bFrontEnd_ReloadObrTxtGxt = false; m_bFrontEnd_ReloadObrTxtGxt = false;
m_PrefsMP3BoostVolume = 0; m_PrefsMP3BoostVolume = 0;
@ -421,7 +418,7 @@ CMenuManager::CMenuManager()
m_nScrollbarTopMargin = 0.0f; m_nScrollbarTopMargin = 0.0f;
m_nSelectedListRow = 0; m_nSelectedListRow = 0;
m_nSkinsTotal = 0; m_nSkinsTotal = 0;
m_nPrefsAudio3DProviderIndex = -99; m_nPrefsAudio3DProviderIndex = AUDIO_PROVIDER_NOT_DETERMINED;
m_bGameNotLoaded = true; m_bGameNotLoaded = true;
m_nMousePosX = m_nMouseTempPosX; m_nMousePosX = m_nMouseTempPosX;
m_nMousePosY = m_nMouseTempPosY; m_nMousePosY = m_nMouseTempPosY;
@ -643,7 +640,6 @@ CMenuManager::CheckSliderMovement(int value)
case MENUACTION_MUSICVOLUME: case MENUACTION_MUSICVOLUME:
m_PrefsMusicVolume += value * (128/32); m_PrefsMusicVolume += value * (128/32);
m_PrefsMusicVolume = clamp(m_PrefsMusicVolume, 0, 65); m_PrefsMusicVolume = clamp(m_PrefsMusicVolume, 0, 65);
printf("%d\n", m_PrefsMusicVolume);
DMAudio.SetMusicMasterVolume(m_PrefsMusicVolume); DMAudio.SetMusicMasterVolume(m_PrefsMusicVolume);
break; break;
case MENUACTION_SFXVOLUME: case MENUACTION_SFXVOLUME:
@ -721,7 +717,7 @@ CMenuManager::DisplayHelperText(char *text)
aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action == MENUACTION_SFXVOLUME) { aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action == MENUACTION_SFXVOLUME) {
CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(10.f), SCREEN_SCALE_FROM_BOTTOM(18.f), CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(10.f), SCREEN_SCALE_FROM_BOTTOM(18.f),
m_nPrefsAudio3DProviderIndex == INVALID_AUDIO_PROVIDER ? TheText.Get("FEH_NA") : TheText.Get("FET_MIG")); m_nPrefsAudio3DProviderIndex == NO_AUDIO_PROVIDER ? TheText.Get("FEH_NA") : TheText.Get("FET_MIG"));
return; return;
} }
@ -738,7 +734,7 @@ CMenuManager::DisplayHelperText(char *text)
aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action == MENUACTION_SPEAKERCONF) { aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action == MENUACTION_SPEAKERCONF) {
CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(10.f), SCREEN_SCALE_FROM_BOTTOM(18.f), CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(10.f), SCREEN_SCALE_FROM_BOTTOM(18.f),
m_nPrefsAudio3DProviderIndex == INVALID_AUDIO_PROVIDER ? TheText.Get("FEH_NA") : TheText.Get("FET_MIG")); m_nPrefsAudio3DProviderIndex == NO_AUDIO_PROVIDER ? TheText.Get("FEH_NA") : TheText.Get("FET_MIG"));
return; return;
} }
@ -747,7 +743,7 @@ CMenuManager::DisplayHelperText(char *text)
if (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action == MENUACTION_MP3VOLUMEBOOST) { if (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action == MENUACTION_MP3VOLUMEBOOST) {
CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(10.f), SCREEN_SCALE_FROM_BOTTOM(18.f), CFont::PrintString(SCREEN_STRETCH_FROM_RIGHT(10.f), SCREEN_SCALE_FROM_BOTTOM(18.f),
m_nPrefsAudio3DProviderIndex == INVALID_AUDIO_PROVIDER ? TheText.Get("FEH_NA") : TheText.Get("FET_MIG")); m_nPrefsAudio3DProviderIndex == NO_AUDIO_PROVIDER ? TheText.Get("FEH_NA") : TheText.Get("FET_MIG"));
return; return;
} }
@ -979,7 +975,7 @@ CMenuManager::DrawStandardMenus(bool drawCurrScreen)
leftText = TheText.Get(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName); leftText = TheText.Get(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName);
} }
if (m_nPrefsAudio3DProviderIndex == INVALID_AUDIO_PROVIDER) { if (m_nPrefsAudio3DProviderIndex == NO_AUDIO_PROVIDER) {
if (strncmp(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName, "FEO_AUD", 8) == 0) { if (strncmp(aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName, "FEO_AUD", 8) == 0) {
CFont::SetColor(CRGBA(DARKMENUOPTION_COLOR.r, DARKMENUOPTION_COLOR.g, DARKMENUOPTION_COLOR.b, FadeIn(255))); CFont::SetColor(CRGBA(DARKMENUOPTION_COLOR.r, DARKMENUOPTION_COLOR.g, DARKMENUOPTION_COLOR.b, FadeIn(255)));
} }
@ -1045,7 +1041,7 @@ CMenuManager::DrawStandardMenus(bool drawCurrScreen)
case MENUACTION_MUSICVOLUME: case MENUACTION_MUSICVOLUME:
case MENUACTION_SFXVOLUME: case MENUACTION_SFXVOLUME:
if (m_nPrefsAudio3DProviderIndex == INVALID_AUDIO_PROVIDER) if (m_nPrefsAudio3DProviderIndex == NO_AUDIO_PROVIDER)
rightText = TheText.Get("FEA_NAH"); rightText = TheText.Get("FEA_NAH");
break; break;
@ -1112,7 +1108,7 @@ CMenuManager::DrawStandardMenus(bool drawCurrScreen)
break; break;
#endif #endif
case MENUACTION_AUDIOHW: case MENUACTION_AUDIOHW:
if (m_nPrefsAudio3DProviderIndex == INVALID_AUDIO_PROVIDER) if (m_nPrefsAudio3DProviderIndex == NO_AUDIO_PROVIDER)
rightText = TheText.Get("FEA_NAH"); rightText = TheText.Get("FEA_NAH");
else if (m_nPrefsAudio3DProviderIndex == -1) else if (m_nPrefsAudio3DProviderIndex == -1)
rightText = TheText.Get("FEA_ADP"); rightText = TheText.Get("FEA_ADP");
@ -1130,7 +1126,7 @@ CMenuManager::DrawStandardMenus(bool drawCurrScreen)
} }
break; break;
case MENUACTION_SPEAKERCONF: { case MENUACTION_SPEAKERCONF: {
if (m_nPrefsAudio3DProviderIndex == INVALID_AUDIO_PROVIDER) if (m_nPrefsAudio3DProviderIndex == NO_AUDIO_PROVIDER)
rightText = TheText.Get("FEA_NAH"); rightText = TheText.Get("FEA_NAH");
else { else {
switch (m_PrefsSpeakers) { switch (m_PrefsSpeakers) {
@ -1305,7 +1301,7 @@ CMenuManager::DrawStandardMenus(bool drawCurrScreen)
} }
if (m_nPrefsAudio3DProviderIndex != DMAudio.GetCurrent3DProviderIndex()) { if (m_nPrefsAudio3DProviderIndex != DMAudio.GetCurrent3DProviderIndex()) {
if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEA_3DH") != 0 if (strcmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEA_3DH") != 0
&& m_nCurrScreen == MENUPAGE_SOUND_SETTINGS && m_nPrefsAudio3DProviderIndex != INVALID_AUDIO_PROVIDER) { && m_nCurrScreen == MENUPAGE_SOUND_SETTINGS && m_nPrefsAudio3DProviderIndex != NO_AUDIO_PROVIDER) {
m_nPrefsAudio3DProviderIndex = DMAudio.GetCurrent3DProviderIndex(); m_nPrefsAudio3DProviderIndex = DMAudio.GetCurrent3DProviderIndex();
SetHelperText(3); SetHelperText(3);
@ -1338,11 +1334,11 @@ CMenuManager::DrawStandardMenus(bool drawCurrScreen)
ProcessSlider((m_PrefsLOD - 0.925f) / 0.875f, 99.0f, HOVEROPTION_INCREASE_DRAWDIST, HOVEROPTION_DECREASE_DRAWDIST, MENU_X_LEFT_ALIGNED(170.0f), SCREEN_WIDTH); ProcessSlider((m_PrefsLOD - 0.925f) / 0.875f, 99.0f, HOVEROPTION_INCREASE_DRAWDIST, HOVEROPTION_DECREASE_DRAWDIST, MENU_X_LEFT_ALIGNED(170.0f), SCREEN_WIDTH);
break; break;
case MENUACTION_MUSICVOLUME: case MENUACTION_MUSICVOLUME:
if(m_nPrefsAudio3DProviderIndex != INVALID_AUDIO_PROVIDER) if(m_nPrefsAudio3DProviderIndex != NO_AUDIO_PROVIDER)
ProcessSlider(m_PrefsMusicVolume / 64.0f, 70.0f, HOVEROPTION_INCREASE_MUSICVOLUME, HOVEROPTION_DECREASE_MUSICVOLUME, MENU_X_LEFT_ALIGNED(170.0f), SCREEN_WIDTH); ProcessSlider(m_PrefsMusicVolume / 64.0f, 70.0f, HOVEROPTION_INCREASE_MUSICVOLUME, HOVEROPTION_DECREASE_MUSICVOLUME, MENU_X_LEFT_ALIGNED(170.0f), SCREEN_WIDTH);
break; break;
case MENUACTION_SFXVOLUME: case MENUACTION_SFXVOLUME:
if (m_nPrefsAudio3DProviderIndex != INVALID_AUDIO_PROVIDER) if (m_nPrefsAudio3DProviderIndex != NO_AUDIO_PROVIDER)
ProcessSlider(m_PrefsSfxVolume / 64.0f, 99.0f, HOVEROPTION_INCREASE_SFXVOLUME, HOVEROPTION_DECREASE_SFXVOLUME, MENU_X_LEFT_ALIGNED(170.0f), SCREEN_WIDTH); ProcessSlider(m_PrefsSfxVolume / 64.0f, 99.0f, HOVEROPTION_INCREASE_SFXVOLUME, HOVEROPTION_DECREASE_SFXVOLUME, MENU_X_LEFT_ALIGNED(170.0f), SCREEN_WIDTH);
break; break;
case MENUACTION_MOUSESENS: case MENUACTION_MOUSESENS:
@ -1387,7 +1383,7 @@ CMenuManager::DrawStandardMenus(bool drawCurrScreen)
DisplayHelperText(nil); DisplayHelperText(nil);
break; break;
case MENUPAGE_OPTIONS: case MENUPAGE_OPTIONS:
if (m_nPrefsAudio3DProviderIndex == INVALID_AUDIO_PROVIDER && aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action == MENUACTION_LOADRADIO) if (m_nPrefsAudio3DProviderIndex == NO_AUDIO_PROVIDER && aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action == MENUACTION_LOADRADIO)
DisplayHelperText("FEA_NAH"); DisplayHelperText("FEA_NAH");
break; break;
} }
@ -3182,7 +3178,7 @@ CMenuManager::LoadSettings()
#endif #endif
CRenderer::ms_lodDistScale = m_PrefsLOD; CRenderer::ms_lodDistScale = m_PrefsLOD;
if (m_nPrefsAudio3DProviderIndex == INVALID_AUDIO_PROVIDER) if (m_nPrefsAudio3DProviderIndex == NO_AUDIO_PROVIDER)
m_nPrefsAudio3DProviderIndex = -2; m_nPrefsAudio3DProviderIndex = -2;
m_lastWorking3DAudioProvider = m_nPrefsAudio3DProviderIndex; m_lastWorking3DAudioProvider = m_nPrefsAudio3DProviderIndex;
@ -4469,7 +4465,7 @@ CMenuManager::ProcessButtonPresses(void)
case MENUACTION_AUDIOHW: case MENUACTION_AUDIOHW:
{ {
int selectedProvider = m_nPrefsAudio3DProviderIndex; int selectedProvider = m_nPrefsAudio3DProviderIndex;
if (selectedProvider != INVALID_AUDIO_PROVIDER) { if (selectedProvider != NO_AUDIO_PROVIDER) {
if (selectedProvider == -1) if (selectedProvider == -1)
selectedProvider = m_nPrefsAudio3DProviderIndex = DMAudio.AutoDetect3DProviders(); selectedProvider = m_nPrefsAudio3DProviderIndex = DMAudio.AutoDetect3DProviders();
m_nPrefsAudio3DProviderIndex = DMAudio.SetCurrent3DProvider(m_nPrefsAudio3DProviderIndex); m_nPrefsAudio3DProviderIndex = DMAudio.SetCurrent3DProvider(m_nPrefsAudio3DProviderIndex);
@ -4482,7 +4478,7 @@ CMenuManager::ProcessButtonPresses(void)
} }
case MENUACTION_SPEAKERCONF: case MENUACTION_SPEAKERCONF:
#ifndef TIDY_UP_PBP #ifndef TIDY_UP_PBP
if (m_nPrefsAudio3DProviderIndex != INVALID_AUDIO_PROVIDER) { if (m_nPrefsAudio3DProviderIndex != NO_AUDIO_PROVIDER) {
if (--m_PrefsSpeakers < 0) if (--m_PrefsSpeakers < 0)
m_PrefsSpeakers = 2; m_PrefsSpeakers = 2;
DMAudio.SetSpeakerConfig(m_PrefsSpeakers); DMAudio.SetSpeakerConfig(m_PrefsSpeakers);
@ -4770,14 +4766,14 @@ CMenuManager::ProcessButtonPresses(void)
break; break;
#endif #endif
case MENUACTION_AUDIOHW: case MENUACTION_AUDIOHW:
if (m_nPrefsAudio3DProviderIndex != INVALID_AUDIO_PROVIDER) { if (m_nPrefsAudio3DProviderIndex != NO_AUDIO_PROVIDER) {
m_nPrefsAudio3DProviderIndex += changeValueBy; m_nPrefsAudio3DProviderIndex += changeValueBy;
m_nPrefsAudio3DProviderIndex = clamp(m_nPrefsAudio3DProviderIndex, 0, DMAudio.GetNum3DProvidersAvailable() - 1); m_nPrefsAudio3DProviderIndex = clamp(m_nPrefsAudio3DProviderIndex, 0, DMAudio.GetNum3DProvidersAvailable() - 1);
} }
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_NEW_PAGE, 0); DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_NEW_PAGE, 0);
break; break;
case MENUACTION_SPEAKERCONF: case MENUACTION_SPEAKERCONF:
if (m_nPrefsAudio3DProviderIndex != INVALID_AUDIO_PROVIDER) { if (m_nPrefsAudio3DProviderIndex != NO_AUDIO_PROVIDER) {
m_PrefsSpeakers -= changeValueBy; m_PrefsSpeakers -= changeValueBy;
m_PrefsSpeakers = clamp(m_PrefsSpeakers, 0, 2); m_PrefsSpeakers = clamp(m_PrefsSpeakers, 0, 2);
DMAudio.SetSpeakerConfig(m_PrefsSpeakers); DMAudio.SetSpeakerConfig(m_PrefsSpeakers);
@ -5451,13 +5447,9 @@ CMenuManager::ConstructStatLine(int rowIdx)
if (CStats::Record4x4Mayhem > 0) { if (CStats::Record4x4Mayhem > 0) {
STAT_LINE("FEST_RM", &CStats::Record4x4Mayhem, false, nil); STAT_LINE("FEST_RM", &CStats::Record4x4Mayhem, false, nil);
} }
if (CStats::LongestFlightInDodo > 0) {
STAT_LINE("FEST_LF", &CStats::LongestFlightInDodo, false, nil);
}
if (CStats::TimeTakenDefuseMission > 0) { if (CStats::TimeTakenDefuseMission > 0) {
STAT_LINE("FEST_BD", &CStats::TimeTakenDefuseMission, false, nil); STAT_LINE("FEST_BD", &CStats::TimeTakenDefuseMission, false, nil);
} }
STAT_LINE("CAR_CRU", &CStats::CarsCrushed, false, nil);
if (CStats::HighestScores[0] > 0) { if (CStats::HighestScores[0] > 0) {
STAT_LINE("FEST_BB", nil, false, nil); STAT_LINE("FEST_BB", nil, false, nil);
@ -5485,7 +5477,6 @@ CMenuManager::ConstructStatLine(int rowIdx)
float fTemp; float fTemp;
STAT_LINE("FEST_DF", &(fTemp = CStats::DistanceTravelledOnFoot * MILES_IN_METER), true, nil); STAT_LINE("FEST_DF", &(fTemp = CStats::DistanceTravelledOnFoot * MILES_IN_METER), true, nil);
STAT_LINE("FEST_DC", &(fTemp = CStats::DistanceTravelledInVehicle * MILES_IN_METER), true, nil); STAT_LINE("FEST_DC", &(fTemp = CStats::DistanceTravelledInVehicle * MILES_IN_METER), true, nil);
STAT_LINE("MMRAIN", &CStats::mmRain, false, nil);
STAT_LINE("MXCARD", &(fTemp = CStats::MaximumJumpDistance * FEET_IN_METER), true, nil); STAT_LINE("MXCARD", &(fTemp = CStats::MaximumJumpDistance * FEET_IN_METER), true, nil);
STAT_LINE("MXCARJ", &(fTemp = CStats::MaximumJumpHeight * FEET_IN_METER), true, nil); STAT_LINE("MXCARJ", &(fTemp = CStats::MaximumJumpHeight * FEET_IN_METER), true, nil);
break; break;
@ -5501,7 +5492,6 @@ CMenuManager::ConstructStatLine(int rowIdx)
#endif #endif
STAT_LINE("FESTDFM", &CStats::DistanceTravelledOnFoot, true, nil); STAT_LINE("FESTDFM", &CStats::DistanceTravelledOnFoot, true, nil);
STAT_LINE("FESTDCM", &CStats::DistanceTravelledInVehicle, true, nil); STAT_LINE("FESTDCM", &CStats::DistanceTravelledInVehicle, true, nil);
STAT_LINE("MMRAIN", &CStats::mmRain, false, nil);
STAT_LINE("MXCARDM", &CStats::MaximumJumpDistance, true, nil); STAT_LINE("MXCARDM", &CStats::MaximumJumpDistance, true, nil);
STAT_LINE("MXCARJM", &CStats::MaximumJumpHeight, true, nil); STAT_LINE("MXCARJM", &CStats::MaximumJumpHeight, true, nil);
break; break;

View File

@ -245,23 +245,20 @@ void CGame::ShutdownRenderWare(void)
bool CGame::InitialiseOnceAfterRW(void) bool CGame::InitialiseOnceAfterRW(void)
{ {
TheText.Load(); TheText.Load();
DMAudio.Initialise();
CTimer::Initialise(); CTimer::Initialise();
CTempColModels::Initialise(); CTempColModels::Initialise();
mod_HandlingManager.Initialise(); mod_HandlingManager.Initialise();
CSurfaceTable::Initialise("DATA\\SURFACE.DAT"); CSurfaceTable::Initialise("DATA\\SURFACE.DAT");
CPedStats::Initialise(); CPedStats::Initialise();
CTimeCycle::Initialise(); CTimeCycle::Initialise();
DMAudio.Initialise();
if ( DMAudio.GetNum3DProvidersAvailable() == 0 ) if ( DMAudio.GetNum3DProvidersAvailable() == 0 )
FrontEndMenuManager.m_nPrefsAudio3DProviderIndex = -1; FrontEndMenuManager.m_nPrefsAudio3DProviderIndex = NO_AUDIO_PROVIDER;
if ( FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == -99 || FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == -2 ) if ( FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == AUDIO_PROVIDER_NOT_DETERMINED || FrontEndMenuManager.m_nPrefsAudio3DProviderIndex == -2 )
{ {
FrontEndMenuManager.m_PrefsSpeakers = 0; FrontEndMenuManager.m_PrefsSpeakers = 0;
int8 provider = DMAudio.AutoDetect3DProviders(); FrontEndMenuManager.m_nPrefsAudio3DProviderIndex = DMAudio.AutoDetect3DProviders();
if ( provider != -1 )
FrontEndMenuManager.m_nPrefsAudio3DProviderIndex = provider;
} }
DMAudio.SetCurrent3DProvider(FrontEndMenuManager.m_nPrefsAudio3DProviderIndex); DMAudio.SetCurrent3DProvider(FrontEndMenuManager.m_nPrefsAudio3DProviderIndex);

View File

@ -4,7 +4,7 @@
CMenuScreen aScreens[] = { CMenuScreen aScreens[] = {
// MENUPAGE_STATS = 0 // MENUPAGE_STATS = 0
{ "FET_STA", MENUPAGE_NONE, 3, { "FEH_STA", MENUPAGE_NONE, 3,
MENUACTION_GOBACK, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE, 190, 320, MENUALIGN_RIGHT, MENUACTION_GOBACK, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE, 190, 320, MENUALIGN_RIGHT,
}, },

View File

@ -49,7 +49,6 @@ int32 CStats::LivesSavedWithAmbulance;
int32 CStats::CriminalsCaught; int32 CStats::CriminalsCaught;
int32 CStats::HighestLevelAmbulanceMission; int32 CStats::HighestLevelAmbulanceMission;
int32 CStats::FiresExtinguished; int32 CStats::FiresExtinguished;
int32 CStats::LongestFlightInDodo;
int32 CStats::TimeTakenDefuseMission; int32 CStats::TimeTakenDefuseMission;
int32 CStats::TotalNumberKillFrenzies; int32 CStats::TotalNumberKillFrenzies;
int32 CStats::TotalNumberMissions; int32 CStats::TotalNumberMissions;
@ -58,8 +57,6 @@ int32 CStats::KgsOfExplosivesUsed;
int32 CStats::InstantHitsFiredByPlayer; int32 CStats::InstantHitsFiredByPlayer;
int32 CStats::InstantHitsHitByPlayer; int32 CStats::InstantHitsHitByPlayer;
int32 CStats::BestTimeBombDefusal; int32 CStats::BestTimeBombDefusal;
int32 CStats::mmRain;
int32 CStats::CarsCrushed;
int32 CStats::FastestTimes[CStats::TOTAL_FASTEST_TIMES]; int32 CStats::FastestTimes[CStats::TOTAL_FASTEST_TIMES];
int32 CStats::HighestScores[CStats::TOTAL_HIGHEST_SCORES]; int32 CStats::HighestScores[CStats::TOTAL_HIGHEST_SCORES];
int32 CStats::BestPositions[CStats::TOTAL_BEST_POSITIONS]; int32 CStats::BestPositions[CStats::TOTAL_BEST_POSITIONS];
@ -83,13 +80,11 @@ void CStats::Init()
KgsOfExplosivesUsed = 0; KgsOfExplosivesUsed = 0;
InstantHitsFiredByPlayer = 0; InstantHitsFiredByPlayer = 0;
InstantHitsHitByPlayer = 0; InstantHitsHitByPlayer = 0;
CarsCrushed = 0;
HeadsPopped = 0; HeadsPopped = 0;
TimesArrested = 0; TimesArrested = 0;
TimesDied = 0; TimesDied = 0;
DaysPassed = 0; DaysPassed = 0;
NumberOfUniqueJumpsFound = 0; NumberOfUniqueJumpsFound = 0;
mmRain = 0;
MaximumJumpFlips = 0; MaximumJumpFlips = 0;
MaximumJumpSpins = 0; MaximumJumpSpins = 0;
MaximumJumpDistance = 0; MaximumJumpDistance = 0;
@ -97,7 +92,6 @@ void CStats::Init()
BestStuntJump = 0; BestStuntJump = 0;
TotalNumberOfUniqueJumps = 0; TotalNumberOfUniqueJumps = 0;
Record4x4One = 0; Record4x4One = 0;
LongestFlightInDodo = 0;
Record4x4Two = 0; Record4x4Two = 0;
PassengersDroppedOffWithTaxi = 0; PassengersDroppedOffWithTaxi = 0;
Record4x4Three = 0; Record4x4Three = 0;
@ -202,11 +196,6 @@ void CStats::AnotherFireExtinguished()
++FiresExtinguished; ++FiresExtinguished;
} }
void CStats::RegisterLongestFlightInDodo(int32 time)
{
LongestFlightInDodo = Max(LongestFlightInDodo, time);
}
void CStats::RegisterTimeTakenDefuseMission(int32 time) void CStats::RegisterTimeTakenDefuseMission(int32 time)
{ {
TimeTakenDefuseMission = (TimeTakenDefuseMission && TimeTakenDefuseMission < time) ? TimeTakenDefuseMission : time; TimeTakenDefuseMission = (TimeTakenDefuseMission && TimeTakenDefuseMission < time) ? TimeTakenDefuseMission : time;
@ -296,12 +285,10 @@ void CStats::SaveStats(uint8 *buf, uint32 *size)
sizeof(KgsOfExplosivesUsed) + sizeof(KgsOfExplosivesUsed) +
sizeof(InstantHitsFiredByPlayer) + sizeof(InstantHitsFiredByPlayer) +
sizeof(InstantHitsHitByPlayer) + sizeof(InstantHitsHitByPlayer) +
sizeof(CarsCrushed) +
sizeof(HeadsPopped) + sizeof(HeadsPopped) +
sizeof(TimesArrested) + sizeof(TimesArrested) +
sizeof(TimesDied) + sizeof(TimesDied) +
sizeof(DaysPassed) + sizeof(DaysPassed) +
sizeof(mmRain) +
sizeof(MaximumJumpDistance) + sizeof(MaximumJumpDistance) +
sizeof(MaximumJumpHeight) + sizeof(MaximumJumpHeight) +
sizeof(MaximumJumpFlips) + sizeof(MaximumJumpFlips) +
@ -327,7 +314,6 @@ void CStats::SaveStats(uint8 *buf, uint32 *size)
sizeof(CriminalsCaught) + sizeof(CriminalsCaught) +
sizeof(HighestLevelAmbulanceMission) + sizeof(HighestLevelAmbulanceMission) +
sizeof(FiresExtinguished) + sizeof(FiresExtinguished) +
sizeof(LongestFlightInDodo) +
sizeof(TimeTakenDefuseMission) + sizeof(TimeTakenDefuseMission) +
sizeof(NumberKillFrenziesPassed) + sizeof(NumberKillFrenziesPassed) +
sizeof(TotalNumberKillFrenzies) + sizeof(TotalNumberKillFrenzies) +
@ -351,12 +337,10 @@ void CStats::SaveStats(uint8 *buf, uint32 *size)
CopyToBuf(buf, KgsOfExplosivesUsed); CopyToBuf(buf, KgsOfExplosivesUsed);
CopyToBuf(buf, InstantHitsFiredByPlayer); CopyToBuf(buf, InstantHitsFiredByPlayer);
CopyToBuf(buf, InstantHitsHitByPlayer); CopyToBuf(buf, InstantHitsHitByPlayer);
CopyToBuf(buf, CarsCrushed);
CopyToBuf(buf, HeadsPopped); CopyToBuf(buf, HeadsPopped);
CopyToBuf(buf, TimesArrested); CopyToBuf(buf, TimesArrested);
CopyToBuf(buf, TimesDied); CopyToBuf(buf, TimesDied);
CopyToBuf(buf, DaysPassed); CopyToBuf(buf, DaysPassed);
CopyToBuf(buf, mmRain);
CopyToBuf(buf, MaximumJumpDistance); CopyToBuf(buf, MaximumJumpDistance);
CopyToBuf(buf, MaximumJumpHeight); CopyToBuf(buf, MaximumJumpHeight);
CopyToBuf(buf, MaximumJumpFlips); CopyToBuf(buf, MaximumJumpFlips);
@ -382,7 +366,6 @@ void CStats::SaveStats(uint8 *buf, uint32 *size)
CopyToBuf(buf, CriminalsCaught); CopyToBuf(buf, CriminalsCaught);
CopyToBuf(buf, HighestLevelAmbulanceMission); CopyToBuf(buf, HighestLevelAmbulanceMission);
CopyToBuf(buf, FiresExtinguished); CopyToBuf(buf, FiresExtinguished);
CopyToBuf(buf, LongestFlightInDodo);
CopyToBuf(buf, TimeTakenDefuseMission); CopyToBuf(buf, TimeTakenDefuseMission);
CopyToBuf(buf, NumberKillFrenziesPassed); CopyToBuf(buf, NumberKillFrenziesPassed);
CopyToBuf(buf, TotalNumberKillFrenzies); CopyToBuf(buf, TotalNumberKillFrenzies);
@ -415,12 +398,10 @@ void CStats::LoadStats(uint8 *buf, uint32 size)
CopyFromBuf(buf, KgsOfExplosivesUsed); CopyFromBuf(buf, KgsOfExplosivesUsed);
CopyFromBuf(buf, InstantHitsFiredByPlayer); CopyFromBuf(buf, InstantHitsFiredByPlayer);
CopyFromBuf(buf, InstantHitsHitByPlayer); CopyFromBuf(buf, InstantHitsHitByPlayer);
CopyFromBuf(buf, CarsCrushed);
CopyFromBuf(buf, HeadsPopped); CopyFromBuf(buf, HeadsPopped);
CopyFromBuf(buf, TimesArrested); CopyFromBuf(buf, TimesArrested);
CopyFromBuf(buf, TimesDied); CopyFromBuf(buf, TimesDied);
CopyFromBuf(buf, DaysPassed); CopyFromBuf(buf, DaysPassed);
CopyFromBuf(buf, mmRain);
CopyFromBuf(buf, MaximumJumpDistance); CopyFromBuf(buf, MaximumJumpDistance);
CopyFromBuf(buf, MaximumJumpHeight); CopyFromBuf(buf, MaximumJumpHeight);
CopyFromBuf(buf, MaximumJumpFlips); CopyFromBuf(buf, MaximumJumpFlips);
@ -446,7 +427,6 @@ void CStats::LoadStats(uint8 *buf, uint32 size)
CopyFromBuf(buf, CriminalsCaught); CopyFromBuf(buf, CriminalsCaught);
CopyFromBuf(buf, HighestLevelAmbulanceMission); CopyFromBuf(buf, HighestLevelAmbulanceMission);
CopyFromBuf(buf, FiresExtinguished); CopyFromBuf(buf, FiresExtinguished);
CopyFromBuf(buf, LongestFlightInDodo);
CopyFromBuf(buf, TimeTakenDefuseMission); CopyFromBuf(buf, TimeTakenDefuseMission);
CopyFromBuf(buf, NumberKillFrenziesPassed); CopyFromBuf(buf, NumberKillFrenziesPassed);
CopyFromBuf(buf, TotalNumberKillFrenzies); CopyFromBuf(buf, TotalNumberKillFrenzies);

View File

@ -53,7 +53,6 @@ public:
static int32 CriminalsCaught; static int32 CriminalsCaught;
static int32 HighestLevelAmbulanceMission; static int32 HighestLevelAmbulanceMission;
static int32 FiresExtinguished; static int32 FiresExtinguished;
static int32 LongestFlightInDodo;
static int32 TimeTakenDefuseMission; static int32 TimeTakenDefuseMission;
static int32 TotalNumberKillFrenzies; static int32 TotalNumberKillFrenzies;
static int32 TotalNumberMissions; static int32 TotalNumberMissions;
@ -62,8 +61,6 @@ public:
static int32 InstantHitsFiredByPlayer; static int32 InstantHitsFiredByPlayer;
static int32 InstantHitsHitByPlayer; static int32 InstantHitsHitByPlayer;
static int32 BestTimeBombDefusal; static int32 BestTimeBombDefusal;
static int32 mmRain;
static int32 CarsCrushed;
static int32 FastestTimes[TOTAL_FASTEST_TIMES]; static int32 FastestTimes[TOTAL_FASTEST_TIMES];
static int32 HighestScores[TOTAL_HIGHEST_SCORES]; static int32 HighestScores[TOTAL_HIGHEST_SCORES];
static int32 BestPositions[TOTAL_BEST_POSITIONS]; static int32 BestPositions[TOTAL_BEST_POSITIONS];
@ -90,7 +87,6 @@ public:
static void RegisterLevelAmbulanceMission(int32); static void RegisterLevelAmbulanceMission(int32);
static void AnotherFireExtinguished(); static void AnotherFireExtinguished();
static wchar *FindCriminalRatingString(); static wchar *FindCriminalRatingString();
static void RegisterLongestFlightInDodo(int32);
static void RegisterTimeTakenDefuseMission(int32); static void RegisterTimeTakenDefuseMission(int32);
static void AnotherKillFrenzyPassed(); static void AnotherKillFrenzyPassed();
static void SetTotalNumberKillFrenzies(int32); static void SetTotalNumberKillFrenzies(int32);