More animations including cutting grass

This commit is contained in:
PikalaxALT 2015-12-01 15:35:28 -05:00
parent 6b33a8d155
commit ffbf2c0f5d
15 changed files with 397 additions and 355 deletions

View File

@ -270,8 +270,8 @@ NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
const SPRITE_ANIM_INDEX_13 const SPRITE_ANIM_INDEX_13
const SPRITE_ANIM_INDEX_14 const SPRITE_ANIM_INDEX_14
const SPRITE_ANIM_INDEX_15 const SPRITE_ANIM_INDEX_15
const SPRITE_ANIM_INDEX_16 const SPRITE_ANIM_INDEX_LEAF
const SPRITE_ANIM_INDEX_17 const SPRITE_ANIM_INDEX_CUT_TREE
const SPRITE_ANIM_INDEX_18 const SPRITE_ANIM_INDEX_18
const SPRITE_ANIM_INDEX_19 const SPRITE_ANIM_INDEX_19
const SPRITE_ANIM_INDEX_1A const SPRITE_ANIM_INDEX_1A

View File

@ -24,7 +24,7 @@ LAST_TALKED EQU -2
const VAR_XCOORD ; 12 const VAR_XCOORD ; 12
const VAR_YCOORD ; 13 const VAR_YCOORD ; 13
const VAR_SPECIALPHONECALL ; 14 const VAR_SPECIALPHONECALL ; 14
const VAR_15 ; 15 const VAR_BT_WIN_STREAK ; 15
const VAR_KURT_APRICORNS ; 16 const VAR_KURT_APRICORNS ; 16
const VAR_CALLERID ; 17 const VAR_CALLERID ; 17
const VAR_BLUECARDBALANCE ; 18 const VAR_BLUECARDBALANCE ; 18

View File

@ -347,3 +347,21 @@ MAX_OUTDOOR_SPRITES EQU 23
const FACING_1D const FACING_1D
const FACING_1E const FACING_1E
const FACING_1F const FACING_1F
const_def
const SPRITEANIMSTRUCT_INDEX
const SPRITEANIMSTRUCT_01
const SPRITEANIMSTRUCT_ANIM_SEQ_ID
const SPRITEANIMSTRUCT_TILE_ID
const SPRITEANIMSTRUCT_XCOORD
const SPRITEANIMSTRUCT_YCOORD
const SPRITEANIMSTRUCT_XOFFSET
const SPRITEANIMSTRUCT_YOFFSET
const SPRITEANIMSTRUCT_DURATION
const SPRITEANIMSTRUCT_09
const SPRITEANIMSTRUCT_FRAME
const SPRITEANIMSTRUCT_0B
const SPRITEANIMSTRUCT_0C
const SPRITEANIMSTRUCT_0D
const SPRITEANIMSTRUCT_0E
const SPRITEANIMSTRUCT_0F

View File

@ -823,16 +823,16 @@ Function173b3: ; 173b3 (5:73b3)
push bc push bc
ld a, SPRITE_ANIM_INDEX_1C ld a, SPRITE_ANIM_INDEX_1C
call _InitSpriteAnimStruct call _InitSpriteAnimStruct
ld hl, SpriteAnim1TileID - SpriteAnim1 ld hl, SPRITEANIMSTRUCT_TILE_ID
add hl, bc add hl, bc
ld [hl], $0 ld [hl], $0
pop de pop de
ld a, e ld a, e
ld hl, SpriteAnim1Sprite01 - SpriteAnim1 ld hl, SPRITEANIMSTRUCT_01
add hl, bc add hl, bc
add [hl] add [hl]
ld [hl], a ld [hl], a
ld hl, SpriteAnim1Sprite0b - SpriteAnim1 ld hl, SPRITEANIMSTRUCT_0B
add hl, bc add hl, bc
ld [hl], d ld [hl], d
pop hl pop hl

View File

@ -76,7 +76,7 @@ PredefPointers:: ; 856b
add_predef PrintType add_predef PrintType
add_predef PrintMonTypes add_predef PrintMonTypes
add_predef GetUnownLetter add_predef GetUnownLetter
add_predef Functioncbcdd add_predef LoadPoisonBGPals
add_predef Predef2F add_predef Predef2F
add_predef Function9853 ; $30 add_predef Function9853 ; $30
add_predef Predef_LoadSGBLayout add_predef Predef_LoadSGBLayout

View File

@ -25,7 +25,7 @@ PlaySpriteAnimations: ; 8cf69
ld a, $0 ld a, $0
ld [wc3b5], a ld [wc3b5], a
call Function8cf7a call DoNextFrameForAllSprites
pop af pop af
pop bc pop bc
@ -34,7 +34,7 @@ PlaySpriteAnimations: ; 8cf69
ret ret
; 8cf7a ; 8cf7a
Function8cf7a: ; 8cf7a DoNextFrameForAllSprites: ; 8cf7a
ld hl, wSpriteAnimationStructs ld hl, wSpriteAnimationStructs
ld e, 10 ; There are 10 structs here. ld e, 10 ; There are 10 structs here.
@ -241,7 +241,7 @@ Function8d04c: ; 8d04c
jr z, .done jr z, .done
cp -4 cp -4
jr z, .almost jr z, .almost
call Function8d1a2 ; read from a pointer table call Function8d1a2 ; OAM?
ld a, [wc3ba] ld a, [wc3ba]
add [hl] add [hl]
ld [wc3ba], a ld [wc3ba], a
@ -416,40 +416,40 @@ Function8d120:: ; 8d120
Function8d132: ; 8d132 Function8d132: ; 8d132
.loop .loop
ld hl, $8 ld hl, SPRITEANIMSTRUCT_DURATION
add hl, bc add hl, bc
ld a, [hl] ld a, [hl]
and a and a
jr z, .ok jr z, .done ; finished the current sequence
dec [hl] dec [hl]
call Function8d189 call Function8d189 ; load pointer from Unknown_8d6e6
ld a, [hli] ld a, [hli]
push af push af
jr .skip jr .okay
.ok .done
ld hl, $a ld hl, SPRITEANIMSTRUCT_FRAME
add hl, bc add hl, bc
inc [hl] inc [hl]
call Function8d189 call Function8d189 ; load pointer from Unknown_8d6e6
ld a, [hli] ld a, [hli]
cp $fe cp $fe
jr z, .minus_2 jr z, .minus_2
cp $ff cp $ff
jr z, .minus_1 jr z, .minus_1
push af push af
ld a, [hl] ld a, [hl]
push hl push hl
and $3f and $3f
ld hl, $9 ld hl, SPRITEANIMSTRUCT_09
add hl, bc add hl, bc
add [hl] add [hl]
ld hl, $8 ld hl, SPRITEANIMSTRUCT_DURATION
add hl, bc add hl, bc
ld [hl], a ld [hl], a
pop hl pop hl
.okay
.skip
ld a, [hl] ld a, [hl]
and $c0 and $c0
srl a srl a
@ -459,10 +459,11 @@ Function8d132: ; 8d132
.minus_1 .minus_1
xor a xor a
ld hl, $8 ld hl, SPRITEANIMSTRUCT_DURATION
add hl, bc add hl, bc
ld [hl], a ld [hl], a
ld hl, $a
ld hl, SPRITEANIMSTRUCT_FRAME
add hl, bc add hl, bc
rept 2 rept 2
dec [hl] dec [hl]
@ -471,20 +472,22 @@ endr
.minus_2 .minus_2
xor a xor a
ld hl, $8 ld hl, SPRITEANIMSTRUCT_DURATION
add hl, bc add hl, bc
ld [hl], a ld [hl], a
dec a dec a
ld hl, $a ld hl, SPRITEANIMSTRUCT_FRAME
add hl, bc add hl, bc
ld [hl], a ld [hl], a
jr .loop jr .loop
; 8d189 ; 8d189
Function8d189: ; 8d189 Function8d189: ; 8d189
; Get the [bc+10]th entry in the data table ; Get the data for the current frame for the current animation sequence
; indexed at [bc+1] in Unknown_8d6e6
ld hl, $1 ; Unknown_8d6e6 + 2 * SpriteAnim[SPRITEANIMSTRUCT_01] + 3 * SpriteAnim[SPRITEANIMSTRUCT_FRAME]
ld hl, SPRITEANIMSTRUCT_01
add hl, bc add hl, bc
ld e, [hl] ld e, [hl]
ld d, 0 ld d, 0
@ -495,7 +498,7 @@ endr
ld e, [hl] ld e, [hl]
inc hl inc hl
ld d, [hl] ld d, [hl]
ld hl, $a ld hl, SPRITEANIMSTRUCT_FRAME
add hl, bc add hl, bc
ld l, [hl] ld l, [hl]
ld h, 0 ld h, 0
@ -1406,72 +1409,72 @@ endr
; 8d6e6 (23:56e6) ; 8d6e6 (23:56e6)
Unknown_8d6e6: ; 8d6e6 Unknown_8d6e6: ; 8d6e6
dw Unknown_8d76a dw Unknown_8d76a ; 00
dw Unknown_8d76d dw Unknown_8d76d ; 01
dw Unknown_8d772 dw Unknown_8d772 ; 02
dw Unknown_8d777 dw Unknown_8d777 ; 03
dw Unknown_8d77c dw Unknown_8d77c ; 04
dw Unknown_8d781 dw Unknown_8d781 ; 05
dw Unknown_8d786 dw Unknown_8d786 ; 06
dw Unknown_8d7a6 dw Unknown_8d7a6 ; 07
dw Unknown_8d7ab dw Unknown_8d7ab ; 08
dw Unknown_8d7b0 dw Unknown_8d7b0 ; 09
dw Unknown_8d7b5 dw Unknown_8d7b5 ; 0a
dw Unknown_8d7d4 dw Unknown_8d7d4 ; 0b
dw Unknown_8d7d9 dw Unknown_8d7d9 ; 0c
dw Unknown_8d7e2 dw Unknown_8d7e2 ; 0d
dw Unknown_8d7eb dw Unknown_8d7eb ; 0e
dw Unknown_8d7f4 dw Unknown_8d7f4 ; 0f
dw Unknown_8d7ff dw Unknown_8d7ff ; 10
dw Unknown_8d78b dw Unknown_8d78b ; 11
dw Unknown_8d802 dw Unknown_8d802 ; 12
dw Unknown_8d805 dw Unknown_8d805 ; 13
dw Unknown_8d808 dw Unknown_8d808 ; 14
dw Unknown_8d811 dw Unknown_8d811 ; 15
dw Unknown_8d818 dw Unknown_8d818 ; 16
dw Unknown_8d81d dw Unknown_8d81d ; 17
dw Unknown_8d822 dw Unknown_8d822 ; 18
dw Unknown_8d825 dw Unknown_8d825 ; 19
dw Unknown_8d82c dw Unknown_8d82c ; 1a
dw Unknown_8d82f dw Unknown_8d82f ; 1b
dw Unknown_8d861 dw Unknown_8d861 ; 1c
dw Unknown_8d864 dw Unknown_8d864 ; 1d
dw Unknown_8d867 dw Unknown_8d867 ; 1e
dw Unknown_8d874 dw Unknown_8d874 ; 1f
dw Unknown_8d877 dw Unknown_8d877 ; 20
dw Unknown_8d87a dw Unknown_8d87a ; 21
dw Unknown_8d87d dw Unknown_8d87d ; 22
dw Unknown_8d880 dw Unknown_8d880 ; 23
dw Unknown_8d883 dw Unknown_8d883 ; 24
dw Unknown_8d890 dw Unknown_8d890 ; 25
dw Unknown_8d899 dw Unknown_8d899 ; 26
dw Unknown_8d89c dw Unknown_8d89c ; 27
dw Unknown_8d89f dw Unknown_8d89f ; 28
dw Unknown_8d8a2 dw Unknown_8d8a2 ; 29
dw Unknown_8d8a5 dw Unknown_8d8a5 ; 2a
dw Unknown_8d8a8 dw Unknown_8d8a8 ; 2b
dw Unknown_8d8ab dw Unknown_8d8ab ; 2c
dw Unknown_8d794 dw Unknown_8d794 ; 2d
dw Unknown_8d79d dw Unknown_8d79d ; 2e
dw Unknown_8d8ae dw Unknown_8d8ae ; 2f
dw Unknown_8d8cd dw Unknown_8d8cd ; 30
dw Unknown_8d8ec dw Unknown_8d8ec ; 31
dw Unknown_8d8f1 dw Unknown_8d8f1 ; 32
dw Unknown_8d8f4 dw Unknown_8d8f4 ; 33
dw Unknown_8d8f7 dw Unknown_8d8f7 ; 34
dw Unknown_8d8fe dw Unknown_8d8fe ; 35
dw Unknown_8d907 dw Unknown_8d907 ; 36
dw Unknown_8d90c dw Unknown_8d90c ; 37
dw Unknown_8d913 dw Unknown_8d913 ; 38
dw Unknown_8d916 dw Unknown_8d916 ; 39
dw Unknown_8d91d dw Unknown_8d91d ; 3a
dw Unknown_8d924 dw Unknown_8d924 ; 3b
dw Unknown_8d92b dw Unknown_8d92b ; 3c
dw Unknown_8d932 dw Unknown_8d932 ; 3d
dw Unknown_8d93d dw Unknown_8d93d ; 3e
dw Unknown_8d940 dw Unknown_8d940 ; 3f
dw Unknown_8d943 dw Unknown_8d943 ; 40
dw Unknown_8d948 dw Unknown_8d948 ; 41
; 8d76a ; 8d76a
Unknown_8d76a: dw $2000 Unknown_8d76a: dw $2000

View File

@ -118,7 +118,7 @@ endr
rept 4 rept 4
ld [hli], a ld [hli], a
endr endr
ld hl, wdc58 ld hl, wKenjiBreakTimer
ld a, [hl] ld a, [hl]
and a and a
jr z, .RestartKenjiBreakCountdown jr z, .RestartKenjiBreakCountdown
@ -137,7 +137,7 @@ Special_SampleKenjiBreakCountdown: ; 11485
call Random call Random
and 3 and 3
add 3 add 3
ld [wdc58], a ld [wKenjiBreakTimer], a
ret ret
; 11490 ; 11490

View File

@ -38,34 +38,34 @@ endr
; $00: copy [de] to StringBuffer2 ; $00: copy [de] to StringBuffer2
; $40: return address in de ; $40: return address in de
; $80: call function ; $80: call function
dwb StringBuffer2, RETVAR_STRBUF2 dwb StringBuffer2, RETVAR_STRBUF2
dwb PartyCount, RETVAR_STRBUF2 dwb PartyCount, RETVAR_STRBUF2
dwb .BattleResult, RETVAR_EXECUTE dwb .BattleResult, RETVAR_EXECUTE
dwb BattleType, RETVAR_ADDR_DE dwb BattleType, RETVAR_ADDR_DE
dwb TimeOfDay, RETVAR_STRBUF2 dwb TimeOfDay, RETVAR_STRBUF2
dwb .CountCaughtMons, RETVAR_EXECUTE dwb .CountCaughtMons, RETVAR_EXECUTE
dwb .CountSeenMons, RETVAR_EXECUTE dwb .CountSeenMons, RETVAR_EXECUTE
dwb .CountBadges, RETVAR_EXECUTE dwb .CountBadges, RETVAR_EXECUTE
dwb PlayerState, RETVAR_ADDR_DE dwb PlayerState, RETVAR_ADDR_DE
dwb .PlayerFacing, RETVAR_EXECUTE dwb .PlayerFacing, RETVAR_EXECUTE
dwb hHours, RETVAR_STRBUF2 dwb hHours, RETVAR_STRBUF2
dwb .DayOfWeek, RETVAR_EXECUTE dwb .DayOfWeek, RETVAR_EXECUTE
dwb MapGroup, RETVAR_STRBUF2 dwb MapGroup, RETVAR_STRBUF2
dwb MapNumber, RETVAR_STRBUF2 dwb MapNumber, RETVAR_STRBUF2
dwb .UnownCaught, RETVAR_EXECUTE dwb .UnownCaught, RETVAR_EXECUTE
dwb wPermission, RETVAR_STRBUF2 dwb wPermission, RETVAR_STRBUF2
dwb .BoxFreeSpace, RETVAR_EXECUTE dwb .BoxFreeSpace, RETVAR_EXECUTE
dwb wBugContestMinsRemaining, RETVAR_STRBUF2 dwb wBugContestMinsRemaining, RETVAR_STRBUF2
dwb XCoord, RETVAR_STRBUF2 dwb XCoord, RETVAR_STRBUF2
dwb YCoord, RETVAR_STRBUF2 dwb YCoord, RETVAR_STRBUF2
dwb wSpecialPhoneCallID, RETVAR_STRBUF2 dwb wSpecialPhoneCallID, RETVAR_STRBUF2
dwb wcf64, RETVAR_STRBUF2 dwb wNrOfBeatenBattleTowerTrainers, RETVAR_STRBUF2
dwb wKurtApricornQuantity, RETVAR_STRBUF2 dwb wKurtApricornQuantity, RETVAR_STRBUF2
dwb wCurrentCaller, RETVAR_ADDR_DE dwb wCurrentCaller, RETVAR_ADDR_DE
dwb wBlueCardBalance, RETVAR_ADDR_DE dwb wBlueCardBalance, RETVAR_ADDR_DE
dwb wBuenasPassword, RETVAR_ADDR_DE dwb wBuenasPassword, RETVAR_ADDR_DE
dwb wdc58, RETVAR_STRBUF2 dwb wKenjiBreakTimer, RETVAR_STRBUF2
dwb NULL, RETVAR_STRBUF2 dwb NULL, RETVAR_STRBUF2
; 806c5 ; 806c5
.CountCaughtMons: ; 806c5 .CountCaughtMons: ; 806c5

