mirror of
https://gitlab.com/GaryOderNichts/re3-wiiu.git
synced 2024-11-29 12:34:14 +01:00
Add ped and car density slider to menu, remove dumb collision "optimization"
This commit is contained in:
parent
11434f96cc
commit
2a6f9c2757
@ -77,7 +77,7 @@ int32 CCarCtrl::NumRandomCars;
|
|||||||
int32 CCarCtrl::NumParkedCars;
|
int32 CCarCtrl::NumParkedCars;
|
||||||
int32 CCarCtrl::NumPermanentCars;
|
int32 CCarCtrl::NumPermanentCars;
|
||||||
int8 CCarCtrl::CountDownToCarsAtStart;
|
int8 CCarCtrl::CountDownToCarsAtStart;
|
||||||
int32 CCarCtrl::MaxNumberOfCarsInUse = 12;
|
int32 CCarCtrl::MaxNumberOfCarsInUse = DEFAULT_MAX_NUMBER_OF_CARS;
|
||||||
uint32 CCarCtrl::LastTimeLawEnforcerCreated;
|
uint32 CCarCtrl::LastTimeLawEnforcerCreated;
|
||||||
uint32 CCarCtrl::LastTimeFireTruckCreated;
|
uint32 CCarCtrl::LastTimeFireTruckCreated;
|
||||||
uint32 CCarCtrl::LastTimeAmbulanceCreated;
|
uint32 CCarCtrl::LastTimeAmbulanceCreated;
|
||||||
|
@ -336,6 +336,7 @@ const char* MenuFilenames[][2] = {
|
|||||||
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE), MENU_Y(SMALLESTTEXT_Y_SCALE)); \
|
CFont::SetScale(MENU_X(SMALLESTTEXT_X_SCALE), MENU_Y(SMALLESTTEXT_Y_SCALE)); \
|
||||||
CFont::SetFontStyle(FONT_LOCALE(FONT_BANK));
|
CFont::SetFontStyle(FONT_LOCALE(FONT_BANK));
|
||||||
|
|
||||||
|
// value must be between 0.0-1.0
|
||||||
#define ProcessSlider(value, increaseAction, decreaseAction, hoverStartX, hoverEndX) \
|
#define ProcessSlider(value, increaseAction, decreaseAction, hoverStartX, hoverEndX) \
|
||||||
do { \
|
do { \
|
||||||
lastActiveBarX = DisplaySlider(MENU_X_RIGHT_ALIGNED(MENUSLIDER_X + columnWidth), MENU_Y(bitAboveNextItemY), MENU_Y(smallestSliderBar), MENU_Y(usableLineHeight), MENU_X(MENUSLIDER_UNK), value); \
|
lastActiveBarX = DisplaySlider(MENU_X_RIGHT_ALIGNED(MENUSLIDER_X + columnWidth), MENU_Y(bitAboveNextItemY), MENU_Y(smallestSliderBar), MENU_Y(usableLineHeight), MENU_X(MENUSLIDER_UNK), value); \
|
||||||
@ -489,7 +490,7 @@ CMenuManager::ThingsToDoBeforeGoingBack()
|
|||||||
option.m_CFODynamic->buttonPressFunc(FEOPTION_ACTION_FOCUSLOSS);
|
option.m_CFODynamic->buttonPressFunc(FEOPTION_ACTION_FOCUSLOSS);
|
||||||
|
|
||||||
if (option.m_Action == MENUACTION_CFO_SELECT && option.m_CFOSelect->onlyApplyOnEnter && option.m_CFOSelect->lastSavedValue != option.m_CFOSelect->displayedValue)
|
if (option.m_Action == MENUACTION_CFO_SELECT && option.m_CFOSelect->onlyApplyOnEnter && option.m_CFOSelect->lastSavedValue != option.m_CFOSelect->displayedValue)
|
||||||
option.m_CFOSelect->displayedValue = *option.m_CFO->value = option.m_CFOSelect->lastSavedValue;
|
option.m_CFOSelect->displayedValue = *(int8*)option.m_CFO->value = option.m_CFOSelect->lastSavedValue;
|
||||||
|
|
||||||
if (aScreens[m_nCurrScreen].returnPrevPageFunc) {
|
if (aScreens[m_nCurrScreen].returnPrevPageFunc) {
|
||||||
aScreens[m_nCurrScreen].returnPrevPageFunc();
|
aScreens[m_nCurrScreen].returnPrevPageFunc();
|
||||||
@ -898,29 +899,29 @@ CMenuManager::CheckSliderMovement(int value)
|
|||||||
{
|
{
|
||||||
switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) {
|
switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) {
|
||||||
case MENUACTION_BRIGHTNESS:
|
case MENUACTION_BRIGHTNESS:
|
||||||
m_PrefsBrightness += value * (512/16);
|
m_PrefsBrightness += value * (512/MENUSLIDER_LOGICAL_BARS);
|
||||||
m_PrefsBrightness = Clamp(m_PrefsBrightness, 0, 511);
|
m_PrefsBrightness = Clamp(m_PrefsBrightness, 0, 511);
|
||||||
break;
|
break;
|
||||||
case MENUACTION_DRAWDIST:
|
case MENUACTION_DRAWDIST:
|
||||||
if(value > 0)
|
if(value > 0)
|
||||||
m_PrefsLOD += ((1.8f - 0.8f) / 16.0f);
|
m_PrefsLOD += ((1.8f - 0.8f) / MENUSLIDER_LOGICAL_BARS);
|
||||||
else
|
else
|
||||||
m_PrefsLOD -= ((1.8f - 0.8f) / 16.0f);
|
m_PrefsLOD -= ((1.8f - 0.8f) / MENUSLIDER_LOGICAL_BARS);
|
||||||
m_PrefsLOD = Clamp(m_PrefsLOD, 0.8f, 1.8f);
|
m_PrefsLOD = Clamp(m_PrefsLOD, 0.8f, 1.8f);
|
||||||
CRenderer::ms_lodDistScale = m_PrefsLOD;
|
CRenderer::ms_lodDistScale = m_PrefsLOD;
|
||||||
break;
|
break;
|
||||||
case MENUACTION_MUSICVOLUME:
|
case MENUACTION_MUSICVOLUME:
|
||||||
m_PrefsMusicVolume += value * (128/16);
|
m_PrefsMusicVolume += value * (128/MENUSLIDER_LOGICAL_BARS);
|
||||||
m_PrefsMusicVolume = Clamp(m_PrefsMusicVolume, 0, 127);
|
m_PrefsMusicVolume = Clamp(m_PrefsMusicVolume, 0, 127);
|
||||||
DMAudio.SetMusicMasterVolume(m_PrefsMusicVolume);
|
DMAudio.SetMusicMasterVolume(m_PrefsMusicVolume);
|
||||||
break;
|
break;
|
||||||
case MENUACTION_SFXVOLUME:
|
case MENUACTION_SFXVOLUME:
|
||||||
m_PrefsSfxVolume += value * (128/16);
|
m_PrefsSfxVolume += value * (128/MENUSLIDER_LOGICAL_BARS);
|
||||||
m_PrefsSfxVolume = Clamp(m_PrefsSfxVolume, 0, 127);
|
m_PrefsSfxVolume = Clamp(m_PrefsSfxVolume, 0, 127);
|
||||||
DMAudio.SetEffectsMasterVolume(m_PrefsSfxVolume);
|
DMAudio.SetEffectsMasterVolume(m_PrefsSfxVolume);
|
||||||
break;
|
break;
|
||||||
case MENUACTION_MOUSESENS:
|
case MENUACTION_MOUSESENS:
|
||||||
TheCamera.m_fMouseAccelHorzntl += value * 1.0f/200.0f/15.0f; // ???
|
TheCamera.m_fMouseAccelHorzntl += value * 1.0f/200.0f/15.0f; // probably because diving it to 15 instead of 16(MENUSLIDER_LOGICAL_BARS) had more accurate steps
|
||||||
TheCamera.m_fMouseAccelHorzntl = Clamp(TheCamera.m_fMouseAccelHorzntl, 1.0f/3200.0f, 1.0f/200.0f);
|
TheCamera.m_fMouseAccelHorzntl = Clamp(TheCamera.m_fMouseAccelHorzntl, 1.0f/3200.0f, 1.0f/200.0f);
|
||||||
#ifdef FIX_BUGS
|
#ifdef FIX_BUGS
|
||||||
TheCamera.m_fMouseAccelVertical = TheCamera.m_fMouseAccelHorzntl + 0.0005f;
|
TheCamera.m_fMouseAccelVertical = TheCamera.m_fMouseAccelHorzntl + 0.0005f;
|
||||||
@ -928,6 +929,20 @@ CMenuManager::CheckSliderMovement(int value)
|
|||||||
TheCamera.m_fMouseAccelVertical = TheCamera.m_fMouseAccelHorzntl;
|
TheCamera.m_fMouseAccelVertical = TheCamera.m_fMouseAccelHorzntl;
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||||
|
case MENUACTION_CFO_SLIDER:
|
||||||
|
{
|
||||||
|
CMenuScreenCustom::CMenuEntry &option = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption];
|
||||||
|
float oldValue = *(float*)option.m_CFOSlider->value;
|
||||||
|
*(float*)option.m_CFOSlider->value += value * ((option.m_CFOSlider->max - option.m_CFOSlider->min) / MENUSLIDER_LOGICAL_BARS);
|
||||||
|
*(float*)option.m_CFOSlider->value = Clamp(*(float*)option.m_CFOSlider->value, option.m_CFOSlider->min, option.m_CFOSlider->max);
|
||||||
|
|
||||||
|
if (*(float*)option.m_CFOSlider->value != oldValue && option.m_CFOSlider->changeFunc)
|
||||||
|
option.m_CFOSlider->changeFunc(oldValue, *(float*)option.m_CFOSlider->value);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1001,10 +1016,10 @@ CMenuManager::DisplaySlider(float x, float y, float mostLeftBarSize, float mostR
|
|||||||
int lastActiveBarX = 0;
|
int lastActiveBarX = 0;
|
||||||
float curBarX = 0.0f;
|
float curBarX = 0.0f;
|
||||||
float spacing = SCREEN_SCALE_X(10.0f);
|
float spacing = SCREEN_SCALE_X(10.0f);
|
||||||
for (int i = 0; i < 16; i++) {
|
for (int i = 0; i < MENUSLIDER_BARS; i++) {
|
||||||
curBarX = i * rectSize/16.0f + x;
|
curBarX = i * rectSize/MENUSLIDER_BARS + x;
|
||||||
|
|
||||||
if (i / 16.0f + 1 / 32.0f < progress) {
|
if (i / (float)MENUSLIDER_BARS + 1 / (MENUSLIDER_BARS * 2.f) < progress) {
|
||||||
color = CRGBA(SLIDERON_COLOR.r, SLIDERON_COLOR.g, SLIDERON_COLOR.b, FadeIn(255));
|
color = CRGBA(SLIDERON_COLOR.r, SLIDERON_COLOR.g, SLIDERON_COLOR.b, FadeIn(255));
|
||||||
lastActiveBarX = curBarX;
|
lastActiveBarX = curBarX;
|
||||||
} else
|
} else
|
||||||
@ -1012,7 +1027,7 @@ CMenuManager::DisplaySlider(float x, float y, float mostLeftBarSize, float mostR
|
|||||||
|
|
||||||
maxBarHeight = Max(mostLeftBarSize, mostRightBarSize);
|
maxBarHeight = Max(mostLeftBarSize, mostRightBarSize);
|
||||||
|
|
||||||
float curBarFreeSpace = ((16 - i) * mostLeftBarSize + i * mostRightBarSize) / 16.0f;
|
float curBarFreeSpace = ((MENUSLIDER_BARS - i) * mostLeftBarSize + i * mostRightBarSize) / (float)MENUSLIDER_BARS;
|
||||||
float left = curBarX;
|
float left = curBarX;
|
||||||
float top = y + maxBarHeight - curBarFreeSpace;
|
float top = y + maxBarHeight - curBarFreeSpace;
|
||||||
float right = spacing + curBarX;
|
float right = spacing + curBarX;
|
||||||
@ -1595,10 +1610,10 @@ CMenuManager::Draw()
|
|||||||
|
|
||||||
// If that was previously selected option, restore it to default value.
|
// If that was previously selected option, restore it to default value.
|
||||||
// if (m_nCurrOption != lastSelectedOpt && lastSelectedOpt == i)
|
// if (m_nCurrOption != lastSelectedOpt && lastSelectedOpt == i)
|
||||||
option.m_CFOSelect->displayedValue = option.m_CFOSelect->lastSavedValue = *option.m_CFO->value;
|
option.m_CFOSelect->displayedValue = option.m_CFOSelect->lastSavedValue = *(int8*)option.m_CFO->value;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (option.m_CFOSelect->displayedValue != *option.m_CFO->value)
|
if (option.m_CFOSelect->displayedValue != *(int8*)option.m_CFO->value)
|
||||||
SetHelperText(1); // Enter to apply
|
SetHelperText(1); // Enter to apply
|
||||||
else if (m_nHelperTextMsgId == 1)
|
else if (m_nHelperTextMsgId == 1)
|
||||||
ResetHelperText(); // Applied
|
ResetHelperText(); // Applied
|
||||||
@ -1606,8 +1621,8 @@ CMenuManager::Draw()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// To whom manipulate option.m_CFO->value of select options externally (like RestoreDef functions)
|
// To whom manipulate option.m_CFO->value of select options externally (like RestoreDef functions)
|
||||||
if (*option.m_CFO->value != option.m_CFOSelect->lastSavedValue)
|
if (*(int8*)option.m_CFO->value != option.m_CFOSelect->lastSavedValue)
|
||||||
option.m_CFOSelect->displayedValue = option.m_CFOSelect->lastSavedValue = *option.m_CFO->value;
|
option.m_CFOSelect->displayedValue = option.m_CFOSelect->lastSavedValue = *(int8*)option.m_CFO->value;
|
||||||
|
|
||||||
if (option.m_CFOSelect->displayedValue >= option.m_CFOSelect->numRightTexts || option.m_CFOSelect->displayedValue < 0)
|
if (option.m_CFOSelect->displayedValue >= option.m_CFOSelect->numRightTexts || option.m_CFOSelect->displayedValue < 0)
|
||||||
option.m_CFOSelect->displayedValue = 0;
|
option.m_CFOSelect->displayedValue = 0;
|
||||||
@ -1799,6 +1814,12 @@ CMenuManager::Draw()
|
|||||||
case MENUACTION_MOUSESENS:
|
case MENUACTION_MOUSESENS:
|
||||||
ProcessSlider(TheCamera.m_fMouseAccelHorzntl * 200.0f, HOVEROPTION_INCREASE_MOUSESENS, HOVEROPTION_DECREASE_MOUSESENS, MENU_X_LEFT_ALIGNED(200.0f), SCREEN_WIDTH);
|
ProcessSlider(TheCamera.m_fMouseAccelHorzntl * 200.0f, HOVEROPTION_INCREASE_MOUSESENS, HOVEROPTION_DECREASE_MOUSESENS, MENU_X_LEFT_ALIGNED(200.0f), SCREEN_WIDTH);
|
||||||
break;
|
break;
|
||||||
|
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||||
|
case MENUACTION_CFO_SLIDER:
|
||||||
|
CMenuScreenCustom::CMenuEntry &option = aScreens[m_nCurrScreen].m_aEntries[i];
|
||||||
|
ProcessSlider((*(float*)option.m_CFOSlider->value - option.m_CFOSlider->min) / (option.m_CFOSlider->max - option.m_CFOSlider->min), HOVEROPTION_INCREASE_CFO_SLIDER, HOVEROPTION_DECREASE_CFO_SLIDER, MENU_X_LEFT_ALIGNED(170.0f), SCREEN_WIDTH);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// Needed after the bug fix in Font.cpp
|
// Needed after the bug fix in Font.cpp
|
||||||
@ -4477,7 +4498,7 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
#ifndef TIDY_UP_PBP
|
#ifndef TIDY_UP_PBP
|
||||||
switch (m_nHoverOption) {
|
switch (m_nHoverOption) {
|
||||||
case HOVEROPTION_INCREASE_BRIGHTNESS:
|
case HOVEROPTION_INCREASE_BRIGHTNESS:
|
||||||
m_PrefsBrightness = m_PrefsBrightness + 32;
|
m_PrefsBrightness = m_PrefsBrightness + (512 / MENUSLIDER_LOGICAL_BARS);
|
||||||
if (m_PrefsBrightness < 0) {
|
if (m_PrefsBrightness < 0) {
|
||||||
m_PrefsBrightness = 0;
|
m_PrefsBrightness = 0;
|
||||||
}
|
}
|
||||||
@ -4487,7 +4508,7 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
SaveSettings();
|
SaveSettings();
|
||||||
break;
|
break;
|
||||||
case HOVEROPTION_DECREASE_BRIGHTNESS:
|
case HOVEROPTION_DECREASE_BRIGHTNESS:
|
||||||
m_PrefsBrightness = m_PrefsBrightness - 32;
|
m_PrefsBrightness = m_PrefsBrightness - (512 / MENUSLIDER_LOGICAL_BARS);
|
||||||
if (m_PrefsBrightness < 0) {
|
if (m_PrefsBrightness < 0) {
|
||||||
m_PrefsBrightness = 0;
|
m_PrefsBrightness = 0;
|
||||||
}
|
}
|
||||||
@ -4497,25 +4518,25 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
SaveSettings();
|
SaveSettings();
|
||||||
break;
|
break;
|
||||||
case HOVEROPTION_INCREASE_DRAWDIST:
|
case HOVEROPTION_INCREASE_DRAWDIST:
|
||||||
m_PrefsLOD = m_PrefsLOD + (1.0f / 16);
|
m_PrefsLOD = m_PrefsLOD + (1.0f / MENUSLIDER_LOGICAL_BARS);
|
||||||
m_PrefsLOD = min(1.8f, m_PrefsLOD);
|
m_PrefsLOD = min(1.8f, m_PrefsLOD);
|
||||||
CRenderer::ms_lodDistScale = m_PrefsLOD;
|
CRenderer::ms_lodDistScale = m_PrefsLOD;
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
break;
|
break;
|
||||||
case HOVEROPTION_DECREASE_DRAWDIST:
|
case HOVEROPTION_DECREASE_DRAWDIST:
|
||||||
m_PrefsLOD = m_PrefsLOD - (1.0f / 16);
|
m_PrefsLOD = m_PrefsLOD - (1.0f / MENUSLIDER_LOGICAL_BARS);
|
||||||
m_PrefsLOD = max(0.8f, m_PrefsLOD);
|
m_PrefsLOD = max(0.8f, m_PrefsLOD);
|
||||||
CRenderer::ms_lodDistScale = m_PrefsLOD;
|
CRenderer::ms_lodDistScale = m_PrefsLOD;
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
break;
|
break;
|
||||||
case HOVEROPTION_INCREASE_MUSICVOLUME:
|
case HOVEROPTION_INCREASE_MUSICVOLUME:
|
||||||
m_PrefsMusicVolume = m_PrefsMusicVolume + 8;
|
m_PrefsMusicVolume = m_PrefsMusicVolume + (128 / MENUSLIDER_LOGICAL_BARS);
|
||||||
m_PrefsMusicVolume = Clamp(m_PrefsMusicVolume, 0, 127);
|
m_PrefsMusicVolume = Clamp(m_PrefsMusicVolume, 0, 127);
|
||||||
DMAudio.SetMusicMasterVolume(uchar)(m_PrefsMusicVolume);
|
DMAudio.SetMusicMasterVolume(uchar)(m_PrefsMusicVolume);
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
break;
|
break;
|
||||||
case HOVEROPTION_DECREASE_MUSICVOLUME:
|
case HOVEROPTION_DECREASE_MUSICVOLUME:
|
||||||
m_PrefsMusicVolume = m_PrefsMusicVolume - 8;
|
m_PrefsMusicVolume = m_PrefsMusicVolume - (128 / MENUSLIDER_LOGICAL_BARS);
|
||||||
if (m_PrefsMusicVolume < 0) {
|
if (m_PrefsMusicVolume < 0) {
|
||||||
m_PrefsMusicVolume = 0;
|
m_PrefsMusicVolume = 0;
|
||||||
}
|
}
|
||||||
@ -4526,7 +4547,7 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
SaveSettings();
|
SaveSettings();
|
||||||
break;
|
break;
|
||||||
case HOVEROPTION_INCREASE_SFXVOLUME:
|
case HOVEROPTION_INCREASE_SFXVOLUME:
|
||||||
m_PrefsSFXVolume = m_PrefsSFXVolume + 8;
|
m_PrefsSFXVolume = m_PrefsSFXVolume + (128 / MENUSLIDER_LOGICAL_BARS);
|
||||||
if (m_PrefsSFXVolume < 0) {
|
if (m_PrefsSFXVolume < 0) {
|
||||||
m_PrefsSFXVolume = 0;
|
m_PrefsSFXVolume = 0;
|
||||||
}
|
}
|
||||||
@ -4537,7 +4558,7 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
SaveSettings();
|
SaveSettings();
|
||||||
break;
|
break;
|
||||||
case HOVEROPTION_DECREASE_SFXVOLUME:
|
case HOVEROPTION_DECREASE_SFXVOLUME:
|
||||||
m_PrefsSFXVolume = m_PrefsSFXVolume - 8;
|
m_PrefsSFXVolume = m_PrefsSFXVolume - (128 / MENUSLIDER_LOGICAL_BARS);
|
||||||
if (m_PrefsSFXVolume < 0) {
|
if (m_PrefsSFXVolume < 0) {
|
||||||
m_PrefsSFXVolume = 0;
|
m_PrefsSFXVolume = 0;
|
||||||
}
|
}
|
||||||
@ -4548,7 +4569,7 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
SaveSettings();
|
SaveSettings();
|
||||||
break;
|
break;
|
||||||
case HOVEROPTION_INCREASE_MOUSESENS:
|
case HOVEROPTION_INCREASE_MOUSESENS:
|
||||||
TheCamera.m_fMouseAccelHorzntl += (1.0f / 3000);
|
TheCamera.m_fMouseAccelHorzntl += 1.0f/200.0f/15.0f; // probably because diving it to 15 instead of 16(MENUSLIDER_LOGICAL_BARS) had more accurate steps
|
||||||
TheCamera.m_fMouseAccelHorzntl = Clamp(TheCamera.m_fMouseAccelHorzntl, 1.0f / 3200, 1.0f / 200);
|
TheCamera.m_fMouseAccelHorzntl = Clamp(TheCamera.m_fMouseAccelHorzntl, 1.0f / 3200, 1.0f / 200);
|
||||||
#ifdef FIX_BUGS
|
#ifdef FIX_BUGS
|
||||||
TheCamera.m_fMouseAccelVertical = TheCamera.m_fMouseAccelHorzntl + 0.0005f;
|
TheCamera.m_fMouseAccelVertical = TheCamera.m_fMouseAccelHorzntl + 0.0005f;
|
||||||
@ -4558,7 +4579,7 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
SaveSettings();
|
SaveSettings();
|
||||||
break;
|
break;
|
||||||
case HOVEROPTION_DECREASE_MOUSESENS:
|
case HOVEROPTION_DECREASE_MOUSESENS:
|
||||||
TheCamera.m_fMouseAccelHorzntl -= (1.0f / 3000);
|
TheCamera.m_fMouseAccelHorzntl -= 1.0f/200.0f/15.0f; // probably because diving it to 15 instead of 16(MENUSLIDER_LOGICAL_BARS) had more accurate steps
|
||||||
TheCamera.m_fMouseAccelHorzntl = Clamp(TheCamera.m_fMouseAccelHorzntl, 1.0f / 3200, 1.0f / 200);
|
TheCamera.m_fMouseAccelHorzntl = Clamp(TheCamera.m_fMouseAccelHorzntl, 1.0f / 3200, 1.0f / 200);
|
||||||
#ifdef FIX_BUGS
|
#ifdef FIX_BUGS
|
||||||
TheCamera.m_fMouseAccelVertical = TheCamera.m_fMouseAccelHorzntl + 0.0005f;
|
TheCamera.m_fMouseAccelVertical = TheCamera.m_fMouseAccelHorzntl + 0.0005f;
|
||||||
@ -4575,6 +4596,9 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
case HOVEROPTION_INCREASE_MUSICVOLUME:
|
case HOVEROPTION_INCREASE_MUSICVOLUME:
|
||||||
case HOVEROPTION_INCREASE_SFXVOLUME:
|
case HOVEROPTION_INCREASE_SFXVOLUME:
|
||||||
case HOVEROPTION_INCREASE_MOUSESENS:
|
case HOVEROPTION_INCREASE_MOUSESENS:
|
||||||
|
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||||
|
case HOVEROPTION_INCREASE_CFO_SLIDER:
|
||||||
|
#endif
|
||||||
CheckSliderMovement(1);
|
CheckSliderMovement(1);
|
||||||
break;
|
break;
|
||||||
case HOVEROPTION_DECREASE_BRIGHTNESS:
|
case HOVEROPTION_DECREASE_BRIGHTNESS:
|
||||||
@ -4582,6 +4606,9 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
case HOVEROPTION_DECREASE_MUSICVOLUME:
|
case HOVEROPTION_DECREASE_MUSICVOLUME:
|
||||||
case HOVEROPTION_DECREASE_SFXVOLUME:
|
case HOVEROPTION_DECREASE_SFXVOLUME:
|
||||||
case HOVEROPTION_DECREASE_MOUSESENS:
|
case HOVEROPTION_DECREASE_MOUSESENS:
|
||||||
|
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||||
|
case HOVEROPTION_DECREASE_CFO_SLIDER:
|
||||||
|
#endif
|
||||||
CheckSliderMovement(-1);
|
CheckSliderMovement(-1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -4612,7 +4639,11 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
|| CPad::GetPad(0)->GetAnaloguePadLeftJustUp() || CPad::GetPad(0)->GetAnaloguePadRightJustUp()
|
|| CPad::GetPad(0)->GetAnaloguePadLeftJustUp() || CPad::GetPad(0)->GetAnaloguePadRightJustUp()
|
||||||
|| CPad::GetPad(0)->GetMouseWheelUpJustDown() || CPad::GetPad(0)->GetMouseWheelDownJustDown()) {
|
|| CPad::GetPad(0)->GetMouseWheelUpJustDown() || CPad::GetPad(0)->GetMouseWheelDownJustDown()) {
|
||||||
int option = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action;
|
int option = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action;
|
||||||
if (option == MENUACTION_BRIGHTNESS || option == MENUACTION_DRAWDIST)
|
if (option == MENUACTION_BRIGHTNESS || option == MENUACTION_DRAWDIST
|
||||||
|
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||||
|
|| option == MENUACTION_CFO_SLIDER
|
||||||
|
#endif
|
||||||
|
)
|
||||||
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
||||||
else if (option == MENUACTION_SFXVOLUME)
|
else if (option == MENUACTION_SFXVOLUME)
|
||||||
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_AUDIO_TEST, 0);
|
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_AUDIO_TEST, 0);
|
||||||
@ -4775,7 +4806,12 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
} else if (option != MENUACTION_CHANGEMENU && option != MENUACTION_BRIGHTNESS && option != MENUACTION_DRAWDIST
|
} else if (option != MENUACTION_CHANGEMENU && option != MENUACTION_BRIGHTNESS && option != MENUACTION_DRAWDIST
|
||||||
&& option != MENUACTION_MUSICVOLUME && option != MENUACTION_SFXVOLUME
|
&& option != MENUACTION_MUSICVOLUME && option != MENUACTION_SFXVOLUME
|
||||||
&& option != MENUACTION_CHECKSAVE && option != MENUACTION_UNK24
|
&& option != MENUACTION_CHECKSAVE && option != MENUACTION_UNK24
|
||||||
&& option != MENUACTION_MOUSESENS && option != MENUACTION_SCREENRES) {
|
&& option != MENUACTION_MOUSESENS && option != MENUACTION_SCREENRES
|
||||||
|
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||||
|
&& option != MENUACTION_CFO_SLIDER
|
||||||
|
#endif
|
||||||
|
)
|
||||||
|
{
|
||||||
|
|
||||||
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
||||||
}
|
}
|
||||||
@ -5166,9 +5202,9 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
if (option.m_CFOSelect->displayedValue >= option.m_CFOSelect->numRightTexts || option.m_CFOSelect->displayedValue < 0)
|
if (option.m_CFOSelect->displayedValue >= option.m_CFOSelect->numRightTexts || option.m_CFOSelect->displayedValue < 0)
|
||||||
option.m_CFOSelect->displayedValue = 0;
|
option.m_CFOSelect->displayedValue = 0;
|
||||||
}
|
}
|
||||||
int8 oldValue = *option.m_CFO->value;
|
int8 oldValue = *(int8*)option.m_CFO->value;
|
||||||
|
|
||||||
*option.m_CFO->value = option.m_CFOSelect->lastSavedValue = option.m_CFOSelect->displayedValue;
|
*(int8*)option.m_CFO->value = option.m_CFOSelect->lastSavedValue = option.m_CFOSelect->displayedValue;
|
||||||
|
|
||||||
// Now everything is saved in .ini, and LOAD_INI_SETTINGS is fundamental for CFO
|
// Now everything is saved in .ini, and LOAD_INI_SETTINGS is fundamental for CFO
|
||||||
// if (option.m_CFOSelect->save)
|
// if (option.m_CFOSelect->save)
|
||||||
@ -5412,9 +5448,9 @@ CMenuManager::ProcessButtonPresses(void)
|
|||||||
option.m_CFOSelect->displayedValue = option.m_CFOSelect->numRightTexts - 1;
|
option.m_CFOSelect->displayedValue = option.m_CFOSelect->numRightTexts - 1;
|
||||||
}
|
}
|
||||||
if (!option.m_CFOSelect->onlyApplyOnEnter) {
|
if (!option.m_CFOSelect->onlyApplyOnEnter) {
|
||||||
int8 oldValue = *option.m_CFO->value;
|
int8 oldValue = *(int8*)option.m_CFO->value;
|
||||||
|
|
||||||
*option.m_CFO->value = option.m_CFOSelect->lastSavedValue = option.m_CFOSelect->displayedValue;
|
*(int8*)option.m_CFO->value = option.m_CFOSelect->lastSavedValue = option.m_CFOSelect->displayedValue;
|
||||||
|
|
||||||
// Now everything is saved in .ini, and LOAD_INI_SETTINGS is fundamental for CFO
|
// Now everything is saved in .ini, and LOAD_INI_SETTINGS is fundamental for CFO
|
||||||
// if (option.m_CFOSelect->save)
|
// if (option.m_CFOSelect->save)
|
||||||
|
@ -25,6 +25,9 @@
|
|||||||
#define MENUSLIDER_X 256.0f
|
#define MENUSLIDER_X 256.0f
|
||||||
#define MENUSLIDER_UNK 256.0f
|
#define MENUSLIDER_UNK 256.0f
|
||||||
|
|
||||||
|
#define MENUSLIDER_BARS 16
|
||||||
|
#define MENUSLIDER_LOGICAL_BARS MENUSLIDER_BARS
|
||||||
|
|
||||||
#define BIGTEXT_X_SCALE 0.75f // For FONT_HEADING
|
#define BIGTEXT_X_SCALE 0.75f // For FONT_HEADING
|
||||||
#define BIGTEXT_Y_SCALE 0.9f
|
#define BIGTEXT_Y_SCALE 0.9f
|
||||||
#define MEDIUMTEXT_X_SCALE 0.55f // For FONT_HEADING
|
#define MEDIUMTEXT_X_SCALE 0.55f // For FONT_HEADING
|
||||||
@ -256,6 +259,7 @@ enum eMenuScreen
|
|||||||
enum eMenuAction
|
enum eMenuAction
|
||||||
{
|
{
|
||||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||||
|
MENUACTION_CFO_SLIDER = -3,
|
||||||
MENUACTION_CFO_SELECT = -2,
|
MENUACTION_CFO_SELECT = -2,
|
||||||
MENUACTION_CFO_DYNAMIC = -1,
|
MENUACTION_CFO_DYNAMIC = -1,
|
||||||
#endif
|
#endif
|
||||||
@ -424,6 +428,10 @@ enum eCheckHover
|
|||||||
HOVEROPTION_DECREASE_SFXVOLUME,
|
HOVEROPTION_DECREASE_SFXVOLUME,
|
||||||
HOVEROPTION_INCREASE_MOUSESENS,
|
HOVEROPTION_INCREASE_MOUSESENS,
|
||||||
HOVEROPTION_DECREASE_MOUSESENS,
|
HOVEROPTION_DECREASE_MOUSESENS,
|
||||||
|
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||||
|
HOVEROPTION_INCREASE_CFO_SLIDER,
|
||||||
|
HOVEROPTION_DECREASE_CFO_SLIDER,
|
||||||
|
#endif
|
||||||
HOVEROPTION_NOT_HOVERING,
|
HOVEROPTION_NOT_HOVERING,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -493,7 +501,7 @@ struct CCustomScreenLayout {
|
|||||||
|
|
||||||
struct CCFO
|
struct CCFO
|
||||||
{
|
{
|
||||||
int8 *value;
|
void *value;
|
||||||
const char *saveCat;
|
const char *saveCat;
|
||||||
const char *save;
|
const char *save;
|
||||||
};
|
};
|
||||||
@ -524,6 +532,24 @@ struct CCFOSelect : CCFO
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Value is float in here
|
||||||
|
struct CCFOSlider : CCFO
|
||||||
|
{
|
||||||
|
ChangeFuncFloat changeFunc;
|
||||||
|
float min;
|
||||||
|
float max;
|
||||||
|
|
||||||
|
CCFOSlider() {};
|
||||||
|
CCFOSlider(float* value, const char* saveCat, const char* save, float min, float max, ChangeFuncFloat changeFunc = nil){
|
||||||
|
this->value = value;
|
||||||
|
this->saveCat = saveCat;
|
||||||
|
this->save = save;
|
||||||
|
this->changeFunc = changeFunc;
|
||||||
|
this->min = min;
|
||||||
|
this->max = max;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
struct CCFODynamic : CCFO
|
struct CCFODynamic : CCFO
|
||||||
{
|
{
|
||||||
DrawFunc drawFunc;
|
DrawFunc drawFunc;
|
||||||
@ -555,6 +581,7 @@ struct CMenuScreenCustom
|
|||||||
CCFO *m_CFO; // for initializing
|
CCFO *m_CFO; // for initializing
|
||||||
CCFOSelect *m_CFOSelect;
|
CCFOSelect *m_CFOSelect;
|
||||||
CCFODynamic *m_CFODynamic;
|
CCFODynamic *m_CFODynamic;
|
||||||
|
CCFOSlider *m_CFOSlider;
|
||||||
};
|
};
|
||||||
int32 m_SaveSlot; // eSaveSlot
|
int32 m_SaveSlot; // eSaveSlot
|
||||||
int32 m_TargetMenu; // eMenuScreen
|
int32 m_TargetMenu; // eMenuScreen
|
||||||
|
@ -409,6 +409,10 @@ bool CGame::Initialise(const char* datFile)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef GTA_PS2
|
#ifndef GTA_PS2
|
||||||
|
#ifdef PED_CAR_DENSITY_SLIDERS
|
||||||
|
// Load density values from gta3.ini only if our re3.ini have them 1.f
|
||||||
|
if (CIniFile::PedNumberMultiplier == 1.f && CIniFile::CarNumberMultiplier == 1.f)
|
||||||
|
#endif
|
||||||
CIniFile::LoadIniFile();
|
CIniFile::LoadIniFile();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -23,6 +23,6 @@ void CIniFile::LoadIniFile()
|
|||||||
CarNumberMultiplier = Min(3.0f, Max(0.5f, CarNumberMultiplier));
|
CarNumberMultiplier = Min(3.0f, Max(0.5f, CarNumberMultiplier));
|
||||||
CFileMgr::CloseFile(f);
|
CFileMgr::CloseFile(f);
|
||||||
}
|
}
|
||||||
CPopulation::MaxNumberOfPedsInUse = 25.0f * PedNumberMultiplier;
|
CPopulation::MaxNumberOfPedsInUse = DEFAULT_MAX_NUMBER_OF_PEDS * PedNumberMultiplier;
|
||||||
CCarCtrl::MaxNumberOfCarsInUse = 12.0f * CarNumberMultiplier;
|
CCarCtrl::MaxNumberOfCarsInUse = DEFAULT_MAX_NUMBER_OF_CARS * CarNumberMultiplier;
|
||||||
}
|
}
|
@ -1,5 +1,8 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#define DEFAULT_MAX_NUMBER_OF_PEDS 25.0f
|
||||||
|
#define DEFAULT_MAX_NUMBER_OF_CARS 12.0f
|
||||||
|
|
||||||
class CIniFile
|
class CIniFile
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -26,6 +26,9 @@
|
|||||||
#include "ModelInfo.h"
|
#include "ModelInfo.h"
|
||||||
#include "Pad.h"
|
#include "Pad.h"
|
||||||
#include "ControllerConfig.h"
|
#include "ControllerConfig.h"
|
||||||
|
#include "IniFile.h"
|
||||||
|
#include "CarCtrl.h"
|
||||||
|
#include "Population.h"
|
||||||
|
|
||||||
// Menu screens array is at the bottom of the file.
|
// Menu screens array is at the bottom of the file.
|
||||||
|
|
||||||
@ -63,6 +66,15 @@
|
|||||||
#define DUALPASS_SELECTOR
|
#define DUALPASS_SELECTOR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PED_CAR_DENSITY_SLIDERS
|
||||||
|
// 0.2f - 3.4f makes it possible to have 1.0f somewhere inbetween
|
||||||
|
#define DENSITY_SLIDERS \
|
||||||
|
MENUACTION_CFO_SLIDER, "FEM_PED", { new CCFOSlider(&CIniFile::PedNumberMultiplier, "Display", "PedDensity", 0.2f, 3.4f, PedDensityChange) }, \
|
||||||
|
MENUACTION_CFO_SLIDER, "FEM_CAR", { new CCFOSlider(&CIniFile::CarNumberMultiplier, "Display", "CarDensity", 0.2f, 3.4f, CarDensityChange) },
|
||||||
|
#else
|
||||||
|
#define DENSITY_SLIDERS
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef NO_ISLAND_LOADING
|
#ifdef NO_ISLAND_LOADING
|
||||||
#define ISLAND_LOADING_SELECTOR MENUACTION_CFO_SELECT, "FEM_ISL", { new CCFOSelect((int8*)&CMenuManager::m_PrefsIslandLoading, "Graphics", "IslandLoading", islandLoadingOpts, ARRAY_SIZE(islandLoadingOpts), true, IslandLoadingAfterChange) },
|
#define ISLAND_LOADING_SELECTOR MENUACTION_CFO_SELECT, "FEM_ISL", { new CCFOSelect((int8*)&CMenuManager::m_PrefsIslandLoading, "Graphics", "IslandLoading", islandLoadingOpts, ARRAY_SIZE(islandLoadingOpts), true, IslandLoadingAfterChange) },
|
||||||
#else
|
#else
|
||||||
@ -145,6 +157,9 @@ void RestoreDefDisplay(int8 action) {
|
|||||||
#ifdef FREE_CAM
|
#ifdef FREE_CAM
|
||||||
TheCamera.bFreeCam = false;
|
TheCamera.bFreeCam = false;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef PED_CAR_DENSITY_SLIDERS
|
||||||
|
CIniFile::LoadIniFile();
|
||||||
|
#endif
|
||||||
#ifdef GRAPHICS_MENU_OPTIONS // otherwise Frontend will handle those
|
#ifdef GRAPHICS_MENU_OPTIONS // otherwise Frontend will handle those
|
||||||
CMenuManager::m_PrefsBrightness = 256;
|
CMenuManager::m_PrefsBrightness = 256;
|
||||||
CMenuManager::m_PrefsLOD = 1.2f;
|
CMenuManager::m_PrefsLOD = 1.2f;
|
||||||
@ -195,6 +210,16 @@ void IslandLoadingAfterChange(int8 before, int8 after) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef PED_CAR_DENSITY_SLIDERS
|
||||||
|
void PedDensityChange(float before, float after) {
|
||||||
|
CPopulation::MaxNumberOfPedsInUse = DEFAULT_MAX_NUMBER_OF_PEDS * after;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CarDensityChange(float before, float after) {
|
||||||
|
CCarCtrl::MaxNumberOfCarsInUse = DEFAULT_MAX_NUMBER_OF_CARS * after;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef MULTISAMPLING
|
#ifndef MULTISAMPLING
|
||||||
void GraphicsGoBack() {
|
void GraphicsGoBack() {
|
||||||
}
|
}
|
||||||
@ -437,6 +462,7 @@ CMenuScreenCustom aScreens[MENUPAGES] = {
|
|||||||
DUALPASS_SELECTOR
|
DUALPASS_SELECTOR
|
||||||
CUTSCENE_BORDERS_TOGGLE
|
CUTSCENE_BORDERS_TOGGLE
|
||||||
FREE_CAM_TOGGLE
|
FREE_CAM_TOGGLE
|
||||||
|
DENSITY_SLIDERS
|
||||||
POSTFX_SELECTORS
|
POSTFX_SELECTORS
|
||||||
// re3.cpp inserts here pipeline selectors if neo/neo.txd exists and EXTENDED_PIPELINES defined
|
// re3.cpp inserts here pipeline selectors if neo/neo.txd exists and EXTENDED_PIPELINES defined
|
||||||
MENUACTION_RESTOREDEF, "FET_DEF", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
MENUACTION_RESTOREDEF, "FET_DEF", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
||||||
@ -449,6 +475,7 @@ CMenuScreenCustom aScreens[MENUPAGES] = {
|
|||||||
MENUACTION_DRAWDIST, "FEM_LOD", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
MENUACTION_DRAWDIST, "FEM_LOD", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
||||||
CUTSCENE_BORDERS_TOGGLE
|
CUTSCENE_BORDERS_TOGGLE
|
||||||
FREE_CAM_TOGGLE
|
FREE_CAM_TOGGLE
|
||||||
|
DENSITY_SLIDERS
|
||||||
MENUACTION_SUBTITLES, "FED_SUB", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
MENUACTION_SUBTITLES, "FED_SUB", { nil, SAVESLOT_NONE, MENUPAGE_DISPLAY_SETTINGS },
|
||||||
MENUACTION_CFO_DYNAMIC, "FET_DEF", { new CCFODynamic(nil, nil, nil, nil, RestoreDefDisplay) },
|
MENUACTION_CFO_DYNAMIC, "FET_DEF", { new CCFODynamic(nil, nil, nil, nil, RestoreDefDisplay) },
|
||||||
MENUACTION_CHANGEMENU, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE },
|
MENUACTION_CHANGEMENU, "FEDS_TB", { nil, SAVESLOT_NONE, MENUPAGE_NONE },
|
||||||
|
@ -340,6 +340,7 @@ enum Config {
|
|||||||
# define CUTSCENE_BORDERS_SWITCH
|
# define CUTSCENE_BORDERS_SWITCH
|
||||||
# define MULTISAMPLING // adds MSAA option
|
# define MULTISAMPLING // adds MSAA option
|
||||||
# define INVERT_LOOK_FOR_PAD // add bInvertLook4Pad from VC
|
# define INVERT_LOOK_FOR_PAD // add bInvertLook4Pad from VC
|
||||||
|
# define PED_CAR_DENSITY_SLIDERS
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -510,6 +511,7 @@ enum Config {
|
|||||||
#undef CUTSCENE_BORDERS_SWITCH
|
#undef CUTSCENE_BORDERS_SWITCH
|
||||||
#undef MULTISAMPLING
|
#undef MULTISAMPLING
|
||||||
#undef INVERT_LOOK_FOR_PAD
|
#undef INVERT_LOOK_FOR_PAD
|
||||||
|
#undef PED_CAR_DENSITY_SLIDERS
|
||||||
|
|
||||||
#undef USE_DEBUG_SCRIPT_LOADER
|
#undef USE_DEBUG_SCRIPT_LOADER
|
||||||
#undef USE_MEASUREMENTS_IN_METERS
|
#undef USE_MEASUREMENTS_IN_METERS
|
||||||
|
@ -41,6 +41,9 @@
|
|||||||
#include "Camera.h"
|
#include "Camera.h"
|
||||||
#include "MBlur.h"
|
#include "MBlur.h"
|
||||||
#include "ControllerConfig.h"
|
#include "ControllerConfig.h"
|
||||||
|
#include "CarCtrl.h"
|
||||||
|
#include "Population.h"
|
||||||
|
#include "IniFile.h"
|
||||||
|
|
||||||
#ifdef DETECT_JOYSTICK_MENU
|
#ifdef DETECT_JOYSTICK_MENU
|
||||||
#include "crossplatform.h"
|
#include "crossplatform.h"
|
||||||
@ -533,22 +536,29 @@ bool LoadINISettings()
|
|||||||
|
|
||||||
// CFO check
|
// CFO check
|
||||||
if (option.m_Action < MENUACTION_NOTHING && option.m_CFO->save) {
|
if (option.m_Action < MENUACTION_NOTHING && option.m_CFO->save) {
|
||||||
// CFO only supports saving uint8 right now
|
|
||||||
|
|
||||||
// Migrate from old .ini to new .ini
|
// Migrate from old .ini to new .ini
|
||||||
if (migrate && ReadIniIfExists("FrontendOptions", option.m_CFO->save, option.m_CFO->value))
|
// Old values can only be int8, new ones can contain float if it is slider
|
||||||
|
if (migrate && ReadIniIfExists("FrontendOptions", option.m_CFO->save, (int8*)option.m_CFO->value))
|
||||||
cfg.remove("FrontendOptions", option.m_CFO->save);
|
cfg.remove("FrontendOptions", option.m_CFO->save);
|
||||||
|
else if (option.m_Action == MENUACTION_CFO_SLIDER)
|
||||||
|
ReadIniIfExists(option.m_CFO->saveCat, option.m_CFO->save, (float*)option.m_CFO->value);
|
||||||
else
|
else
|
||||||
ReadIniIfExists(option.m_CFO->saveCat, option.m_CFO->save, option.m_CFO->value);
|
ReadIniIfExists(option.m_CFO->saveCat, option.m_CFO->save, (int8*)option.m_CFO->value);
|
||||||
|
|
||||||
if (option.m_Action == MENUACTION_CFO_SELECT) {
|
if (option.m_Action == MENUACTION_CFO_SELECT) {
|
||||||
option.m_CFOSelect->lastSavedValue = option.m_CFOSelect->displayedValue = *option.m_CFO->value;
|
option.m_CFOSelect->lastSavedValue = option.m_CFOSelect->displayedValue = *(int8*)option.m_CFO->value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Fetched in above block, but needs evaluation
|
||||||
|
#ifdef PED_CAR_DENSITY_SLIDERS
|
||||||
|
CPopulation::MaxNumberOfPedsInUse = DEFAULT_MAX_NUMBER_OF_PEDS * CIniFile::PedNumberMultiplier;
|
||||||
|
CCarCtrl::MaxNumberOfCarsInUse = DEFAULT_MAX_NUMBER_OF_CARS * CIniFile::CarNumberMultiplier;
|
||||||
|
#endif
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -623,8 +633,10 @@ void SaveINISettings()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
if (option.m_Action < MENUACTION_NOTHING && option.m_CFO->save) {
|
if (option.m_Action < MENUACTION_NOTHING && option.m_CFO->save) {
|
||||||
// Beware: CFO only supports saving uint8 right now
|
if (option.m_Action == MENUACTION_CFO_SLIDER)
|
||||||
StoreIni(option.m_CFO->saveCat, option.m_CFO->save, *option.m_CFO->value);
|
StoreIni(option.m_CFO->saveCat, option.m_CFO->save, *(float*)option.m_CFO->value);
|
||||||
|
else
|
||||||
|
StoreIni(option.m_CFO->saveCat, option.m_CFO->save, *(int8*)option.m_CFO->value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,8 @@ typedef void (*ReturnPrevPageFunc)();
|
|||||||
typedef void (*ChangeFunc)(int8 before, int8 after); // called after updating the value.
|
typedef void (*ChangeFunc)(int8 before, int8 after); // called after updating the value.
|
||||||
// only called on enter if onlyApplyOnEnter set, otherwise called on every value change
|
// only called on enter if onlyApplyOnEnter set, otherwise called on every value change
|
||||||
|
|
||||||
|
typedef void (*ChangeFuncFloat)(float before, float after); // called after updating the value.
|
||||||
|
|
||||||
// for dynamic options
|
// for dynamic options
|
||||||
typedef wchar* (*DrawFunc)(bool* disabled, bool userHovering); // you must return a pointer for right text.
|
typedef wchar* (*DrawFunc)(bool* disabled, bool userHovering); // you must return a pointer for right text.
|
||||||
// you can also set *disabled if you want to gray it out.
|
// you can also set *disabled if you want to gray it out.
|
||||||
|
@ -55,7 +55,7 @@ bool CPopulation::ms_bGivePedsWeapons;
|
|||||||
int32 CPopulation::m_AllRandomPedsThisType = -1;
|
int32 CPopulation::m_AllRandomPedsThisType = -1;
|
||||||
float CPopulation::PedDensityMultiplier = 1.0f;
|
float CPopulation::PedDensityMultiplier = 1.0f;
|
||||||
uint32 CPopulation::ms_nTotalMissionPeds;
|
uint32 CPopulation::ms_nTotalMissionPeds;
|
||||||
int32 CPopulation::MaxNumberOfPedsInUse = 25;
|
int32 CPopulation::MaxNumberOfPedsInUse = DEFAULT_MAX_NUMBER_OF_PEDS;
|
||||||
uint32 CPopulation::ms_nNumCivMale;
|
uint32 CPopulation::ms_nNumCivMale;
|
||||||
uint32 CPopulation::ms_nNumCivFemale;
|
uint32 CPopulation::ms_nNumCivFemale;
|
||||||
uint32 CPopulation::ms_nNumCop;
|
uint32 CPopulation::ms_nNumCop;
|
||||||
@ -1122,12 +1122,6 @@ CPopulation::ManagePopulation(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
float dist = (ped->GetPosition() - playerPos).Magnitude2D();
|
float dist = (ped->GetPosition() - playerPos).Magnitude2D();
|
||||||
#ifdef SQUEEZE_PERFORMANCE
|
|
||||||
if (dist > 50.f)
|
|
||||||
ped->bUsesCollision = false;
|
|
||||||
else
|
|
||||||
ped->bUsesCollision = true;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
bool pedIsFarAway = false;
|
bool pedIsFarAway = false;
|
||||||
if (PedCreationDistMultiplier() * (PED_REMOVE_DIST_SPECIAL * TheCamera.GenerationDistMultiplier) < dist
|
if (PedCreationDistMultiplier() * (PED_REMOVE_DIST_SPECIAL * TheCamera.GenerationDistMultiplier) < dist
|
||||||
|
Loading…
Reference in New Issue
Block a user