123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- TitleScroll_WaitBall:
- ; Wait around for the TitleBall animation to play out.
- ; hi: speed
- ; lo: duration
- db $05, $05, 0
- TitleScroll_In:
- ; Scroll a TitleMon in from the right.
- ; hi: speed
- ; lo: duration
- db $a2, $94, $84, $63, $52, $31, $11, 0
- TitleScroll_Out:
- ; Scroll a TitleMon out to the left.
- ; hi: speed
- ; lo: duration
- db $12, $22, $32, $42, $52, $62, $83, $93, 0
- TitleScroll:
- ld a, d
- ld bc, TitleScroll_In
- ld d, $88
- ld e, 0 ; don't animate titleball
- and a
- jr nz, .ok
- ld bc, TitleScroll_Out
- ld d, $00
- ld e, 0 ; don't animate titleball
- .ok
- _TitleScroll:
- ld a, [bc]
- and a
- ret z
- inc bc
- push bc
- ld b, a
- and $f
- ld c, a
- ld a, b
- and $f0
- swap a
- ld b, a
- .loop
- ld h, d
- ld l, $48
- call .ScrollBetween
- ld h, $00
- ld l, $88
- call .ScrollBetween
- ld a, d
- add b
- ld d, a
- call GetTitleBallY
- dec c
- jr nz, .loop
- pop bc
- jr _TitleScroll
- .ScrollBetween:
- .wait
- ld a, [rLY] ; rLY
- cp l
- jr nz, .wait
- ld a, h
- ld [rSCX], a
- .wait2
- ld a, [rLY] ; rLY
- cp h
- jr z, .wait2
- ret
- TitleBallYTable:
- ; OBJ y-positions for the Poke Ball held by Red in the title screen.
- ; This is really two 0-terminated lists. Initiated with an index of 1.
- db 0, $71, $6f, $6e, $6d, $6c, $6d, $6e, $6f, $71, $74, 0
- TitleScreenAnimateBallIfStarterOut:
- ; Animate the TitleBall if a starter just got scrolled out.
- ld a, [wTitleMonSpecies]
- cp STARTER1
- jr z, .ok
- cp STARTER2
- jr z, .ok
- cp STARTER3
- ret nz
- .ok
- ld e, 1 ; animate titleball
- ld bc, TitleScroll_WaitBall
- ld d, 0
- jp _TitleScroll
- GetTitleBallY:
- ; Get position e from TitleBallYTable
- push de
- push hl
- xor a
- ld d, a
- ld hl, TitleBallYTable
- add hl, de
- ld a, [hl]
- pop hl
- pop de
- and a
- ret z
- ld [wOAMBuffer + $28], a
- inc e
- ret
|