View File

@ -31,7 +31,7 @@ Special_CelebiShrineEvent: ; 4989a
push de push de
ld a, $90 ld a, $90
ld [wc3b5], a ld [wc3b5], a
callba Function8cf7a callba DoNextFrameForAllSprites
call Function49935 call Function49935
ld c, 2 ld c, 2
call DelayFrames call DelayFrames

View File

@ -29,7 +29,7 @@ ShakeHeadbuttTree: ; 8c80a
ld hl, VTiles1 tile $04 ld hl, VTiles1 tile $04
lb bc, BANK(HeadbuttTreeGFX), 8 lb bc, BANK(HeadbuttTreeGFX), 8
call Request2bpp call Request2bpp
call Function8cad3 call Cut_Headbutt_GetPixelFacing
ld a, SPRITE_ANIM_INDEX_1B ld a, SPRITE_ANIM_INDEX_1B
call _InitSpriteAnimStruct call _InitSpriteAnimStruct
ld hl, $3 ld hl, $3
@ -37,7 +37,7 @@ ShakeHeadbuttTree: ; 8c80a
ld [hl], $84 ld [hl], $84
ld a, $90 ld a, $90
ld [wc3b5], a ld [wc3b5], a
callba Function8cf7a callba DoNextFrameForAllSprites
call GetHeadbuttTreeRelativeLocation call GetHeadbuttTreeRelativeLocation
ld a, $20 ld a, $20
ld [wcf64], a ld [wcf64], a
@ -52,7 +52,7 @@ ShakeHeadbuttTree: ; 8c80a
dec [hl] dec [hl]
ld a, $90 ld a, $90
ld [wc3b5], a ld [wc3b5], a
callba Function8cf7a callba DoNextFrameForAllSprites
call DelayFrame call DelayFrame
jr .loop jr .loop
@ -62,8 +62,8 @@ ShakeHeadbuttTree: ; 8c80a
xor a xor a
ld [hBGMapMode], a ld [hBGMapMode], a
callba Function8cf53 callba Function8cf53
ld hl, Sprites + $90 ld hl, Sprites + 36 * 4
ld bc, $10 ld bc, SpritesEnd - (Sprites + 36 * 4)
xor a xor a
call ByteFill call ByteFill
ld de, Font ld de, Font
@ -126,7 +126,7 @@ OWCutAnimation: ; 8c940
jr nz, .finish jr nz, .finish
ld a, $90 ld a, $90
ld [wc3b5], a ld [wc3b5], a
callab Function8cf7a callab DoNextFrameForAllSprites
call OWCutJumptable call OWCutJumptable
call DelayFrame call DelayFrame
jr .loop jr .loop
@ -172,96 +172,100 @@ endr
.jumptable: ; 8ca1b (23:4a1b) .jumptable: ; 8ca1b (23:4a1b)
dw Function8ca23 dw Cut_SpawnAnimateTree
dw Function8ca3c dw Cut_SpawnAnimateLeaves
dw Function8ca5c dw Cut_StartWaiting
dw Function8ca64 dw Cut_WaitAnimSFX
Function8ca23: ; 8ca23 (23:4a23) Cut_SpawnAnimateTree: ; 8ca23 (23:4a23)
call Function8cad3 call Cut_Headbutt_GetPixelFacing
ld a, SPRITE_ANIM_INDEX_17 ; leaf ld a, SPRITE_ANIM_INDEX_CUT_TREE ; cut tree
call _InitSpriteAnimStruct call _InitSpriteAnimStruct
ld hl, $3 ld hl, SPRITEANIMSTRUCT_TILE_ID
add hl, bc add hl, bc
ld [hl], $84 ld [hl], $84
ld a, $20 ld a, 32
ld [wcf64], a ld [wcf64], a
; Cut_StartWaiting
ld hl, wJumptableIndex ld hl, wJumptableIndex
rept 2 rept 2
inc [hl] inc [hl]
endr endr
ret ret
Function8ca3c: ; 8ca3c (23:4a3c) Cut_SpawnAnimateLeaves: ; 8ca3c (23:4a3c)
call Function8ca8e call Cut_GetLeafSpawnCoords
xor a xor a
call Function8ca73 call Cut_SpawnLeaf
ld a, $10 ld a, $10
call Function8ca73 call Cut_SpawnLeaf
ld a, $20 ld a, $20
call Function8ca73 call Cut_SpawnLeaf
ld a, $30 ld a, $30
call Function8ca73 call Cut_SpawnLeaf
ld a, $20 ld a, 32 ; frames
ld [wcf64], a ld [wcf64], a
; Cut_StartWaiting
ld hl, wJumptableIndex ld hl, wJumptableIndex
inc [hl] inc [hl]
ret ret
Function8ca5c: ; 8ca5c (23:4a5c) Cut_StartWaiting: ; 8ca5c (23:4a5c)
ld a, $1 ld a, $1
ld [hBGMapMode], a ld [hBGMapMode], a
; Cut_WaitAnimSFX
ld hl, wJumptableIndex ld hl, wJumptableIndex
inc [hl] inc [hl]
Function8ca64: ; 8ca64 (23:4a64) Cut_WaitAnimSFX: ; 8ca64 (23:4a64)
ld hl, wcf64 ld hl, wcf64
ld a, [hl] ld a, [hl]
and a and a
jr z, .asm_8ca6d jr z, .finished
dec [hl] dec [hl]
ret ret
.asm_8ca6d
.finished
ld hl, wJumptableIndex ld hl, wJumptableIndex
set 7, [hl] set 7, [hl]
ret ret
Function8ca73: ; 8ca73 (23:4a73) Cut_SpawnLeaf: ; 8ca73 (23:4a73)
push de push de
push af push af
ld a, SPRITE_ANIM_INDEX_16 ; fly takeoff ld a, SPRITE_ANIM_INDEX_LEAF ; leaf
call _InitSpriteAnimStruct call _InitSpriteAnimStruct
ld hl, $3 ld hl, SPRITEANIMSTRUCT_TILE_ID
add hl, bc add hl, bc
ld [hl], $80 ld [hl], $80
ld hl, $e ld hl, SPRITEANIMSTRUCT_0E
add hl, bc add hl, bc
ld [hl], $4 ld [hl], $4
pop af pop af
ld hl, $c ld hl, SPRITEANIMSTRUCT_0C
add hl, bc add hl, bc
ld [hl], a ld [hl], a
pop de pop de
ret ret
Function8ca8e: ; 8ca8e (23:4a8e) Cut_GetLeafSpawnCoords: ; 8ca8e (23:4a8e)
ld de, 0 ld de, 0
ld a, [wd197] ld a, [wMetatileStandingX]
bit 0, a bit 0, a
jr z, .asm_8ca9a jr z, .left_side
set 0, e set 0, e
.asm_8ca9a .left_side
ld a, [wd196] ld a, [wMetatileStandingY]
bit 0, a bit 0, a
jr z, .asm_8caa3 jr z, .top_side
set 1, e set 1, e
.asm_8caa3 .top_side
ld a, [PlayerDirection] ld a, [PlayerDirection]
and $c and %00001100
add e add e
ld e, a ld e, a
ld hl, Unknown_8cab3 ld hl, .Coords
rept 2 rept 2
add hl, de add hl, de
endr endr
@ -271,32 +275,35 @@ endr
ret ret
; 8cab3 (23:4ab3) ; 8cab3 (23:4ab3)
Unknown_8cab3: ; 8cab3 .Coords: ; 8cab3
db $58, $60 dbpixel 11, 12 ; facing down, top left
db $48, $60 dbpixel 9, 12 ; facing down, top right
db $58, $70 dbpixel 11, 14 ; facing down, bottom left
db $48, $70 dbpixel 9, 14 ; facing down, bottom right
db $58, $40
db $48, $40 dbpixel 11, 8 ; facing up, top left
db $58, $50 dbpixel 9, 8 ; facing up, top right
db $48, $50 dbpixel 11, 10 ; facing up, bottom left
db $38, $60 dbpixel 9, 10 ; facing up, bottom right
db $48, $60
db $38, $50 dbpixel 7, 12 ; facing left, top left
db $48, $50 dbpixel 9, 12 ; facing left, top right
db $58, $60 dbpixel 7, 10 ; facing left, bottom left
db $68, $60 dbpixel 9, 10 ; facing left, bottom right
db $58, $50
db $68, $50 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 ; 8cad3
Function8cad3: ; 8cad3 (23:4ad3) Cut_Headbutt_GetPixelFacing: ; 8cad3 (23:4ad3)
ld a, [PlayerDirection] ld a, [PlayerDirection]
and $c and %00001100
srl a srl a
ld e, a ld e, a
ld d, 0 ld d, 0
ld hl, Unknown_8cae5 ld hl, .Coords
add hl, de add hl, de
ld e, [hl] ld e, [hl]
inc hl inc hl
@ -304,9 +311,159 @@ Function8cad3: ; 8cad3 (23:4ad3)
ret ret
; 8cae5 (23:4ae5) ; 8cae5 (23:4ae5)
Unknown_8cae5: ; 8cae5 .Coords: ; 8cae5
db $50, $68 dbpixel 10, 13
db $50, $48 dbpixel 10, 9
db $40, $58 dbpixel 8, 11
db $60, $58 dbpixel 12, 11
; 8caed ; 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

