From 81547c2c9ce1369e1951ef9782e48c0e07134dab Mon Sep 17 00:00:00 2001 From: Regalis Date: Sat, 9 Jan 2016 19:16:38 +0200 Subject: [PATCH] Camera twitching fixes (again), using character name for ingame chatmessages instead of NetworkMember name, disabled CrewCommander in multiplayer, hide healthbar when dead --- Subsurface/Source/Camera.cs | 2 +- .../Source/Characters/Animation/Ragdoll.cs | 4 ++-- Subsurface/Source/Characters/Character.cs | 2 ++ Subsurface/Source/GameSession/CrewManager.cs | 3 ++- Subsurface/Source/Map/SubmarineBody.cs | 11 +++++------ Subsurface/Source/Networking/NetworkMember.cs | 4 +++- Subsurface/Source/Screens/GameScreen.cs | 3 ++- Subsurface_Solution.v12.suo | Bin 839168 -> 839168 bytes 8 files changed, 17 insertions(+), 12 deletions(-) diff --git a/Subsurface/Source/Camera.cs b/Subsurface/Source/Camera.cs index 86c2cb5b1..c438c482e 100644 --- a/Subsurface/Source/Camera.cs +++ b/Subsurface/Source/Camera.cs @@ -150,7 +150,7 @@ namespace Barotrauma Sound.CameraPos = new Vector3(WorldViewCenter.X, WorldViewCenter.Y, 0.0f); } - + public void MoveCamera(float deltaTime) { prevPosition = position; diff --git a/Subsurface/Source/Characters/Animation/Ragdoll.cs b/Subsurface/Source/Characters/Animation/Ragdoll.cs index 818ed294e..c644a2548 100644 --- a/Subsurface/Source/Characters/Animation/Ragdoll.cs +++ b/Subsurface/Source/Characters/Animation/Ragdoll.cs @@ -274,8 +274,8 @@ namespace Barotrauma { joint.BodyB.SetTransform( - joint.BodyA.Position+joint.LocalAnchorA-joint.LocalAnchorB, - (joint.LowerLimit+joint.UpperLimit)/2.0f); + joint.BodyA.Position + (joint.LocalAnchorA - joint.LocalAnchorB)*0.1f, + (joint.LowerLimit + joint.UpperLimit) / 2.0f); } float startDepth = 0.1f; diff --git a/Subsurface/Source/Characters/Character.cs b/Subsurface/Source/Characters/Character.cs index da4b6425a..6680a9d2f 100644 --- a/Subsurface/Source/Characters/Character.cs +++ b/Subsurface/Source/Characters/Character.cs @@ -995,6 +995,8 @@ namespace Barotrauma AnimController.DebugDraw(spriteBatch); } + if (isDead) return; + Vector2 healthBarPos = new Vector2(DrawPosition.X - 50, -DrawPosition.Y - 100.0f); GUI.DrawRectangle(spriteBatch, new Rectangle((int)healthBarPos.X - 2, (int)healthBarPos.Y - 2, 100 + 4, 15 + 4), Color.Black, false); GUI.DrawRectangle(spriteBatch, new Rectangle((int)healthBarPos.X, (int)healthBarPos.Y, (int)(100.0f * (health / maxHealth)), 15), Color.Red, true); diff --git a/Subsurface/Source/GameSession/CrewManager.cs b/Subsurface/Source/GameSession/CrewManager.cs index 4852d1fc0..2d36c0708 100644 --- a/Subsurface/Source/GameSession/CrewManager.cs +++ b/Subsurface/Source/GameSession/CrewManager.cs @@ -120,7 +120,8 @@ namespace Barotrauma if (PlayerInput.KeyHit(Microsoft.Xna.Framework.Input.Keys.C)) { - commander.ToggleGUIFrame(); + //only allow opening the command UI if there are AICharacters in the crew + if (commander.IsOpen || characters.Any(c => c is AICharacter)) commander.ToggleGUIFrame(); } if (commander.Frame != null) commander.Frame.Update(deltaTime); diff --git a/Subsurface/Source/Map/SubmarineBody.cs b/Subsurface/Source/Map/SubmarineBody.cs index 359f66a06..eb360136e 100644 --- a/Subsurface/Source/Map/SubmarineBody.cs +++ b/Subsurface/Source/Map/SubmarineBody.cs @@ -215,12 +215,13 @@ namespace Barotrauma //Vector2 targetSimPos = ConvertUnits.ToSimUnits((Vector2)targetPosition); float dist = Vector2.Distance((Vector2)targetPosition, Position); - System.Diagnostics.Debug.WriteLine(targetPosition + " -> " + Position + " - " + dist); if (dist > 1000.0f) { - body.SetTransform(ConvertUnits.ToSimUnits((Vector2)targetPosition), 0.0f); + Vector2 moveAmount = ConvertUnits.ToSimUnits((Vector2)targetPosition) - body.Position; - GameMain.GameScreen.Cam.Position = submarine.Position + Submarine.HiddenSubPosition; + body.SetTransform(body.Position + moveAmount, 0.0f); + + GameMain.GameScreen.Cam.Position += ConvertUnits.ToDisplayUnits(moveAmount); targetPosition = null; } else if (dist > 50.0f) @@ -228,11 +229,9 @@ namespace Barotrauma Vector2 moveAmount = Vector2.Normalize((Vector2)targetPosition - Position); moveAmount *= ConvertUnits.ToSimUnits(Math.Min(dist, 100.0f)); - System.Diagnostics.Debug.WriteLine("moveamount: "+moveAmount); - body.SetTransform(body.Position + moveAmount * deltaTime, 0.0f); - //GameMain.GameScreen.Cam.Position += ConvertUnits.ToDisplayUnits(moveAmount); + GameMain.GameScreen.Cam.Position += ConvertUnits.ToDisplayUnits(moveAmount * deltaTime); } else { diff --git a/Subsurface/Source/Networking/NetworkMember.cs b/Subsurface/Source/Networking/NetworkMember.cs index 8fb7a6ad8..f7e7486de 100644 --- a/Subsurface/Source/Networking/NetworkMember.cs +++ b/Subsurface/Source/Networking/NetworkMember.cs @@ -168,7 +168,9 @@ namespace Barotrauma.Networking { if (string.IsNullOrWhiteSpace(message)) return false; - SendChatMessage(GameMain.NetworkMember.Name + ": " + message); + string senderName = gameStarted && characterInfo != null ? characterInfo.Name : name; + + SendChatMessage(senderName + ": " + message); textBox.Deselect(); diff --git a/Subsurface/Source/Screens/GameScreen.cs b/Subsurface/Source/Screens/GameScreen.cs index 91e3c8d71..fa243281d 100644 --- a/Subsurface/Source/Screens/GameScreen.cs +++ b/Subsurface/Source/Screens/GameScreen.cs @@ -134,12 +134,13 @@ namespace Barotrauma //Physics.accumulator = Physics.step; while (Physics.accumulator >= Physics.step) { - cam.MoveCamera((float)Physics.step); if (Character.Controlled != null && Lights.LightManager.ViewTarget != null) { cam.TargetPos = Lights.LightManager.ViewTarget.WorldPosition; //Lights.LightManager.ViewPos = Character.Controlled.WorldPosition; } + cam.MoveCamera((float)Physics.step); + if (Submarine.Loaded != null) Submarine.Loaded.SetPrevTransform(Submarine.Loaded.Position); diff --git a/Subsurface_Solution.v12.suo b/Subsurface_Solution.v12.suo index b1915b1754b0d7fe1dd7ef5dbd4ffb8371dc239a..87d7d2a575166843fa370235263108cc2a153f73 100644 GIT binary patch delta 2729 zcmb7G3s9BU5x#rQxtIGeaODlRi`Thoi3P$H^;`tG$|*95nd;G1!1(IFi4+BGgfrI zbQuiRsUKxPPWKw-0Wc^JiTQ9qd0BiM5>Bc~H0>PGr9@K+KP3E4Db}MgkGO*bH!C;H zjW{}P!QcTwKF5@J<6PlS4iuNM|NeF$uY1&#BfzZuzm1Yv;Ctc-d;!F~cticim!VVdv=32$goxh~kd?bbnk zSB8ys+k(sO6aH8cQ&jJW6fN}0deic&c`IPbHSfnK+!=4X!>MmD|88sA2zS41N4r6^ zD8FTic*P*{#R7^O4?e{Llp$X~T(?ZLx7wa8?Y4CdLDw#uS!tdvq@$jlfv$bFZPIp# z4}rVI(dKvt%+fKynnCGf3HrkZvLZ(dAl6&j2G|gI%D`smwgnCW`bu-XtX~DIE&CWS zbQc&x@wrXHUp`t5$D#2Ub4W)%oB`}I8Kl0@hUWhuQNw+)Xs>CaHf-s>P&QLvRv0X{?#TkxHHbvoNZP zM}`)X%@F!IjSxuuLP8ty^B69w;-L?`N0asw9wFHRtgYgHj4^Di;?uwjKd9odVVcPf z`n!oxLa>pA0-{e7#g^4xu`-si(~H#_U}_PY(&&W!EQjF%Cxi;E2k?{=vfvLGz8>PH z_K>S6nwUif-XXpY7p{jV44>1mnBn$4e7S^GEYjX)%LXQGZZ_oSuC^)7GpRtn{0t~9 zu0R>Mi~T)DJtUa=3G*M%pyucP88n_G7ur&AV*ydy=SGyeEm8;66!Q4`r%9H>g)Q za|hU^y%YvPaSad`!T&Tz!gWgz_yk#Wx^(4u{HvWE)|CDSm5TTPJlARohZ4-Rif3@? zd{eM|VHJPdi?&m@U5x?`)HBZ|i5Mk;nUr;Hb!r%As*?w+KQl9R8xO>aT%L=$W-$Y6 zA7wMK*DSuW);X)UUSz3%>-mdM_;=zq<>SE)kq-0m_-Fbcv=tbvGPa$c267_p^NVjmezqo=tTxr;Vw&*E+D*&zvDkdw3JqTzmRB7!lgVUTbgvqLSYnsEwE%&d*+{ zJynavOTb^AXcyA~Gpa4AXznxn%iICJFD5*fYVt3t&qsvAw2RWHHv5SmA@pH*C{JR) z)M4IvmJR|N&aBt$`1~$x6+4u2as(4;;6@~d=*pZD5gL`&HmTeiE(fN*YJS6}_+SmoGxC9ZH(5=sq zOO4_efGu;(iQ#8=yfx_D-*Vw9Gz?u1Kf0Ylx)aY@`D{7w0(FWIP=uLVc{aLIEWxt) zP4RP3eMRv9YPfu%E#=NRZh6c|Bh9i-C&%IhL^Qr)F-oIVT!mX)uDBZH84<}~?4QU7 zrhO&)CeZ@p*CFPgXK8mgfmVh8rwKAC+}ll{RbVnrFf`r-bH3RGS|KOf1e)&cCKxYz zLqjBX3^U`sb@!|gMk8+Bz`Uf7n=b!k;i(=tD9GS}v8*>NIk;RcL~W}&ihqi6*@S*W*ahpY^7iVOc`)UbTq a=;oUz1VK+Q5WEORf{9?3H&0mDwSNNw*iX6u delta 2856 zcmcImeNa@_72k93-DP(%u(Gf&2)J263VsAcnbfF2g24|I(MUBY5le{afPn~OgHe~X zqiIVi@L*3y$<%;-QJW94Yxb&9#`qOtEMp~!rX>zBX-sXKp#yXRR<`GXQgrNO{G)H? zH|L&@d+s^Ed*6H4)s*aNO0G?uuDktMbh`CSr?ZnjC z5a*4tbm{A(ozhthSD-%KsqE{B^v<_0bAIp28X03(W@A>qNmbpw^0?b8Ya7u#S9oj= z*5Y`yP&yLCWKd4ABrM;;t3CT2X0Jo-2G1c!1MaP1LdMjxe}m#k6tBlD2D6OW4qf2O z1xJu{MDlL%6@kNWR~8JB=2}_12}%Rq#q2Pf3V5`bMF=ykjhBmA2AsjD5;k@GIqKp; zsyu__o8%n8H6`p3!)#Jt2Hb7sMOe4WFcGtNictB`i||KK^BF^r**FUmeE|`2nF~BS ze3bwUn@a7dG7LH(0G0d3)Vs?h6jji%4;s0wC!it zW9!o?OCb@WUSOe7S=7M|D*auOAL@0wQ0nY3={=eaqx$%S=om7oq#mLWD~Y zY!?7m^zr!+k9B=K`C093T_W=Xggt}~!giXb?QR@R`z4JB34-jOP>NKN>10nLTO*Bq zgch>5kUod(4J6GZXA;`UH=U&RMxMs${d~gX%PDj%nIZ_OgcTH`E!9Ml#PDOI6d#ao zzGYKs&IXDtAj~A+KLE?xnYC`O6fv;dqWR}b zv3aREG3wRcxMt<%K={7m678`uKqbiDSjge&64f67~#Uyrj3GW0k=oJ-G-B;e;$72<(^9MwDxh9&Q^XU@LmLKo!=+H+LZ4jSc@4;utxZu1jm;Ud-I9K zZ%OtM@8<{)k$#xAUz`3N+2@dLWCJG7AoboGpi}BL$KnaAIZYO}@g`m$M*S|Nzmo4X z2P48UaXq%_(k{!H^7!nW+Nbg}pJ;rF@{XR$qA5Dv8PdDZa$NM_#Z%@inbpA$#i|jU z!A7iF!ct}0zxat@?KkI4d(8w|eYsRCzW*2tQ@TT}N?+O&BIgcEd3rU5c=h=*-zb{F z-N94P@;jpqvkvmvSe40B@x(#?&*1E%`jrudxo5p|Us@2Iw-HbLo~KI~C;VJpESMT1 z>^Q#76o!jpSq%R0koW+C5#AMkb()BVTuk4}7Gn2+DM0hS~5@P*2A9~xzjD&E$+&-1q}XJ_yK=#{V9l3F5uhQAt`wP56Ecb@0d z!Tn935wFLAOfNmV>B9R}izHWsny_1y&65j*&y9U9d*ifz4QPgJ&D3kx{$*j5_p1q#5Nv zmOyDF}>{vJU)o3*ygPB