1
0
Fork 0
mirror of https://github.com/k4zmu2a/SpaceCadetPinball.git synced 2024-11-23 17:30:18 +01:00

Compare commits

..

3 commits

Author SHA1 Message Date
Muzychenko Andrey
e2f3ae66f8 Added hide mouse cursor option.
Issue #181.
2023-07-11 15:34:51 +03:00
Muzychenko Andrey
18c80a0ff8 Fixed plunger pullback following FT rules in 3DPB mode.
Issue #179.
2023-07-11 12:25:22 +03:00
Adam
62e20b1cf9
updated Icon_1.ico with 256x256 render for modern Windows using IcoFX (#180)
* updated Icon_1.ico with 256x256 render for modern Windows using IcoFX portable

* new source (using ai to resize) and new shadow (with no edge clash)

* Re-imported 256x256 icon

---------

Co-authored-by: Muzychenko Andrey <33288308+k4zmu2a@users.noreply.github.com>
2023-07-11 11:51:16 +03:00
6 changed files with 36 additions and 13 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View file

@ -60,7 +60,8 @@ int TPlunger::Message(MessageCode code, float value)
switch (code) switch (code)
{ {
case MessageCode::PlungerInputPressed: case MessageCode::PlungerInputPressed:
if (!PullbackStartedFlag && PinballTable->MultiballCount > 0 && !PinballTable->TiltLockFlag) if (!PullbackStartedFlag && (!pb::FullTiltMode || PinballTable->MultiballCount > 0 && !PinballTable->
TiltLockFlag))
{ {
PullbackStartedFlag = true; PullbackStartedFlag = true;
Boost = 0.0; Boost = 0.0;

View file

@ -151,6 +151,7 @@ optionsStruct options::Options
{"Debug Overlay AABB", true}, {"Debug Overlay AABB", true},
{"FontFileName", ""}, {"FontFileName", ""},
{"Language", translations::GetCurrentLanguage()->ShortName}, {"Language", translations::GetCurrentLanguage()->ShortName},
{"Hide Cursor", false},
}; };
void options::InitPrimary() void options::InitPrimary()

View file

@ -288,4 +288,5 @@ struct optionsStruct
BoolOption DebugOverlayAabb; BoolOption DebugOverlayAabb;
StringOption FontFileName; StringOption FontFileName;
StringOption Language; StringOption Language;
BoolOption HideCursor;
}; };

View file

@ -49,6 +49,7 @@ winmain::DurationMs winmain::TargetFrameTime;
optionsStruct& winmain::Options = options::Options; optionsStruct& winmain::Options = options::Options;
winmain::DurationMs winmain::SpinThreshold = DurationMs(0.005); winmain::DurationMs winmain::SpinThreshold = DurationMs(0.005);
WelfordState winmain::SleepState{}; WelfordState winmain::SleepState{};
int winmain::CursorIdleCounter = 0;
int winmain::WinMain(LPCSTR lpCmdLine) int winmain::WinMain(LPCSTR lpCmdLine)
{ {
@ -353,6 +354,8 @@ void winmain::MainLoop()
if (UpdateToFrameCounter >= UpdateToFrameRatio) if (UpdateToFrameCounter >= UpdateToFrameRatio)
{ {
if (Options.HideCursor && CursorIdleCounter <= 0)
ImGui::SetMouseCursor(ImGuiMouseCursor_None);
ImGui_ImplSDL2_NewFrame(); ImGui_ImplSDL2_NewFrame();
ImGui_Render_NewFrame(); ImGui_Render_NewFrame();
ImGui::NewFrame(); ImGui::NewFrame();
@ -420,6 +423,8 @@ void winmain::MainLoop()
frameDuration = std::min<DurationMs>(DurationMs(frameEnd - frameStart), 2 * TargetFrameTime); frameDuration = std::min<DurationMs>(DurationMs(frameEnd - frameStart), 2 * TargetFrameTime);
frameStart = frameEnd; frameStart = frameEnd;
UpdateToFrameCounter++; UpdateToFrameCounter++;
CursorIdleCounter = std::max(CursorIdleCounter - static_cast<int>(frameDuration.count()), 0);
} }
} }
@ -581,10 +586,6 @@ void winmain::RenderUi()
if (ImGui::BeginMenu("Graphics")) if (ImGui::BeginMenu("Graphics"))
{ {
if (ImGui::MenuItem("Change Font"))
{
font_selection::ShowDialog();
}
if (ImGui::MenuItem(pb::get_rc_string(Msg::Menu1_WindowUniformScale), nullptr, Options.UniformScaling)) if (ImGui::MenuItem(pb::get_rc_string(Msg::Menu1_WindowUniformScale), nullptr, Options.UniformScaling))
{ {
options::toggle(Menu1::WindowUniformScale); options::toggle(Menu1::WindowUniformScale);
@ -640,6 +641,16 @@ void winmain::RenderUi()
{ {
UpdateFrameRate(); UpdateFrameRate();
} }
ImGui::Separator();
if (ImGui::MenuItem("Hide Cursor", nullptr, Options.HideCursor))
{
Options.HideCursor ^= true;
}
if (ImGui::MenuItem("Change Font..."))
{
font_selection::ShowDialog();
}
ImGui::EndMenu(); ImGui::EndMenu();
} }
@ -832,6 +843,21 @@ int winmain::event_handler(const SDL_Event* event)
if (!options::WaitingForInput() || !inputDown) if (!options::WaitingForInput() || !inputDown)
ImGui_ImplSDL2_ProcessEvent(event); ImGui_ImplSDL2_ProcessEvent(event);
bool mouseEvent;
switch (event->type)
{
case SDL_MOUSEMOTION:
case SDL_MOUSEBUTTONDOWN:
case SDL_MOUSEBUTTONUP:
case SDL_MOUSEWHEEL:
CursorIdleCounter = 1000;
mouseEvent = true;
break;
default:
mouseEvent = false;
break;
}
if (ImIO->WantCaptureMouse && !options::WaitingForInput()) if (ImIO->WantCaptureMouse && !options::WaitingForInput())
{ {
if (mouse_down) if (mouse_down)
@ -839,15 +865,8 @@ int winmain::event_handler(const SDL_Event* event)
mouse_down = 0; mouse_down = 0;
SDL_SetWindowGrab(MainWindow, SDL_FALSE); SDL_SetWindowGrab(MainWindow, SDL_FALSE);
} }
switch (event->type) if (mouseEvent)
{
case SDL_MOUSEMOTION:
case SDL_MOUSEBUTTONDOWN:
case SDL_MOUSEBUTTONUP:
case SDL_MOUSEWHEEL:
return 1; return 1;
default: ;
}
} }
if (ImIO->WantCaptureKeyboard && !options::WaitingForInput()) if (ImIO->WantCaptureKeyboard && !options::WaitingForInput())
{ {

View file

@ -106,6 +106,7 @@ private:
static unsigned PrevSdlErrorCount; static unsigned PrevSdlErrorCount;
static unsigned gfrOffset; static unsigned gfrOffset;
static float gfrWindow; static float gfrWindow;
static int CursorIdleCounter;
static void RenderUi(); static void RenderUi();
static void RenderFrameTimeDialog(); static void RenderFrameTimeDialog();