View File

@ -104,7 +104,7 @@ DoPoisonStep:: ; 505da
ld de, SFX_POISON ld de, SFX_POISON
call PlaySFX call PlaySFX
ld b, $2 ld b, $2
predef Functioncbcdd predef LoadPoisonBGPals
call DelayFrame call DelayFrame
ret ret
; 50669 ; 50669

View File

@ -218,10 +218,18 @@ if _NARG == 5
else else
lb \1, \2 * 8, \3 * 8 lb \1, \2 * 8, \3 * 8
endc endc
endm endm
depixel EQUS "ldpixel de," depixel EQUS "ldpixel de,"
dbpixel: MACRO
if _NARG == 4
db \1 * 8 + \3, \2 * 8 + \4
else
db \1 * 8, \2 * 8
endc
endm
bgcoord: MACRO bgcoord: MACRO
IF _NARG == 4 IF _NARG == 4
ld \1, \3 * $20 + \2 + \4 ld \1, \3 * $20 + \2 + \4

174
main.asm
View File

@ -3440,13 +3440,13 @@ FlyFunction: ; ca3b
reloadmappart reloadmappart
callasm HideSprites callasm HideSprites
special UpdateTimePals special UpdateTimePals
callasm Function8caed callasm FlyFromAnim
farscall Script_AbortBugContest farscall Script_AbortBugContest
special WarpToSpawnPoint special WarpToSpawnPoint
callasm DelayLoadingNewSprites callasm DelayLoadingNewSprites
writecode VAR_MOVEMENT, PLAYER_NORMAL writecode VAR_MOVEMENT, PLAYER_NORMAL
newloadmap MAPSETUP_FLY newloadmap MAPSETUP_FLY
callasm Function8cb33 callasm FlyToAnim
special WaitSFX special WaitSFX
callasm .ReturnFromFly callasm .ReturnFromFly
end end
@ -21429,153 +21429,6 @@ Function8c7c9: ; unreferenced
; 8c7d4 ; 8c7d4
INCLUDE "event/field_moves.asm" INCLUDE "event/field_moves.asm"
Function8caed: ; 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, $3
add hl, bc
ld [hl], $84
ld hl, $2
add hl, bc
ld [hl], $16
ld a, $80
ld [wcf64], a
.asm_8cb14
ld a, [wJumptableIndex]
bit 7, a
jr nz, .asm_8cb2e
ld a, $0
ld [wc3b5], a
callab Function8cf7a
call Function8cbc8
call DelayFrame
jr .asm_8cb14
.asm_8cb2e
pop af
ld [VramState], a
ret
; 8cb33
Function8cb33: ; 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, $3
add hl, bc
ld [hl], $84
ld hl, $2
add hl, bc
ld [hl], $18
ld hl, $f
add hl, bc
ld [hl], $58
ld a, $40
ld [wcf64], a
.asm_8cb60
ld a, [wJumptableIndex]
bit 7, a
jr nz, .asm_8cb7a
ld a, $0
ld [wc3b5], a
callab Function8cf7a
call Function8cbc8
call DelayFrame
jr .asm_8cb60
.asm_8cb7a
pop af
ld [VramState], a
call Function8cb82
ret
Function8cb82: ; 8cb82 (23:4b82)
ld hl, Sprites + 2
xor a
ld c, $4
.asm_8cb88
ld [hli], a
rept 3
inc hl
endr
inc a
dec c
jr nz, .asm_8cb88
ld hl, Sprites + $10
ld bc, $90
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, .asm_8cbe0
dec [hl]
cp $40
ret c
and $7
ret nz
ld de, SFX_FLY
call PlaySFX
ret
.asm_8cbe0
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, $3
add hl, bc
ld [hl], $80
ret
INCLUDE "event/magnet_train.asm" INCLUDE "event/magnet_train.asm"
Function8cf4f: ; 8cf4f Function8cf4f: ; 8cf4f
@ -21694,47 +21547,47 @@ INCLUDE "battle/bg_effects.asm"
INCLUDE "battle/anims.asm" INCLUDE "battle/anims.asm"
Functioncbcdd: ; cbcdd LoadPoisonBGPals: ; cbcdd
call Functioncbce5 call .LoadPals
ld a, [hCGB] ld a, [hCGB]
and a and a
ret nz ret nz
ret ret
; cbce5 ; cbce5
Functioncbce5: ; cbce5 .LoadPals: ; cbce5
ld a, [hCGB] ld a, [hCGB]
and a and a
jr nz, .asm_cbd06 jr nz, .cgb
ld a, [TimeOfDayPal] ld a, [TimeOfDayPal]
and $3 and $3
cp $3 cp $3
ld a, $0 ld a, $0
jr z, .asm_cbcf7 jr z, .convert_pals
ld a, $aa ld a, $aa
.asm_cbcf7 .convert_pals
call DmgToCgbBGPals call DmgToCgbBGPals
ld c, 4 ld c, 4
call DelayFrames call DelayFrames
callba _UpdateTimePals callba _UpdateTimePals
ret ret
.asm_cbd06 .cgb
ld a, [rSVBK] ld a, [rSVBK]
push af push af
ld a, $5 ld a, $5
ld [rSVBK], a ld [rSVBK], a
ld hl, BGPals ld hl, BGPals
ld c, $20 ld c, $20
.asm_cbd12 .loop
; RGB 31, 21, 28 ; RGB 31, 21, 28
ld a, $bc ld a, (palred 31 + palgreen 21 + palblue 28) % $100
ld [hli], a ld [hli], a
ld a, $7e ld a, (palred 31 + palgreen 21 + palblue 28) / $100
ld [hli], a ld [hli], a
dec c dec c
jr nz, .asm_cbd12 jr nz, .loop
pop af pop af
ld [rSVBK], a ld [rSVBK], a
ld a, $1 ld a, $1
@ -21939,6 +21792,7 @@ INCLUDE "tilesets/data_6.asm"
SECTION "bank38", ROMX, BANK[$38] SECTION "bank38", ROMX, BANK[$38]
Functione0000: ; e0000 Functione0000: ; e0000
; something to do with Unown printer
push de push de
xor a xor a
call GetSRAMBank call GetSRAMBank

