fix bindings not updating blocking data after a binding is deleted

This commit is contained in:
Crispy 2025-04-15 22:12:45 +02:00
parent df58b62712
commit 62fcb538a6
2 changed files with 6 additions and 1 deletions

View file

@ -1,6 +1,10 @@
# Marble Machinations Change Log # Marble Machinations Change Log
Game store page: https://crispypin.itch.io/marble-machinations Game store page: https://crispypin.itch.io/marble-machinations
## [unreleased]
### fixed
- after removing a binding that was a superset of another, the remaining one did not stop being blocked by the removed ones additional modifiers until another binding was added or edited
## v0.3.2 - 2025-04-14 ## v0.3.2 - 2025-04-14
### added ### added
- "weird machines" chapter with levels for [deadfish](https://esolangs.org/wiki/Deadfish) and [brainfuck](https://esolangs.org/wiki/Brainfuck) - "weird machines" chapter with levels for [deadfish](https://esolangs.org/wiki/Deadfish) and [brainfuck](https://esolangs.org/wiki/Brainfuck)
@ -10,7 +14,7 @@ Game store page: https://crispypin.itch.io/marble-machinations
### fixed ### fixed
- invalid action ids in the config file key bindings caused everything to revert to default. - invalid action ids in the config file key bindings caused everything to revert to default.
- when start and stop are bound to the same thing (as by default), only start works - when start and stop are bound to the same thing (as by default), only start works
- When two input bindings had the same trigger but one has a strict subset of the others modifiers, both would activate when the one with more modifiers was pressed. For example (Ctrl+S -> Save) would also trigger (S -> Wire Tool). Now, Shift+S will still trigger Wire Tool, unless Shift+S (or eg. Shift+Ctrl+S) is bound to something else. - when two input bindings had the same trigger but one has a strict subset of the others modifiers, both would activate when the one with more modifiers was pressed. For example (Ctrl+S -> Save) would also trigger (S -> Wire Tool). Now, Shift+S will still trigger Wire Tool, unless Shift+S (or eg. Shift+Ctrl+S) is bound to something else.
## v0.3.1 - 2025-04-05 ## v0.3.1 - 2025-04-05
### fixed ### fixed

View file

@ -144,6 +144,7 @@ impl Input {
for (binding_index, binding) in self.bindings[action_index].iter().enumerate() { for (binding_index, binding) in self.bindings[action_index].iter().enumerate() {
if text_button(d, &globals.mouse, buttons_x, y, 80, "remove") { if text_button(d, &globals.mouse, buttons_x, y, 80, "remove") {
self.bindings[action_index].remove(binding_index); self.bindings[action_index].remove(binding_index);
self.update_modifier_blocks();
return; return;
} }
if text_button(d, &globals.mouse, buttons_x + 85, y, 45, "edit") { if text_button(d, &globals.mouse, buttons_x + 85, y, 45, "edit") {