Fix cheat "x" button

This commit is contained in:
Ethan O'Brien 2023-07-21 10:05:55 -05:00
parent 49e18094c0
commit c7547eafb4

View file

@ -3693,6 +3693,11 @@ class EmulatorJS {
} }
updateCheatUI() { updateCheatUI() {
this.elements.cheatRows.innerHTML = ""; this.elements.cheatRows.innerHTML = "";
const getIndex = (desc, code) => {
for (let i=0; i<this.cheats.length; i++) {
if (this.cheats[i].desc === desc && this.cheats[i].code === code) return i;
}
}
const addToMenu = (desc, checked, code, i) => { const addToMenu = (desc, checked, code, i) => {
const row = this.createElement("div"); const row = this.createElement("div");
@ -3709,14 +3714,19 @@ class EmulatorJS {
row.appendChild(label); row.appendChild(label);
label.addEventListener("click", (e) => { label.addEventListener("click", (e) => {
input.checked = !input.checked; input.checked = !input.checked;
this.cheats[i].checked = input.checked; this.cheats[getIndex(desc, code)].checked = input.checked;
this.cheatChanged(input.checked, code, i); this.cheatChanged(input.checked, code, getIndex(desc, code));
this.saveSettings(); this.saveSettings();
}) })
const close = this.createElement("a"); const close = this.createElement("a");
close.classList.add("ejs_cheat_row_button"); close.classList.add("ejs_cheat_row_button");
close.innerText = "×"; close.innerText = "×";
row.appendChild(close); row.appendChild(close);
close.addEventListener("click", (e) => {
this.cheatChanged(false, code, getIndex(desc, code));
this.cheats.splice(getIndex(desc, code), 1);
row.remove();
})
this.elements.cheatRows.appendChild(row); this.elements.cheatRows.appendChild(row);
this.cheatChanged(checked, code, i); this.cheatChanged(checked, code, i);