Randomizer improvement notes

This commit is contained in:
York Jasper Niebuhr 2026-04-14 22:40:23 +02:00
parent 5ad79087a6
commit 8e6b249838

View File

@ -238,6 +238,10 @@ static int __init pick_shuffle_option(spslr_u32 target, spslr_u32 origin_final_i
const struct spslr_target* t = &spslr_targets[target]; const struct spslr_target* t = &spslr_targets[target];
spslr_u32 seen = 0; spslr_u32 seen = 0;
/*
Note: Instead of looping over entire field array for each option, loops can be merged into one.
*/
for (spslr_u32 offset = 0; offset < t->size; offset += alignment) { for (spslr_u32 offset = 0; offset < t->size; offset += alignment) {
if (!option_is_valid(target, origin_final_idx, origin, offset)) if (!option_is_valid(target, origin_final_idx, origin, offset))
continue; continue;
@ -331,6 +335,9 @@ static void __init do_swap(spslr_u32 target, spslr_u32 origin_idx,
} }
} }
/*
Note: final version should not shuffle random fields but try to shuffle each original field idx once
*/
static void __init shuffle_one_target(spslr_u32 target) { static void __init shuffle_one_target(spslr_u32 target) {
const struct spslr_target* t = &spslr_targets[target]; const struct spslr_target* t = &spslr_targets[target];
if (t->fieldcnt == 0) if (t->fieldcnt == 0)