mirror of
https://github.com/pret/pokeruby.git
synced 2026-10-02 15:40:40 -04:00
Matching sub_804151C
This commit is contained in:
-205
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user