LiteRGSS 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/ext/LiteRGSS/Bitmap.cpp +316 -0
- data/ext/LiteRGSS/Bitmap.h +24 -0
- data/ext/LiteRGSS/BlendMode.cpp +202 -0
- data/ext/LiteRGSS/BlendMode.h +20 -0
- data/ext/LiteRGSS/CBitmap_Element.cpp +50 -0
- data/ext/LiteRGSS/CBitmap_Element.h +17 -0
- data/ext/LiteRGSS/CDrawable_Element.cpp +38 -0
- data/ext/LiteRGSS/CDrawable_Element.h +30 -0
- data/ext/LiteRGSS/CRect_Element.h +15 -0
- data/ext/LiteRGSS/CShaderSprite_Element.cpp +17 -0
- data/ext/LiteRGSS/CShaderSprite_Element.h +17 -0
- data/ext/LiteRGSS/CSprite_Element.cpp +15 -0
- data/ext/LiteRGSS/CSprite_Element.h +36 -0
- data/ext/LiteRGSS/CText_Element.cpp +12 -0
- data/ext/LiteRGSS/CText_Element.h +29 -0
- data/ext/LiteRGSS/CTone_Element.h +17 -0
- data/ext/LiteRGSS/CViewport_Element.cpp +224 -0
- data/ext/LiteRGSS/CViewport_Element.h +57 -0
- data/ext/LiteRGSS/Color.cpp +200 -0
- data/ext/LiteRGSS/Color.h +22 -0
- data/ext/LiteRGSS/Fonts.cpp +126 -0
- data/ext/LiteRGSS/Fonts.h +20 -0
- data/ext/LiteRGSS/Graphics.cpp +314 -0
- data/ext/LiteRGSS/Graphics.h +31 -0
- data/ext/LiteRGSS/Graphics.local.cpp +365 -0
- data/ext/LiteRGSS/Graphics.local.h +37 -0
- data/ext/LiteRGSS/Image.cpp +460 -0
- data/ext/LiteRGSS/Image.h +32 -0
- data/ext/LiteRGSS/Input.cpp +664 -0
- data/ext/LiteRGSS/Input.h +38 -0
- data/ext/LiteRGSS/LiteRGSS.cpp +34 -0
- data/ext/LiteRGSS/LiteRGSS.h +113 -0
- data/ext/LiteRGSS/Rect.cpp +324 -0
- data/ext/LiteRGSS/Rect.h +24 -0
- data/ext/LiteRGSS/Shader.cpp +279 -0
- data/ext/LiteRGSS/Shader.h +13 -0
- data/ext/LiteRGSS/ShaderSprite.cpp +78 -0
- data/ext/LiteRGSS/ShaderSprite.h +8 -0
- data/ext/LiteRGSS/Sprite.cpp +495 -0
- data/ext/LiteRGSS/Sprite.h +43 -0
- data/ext/LiteRGSS/Table.cpp +228 -0
- data/ext/LiteRGSS/Table.h +29 -0
- data/ext/LiteRGSS/Table32.cpp +228 -0
- data/ext/LiteRGSS/Table32.h +29 -0
- data/ext/LiteRGSS/Text.cpp +574 -0
- data/ext/LiteRGSS/Text.h +52 -0
- data/ext/LiteRGSS/Texture.hpp +735 -0
- data/ext/LiteRGSS/Tone.cpp +228 -0
- data/ext/LiteRGSS/Tone.h +22 -0
- data/ext/LiteRGSS/Viewport.cpp +491 -0
- data/ext/LiteRGSS/Viewport.h +33 -0
- data/ext/LiteRGSS/Yuki.cpp +29 -0
- data/ext/LiteRGSS/Yuki.h +8 -0
- data/ext/LiteRGSS/Yuki_Gif.cpp +218 -0
- data/ext/LiteRGSS/Yuki_Gif.h +25 -0
- data/ext/LiteRGSS/extconf.rb +8 -0
- data/ext/LiteRGSS/libnsgif.c +1169 -0
- data/ext/LiteRGSS/libnsgif.h +183 -0
- data/ext/LiteRGSS/libnsgif.hpp +184 -0
- data/ext/LiteRGSS/lodepng.cpp +6245 -0
- data/ext/LiteRGSS/lodepng.h +1769 -0
- data/ext/LiteRGSS/lzw.c +377 -0
- data/ext/LiteRGSS/lzw.h +105 -0
- data/ext/LiteRGSS/sf_Text2.cpp +690 -0
- data/ext/LiteRGSS/sf_Text2.hpp +549 -0
- data/ext/LiteRGSS/utils/log.h +21 -0
- metadata +112 -0
@@ -0,0 +1,32 @@
|
|
1
|
+
#ifndef L_IMAGE_HEADER
|
2
|
+
#define L_IMAGE_HEADER
|
3
|
+
#include "ruby.h"
|
4
|
+
#include <SFML/Graphics.hpp>
|
5
|
+
#include "lodepng.h"
|
6
|
+
|
7
|
+
VALUE rb_Image_Initialize(int argc, VALUE *argv, VALUE self);
|
8
|
+
VALUE rb_Image_Initialize_Copy(VALUE self, VALUE other);
|
9
|
+
VALUE rb_Image_Dispose(VALUE self);
|
10
|
+
VALUE rb_Image_Disposed(VALUE self);
|
11
|
+
VALUE rb_Image_Width(VALUE self);
|
12
|
+
VALUE rb_Image_Height(VALUE self);
|
13
|
+
VALUE rb_Image_Rect(VALUE self);
|
14
|
+
VALUE rb_Image_Copy_to_Bitmap(VALUE self, VALUE bitmap);
|
15
|
+
VALUE rb_Image_blt(VALUE self, VALUE x, VALUE y, VALUE src_image, VALUE rect);
|
16
|
+
VALUE rb_Image_blt_fast(VALUE self, VALUE x, VALUE y, VALUE src_image, VALUE rect);
|
17
|
+
VALUE rb_Image_clear_rect(VALUE self, VALUE x, VALUE y, VALUE width, VALUE height);
|
18
|
+
VALUE rb_Image_fill_rect(VALUE self, VALUE x, VALUE y, VALUE width, VALUE height, VALUE color);
|
19
|
+
VALUE rb_Image_toPNG(VALUE self);
|
20
|
+
VALUE rb_Image_toPNG_file(VALUE self, VALUE filename);
|
21
|
+
VALUE rb_Image_get_pixel(VALUE self, VALUE x, VALUE y);
|
22
|
+
VALUE rb_Image_set_pixel(VALUE self, VALUE x, VALUE y, VALUE color);
|
23
|
+
VALUE rb_Image_get_pixel_alpha(VALUE self, VALUE x, VALUE y);
|
24
|
+
VALUE rb_Image_stretch_blt(VALUE self, VALUE dest_rect, VALUE src_image, VALUE src_rect);
|
25
|
+
VALUE rb_Image_stretch_blt_fast(VALUE self, VALUE dest_rect, VALUE src_image, VALUE src_rect);
|
26
|
+
VALUE rb_Image_create_mask(VALUE self, VALUE color, VALUE alpha);
|
27
|
+
bool rb_Image_LoadLodePNG(sf::Image* img, char* str, long from_memory_size);
|
28
|
+
|
29
|
+
sf::Image* rb_Image_get_image(VALUE self);
|
30
|
+
void rb_Image_test_image(VALUE self);
|
31
|
+
|
32
|
+
#endif
|
@@ -0,0 +1,664 @@
|
|
1
|
+
#include "LiteRGSS.h"
|
2
|
+
|
3
|
+
#define L_INPUT_NUM_INGAME_KEY 17
|
4
|
+
#define L_INPUT_NUM_MOUSE_KEY 5
|
5
|
+
#define L_TRIGGER_TIME_METHOD 1
|
6
|
+
#define L_TRIGGER_COUNT_METHOD 2
|
7
|
+
#define L_TRIGGER_METHOD L_TRIGGER_COUNT_METHOD
|
8
|
+
|
9
|
+
VALUE rb_mInput = Qnil;
|
10
|
+
VALUE rb_mMouse = Qnil;
|
11
|
+
VALUE rb_mMouseKey = Qnil;
|
12
|
+
VALUE rb_mInputKey = Qnil;
|
13
|
+
VALUE rb_mMouseKeyID = Qnil;
|
14
|
+
VALUE rb_mInputKeyID = Qnil;
|
15
|
+
VALUE rb_mInputMainJoy = Qnil;
|
16
|
+
VALUE rb_mInputMainAxisX = Qnil;
|
17
|
+
VALUE rb_mInputMainAxisY = Qnil;
|
18
|
+
ID rb_mInputEach = Qnil;
|
19
|
+
/* Clocks used to detect trigger, and repeat */
|
20
|
+
#if L_TRIGGER_METHOD == L_TRIGGER_TIME_METHOD
|
21
|
+
sf::Clock L_Input_Clock[L_INPUT_NUM_INGAME_KEY];
|
22
|
+
sf::Clock L_Mouse_Clock[L_INPUT_NUM_MOUSE_KEY];
|
23
|
+
#define L_TRIGGER_RESET_Mouse(i) L_Mouse_Clock[i].restart()
|
24
|
+
#define L_TRIGGER_RESET_Input(i) L_Input_Clock[i].restart()
|
25
|
+
#define L_Trigger_Mouse(pos) L_Mouse_Clock[pos].getElapsedTime().asMicroseconds() < L_Input_threshold
|
26
|
+
#define L_Trigger_Input(pos) L_Input_Clock[pos].getElapsedTime().asMicroseconds() < L_Input_threshold
|
27
|
+
#define L_Repeat_Input(pos) long time = L_Input_Clock[pos].getElapsedTime().asMicroseconds(); \
|
28
|
+
if (time >= (L_Input_threshold * 20)) \
|
29
|
+
if((time % (L_Input_threshold * 8)) < L_Input_threshold) \
|
30
|
+
return Qtrue;
|
31
|
+
#elif L_TRIGGER_METHOD == L_TRIGGER_COUNT_METHOD
|
32
|
+
unsigned long L_Input_Count[L_INPUT_NUM_INGAME_KEY];
|
33
|
+
unsigned long L_Mouse_Count[L_INPUT_NUM_MOUSE_KEY];
|
34
|
+
#define L_TRIGGER_RESET_Mouse(i) L_Mouse_Count[i] = frame_count
|
35
|
+
#define L_TRIGGER_RESET_Input(i) L_Input_Count[i] = frame_count
|
36
|
+
#define L_Trigger_Mouse(pos) L_Mouse_Count[pos] == (frame_count - 1)
|
37
|
+
#define L_Trigger_Input(pos) L_Input_Count[pos] == (frame_count - 1)
|
38
|
+
#define L_Repeat_Input(pos) unsigned long count = (frame_count - L_Input_Count[pos]); \
|
39
|
+
if(count > (frame_rate / 2)) \
|
40
|
+
{ \
|
41
|
+
count -= (frame_rate / 2); \
|
42
|
+
if ((count % (frame_rate / 6)) == 0) \
|
43
|
+
return Qtrue; \
|
44
|
+
}
|
45
|
+
#endif
|
46
|
+
bool L_Input_Press[L_INPUT_NUM_INGAME_KEY];
|
47
|
+
bool L_Mouse_Press[L_INPUT_NUM_MOUSE_KEY];
|
48
|
+
long L_Input_threshold = 0;
|
49
|
+
long L_Mouse_Wheel_Delta = 0;
|
50
|
+
double L_Mouse_Pos_X = 0;
|
51
|
+
double L_Mouse_Pos_Y = 0;
|
52
|
+
std::string L_EnteredText = std::string();
|
53
|
+
|
54
|
+
unsigned int L_Input_Get_Key_Position(VALUE hash_ids, VALUE hash_key);
|
55
|
+
|
56
|
+
void Init_Input()
|
57
|
+
{
|
58
|
+
rb_mInput = rb_define_module_under(rb_mLiteRGSS, "Input");
|
59
|
+
rb_mMouse = rb_define_module_under(rb_mLiteRGSS, "Mouse");
|
60
|
+
VALUE rb_mKeyboard = rb_define_module_under(rb_mInput, "Keyboard");
|
61
|
+
/* function definition */
|
62
|
+
rb_define_module_function(rb_mKeyboard, "press?", _rbf rb_KeyBoard_Press, 1);
|
63
|
+
|
64
|
+
rb_define_module_function(rb_mInput, "press?", _rbf rb_Input_Press, 1);
|
65
|
+
rb_define_module_function(rb_mInput, "trigger?", _rbf rb_Input_Trigger, 1);
|
66
|
+
rb_define_module_function(rb_mInput, "repeat?", _rbf rb_Input_Repeat, 1);
|
67
|
+
rb_define_module_function(rb_mInput, "released?", _rbf rb_Input_Released, 1);
|
68
|
+
rb_define_module_function(rb_mInput, "dir4", _rbf rb_Input_dir4, 0);
|
69
|
+
rb_define_module_function(rb_mInput, "dir8", _rbf rb_Input_dir8, 0);
|
70
|
+
rb_define_module_function(rb_mInput, "main_joy", _rbf rb_Input_getMainJoypad, 0);
|
71
|
+
rb_define_module_function(rb_mInput, "main_joy=", _rbf rb_Input_setMainJoypad, 1);
|
72
|
+
rb_define_module_function(rb_mInput, "x_axis", _rbf rb_Input_getMainXAxis, 0);
|
73
|
+
rb_define_module_function(rb_mInput, "x_axis=", _rbf rb_Input_setMainXAxis, 1);
|
74
|
+
rb_define_module_function(rb_mInput, "y_axis", _rbf rb_Input_getMainYAxis, 0);
|
75
|
+
rb_define_module_function(rb_mInput, "y_axis=", _rbf rb_Input_setMainYAxis, 1);
|
76
|
+
rb_define_module_function(rb_mInput, "get_text", _rbf rb_Input_getText, 0);
|
77
|
+
|
78
|
+
rb_define_module_function(rb_mMouse, "press?", _rbf rb_Mouse_Press, 1);
|
79
|
+
rb_define_module_function(rb_mMouse, "trigger?", _rbf rb_Mouse_Trigger, 1);
|
80
|
+
rb_define_module_function(rb_mMouse, "released?", _rbf rb_Mouse_Released, 1);
|
81
|
+
rb_define_module_function(rb_mMouse, "x", _rbf rb_Mouse_x, 0);
|
82
|
+
rb_define_module_function(rb_mMouse, "y", _rbf rb_Mouse_y, 0);
|
83
|
+
rb_define_module_function(rb_mMouse, "wheel", _rbf rb_Mouse_Wheel, 0);
|
84
|
+
rb_define_module_function(rb_mMouse, "wheel=", _rbf rb_Mouse_Wheel_set, 1);
|
85
|
+
|
86
|
+
/* usefull id */
|
87
|
+
rb_mInputEach = rb_intern("each_key");
|
88
|
+
/* Constants definition */
|
89
|
+
VALUE tmp, key;
|
90
|
+
rb_mMouseKey = rb_hash_new();
|
91
|
+
rb_mMouseKeyID = rb_hash_new();
|
92
|
+
rb_define_const(rb_mMouse, "Keys", rb_mMouseKey);
|
93
|
+
rb_gc_register_address(&rb_mMouseKey); // Protect the Hash from being GC'd
|
94
|
+
rb_gc_register_address(&rb_mMouseKeyID);
|
95
|
+
RHASH_SET_IFNONE(rb_mMouseKey, tmp = rb_int2inum(sf::Mouse::Button::Left));
|
96
|
+
RHASH_SET_IFNONE(rb_mMouseKeyID, LONG2FIX(0));
|
97
|
+
rb_hash_aset(rb_mMouseKey, key = rb_id2sym(rb_intern("LEFT")), tmp);
|
98
|
+
rb_hash_aset(rb_mMouseKeyID, key, LONG2FIX(0));
|
99
|
+
rb_hash_aset(rb_mMouseKey, key = rb_id2sym(rb_intern("left")), tmp);
|
100
|
+
rb_hash_aset(rb_mMouseKeyID, key, LONG2FIX(0));
|
101
|
+
rb_hash_aset(rb_mMouseKey, key = rb_id2sym(rb_intern("RIGHT")), tmp = rb_int2inum(sf::Mouse::Button::Right));
|
102
|
+
rb_hash_aset(rb_mMouseKeyID, key, LONG2FIX(1));
|
103
|
+
rb_hash_aset(rb_mMouseKey, key = rb_id2sym(rb_intern("right")), tmp);
|
104
|
+
rb_hash_aset(rb_mMouseKeyID, key, LONG2FIX(1));
|
105
|
+
rb_hash_aset(rb_mMouseKey, key = rb_id2sym(rb_intern("MIDDLE")), tmp = rb_int2inum(sf::Mouse::Button::Middle));
|
106
|
+
rb_hash_aset(rb_mMouseKeyID, key, LONG2FIX(2));
|
107
|
+
rb_hash_aset(rb_mMouseKey, key = rb_id2sym(rb_intern("middle")), tmp);
|
108
|
+
rb_hash_aset(rb_mMouseKeyID, key, LONG2FIX(2));
|
109
|
+
rb_hash_aset(rb_mMouseKey, key = rb_id2sym(rb_intern("X1")), tmp = rb_int2inum(sf::Mouse::Button::XButton1));
|
110
|
+
rb_hash_aset(rb_mMouseKeyID, key, LONG2FIX(3));
|
111
|
+
rb_hash_aset(rb_mMouseKey, key = rb_id2sym(rb_intern("x1")), tmp);
|
112
|
+
rb_hash_aset(rb_mMouseKeyID, key, LONG2FIX(3));
|
113
|
+
rb_hash_aset(rb_mMouseKey, key = rb_id2sym(rb_intern("X2")), tmp = rb_int2inum(sf::Mouse::Button::XButton2));
|
114
|
+
rb_hash_aset(rb_mMouseKeyID, key, LONG2FIX(4));
|
115
|
+
rb_hash_aset(rb_mMouseKey, key = rb_id2sym(rb_intern("x2")), tmp);
|
116
|
+
rb_hash_aset(rb_mMouseKeyID, key, LONG2FIX(4));
|
117
|
+
|
118
|
+
rb_mInputKey = rb_hash_new();
|
119
|
+
rb_mInputKeyID = rb_hash_new();
|
120
|
+
rb_define_const(rb_mInput, "Keys", rb_mInputKey);
|
121
|
+
rb_gc_register_address(&rb_mInputKey); // Protect the Hash from being GC'd
|
122
|
+
rb_gc_register_address(&rb_mInputKeyID);
|
123
|
+
RHASH_SET_IFNONE(rb_mInputKey, tmp = rb_ary_new());
|
124
|
+
RHASH_SET_IFNONE(rb_mInputKeyID, LONG2FIX(0));
|
125
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("A")), tmp);
|
126
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(0));
|
127
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::C));
|
128
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Return));
|
129
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Space));
|
130
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("B")), tmp = rb_ary_new());
|
131
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(1));
|
132
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::X));
|
133
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Escape));
|
134
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::LShift));
|
135
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::RShift));
|
136
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::BackSpace));
|
137
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("X")), tmp = rb_ary_new());
|
138
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(2));
|
139
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::V));
|
140
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::LAlt));
|
141
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("Y")), tmp = rb_ary_new());
|
142
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(3));
|
143
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::W));
|
144
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::RAlt));
|
145
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("L")), tmp = rb_ary_new());
|
146
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(4));
|
147
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::A));
|
148
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("R")), tmp = rb_ary_new());
|
149
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(5));
|
150
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::E));
|
151
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("L2")), tmp = rb_ary_new());
|
152
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(6));
|
153
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Num1));
|
154
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("R2")), tmp = rb_ary_new());
|
155
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(7));
|
156
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Num3));
|
157
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("L3")), tmp = rb_ary_new());
|
158
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(8));
|
159
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("R3")), tmp = rb_ary_new());
|
160
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(9));
|
161
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("START")), tmp = rb_ary_new());
|
162
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(10));
|
163
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::B));
|
164
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("start")), tmp);
|
165
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(10));
|
166
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("SELECT")), tmp = rb_ary_new());
|
167
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(11));
|
168
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::N));
|
169
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("select")), tmp);
|
170
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(11));
|
171
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("HOME")), tmp = rb_ary_new());
|
172
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(12));
|
173
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::LControl));
|
174
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::RControl));
|
175
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("home")), tmp);
|
176
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(12));
|
177
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("UP")), tmp = rb_ary_new());
|
178
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(13));
|
179
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Up));
|
180
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Z));
|
181
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Numpad8));
|
182
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("up")), tmp);
|
183
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(13));
|
184
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("DOWN")), tmp = rb_ary_new());
|
185
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(14));
|
186
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Down));
|
187
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::S));
|
188
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Numpad2));
|
189
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("down")), tmp);
|
190
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(14));
|
191
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("LEFT")), tmp = rb_ary_new());
|
192
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(15));
|
193
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Left));
|
194
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Q));
|
195
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Numpad4));
|
196
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("left")), tmp);
|
197
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(15));
|
198
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("RIGHT")), tmp = rb_ary_new());
|
199
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(16));
|
200
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Right));
|
201
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::D));
|
202
|
+
rb_ary_push(tmp, rb_int2inum(sf::Keyboard::Numpad6));
|
203
|
+
rb_hash_aset(rb_mInputKey, key = rb_id2sym(rb_intern("right")), tmp);
|
204
|
+
rb_hash_aset(rb_mInputKeyID, key, LONG2FIX(16));
|
205
|
+
|
206
|
+
rb_mInputMainJoy = LONG2FIX(0);
|
207
|
+
rb_define_const(rb_mInput, "JoyAxisX", tmp = rb_int2inum(sf::Joystick::Axis::X));
|
208
|
+
rb_mInputMainAxisX = tmp;
|
209
|
+
rb_define_const(rb_mInput, "JoyAxisY", rb_int2inum(sf::Joystick::Axis::Y));
|
210
|
+
rb_mInputMainAxisY = tmp;
|
211
|
+
rb_define_const(rb_mInput, "JoyAxisZ", rb_int2inum(sf::Joystick::Axis::Z));
|
212
|
+
rb_define_const(rb_mInput, "JoyAxisR", rb_int2inum(sf::Joystick::Axis::R));
|
213
|
+
rb_define_const(rb_mInput, "JoyAxisU", rb_int2inum(sf::Joystick::Axis::U));
|
214
|
+
rb_define_const(rb_mInput, "JoyAxisV", rb_int2inum(sf::Joystick::Axis::V));
|
215
|
+
rb_define_const(rb_mInput, "JoyAxisPovX", rb_int2inum(sf::Joystick::Axis::PovX));
|
216
|
+
rb_define_const(rb_mInput, "JoyAxisPovY", rb_int2inum(sf::Joystick::Axis::PovY));
|
217
|
+
|
218
|
+
rb_define_const(rb_mKeyboard, "A", rb_int2inum(sf::Keyboard::A));
|
219
|
+
rb_define_const(rb_mKeyboard, "B", rb_int2inum(sf::Keyboard::B));
|
220
|
+
rb_define_const(rb_mKeyboard, "C", rb_int2inum(sf::Keyboard::C));
|
221
|
+
rb_define_const(rb_mKeyboard, "D", rb_int2inum(sf::Keyboard::D));
|
222
|
+
rb_define_const(rb_mKeyboard, "E", rb_int2inum(sf::Keyboard::E));
|
223
|
+
rb_define_const(rb_mKeyboard, "F", rb_int2inum(sf::Keyboard::F));
|
224
|
+
rb_define_const(rb_mKeyboard, "G", rb_int2inum(sf::Keyboard::G));
|
225
|
+
rb_define_const(rb_mKeyboard, "H", rb_int2inum(sf::Keyboard::H));
|
226
|
+
rb_define_const(rb_mKeyboard, "I", rb_int2inum(sf::Keyboard::I));
|
227
|
+
rb_define_const(rb_mKeyboard, "J", rb_int2inum(sf::Keyboard::J));
|
228
|
+
rb_define_const(rb_mKeyboard, "K", rb_int2inum(sf::Keyboard::K));
|
229
|
+
rb_define_const(rb_mKeyboard, "L", rb_int2inum(sf::Keyboard::L));
|
230
|
+
rb_define_const(rb_mKeyboard, "M", rb_int2inum(sf::Keyboard::M));
|
231
|
+
rb_define_const(rb_mKeyboard, "N", rb_int2inum(sf::Keyboard::N));
|
232
|
+
rb_define_const(rb_mKeyboard, "O", rb_int2inum(sf::Keyboard::O));
|
233
|
+
rb_define_const(rb_mKeyboard, "P", rb_int2inum(sf::Keyboard::P));
|
234
|
+
rb_define_const(rb_mKeyboard, "Q", rb_int2inum(sf::Keyboard::Q));
|
235
|
+
rb_define_const(rb_mKeyboard, "R", rb_int2inum(sf::Keyboard::R));
|
236
|
+
rb_define_const(rb_mKeyboard, "S", rb_int2inum(sf::Keyboard::S));
|
237
|
+
rb_define_const(rb_mKeyboard, "T", rb_int2inum(sf::Keyboard::T));
|
238
|
+
rb_define_const(rb_mKeyboard, "U", rb_int2inum(sf::Keyboard::U));
|
239
|
+
rb_define_const(rb_mKeyboard, "V", rb_int2inum(sf::Keyboard::V));
|
240
|
+
rb_define_const(rb_mKeyboard, "W", rb_int2inum(sf::Keyboard::W));
|
241
|
+
rb_define_const(rb_mKeyboard, "X", rb_int2inum(sf::Keyboard::X));
|
242
|
+
rb_define_const(rb_mKeyboard, "Y", rb_int2inum(sf::Keyboard::Y));
|
243
|
+
rb_define_const(rb_mKeyboard, "Z", rb_int2inum(sf::Keyboard::Z));
|
244
|
+
rb_define_const(rb_mKeyboard, "Num0", rb_int2inum(sf::Keyboard::Num0));
|
245
|
+
rb_define_const(rb_mKeyboard, "Num1", rb_int2inum(sf::Keyboard::Num1));
|
246
|
+
rb_define_const(rb_mKeyboard, "Num2", rb_int2inum(sf::Keyboard::Num2));
|
247
|
+
rb_define_const(rb_mKeyboard, "Num3", rb_int2inum(sf::Keyboard::Num3));
|
248
|
+
rb_define_const(rb_mKeyboard, "Num4", rb_int2inum(sf::Keyboard::Num4));
|
249
|
+
rb_define_const(rb_mKeyboard, "Num5", rb_int2inum(sf::Keyboard::Num5));
|
250
|
+
rb_define_const(rb_mKeyboard, "Num6", rb_int2inum(sf::Keyboard::Num6));
|
251
|
+
rb_define_const(rb_mKeyboard, "Num7", rb_int2inum(sf::Keyboard::Num7));
|
252
|
+
rb_define_const(rb_mKeyboard, "Num8", rb_int2inum(sf::Keyboard::Num8));
|
253
|
+
rb_define_const(rb_mKeyboard, "Num9", rb_int2inum(sf::Keyboard::Num9));
|
254
|
+
rb_define_const(rb_mKeyboard, "Escape", rb_int2inum(sf::Keyboard::Escape));
|
255
|
+
rb_define_const(rb_mKeyboard, "LControl", rb_int2inum(sf::Keyboard::LControl));
|
256
|
+
rb_define_const(rb_mKeyboard, "LShift", rb_int2inum(sf::Keyboard::LShift));
|
257
|
+
rb_define_const(rb_mKeyboard, "LAlt", rb_int2inum(sf::Keyboard::LAlt));
|
258
|
+
rb_define_const(rb_mKeyboard, "LSystem", rb_int2inum(sf::Keyboard::LSystem));
|
259
|
+
rb_define_const(rb_mKeyboard, "RControl", rb_int2inum(sf::Keyboard::RControl));
|
260
|
+
rb_define_const(rb_mKeyboard, "RShift", rb_int2inum(sf::Keyboard::RShift));
|
261
|
+
rb_define_const(rb_mKeyboard, "RAlt", rb_int2inum(sf::Keyboard::RAlt));
|
262
|
+
rb_define_const(rb_mKeyboard, "RSystem", rb_int2inum(sf::Keyboard::RSystem));
|
263
|
+
rb_define_const(rb_mKeyboard, "Menu", rb_int2inum(sf::Keyboard::Menu));
|
264
|
+
rb_define_const(rb_mKeyboard, "LBracket", rb_int2inum(sf::Keyboard::LBracket));
|
265
|
+
rb_define_const(rb_mKeyboard, "RBracket", rb_int2inum(sf::Keyboard::RBracket));
|
266
|
+
rb_define_const(rb_mKeyboard, "Semicolon", rb_int2inum(sf::Keyboard::Semicolon));
|
267
|
+
rb_define_const(rb_mKeyboard, "Comma", rb_int2inum(sf::Keyboard::Comma));
|
268
|
+
rb_define_const(rb_mKeyboard, "Period", rb_int2inum(sf::Keyboard::Period));
|
269
|
+
rb_define_const(rb_mKeyboard, "Quote", rb_int2inum(sf::Keyboard::Quote));
|
270
|
+
rb_define_const(rb_mKeyboard, "Slash", rb_int2inum(sf::Keyboard::Slash));
|
271
|
+
rb_define_const(rb_mKeyboard, "Backslash", rb_int2inum(sf::Keyboard::Backslash));
|
272
|
+
rb_define_const(rb_mKeyboard, "Tilde", rb_int2inum(sf::Keyboard::Tilde));
|
273
|
+
rb_define_const(rb_mKeyboard, "Equal", rb_int2inum(sf::Keyboard::Equal));
|
274
|
+
rb_define_const(rb_mKeyboard, "Hyphen", rb_int2inum(sf::Keyboard::Hyphen));
|
275
|
+
rb_define_const(rb_mKeyboard, "Space", rb_int2inum(sf::Keyboard::Space));
|
276
|
+
rb_define_const(rb_mKeyboard, "Enter", rb_int2inum(sf::Keyboard::Enter));
|
277
|
+
rb_define_const(rb_mKeyboard, "Backspace", rb_int2inum(sf::Keyboard::Backspace));
|
278
|
+
rb_define_const(rb_mKeyboard, "Tab", rb_int2inum(sf::Keyboard::Tab));
|
279
|
+
rb_define_const(rb_mKeyboard, "PageUp", rb_int2inum(sf::Keyboard::PageUp));
|
280
|
+
rb_define_const(rb_mKeyboard, "PageDown", rb_int2inum(sf::Keyboard::PageDown));
|
281
|
+
rb_define_const(rb_mKeyboard, "End", rb_int2inum(sf::Keyboard::End));
|
282
|
+
rb_define_const(rb_mKeyboard, "Home", rb_int2inum(sf::Keyboard::Home));
|
283
|
+
rb_define_const(rb_mKeyboard, "Insert", rb_int2inum(sf::Keyboard::Insert));
|
284
|
+
rb_define_const(rb_mKeyboard, "Delete", rb_int2inum(sf::Keyboard::Delete));
|
285
|
+
rb_define_const(rb_mKeyboard, "Add", rb_int2inum(sf::Keyboard::Add));
|
286
|
+
rb_define_const(rb_mKeyboard, "Subtract", rb_int2inum(sf::Keyboard::Subtract));
|
287
|
+
rb_define_const(rb_mKeyboard, "Multiply", rb_int2inum(sf::Keyboard::Multiply));
|
288
|
+
rb_define_const(rb_mKeyboard, "Divide", rb_int2inum(sf::Keyboard::Divide));
|
289
|
+
rb_define_const(rb_mKeyboard, "Left", rb_int2inum(sf::Keyboard::Left));
|
290
|
+
rb_define_const(rb_mKeyboard, "Right", rb_int2inum(sf::Keyboard::Right));
|
291
|
+
rb_define_const(rb_mKeyboard, "Up", rb_int2inum(sf::Keyboard::Up));
|
292
|
+
rb_define_const(rb_mKeyboard, "Down", rb_int2inum(sf::Keyboard::Down));
|
293
|
+
rb_define_const(rb_mKeyboard, "Numpad0", rb_int2inum(sf::Keyboard::Numpad0));
|
294
|
+
rb_define_const(rb_mKeyboard, "Numpad1", rb_int2inum(sf::Keyboard::Numpad1));
|
295
|
+
rb_define_const(rb_mKeyboard, "Numpad2", rb_int2inum(sf::Keyboard::Numpad2));
|
296
|
+
rb_define_const(rb_mKeyboard, "Numpad3", rb_int2inum(sf::Keyboard::Numpad3));
|
297
|
+
rb_define_const(rb_mKeyboard, "Numpad4", rb_int2inum(sf::Keyboard::Numpad4));
|
298
|
+
rb_define_const(rb_mKeyboard, "Numpad5", rb_int2inum(sf::Keyboard::Numpad5));
|
299
|
+
rb_define_const(rb_mKeyboard, "Numpad6", rb_int2inum(sf::Keyboard::Numpad6));
|
300
|
+
rb_define_const(rb_mKeyboard, "Numpad7", rb_int2inum(sf::Keyboard::Numpad7));
|
301
|
+
rb_define_const(rb_mKeyboard, "Numpad8", rb_int2inum(sf::Keyboard::Numpad8));
|
302
|
+
rb_define_const(rb_mKeyboard, "Numpad9", rb_int2inum(sf::Keyboard::Numpad9));
|
303
|
+
rb_define_const(rb_mKeyboard, "F1", rb_int2inum(sf::Keyboard::F1));
|
304
|
+
rb_define_const(rb_mKeyboard, "F2", rb_int2inum(sf::Keyboard::F2));
|
305
|
+
rb_define_const(rb_mKeyboard, "F3", rb_int2inum(sf::Keyboard::F3));
|
306
|
+
rb_define_const(rb_mKeyboard, "F4", rb_int2inum(sf::Keyboard::F4));
|
307
|
+
rb_define_const(rb_mKeyboard, "F5", rb_int2inum(sf::Keyboard::F5));
|
308
|
+
rb_define_const(rb_mKeyboard, "F6", rb_int2inum(sf::Keyboard::F6));
|
309
|
+
rb_define_const(rb_mKeyboard, "F7", rb_int2inum(sf::Keyboard::F7));
|
310
|
+
rb_define_const(rb_mKeyboard, "F8", rb_int2inum(sf::Keyboard::F8));
|
311
|
+
rb_define_const(rb_mKeyboard, "F9", rb_int2inum(sf::Keyboard::F9));
|
312
|
+
rb_define_const(rb_mKeyboard, "F10", rb_int2inum(sf::Keyboard::F10));
|
313
|
+
rb_define_const(rb_mKeyboard, "F11", rb_int2inum(sf::Keyboard::F11));
|
314
|
+
rb_define_const(rb_mKeyboard, "F12", rb_int2inum(sf::Keyboard::F12));
|
315
|
+
rb_define_const(rb_mKeyboard, "F13", rb_int2inum(sf::Keyboard::F13));
|
316
|
+
rb_define_const(rb_mKeyboard, "F14", rb_int2inum(sf::Keyboard::F14));
|
317
|
+
rb_define_const(rb_mKeyboard, "F15", rb_int2inum(sf::Keyboard::F15));
|
318
|
+
rb_define_const(rb_mKeyboard, "Pause", rb_int2inum(sf::Keyboard::Pause));
|
319
|
+
}
|
320
|
+
|
321
|
+
/* Reset the clock of the Input System */
|
322
|
+
void L_Input_Reset_Clocks()
|
323
|
+
{
|
324
|
+
unsigned int i;
|
325
|
+
for(i = 0; i < L_INPUT_NUM_INGAME_KEY; i++)
|
326
|
+
{
|
327
|
+
L_TRIGGER_RESET_Input(i);
|
328
|
+
L_Input_Press[i] = false;
|
329
|
+
}
|
330
|
+
for(i = 0;i < L_INPUT_NUM_MOUSE_KEY; i++)
|
331
|
+
{
|
332
|
+
L_TRIGGER_RESET_Mouse(i);
|
333
|
+
L_Mouse_Press[i] = false;
|
334
|
+
}
|
335
|
+
}
|
336
|
+
|
337
|
+
unsigned int L_Input_Get_Key_Position(VALUE hash_ids, VALUE hash_key)
|
338
|
+
{
|
339
|
+
return rb_num2ulong(rb_hash_aref(hash_ids, hash_key));
|
340
|
+
}
|
341
|
+
|
342
|
+
/* Blocks that update the press key state */
|
343
|
+
VALUE rb_Input_KeyStateDown_Block(VALUE hash_key, VALUE id_key, int argc, VALUE* argv)
|
344
|
+
{
|
345
|
+
VALUE array = rb_hash_aref(rb_mInputKey, hash_key);
|
346
|
+
if(rb_ary_includes(array, id_key) == Qtrue)
|
347
|
+
{
|
348
|
+
unsigned int pos = L_Input_Get_Key_Position(rb_mInputKeyID, hash_key);
|
349
|
+
if(!L_Input_Press[pos])
|
350
|
+
{
|
351
|
+
L_Input_Press[pos] = true;
|
352
|
+
L_TRIGGER_RESET_Input(pos);
|
353
|
+
}
|
354
|
+
}
|
355
|
+
return Qnil;
|
356
|
+
}
|
357
|
+
|
358
|
+
VALUE rb_Input_KeyStateUp_Block(VALUE hash_key, VALUE id_key, int argc, VALUE* argv)
|
359
|
+
{
|
360
|
+
VALUE array = rb_hash_aref(rb_mInputKey, hash_key);
|
361
|
+
if(rb_ary_includes(array, id_key) == Qtrue)
|
362
|
+
{
|
363
|
+
unsigned int pos = L_Input_Get_Key_Position(rb_mInputKeyID, hash_key);
|
364
|
+
if(L_Input_Press[pos])
|
365
|
+
{
|
366
|
+
L_Input_Press[pos] = false;
|
367
|
+
L_TRIGGER_RESET_Input(pos);
|
368
|
+
}
|
369
|
+
}
|
370
|
+
return Qnil;
|
371
|
+
}
|
372
|
+
|
373
|
+
/* Update the key state when an event has been triggered */
|
374
|
+
void L_Input_Update_Key(sf::Keyboard::Key code, bool state)
|
375
|
+
{
|
376
|
+
rb_block_call(rb_mInputKey, rb_mInputEach, 0, NULL,
|
377
|
+
(rb_block_call_func_t)( state ? rb_Input_KeyStateDown_Block : rb_Input_KeyStateUp_Block),
|
378
|
+
rb_int2inum(code));
|
379
|
+
}
|
380
|
+
|
381
|
+
void L_Input_Mouse_Pos_Update(int x, int y)
|
382
|
+
{
|
383
|
+
if (x < 0)
|
384
|
+
x = -256;
|
385
|
+
L_Mouse_Pos_X = static_cast<double>(x);
|
386
|
+
L_Mouse_Pos_Y = static_cast<double>(y);
|
387
|
+
}
|
388
|
+
|
389
|
+
void L_Input_Mouse_Wheel_Update(long delta)
|
390
|
+
{
|
391
|
+
L_Mouse_Wheel_Delta += delta;
|
392
|
+
}
|
393
|
+
|
394
|
+
void L_Input_Mouse_Button_Update(long button, bool state)
|
395
|
+
{
|
396
|
+
if(button >= 0 && button < L_INPUT_NUM_MOUSE_KEY)
|
397
|
+
{
|
398
|
+
if(L_Mouse_Press[button] != state)
|
399
|
+
{
|
400
|
+
L_Mouse_Press[button] = state;
|
401
|
+
L_TRIGGER_RESET_Mouse(button);
|
402
|
+
}
|
403
|
+
}
|
404
|
+
}
|
405
|
+
|
406
|
+
void L_Input_Update_Joy(unsigned int joy_id, unsigned int key, bool state)
|
407
|
+
{
|
408
|
+
rb_block_call(rb_mInputKey, rb_mInputEach, 0, NULL,
|
409
|
+
(rb_block_call_func_t)( state ? rb_Input_KeyStateDown_Block : rb_Input_KeyStateUp_Block),
|
410
|
+
rb_int2inum(-(32 * joy_id) - key - 1));
|
411
|
+
}
|
412
|
+
|
413
|
+
void L_Input_Update_JoyPos(unsigned int joy_id, long axis, float position)
|
414
|
+
{
|
415
|
+
VALUE joypad = LONG2FIX(joy_id);
|
416
|
+
if(joypad != rb_mInputMainJoy)
|
417
|
+
return;
|
418
|
+
VALUE raxis = LONG2FIX(axis);
|
419
|
+
if(raxis == rb_mInputMainAxisX)
|
420
|
+
{
|
421
|
+
if(position < -25.0f)
|
422
|
+
if(!L_Input_Press[15])
|
423
|
+
{
|
424
|
+
L_Input_Press[15] = true;
|
425
|
+
L_TRIGGER_RESET_Input(15);
|
426
|
+
}
|
427
|
+
else if(position > 25.0f)
|
428
|
+
if(!L_Input_Press[16])
|
429
|
+
{
|
430
|
+
L_Input_Press[16] = true;
|
431
|
+
L_TRIGGER_RESET_Input(16);
|
432
|
+
}
|
433
|
+
else
|
434
|
+
{
|
435
|
+
if(L_Input_Press[16])
|
436
|
+
{
|
437
|
+
L_Input_Press[16] = false;
|
438
|
+
L_TRIGGER_RESET_Input(16);
|
439
|
+
}
|
440
|
+
if(L_Input_Press[15])
|
441
|
+
{
|
442
|
+
L_Input_Press[15] = false;
|
443
|
+
L_TRIGGER_RESET_Input(15);
|
444
|
+
}
|
445
|
+
}
|
446
|
+
}
|
447
|
+
else if(raxis == rb_mInputMainAxisY)
|
448
|
+
{
|
449
|
+
if(position < -25.0f)
|
450
|
+
if(!L_Input_Press[13])
|
451
|
+
{
|
452
|
+
L_Input_Press[13] = true;
|
453
|
+
L_TRIGGER_RESET_Input(13);
|
454
|
+
}
|
455
|
+
else if(position > 25.0f)
|
456
|
+
if(!L_Input_Press[14])
|
457
|
+
{
|
458
|
+
L_Input_Press[14] = true;
|
459
|
+
L_TRIGGER_RESET_Input(14);
|
460
|
+
}
|
461
|
+
else
|
462
|
+
{
|
463
|
+
if(L_Input_Press[14])
|
464
|
+
{
|
465
|
+
L_Input_Press[14] = false;
|
466
|
+
L_TRIGGER_RESET_Input(14);
|
467
|
+
}
|
468
|
+
if(L_Input_Press[13])
|
469
|
+
{
|
470
|
+
L_Input_Press[13] = false;
|
471
|
+
L_TRIGGER_RESET_Input(13);
|
472
|
+
}
|
473
|
+
}
|
474
|
+
}
|
475
|
+
}
|
476
|
+
|
477
|
+
void L_Input_Setusec_threshold(long usec)
|
478
|
+
{
|
479
|
+
if(usec > 1)
|
480
|
+
L_Input_threshold = usec - 100;
|
481
|
+
else
|
482
|
+
L_Input_threshold = 1;
|
483
|
+
}
|
484
|
+
|
485
|
+
|
486
|
+
VALUE rb_Input_Press(VALUE self, VALUE key_sym)
|
487
|
+
{
|
488
|
+
unsigned int pos = L_Input_Get_Key_Position(rb_mInputKeyID, key_sym);
|
489
|
+
return L_Input_Press[pos] ? Qtrue : Qfalse;
|
490
|
+
}
|
491
|
+
|
492
|
+
VALUE rb_Input_Trigger(VALUE self, VALUE key_sym)
|
493
|
+
{
|
494
|
+
unsigned int pos = L_Input_Get_Key_Position(rb_mInputKeyID, key_sym);
|
495
|
+
bool pressed = L_Input_Press[pos];
|
496
|
+
if(!pressed)
|
497
|
+
return Qfalse;
|
498
|
+
if(L_Trigger_Input(pos))
|
499
|
+
return Qtrue;
|
500
|
+
return Qfalse;
|
501
|
+
}
|
502
|
+
|
503
|
+
VALUE rb_Input_Repeat(VALUE self, VALUE key_sym)
|
504
|
+
{
|
505
|
+
unsigned int pos = L_Input_Get_Key_Position(rb_mInputKeyID, key_sym);
|
506
|
+
bool pressed = L_Input_Press[pos];
|
507
|
+
if(!pressed)
|
508
|
+
return Qfalse;
|
509
|
+
/* Trigger */
|
510
|
+
if(L_Trigger_Input(pos))
|
511
|
+
return Qtrue;
|
512
|
+
/* Repeat */
|
513
|
+
L_Repeat_Input(pos)
|
514
|
+
return Qfalse;
|
515
|
+
}
|
516
|
+
|
517
|
+
VALUE rb_Input_Released(VALUE self, VALUE key_sym)
|
518
|
+
{
|
519
|
+
unsigned int pos = L_Input_Get_Key_Position(rb_mInputKeyID, key_sym);
|
520
|
+
bool pressed = L_Input_Press[pos];
|
521
|
+
if(pressed)
|
522
|
+
return Qfalse;
|
523
|
+
if(L_Trigger_Input(pos))
|
524
|
+
return Qtrue;
|
525
|
+
return Qfalse;
|
526
|
+
}
|
527
|
+
|
528
|
+
|
529
|
+
VALUE rb_Input_dir4(VALUE self)
|
530
|
+
{
|
531
|
+
if(L_Input_Press[13])
|
532
|
+
return LONG2FIX(8);
|
533
|
+
if(L_Input_Press[14])
|
534
|
+
return LONG2FIX(2);
|
535
|
+
if(L_Input_Press[15])
|
536
|
+
return LONG2FIX(4);
|
537
|
+
if(L_Input_Press[16])
|
538
|
+
return LONG2FIX(6);
|
539
|
+
return LONG2FIX(0);
|
540
|
+
}
|
541
|
+
|
542
|
+
VALUE rb_Input_dir8(VALUE self)
|
543
|
+
{
|
544
|
+
// Up Left / Up Right / Up
|
545
|
+
if(L_Input_Press[13])
|
546
|
+
{
|
547
|
+
if(L_Input_Press[15])
|
548
|
+
return LONG2FIX(7);
|
549
|
+
else if(L_Input_Press[16])
|
550
|
+
return LONG2FIX(9);
|
551
|
+
return LONG2FIX(8);
|
552
|
+
}
|
553
|
+
// Down Left / Down Right / Down
|
554
|
+
if(L_Input_Press[14])
|
555
|
+
{
|
556
|
+
if(L_Input_Press[15])
|
557
|
+
return LONG2FIX(1);
|
558
|
+
else if(L_Input_Press[16])
|
559
|
+
return LONG2FIX(3);
|
560
|
+
return LONG2FIX(2);
|
561
|
+
}
|
562
|
+
if(L_Input_Press[15])
|
563
|
+
return LONG2FIX(4);
|
564
|
+
if(L_Input_Press[16])
|
565
|
+
return LONG2FIX(6);
|
566
|
+
return LONG2FIX(0);
|
567
|
+
}
|
568
|
+
|
569
|
+
VALUE rb_Input_setMainJoypad(VALUE self, VALUE id)
|
570
|
+
{
|
571
|
+
rb_check_type(id, T_FIXNUM);
|
572
|
+
rb_mInputMainJoy = id;
|
573
|
+
return id;
|
574
|
+
}
|
575
|
+
|
576
|
+
VALUE rb_Input_setMainXAxis(VALUE self, VALUE axis)
|
577
|
+
{
|
578
|
+
rb_check_type(axis, T_FIXNUM);
|
579
|
+
rb_mInputMainAxisX = axis;
|
580
|
+
return axis;
|
581
|
+
}
|
582
|
+
|
583
|
+
VALUE rb_Input_setMainYAxis(VALUE self, VALUE axis)
|
584
|
+
{
|
585
|
+
rb_check_type(axis, T_FIXNUM);
|
586
|
+
rb_mInputMainAxisY = axis;
|
587
|
+
return axis;
|
588
|
+
}
|
589
|
+
|
590
|
+
VALUE rb_Input_getMainJoypad(VALUE self)
|
591
|
+
{
|
592
|
+
return rb_mInputMainJoy;
|
593
|
+
}
|
594
|
+
|
595
|
+
VALUE rb_Input_getMainXAxis(VALUE self)
|
596
|
+
{
|
597
|
+
return rb_mInputMainAxisX;
|
598
|
+
}
|
599
|
+
|
600
|
+
VALUE rb_Input_getMainYAxis(VALUE self)
|
601
|
+
{
|
602
|
+
return rb_mInputMainAxisY;
|
603
|
+
}
|
604
|
+
|
605
|
+
VALUE rb_Input_getText(VALUE self)
|
606
|
+
{
|
607
|
+
if (L_EnteredText.size() > 0)
|
608
|
+
return rb_utf8_str_new_cstr(L_EnteredText.c_str());
|
609
|
+
return Qnil;
|
610
|
+
}
|
611
|
+
|
612
|
+
VALUE rb_Mouse_Press(VALUE self, VALUE key_sym)
|
613
|
+
{
|
614
|
+
unsigned int pos = L_Input_Get_Key_Position(rb_mMouseKeyID, key_sym);
|
615
|
+
return L_Mouse_Press[pos] ? Qtrue : Qfalse;
|
616
|
+
}
|
617
|
+
|
618
|
+
VALUE rb_Mouse_Trigger(VALUE self, VALUE key_sym)
|
619
|
+
{
|
620
|
+
unsigned int pos = L_Input_Get_Key_Position(rb_mMouseKeyID, key_sym);
|
621
|
+
bool pressed = L_Mouse_Press[pos];
|
622
|
+
if(!pressed)
|
623
|
+
return Qfalse;
|
624
|
+
if(L_Trigger_Mouse(pos))
|
625
|
+
return Qtrue;
|
626
|
+
return Qfalse;
|
627
|
+
}
|
628
|
+
|
629
|
+
VALUE rb_Mouse_Released(VALUE self, VALUE key_sym)
|
630
|
+
{
|
631
|
+
unsigned int pos = L_Input_Get_Key_Position(rb_mMouseKeyID, key_sym);
|
632
|
+
bool pressed = L_Mouse_Press[pos];
|
633
|
+
if(pressed)
|
634
|
+
return Qfalse;
|
635
|
+
if(L_Trigger_Mouse(pos))
|
636
|
+
return Qtrue;
|
637
|
+
return Qfalse;
|
638
|
+
}
|
639
|
+
|
640
|
+
VALUE rb_Mouse_x(VALUE self)
|
641
|
+
{
|
642
|
+
return LONG2NUM(static_cast<long>(L_Mouse_Pos_X / Graphics_Scale));
|
643
|
+
}
|
644
|
+
|
645
|
+
VALUE rb_Mouse_y(VALUE self)
|
646
|
+
{
|
647
|
+
return LONG2NUM(static_cast<long>(L_Mouse_Pos_Y / Graphics_Scale));
|
648
|
+
}
|
649
|
+
|
650
|
+
VALUE rb_Mouse_Wheel(VALUE self)
|
651
|
+
{
|
652
|
+
return LONG2NUM(L_Mouse_Wheel_Delta);
|
653
|
+
}
|
654
|
+
|
655
|
+
VALUE rb_Mouse_Wheel_set(VALUE self, VALUE val)
|
656
|
+
{
|
657
|
+
L_Mouse_Wheel_Delta = NUM2LONG(val);
|
658
|
+
return val;
|
659
|
+
}
|
660
|
+
|
661
|
+
VALUE rb_KeyBoard_Press(VALUE self, VALUE val)
|
662
|
+
{
|
663
|
+
return sf::Keyboard::isKeyPressed(static_cast<sf::Keyboard::Key>(rb_num2long(val))) ? Qtrue : Qfalse;
|
664
|
+
}
|