From f5c2dbf22a72866a48cc729a52c8497b37de9f22 Mon Sep 17 00:00:00 2001 From: Regalis Date: Thu, 28 Jan 2016 21:49:52 +0200 Subject: [PATCH] v0.3.0.3: ignoring input if window isn't active --- Subsurface/Properties/AssemblyInfo.cs | 4 ++-- Subsurface/Source/GameMain.cs | 5 +++++ Subsurface/Source/PlayerInput.cs | 28 +++++++++++++------------- Subsurface/changelog.txt | 10 +++++++++ Subsurface_Solution.v12.suo | Bin 928768 -> 914944 bytes 5 files changed, 31 insertions(+), 16 deletions(-) diff --git a/Subsurface/Properties/AssemblyInfo.cs b/Subsurface/Properties/AssemblyInfo.cs index 805f9dc02..c3d10bc58 100644 --- a/Subsurface/Properties/AssemblyInfo.cs +++ b/Subsurface/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.3.0.2")] -[assembly: AssemblyFileVersion("0.3.0.2")] +[assembly: AssemblyVersion("0.3.0.3")] +[assembly: AssemblyFileVersion("0.3.0.3")] diff --git a/Subsurface/Source/GameMain.cs b/Subsurface/Source/GameMain.cs index aa071e44e..70bc95b17 100644 --- a/Subsurface/Source/GameMain.cs +++ b/Subsurface/Source/GameMain.cs @@ -22,6 +22,11 @@ namespace Barotrauma public static GameMain Instance; + public static bool WindowActive + { + get { return Instance == null ? true : GameMain.Instance.IsActive; } + } + public static bool DebugDraw; public static GraphicsDevice CurrGraphicsDevice; diff --git a/Subsurface/Source/PlayerInput.cs b/Subsurface/Source/PlayerInput.cs index a93f6e742..58069e2d2 100644 --- a/Subsurface/Source/PlayerInput.cs +++ b/Subsurface/Source/PlayerInput.cs @@ -232,7 +232,7 @@ namespace Barotrauma { get { - return GameMain.Instance.IsActive ? MousePosition - new Vector2(oldMouseState.X, oldMouseState.Y) : Vector2.Zero; + return GameMain.WindowActive ? MousePosition - new Vector2(oldMouseState.X, oldMouseState.Y) : Vector2.Zero; } } @@ -248,72 +248,72 @@ namespace Barotrauma public static int ScrollWheelSpeed { - get { return GameMain.Instance.IsActive ? mouseState.ScrollWheelValue - oldMouseState.ScrollWheelValue : 0; } + get { return GameMain.WindowActive ? mouseState.ScrollWheelValue - oldMouseState.ScrollWheelValue : 0; } } public static bool LeftButtonDown() { - return GameMain.Instance.IsActive && mouseState.LeftButton == ButtonState.Pressed; + return GameMain.WindowActive && mouseState.LeftButton == ButtonState.Pressed; } public static bool LeftButtonReleased() { - return GameMain.Instance.IsActive && mouseState.LeftButton == ButtonState.Released; + return GameMain.WindowActive && mouseState.LeftButton == ButtonState.Released; } public static bool LeftButtonClicked() { - return (GameMain.Instance.IsActive && + return (GameMain.WindowActive && oldMouseState.LeftButton == ButtonState.Pressed && mouseState.LeftButton == ButtonState.Released); } public static bool RightButtonDown() { - return GameMain.Instance.IsActive && mouseState.RightButton == ButtonState.Pressed; + return GameMain.WindowActive && mouseState.RightButton == ButtonState.Pressed; } public static bool RightButtonClicked() { - return (GameMain.Instance.IsActive && + return (GameMain.WindowActive && oldMouseState.RightButton == ButtonState.Pressed && mouseState.RightButton == ButtonState.Released); } public static bool DoubleClicked() { - return GameMain.Instance.IsActive && doubleClicked; + return GameMain.WindowActive && doubleClicked; } public static bool KeyHit(InputType inputType) { - return GameMain.Instance.IsActive && GameMain.Config.KeyBind(inputType).IsHit(); + return GameMain.WindowActive && GameMain.Config.KeyBind(inputType).IsHit(); } public static bool KeyDown(InputType inputType) { - return GameMain.Instance.IsActive && GameMain.Config.KeyBind(inputType).IsDown(); + return GameMain.WindowActive && GameMain.Config.KeyBind(inputType).IsDown(); } public static bool KeyUp(InputType inputType) { - return GameMain.Instance.IsActive && !GameMain.Config.KeyBind(inputType).IsDown(); + return GameMain.WindowActive && !GameMain.Config.KeyBind(inputType).IsDown(); } public static bool KeyHit(Keys button) { - return (GameMain.Instance.IsActive && oldKeyboardState.IsKeyDown(button) && keyboardState.IsKeyUp(button)); + return (GameMain.WindowActive && oldKeyboardState.IsKeyDown(button) && keyboardState.IsKeyUp(button)); } public static bool KeyDown(Keys button) { - return (GameMain.Instance.IsActive && keyboardState.IsKeyDown(button)); + return (GameMain.WindowActive && keyboardState.IsKeyDown(button)); } public static bool KeyUp(Keys button) { - return GameMain.Instance.IsActive && keyboardState.IsKeyUp(button); + return GameMain.WindowActive && keyboardState.IsKeyUp(button); } public static void Update(double deltaTime) diff --git a/Subsurface/changelog.txt b/Subsurface/changelog.txt index 0eb4df99c..5e0f11bae 100644 --- a/Subsurface/changelog.txt +++ b/Subsurface/changelog.txt @@ -1,3 +1,13 @@ +--------------------------------------------------------------------------------------------------------- +v0.3.0.3 +--------------------------------------------------------------------------------------------------------- + +- fixed selecting stairs and items outside the sub in editor +- fixed crashing when pressing the ''start'' button while no route is chosen in single player +- fixed fire syncing +- fixed another bug that crashed the game if in the lobby when a round ends +- camera keeps moving with the sub when typing into chatbox in spectator mode + --------------------------------------------------------------------------------------------------------- v0.3.0.2 --------------------------------------------------------------------------------------------------------- diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index 06bf73b6b9f8b20d28e466b688f7ddd20c5c3f1f..14d9dde82e1663acd3ec201ecd894b572760e0b8 100644 GIT binary patch delta 10782 zcmds-3wTsTw(q<4t9S3-z3DtiLI@$W0Rto<2_XcC(1eFPVh9ic5t#%C@(3Y769EHh z@G*eMKpK0^j3|iOI{1nKQ(Q(l5%F;uWRO9IJHy0?$VEks3~&W8oPTuyafUhH@tis5 zeBa%CKUUSMwd-B0YFEd9EZ2Xg?}oflYbBelgUx1Zy>jIWgiQv!!CGds{Tgfq35XZN z?iZj82D8B&FcZuAW`k1h?fHe zs!w`{1@@}j)kBe|epGs`uJ^lE0a5U^M-(h7Aqp0{e^hWUO_X@GaA9~u;Zl_p7^POV z73~REWyfhpoD?+FXk8R0paerrR>Gm7hFYwK^&2-vQJtYC1->=S=v=4G)(?o3YY(*; zYC>{wlEw4= zjs?aq*v75dwWdNXcSyP_v=0ToF=N|5g51}EM{g))15%=P6q$AGf23KpV?2Rp9#7aY zFj|xJ0ccB4KyMC_+6S6rqL>y~98>79WkQ*8V}kU(5x5XDPU&=`GT@6X(nV{tZ`5j^ zYc|`sgut?nDS>CQP*U99F4sF#|Mzz0T!lKUk<1XP~@3T0i9vb@P`z)i+FxVC#?Newn5H5jSg7_n#2g1WZZ-hSqDMun;ZkV2f6iwU(`6|*5 zf^7)D2Hr!s4orew6ykB90`Y!`KLObl90M-Ik3yaUrCpm13*=&t} zz7*l@cwK@N%l+MY_X)D)iA z$o4ry#gatZ3Z-ZseUMpk+*8h)SnaPd6Hl{N#yvCTE-dhtlu5pO<#lx8q>)3-AK4@M zh%;=LGgQT-(95zEy38UQCMii$An6H(C%dKN142_JiR~mdS9*xtnqkq1?;RfAP$-R3 zsa}zDsHu)2G(*TX#}Qd5WE1}VD3WOT$#wDu@E!3)_LLwFP6V$|r;XAW>1`WTY?NZs-+)Cla*Brh2JC>z7myRcbWj93Bj>)bktM3%D0xyf z=(>Y3pa8sp^lHFhla6>Xn23B#=%~wmjzN4-we)6Gz<(}zNAkJLj3?Df&0T{%83wIf zKF)%Z<=*73*ORGvy5{Eh?v{SlE@(+UZ4xrLAki{Q8Wr9N`iKm#?Iv{2lG-+ilpm>m z?WA>~1CkV4h5_A1E62z++&cgJ9G&n3(jwu}b9Bu${Eu1+^ia=-=Me_49SskRJp zi2Qx7Tc~of9!K73u12)U2Yz~3D?8gi5Kzi1f6 zD*F3j)WtBKMjunsMycRGGm_o^-6I)Tey%I`#L2BHPx2|rOzLc-F};efaYAufzE~SN$?`L(PO3}?LXi#wHsWf*5)#KYhPJ1;#Z;~JyFOC za5pmlE8@?ChZ)5eNcqz3jHVVyG13f)stP1eStr=^1WmAi0Az!Sh#$c_vmgfpF(^+$ zKN8{lA;&_BhKc7X*tJJ|IP~R^mk?JFej4%^I1k3s_XX1JH51TJZ7<=3i@?(`YXo!g z+Lw?X$P+O4LJon{ASdCS-bl*=^T2TEPC?!SS&y{05Egm1yDCL^Bf^D99}3PRya*EN z0V3_n1ITznn<5-*}B?Ckk%|W$-$!v_K;gqMh|ek zbn+cl#?V_wl-q)TgaPZ0MDZzmgTWt_b!;^aKE?)d?c*Vuv=;B$)*tV zODOZOoXOn7#x@VRyXK);+2=zOH?MKIY2_c}n$SSSO=Bl$oq6Yw;$dNX@;|5eDf3Qw z1RqhP>|&u}%q#yKX%ub!QjO+QikUzTQ9| z|CY7q)pL{(j%<^aCbhkU0m7WSB10-b1sb(KCg0NCeKjcpG7?0AXwV+SfLIU*Qo?JC zWeCx^CKH-0&>LifJ|GA51!8vhhZF@4fEz|4D!JcFcb^};=S7;M}U!F z6c`N(z#X6vi~&WOEhcO{4w3Po80>>{=|&qHl-L?k?r4;m4(n1$MaeKo!#l_sWyF4& z@y+82n?gI5X_-8;RsKDrRWCTb+`C(8bcJ44B({Xuad`y!�EWM*q{A3H=sch>Sb^ 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