Skip to content

Commit dab1335

Browse files
committed
cherry pick changes from bomino dev
1 parent f19562f commit dab1335

File tree

40 files changed

+301
-168
lines changed

40 files changed

+301
-168
lines changed

current-scripts/Demos/useful-scripts/objects/obj_column_menu/Step_1.gml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ if (!enabled) exit;
33
control_state.poll_input();
44

55
if (active_key_config != noone && discovery_mode == MENU_DISCOVERY_MODE.DISCOVERING) {
6-
self.handle_key_config_discovery();
6+
var _item = items[| pos];
7+
self.handle_key_config_discovery(_item);
78
exit;
89
}
910

@@ -82,7 +83,7 @@ if (control_state.pressed_state[MENU_CONTROLS.CANCEL]) {
8283
var _item = items[| pos];
8384

8485
if (ds_list_find_index(_item.types, "keyconfig") != -1)
85-
self.handle_key_config_cancel();
86+
self.handle_key_config_cancel(_item);
8687
}
8788

8889
if (control_state.pressed_state[MENU_CONTROLS.DELETE_BINDING]) {

current-scripts/Demos/useful-scripts/objects/obj_control_manager/Other_5.gml

Lines changed: 0 additions & 3 deletions
This file was deleted.

current-scripts/Demos/useful-scripts/objects/obj_grid_menu/Step_1.gml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ if (!enabled) exit;
33
control_state.poll_input();
44

55
if (active_key_config != noone && discovery_mode == MENU_DISCOVERY_MODE.DISCOVERING) {
6-
self.handle_key_config_discovery();
6+
var _item = items[| pos];
7+
self.handle_key_config_discovery(_item);
78
exit;
89
}
910

@@ -121,7 +122,7 @@ if (control_state.pressed_state[MENU_CONTROLS.CANCEL]) {
121122

122123
if (ds_list_find_index(_item.types, "keyconfig") != -1
123124
&& active_key_config == _item)
124-
self.handle_key_config_cancel();
125+
self.handle_key_config_cancel(_item);
125126
}
126127

127128
if (control_state.pressed_state[MENU_CONTROLS.DELETE_BINDING]) {

current-scripts/Demos/useful-scripts/objects/obj_menu_base/obj_menu_base.yy

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

current-scripts/Demos/useful-scripts/objects/obj_nested_menu/Step_1.gml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ if (!enabled) exit;
33
control_state.poll_input();
44

55
if (active_key_config != noone && discovery_mode == MENU_DISCOVERY_MODE.DISCOVERING) {
6-
self.handle_key_config_discovery();
6+
var _item = items[| pos];
7+
self.handle_key_config_discovery(_item);
78
exit;
89
}
910

@@ -100,7 +101,7 @@ if (control_state.pressed_state[MENU_CONTROLS.CANCEL]) {
100101

101102
if (ds_list_find_index(_item.types, "keyconfig") != -1
102103
&& active_key_config == _item)
103-
self.handle_key_config_cancel();
104+
self.handle_key_config_cancel(_item);
104105
}
105106

106107
if (control_state.pressed_state[MENU_CONTROLS.DELETE_BINDING]) {

current-scripts/Demos/useful-scripts/scripts/input_constants/input_constants.gml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ global.keyboard_icon_map = [
2626
-1,
2727
-1,
2828
-1,
29-
19,
29+
18,
3030
75,
3131
-1,
3232
-1,

current-scripts/Demos/useful-scripts/scripts/menu_base_functions/menu_base_functions.gml

Lines changed: 48 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,18 @@ function menu_base_init(_config) {
2222
keyboard_icons_index = 0;
2323
gamepad_icons_index = 0;
2424
control_icons_scale = _config.control_icons_scale;
25+
keyboard_icons_width = array_map(keyboard_icons, function(_sprite) {
26+
return sprite_get_width(_sprite);
27+
});
28+
gamepad_icons_width = array_map(gamepad_icons, function(_sprite) {
29+
return sprite_get_width(_sprite);
30+
});
31+
keyboard_icons_half_height = array_map(keyboard_icons, function(_sprite) {
32+
return sprite_get_height(_sprite) / 2;
33+
});
34+
gamepad_icons_half_height = array_map(gamepad_icons, function(_sprite) {
35+
return sprite_get_height(_sprite) / 2;
36+
});
2537
}
2638

2739
function menu_base_start_scroll_up() {
@@ -37,6 +49,7 @@ function menu_base_start_scroll_down() {
3749
/// @func handle_selectable_confirm(item)
3850
/// @param {MenuSelectable} item
3951
function handle_selectable_confirm(_item) {
52+
if (!_item.enabled) return;
4053
if (script_exists(_item.on_confirm_func)) {
4154
script_execute(_item.on_confirm_func, _item.on_confirm_args);
4255
}
@@ -49,6 +62,7 @@ function handle_selectable_confirm(_item) {
4962
/// @func handle_spinner_confirm(item)
5063
/// @param {MenuSpinner} item
5164
function handle_spinner_confirm(_item) {
65+
if (!_item.enabled) return;
5266
if (script_exists(_item.on_confirm_func)) {
5367
script_execute(_item.on_confirm_func, _item.cur_index, _item.values[_item.cur_index], _item.on_confirm_args);
5468
}
@@ -62,6 +76,7 @@ function handle_spinner_confirm(_item) {
6276
/// @param {MenuSpinner} item
6377
/// @param {number} delta -1 or 1
6478
function handle_spinner_change(_item, _delta) {
79+
if (!_item.enabled) return;
6580
var _num_values = array_length(_item.values);
6681
_item.cur_index = wrap(_item.cur_index+_delta, 0, _num_values);
6782

@@ -84,6 +99,7 @@ function handle_spinner_change(_item, _delta) {
8499
/// @param {MenuKeyConfig} item
85100
/// @param {number} delta
86101
function handle_key_config_select(_item, _delta) {
102+
if (!_item.enabled) return;
87103
var _num_values = KEYBOARD_MAX_BINDINGS_PER_CONTROL + GAMEPAD_MAX_BINDINGS_PER_CONTROL;
88104
var _last_pressed = control_state.control_any_pressed();
89105
var _binding_info;
@@ -102,6 +118,7 @@ function handle_key_config_select(_item, _delta) {
102118
/// @func handle_key_config_confirm(item)
103119
/// @param {MenuKeyConfig} item
104120
function handle_key_config_confirm(_item) {
121+
if (!_item.enabled) return;
105122
var _last_pressed = control_state.control_any_pressed();
106123

107124
if (discovery_mode == MENU_DISCOVERY_MODE.NONE) {
@@ -127,7 +144,8 @@ function handle_key_config_confirm(_item) {
127144
}
128145

129146
/// @func handle_key_config_cancel()
130-
function handle_key_config_cancel() {
147+
function handle_key_config_cancel(_item) {
148+
if (!_item.enabled) return;
131149
if (discovery_mode == MENU_DISCOVERY_MODE.SELECTING) {
132150
discovery_mode = MENU_DISCOVERY_MODE.NONE;
133151
self.active_key_config = noone;
@@ -136,6 +154,7 @@ function handle_key_config_cancel() {
136154

137155
/// @func handle_key_config_delete()
138156
function handle_key_config_delete(_item) {
157+
if (!_item.enabled) return;
139158
var _binding_info = _item.get_binding_info();
140159
if (_binding_info.binding_locked) return;
141160

@@ -153,12 +172,16 @@ function handle_key_config_delete(_item) {
153172

154173
_item[$ _binding_key][_control_index] = -1;
155174
player_controller.remove_binding(_control_type, _item.control, _control_index);
156-
157175
discovery_mode = MENU_DISCOVERY_MODE.NONE;
176+
if (active_key_config) {
177+
active_key_config.discovery_binding_info = false;
178+
}
179+
self.active_key_config = noone;
158180
}
159181

160182
/// @func handle_key_config_discovery()
161-
function handle_key_config_discovery() {
183+
function handle_key_config_discovery(_item) {
184+
if (!_item.enabled) return;
162185
if (control_state.pressed_state[MENU_CONTROLS.CANCEL]) {
163186
discovery_mode = MENU_DISCOVERY_MODE.SELECTING;
164187
active_key_config.discovery_binding_info = false;
@@ -198,6 +221,8 @@ function handle_key_config_discovery() {
198221

199222
function menu_base_draw_item(_item, _x, _y) {
200223
var _type = _item.types[| ds_list_size(_item.types)-1];
224+
if (_item.enabled) draw_set_colour(c_white);
225+
else draw_set_colour(c_gray);
201226

202227
switch (_type) {
203228
case "item":
@@ -224,14 +249,21 @@ function menu_base_draw_item(_item, _x, _y) {
224249
for (var i=0; i<KEYBOARD_MAX_BINDINGS_PER_CONTROL; i++) {
225250
if (use_control_icons) {
226251
var _item_icon_index = _item.get_icon_index(CONTROL_TYPE.KEYBOARD_AND_MOUSE, i);
227-
var _blend = _item.locked_kbm_bindings[i] ? c_grey : c_white;
228-
draw_sprite_ext(keyboard_icons[keyboard_icons_index], _item_icon_index, _cur_x, _y + control_icons_y_offset * control_icons_scale, control_icons_scale, control_icons_scale, 0, _blend, menu_alpha.v);
252+
draw_sprite_ext(keyboard_icons[keyboard_icons_index], _item_icon_index, _cur_x, _y + control_icons_y_offset * control_icons_scale, control_icons_scale, control_icons_scale, 0, c_white, menu_alpha.v);
253+
if (_item.locked_kbm_bindings[i]) {
254+
draw_sprite_ext(lock_sprite, 0,
255+
_cur_x + keyboard_icons_width[keyboard_icons_index] * control_icons_scale + 24,
256+
_y + (control_icons_y_offset + keyboard_icons_half_height[keyboard_icons_index]) * control_icons_scale,
257+
control_icons_scale, control_icons_scale, 0, c_white, menu_alpha.v
258+
);
259+
}
229260
} else {
230261
var _item_value = _item.get_text_value(CONTROL_TYPE.KEYBOARD_AND_MOUSE, i);
231262
if (_item.locked_kbm_bindings[i]) {
232263
draw_set_colour(c_gray);
233264
} else {
234-
draw_set_colour(c_white);
265+
if (_item.enabled) draw_set_colour(c_white);
266+
else draw_set_colour(c_gray);
235267
}
236268
draw_text(_cur_x, _y, _item_value);
237269
}
@@ -252,14 +284,21 @@ function menu_base_draw_item(_item, _x, _y) {
252284
for (var i=0; i<GAMEPAD_MAX_BINDINGS_PER_CONTROL; i++) {
253285
if (use_control_icons) {
254286
var _item_icon_index = _item.get_icon_index(CONTROL_TYPE.GAMEPAD, i);
255-
var _blend = _item.locked_gamepad_bindings[i] ? c_grey : c_white;
256-
draw_sprite_ext(gamepad_icons[gamepad_icons_index], _item_icon_index, _cur_x, _y + control_icons_y_offset * control_icons_scale, control_icons_scale, control_icons_scale, 0, _blend, menu_alpha.v);
287+
draw_sprite_ext(gamepad_icons[gamepad_icons_index], _item_icon_index, _cur_x, _y + control_icons_y_offset * control_icons_scale, control_icons_scale, control_icons_scale, 0, c_white, menu_alpha.v);
288+
if (_item.locked_gamepad_bindings[i]) {
289+
draw_sprite_ext(lock_sprite, 0,
290+
_cur_x + gamepad_icons_width[gamepad_icons_index] * control_icons_scale + 24,
291+
_y + (control_icons_y_offset + gamepad_icons_half_height[gamepad_icons_index]) * control_icons_scale,
292+
control_icons_scale, control_icons_scale, 0, c_white, menu_alpha.v
293+
);
294+
}
257295
} else {
258296
var _item_value = _item.get_text_value(CONTROL_TYPE.GAMEPAD, i);
259297
if (_item.locked_gamepad_bindings[i]) {
260298
draw_set_colour(c_gray);
261299
} else {
262-
draw_set_colour(c_white);
300+
if (_item.enabled) draw_set_colour(c_white);
301+
else draw_set_colour(c_gray);
263302
}
264303

265304
draw_text(_cur_x, _y, _item_value);

current-scripts/Demos/useful-scripts/scripts/menu_base_structs/menu_base_structs.gml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ function MenuItem(_config) constructor {
5656
ds_list_add(types, "item");
5757
label = _config.label;
5858
parent_menu = noone;
59+
enabled = true;
60+
61+
function set_enabled(_enabled) {
62+
enabled = _enabled;
63+
}
5964

6065
function destroy() {
6166
ds_list_destroy(types);
1.78 KB
Loading
521 Bytes
Loading

0 commit comments

Comments
 (0)