mirror of
https://github.com/halpz/re3.git
synced 2025-07-16 15:28:11 +00:00
Fixes, mouse AUX buttons, joystick detect menu
This commit is contained in:
@ -854,6 +854,13 @@ CMenuManager::Draw()
|
||||
str = TheText.Get(aScreens[m_nCurrScreen].m_aEntries[0].m_EntryName);
|
||||
break;
|
||||
default:
|
||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||
if (aScreens[m_nCurrScreen].m_aEntries[0].m_SaveSlot == SAVESLOT_CFO) {
|
||||
FrontendOption& option = customFrontendOptions[aScreens[m_nCurrScreen].m_aEntries[0].m_TargetMenu];
|
||||
str = (wchar*)option.leftText;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
str = TheText.Get(aScreens[m_nCurrScreen].m_aEntries[0].m_EntryName);
|
||||
break;
|
||||
}
|
||||
@ -3443,6 +3450,7 @@ CMenuManager::LoadSettings()
|
||||
CFileMgr::Read(fileHandle, m_PrefsSkinFile, 256);
|
||||
CFileMgr::Read(fileHandle, (char*)&m_ControlMethod, 1);
|
||||
CFileMgr::Read(fileHandle, (char*)&m_PrefsLanguage, 1);
|
||||
/*
|
||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||
for (int i = 0; i < numCustomFrontendOptions; i++) {
|
||||
FrontendOption& option = customFrontendOptions[i];
|
||||
@ -3456,6 +3464,7 @@ CMenuManager::LoadSettings()
|
||||
CFileMgr::Read(fileHandle, (char *)&CMenuManager::m_PrefsIslandLoading, 1);
|
||||
CMenuManager::m_DisplayIslandLoading = CMenuManager::m_PrefsIslandLoading;
|
||||
#endif
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@ -3546,6 +3555,7 @@ CMenuManager::SaveSettings()
|
||||
CFileMgr::Write(fileHandle, m_PrefsSkinFile, 256);
|
||||
CFileMgr::Write(fileHandle, (char*)&m_ControlMethod, 1);
|
||||
CFileMgr::Write(fileHandle, (char*)&m_PrefsLanguage, 1);
|
||||
/*
|
||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||
for (int i = 0; i < numCustomFrontendOptions; i++) {
|
||||
FrontendOption &option = customFrontendOptions[i];
|
||||
@ -3557,6 +3567,7 @@ CMenuManager::SaveSettings()
|
||||
#ifdef NO_ISLAND_LOADING
|
||||
CFileMgr::Write(fileHandle, (char *)&CMenuManager::m_PrefsIslandLoading, 1);
|
||||
#endif
|
||||
*/
|
||||
}
|
||||
|
||||
CFileMgr::CloseFile(fileHandle);
|
||||
@ -3880,7 +3891,10 @@ CMenuManager::Process(void)
|
||||
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();
|
||||
|
||||
@ -5106,7 +5120,8 @@ CMenuManager::ProcessButtonPresses(void)
|
||||
*option.value = option.lastSavedValue = option.displayedValue;
|
||||
|
||||
} else if (option.type == FEOPTION_DYNAMIC) {
|
||||
option.buttonPressFunc(FEOPTION_ACTION_SELECT);
|
||||
if (option.buttonPressFunc)
|
||||
option.buttonPressFunc(FEOPTION_ACTION_SELECT);
|
||||
} else if (option.type == FEOPTION_REDIRECT) {
|
||||
ChangeScreen(option.to, option.option, true, option.fadeIn);
|
||||
} else if (option.type == FEOPTION_GOBACK) {
|
||||
@ -5349,7 +5364,7 @@ CMenuManager::ProcessButtonPresses(void)
|
||||
option.changeFunc(option.displayedValue);
|
||||
*option.value = option.lastSavedValue = option.displayedValue;
|
||||
}
|
||||
} else if (option.type == FEOPTION_DYNAMIC) {
|
||||
} else if (option.type == FEOPTION_DYNAMIC && option.buttonPressFunc) {
|
||||
option.buttonPressFunc(changeValueBy > 0 ? FEOPTION_ACTION_RIGHT : FEOPTION_ACTION_LEFT);
|
||||
}
|
||||
DMAudio.PlayFrontEndSound(SOUND_FRONTEND_MENU_SETTING_CHANGE, 0);
|
||||
|
@ -297,7 +297,6 @@ bool CGame::InitialiseOnceAfterRW(void)
|
||||
#ifdef CUSTOM_FRONTEND_OPTIONS
|
||||
if (numCustomFrontendOptions == 0 && numCustomFrontendScreens == 0) {
|
||||
CustomFrontendOptionsPopulate();
|
||||
FrontEndMenuManager.LoadSettings();
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
|
@ -277,6 +277,8 @@ public:
|
||||
bool GetMiddleMouseJustUp() { return !!(!NewMouseControllerState.MMB && OldMouseControllerState.MMB); }
|
||||
bool GetMouseWheelUpJustUp() { return !!(!NewMouseControllerState.WHEELUP && OldMouseControllerState.WHEELUP); }
|
||||
bool GetMouseWheelDownJustUp() { return !!(!NewMouseControllerState.WHEELDN && OldMouseControllerState.WHEELDN); }
|
||||
bool GetMouseX1JustUp() { return !!(!NewMouseControllerState.MXB1 && OldMouseControllerState.MXB1); }
|
||||
bool GetMouseX2JustUp() { return !!(!NewMouseControllerState.MXB2 && OldMouseControllerState.MXB2); }
|
||||
|
||||
bool GetLeftMouse() { return NewMouseControllerState.LMB; }
|
||||
bool GetRightMouse() { return NewMouseControllerState.RMB; }
|
||||
|
@ -226,6 +226,9 @@ enum Config {
|
||||
#if !defined(RW_GL3) && defined(_WIN32)
|
||||
#define XINPUT
|
||||
#endif
|
||||
#if defined(RW_GL3) && !defined(__SWITCH__) // TODO
|
||||
#define DONT_TRUST_RECOGNIZED_JOYSTICKS // Then we'll only rely on GLFW gamepad DB, and want user to enter Cpntroller->Detect joysticks if his joystick isn't on that list.
|
||||
#endif
|
||||
#define DETECT_PAD_INPUT_SWITCH // Adds automatic switch of pad related stuff between controller and kb/m
|
||||
#define KANGAROO_CHEAT
|
||||
#define ALLCARSHELI_CHEAT
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "MBlur.h"
|
||||
#include "postfx.h"
|
||||
#include "custompipes.h"
|
||||
#include "ControllerConfig.h"
|
||||
|
||||
#ifndef _WIN32
|
||||
#include "assert.h"
|
||||
@ -195,6 +196,7 @@ wchar* MultiSamplingDraw(bool *disabled, bool userHovering) {
|
||||
return unicodeTemp;
|
||||
}
|
||||
}
|
||||
char* multisamplingKey = "MultiSampling";
|
||||
#endif
|
||||
|
||||
#ifdef MORE_LANGUAGES
|
||||
@ -247,6 +249,8 @@ void FreeCamChange(int8 displayedValue)
|
||||
TheCamera.bFreeCam = !!displayedValue;
|
||||
FrontEndMenuManager.SaveSettings();
|
||||
}
|
||||
const wchar* freeCamText = (wchar*)L"FREE CAM";
|
||||
char* freeCamKey = "FreeCam";
|
||||
#endif
|
||||
|
||||
#ifdef CUTSCENE_BORDERS_SWITCH
|
||||
@ -255,6 +259,7 @@ void BorderModeChange(int8 displayedValue)
|
||||
CMenuManager::m_PrefsCutsceneBorders = !!displayedValue;
|
||||
FrontEndMenuManager.SaveSettings();
|
||||
}
|
||||
char* cutsceneBordersKey = "CutsceneBorders";
|
||||
#endif
|
||||
|
||||
#ifdef PS2_ALPHA_TEST
|
||||
@ -263,11 +268,52 @@ void PS2AlphaTestChange(int8 displayedValue)
|
||||
gPS2alphaTest = !!displayedValue;
|
||||
FrontEndMenuManager.SaveSettings();
|
||||
}
|
||||
char* ps2alphaKey = "PS2AlphaTest";
|
||||
#endif
|
||||
|
||||
#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS
|
||||
const wchar* detectJoystickText = (wchar*)L"Detect Joystick";
|
||||
const wchar* detectJoystickExplanation = (wchar*)L"Press any key on your preferred joystick that you would like to use on the game.";
|
||||
const wchar* detectedJoystickText = (wchar*)L"Detected Joystick";
|
||||
wchar selectedJoystickUnicode[128];
|
||||
|
||||
wchar* DetectJoystickDraw(bool* disabled, bool userHovering) {
|
||||
int numButtons;
|
||||
int found = -1;
|
||||
const char *joyname;
|
||||
if (userHovering) {
|
||||
for (int i = 0; i <= GLFW_JOYSTICK_LAST; i++) {
|
||||
if (joyname = glfwGetJoystickName(i)) {
|
||||
const uint8* buttons = glfwGetJoystickButtons(i, &numButtons);
|
||||
for (int j = 0; j < numButtons; j++) {
|
||||
if (buttons[j]) {
|
||||
strcpy(gSelectedJoystickName, joyname);
|
||||
found = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (found != -1)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (found != -1 && PSGLOBAL(joy1id) != found) {
|
||||
if (PSGLOBAL(joy1id) != -1 && PSGLOBAL(joy1id) != found)
|
||||
PSGLOBAL(joy2id) = PSGLOBAL(joy1id);
|
||||
else
|
||||
PSGLOBAL(joy2id) = -1;
|
||||
|
||||
PSGLOBAL(joy1id) = found;
|
||||
}
|
||||
}
|
||||
AsciiToUnicode(gSelectedJoystickName, selectedJoystickUnicode);
|
||||
|
||||
return selectedJoystickUnicode;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Important: Make sure to read the warnings/informations in frontendoption.h!!
|
||||
// For texts: Either use TheText.Get, or use wcsdup(wchar version of strdup)
|
||||
// If you won't use GXT entry as text, you may want to declare them globally, to not alloc them on each reload. (static declared texts has some problems on Linux etc.)
|
||||
void
|
||||
CustomFrontendOptionsPopulate(void)
|
||||
{
|
||||
@ -342,14 +388,14 @@ CustomFrontendOptionsPopulate(void)
|
||||
|
||||
#ifdef MULTISAMPLING
|
||||
SWITCH_TO_GRAPHICS_MENU
|
||||
FrontendOptionAddDynamic(TheText.Get("FED_AAS"), MultiSamplingDraw, (int8*)&FrontEndMenuManager.m_nPrefsMSAALevel, MultiSamplingButtonPress, MultiSamplingGoBack, true);
|
||||
FrontendOptionAddDynamic(TheText.Get("FED_AAS"), MultiSamplingDraw, (int8*)&FrontEndMenuManager.m_nPrefsMSAALevel, MultiSamplingButtonPress, MultiSamplingGoBack, multisamplingKey);
|
||||
#endif
|
||||
|
||||
CLONE_OPTION(TheText.Get("FED_TRA"), MENUACTION_TRAILS, nil, nil);
|
||||
|
||||
#ifdef PS2_ALPHA_TEST
|
||||
SWITCH_TO_GRAPHICS_MENU
|
||||
FrontendOptionAddSelect(TheText.Get("FEM_2PR"), off_on, 2, (int8*)&gPS2alphaTest, false, PS2AlphaTestChange, nil, true);
|
||||
FrontendOptionAddSelect(TheText.Get("FEM_2PR"), off_on, 2, (int8*)&gPS2alphaTest, false, PS2AlphaTestChange, nil, ps2alphaKey);
|
||||
#endif
|
||||
|
||||
ADD_RESTORE_DEFAULTS(RestoreDefGraphics)
|
||||
@ -365,13 +411,12 @@ CustomFrontendOptionsPopulate(void)
|
||||
|
||||
#ifdef CUTSCENE_BORDERS_SWITCH
|
||||
SWITCH_TO_DISPLAY_MENU
|
||||
FrontendOptionAddSelect(TheText.Get("FEM_CSB"), off_on, 2, (int8 *)&CMenuManager::m_PrefsCutsceneBorders, false, BorderModeChange, nil, true);
|
||||
FrontendOptionAddSelect(TheText.Get("FEM_CSB"), off_on, 2, (int8 *)&CMenuManager::m_PrefsCutsceneBorders, false, BorderModeChange, nil, cutsceneBordersKey);
|
||||
#endif
|
||||
|
||||
#ifdef FREE_CAM
|
||||
SWITCH_TO_DISPLAY_MENU
|
||||
static const wchar* text = (wchar*)wcsdup(L"FREE CAM");
|
||||
FrontendOptionAddSelect(text, off_on, 2, (int8*)&TheCamera.bFreeCam, false, FreeCamChange, nil, true);
|
||||
FrontendOptionAddSelect(freeCamText, off_on, 2, (int8*)&TheCamera.bFreeCam, false, FreeCamChange, nil, freeCamKey);
|
||||
#endif
|
||||
|
||||
CLONE_OPTION(TheText.Get("FED_SUB"), MENUACTION_SUBTITLES, nil, nil);
|
||||
@ -388,7 +433,21 @@ CustomFrontendOptionsPopulate(void)
|
||||
#endif
|
||||
|
||||
ADD_RESTORE_DEFAULTS(RestoreDefDisplay)
|
||||
ADD_BACK
|
||||
ADD_BACK
|
||||
|
||||
#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS
|
||||
int detectJoystickMenu = FrontendScreenAdd("FET_CON", MENUSPRITE_MAINMENU, MENUPAGE_CONTROLLER_PC, 50, 60, 20,
|
||||
FONT_BANK, MEDIUMTEXT_X_SCALE, MEDIUMTEXT_Y_SCALE, FESCREEN_LEFT_ALIGN, false);
|
||||
|
||||
FrontendOptionSetCursor(detectJoystickMenu, 0);
|
||||
|
||||
FrontendOptionAddBuiltinAction(detectJoystickExplanation, MENUACTION_LABEL, nil, nil);
|
||||
FrontendOptionAddDynamic(detectedJoystickText, DetectJoystickDraw, nil, nil, nil);
|
||||
FrontendOptionAddBackButton(TheText.Get("FEDS_TB"));
|
||||
|
||||
FrontendOptionSetCursor(MENUPAGE_CONTROLLER_PC, 2);
|
||||
FrontendOptionAddRedirect(detectJoystickText, detectJoystickMenu, 1);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -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_BANK);
|
||||
|
Reference in New Issue
Block a user