summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNieDzejkob <niedzejkob@gmail.com>2017-02-11 08:26:13 +0100
committerNieDzejkob <niedzejkob@gmail.com>2017-05-21 19:31:18 +0200
commit8e8e4334ce637e98bcc8348be3d73c19a747ec70 (patch)
treeb9479d9093a70e24d3cdda7d98aec7287a0a54ee
parent8252c797673ed04e64afafc59ebbc6a75f4764b9 (diff)
Matching sub_804151C
-rw-r--r--asm/daycare.s205
-rw-r--r--src/daycare.c73
2 files changed, 13 insertions, 265 deletions
diff --git a/asm/daycare.s b/asm/daycare.s
index 7307e8365..cd1b7091f 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -6,211 +6,6 @@
.text
- thumb_func_start sub_80413C8
-sub_80413C8: @ 80413C8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- mov r8, r1
- mov r0, r8
- bl daycare_empty_slot
- lsls r0, 24
- lsrs r4, r0, 24
- mov r9, r4
- adds r0, r7, 0
- bl MonHasMail
- lsls r0, 24
- cmp r0, 0
- beq _0804144A
- lsls r0, r4, 24
- asrs r0, 24
- lsls r4, r0, 3
- subs r4, r0
- lsls r4, 3
- adds r5, r4, 0
- adds r5, 0xA0
- add r5, r8
- adds r6, r5, 0
- adds r6, 0x24
- ldr r1, _08041490 @ =gSaveBlock2
- adds r0, r6, 0
- bl StringCopy
- adds r0, r6, 0
- movs r1, 0xFC
- bl PadNameString
- adds r6, 0x8
- adds r0, r7, 0
- adds r1, r6, 0
- bl pokemon_get_nick
- adds r0, r7, 0
- movs r1, 0x40
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- add r4, r8
- ldr r2, _08041494 @ =gSaveBlock1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r4, 0xA0
- ldr r0, _08041498 @ =0x00002b4c
- adds r1, r0
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- ldm r1!, {r0,r2,r3}
- stm r4!, {r0,r2,r3}
- adds r0, r7, 0
- bl TakeMailFromMon
-_0804144A:
- mov r2, r9
- lsls r4, r2, 24
- asrs r4, 24
- lsls r5, r4, 2
- adds r4, r5, r4
- lsls r4, 4
- add r4, r8
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- bl BoxMonRestorePP
- movs r0, 0x88
- lsls r0, 1
- add r0, r8
- adds r0, r5
- movs r1, 0
- str r1, [r0]
- adds r0, r7, 0
- bl ZeroMonData
- bl party_compaction
- bl CalculatePlayerPartyCount
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08041490: .4byte gSaveBlock2
-_08041494: .4byte gSaveBlock1
-_08041498: .4byte 0x00002b4c
- thumb_func_end sub_80413C8
-
- thumb_func_start daycare_send
-daycare_send: @ 804149C
- push {lr}
- ldr r0, _080414B4 @ =gLastFieldPokeMenuOpened
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080414B8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080414BC @ =gSaveBlock1 + 0x2F9C
- bl sub_80413C8
- pop {r0}
- bx r0
- .align 2, 0
-_080414B4: .4byte gLastFieldPokeMenuOpened
-_080414B8: .4byte gPlayerParty
-_080414BC: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end daycare_send
-
- thumb_func_start sub_80414C0
-sub_80414C0: @ 80414C0
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r5, 0
- adds r4, 0x50
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08041516
- adds r0, r5, 0
- movs r1, 0xB
- bl GetBoxMonData
- adds r6, r0, 0
- cmp r6, 0
- bne _08041516
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x50
- bl memcpy
- adds r0, r4, 0
- bl ZeroBoxMonData
- adds r0, r5, 0
- adds r0, 0xA0
- adds r4, 0x88
- adds r1, r4, 0
- movs r2, 0x38
- bl memcpy
- movs r0, 0x88
- lsls r0, 1
- adds r2, r5, r0
- adds r0, 0x4
- adds r1, r5, r0
- ldr r0, [r1]
- str r0, [r2]
- str r6, [r1]
- adds r0, r4, 0
- bl sub_80417F4
-_08041516:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80414C0
-
- thumb_func_start sub_804151C
-sub_804151C: @ 804151C
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r5, 0
- ldr r7, _08041538 @ =0x0000ffff
-_08041524:
- adds r0, r4, 0
- bl TryIncrementMonLevel
- lsls r0, 24
- cmp r0, 0
- beq _08041560
- movs r6, 0x1
- adds r5, 0x1
- b _0804154C
- .align 2, 0
-_08041538: .4byte 0x0000ffff
-_0804153C:
- movs r6, 0
- cmp r0, r7
- bne _0804154C
- ldr r0, _0804156C @ =word_2024E82
- ldrh r1, [r0]
- adds r0, r4, 0
- bl DeleteFirstMoveAndGiveMoveToMon
-_0804154C:
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0804153C
- cmp r5, 0x63
- ble _08041524
-_08041560:
- adds r0, r4, 0
- bl CalculateMonStats
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804156C: .4byte word_2024E82
- thumb_func_end sub_804151C
-
thumb_func_start sub_8041570
sub_8041570: @ 8041570
push {r4-r7,lr}
diff --git a/src/daycare.c b/src/daycare.c
index 9bc51a025..e1ce7fb77 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -27,9 +27,9 @@ u8 daycare_count_pokemon(struct BoxPokemon *daycare_data)
count = 0;
for(i = 0;i <= 1;i++) {
- if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) {
- count++;
- }
+ if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) != 0) {
+ count++;
+ }
}
return count;
@@ -103,9 +103,9 @@ 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;
- }
+ if(GetBoxMonData(daycare_data + i, MON_DATA_SPECIES) == 0){
+ return i;
+ }
}
return -1;
@@ -131,7 +131,7 @@ void sub_80413C8()
{
// strange stack usage - happens because THUMB ARM only allows R0-R7 to be pushed/popped:
// all registers in reglist must be Lo registers, except that PUSH can include the LR, and POP can include the PC
- // the ldm/stm section probably copies some struct, but I'm not sure how the code would look
+ // the ldm/stm section probably copies some struct, but I'm not sure how the code would look
asm(".syntax unified\n\
push {r4-r7,lr}\n\
mov r7, r9\n\
@@ -253,70 +253,23 @@ extern u16 word_2024E82;
void sub_804151C(struct Pokemon * mon)
{
- u32 i;
+ s32 i;
u8 r6;
u16 temp;
- u16 minus1;
- i = 0;
- minus1 = 0xffff;
- while(i <= 100){
- if(TryIncrementMonLevel(mon) == 0) goto end;
+ for(i = 0; i < 100; i++){
+ if(TryIncrementMonLevel(mon) == FALSE) goto end;
+
r6 = 1;
- i++;
while((temp = sub_803B7C8(mon, r6)) != 0){
r6 = 0;
- if(temp == minus1){
+ if(temp == 0xffff){
DeleteFirstMoveAndGiveMoveToMon(mon, word_2024E82);
}
}
}
+
end:
CalculateMonStats(mon);
}
-
-#ifdef NEVERDEFINED
-sub_804151C: @ 804151C
- push {r4-r7,lr}
- adds r4, r0, 0
- movs r5, 0
- ldr r7, _08041538 @ =0x0000ffff
-_08041524: <-----------------------------------+
- adds r0, r4, 0 |
- bl TryIncrementMonLevel |
- lsls r0, 24 |
- cmp r0, 0 |
- beq _08041560 break ----------------+ |
- movs r6, 0x1 | |
- adds r5, 0x1 | |
- b _0804154C --------+ | |
- .align 2, 0 | | |
-_08041538: .4byte 0x0000ffff | | |
-_0804153C: <-----------------------+---+---+ |
- movs r6, 0 | | | |
- cmp r0, r7 | | | |
- bne _0804154C --------------------------->| | | |
- ldr r0, _0804156C @ =word_2024E82 | | | |
- ldrh r1, [r0] | | | |
- adds r0, r4, 0 | | | |
- bl DeleteFirstMoveAndGiveMoveToMon | | | |
-_0804154C: <-------+ | | |
- adds r0, r4, 0 | | |
- adds r1, r6, 0 | | |
- bl sub_803B7C8 | | |
- lsls r0, 16 | | |
- lsrs r0, 16 | | |
- cmp r0, 0 | | |
- bne _0804153C --------------------------------+---+ |
- cmp r5, 0x63 | |
- ble _08041524 --------------------------------+-------+
-_08041560: <-----------+
- adds r0, r4, 0
- bl CalculateMonStats
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804156C: .4byte word_2024E82
-#endif