From 56b02ff758c543ebd8780db4914976facee934e8 Mon Sep 17 00:00:00 2001 From: acamilo Date: Wed, 23 Sep 2026 13:28:22 +0000 Subject: [PATCH] rewards: a frame on which no item bit moved reads nothing more --- services/flysim/crates/flybrain-gb/src/pokemon_red/engage.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/flysim/crates/flybrain-gb/src/pokemon_red/engage.rs b/services/flysim/crates/flybrain-gb/src/pokemon_red/engage.rs index 80c5ccf..cb42906 100644 --- a/services/flysim/crates/flybrain-gb/src/pokemon_red/engage.rs +++ b/services/flysim/crates/flybrain-gb/src/pokemon_red/engage.rs @@ -386,6 +386,10 @@ pub fn hidden_key(index: u8) -> String { /// restored or seeded state from paying for anything it already holds. pub fn pickups(memory: &mut dyn MemoryReader, before: &ItemFlags, now: &ItemFlags) -> Vec { let mut out = Vec::new(); + if now == before { + // The overwhelmingly common frame: nothing was taken, and nothing more need be read. + return out; + } let sprites = memory.read8(ram::wNumSprites).min(poke::SPRITE_SLOTS - 1); for entry in 0..TOGGLE_LIST_ENTRIES { let slot = memory.read8(ram::wToggleableObjectList + entry * 2);