From 70902e42cb4f9f7e642418d9f2e44b6ba32b556a Mon Sep 17 00:00:00 2001 From: yugecin Date: Sun, 8 Jul 2018 10:53:08 +0200 Subject: [PATCH] don't set elements underneath options overlay as hovered --- src/itdelatrisu/opsu/states/MainMenu.java | 9 +++++++++ src/itdelatrisu/opsu/states/SongMenu.java | 10 ++++++++++ src/yugecin/opsudance/ui/OptionsOverlay.java | 4 ++++ 3 files changed, 23 insertions(+) diff --git a/src/itdelatrisu/opsu/states/MainMenu.java b/src/itdelatrisu/opsu/states/MainMenu.java index 87601244..79bfff5a 100644 --- a/src/itdelatrisu/opsu/states/MainMenu.java +++ b/src/itdelatrisu/opsu/states/MainMenu.java @@ -52,6 +52,7 @@ import org.newdawn.slick.opengl.renderer.SGL; import org.newdawn.slick.util.Log; import yugecin.opsudance.core.Constants; import yugecin.opsudance.core.Entrypoint; +import yugecin.opsudance.core.InstanceContainer; import yugecin.opsudance.core.state.BaseOpsuState; import yugecin.opsudance.core.state.OpsuState; import yugecin.opsudance.ui.ImagePosition; @@ -483,6 +484,14 @@ public class MainMenu extends BaseOpsuState { int delta = renderDelta; + int mouseX = InstanceContainer.mouseX; + int mouseY = InstanceContainer.mouseY; + if (optionsOverlay.containsMouse()) { + // dirty hack to not show elements underneath options overlay as hovered + mouseX = -mouseX; + mouseY = -mouseY; + } + final Iterator pulseDataIter = this.pulseData.iterator(); while (pulseDataIter.hasNext()) { final PulseData pd = pulseDataIter.next(); diff --git a/src/itdelatrisu/opsu/states/SongMenu.java b/src/itdelatrisu/opsu/states/SongMenu.java index bb53a19a..98fcc161 100644 --- a/src/itdelatrisu/opsu/states/SongMenu.java +++ b/src/itdelatrisu/opsu/states/SongMenu.java @@ -63,6 +63,8 @@ import org.newdawn.slick.Image; import org.newdawn.slick.Input; import org.newdawn.slick.SpriteSheet; import org.newdawn.slick.gui.TextField; + +import yugecin.opsudance.core.InstanceContainer; import yugecin.opsudance.core.state.ComplexOpsuState; import static org.lwjgl.input.Keyboard.*; @@ -703,6 +705,14 @@ public class SongMenu extends ComplexOpsuState { optionsOverlay.preRenderUpdate(); + int mouseX = InstanceContainer.mouseX; + int mouseY = InstanceContainer.mouseY; + if (optionsOverlay.containsMouse()) { + // dirty hack to not show elements underneath options overlay as hovered + mouseX = -mouseX; + mouseY = -mouseY; + } + int delta = renderDelta; UI.update(delta); if (reloadThread == null) diff --git a/src/yugecin/opsudance/ui/OptionsOverlay.java b/src/yugecin/opsudance/ui/OptionsOverlay.java index 2b92d731..5aaadae2 100644 --- a/src/yugecin/opsudance/ui/OptionsOverlay.java +++ b/src/yugecin/opsudance/ui/OptionsOverlay.java @@ -188,6 +188,10 @@ public class OptionsOverlay implements ResolutionChangedListener { public boolean isActive() { return this.active; } + + public boolean containsMouse() { + return this.active && mouseX <= this.currentWidth; + } public void setListener(Listener listener) { this.listener = listener;