From 6f8dfa76c8d76ad38e47a164811eeac75323fda2 Mon Sep 17 00:00:00 2001
From: Benlitz <dev@benlitz.net>
Date: Mon, 12 Aug 2013 15:24:45 +0000
Subject: [PATCH] Added missing file and fixed mongoloclick

---
 src/input/input_internal.h  | 42 +++++++++++++++++++++++++++++++++++++
 src/lolcore.vcxproj.filters | 40 +++++++++++++++++------------------
 2 files changed, 62 insertions(+), 20 deletions(-)
 create mode 100644 src/input/input_internal.h

diff --git a/src/input/input_internal.h b/src/input/input_internal.h
new file mode 100644
index 00000000..803a0168
--- /dev/null
+++ b/src/input/input_internal.h
@@ -0,0 +1,42 @@
+//
+// Lol Engine
+//
+// Copyright: (c) 2010-2013 Benjamin Litzelmann
+//   This program is free software; you can redistribute it and/or
+//   modify it under the terms of the Do What The Fuck You Want To
+//   Public License, Version 2, as published by Sam Hocevar. See
+//   http://www.wtfpl.net/ for more details.
+//
+
+#if !defined __LOL_INPUT_DEVICE_INTERNAL_H__
+#define __LOL_INPUT_DEVICE_H__
+
+#include "core.h"
+
+namespace lol
+{
+
+/** Internal class (not public) that allows to construct an InputDevice dynamically, when the keys, axis and cursors are not known at compile time */
+class InputDeviceInternal : InputDevice
+{
+public:
+    InputDeviceInternal(const char* name) : InputDevice(name) { }
+
+    void AddKey(const char* name);
+    void AddAxis(const char* name, float sensitivity = 1.0f);
+    void AddCursor(const char* name);
+
+    void SetKey(int index, bool state) { m_keys[index] = state; }
+    void SetAxis(int index, float value) { m_axis[index].m1 = value; }
+    void SetCursor(int index, const vec2& position, const ivec2& pixel) { m_cursors[index].m1 = position; m_cursors[index].m2 = pixel; }
+
+    static bool GetMouseCapture() { return m_capturemouse; }
+
+    static InputDeviceInternal* CreateStandardKeyboard();
+    static InputDeviceInternal* CreateStandardMouse();
+};
+
+} /* namespace lol */
+
+#endif // __LOL_INPUT_DEVICE_INTERNAL_H__
+
diff --git a/src/lolcore.vcxproj.filters b/src/lolcore.vcxproj.filters
index dc05fb99..e8cbe605 100644
--- a/src/lolcore.vcxproj.filters
+++ b/src/lolcore.vcxproj.filters
@@ -64,19 +64,19 @@
     <Filter Include="lol\debug">
       <UniqueIdentifier>{01285b11-c6c7-4a9e-8dee-daa2c63901e4}</UniqueIdentifier>
     </Filter>
-    <Filter Include="mesh\platform">
+    <Filter Include="platform">
       <UniqueIdentifier>{a11c55f8-8e10-4270-be24-38e8d4fcf589}</UniqueIdentifier>
     </Filter>
-    <Filter Include="mesh\platform\sdl">
+    <Filter Include="platform\sdl">
       <UniqueIdentifier>{4089421f-2cc2-4036-a6b2-9df8a2f4efc8}</UniqueIdentifier>
     </Filter>
-    <Filter Include="mesh\platform\xbox">
+    <Filter Include="platform\xbox">
       <UniqueIdentifier>{317cb5cc-5dcc-4e14-be90-40a125a2e2ec}</UniqueIdentifier>
     </Filter>
-    <Filter Include="mesh\platform\d3d9">
+    <Filter Include="platform\d3d9">
       <UniqueIdentifier>{a914e15d-3201-467a-a9c9-d7c5244b13ee}</UniqueIdentifier>
     </Filter>
-    <Filter Include="mesh\platform\ps3">
+    <Filter Include="platform\ps3">
       <UniqueIdentifier>{c6c6b597-ed6c-4d82-a166-964beeeeb525}</UniqueIdentifier>
     </Filter>
   </ItemGroup>
@@ -94,10 +94,10 @@
       <Filter>debug</Filter>
     </ClCompile>
     <ClCompile Include="platform\sdl\sdlapp.cpp">
-      <Filter>mesh\platform\sdl</Filter>
+      <Filter>platform\sdl</Filter>
     </ClCompile>
     <ClCompile Include="platform\sdl\sdlinput.cpp">
-      <Filter>mesh\platform\sdl</Filter>
+      <Filter>platform\sdl</Filter>
     </ClCompile>
     <ClCompile Include="math\half.cpp">
       <Filter>math</Filter>
@@ -151,10 +151,10 @@
       <Filter>image\codec</Filter>
     </ClCompile>
     <ClCompile Include="platform\xbox\xboxapp.cpp">
-      <Filter>mesh\platform\xbox</Filter>
+      <Filter>platform\xbox</Filter>
     </ClCompile>
     <ClCompile Include="platform\xbox\xboxinput.cpp">
-      <Filter>mesh\platform\xbox</Filter>
+      <Filter>platform\xbox</Filter>
     </ClCompile>
     <ClCompile Include="gpu\indexbuffer.cpp">
       <Filter>gpu</Filter>
@@ -163,7 +163,7 @@
       <Filter>input</Filter>
     </ClCompile>
     <ClCompile Include="platform\d3d9\d3d9input.cpp">
-      <Filter>mesh\platform\d3d9</Filter>
+      <Filter>platform\d3d9</Filter>
     </ClCompile>
     <ClCompile Include="audio.cpp">
       <Filter>...</Filter>
@@ -262,10 +262,10 @@
       <Filter>generated</Filter>
     </ClCompile>
     <ClCompile Include="platform\ps3\ps3app.cpp">
-      <Filter>mesh\platform\ps3</Filter>
+      <Filter>platform\ps3</Filter>
     </ClCompile>
     <ClCompile Include="platform\ps3\ps3input.cpp">
-      <Filter>mesh\platform\ps3</Filter>
+      <Filter>platform\ps3</Filter>
     </ClCompile>
     <ClCompile Include="gpu\lolfx-compiler.cpp">
       <Filter>gpu</Filter>
@@ -321,10 +321,10 @@
       <Filter>debug</Filter>
     </ClInclude>
     <ClInclude Include="platform\sdl\sdlinput.h">
-      <Filter>mesh\platform\sdl</Filter>
+      <Filter>platform\sdl</Filter>
     </ClInclude>
     <ClInclude Include="platform\sdl\sdlapp.h">
-      <Filter>mesh\platform\sdl</Filter>
+      <Filter>platform\sdl</Filter>
     </ClInclude>
     <ClInclude Include="lol\image\color.h">
       <Filter>lol\image</Filter>
@@ -360,16 +360,16 @@
       <Filter>image</Filter>
     </ClInclude>
     <ClInclude Include="platform\xbox\xboxapp.h">
-      <Filter>mesh\platform\xbox</Filter>
+      <Filter>platform\xbox</Filter>
     </ClInclude>
     <ClInclude Include="platform\xbox\xboxinput.h">
-      <Filter>mesh\platform\xbox</Filter>
+      <Filter>platform\xbox</Filter>
     </ClInclude>
     <ClInclude Include="input\input.h">
       <Filter>input</Filter>
     </ClInclude>
     <ClInclude Include="platform\d3d9\d3d9input.h">
-      <Filter>mesh\platform\d3d9</Filter>
+      <Filter>platform\d3d9</Filter>
     </ClInclude>
     <ClInclude Include="audio.h">
       <Filter>...</Filter>
@@ -486,13 +486,13 @@
       <Filter>gpu</Filter>
     </ClInclude>
     <ClInclude Include="platform\ps3\ps3app.h">
-      <Filter>mesh\platform\ps3</Filter>
+      <Filter>platform\ps3</Filter>
     </ClInclude>
     <ClInclude Include="platform\ps3\ps3input.h">
-      <Filter>mesh\platform\ps3</Filter>
+      <Filter>platform\ps3</Filter>
     </ClInclude>
     <ClInclude Include="platform\ps3\threadbase.h">
-      <Filter>mesh\platform\ps3</Filter>
+      <Filter>platform\ps3</Filter>
     </ClInclude>
     <ClInclude Include="map.h">
       <Filter>src\...</Filter>