Skip to content
Snippets Groups Projects
Commit 51b56cf5 authored by netpro2k's avatar netpro2k
Browse files

Cleanup from PR notes

parent 50e6fdd2
No related branches found
No related tags found
No related merge requests found
...@@ -26,29 +26,27 @@ import { updateActionSetsBasedOnSuperhands } from "./resolve-action-sets"; ...@@ -26,29 +26,27 @@ import { updateActionSetsBasedOnSuperhands } from "./resolve-action-sets";
import { GamepadDevice } from "./devices/gamepad"; import { GamepadDevice } from "./devices/gamepad";
import { gamepadBindings } from "./bindings/generic-gamepad"; import { gamepadBindings } from "./bindings/generic-gamepad";
const prioritizedBindings = new Map(); const priorityMap = new Map();
function prioritizeBindings(registeredMappings, activeSets) { function prioritizeBindings(registeredMappings, activeSets) {
const activeBindings = new Set(); const activeBindings = new Set();
prioritizedBindings.clear(); priorityMap.clear();
for (const mapping of registeredMappings) { for (const mapping of registeredMappings) {
for (const setName in mapping) { for (const setName in mapping) {
if (!activeSets.has(setName) || !mapping[setName]) continue; if (!activeSets.has(setName) || !mapping[setName]) continue;
for (const binding of mapping[setName]) { for (const binding of mapping[setName]) {
const { root, priority } = binding; const { root, priority } = binding;
const prevBinding = priorityMap.get(root);
if (!root || !priority) { if (!root || !priority) {
activeBindings.add(binding); activeBindings.add(binding);
} else if (!prioritizedBindings.has(root)) { } else if (!prevBinding) {
activeBindings.add(binding); activeBindings.add(binding);
prioritizedBindings.set(root, binding); priorityMap.set(root, binding);
} else { } else if (priority > prevBinding.priority) {
const prevPriority = prioritizedBindings.get(root).priority; activeBindings.delete(priorityMap.get(root));
if (priority > prevPriority) { activeBindings.add(binding);
activeBindings.delete(prioritizedBindings.get(root)); priorityMap.set(root, binding);
activeBindings.add(binding); } else if (prevBinding.priority === priority) {
prioritizedBindings.set(root, binding); console.error("equal priorities on same root", binding, priorityMap.get(root));
} else if (prevPriority === priority) {
console.error("equal priorities on same root", binding, prioritizedBindings.get(root));
}
} }
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment