From f71953077d2412c4542e616cc9748217dfe046c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?eray=20or=C3=A7unus?= Date: Tue, 29 Sep 2020 22:53:12 +0300 Subject: Population and many small classes done, mouse AUX buttons, Frontend, Hud, fixes --- src/core/ControllerConfig.cpp | 67 +-- src/core/Frontend.cpp | 1063 +++++++++++++---------------------------- src/core/Frontend.h | 25 +- src/core/Frontend_PS2.cpp | 3 + src/core/Frontend_PS2.h | 3 + src/core/IniFile.cpp | 7 +- src/core/MenuScreens.cpp | 2 - src/core/common.h | 3 + src/core/timebars.cpp | 2 +- 9 files changed, 388 insertions(+), 787 deletions(-) (limited to 'src/core') diff --git a/src/core/ControllerConfig.cpp b/src/core/ControllerConfig.cpp index bdfab34c..51e942d0 100644 --- a/src/core/ControllerConfig.cpp +++ b/src/core/ControllerConfig.cpp @@ -21,6 +21,8 @@ #include "Camera.h" #include "GenericGameStorage.h" +// --MIAMI: file done + CControllerConfigManager ControlsManager; CControllerConfigManager::CControllerConfigManager() @@ -314,6 +316,10 @@ void CControllerConfigManager::InitDefaultControlConfigMouse(CMouseControllerSta SetMouseButtonAssociatedWithAction(PED_CYCLE_WEAPON_RIGHT, 5); SetMouseButtonAssociatedWithAction(VEHICLE_CHANGE_RADIO_STATION, 4); + + SetMouseButtonAssociatedWithAction(PED_SNIPER_ZOOM_IN, 4); + + SetMouseButtonAssociatedWithAction(PED_SNIPER_ZOOM_OUT, 5); } } @@ -516,11 +522,12 @@ void CControllerConfigManager::UpdateJoyInConfigMenus_ButtonDown(int32 button, i case 13: pad->PCTempJoyState.DPadUp = 255; break; -#ifdef REGISTER_START_BUTTON case 12: - pad->PCTempJoyState.Start = 255; - break; +#ifndef REGISTER_START_BUTTON + if (padNumber == 1) #endif + pad->PCTempJoyState.Start = 255; + break; case 11: pad->PCTempJoyState.RightShock = 255; break; @@ -624,6 +631,7 @@ void CControllerConfigManager::AffectControllerStateOn_ButtonDown(int32 button, if ( mode == CCam::MODE_1STPERSON || mode == CCam::MODE_SNIPER || mode == CCam::MODE_ROCKETLAUNCHER + || mode == CCam::MODE_CAMERA || mode == CCam::MODE_M16_1STPERSON) { firstPerson = true; @@ -1642,12 +1650,12 @@ void CControllerConfigManager::DeleteMatchingCommonControls(e_ControllerAction a { if (!GetIsKeyBlank(key, type)) { - CLEAR_ACTION_IF_NEEDED(CAMERA_CHANGE_VIEW_ALL_SITUATIONS); #ifndef BIND_VEHICLE_FIREWEAPON CLEAR_ACTION_IF_NEEDED(PED_FIREWEAPON); #endif CLEAR_ACTION_IF_NEEDED(GO_LEFT); CLEAR_ACTION_IF_NEEDED(GO_RIGHT); + CLEAR_ACTION_IF_NEEDED(CAMERA_CHANGE_VIEW_ALL_SITUATIONS); CLEAR_ACTION_IF_NEEDED(NETWORK_TALK); CLEAR_ACTION_IF_NEEDED(SWITCH_DEBUG_CAM_ON); CLEAR_ACTION_IF_NEEDED(TOGGLE_DPAD); @@ -1660,15 +1668,13 @@ void CControllerConfigManager::DeleteMatching3rdPersonControls(e_ControllerActio { if (!GetIsKeyBlank(key, type)) { - CLEAR_ACTION_IF_NEEDED(PED_LOOKBEHIND); CLEAR_ACTION_IF_NEEDED(PED_CYCLE_WEAPON_LEFT); CLEAR_ACTION_IF_NEEDED(PED_CYCLE_WEAPON_RIGHT); CLEAR_ACTION_IF_NEEDED(PED_JUMPING); CLEAR_ACTION_IF_NEEDED(PED_SPRINT); - if (key == GetControllerKeyAssociatedWithAction(PED_DUCK, type)) - ClearSettingsAssociatedWithAction(PED_DUCK, type); - if (key == GetControllerKeyAssociatedWithAction(PED_ANSWER_PHONE, type)) - ClearSettingsAssociatedWithAction(PED_ANSWER_PHONE, type); + CLEAR_ACTION_IF_NEEDED(PED_LOOKBEHIND); + CLEAR_ACTION_IF_NEEDED(PED_DUCK); + CLEAR_ACTION_IF_NEEDED(PED_ANSWER_PHONE); if (FrontEndMenuManager.m_ControlMethod == CONTROL_CLASSIC) { @@ -1707,16 +1713,15 @@ void CControllerConfigManager::DeleteMatchingVehicleControls(e_ControllerAction #ifdef BIND_VEHICLE_FIREWEAPON CLEAR_ACTION_IF_NEEDED(VEHICLE_FIREWEAPON); #endif - CLEAR_ACTION_IF_NEEDED(VEHICLE_LOOKBEHIND); - CLEAR_ACTION_IF_NEEDED(VEHICLE_LOOKLEFT); - CLEAR_ACTION_IF_NEEDED(VEHICLE_LOOKRIGHT); - CLEAR_ACTION_IF_NEEDED(VEHICLE_LOOKBEHIND); // note: duplicate - CLEAR_ACTION_IF_NEEDED(VEHICLE_HORN); - CLEAR_ACTION_IF_NEEDED(VEHICLE_HANDBRAKE); CLEAR_ACTION_IF_NEEDED(VEHICLE_ACCELERATE); CLEAR_ACTION_IF_NEEDED(VEHICLE_BRAKE); CLEAR_ACTION_IF_NEEDED(VEHICLE_CHANGE_RADIO_STATION); + CLEAR_ACTION_IF_NEEDED(VEHICLE_HORN); CLEAR_ACTION_IF_NEEDED(TOGGLE_SUBMISSIONS); + CLEAR_ACTION_IF_NEEDED(VEHICLE_HANDBRAKE); + CLEAR_ACTION_IF_NEEDED(VEHICLE_LOOKLEFT); + CLEAR_ACTION_IF_NEEDED(VEHICLE_LOOKRIGHT); + CLEAR_ACTION_IF_NEEDED(VEHICLE_LOOKBEHIND); CLEAR_ACTION_IF_NEEDED(VEHICLE_TURRETLEFT); CLEAR_ACTION_IF_NEEDED(VEHICLE_TURRETRIGHT); CLEAR_ACTION_IF_NEEDED(VEHICLE_TURRETUP); @@ -1755,36 +1760,36 @@ void CControllerConfigManager::DeleteMatchingActionInitiators(e_ControllerAction DeleteMatching1rst3rdPersonControls (action, key, type); break; case ACTIONTYPE_3RDPERSON: - DeleteMatching3rdPersonControls (action, key, type); DeleteMatchingCommonControls (action, key, type); - DeleteMatchingVehicle_3rdPersonControls(action, key, type); DeleteMatching1rst3rdPersonControls (action, key, type); + DeleteMatching3rdPersonControls (action, key, type); + DeleteMatchingVehicle_3rdPersonControls(action, key, type); break; case ACTIONTYPE_VEHICLE: - DeleteMatchingVehicleControls (action, key, type); DeleteMatchingCommonControls (action, key, type); + DeleteMatchingVehicleControls (action, key, type); DeleteMatchingVehicle_3rdPersonControls(action, key, type); break; case ACTIONTYPE_VEHICLE_3RDPERSON: - DeleteMatching3rdPersonControls (action, key, type); - DeleteMatchingVehicleControls (action, key, type); DeleteMatchingCommonControls (action, key, type); DeleteMatching1rst3rdPersonControls (action, key, type); - break; - case ACTIONTYPE_1RST3RDPERSON: - DeleteMatching1rstPersonControls (action, key, type); DeleteMatching3rdPersonControls (action, key, type); - DeleteMatchingCommonControls (action, key, type); - DeleteMatchingVehicle_3rdPersonControls(action, key, type); - DeleteMatching1rst3rdPersonControls (action, key, type); + DeleteMatchingVehicleControls (action, key, type); break; case ACTIONTYPE_COMMON: + DeleteMatchingCommonControls (action, key, type); DeleteMatching1rstPersonControls (action, key, type); + DeleteMatching1rst3rdPersonControls (action, key, type); DeleteMatching3rdPersonControls (action, key, type); DeleteMatchingVehicleControls (action, key, type); DeleteMatchingVehicle_3rdPersonControls(action, key, type); + break; + case ACTIONTYPE_1RST3RDPERSON: DeleteMatchingCommonControls (action, key, type); + DeleteMatching1rstPersonControls (action, key, type); DeleteMatching1rst3rdPersonControls (action, key, type); + DeleteMatching3rdPersonControls (action, key, type); + DeleteMatchingVehicle_3rdPersonControls(action, key, type); break; default: break; } @@ -1850,15 +1855,15 @@ e_ControllerActionType CControllerConfigManager::GetActionType(e_ControllerActio #ifdef BIND_VEHICLE_FIREWEAPON case VEHICLE_FIREWEAPON: #endif - case VEHICLE_LOOKBEHIND: - case VEHICLE_LOOKLEFT: - case VEHICLE_LOOKRIGHT: - case VEHICLE_HORN: - case VEHICLE_HANDBRAKE: case VEHICLE_ACCELERATE: case VEHICLE_BRAKE: case VEHICLE_CHANGE_RADIO_STATION: + case VEHICLE_HORN: case TOGGLE_SUBMISSIONS: + case VEHICLE_HANDBRAKE: + case VEHICLE_LOOKLEFT: + case VEHICLE_LOOKRIGHT: + case VEHICLE_LOOKBEHIND: case VEHICLE_TURRETLEFT: case VEHICLE_TURRETRIGHT: case VEHICLE_TURRETUP: diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 6768b901..eee8b4b2 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -54,7 +54,7 @@ CRGBA SLIDERON_COLOR(97, 194, 247, 255); CRGBA SLIDEROFF_COLOR(27, 89, 130, 255); CRGBA LIST_BACKGROUND_COLOR(49, 101, 148, 255); -#define TIDY_UP_PBP // ProcessButtonPresses +#define TIDY_UP_PBP // ProcessUserInput #define MAX_VISIBLE_LIST_ROW 30 #define SCROLLBAR_MAX_HEIGHT 263.0f // not in end result @@ -77,28 +77,11 @@ CRGBA LIST_BACKGROUND_COLOR(49, 101, 148, 255); #define GetBackJustDown GetSquareJustDown #endif - -#ifdef PS2_LIKE_MENU -BottomBarOption bbNames[8]; -int bbTabCount = 0; -bool bottomBarActive = false; -bool reverseAlpha = false; -int pendingScreen = -1; -int pendingOption = -1; -int curBottomBarOption = -1; -int hoveredBottomBarOption = -1; -#endif - #ifdef CUTSCENE_BORDERS_SWITCH bool CMenuManager::m_PrefsCutsceneBorders = true; #endif -// Originally that was PS2 option color, they forget it here and used in PrintBriefs once(but didn't use the output anyway) -#ifdef PS2_LIKE_MENU -const CRGBA TEXT_COLOR = CRGBA(150, 110, 30, 255); -#else -const CRGBA TEXT_COLOR = CRGBA(235, 170, 50, 255); // PC briefs text color -#endif +const CRGBA TEXT_COLOR = CRGBA(150, 110, 30, 255); // TODO(Miami): is this still here? float MENU_TEXT_SIZE_X = SMALLTEXT_X_SCALE; float MENU_TEXT_SIZE_Y = SMALLTEXT_Y_SCALE; @@ -153,28 +136,15 @@ const char* FrontendFilenames[][2] = { {"upOn", "buttonA"} }; +#define MENU_X_RIGHT_ALIGNED(x) SCALE_AND_CENTER_X(DEFAULT_SCREEN_WIDTH - (x)) + #ifdef ASPECT_RATIO_SCALE // All of the defines below replace the StretchX function. Otherwise use SCREEN_SCALE_X. -#define MENU_X_LEFT_ALIGNED(x) ScaleAndCenterX(x) -#define MENU_X_RIGHT_ALIGNED(x) ScaleAndCenterX(DEFAULT_SCREEN_WIDTH - (x)) +#define MENU_X_LEFT_ALIGNED(x) SCALE_AND_CENTER_X(x) #define MENU_X(x) SCREEN_SCALE_X(x) #define MENU_Y(y) SCREEN_SCALE_Y(y) -float -ScaleAndCenterX(float x) -{ - if (SCREEN_WIDTH == DEFAULT_SCREEN_WIDTH) - return x; - else { - if (x > DEFAULT_SCREEN_WIDTH / 2) { - return SCREEN_WIDTH / 2 + SCREEN_SCALE_X(x - DEFAULT_SCREEN_WIDTH / 2); - } else { - return SCREEN_WIDTH / 2 - SCREEN_SCALE_X(DEFAULT_SCREEN_WIDTH / 2 - x); - } - } -} #else #define MENU_X_LEFT_ALIGNED(x) StretchX(x) -#define MENU_X_RIGHT_ALIGNED(x) SCREEN_STRETCH_FROM_RIGHT(x) #define MENU_X(x) StretchX(x) #define MENU_Y(y) StretchY(y) #endif @@ -314,33 +284,6 @@ CMenuManager::GetPreviousPageOption() bool DoRWStuffStartOfFrame(int16 TopRed, int16 TopGreen, int16 TopBlue, int16 BottomRed, int16 BottomGreen, int16 BottomBlue, int16 Alpha); void DoRWStuffEndOfFrame(void); -#ifdef PS2_LIKE_MENU -void -CMenuManager::SwitchToNewScreen(int8 screen) -{ - if (reverseAlpha) { - m_nPrevScreen = m_nCurrScreen; - m_nCurrScreen = pendingScreen; - m_nCurrOption = pendingOption; - reverseAlpha = false; - if (updateDelay) - m_LastScreenSwitch = CTimer::GetTimeInMillisecondsPauseMode(); - } - if (withReverseAlpha) { - pendingOption = option; - pendingScreen = screen; - reverseAlpha = true; - } else { - m_nPrevScreen = m_nCurrScreen; - m_nCurrScreen = screen; - m_nCurrOption = option; - if (updateDelay) - m_LastScreenSwitch = CTimer::GetTimeInMillisecondsPauseMode(); - } - m_nMenuFadeAlpha = 255; -} -#else - // --MIAMI: Done void CMenuManager::SwitchToNewScreen(int8 screen) @@ -381,7 +324,6 @@ CMenuManager::SwitchToNewScreen(int8 screen) m_nOptionHighlightTransitionBlend = 0; m_LastScreenSwitch = CTimer::GetTimeInMillisecondsPauseMode(); } -#endif CMenuManager::CMenuManager() { @@ -815,11 +757,7 @@ void CMenuManager::DrawStandardMenus(bool activeScreen) { float nextYToUse = 0.0f; // III leftover, set but unused in VC -#ifdef PS2_LIKE_MENU - bool itemsAreSelectable = !bottomBarActive; -#else bool itemsAreSelectable = true; -#endif CFont::SetBackgroundOff(); CFont::SetPropOn(); CFont::SetCentreOff(); @@ -2062,36 +2000,6 @@ CMenuManager::DrawFrontEnd() SetFrontEndRenderStates(); m_NoEmptyBinding = true; -#ifdef PS2_LIKE_MENU - if (m_nCurrScreen == MENUPAGE_NONE) { - if (m_bGameNotLoaded) { - if (bbTabCount != 6) { - bbNames[0] = { "FEB_SAV",MENUPAGE_NEW_GAME }; - bbNames[1] = { "FEB_CON",MENUPAGE_CONTROLLER_PC }; - bbNames[2] = { "FEB_AUD",MENUPAGE_SOUND_SETTINGS }; - bbNames[3] = { "FEB_DIS",MENUPAGE_DISPLAY_SETTINGS }; - bbNames[4] = { "FEB_LAN",MENUPAGE_LANGUAGE_SETTINGS }; - bbNames[5] = { "FESZ_QU",MENUPAGE_EXIT }; - bbTabCount = 6; - } - } else { - if (bbTabCount != 8) { - bbNames[0] = { "FEB_STA",MENUPAGE_STATS }; - bbNames[1] = { "FEB_SAV",MENUPAGE_NEW_GAME }; - bbNames[2] = { "FEB_BRI",MENUPAGE_BRIEFS }; - bbNames[3] = { "FEB_CON",MENUPAGE_CONTROLLER_PC }; - bbNames[4] = { "FEB_AUD",MENUPAGE_SOUND_SETTINGS }; - bbNames[5] = { "FEB_DIS",MENUPAGE_DISPLAY_SETTINGS }; - bbNames[6] = { "FEB_LAN",MENUPAGE_LANGUAGE_SETTINGS }; - bbNames[7] = { "FESZ_QU",MENUPAGE_EXIT }; - bbTabCount = 8; - } - } - m_nCurrScreen = bbNames[0].screenId; - bottomBarActive = true; - curBottomBarOption = 0; - } -#else if (m_nCurrScreen == MENUPAGE_NONE) { if (m_bGameNotLoaded) { m_nCurrScreen = MENUPAGE_START_MENU; @@ -2099,7 +2007,6 @@ CMenuManager::DrawFrontEnd() m_nCurrScreen = MENUPAGE_PAUSE_MENU; } } -#endif if (m_nCurrOption == 0 && aScreens[m_nCurrScreen].m_aEntries[0].m_Action == MENUACTION_LABEL) m_nCurrOption = 1; @@ -2110,200 +2017,6 @@ CMenuManager::DrawFrontEnd() DrawBackground(false); } -#ifdef PS2_LIKE_MENU -void -CMenuManager::DrawBackground() -{ - CSprite2d::InitPerFrame(); - CFont::InitPerFrame(); - RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERLINEAR); - - if (!m_bGameNotLoaded) { - CSprite2d *bg = LoadSplash(nil); - bg->Draw(CRect(0.0f, 0.0f, SCREEN_WIDTH, SCREEN_HEIGHT), CRGBA(255, 255, 255, 255)); - } else { - CSprite2d::DrawRect(CRect(0.0f, 0.0f, SCREEN_WIDTH, SCREEN_HEIGHT), CRGBA(0, 0, 0, 255)); - } - - - RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERNEAREST); - RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)FALSE); - RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)FALSE); - RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); - m_aFrontEndSprites[FE2_MAINPANEL_UL].Draw(CRect(MENU_X_LEFT_ALIGNED(0.0f), 0.0f, SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2), CRGBA(255, 255, 255, 255)); - m_aFrontEndSprites[FE2_MAINPANEL_UR].Draw(CRect(SCREEN_WIDTH / 2, 0.0f, MENU_X_RIGHT_ALIGNED(0.0f), SCREEN_HEIGHT / 2), CRGBA(255, 255, 255, 255)); - m_aFrontEndSprites[FE2_MAINPANEL_DL].Draw(CRect(MENU_X_LEFT_ALIGNED(0.0f), SCREEN_HEIGHT / 2, SCREEN_WIDTH / 2, SCREEN_HEIGHT), CRGBA(255, 255, 255, 255)); - m_aFrontEndSprites[FE2_MAINPANEL_DR].Draw(CRect(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2, MENU_X_RIGHT_ALIGNED(0.0f), SCREEN_HEIGHT), CRGBA(255, 255, 255, 255)); - - RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERLINEAR); - eFrontendSprites currentSprite; - switch (m_nCurrScreen) { - case MENUPAGE_STATS: - case MENUPAGE_START_MENU: - case MENUPAGE_PAUSE_MENU: - case MENUPAGE_EXIT: - currentSprite = FE_ICONSTATS; - break; - case MENUPAGE_LANGUAGE_SETTINGS: - currentSprite = FE_ICONLANGUAGE; - break; - case MENUPAGE_CHOOSE_LOAD_SLOT: - case MENUPAGE_CHOOSE_DELETE_SLOT: - case MENUPAGE_NEW_GAME_RELOAD: - case MENUPAGE_LOAD_SLOT_CONFIRM: - case MENUPAGE_DELETE_SLOT_CONFIRM: - currentSprite = FE_ICONSAVE; - break; - case MENUPAGE_DISPLAY_SETTINGS: - currentSprite = FE_ICONDISPLAY; - break; - case MENUPAGE_SOUND_SETTINGS: - currentSprite = FE_ICONAUDIO; - break; - case MENUPAGE_CONTROLLER_PC: - case MENUPAGE_OPTIONS: - case MENUPAGE_CONTROLLER_SETTINGS: - case MENUPAGE_KEYBOARD_CONTROLS: - case MENUPAGE_MOUSE_CONTROLS: - currentSprite = FE_ICONCONTROLS; - break; - default: - /*case MENUPAGE_NEW_GAME: */ - /*case MENUPAGE_BRIEFS: */ - currentSprite = FE_ICONBRIEF; - break; - } - - m_aFrontEndSprites[currentSprite].Draw(CRect(MENU_X_LEFT_ALIGNED(50.0f), MENU_Y(50.0f), MENU_X_RIGHT_ALIGNED(50.0f), SCREEN_SCALE_FROM_BOTTOM(95.0f)), CRGBA(255, 255, 255, m_nMenuFadeAlpha > 255 ? 255 : m_nMenuFadeAlpha)); - - static float fadeAlpha = 0.0f; - static int lastState = 0; - - // reverseAlpha = PS2 fading (wait for 255->0, then change screen) - if (m_nMenuFadeAlpha < 255) { - if (lastState == 1 && !reverseAlpha) - fadeAlpha = 0.f; - - if (m_nMenuFadeAlpha <= 0 && reverseAlpha) { - reverseAlpha = false; - ChangeScreen(pendingScreen, pendingOption, true, false); - } else { - // +20 per every 33 ms (1000.f/30.f - original frame limiter fps) - if (!reverseAlpha) - fadeAlpha += (frameTime) * 20.f / 33.f; - else - fadeAlpha = max(0.0f, fadeAlpha - (frameTime) * 30.f / 33.f); - - m_nMenuFadeAlpha = fadeAlpha; - } - lastState = 0; - } else { - if (lastState == 0) fadeAlpha = 255.f; - - if (reverseAlpha) { - fadeAlpha -= (frameTime) * 30.f / 33.f; - - m_nMenuFadeAlpha = fadeAlpha; - } - lastState = 1; - - // TODO: what is this? waiting mouse? - if(field_518 == 4){ - if(m_nHoverOption == HOVEROPTION_3 || m_nHoverOption == HOVEROPTION_4 || - m_nHoverOption == HOVEROPTION_5 || m_nHoverOption == HOVEROPTION_6 || m_nHoverOption == HOVEROPTION_7) - - field_518 = 2; - else - field_518 = 1; - } - } - - RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERNEAREST); - RwRenderStateSet(rwRENDERSTATETEXTUREADDRESS, (void*)rwTEXTUREADDRESSCLAMP); - RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); - switch (m_nCurrScreen) { - case MENUPAGE_SKIN_SELECT: - DrawPlayerSetupScreen(); - break; - case MENUPAGE_KEYBOARD_CONTROLS: - DrawControllerSetupScreen(); - break; - default: - DrawStandardMenus(); - break; - } - - #define optionWidth MENU_X(66.0f) - #define rawOptionHeight 22.0f - #define optionBottom SCREEN_SCALE_FROM_BOTTOM(20.0f) - #define optionTop SCREEN_SCALE_FROM_BOTTOM(20.0f + rawOptionHeight) - #define leftPadding MENU_X_LEFT_ALIGNED(90.0f) - wchar *str; - hoveredBottomBarOption = -1; - if (curBottomBarOption != -1) { - - // This active tab sprite is needlessly big - m_aFrontEndSprites[FE2_TABACTIVE].Draw(CRect(leftPadding - MENU_X(2.0f) + (optionWidth) * curBottomBarOption, optionTop, - leftPadding - MENU_X(5.0f) + optionWidth * (curBottomBarOption + 2), optionBottom + MENU_Y(rawOptionHeight - 9.0f)), - CRGBA(CRGBA(255, 255, 255, 255))); - - for (int i = 0; i < bbTabCount; i++) { - float xStart = leftPadding + optionWidth * i; - if (CheckHover(xStart, xStart + optionWidth, optionTop, optionBottom)) - hoveredBottomBarOption = i; - - CFont::SetFontStyle(FONT_LOCALE(FONT_STANDARD)); - CFont::SetScale(MENU_X(0.35f), MENU_Y(0.7f)); - CFont::SetRightJustifyOff(); - if (hoveredBottomBarOption == i && hoveredBottomBarOption != curBottomBarOption) - CFont::SetColor(CRGBA(235, 170, 50, 255)); - else { - if(bottomBarActive || curBottomBarOption == i) - CFont::SetColor(CRGBA(0, 0, 0, 255)); - else - CFont::SetColor(CRGBA(0, 0, 0, 110)); - } - - str = TheText.Get(bbNames[i].name); - - CFont::PrintString(xStart + MENU_X(4.0f), SCREEN_SCALE_FROM_BOTTOM(39.0f), str); - - } - } - #undef optionBottom - #undef optionTop - #undef leftPadding - #undef optionWidth - #undef rawOptionHeight - - CFont::DrawFonts(); - - // Draw mouse - RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERLINEAR); - RwRenderStateSet(rwRENDERSTATETEXTUREADDRESS, (void*)rwTEXTUREADDRESSCLAMP); - if (m_bShowMouse) { - RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA); - RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA); - RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)TRUE); - - CRect mouse(0.0f, 0.0f, MENU_X(75.0f), MENU_Y(75.0f)); - CRect shad(MENU_X(10.0f), MENU_Y(3.0f), MENU_X(85.0f), MENU_Y(78.0f)); - - mouse.Translate(m_nMousePosX, m_nMousePosY); - shad.Translate(m_nMousePosX, m_nMousePosY); - if(field_518 == 4){ - m_aFrontEndSprites[MENUSPRITE_MOUSET].Draw(shad, CRGBA(100, 100, 100, 50)); - RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); - m_aFrontEndSprites[MENUSPRITE_MOUSET].Draw(mouse, CRGBA(255, 255, 255, 255)); - }else{ - m_aFrontEndSprites[MENUSPRITE_MOUSE].Draw(shad, CRGBA(100, 100, 100, 50)); - RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE); - m_aFrontEndSprites[MENUSPRITE_MOUSE].Draw(mouse, CRGBA(255, 255, 255, 255)); - } - } -} -#else - // --MIAMI: Done except commented things void CMenuManager::DrawBackground(bool transitionCall) @@ -2527,7 +2240,6 @@ CMenuManager::DrawBackground(bool transitionCall) m_aFrontEndSprites[MENUSPRITE_MOUSE].Draw(mouse, CRGBA(255, 255, 255, 255)); } } -#endif void CMenuManager::DrawPlayerSetupScreen(bool activeScreen) @@ -3825,7 +3537,7 @@ CMenuManager::UserInput(void) if (m_nCurrScreen == MENUPAGE_KEYBOARD_CONTROLS || m_nCurrScreen == MENUPAGE_SKIN_SELECT) { ProcessList(optionSelected, goBack); } else { - // TODO(Miami): Seperate that code into a new function from ProcessButtonPresses + // TODO(Miami): Seperate that code into a new function from ProcessUserInput // ProcessScrollingExceptLists(goBack); if (m_AllowNavigation && @@ -3858,19 +3570,13 @@ CMenuManager::UserInput(void) if (CPad::GetPad(0)->GetLeftMouseJustUp() && m_nCurrScreen != MENUPAGE_MAP) { // TODO(Miami): New radio selector if (m_nHoverOption == HOVEROPTION_RANDOM_ITEM) { - m_nCurrOption = m_nOptionMouseHovering; optionSelected = true; } } // TODO(Miami): This part is old radio selector, remove when new is reversed!! else if (CPad::GetPad(0)->GetLeftMouseJustDown()) { if (m_nHoverOption >= HOVEROPTION_RADIO_0 && m_nHoverOption <= HOVEROPTION_RADIO_9) { - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); - m_PrefsRadioStation = m_nHoverOption - HOVEROPTION_RADIO_0; - SaveSettings(); - DMAudio.SetRadioInCar(m_PrefsRadioStation); - DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1); - OutputDebugString("FRONTEND RADIO STATION CHANGED"); + ChangeRadioStation(m_nHoverOption - HOVEROPTION_RADIO_0 - m_PrefsRadioStation); } } @@ -3909,7 +3615,7 @@ CMenuManager::UserInput(void) } if (CPad::GetPad(0)->GetBackJustDown() || CPad::GetPad(0)->GetEscapeJustDown()) { - if (m_nCurrScreen != MENUPAGE_NONE && m_nCurrScreen != MENUPAGE_PAUSE_MENU && m_nCurrScreen != MENUPAGE_CHOOSE_SAVE_SLOT + if (m_nCurrScreen != MENUPAGE_START_MENU && m_nCurrScreen != MENUPAGE_PAUSE_MENU && m_nCurrScreen != MENUPAGE_CHOOSE_SAVE_SLOT && m_nCurrScreen != MENUPAGE_SAVE_CHEAT_WARNING && m_nCurrScreen != MENUPAGE_SAVING_IN_PROGRESS && m_nCurrScreen != MENUPAGE_DELETING_IN_PROGRESS && m_nCurrScreen != MENUPAGE_OUTRO) { @@ -3983,13 +3689,12 @@ CMenuManager::UserInput(void) DMAudio.PlayFrontEndSound(SOUND_FRONTEND_FAIL, 0); } } - ProcessButtonPresses(goDown, goUp, optionSelected, goBack, changeValueBy); + ProcessUserInput(goDown, goUp, optionSelected, goBack, changeValueBy); } -// TODO(Miami) -// Also rename it to ProcessUserInput when it's done +// --MIAMI: Done except TODOs void -CMenuManager::ProcessButtonPresses(uint8 goDown, uint8 goUp, uint8 optionSelected, uint8 goBack, int8 changeAmount) +CMenuManager::ProcessUserInput(uint8 goDown, uint8 goUp, uint8 optionSelected, uint8 goBack, int8 changeAmount) { if (m_nCurrScreen == MENUPAGE_OUTRO) return; @@ -4012,7 +3717,10 @@ CMenuManager::ProcessButtonPresses(uint8 goDown, uint8 goUp, uint8 optionSelecte MouseButtonJustClicked = 4; else if (CPad::GetPad(0)->GetMouseWheelDownJustUp()) MouseButtonJustClicked = 5; - // TODO two more buttons + else if (CPad::GetPad(0)->GetMouseX1JustUp()) + MouseButtonJustClicked = 6; + else if (CPad::GetPad(0)->GetMouseX2JustUp()) + MouseButtonJustClicked = 7; JoyButtonJustClicked = ControlsManager.GetJoyButtonJustDown(); @@ -4072,45 +3780,6 @@ CMenuManager::ProcessButtonPresses(uint8 goDown, uint8 goUp, uint8 optionSelecte } #endif -#ifdef PS2_LIKE_MENU - if (CPad::GetPad(0)->GetLeftMouseJustDown() && hoveredBottomBarOption != -1) { - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_NEW_PAGE, 0); - bottomBarActive = false; - curBottomBarOption = hoveredBottomBarOption; - ChangeScreen(bbNames[curBottomBarOption].screenId, 0, true, false); - return; - } else if (bottomBarActive) { - if (CPad::GetPad(0)->GetEnterJustDown() || CPad::GetPad(0)->GetCrossJustDown()) { - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_NEW_PAGE, 0); - bottomBarActive = false; - - // If there's a menu change with fade ongoing, finish it now - if (reverseAlpha) - m_nMenuFadeAlpha = 0; - return; - } else if (CPad::GetPad(0)->GetLeftJustDown() || CPad::GetPad(0)->GetAnaloguePadLeft() || CPad::GetPad(0)->GetDPadLeftJustDown() - || CPad::GetPad(0)->GetUpJustDown() || CPad::GetPad(0)->GetAnaloguePadUp() || CPad::GetPad(0)->GetDPadUpJustDown()) { - m_bShowMouse = false; - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_NEW_PAGE, 0); - if (curBottomBarOption > 0) - curBottomBarOption--; - ChangeScreen(bbNames[curBottomBarOption].screenId, 0, true, true); - return; - } else if (CPad::GetPad(0)->GetRightJustDown() || CPad::GetPad(0)->GetAnaloguePadRight() || CPad::GetPad(0)->GetDPadRightJustDown() - || CPad::GetPad(0)->GetDownJustDown() || CPad::GetPad(0)->GetAnaloguePadDown() || CPad::GetPad(0)->GetDPadDownJustDown()) { - m_bShowMouse = false; - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_NEW_PAGE, 0); - if (curBottomBarOption < bbTabCount-1) - curBottomBarOption++; - ChangeScreen(bbNames[curBottomBarOption].screenId, 0, true, true); - return; - } - optionSelected = false; - goDown = false; - goUp = false; - } -#endif - int oldOption = m_nCurrOption; if (goDown) { if (m_nCurrScreen != MENUPAGE_MAP) @@ -4139,435 +3808,327 @@ CMenuManager::ProcessButtonPresses(uint8 goDown, uint8 goUp, uint8 optionSelecte m_nOptionHighlightTransitionBlend = 0; } - if (optionSelected) { - int option = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action; - if (option == MENUACTION_CHANGEMENU || option == MENUACTION_POPULATESLOTS_CHANGEMENU || option == MENUACTION_GOBACK - || option == MENUACTION_YES || option == MENUACTION_NO) { - if (strncmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FEDS_TB", 8) != 0 && - strncmp(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_EntryName, "FESZ_CA", 8) != 0) { - - if (m_nCurrScreen == MENUPAGE_CHOOSE_DELETE_SLOT) { - if (Slots[m_nCurrOption] != SLOT_OK) - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_BACK, 0); - else - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_FAIL, 0); - } else - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_NEW_PAGE, 0); - } else { - // This is duplicate, back button already processed below -#ifndef TIDY_UP_PBP - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_EXIT, 0); - if (m_nCurrScreen == MENUPAGE_SOUND_SETTINGS) { - DMAudio.StopFrontEndTrack(); - OutputDebugString("FRONTEND AUDIO TRACK STOPPED"); - } -#endif - } - } else if (option == MENUACTION_CHECKSAVE) { - if (Slots[aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_SaveSlot - 1] == SLOT_EMPTY) { - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_FAIL, 0); - } else { - if (m_nCurrScreen != MENUPAGE_NEW_GAME_RELOAD) { - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); - } - } - } else if (option != MENUACTION_CHANGEMENU && option != MENUACTION_BRIGHTNESS && option != MENUACTION_DRAWDIST - && option != MENUACTION_MUSICVOLUME && option != MENUACTION_SFXVOLUME - && option != MENUACTION_CHECKSAVE && option != MENUACTION_MOUSESENS - && option != MENUACTION_YES && option != MENUACTION_NO - && option != MENUACTION_SCREENRES) { - - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); - } - - if ((m_nCurrScreen == MENUPAGE_KEYBOARD_CONTROLS) || (m_nCurrScreen == MENUPAGE_SKIN_SELECT)) { + if (optionSelected && m_nMenuFadeAlpha == 255) { + if (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_TargetMenu == MENUPAGE_NEW_GAME_RELOAD && m_bGameNotLoaded) { + DoSettingsBeforeStartingAGame(); + } else if ((m_nCurrScreen == MENUPAGE_KEYBOARD_CONTROLS) || (m_nCurrScreen == MENUPAGE_SKIN_SELECT)) { switch (m_nCurrExLayer) { - default: - goBack = true; - break; - case HOVEROPTION_LIST: - if (m_nCurrScreen == MENUPAGE_KEYBOARD_CONTROLS) { - m_bWaitingForNewKeyBind = true; - m_bStartWaitingForKeyBind = true; - pControlEdit = &m_KeyPressedCode; - } - if (m_nCurrScreen == MENUPAGE_SKIN_SELECT) { - strcpy(m_PrefsSkinFile, m_aSkinName); - CWorld::Players[0].SetPlayerSkin(m_PrefsSkinFile); - m_nCurrExLayer = HOVEROPTION_BACK; - SaveSettings(); - } - m_nHoverOption = HOVEROPTION_NOT_HOVERING; - break; - case HOVEROPTION_USESKIN: - m_nHoverOption = HOVEROPTION_NOT_HOVERING; + case HOVEROPTION_LIST: + if (m_nCurrScreen == MENUPAGE_KEYBOARD_CONTROLS) { + m_bWaitingForNewKeyBind = true; + m_bStartWaitingForKeyBind = true; + pControlEdit = &m_KeyPressedCode; + } + if (m_nCurrScreen == MENUPAGE_SKIN_SELECT) { strcpy(m_PrefsSkinFile, m_aSkinName); CWorld::Players[0].SetPlayerSkin(m_PrefsSkinFile); m_nCurrExLayer = HOVEROPTION_BACK; SaveSettings(); - break; + } + m_nHoverOption = HOVEROPTION_NOT_HOVERING; + break; + case HOVEROPTION_USESKIN: + m_nHoverOption = HOVEROPTION_NOT_HOVERING; + strcpy(m_PrefsSkinFile, m_aSkinName); + CWorld::Players[0].SetPlayerSkin(m_PrefsSkinFile); + m_nCurrExLayer = HOVEROPTION_BACK; + SaveSettings(); + break; + case HOVEROPTION_BACK: + default: + goBack = true; + break; } - } else if (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_TargetMenu == MENUPAGE_NEW_GAME_RELOAD && m_bGameNotLoaded) { - DoSettingsBeforeStartingAGame(); -/* } else if (m_nCurrScreen == MENUPAGE_KEYBOARD_CONTROLS) { - // .. either empty or there was some outer if. :shrug: pointless anyway, keyboard_controls is handled in first if. -*/ - } else if (m_nCurrScreen == MENUPAGE_SKIN_SELECT) { if (m_nSkinsTotal > 0) { m_pSelectedSkin = m_pSkinListHead.nextSkin; strcpy(m_PrefsSkinFile, m_aSkinName); CWorld::Players[0].SetPlayerSkin(m_PrefsSkinFile); SaveSettings(); - } else { - SwitchToNewScreen(-2); } - } else { - option = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action; - switch (option) { - case MENUACTION_RADIO: - ++m_PrefsRadioStation; - if (DMAudio.IsMP3RadioChannelAvailable()) { - if (m_PrefsRadioStation > USERTRACK) - m_PrefsRadioStation = WILDSTYLE; - } else if (m_PrefsRadioStation > WAVE) { - m_PrefsRadioStation = USERTRACK; - } - SaveSettings(); - DMAudio.SetRadioInCar(m_PrefsRadioStation); - DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1); - OutputDebugString("FRONTEND RADIO STATION CHANGED"); - break; - case MENUACTION_LANG_ENG: - m_PrefsLanguage = LANGUAGE_AMERICAN; - m_bFrontEnd_ReloadObrTxtGxt = true; - InitialiseChangedLanguageSettings(); - SaveSettings(); - break; - case MENUACTION_LANG_FRE: - m_PrefsLanguage = LANGUAGE_FRENCH; - m_bFrontEnd_ReloadObrTxtGxt = true; - InitialiseChangedLanguageSettings(); - SaveSettings(); - break; - case MENUACTION_LANG_GER: - m_PrefsLanguage = LANGUAGE_GERMAN; - m_bFrontEnd_ReloadObrTxtGxt = true; - InitialiseChangedLanguageSettings(); - SaveSettings(); - break; - case MENUACTION_LANG_ITA: - m_PrefsLanguage = LANGUAGE_ITALIAN; - m_bFrontEnd_ReloadObrTxtGxt = true; - InitialiseChangedLanguageSettings(); - SaveSettings(); - break; - case MENUACTION_LANG_SPA: - m_PrefsLanguage = LANGUAGE_SPANISH; - m_bFrontEnd_ReloadObrTxtGxt = true; - InitialiseChangedLanguageSettings(); - SaveSettings(); - break; - case MENUACTION_POPULATESLOTS_CHANGEMENU: - PcSaveHelper.PopulateSlotInfo(); + } - // fall through - case MENUACTION_CHANGEMENU: - case MENUACTION_YES: - case MENUACTION_NO: - { + int option = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action; + switch (option) { + case MENUACTION_CHANGEMENU: + case MENUACTION_YES: + case MENUACTION_NO: #ifdef CUSTOM_MAP - if (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_TargetMenu == MENUPAGE_MAP) { - bMapLoaded = false; - } - -#endif - SwitchToNewScreen(0); - break; - } - case MENUACTION_GOBACK: - goBack = true; - break; - case MENUACTION_CHECKSAVE: - { - int saveSlot = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_SaveSlot; - - if (saveSlot >= 2 && saveSlot <= 9) { - m_nCurrSaveSlot = saveSlot - 2; - if (Slots[m_nCurrSaveSlot] != SLOT_EMPTY && Slots[m_nCurrSaveSlot] != SLOT_CORRUPTED) { - if (m_nCurrScreen == MENUPAGE_CHOOSE_LOAD_SLOT) { - SwitchToNewScreen(MENUPAGE_LOAD_SLOT_CONFIRM); - } else if (m_nCurrScreen == MENUPAGE_CHOOSE_DELETE_SLOT) { - SwitchToNewScreen(MENUPAGE_DELETE_SLOT_CONFIRM); - } - } - } - break; + if (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_TargetMenu == MENUPAGE_MAP) { + bMapLoaded = false; } - case MENUACTION_NEWGAME: - DoSettingsBeforeStartingAGame(); - break; - case MENUACTION_RELOADIDE: - CFileLoader::ReloadObjectTypes("GTA3.IDE"); - break; - case MENUACTION_RESUME_FROM_SAVEZONE: - RequestFrontEndShutDown(); - break; - case MENUACTION_KEYBOARDCTRLS: - SwitchToNewScreen(MENUPAGE_KEYBOARD_CONTROLS); - m_nSelectedListRow = 0; - m_nCurrExLayer = HOVEROPTION_LIST; - break; - case MENUACTION_GETKEY: - m_CurrCntrlAction = GetStartOptionsCntrlConfigScreens() + m_nCurrOption; - m_bKeyIsOK = true; - m_bWaitingForNewKeyBind = true; - m_bStartWaitingForKeyBind = true; - pControlEdit = &m_KeyPressedCode; - break; - case MENUACTION_CANCELGAME: - DMAudio.Service(); - SwitchToNewScreen(MENUPAGE_OUTRO); - break; - case MENUACTION_RESUME: -#ifdef LEGACY_MENU_OPTIONS - if (m_PrefsVsyncDisp != m_PrefsVsync) { - m_PrefsVsync = m_PrefsVsyncDisp; - } -#endif - RequestFrontEndShutDown(); - break; - case MENUACTION_DONTCANCEL: - SwitchToNewScreen(-2); - break; - case MENUACTION_SCREENRES: - if (m_nDisplayVideoMode != m_nPrefsVideoMode) { - m_nPrefsVideoMode = m_nDisplayVideoMode; - _psSelectScreenVM(m_nPrefsVideoMode); - DMAudio.ChangeMusicMode(MUSICMODE_FRONTEND); - DMAudio.Service(); - CentreMousePointer(); - m_bShowMouse = true; - // m_nCurrOption = 5; // Why? TODO(Miami) - m_nOptionHighlightTransitionBlend = 0; - SaveSettings(); - } - break; -#ifdef IMPROVED_VIDEOMODE - case MENUACTION_SCREENFORMAT: - if (m_nSelectedScreenMode != m_nPrefsWindowed) { - m_nPrefsWindowed = m_nSelectedScreenMode; - _psSelectScreenVM(m_nPrefsVideoMode); // apply same resolution - SaveSettings(); - } - break; + #endif - case MENUACTION_AUDIOHW: - { - int selectedProvider = m_nPrefsAudio3DProviderIndex; - if (selectedProvider != NO_AUDIO_PROVIDER) { - if (selectedProvider == -1) - selectedProvider = m_nPrefsAudio3DProviderIndex = DMAudio.AutoDetect3DProviders(); - m_nPrefsAudio3DProviderIndex = DMAudio.SetCurrent3DProvider(m_nPrefsAudio3DProviderIndex); - if (selectedProvider != m_nPrefsAudio3DProviderIndex) { - SetHelperText(5); + SwitchToNewScreen(aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_TargetMenu); + break; + case MENUACTION_RADIO: + ChangeRadioStation(1); + break; + case MENUACTION_LANG_ENG: + m_PrefsLanguage = LANGUAGE_AMERICAN; + m_bFrontEnd_ReloadObrTxtGxt = true; + InitialiseChangedLanguageSettings(); + SaveSettings(); + break; + case MENUACTION_LANG_FRE: + m_PrefsLanguage = LANGUAGE_FRENCH; + m_bFrontEnd_ReloadObrTxtGxt = true; + InitialiseChangedLanguageSettings(); + SaveSettings(); + break; + case MENUACTION_LANG_GER: + m_PrefsLanguage = LANGUAGE_GERMAN; + m_bFrontEnd_ReloadObrTxtGxt = true; + InitialiseChangedLanguageSettings(); + SaveSettings(); + break; + case MENUACTION_LANG_ITA: + m_PrefsLanguage = LANGUAGE_ITALIAN; + m_bFrontEnd_ReloadObrTxtGxt = true; + InitialiseChangedLanguageSettings(); + SaveSettings(); + break; + case MENUACTION_LANG_SPA: + m_PrefsLanguage = LANGUAGE_SPANISH; + m_bFrontEnd_ReloadObrTxtGxt = true; + InitialiseChangedLanguageSettings(); + SaveSettings(); + break; + case MENUACTION_CHECKSAVE: + { + int saveSlot = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_SaveSlot; + + if (saveSlot >= 2 && saveSlot <= 9) { + m_nCurrSaveSlot = saveSlot - 2; + if (Slots[m_nCurrSaveSlot] != SLOT_EMPTY && Slots[m_nCurrSaveSlot] != SLOT_CORRUPTED) { + if (m_nCurrScreen == MENUPAGE_CHOOSE_LOAD_SLOT) { + SwitchToNewScreen(MENUPAGE_LOAD_SLOT_CONFIRM); + } else if (m_nCurrScreen == MENUPAGE_CHOOSE_DELETE_SLOT) { + SwitchToNewScreen(MENUPAGE_DELETE_SLOT_CONFIRM); } - SaveSettings(); } - break; } - case MENUACTION_SPEAKERCONF: - if (m_nPrefsAudio3DProviderIndex != NO_AUDIO_PROVIDER) { - if (--m_PrefsSpeakers < 0) - m_PrefsSpeakers = 2; - DMAudio.SetSpeakerConfig(m_PrefsSpeakers); - SaveSettings(); - } - break; - case MENUACTION_PLAYERSETUP: - CPlayerSkin::BeginFrontendSkinEdit(); - SwitchToNewScreen(MENUPAGE_SKIN_SELECT); - m_nCurrExLayer = HOVEROPTION_LIST; - m_bSkinsEnumerated = false; - break; - case MENUACTION_RESTOREDEF: - if (m_nCurrScreen == MENUPAGE_SOUND_SETTINGS) { - m_nPrefsAudio3DProviderIndex = DMAudio.AutoDetect3DProviders(); - DMAudio.SetCurrent3DProvider(m_nPrefsAudio3DProviderIndex); - m_PrefsSfxVolume = 49; - m_PrefsMusicVolume = 49; - m_PrefsRadioStation = EMOTION; - m_PrefsMP3BoostVolume = 0; - m_PrefsStereoMono = 1; - m_PrefsSpeakers = 0; - // DMAudio.SetMP3BoostVolume(m_PrefsMP3BoostVolume); // TODO(Miami) - DMAudio.SetMusicMasterVolume(m_PrefsMusicVolume); - DMAudio.SetEffectsMasterVolume(m_PrefsSfxVolume); - DMAudio.SetRadioInCar(m_PrefsRadioStation); - DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1); - SaveSettings(); - } else if (m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) { - m_PrefsBrightness = 256; - m_PrefsLOD = 1.2f; + break; + } + case MENUACTION_NEWGAME: + DoSettingsBeforeStartingAGame(); + break; #ifdef LEGACY_MENU_OPTIONS - m_PrefsVsync = true; -#endif - CRenderer::ms_lodDistScale = m_PrefsLOD; - m_PrefsShowSubtitles = false; - m_PrefsUseWideScreen = false; - m_PrefsShowLegends = true; - m_PrefsVsyncDisp = true; - m_PrefsFrameLimiter = true; - m_PrefsRadarMode = 0; - m_PrefsShowHud = true; - m_nDisplayVideoMode = m_nPrefsVideoMode; - CMBlur::BlurOn = false; - SaveSettings(); - } else if (m_nCurrScreen == MENUPAGE_CONTROLLER_PC) { - ControlsManager.MakeControllerActionsBlank(); - ControlsManager.InitDefaultControlConfiguration(); - ControlsManager.InitDefaultControlConfigMouse(MousePointerStateHelper.GetMouseSetUp()); -#if !defined RW_GL3 - if (AllValidWinJoys.m_aJoys[JOYSTICK1].m_bInitialised) { - DIDEVCAPS devCaps; - devCaps.dwSize = sizeof(DIDEVCAPS); - PSGLOBAL(joy1)->GetCapabilities(&devCaps); - ControlsManager.InitDefaultControlConfigJoyPad(devCaps.dwButtons); - } -#else - if (PSGLOBAL(joy1id) != -1 && glfwJoystickPresent(PSGLOBAL(joy1id))) { - int count; - glfwGetJoystickButtons(PSGLOBAL(joy1id), &count); - ControlsManager.InitDefaultControlConfigJoyPad(count); - } + case MENUACTION_RELOADIDE: + CFileLoader::ReloadObjectTypes("GTA3.IDE"); + break; #endif - MousePointerStateHelper.bInvertVertically = true; - TheCamera.m_bHeadBob = false; - TheCamera.m_fMouseAccelHorzntl = 0.0025f; - CVehicle::m_bDisableMouseSteering = true; - m_ControlMethod = CONTROL_STANDARD; - TheCamera.m_bUseMouse3rdPerson = true; - SaveSettings(); - } - SetHelperText(2); - break; - case MENUACTION_CTRLMETHOD: - if (m_ControlMethod == CONTROL_CLASSIC) { - CCamera::m_bUseMouse3rdPerson = true; - m_ControlMethod = CONTROL_STANDARD; - } else { - CCamera::m_bUseMouse3rdPerson = false; - m_ControlMethod = CONTROL_CLASSIC; - } - SaveSettings(); - break; - case MENUACTION_LOADRADIO: + case MENUACTION_RESUME_FROM_SAVEZONE: + RequestFrontEndShutDown(); + break; + case MENUACTION_LOADRADIO: + if (m_nPrefsAudio3DProviderIndex != NO_AUDIO_PROVIDER) { SwitchToNewScreen(MENUPAGE_SOUND_SETTINGS); DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1); OutputDebugString("STARTED PLAYING FRONTEND AUDIO TRACK"); - break; - case MENUACTION_SAVEGAME: - { - int saveSlot = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_SaveSlot; + } + break; + case MENUACTION_SAVEGAME: + { + int saveSlot = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_SaveSlot; - if (saveSlot >= 2 && saveSlot <= 9) { - m_nCurrSaveSlot = m_nCurrOption; - SwitchToNewScreen(MENUPAGE_SAVE_OVERWRITE_CONFIRM); - } - break; + if (saveSlot >= 2 && saveSlot <= 9) { + m_nCurrSaveSlot = m_nCurrOption; + SwitchToNewScreen(MENUPAGE_SAVE_OVERWRITE_CONFIRM); } + break; } - } - ProcessOnOffMenuOptions(); - } - - if (goBack) { - ResetHelperText(); - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_BACK, 0); -#ifdef PS2_LIKE_MENU - if (m_nCurrScreen == MENUPAGE_PAUSE_MENU || bottomBarActive) { -#else - if (m_nCurrScreen == MENUPAGE_PAUSE_MENU) { -#endif - if (!m_bGameNotLoaded) { + case MENUACTION_RADARMODE: + if (++m_PrefsRadarMode > 2) + m_PrefsRadarMode = 0; + SaveSettings(); + break; + case MENUACTION_GOBACK: + goBack = true; + break; + case MENUACTION_KEYBOARDCTRLS: + SwitchToNewScreen(MENUPAGE_KEYBOARD_CONTROLS); + m_nSelectedListRow = 0; + m_nCurrExLayer = HOVEROPTION_LIST; + break; + case MENUACTION_GETKEY: + m_CurrCntrlAction = GetStartOptionsCntrlConfigScreens() + m_nCurrOption; + m_bKeyIsOK = true; + m_bWaitingForNewKeyBind = true; + m_bStartWaitingForKeyBind = true; + pControlEdit = &m_KeyPressedCode; + break; + case MENUACTION_CANCELGAME: + DMAudio.Service(); + SwitchToNewScreen(MENUPAGE_OUTRO); + break; + case MENUACTION_RESUME: #ifdef LEGACY_MENU_OPTIONS if (m_PrefsVsyncDisp != m_PrefsVsync) { m_PrefsVsync = m_PrefsVsyncDisp; } #endif RequestFrontEndShutDown(); + break; + case MENUACTION_DONTCANCEL: + SwitchToNewScreen(-2); + break; + case MENUACTION_SCREENRES: + if (m_nDisplayVideoMode != m_nPrefsVideoMode) { + m_nPrefsVideoMode = m_nDisplayVideoMode; + _psSelectScreenVM(m_nPrefsVideoMode); + DMAudio.ChangeMusicMode(MUSICMODE_FRONTEND); + DMAudio.Service(); + CentreMousePointer(); + m_bShowMouse = true; + m_nCurrOption = 5; // TODO(Miami): Because selected option is resetted after res. change. We'll need to revisit that. + m_nOptionHighlightTransitionBlend = 0; + SaveSettings(); + } + break; +#ifdef IMPROVED_VIDEOMODE + case MENUACTION_SCREENFORMAT: + if (m_nSelectedScreenMode != m_nPrefsWindowed) { + m_nPrefsWindowed = m_nSelectedScreenMode; + _psSelectScreenVM(m_nPrefsVideoMode); // apply same resolution + SaveSettings(); + } + break; +#endif + case MENUACTION_AUDIOHW: + { + int selectedProvider = m_nPrefsAudio3DProviderIndex; + if (selectedProvider != NO_AUDIO_PROVIDER) { + if (selectedProvider == -1) + selectedProvider = m_nPrefsAudio3DProviderIndex = DMAudio.AutoDetect3DProviders(); + m_nPrefsAudio3DProviderIndex = DMAudio.SetCurrent3DProvider(m_nPrefsAudio3DProviderIndex); + if (selectedProvider != m_nPrefsAudio3DProviderIndex) { + SetHelperText(5); + } + SaveSettings(); + } + break; } - - // We're already resuming, we don't need further processing. -#if defined(FIX_BUGS) || defined(PS2_LIKE_MENU) - return; + case MENUACTION_SPEAKERCONF: + if (m_nPrefsAudio3DProviderIndex != NO_AUDIO_PROVIDER) { + if (--m_PrefsSpeakers < 0) + m_PrefsSpeakers = 2; + DMAudio.SetSpeakerConfig(m_PrefsSpeakers); + SaveSettings(); + } + break; + case MENUACTION_PLAYERSETUP: + CPlayerSkin::BeginFrontendSkinEdit(); + SwitchToNewScreen(MENUPAGE_SKIN_SELECT); + m_bSkinsEnumerated = false; + m_nCurrExLayer = HOVEROPTION_LIST; + break; + case MENUACTION_RESTOREDEF: + if (m_nCurrScreen == MENUPAGE_SOUND_SETTINGS) { + m_nPrefsAudio3DProviderIndex = DMAudio.AutoDetect3DProviders(); + DMAudio.SetCurrent3DProvider(m_nPrefsAudio3DProviderIndex); + m_PrefsSfxVolume = 49; + m_PrefsMusicVolume = 49; + m_PrefsRadioStation = EMOTION; + m_PrefsMP3BoostVolume = 0; + m_PrefsStereoMono = 1; + m_PrefsSpeakers = 0; + // DMAudio.SetMP3BoostVolume(m_PrefsMP3BoostVolume); // TODO(Miami) + DMAudio.SetMusicMasterVolume(m_PrefsMusicVolume); + DMAudio.SetEffectsMasterVolume(m_PrefsSfxVolume); + DMAudio.SetRadioInCar(m_PrefsRadioStation); + DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1); + SaveSettings(); + } else if (m_nCurrScreen == MENUPAGE_DISPLAY_SETTINGS) { + m_PrefsBrightness = 256; + m_PrefsLOD = 1.2f; +#ifdef LEGACY_MENU_OPTIONS + m_PrefsVsync = true; #endif - } -#ifdef PS2_LIKE_MENU - else if (m_nCurrScreen == MENUPAGE_CHOOSE_SAVE_SLOT || m_nCurrScreen == MENUPAGE_SAVE) { + CRenderer::ms_lodDistScale = m_PrefsLOD; + m_PrefsShowSubtitles = false; + m_PrefsUseWideScreen = false; + m_PrefsShowLegends = true; + m_PrefsVsyncDisp = true; + m_PrefsFrameLimiter = true; + m_PrefsRadarMode = 0; + m_PrefsShowHud = true; + m_nDisplayVideoMode = m_nPrefsVideoMode; + CMBlur::BlurOn = false; + SaveSettings(); + } else if (m_nCurrScreen == MENUPAGE_CONTROLLER_PC) { + ControlsManager.MakeControllerActionsBlank(); + ControlsManager.InitDefaultControlConfiguration(); + ControlsManager.InitDefaultControlConfigMouse(MousePointerStateHelper.GetMouseSetUp()); +#if !defined RW_GL3 + if (AllValidWinJoys.m_aJoys[JOYSTICK1].m_bInitialised) { + DIDEVCAPS devCaps; + devCaps.dwSize = sizeof(DIDEVCAPS); + PSGLOBAL(joy1)->GetCapabilities(&devCaps); + ControlsManager.InitDefaultControlConfigJoyPad(devCaps.dwButtons); + } #else - else if (m_nCurrScreen == MENUPAGE_CHOOSE_SAVE_SLOT) { + if (PSGLOBAL(joy1id) != -1 && glfwJoystickPresent(PSGLOBAL(joy1id))) { + int count; + glfwGetJoystickButtons(PSGLOBAL(joy1id), &count); + ControlsManager.InitDefaultControlConfigJoyPad(count); + } #endif - RequestFrontEndShutDown(); - } - // It's now in ThingsToDoBeforeLeavingPage() -#ifndef TIDY_UP_PBP - else if (m_nCurrScreen == MENUPAGE_SOUND_SETTINGS) { - DMAudio.StopFrontEndTrack(); - OutputDebugString("FRONTEND AUDIO TRACK STOPPED"); + MousePointerStateHelper.bInvertVertically = true; + TheCamera.m_bHeadBob = false; + TheCamera.m_fMouseAccelHorzntl = 0.0025f; + CVehicle::m_bDisableMouseSteering = true; + m_ControlMethod = CONTROL_STANDARD; + TheCamera.m_bUseMouse3rdPerson = true; + SaveSettings(); + } + SetHelperText(2); + break; + case MENUACTION_CTRLMETHOD: + if (m_ControlMethod == CONTROL_CLASSIC) { + CCamera::m_bUseMouse3rdPerson = true; + m_ControlMethod = CONTROL_STANDARD; + } else { + CCamera::m_bUseMouse3rdPerson = false; + m_ControlMethod = CONTROL_CLASSIC; + } + SaveSettings(); + break; } -#endif + ProcessOnOffMenuOptions(); + if (!goBack) { + int saveSlot = aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_SaveSlot; - int oldScreen = aScreens[m_nCurrScreen].m_PreviousPage; + if (saveSlot >= 2 && saveSlot <= 9 && Slots[m_nCurrOption] != SLOT_OK) + DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_BACK, 0); + else + DMAudio.PlayFrontEndSound(SOUND_FRONTEND_FAIL, 0); + } + } - if (oldScreen != -1) { - ThingsToDoBeforeLeavingPage(); + if (goBack) { + if (m_NoEmptyBinding) { + DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); + SwitchToNewScreen(-2); if ((m_nCurrScreen == MENUPAGE_SKIN_SELECT) || (m_nCurrScreen == MENUPAGE_KEYBOARD_CONTROLS)) { m_nTotalListRow = 0; } - -#ifdef PS2_LIKE_MENU - if (!bottomBarActive && - (oldScreen == MENUPAGE_NONE || oldScreen == MENUPAGE_OPTIONS)) { - bottomBarActive = true; - } else -#endif - { - SwitchToNewScreen(-2); - } - - // We will go back for sure at this point, why process other things?! -#ifdef FIX_BUGS - return; -#endif + } else { + DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_BACK, 0); + m_ShowEmptyBindingError = true; } } -#ifdef PS2_LIKE_MENU - if (bottomBarActive) - return; -#endif - - if (changeAmount != 0) { switch (aScreens[m_nCurrScreen].m_aEntries[m_nCurrOption].m_Action) { case MENUACTION_RADIO: - m_PrefsRadioStation += changeAmount; - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); - if (DMAudio.IsMP3RadioChannelAvailable()) { - if (m_PrefsRadioStation < WILDSTYLE) - m_PrefsRadioStation = USERTRACK; - if (m_PrefsRadioStation > USERTRACK) - m_PrefsRadioStation = WILDSTYLE; - } else { - if (m_PrefsRadioStation < WILDSTYLE) - m_PrefsRadioStation = WAVE; - if (m_PrefsRadioStation > WAVE) - m_PrefsRadioStation = WILDSTYLE; - } - SaveSettings(); - DMAudio.SetRadioInCar(m_PrefsRadioStation); - DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1); - OutputDebugString("FRONTEND RADIO STATION CHANGED"); + ChangeRadioStation(changeAmount); + break; + case MENUACTION_RADARMODE: + m_PrefsRadarMode += changeAmount; + if (m_PrefsRadarMode < 0) + m_PrefsRadarMode = 2; + if (m_PrefsRadarMode > 2) + m_PrefsRadarMode = 0; break; #ifdef ASPECT_RATIO_SCALE case MENUACTION_WIDESCREEN: @@ -4612,11 +4173,12 @@ CMenuManager::ProcessButtonPresses(uint8 goDown, uint8 goUp, uint8 optionSelecte break; #endif case MENUACTION_AUDIOHW: + // TODO(Miami): What are the extra things in here?? + if (m_nPrefsAudio3DProviderIndex != NO_AUDIO_PROVIDER) { m_nPrefsAudio3DProviderIndex += changeAmount; m_nPrefsAudio3DProviderIndex = clamp(m_nPrefsAudio3DProviderIndex, 0, DMAudio.GetNum3DProvidersAvailable() - 1); } - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_NEW_PAGE, 0); break; case MENUACTION_SPEAKERCONF: if (m_nPrefsAudio3DProviderIndex != NO_AUDIO_PROVIDER) { @@ -4624,13 +4186,11 @@ CMenuManager::ProcessButtonPresses(uint8 goDown, uint8 goUp, uint8 optionSelecte m_PrefsSpeakers = clamp(m_PrefsSpeakers, 0, 2); DMAudio.SetSpeakerConfig(m_PrefsSpeakers); SaveSettings(); - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); } break; case MENUACTION_CTRLMETHOD: m_ControlMethod = !m_ControlMethod; CCamera::m_bUseMouse3rdPerson = !m_ControlMethod; - DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0); SaveSettings(); break; } @@ -4885,10 +4445,6 @@ CMenuManager::SwitchMenuOnAndOff() _InputInitialiseMouse(true); } -#ifdef PS2_LIKE_MENU - bottomBarActive = false; -#endif - m_StatsScrollSpeed = 150.0f; SaveSettings(); pControlEdit = nil; @@ -5386,6 +4942,47 @@ CMenuManager::ConstructStatLine(int rowIdx) #undef STAT_LINE } +// TODO(Miami): These #if 0's are here because we still use III radio selector. Remove them when new one reversed +void +CMenuManager::ChangeRadioStation(uint8 increaseBy) +{ + if (m_ScrollRadioBy != 0) + return; + + m_PrefsRadioStation += increaseBy; +#if 0 + m_ScrollRadioBy = increaseBy; + if (m_ScrollRadioBy == 1) { + DMAudio.PlayFrontEndSound(SOUND_FRONTEND_FAIL, 0); + field_F0 = 238.0f; + } else { + DMAudio.PlayFrontEndSound(SOUND_FRONTEND_FAIL, 0); + field_F0 = 118.0f; + } +#endif + + if (DMAudio.IsMP3RadioChannelAvailable()) { + if (m_PrefsRadioStation < WILDSTYLE) + m_PrefsRadioStation = USERTRACK; + if (m_PrefsRadioStation > USERTRACK) + m_PrefsRadioStation = WILDSTYLE; + } else { + if (m_PrefsRadioStation < WILDSTYLE) + m_PrefsRadioStation = WAVE; + if (m_PrefsRadioStation > WAVE) + m_PrefsRadioStation = WILDSTYLE; + } +#if 0 + DMAudio.StopFrontEndTrack(); + DMAudio.PlayFrontEndSound(SOUND_194, 0); +#else + SaveSettings(); + DMAudio.SetRadioInCar(m_PrefsRadioStation); + DMAudio.PlayFrontEndTrack(m_PrefsRadioStation, 1); + OutputDebugString("FRONTEND RADIO STATION CHANGED"); +#endif +} + #if 0 uint8 CMenuManager::GetNumberOfMenuOptions() { diff --git a/src/core/Frontend.h b/src/core/Frontend.h index 456e9bd0..6cd58e7d 100644 --- a/src/core/Frontend.h +++ b/src/core/Frontend.h @@ -5,15 +5,9 @@ #include "Sprite2d.h" -#ifdef PS2_LIKE_MENU -#define MENUHEADER_POS_X 50.0f -#define MENUHEADER_POS_Y 75.0f -#define MENUHEADER_HEIGHT 1.3f -#else #define MENUHEADER_POS_X 10.0f #define MENUHEADER_POS_Y 10.0f #define MENUHEADER_HEIGHT 2.0f -#endif #define MENUHEADER_WIDTH 1.0f #define MENU_UNK_X_MARGIN 10.0f @@ -237,9 +231,6 @@ enum eMenuAction MENUACTION_SETDBGFLAG, MENUACTION_LOADRADIO, MENUACTION_SAVEGAME, - - // Below this is TODO(Miami) - MENUACTION_DRAWDIST, MENUACTION_SWITCHBIGWHITEDEBUGLIGHT, MENUACTION_COLLISIONPOLYS, MENUACTION_LEGENDS, @@ -247,16 +238,11 @@ enum eMenuAction MENUACTION_HUD, MENUACTION_GOBACK, MENUACTION_KEYBOARDCTRLS, - MENUACTION_PARSEHEAP, - // MENUACTION_MEMCARDSAVECONFIRM is that on VC enum?? - MENUACTION_DEBUGSTREAM, MENUACTION_GETKEY, MENUACTION_SHOWHEADBOB, - MENUACTION_UNK80, + MENUACTION_UNK38, // MENUACTION_PARSEHEAP? MENUACTION_DEBUGSTREAM? MENUACTION_MEMCARDSAVECONFIRM? MENUACTION_INVVERT, MENUACTION_CANCELGAME, - MENUACTION_MOUSESENS, - MENUACTION_MP3VOLUMEBOOST, MENUACTION_RESUME, MENUACTION_DONTCANCEL, MENUACTION_SCREENRES, @@ -267,7 +253,9 @@ enum eMenuAction MENUACTION_CTRLMETHOD, MENUACTION_DYNAMICACOUSTIC, MENUACTION_MOUSESTEER, - MENUACTION_UNK110, + MENUACTION_DRAWDIST, + MENUACTION_MOUSESENS, + MENUACTION_MP3VOLUMEBOOST, #ifdef IMPROVED_VIDEOMODE MENUACTION_SCREENFORMAT, #endif @@ -532,7 +520,7 @@ public: CSprite2d m_aFrontEndSprites[NUM_MENU_SPRITES]; bool m_bSpritesLoaded; int32 field_F0; - int32 m_LastRadioScrollDir; + int32 m_ScrollRadioBy; int32 m_nCurrScreen; int32 m_nPrevScreen; int32 m_nCurrSaveSlot; @@ -678,7 +666,8 @@ public: void Process(); void ProcessList(bool &optionSelected, bool &goBack); void UserInput(); - void ProcessButtonPresses(uint8, uint8, uint8, uint8, int8); + void ProcessUserInput(uint8, uint8, uint8, uint8, int8); + void ChangeRadioStation(uint8); void ProcessFileActions(); void ProcessOnOffMenuOptions(); void RequestFrontEndShutDown(); diff --git a/src/core/Frontend_PS2.cpp b/src/core/Frontend_PS2.cpp index d9eff445..c9264f7d 100644 --- a/src/core/Frontend_PS2.cpp +++ b/src/core/Frontend_PS2.cpp @@ -203,6 +203,9 @@ static const char* FrontendFilenames[][2] = {"fe_radio9", "" }, }; +#ifdef CUTSCENE_BORDERS_SWITCH +bool CMenuManager::m_PrefsCutsceneBorders = true; +#endif int32 CMenuManager::m_PrefsSfxVolume = 102; int32 CMenuManager::m_PrefsMusicVolume = 102; diff --git a/src/core/Frontend_PS2.h b/src/core/Frontend_PS2.h index 2f226dc3..6311d821 100644 --- a/src/core/Frontend_PS2.h +++ b/src/core/Frontend_PS2.h @@ -161,6 +161,9 @@ public: static CONTRCONFIG m_PrefsControllerConfig; static bool m_PrefsUseVibration; +#ifdef CUTSCENE_BORDERS_SWITCH + static bool m_PrefsCutsceneBorders; +#endif #ifdef GTA_PC bool m_bQuitGameNoCD; diff --git a/src/core/IniFile.cpp b/src/core/IniFile.cpp index df01b440..f7e2bfdd 100644 --- a/src/core/IniFile.cpp +++ b/src/core/IniFile.cpp @@ -7,8 +7,10 @@ #include "main.h" #include "Population.h" -float CIniFile::PedNumberMultiplier = 1.0f; -float CIniFile::CarNumberMultiplier = 1.0f; +// --MIAMI: file done + +float CIniFile::PedNumberMultiplier = 0.6f; +float CIniFile::CarNumberMultiplier = 0.6f; void CIniFile::LoadIniFile() { @@ -24,5 +26,6 @@ void CIniFile::LoadIniFile() CFileMgr::CloseFile(f); } CPopulation::MaxNumberOfPedsInUse = 25.0f * PedNumberMultiplier; + CPopulation::MaxNumberOfPedsInUseInterior = 40.0f * PedNumberMultiplier; CCarCtrl::MaxNumberOfCarsInUse = 12.0f * CarNumberMultiplier; } \ No newline at end of file diff --git a/src/core/MenuScreens.cpp b/src/core/MenuScreens.cpp index 65c265ed..11cd3078 100644 --- a/src/core/MenuScreens.cpp +++ b/src/core/MenuScreens.cpp @@ -331,8 +331,6 @@ CMenuScreen aScreens[] = { MENUACTION_SETDBGFLAG, "FED_DFL", SAVESLOT_NONE, MENUPAGE_NONE, 0, 0, 0, MENUACTION_SWITCHBIGWHITEDEBUGLIGHT, "FED_DLS", SAVESLOT_NONE, MENUPAGE_NONE, 0, 0, 0, MENUACTION_COLLISIONPOLYS, "FED_SCP", SAVESLOT_NONE, MENUPAGE_NONE, 0, 0, 0, - MENUACTION_PARSEHEAP, "FED_PAH", SAVESLOT_NONE, MENUPAGE_NONE, 0, 0, 0, - MENUACTION_DEBUGSTREAM, "FED_DSR", SAVESLOT_NONE, MENUPAGE_NONE, 0, 0, 0, MENUACTION_GOBACK, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE, 0, 0, 0, }, diff --git a/src/core/common.h b/src/core/common.h index 0a2a236e..16d32b32 100644 --- a/src/core/common.h +++ b/src/core/common.h @@ -144,8 +144,11 @@ inline uint32 ldb(uint32 p, uint32 s, uint32 w) #ifdef ASPECT_RATIO_SCALE #define SCREEN_SCALE_AR(a) ((a) * DEFAULT_ASPECT_RATIO / SCREEN_ASPECT_RATIO) +extern float ScaleAndCenterX(float x); +#define SCALE_AND_CENTER_X(x) ScaleAndCenterX(x) #else #define SCREEN_SCALE_AR(a) (a) +#define SCALE_AND_CENTER_X(x) SCREEN_STRETCH_X(x) #endif #include "maths.h" diff --git a/src/core/timebars.cpp b/src/core/timebars.cpp index 884feffd..68570021 100644 --- a/src/core/timebars.cpp +++ b/src/core/timebars.cpp @@ -89,7 +89,7 @@ void tbDisplay() CFont::SetScale(0.48f, 1.12f); CFont::SetCentreOff(); CFont::SetJustifyOff(); - CFont::SetWrapx(640.0f); + CFont::SetWrapx(SCREEN_STRETCH_X(DEFAULT_SCREEN_WIDTH)); CFont::SetRightJustifyOff(); CFont::SetPropOn(); CFont::SetFontStyle(FONT_STANDARD); -- cgit v1.2.3