mirror of
https://github.com/hedge-dev/UnleashedRecomp.git
synced 2025-12-19 22:42:25 +00:00
message_window: use CInputState in-game
This commit is contained in:
parent
7b2383e8ad
commit
110e1a4575
1 changed files with 37 additions and 16 deletions
|
|
@ -53,7 +53,7 @@ class SDLEventListenerForMessageWindow : public SDLEventListener
|
||||||
public:
|
public:
|
||||||
void OnSDLEvent(SDL_Event* event) override
|
void OnSDLEvent(SDL_Event* event) override
|
||||||
{
|
{
|
||||||
if (!MessageWindow::s_isVisible)
|
if (App::s_isInit || !MessageWindow::s_isVisible)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
constexpr float axisValueRange = 32767.0f;
|
constexpr float axisValueRange = 32767.0f;
|
||||||
|
|
@ -65,9 +65,6 @@ public:
|
||||||
{
|
{
|
||||||
case SDL_KEYDOWN:
|
case SDL_KEYDOWN:
|
||||||
{
|
{
|
||||||
if (App::s_isInit)
|
|
||||||
break;
|
|
||||||
|
|
||||||
switch (event->key.keysym.scancode)
|
switch (event->key.keysym.scancode)
|
||||||
{
|
{
|
||||||
case SDL_SCANCODE_UP:
|
case SDL_SCANCODE_UP:
|
||||||
|
|
@ -92,14 +89,8 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
case SDL_MOUSEBUTTONDOWN:
|
case SDL_MOUSEBUTTONDOWN:
|
||||||
{
|
|
||||||
if (App::s_isInit)
|
|
||||||
break;
|
|
||||||
|
|
||||||
g_isAccepted = true;
|
g_isAccepted = true;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
|
|
||||||
case SDL_CONTROLLERBUTTONDOWN:
|
case SDL_CONTROLLERBUTTONDOWN:
|
||||||
{
|
{
|
||||||
|
|
@ -244,6 +235,10 @@ void DrawNextButtonGuide(bool isController, bool isKeyboard)
|
||||||
? EButtonIcon::Enter
|
? EButtonIcon::Enter
|
||||||
: EButtonIcon::LMB;
|
: EButtonIcon::LMB;
|
||||||
|
|
||||||
|
// Always show controller prompt in-game.
|
||||||
|
if (App::s_isInit)
|
||||||
|
icon = EButtonIcon::A;
|
||||||
|
|
||||||
ButtonGuide::Open(Button(Localise("Common_Next"), icon));
|
ButtonGuide::Open(Button(Localise("Common_Next"), icon));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -265,8 +260,11 @@ void MessageWindow::Init()
|
||||||
|
|
||||||
g_fntSeurat = ImFontAtlasSnapshot::GetFont("FOT-SeuratPro-M.otf", 24.0f * FONT_SCALE);
|
g_fntSeurat = ImFontAtlasSnapshot::GetFont("FOT-SeuratPro-M.otf", 24.0f * FONT_SCALE);
|
||||||
|
|
||||||
g_upSelectionCursor = LoadTexture(decompressZstd(g_select_fade, g_select_fade_uncompressed_size).get(), g_select_fade_uncompressed_size);
|
g_upSelectionCursor = LoadTexture(decompressZstd(g_select_fade,
|
||||||
g_upWindow = LoadTexture(decompressZstd(g_general_window, g_general_window_uncompressed_size).get(), g_general_window_uncompressed_size);
|
g_select_fade_uncompressed_size).get(), g_select_fade_uncompressed_size);
|
||||||
|
|
||||||
|
g_upWindow = LoadTexture(decompressZstd(g_general_window,
|
||||||
|
g_general_window_uncompressed_size).get(), g_general_window_uncompressed_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessageWindow::Draw()
|
void MessageWindow::Draw()
|
||||||
|
|
@ -284,8 +282,31 @@ void MessageWindow::Draw()
|
||||||
auto textMarginX = Scale(37);
|
auto textMarginX = Scale(37);
|
||||||
auto textMarginY = Scale(45);
|
auto textMarginY = Scale(45);
|
||||||
|
|
||||||
bool isController = App::s_isInit ? true : hid::detail::IsInputDeviceController();
|
bool isController = hid::detail::IsInputDeviceController();
|
||||||
bool isKeyboard = App::s_isInit ? false : hid::detail::g_inputDevice == hid::detail::EInputDevice::Keyboard;
|
bool isKeyboard = hid::detail::g_inputDevice == hid::detail::EInputDevice::Keyboard;
|
||||||
|
|
||||||
|
// Handle controller input when the game is booted.
|
||||||
|
if (App::s_isInit)
|
||||||
|
{
|
||||||
|
if (auto pInputState = SWA::CInputState::GetInstance())
|
||||||
|
{
|
||||||
|
auto& rPadState = pInputState->GetPadState();
|
||||||
|
|
||||||
|
g_joypadAxis.y = rPadState.LeftStickVertical;
|
||||||
|
|
||||||
|
if (rPadState.IsTapped(SWA::eKeyState_DpadUp))
|
||||||
|
g_joypadAxis.y = -1.0f;
|
||||||
|
|
||||||
|
if (rPadState.IsTapped(SWA::eKeyState_DpadDown))
|
||||||
|
g_joypadAxis.y = 1.0f;
|
||||||
|
|
||||||
|
g_isAccepted = rPadState.IsTapped(SWA::eKeyState_A);
|
||||||
|
g_isDeclined = rPadState.IsTapped(SWA::eKeyState_B);
|
||||||
|
|
||||||
|
if (isKeyboard)
|
||||||
|
g_isAccepted = g_isAccepted || rPadState.IsTapped(SWA::eKeyState_Start);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (DrawContainer(g_appearTime, centre, { textSize.x / 2 + textMarginX, textSize.y / 2 + textMarginY }, !g_isControlsVisible))
|
if (DrawContainer(g_appearTime, centre, { textSize.x / 2 + textMarginX, textSize.y / 2 + textMarginY }, !g_isControlsVisible))
|
||||||
{
|
{
|
||||||
|
|
@ -358,7 +379,7 @@ void MessageWindow::Draw()
|
||||||
|
|
||||||
ButtonGuide::Open(buttons);
|
ButtonGuide::Open(buttons);
|
||||||
}
|
}
|
||||||
else
|
else if (!App::s_isInit) // Only display keyboard prompt during installer.
|
||||||
{
|
{
|
||||||
ButtonGuide::Open(Button(Localise("Common_Select"), EButtonIcon::Enter));
|
ButtonGuide::Open(Button(Localise("Common_Select"), EButtonIcon::Enter));
|
||||||
}
|
}
|
||||||
|
|
@ -371,7 +392,7 @@ void MessageWindow::Draw()
|
||||||
MessageWindow::Close();
|
MessageWindow::Close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (!App::s_isInit) // Only accept mouse input during installer.
|
||||||
{
|
{
|
||||||
auto clipRectMin = drawList->GetClipRectMin();
|
auto clipRectMin = drawList->GetClipRectMin();
|
||||||
auto clipRectMax = drawList->GetClipRectMax();
|
auto clipRectMax = drawList->GetClipRectMax();
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue