|
@@ -0,0 +1,104 @@
|
|
|
|
|
+#include "Device.h"
|
|
|
|
|
+#include "ScriptSystem.h"
|
|
|
|
|
+#include "Mouse.h"
|
|
|
|
|
+
|
|
|
|
|
+namespace crown
|
|
|
|
|
+{
|
|
|
|
|
+
|
|
|
|
|
+extern "C"
|
|
|
|
|
+{
|
|
|
|
|
+ bool mouse_button_pressed(uint32_t button);
|
|
|
|
|
+
|
|
|
|
|
+ bool mouse_button_released(uint32_t button);
|
|
|
|
|
+
|
|
|
|
|
+ Vec2& mouse_cursor_xy();
|
|
|
|
|
+
|
|
|
|
|
+ void mouse_set_cursor_xy(const Vec2& position);
|
|
|
|
|
+
|
|
|
|
|
+ Vec2& mouse_cursor_relative_xy();
|
|
|
|
|
+
|
|
|
|
|
+ void mouse_set_cursor_relative_xy(const Vec2& position);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+bool mouse_button_pressed(uint32_t button)
|
|
|
|
|
+{
|
|
|
|
|
+ MouseButton b;
|
|
|
|
|
+
|
|
|
|
|
+ switch(button)
|
|
|
|
|
+ {
|
|
|
|
|
+ case MB_LEFT:
|
|
|
|
|
+ {
|
|
|
|
|
+ b = MB_LEFT;
|
|
|
|
|
+ }
|
|
|
|
|
+ case MB_MIDDLE:
|
|
|
|
|
+ {
|
|
|
|
|
+ b = MB_MIDDLE;
|
|
|
|
|
+ }
|
|
|
|
|
+ case MB_RIGHT:
|
|
|
|
|
+ {
|
|
|
|
|
+ b = MB_RIGHT;
|
|
|
|
|
+ }
|
|
|
|
|
+ default:
|
|
|
|
|
+ {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return device()->mouse()->button_pressed(b);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+bool mouse_button_released(uint32_t button)
|
|
|
|
|
+{
|
|
|
|
|
+ MouseButton b;
|
|
|
|
|
+
|
|
|
|
|
+ switch(button)
|
|
|
|
|
+ {
|
|
|
|
|
+ case MB_LEFT:
|
|
|
|
|
+ {
|
|
|
|
|
+ b = MB_LEFT;
|
|
|
|
|
+ }
|
|
|
|
|
+ case MB_MIDDLE:
|
|
|
|
|
+ {
|
|
|
|
|
+ b = MB_MIDDLE;
|
|
|
|
|
+ }
|
|
|
|
|
+ case MB_RIGHT:
|
|
|
|
|
+ {
|
|
|
|
|
+ b = MB_RIGHT;
|
|
|
|
|
+ }
|
|
|
|
|
+ default:
|
|
|
|
|
+ {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return device()->mouse()->button_released(b);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+Vec2& mouse_cursor_xy()
|
|
|
|
|
+{
|
|
|
|
|
+ Point2 tmp = device()->mouse()->cursor_xy();
|
|
|
|
|
+
|
|
|
|
|
+ return scripter()->next_vec2(tmp.x, tmp.y);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void mouse_set_cursor_xy(const Vec2& position)
|
|
|
|
|
+{
|
|
|
|
|
+ Point2 tmp;
|
|
|
|
|
+ tmp.x = (uint32_t)position.x;
|
|
|
|
|
+ tmp.y = (uint32_t)position.y;
|
|
|
|
|
+
|
|
|
|
|
+ device()->mouse()->set_cursor_xy(tmp);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+Vec2& mouse_cursor_relative_xy()
|
|
|
|
|
+{
|
|
|
|
|
+ Vec2 tmp = device()->mouse()->cursor_relative_xy();
|
|
|
|
|
+
|
|
|
|
|
+ return scripter()->next_vec2(tmp.x, tmp.y);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void mouse_set_cursor_relative_xy(const Vec2& position)
|
|
|
|
|
+{
|
|
|
|
|
+ device()->mouse()->set_cursor_relative_xy(position);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+}
|