View File

@ -5886,7 +5886,7 @@ Function11ac51: ; 11ac51
call Function11ad6e call Function11ad6e
ld a, $78 ld a, $78
ld [wc3b5], a ld [wc3b5], a
callba Function8cf7a callba DoNextFrameForAllSprites
callba ReloadMapPart callba ReloadMapPart
jr .asm_11ac82 jr .asm_11ac82

View File

@ -1885,7 +1885,9 @@ wd191:: ds 1
wd192:: ds 1 wd192:: ds 1
wd193:: ds 1 wd193:: ds 1
wd194:: dw wd194:: dw
wMetatileStandingY::
wd196:: ds 1 wd196:: ds 1
wMetatileStandingX::
wd197:: ds 1 wd197:: ds 1
wSecondMapHeaderBank:: ds 1 wSecondMapHeaderBank:: ds 1
wTileset:: ds 1 wTileset:: ds 1
@ -2772,7 +2774,7 @@ wBlueCardBalance:: ds 1
wDailyRematchFlags:: ds 4 wDailyRematchFlags:: ds 4
wDailyPhoneItemFlags:: ds 4 wDailyPhoneItemFlags:: ds 4
wDailyPhoneTimeOfDayFlags:: ds 4 wDailyPhoneTimeOfDayFlags:: ds 4
wdc58:: ds 2 wKenjiBreakTimer:: ds 2 ; Kenji
wdc5a:: ds 1 wdc5a:: ds 1
wdc5b:: ds 1 wdc5b:: ds 1
wdc5c:: ds 3 wdc5c:: ds 3