From 1002b399dcd4a863e7eabda11838c30442c4faa7 Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sun, 27 Oct 2024 09:52:47 -0700 Subject: [PATCH] fakematch sub_806A338 thanks to @DizzyEggg --- src/code_8069E0C.c | 78 +++++++--------------------------------------- 1 file changed, 12 insertions(+), 66 deletions(-) diff --git a/src/code_8069E0C.c b/src/code_8069E0C.c index 85cd746f0..9af6217c5 100644 --- a/src/code_8069E0C.c +++ b/src/code_8069E0C.c @@ -296,77 +296,23 @@ void sub_806A2BC(Entity *pokemon, u8 param_2) void nullsub_95(void) {} -// https://decomp.me/scratch/tBuxP (90.38% matching - Seth) -#ifdef NONMATCHING void sub_806A338(void) { - Entity *entity; - EntityInfo *info; - s32 index; - - for(index = 0; index < DUNGEON_MAX_POKEMON; index++) - { - entity = gDungeon->allPokemon[index]; - if (EntityExists(entity) && (entity->info->waitingStruct.waitingStatus == 3)) + Entity *entity; + s32 index; + + for(index = 0; index < DUNGEON_MAX_POKEMON; index++) { - gDungeon->snatchPokemon = entity; - info = gDungeon->snatchPokemon->info; - gDungeon->unk17B3C = info->unk98; - break; + entity = gDungeon->allPokemon[index]; + if (EntityExists(entity) && (GetEntInfo(entity)->waitingStruct.waitingStatus == STATUS_SNATCH)) + { + gDungeon->snatchPokemon = entity; + ASM_MATCH_TRICK(entity); + gDungeon->unk17B3C = GetEntInfo(entity)->unk98; + break; + } } - } } -#else -NAKED -void sub_806A338(void) -{ - asm_unified( - "\tpush {r4-r6,lr}\n" - "\tmovs r5, 0\n" - "\tldr r6, _0806A378\n" -"_0806A33E:\n" - "\tldr r0, [r6]\n" - "\tlsls r1, r5, 2\n" - "\tldr r2, _0806A37C\n" - "\tadds r0, r2\n" - "\tadds r0, r1\n" - "\tldr r4, [r0]\n" - "\tadds r0, r4, 0\n" - "\tbl EntityExists\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbeq _0806A384\n" - "\tldr r0, [r4, 0x70]\n" - "\tadds r0, 0xC8\n" - "\tldrb r0, [r0]\n" - "\tcmp r0, 0x3\n" - "\tbne _0806A384\n" - "\tldr r1, [r6]\n" - "\tldr r2, _0806A380\n" - "\tadds r0, r1, r2\n" - "\tstr r4, [r0]\n" - "\tldr r0, [r4, 0x70]\n" - "\tadds r2, 0xC\n" - "\tadds r1, r2\n" - "\tadds r0, 0x98\n" - "\tldr r0, [r0]\n" - "\tstr r0, [r1]\n" - "\tb _0806A38A\n" - "\t.align 2, 0\n" -"_0806A378: .4byte gDungeon\n" -"_0806A37C: .4byte 0x000135cc\n" -"_0806A380: .4byte 0x00017b30\n" -"_0806A384:\n" - "\tadds r5, 0x1\n" - "\tcmp r5, 0x13\n" - "\tble _0806A33E\n" -"_0806A38A:\n" - "\tpop {r4-r6}\n" - "\tpop {r0}\n" - "\tbx r0" - ); -} -#endif void sub_806A390(Entity *pokemon) {