Only call eval() once per patch group

This commit is contained in:
redphx 2023-12-05 06:38:35 +07:00
parent 049e65429a
commit ad98eb60e1

View File

@ -4449,6 +4449,7 @@ class Patcher {
for (let groupIndex = 0; groupIndex < Patcher.#PATCH_ORDERS.length; groupIndex++) {
const group = Patcher.#PATCH_ORDERS[groupIndex];
let modified = false;
for (let patchIndex = 0; patchIndex < group.length; patchIndex++) {
const patchName = group[patchIndex];
@ -4466,11 +4467,10 @@ class Patcher {
}
}
modified = true;
funcStr = patchedFuncStr;
console.log(`[Better xCloud] Applied "${patchName}" patch`);
// Apply patched function
item[1][id] = eval(patchedFuncStr);
appliedPatches.push(patchName);
// Remove patch from group
@ -4478,6 +4478,11 @@ class Patcher {
patchIndex--;
}
// Apply patched functions
if (modified) {
item[1][id] = eval(funcStr);
}
// Remove empty group
if (!group.length) {
Patcher.#PATCH_ORDERS.splice(groupIndex, 1);