Browse Source

Temporary rotation commands LeftControl + R/T/Y

Image 3 years ago
parent
commit
825f7e0020
1 changed files with 48 additions and 0 deletions
  1. 48 0
      EQ2/devtools/EQ2ModelViewer/EQ2ModelViewer/Main.cs

+ 48 - 0
EQ2/devtools/EQ2ModelViewer/EQ2ModelViewer/Main.cs

@@ -15,6 +15,7 @@ using Buffer = SlimDX.Direct3D11.Buffer;
 using Everquest2.Util;
 using Everquest2.Visualization;
 using System.IO;
+using SlimDX.DirectInput;
 
 namespace EQ2ModelViewer
 {
@@ -51,6 +52,8 @@ namespace EQ2ModelViewer
             CleanUp();
         }
 
+        private Key hitKey = Key.NoConvert;
+        double timestamp = 0;
         private CameraClass camera;
         private void frmMain_Load(object sender, EventArgs e)
         {
@@ -166,6 +169,51 @@ namespace EQ2ModelViewer
                                 {
                                     SelectedModel = null;
                                 }
+
+                                if (input.IsKeyPressed(SlimDX.DirectInput.Key.LeftControl))
+                                {
+                                    if (hitKey == Key.NoConvert)
+                                    {
+                                        if (input.IsKeyPressed(SlimDX.DirectInput.Key.R))
+                                            hitKey = Key.R;
+                                        else if (input.IsKeyPressed(SlimDX.DirectInput.Key.T))
+                                            hitKey = Key.T;
+                                        else if (input.IsKeyPressed(SlimDX.DirectInput.Key.Y))
+                                            hitKey = Key.Y;
+                                    }
+                                    double curTime = (DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalMilliseconds;
+                                    if ((curTime - timestamp) > 50)
+                                    {
+                                        if (hitKey == Key.R)
+                                        {
+                                            if (input.IsKeyReleased(SlimDX.DirectInput.Key.R))
+                                                hitKey = Key.NoConvert;
+                                            SelectedModel.Rotation += new Vector3(0.01f, 0.0f, 0.0f);
+                                            timestamp = curTime;
+                                        }
+                                        else if (hitKey == Key.T)
+                                        {
+                                            if (input.IsKeyReleased(SlimDX.DirectInput.Key.T))
+                                                hitKey = Key.NoConvert;
+                                            SelectedModel.Rotation += new Vector3(0.0f, 0.01f, 0.0f);
+                                            timestamp = curTime;
+                                        }
+                                        else if (hitKey == Key.Y)
+                                        {
+                                            if (input.IsKeyReleased(SlimDX.DirectInput.Key.Y))
+                                                hitKey = Key.NoConvert;
+                                            SelectedModel.Rotation += new Vector3(0.0f, 0.0f, 0.01f);
+                                            timestamp = curTime;
+                                        }
+
+                                        if (SelectedModel.Rotation.X > 360.0f)
+                                            SelectedModel.Rotation.X = 0.0f;
+                                        if (SelectedModel.Rotation.Y > 360.0f)
+                                            SelectedModel.Rotation.Y = 0.0f;
+                                        if (SelectedModel.Rotation.Z > 360.0f)
+                                            SelectedModel.Rotation.Z = 0.0f;
+                                    }
+                                }
                             }
                         }