ref: fd8804472d6f2244ae8c74bcd5017967c8cb6b7e
dir: /gfx/pics/animation.asm/
; Pic animation arrangement. Functiond0000: ; d0000 hlcoord 12, 0 ld a, [IsInBattle] cp $1 jr z, .asm_d0012 ld e, $0 ld d, $0 call Functiond008e ret .asm_d0012 ld e, $1 ld d, $0 call Functiond008e ret ; d001a INCBIN "baserom.gbc",$d001a,$d008e - $d001a Functiond008e: ; d008e call Functiond01c6 ret c call Functiond00a3 .asm_d0095 call Functiond00b4 push af callba Function10402d pop af jr nc, .asm_d0095 ret ; d00a3 Functiond00a3: ; d00a3 push hl ld c, e ld b, $0 ld hl, $4042 add hl, bc add hl, bc ld a, [hli] ld b, [hl] ld c, a pop hl call Functiond01d6 ret ; d00b4 Functiond00b4: ; d00b4 ld a, [rSVBK] push af ld a, $2 ld [rSVBK], a ld a, [$d168] ld c, a ld b, $0 ld hl, $d169 ld a, [hli] ld h, [hl] ld l, a add hl, bc ld a, [hl] ld hl, $40da rst JumpTable ld a, [$d168] ld c, a pop af ld [rSVBK], a ld a, c and $80 ret z scf ret ; d00da Tabled00da: ; d00da dw Functiond0171 dw Functiond0166 dw Functiond00f2 dw Functiond00fe dw Functiond010b dw Functiond011d dw Functiond012f dw Functiond0141 dw Functiond0155 dw Functiond017a dw Functiond0188 dw Functiond0196 ; d00f2 Functiond00f2: ; d00f2 ld a, $12 ld [$d181], a ld a, [$d168] inc a ld [$d168], a Functiond00fe: ; d00fe ld hl, $d181 dec [hl] ret nz ld a, [$d168] inc a ld [$d168], a ret ; d010b Functiond010b: ; d010b ld c, $0 ld b, $0 call Functiond0228 call Functiond0504 ld a, [$d168] inc a ld [$d168], a ret ; d011d Functiond011d: ; d011d ld c, $0 ld b, $4 call Functiond0228 call Functiond0504 ld a, [$d168] inc a ld [$d168], a ret ; d012f Functiond012f: ; d012f ld c, $1 ld b, $0 call Functiond0228 call Functiond0504 ld a, [$d168] inc a ld [$d168], a ret ; d0141 Functiond0141: ; d0141 call Functiond0250 ld a, [$d17e] bit 7, a ret z call Functiond04bd ld a, [$d168] inc a ld [$d168], a ret ; d0155 Functiond0155: ; d0155 call Functiond0250 ld a, [$d17e] bit 7, a ret z ld a, [$d168] inc a ld [$d168], a ret ; d0166 Functiond0166: ; d0166 call Functiond01a9 ld a, [$d168] inc a ld [$d168], a ret ; d0171 Functiond0171: ; d0171 call Functiond01a9 ld hl, $d168 set 7, [hl] ret ; d017a Functiond017a: ; d017a ld a, [$d16b] call Function37e2 ld a, [$d168] inc a ld [$d168], a ret ; d0188 Functiond0188: ; d0188 ld a, [$d16b] call Function37d5 ld a, [$d168] inc a ld [$d168], a ret ; d0196 Functiond0196: ; d0196 ld a, $f ld [CryTracks], a ld a, [$d16b] call Function37c4 ld a, [$d168] inc a ld [$d168], a ret ; d01a9 Functiond01a9: ; d01a9 ld a, [rSVBK] push af ld a, $2 ld [rSVBK], a call Functiond04bd callba Function10402d call Functiond0536 callba Function104047 pop af ld [rSVBK], a ret ; d01c6 Functiond01c6: ; d01c6 ld a, [CurPartySpecies] cp $fd jr z, .asm_d01d4 call IsAPokemon jr c, .asm_d01d4 and a ret .asm_d01d4 scf ret ; d01d6 Functiond01d6: ; d01d6 ld a, [rSVBK] push af ld a, $2 ld [rSVBK], a push bc push de push hl ld hl, $d168 ld bc, $0029 xor a call ByteFill pop hl pop de pop bc ld a, c ld [$d169], a ld a, b ld [$d16a], a ld a, l ld [$d16f], a ld a, h ld [$d170], a ld a, d ld [$d16e], a ld a, $1 ld hl, CurPartySpecies call GetFarWRAMByte ld [$d16b], a ld a, $1 ld hl, UnownLetter call GetFarWRAMByte ld [$d16c], a call Functiond065c ld [$d16d], a call Functiond05b4 ld a, c ld [$d171], a pop af ld [rSVBK], a ret ; d0228 Functiond0228: ; d0228 ld a, [rSVBK] push af ld a, $2 ld [rSVBK], a push bc ld hl, $d172 ld bc, $001f xor a call ByteFill pop bc ld a, b ld [$d173], a ld a, c ld [$d172], a call Functiond055c call Functiond05ce call Functiond061b pop af ld [rSVBK], a ret ; d0250 Functiond0250: ; d0250 xor a ld [hBGMapMode], a Functiond0253: ; d0253 ld a, [$d17e] and $7f ld hl, Tabled025d rst JumpTable ret ; d025d Tabled025d: ; d025d dw Functiond0261 dw Functiond0282 ; d0261 Functiond0261: ; d0261 call Functiond02f8 ld a, [$d182] cp $ff jr z, Functiond02a8 cp $fe jr z, Functiond028e cp $fd jr z, Functiond0296 call Functiond02c8 ld a, [$d183] call Functiond02ae ld [$d181], a call Functiond02dc Functiond0282: ; d0282 ld a, [$d181] dec a ld [$d181], a ret nz call Functiond02e4 ret ; d028e Functiond028e: ; d028e ld a, [$d183] ld [$d17f], a jr Functiond0253 ; d0296 Functiond0296: ; d0296 ld a, [$d17f] and a ret z dec a ld [$d17f], a ret z ld a, [$d183] ld [$d17d], a jr Functiond0253 ; d02a8 Functiond02a8: ; d02a8 ld hl, $d17e set 7, [hl] ret ; d02ae Functiond02ae: ; d02ae ld c, a ld b, $0 ld hl, $0000 ld a, [$d173] call AddNTimes ld a, h swap a and $f0 ld h, a ld a, l swap a and $f or h add c ret ; d02c8 Functiond02c8: ; d02c8 call Functiond04bd ld a, [$d182] and a ret z call Functiond031b push hl call Functiond033b pop hl call Functiond036b ret ; d02dc Functiond02dc: ; d02dc ld a, [$d17e] inc a ld [$d17e], a ret ; d02e4 Functiond02e4: ; d02e4 ld a, [$d17e] dec a ld [$d17e], a ret ; d02ec Functiond02ec: ; d02ec ld a, [$d16b] cp $c9 ret ; d02f2 Functiond02f2: ; d02f2 ld a, [$d16b] cp $fd ret ; d02f8 Functiond02f8: ; d02f8 push hl ld a, [$d17d] ld e, a ld d, $0 ld hl, $d175 ld a, [hli] ld h, [hl] ld l, a add hl, de add hl, de ld a, [$d174] call GetFarHalfword ld a, l ld [$d182], a ld a, h ld [$d183], a ld hl, $d17d inc [hl] pop hl ret ; d031b Functiond031b: ; d031b ld a, [$d182] dec a ld c, a ld b, $0 ld hl, $d178 ld a, [hli] ld h, [hl] ld l, a add hl, bc add hl, bc ld a, [$d177] call GetFarHalfword ld a, [$d177] call GetFarByte ld [$d180], a inc hl ret ; d033b Functiond033b: ; d033b call Functiond0356 push bc ld hl, $d17b ld a, [hli] ld h, [hl] ld l, a ld a, [$d180] call AddNTimes pop bc ld de, $d188 ld a, [$d17a] call FarCopyBytes ret ; d0356 Functiond0356: ; d0356 push hl ld a, [$d171] sub $5 ld c, a ld b, $0 ld hl, $4368 add hl, bc ld c, [hl] ld b, $0 pop hl ret ; d0368 INCBIN "baserom.gbc",$d0368,$d036b - $d0368 Functiond036b: ; d036b xor a ld [$d187], a ld [$d186], a ld [$d185], a .asm_d0375 push hl call Functiond0392 pop hl ld a, b and a jr z, .asm_d038a ld a, [$d177] call GetFarByte inc hl push hl call Functiond03bd pop hl .asm_d038a push hl call Functiond0499 pop hl jr nc, .asm_d0375 ret ; d0392 Functiond0392: ; d0392 ld a, [$d187] and $f8 rrca rrca rrca ld e, a ld d, $0 ld hl, $d188 add hl, de ld b, [hl] ld a, [$d187] and $7 jr z, .asm_d03b0 ld c, a ld a, b .asm_d03ab rrca dec c jr nz, .asm_d03ab ld b, a .asm_d03b0 xor a bit 0, b jr z, .asm_d03b7 ld a, $1 .asm_d03b7 ld b, a ld hl, $d187 inc [hl] ret ; d03bd Functiond03bd: ; d03bd push af call Functiond03cd pop af push hl call Functiond03f7 ld hl, $d16e add [hl] pop hl ld [hl], a ret ; d03cd Functiond03cd: ; d03cd call Functiond046c ld a, [$d186] ld bc, $0014 call AddNTimes ld a, [$c2c6] and a jr nz, .asm_d03e8 ld a, [$d185] ld e, a ld d, $0 add hl, de jr .asm_d03f3 .asm_d03e8 ld a, [$d185] ld e, a ld a, l sub e ld l, a ld a, h sbc $0 ld h, a .asm_d03f3 ret ; d03f4 INCBIN "baserom.gbc",$d03f4,$d03f7 - $d03f4 Functiond03f7: ; d03f7 push af ld a, [$d171] cp $5 jr z, .asm_d0405 cp $6 jr z, .asm_d041a pop af ret .asm_d0405 pop af cp $19 jr nc, .asm_d0417 push hl push de ld hl, $442f ld e, a ld d, $0 add hl, de ld a, [hl] pop de pop hl ret .asm_d0417 add $18 ret .asm_d041a pop af cp $24 jr nc, .asm_d042c push hl push de ld hl, $4448 ld e, a ld d, $0 add hl, de ld a, [hl] pop de pop hl ret .asm_d042c add $d ret ; d042f INCBIN "baserom.gbc",$d042f,$d046c - $d042f Functiond046c: ; d046c ld hl, $d16f ld a, [hli] ld h, [hl] ld l, a ld a, [$d171] ld de, $0000 ld bc, $0006 cp $7 jr z, .asm_d048f ld de, $0015 ld bc, $0019 cp $6 jr z, .asm_d048f ld de, $0029 ld bc, $002d .asm_d048f ld a, [$c2c6] and a jr nz, .asm_d0497 add hl, de ret .asm_d0497 add hl, bc ret ; d0499 Functiond0499: ; d0499 ld a, [$d186] inc a ld [$d186], a ld c, a ld a, [$d171] cp c jr nz, .asm_d04bb xor a ld [$d186], a ld a, [$d185] inc a ld [$d185], a ld c, a ld a, [$d171] cp c jr nz, .asm_d04bb scf ret .asm_d04bb xor a ret ; d04bd Functiond04bd: ; d04bd call Functiond04f6 ld a, [$c2c6] and a jr nz, .asm_d04ce ld de, $0001 ld bc, $0000 jr .asm_d04d4 .asm_d04ce ld de, rIE ld bc, $0006 .asm_d04d4 ld hl, $d16f ld a, [hli] ld h, [hl] ld l, a add hl, bc ld c, $7 ld b, $7 ld a, [$d16e] .asm_d04e2 push bc push hl push de ld de, $0014 .asm_d04e8 ld [hl], a inc a add hl, de dec b jr nz, .asm_d04e8 pop de pop hl add hl, de pop bc dec c jr nz, .asm_d04e2 ret ; d04f6 Functiond04f6: ; d04f6 ld hl, $d16f ld a, [hli] ld h, [hl] ld l, a ld b, $7 ld c, $7 call ClearBox ret ; d0504 Functiond0504: ; d0504 ld a, [rSVBK] push af ld a, $2 ld [rSVBK], a xor a ld [hBGMapMode], a call Functiond051b callba Function104047 pop af ld [rSVBK], a ret ; d051b Functiond051b: ; d051b call Functiond0551 ld b, $7 ld c, $7 ld de, $0014 .asm_d0525 push bc push hl .asm_d0527 ld a, [hl] or $8 ld [hl], a add hl, de dec c jr nz, .asm_d0527 pop hl inc hl pop bc dec b jr nz, .asm_d0525 ret ; d0536 Functiond0536: ; d0536 call Functiond0551 ld b, $7 ld c, $7 ld de, $0014 .asm_d0540 push bc push hl .asm_d0542 ld a, [hl] and $f7 ld [hl], a add hl, de dec c jr nz, .asm_d0542 pop hl inc hl pop bc dec b jr nz, .asm_d0540 ret ; d0551 Functiond0551: ; d0551 ld hl, $d16f ld a, [hli] ld h, [hl] ld l, a ld de, $0939 add hl, de ret ; d055c Functiond055c: ; d055c call Functiond02f2 jr z, .asm_d0597 ld c, $34 ld hl, UnownAnimationPointers ld de, UnownAnimationExtraPointers call Functiond02ec jr z, .asm_d0576 ld c, $34 ld hl, AnimationPointers ld de, AnimationExtraPointers .asm_d0576 ld a, [$d172] and a jr z, .asm_d057e ld h, d ld l, e .asm_d057e ld a, [$d16d] dec a ld e, a ld d, $0 add hl, de add hl, de ld a, c ld [$d174], a call GetFarHalfword ld a, l ld [$d175], a ld a, h ld [$d176], a ret .asm_d0597 ld hl, EggAnimation ld c, $34 ld a, [$d172] and a jr z, .asm_d05a7 ld hl, EggAnimationExtra ld c, $34 .asm_d05a7 ld a, c ld [$d174], a ld a, l ld [$d175], a ld a, h ld [$d176], a ret ; d05b4 Functiond05b4: ; d05b4 ld a, [rSVBK] push af ld a, $1 ld [rSVBK], a ld a, [CurPartySpecies] ld [CurSpecies], a call GetBaseData ld a, [BasePicSize] and $f ld c, a pop af ld [rSVBK], a ret ; d05ce Functiond05ce: ; d05ce call Functiond02f2 jr z, .asm_d0609 call Functiond02ec ld b, $36 ld c, $36 ld hl, PikachuAnimationExtra jr z, .asm_d05ef ld a, [$d16b] cp $98 ld b, $35 ld c, $35 ld hl, $4000 jr c, .asm_d05ef ld c, $36 .asm_d05ef ld a, c ld [$d177], a ld a, [$d16d] dec a ld e, a ld d, $0 add hl, de add hl, de ld a, b call GetFarHalfword ld a, l ld [$d178], a ld a, h ld [$d179], a ret .asm_d0609 ld hl, $598b ld c, $36 ld a, c ld [$d177], a ld a, l ld [$d178], a ld a, h ld [$d179], a ret ; d061b Functiond061b: ; d061b call Functiond02f2 jr z, .asm_d064a call Functiond02ec ld a, $34 ld hl, UnownBitmasksPointers jr z, .asm_d062f ld a, $34 ld hl, BitmasksPointers .asm_d062f ld [$d17a], a ld a, [$d16d] dec a ld e, a ld d, $0 add hl, de add hl, de ld a, [$d17a] call GetFarHalfword ld a, l ld [$d17b], a ld a, h ld [$d17c], a ret .asm_d064a ld c, $34 ld hl, EggBitmasks ld a, c ld [$d17a], a ld a, l ld [$d17b], a ld a, h ld [$d17c], a ret ; d065c Functiond065c: ; d065c call Functiond02ec jr z, .asm_d0665 ld a, [$d16b] ret .asm_d0665 ld a, [$d16c] ret ; d0669 Functiond0669: ; d0669 ld a, $1 ld [$c2c6], a Functiond066e: ; d066e call Functiond01c6 jr c, .asm_d068c ld h, d ld l, e push bc push hl ld de, VTiles2 ld a, $3e call Predef pop hl pop bc ld d, $0 ld e, c call Functiond008e xor a ld [$c2c6], a ret .asm_d068c xor a ld [$c2c6], a inc a ld [CurPartySpecies], a ret ; d0695