diff options
author | NieDzejkob <niedzejkob@gmail.com> | 2017-01-07 23:08:51 +0100 |
---|---|---|
committer | NieDzejkob <niedzejkob@gmail.com> | 2017-05-21 19:31:18 +0200 |
commit | 4a9cb7aa4de9571f79c46e0df1733b26849c0904 (patch) | |
tree | dd41c93df91a41528554eaa1f5e84fe52ed5e49e /src | |
parent | 135bbb721e0b7e34ad19d818e097add64693ab15 (diff) |
Decompile daycare_empty_slot and unify the function prototype of daycare_count_pokemon. Presumably identify the daycare data in the save structure
Diffstat (limited to 'src')
-rw-r--r-- | src/daycare.c | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/daycare.c b/src/daycare.c index 23f0305d8..864d86aa8 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -1,6 +1,7 @@ #include "global.h" #include "pokemon.h" #include "string_util.h" +#include "asm.h" u8 *pokemon_get_nick(struct Pokemon *mon, u8 *dest) { @@ -31,3 +32,77 @@ u8 daycare_count_pokemon(struct BoxPokemon *daycare_data) return count; } + +__attribute__((naked)) +void sub_8041324(struct BoxPokemon * box_pokemon, void * void_pointer){ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + mov r9, r0\n\ + mov r10, r1\n\ + movs r7, 0\n\ + movs r5, 0\n\ + mov r6, r10\n\ + adds r6, 0x74\n\ + movs r0, 0x1\n\ + mov r8, r0\n\ +_0804133E:\n\ + lsls r0, r5, 2\n\ + adds r0, r5\n\ + lsls r0, 4\n\ + mov r1, r9\n\ + adds r4, r1, r0\n\ + adds r0, r4, 0\n\ + movs r1, 0xB\n\ + bl GetBoxMonData\n\ + cmp r0, 0\n\ + beq _0804136E\n\ + adds r0, r7, 0x1\n\ + lsls r0, 24\n\ + lsrs r7, r0, 24\n\ + adds r0, r4, 0\n\ + movs r1, 0xC\n\ + bl GetBoxMonData\n\ + adds r1, r0, 0\n\ + cmp r1, 0\n\ + bne _0804136E\n\ + lsls r0, r5, 1\n\ + adds r0, r6, r0\n\ + b _08041374\n\ +_0804136E:\n\ + lsls r0, r5, 1\n\ + adds r0, r6, r0\n\ + mov r1, r8\n\ +_08041374:\n\ + strh r1, [r0]\n\ + adds r0, r5, 0x1\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + cmp r5, 0x1\n\ + bls _0804133E\n\ + mov r0, r10\n\ + str r7, [r0, 0x70]\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided\n"); +} + +s8 daycare_empty_slot(struct BoxPokemon * daycare_data){ + u8 i; + + for(i = 0;i <= 1;i++){ + if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0){ + return i; + } + } + + return -1; +} |