diff options
author | Bryan Bishop <kanzure@gmail.com> | 2014-07-19 14:25:28 -0500 |
---|---|---|
committer | Bryan Bishop <kanzure@gmail.com> | 2014-07-19 14:25:28 -0500 |
commit | bb5ae04ca5654b8c22585bcc094ee05d1ab5e055 (patch) | |
tree | fc6a371f6f37fb8efe888025f0745eb2109fd909 /home/cry.asm | |
parent | 1ba907e3539f51c70c95eed6189c14cea259b71a (diff) | |
parent | 4757e299be8c7c6981b75b1159bf5e3d28ee544e (diff) |
Merge pull request #259 from yenatch/cries
Shorten cry defs now that cry parameters are all words.
Diffstat (limited to 'home/cry.asm')
-rw-r--r-- | home/cry.asm | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/home/cry.asm b/home/cry.asm new file mode 100644 index 000000000..19723643a --- /dev/null +++ b/home/cry.asm @@ -0,0 +1,111 @@ +PlayStereoCry:: ; 37b6 + push af + ld a, 1 + ld [$c2bc], a + pop af + call _PlayCry + call WaitSFX + ret +; 37c4 + +PlayStereoCry2:: ; 37c4 +; Don't wait for the cry to end. +; Used during pic animations. + push af + ld a, 1 + ld [$c2bc], a + pop af + jp _PlayCry +; 37ce + +PlayCry:: ; 37ce + call PlayCry2 + call WaitSFX + ret +; 37d5 + +PlayCry2:: ; 37d5 +; Don't wait for the cry to end. + push af + xor a + ld [$c2bc], a + ld [CryTracks], a + pop af + call _PlayCry + ret +; 37e2 + +_PlayCry:: ; 37e2 + push hl + push de + push bc + + call GetCryIndex + jr c, .done + + ld e, c + ld d, b + call PlayCryHeader + +.done + pop bc + pop de + pop hl + ret +; 37f3 + +LoadCryHeader:: ; 37f3 +; Load cry header bc. + + call GetCryIndex + ret c + + ld a, [hROMBank] + push af + ld a, BANK(CryHeaders) + rst Bankswitch + + ld hl, CryHeaders + add hl, bc + add hl, bc + add hl, bc + add hl, bc + add hl, bc + add hl, bc + + ld e, [hl] + inc hl + ld d, [hl] + inc hl + + ld a, [hli] + ld [CryPitch], a + ld a, [hli] + ld [CryPitch + 1], a + ld a, [hli] + ld [CryLength], a + ld a, [hl] + ld [CryLength + 1], a + + pop af + rst Bankswitch + and a + ret +; 381e + +GetCryIndex:: ; 381e + and a + jr z, .no + cp NUM_POKEMON + 1 + jr nc, .no + + dec a + ld c, a + ld b, 0 + and a + ret + +.no + scf + ret +; 382d |