diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2015-12-01 15:35:28 -0500 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2015-12-01 15:35:28 -0500 |
commit | ffbf2c0f5d28c05c14f67a3cfb123d37157c2ef9 (patch) | |
tree | 5c22618a2e1324b1adcfafbe90d47f9230492999 /event | |
parent | 6b33a8d155b7d3d6d7738ad2bcaa33c7983b3fce (diff) |
More animations including cutting grass
Diffstat (limited to 'event')
-rwxr-xr-x | event/celebi.asm | 2 | ||||
-rwxr-xr-x | event/field_moves.asm | 287 | ||||
-rwxr-xr-x | event/poisonstep.asm | 2 |
3 files changed, 224 insertions, 67 deletions
diff --git a/event/celebi.asm b/event/celebi.asm index 46c78ed91..0c7327447 100755 --- a/event/celebi.asm +++ b/event/celebi.asm @@ -31,7 +31,7 @@ Special_CelebiShrineEvent: ; 4989a push de ld a, $90 ld [wc3b5], a - callba Function8cf7a + callba DoNextFrameForAllSprites call Function49935 ld c, 2 call DelayFrames diff --git a/event/field_moves.asm b/event/field_moves.asm index d6fa4a0bb..47915814b 100755 --- a/event/field_moves.asm +++ b/event/field_moves.asm @@ -29,7 +29,7 @@ ShakeHeadbuttTree: ; 8c80a ld hl, VTiles1 tile $04 lb bc, BANK(HeadbuttTreeGFX), 8 call Request2bpp - call Function8cad3 + call Cut_Headbutt_GetPixelFacing ld a, SPRITE_ANIM_INDEX_1B call _InitSpriteAnimStruct ld hl, $3 @@ -37,7 +37,7 @@ ShakeHeadbuttTree: ; 8c80a ld [hl], $84 ld a, $90 ld [wc3b5], a - callba Function8cf7a + callba DoNextFrameForAllSprites call GetHeadbuttTreeRelativeLocation ld a, $20 ld [wcf64], a @@ -52,7 +52,7 @@ ShakeHeadbuttTree: ; 8c80a dec [hl] ld a, $90 ld [wc3b5], a - callba Function8cf7a + callba DoNextFrameForAllSprites call DelayFrame jr .loop @@ -62,8 +62,8 @@ ShakeHeadbuttTree: ; 8c80a xor a ld [hBGMapMode], a callba Function8cf53 - ld hl, Sprites + $90 - ld bc, $10 + ld hl, Sprites + 36 * 4 + ld bc, SpritesEnd - (Sprites + 36 * 4) xor a call ByteFill ld de, Font @@ -126,7 +126,7 @@ OWCutAnimation: ; 8c940 jr nz, .finish ld a, $90 ld [wc3b5], a - callab Function8cf7a + callab DoNextFrameForAllSprites call OWCutJumptable call DelayFrame jr .loop @@ -172,96 +172,100 @@ endr .jumptable: ; 8ca1b (23:4a1b) - dw Function8ca23 - dw Function8ca3c - dw Function8ca5c - dw Function8ca64 + dw Cut_SpawnAnimateTree + dw Cut_SpawnAnimateLeaves + dw Cut_StartWaiting + dw Cut_WaitAnimSFX -Function8ca23: ; 8ca23 (23:4a23) - call Function8cad3 - ld a, SPRITE_ANIM_INDEX_17 ; leaf +Cut_SpawnAnimateTree: ; 8ca23 (23:4a23) + call Cut_Headbutt_GetPixelFacing + ld a, SPRITE_ANIM_INDEX_CUT_TREE ; cut tree call _InitSpriteAnimStruct - ld hl, $3 + ld hl, SPRITEANIMSTRUCT_TILE_ID add hl, bc ld [hl], $84 - ld a, $20 + ld a, 32 ld [wcf64], a +; Cut_StartWaiting ld hl, wJumptableIndex rept 2 inc [hl] endr ret -Function8ca3c: ; 8ca3c (23:4a3c) - call Function8ca8e +Cut_SpawnAnimateLeaves: ; 8ca3c (23:4a3c) + call Cut_GetLeafSpawnCoords xor a - call Function8ca73 + call Cut_SpawnLeaf ld a, $10 - call Function8ca73 + call Cut_SpawnLeaf ld a, $20 - call Function8ca73 + call Cut_SpawnLeaf ld a, $30 - call Function8ca73 - ld a, $20 + call Cut_SpawnLeaf + ld a, 32 ; frames ld [wcf64], a +; Cut_StartWaiting ld hl, wJumptableIndex inc [hl] ret -Function8ca5c: ; 8ca5c (23:4a5c) +Cut_StartWaiting: ; 8ca5c (23:4a5c) ld a, $1 ld [hBGMapMode], a +; Cut_WaitAnimSFX ld hl, wJumptableIndex inc [hl] -Function8ca64: ; 8ca64 (23:4a64) +Cut_WaitAnimSFX: ; 8ca64 (23:4a64) ld hl, wcf64 ld a, [hl] and a - jr z, .asm_8ca6d + jr z, .finished dec [hl] ret -.asm_8ca6d + +.finished ld hl, wJumptableIndex set 7, [hl] ret -Function8ca73: ; 8ca73 (23:4a73) +Cut_SpawnLeaf: ; 8ca73 (23:4a73) push de push af - ld a, SPRITE_ANIM_INDEX_16 ; fly takeoff + ld a, SPRITE_ANIM_INDEX_LEAF ; leaf call _InitSpriteAnimStruct - ld hl, $3 + ld hl, SPRITEANIMSTRUCT_TILE_ID add hl, bc ld [hl], $80 - ld hl, $e + ld hl, SPRITEANIMSTRUCT_0E add hl, bc ld [hl], $4 pop af - ld hl, $c + ld hl, SPRITEANIMSTRUCT_0C add hl, bc ld [hl], a pop de ret -Function8ca8e: ; 8ca8e (23:4a8e) +Cut_GetLeafSpawnCoords: ; 8ca8e (23:4a8e) ld de, 0 - ld a, [wd197] + ld a, [wMetatileStandingX] bit 0, a - jr z, .asm_8ca9a + jr z, .left_side set 0, e -.asm_8ca9a - ld a, [wd196] +.left_side + ld a, [wMetatileStandingY] bit 0, a - jr z, .asm_8caa3 + jr z, .top_side set 1, e -.asm_8caa3 +.top_side ld a, [PlayerDirection] - and $c + and %00001100 add e ld e, a - ld hl, Unknown_8cab3 + ld hl, .Coords rept 2 add hl, de endr @@ -271,32 +275,35 @@ endr ret ; 8cab3 (23:4ab3) -Unknown_8cab3: ; 8cab3 - db $58, $60 - db $48, $60 - db $58, $70 - db $48, $70 - db $58, $40 - db $48, $40 - db $58, $50 - db $48, $50 - db $38, $60 - db $48, $60 - db $38, $50 - db $48, $50 - db $58, $60 - db $68, $60 - db $58, $50 - db $68, $50 +.Coords: ; 8cab3 + dbpixel 11, 12 ; facing down, top left + dbpixel 9, 12 ; facing down, top right + dbpixel 11, 14 ; facing down, bottom left + dbpixel 9, 14 ; facing down, bottom right + + dbpixel 11, 8 ; facing up, top left + dbpixel 9, 8 ; facing up, top right + dbpixel 11, 10 ; facing up, bottom left + dbpixel 9, 10 ; facing up, bottom right + + dbpixel 7, 12 ; facing left, top left + dbpixel 9, 12 ; facing left, top right + dbpixel 7, 10 ; facing left, bottom left + dbpixel 9, 10 ; facing left, bottom right + + dbpixel 11, 12 ; facing right, top left + dbpixel 13, 12 ; facing right, top right + dbpixel 11, 10 ; facing right, bottom left + dbpixel 13, 10 ; facing right, bottom right ; 8cad3 -Function8cad3: ; 8cad3 (23:4ad3) +Cut_Headbutt_GetPixelFacing: ; 8cad3 (23:4ad3) ld a, [PlayerDirection] - and $c + and %00001100 srl a ld e, a ld d, 0 - ld hl, Unknown_8cae5 + ld hl, .Coords add hl, de ld e, [hl] inc hl @@ -304,9 +311,159 @@ Function8cad3: ; 8cad3 (23:4ad3) ret ; 8cae5 (23:4ae5) -Unknown_8cae5: ; 8cae5 - db $50, $68 - db $50, $48 - db $40, $58 - db $60, $58 +.Coords: ; 8cae5 + dbpixel 10, 13 + dbpixel 10, 9 + dbpixel 8, 11 + dbpixel 12, 11 ; 8caed + + +FlyFromAnim: ; 8caed + call DelayFrame + ld a, [VramState] + push af + xor a + ld [VramState], a + call Function8cb9b + depixel 10, 10, 4, 0 + ld a, SPRITE_ANIM_INDEX_0A + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_TILE_ID + add hl, bc + ld [hl], $84 + ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID + add hl, bc + ld [hl], $16 + ld a, $80 + ld [wcf64], a +.loop + ld a, [wJumptableIndex] + bit 7, a + jr nz, .exit + ld a, $0 + ld [wc3b5], a + callab DoNextFrameForAllSprites + call Function8cbc8 + call DelayFrame + jr .loop + +.exit + pop af + ld [VramState], a + ret +; 8cb33 + +FlyToAnim: ; 8cb33 + call DelayFrame + ld a, [VramState] + push af + xor a + ld [VramState], a + call Function8cb9b + depixel 31, 10, 4, 0 + ld a, SPRITE_ANIM_INDEX_0A + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_TILE_ID + add hl, bc + ld [hl], $84 + ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID + add hl, bc + ld [hl], $18 + ld hl, SPRITEANIMSTRUCT_0F + add hl, bc + ld [hl], $58 + ld a, $40 + ld [wcf64], a +.loop + ld a, [wJumptableIndex] + bit 7, a + jr nz, .exit + ld a, $0 + ld [wc3b5], a + callab DoNextFrameForAllSprites + call Function8cbc8 + call DelayFrame + jr .loop + +.exit + pop af + ld [VramState], a + call Function8cb82 + ret + +Function8cb82: ; 8cb82 (23:4b82) + ld hl, Sprites + 2 ; Tile ID + xor a + ld c, $4 +.loop + ld [hli], a +rept 3 + inc hl +endr + inc a + dec c + jr nz, .loop + ld hl, Sprites + 4 * 4 + ld bc, SpritesEnd - (Sprites + 4 * 4) + xor a + call ByteFill + ret + +Function8cb9b: ; 8cb9b (23:4b9b) + callab Function8cf53 + ld de, CutGrassGFX + ld hl, VTiles1 tile $00 + lb bc, BANK(CutGrassGFX), 4 + call Request2bpp + ld a, [CurPartyMon] + ld hl, PartySpecies + ld e, a + ld d, 0 + add hl, de + ld a, [hl] + ld [wd265], a + ld e, $84 + callba Function8e9bc + xor a + ld [wJumptableIndex], a + ret + +Function8cbc8: ; 8cbc8 (23:4bc8) + call Function8cbe6 + ld hl, wcf64 + ld a, [hl] + and a + jr z, .exit + dec [hl] + cp $40 + ret c + and $7 + ret nz + ld de, SFX_FLY + call PlaySFX + ret + +.exit + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function8cbe6: ; 8cbe6 (23:4be6) + ld hl, wcf65 + ld a, [hl] + inc [hl] + and $7 + ret nz + ld a, [hl] + and $18 + sla a + add $40 + ld d, a + ld e, $0 + ld a, SPRITE_ANIM_INDEX_18 ; fly land + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_TILE_ID + add hl, bc + ld [hl], $80 + ret diff --git a/event/poisonstep.asm b/event/poisonstep.asm index 29181f6b3..6b2030e9f 100755 --- a/event/poisonstep.asm +++ b/event/poisonstep.asm @@ -104,7 +104,7 @@ DoPoisonStep:: ; 505da ld de, SFX_POISON call PlaySFX ld b, $2 - predef Functioncbcdd + predef LoadPoisonBGPals call DelayFrame ret ; 50669 |