Matching sub_804151C

This commit is contained in:
NieDzejkob
2017-02-11 08:26:13 +01:00
parent 8252c79767
commit 8e8e4334ce
2 changed files with 13 additions and 265 deletions
-205
View File
@@ -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}
+13 -60
View File
@@ -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