Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- RAM_ARM9:0200C3EC ; =============== S U B R O U T I N E =======================================
- RAM_ARM9:0200C3EC
- RAM_ARM9:0200C3EC
- RAM_ARM9:0200C3EC ; void __fastcall setOneDaycarePoke(Daycare *d, int pos, void *pPkmBlk)
- RAM_ARM9:0200C3EC setOneDaycarePoke ; CODE XREF: sub_21BD314+2Ep
- RAM_ARM9:0200C3EC F0 B4 PUSH {R4-R7}
- RAM_ARM9:0200C3EE 06 1C MOVS R6, R0
- RAM_ARM9:0200C3F0 00 29 CMP R1, #0
- RAM_ARM9:0200C3F2 16 DB BLT loc_200C422 ; exit if -1
- RAM_ARM9:0200C3F4 02 29 CMP R1, #2
- RAM_ARM9:0200C3F6 14 DA BGE loc_200C422 ; exit if > number of daycare slots(0 and 1)
- RAM_ARM9:0200C3F8 E4 20 MOVS R0, #0xE4 ; 'S'
- RAM_ARM9:0200C3FA 0D 1C MOVS R5, R1 ; 0xe4 * slot#
- RAM_ARM9:0200C3FC 45 43 MULS R5, R0
- RAM_ARM9:0200C3FE 70 59 LDR R0, [R6,R5] ; get daycare poke block status (full/empty)
- RAM_ARM9:0200C400 74 19 ADDS R4, R6, R5 ; status pos
- RAM_ARM9:0200C402 01 28 CMP R0, #1
- RAM_ARM9:0200C404 0D D0 BEQ loc_200C422 ; exit if full
- RAM_ARM9:0200C406 23 1D ADDS R3, R4, #4
- RAM_ARM9:0200C408 1B 27 MOVS R7, #0x1B
- RAM_ARM9:0200C40A
- RAM_ARM9:0200C40A loc_200C40A ; CODE XREF: setOneDaycarePoke+24j
- RAM_ARM9:0200C40A 03 CA LDMIA R2!, {R0,R1} ; this is a full block copy in of 1 daycare poke
- RAM_ARM9:0200C40C 03 C3 STMIA R3!, {R0,R1}
- RAM_ARM9:0200C40E 7F 1E SUBS R7, R7, #1 ; a decrementing loop. when did someone at gamefreak learn to program for ARM
- RAM_ARM9:0200C410 FB D1 BNE loc_200C40A
- RAM_ARM9:0200C412 10 68 LDR R0, [R2] ; load last word
- RAM_ARM9:0200C414 00 21 MOVS R1, #0
- RAM_ARM9:0200C416 18 60 STR R0, [R3] ; copy last word
- RAM_ARM9:0200C418 01 20 MOVS R0, #1
- RAM_ARM9:0200C41A 20 60 STR R0, [R4] ; set block full
- RAM_ARM9:0200C41C 70 19 ADDS R0, R6, R5 ; bool pos
- RAM_ARM9:0200C41E E0 30 ADDS R0, #0xE0 ; 'a' ; jump past pkm
- RAM_ARM9:0200C420 01 60 STR R1, [R0] ; zero the word after the block(usually seems to be 9x afterward)
- RAM_ARM9:0200C422
- RAM_ARM9:0200C422 loc_200C422 ; CODE XREF: setOneDaycarePoke+6j
- RAM_ARM9:0200C422 ; setOneDaycarePoke+Aj ...
- RAM_ARM9:0200C422 F0 BC POP {R4-R7}
- RAM_ARM9:0200C424 70 47 BX LR
- RAM_ARM9:0200C424 ; End of function setOneDaycarePoke
- RAM_ARM9:0200C424
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement