mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
Celebi Event
This commit is contained in:
parent
e83a5bae87
commit
6eac26732a
@ -350,7 +350,7 @@ MAX_OUTDOOR_SPRITES EQU 23
|
||||
|
||||
const_def
|
||||
const SPRITEANIMSTRUCT_INDEX
|
||||
const SPRITEANIMSTRUCT_01
|
||||
const SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
const SPRITEANIMSTRUCT_ANIM_SEQ_ID
|
||||
const SPRITEANIMSTRUCT_TILE_ID
|
||||
const SPRITEANIMSTRUCT_XCOORD
|
||||
|
@ -1,4 +1,4 @@
|
||||
Unknown_8d6e6: ; 8d6e6
|
||||
SpriteAnimFrameData: ; 8d6e6
|
||||
dw Unknown_8d76a ; 00
|
||||
dw Unknown_8d76d ; 01
|
||||
dw Unknown_8d772 ; 02
|
||||
@ -63,11 +63,11 @@ Unknown_8d6e6: ; 8d6e6
|
||||
dw Unknown_8d932 ; 3d
|
||||
dw Unknown_8d93d ; 3e
|
||||
dw Unknown_8d940 ; 3f
|
||||
dw Unknown_8d943 ; 40
|
||||
dw Unknown_8d948 ; 41
|
||||
dw Unknown_8d943 ; 40 celebi on the left
|
||||
dw Unknown_8d948 ; 41 celebi on the right
|
||||
; 8d76a
|
||||
|
||||
Unknown_8d76a: db $00, $20 ; lowest 6 bits of second byte are duration, upper two bits are flags
|
||||
; OAM idx (see SpriteAnimOAMData), flip flags/duration
|
||||
Unknown_8d76a: db $00, $20
|
||||
db -1
|
||||
Unknown_8d76d: db $00, $08
|
||||
db $01, $08
|
||||
@ -106,10 +106,10 @@ Unknown_8d7a6: db $1e, $01
|
||||
db $1f, $01
|
||||
db -2
|
||||
Unknown_8d7ab: db $20, $01
|
||||
db $fd, $01
|
||||
db -3, $01
|
||||
db -2
|
||||
Unknown_8d7b0: db $21, $01
|
||||
db $fd, $01
|
||||
db -3, $01
|
||||
db -2
|
||||
Unknown_8d7b5: db $81, $0c
|
||||
db $82, $01
|
||||
@ -208,17 +208,17 @@ Unknown_8d82f: db $41, $08
|
||||
db $4d, $20
|
||||
db -1
|
||||
db $4e, $03
|
||||
db $fd, $03
|
||||
db -3, $03
|
||||
db -2
|
||||
Unknown_8d861: db $fd, $20
|
||||
Unknown_8d861: db -3, $20
|
||||
db -1
|
||||
Unknown_8d864: db $4f, $20
|
||||
db -1
|
||||
Unknown_8d867: db $50, $02
|
||||
db $51, $10
|
||||
db $fd, $01
|
||||
db -3, $01
|
||||
db $52, $01
|
||||
db $fd, $01
|
||||
db -3, $01
|
||||
db $53, $01
|
||||
db -4
|
||||
Unknown_8d874: db $54, $20
|
||||
@ -338,7 +338,7 @@ Unknown_8d932: db $79, $03
|
||||
db -1
|
||||
Unknown_8d93d: db $7e, $03
|
||||
db -1
|
||||
Unknown_8d940: db $fd, $00
|
||||
Unknown_8d940: db -3, $00
|
||||
db -1
|
||||
Unknown_8d943: db $7f, $08
|
||||
db $80, $08
|
||||
@ -348,7 +348,7 @@ Unknown_8d948: db $7f, $48
|
||||
db -1
|
||||
; 8d94d
|
||||
|
||||
Unknown_8d94d: ; 8d94d
|
||||
SpriteAnimOAMData: ; 8d94d
|
||||
; vtile offset, pointer
|
||||
dbw $00, Unknown_8dd8a ; 00
|
||||
dbw $04, Unknown_8dd8a ; 01
|
||||
|
@ -829,7 +829,7 @@ Function173b3: ; 173b3 (5:73b3)
|
||||
ld [hl], $0
|
||||
pop de
|
||||
ld a, e
|
||||
ld hl, SPRITEANIMSTRUCT_01
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
add [hl]
|
||||
ld [hl], a
|
||||
|
@ -182,7 +182,7 @@ endr
|
||||
ld [wc6d5], a
|
||||
ld a, b
|
||||
ld [wc6d6], a
|
||||
ld hl, SPRITEANIMSTRUCT_01
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld hl, SPRITEANIMSTRUCT_0E
|
||||
@ -298,7 +298,7 @@ Function120c1: ; 120c1 (4:60c1)
|
||||
ld hl, SPRITEANIMSTRUCT_0E
|
||||
add hl, bc
|
||||
add [hl]
|
||||
ld hl, SPRITEANIMSTRUCT_01
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
ld hl, SPRITEANIMSTRUCT_0C
|
||||
|
@ -1627,7 +1627,7 @@ CrystalIntro_InitUnownAnim: ; e51dc (39:51dc)
|
||||
add hl, bc
|
||||
ld [hl], $8
|
||||
ld a, $3c
|
||||
call Function3b3c
|
||||
call ReinitSpriteAnimFrame
|
||||
pop de
|
||||
|
||||
push de
|
||||
@ -1637,7 +1637,7 @@ CrystalIntro_InitUnownAnim: ; e51dc (39:51dc)
|
||||
add hl, bc
|
||||
ld [hl], $18
|
||||
ld a, $3b
|
||||
call Function3b3c
|
||||
call ReinitSpriteAnimFrame
|
||||
pop de
|
||||
|
||||
push de
|
||||
@ -1647,7 +1647,7 @@ CrystalIntro_InitUnownAnim: ; e51dc (39:51dc)
|
||||
add hl, bc
|
||||
ld [hl], $28
|
||||
ld a, $39
|
||||
call Function3b3c
|
||||
call ReinitSpriteAnimFrame
|
||||
pop de
|
||||
|
||||
ld a, SPRITE_ANIM_INDEX_29
|
||||
@ -1656,7 +1656,7 @@ CrystalIntro_InitUnownAnim: ; e51dc (39:51dc)
|
||||
add hl, bc
|
||||
ld [hl], $38
|
||||
ld a, $3a
|
||||
call Function3b3c
|
||||
call ReinitSpriteAnimFrame
|
||||
ret
|
||||
|
||||
CrystalIntro_UnownFade: ; e5223 (39:5223)
|
||||
|
@ -79,7 +79,7 @@ Function8e86c: ; 8e86c (23:686c)
|
||||
.asm_8e890
|
||||
ld a, $4
|
||||
.asm_8e892
|
||||
ld hl, SPRITEANIMSTRUCT_01
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
ret
|
||||
@ -150,7 +150,7 @@ Function8e8d5: ; 8e8d5 (23:68d5)
|
||||
.mail
|
||||
ld a, $2
|
||||
.okay
|
||||
ld hl, SPRITEANIMSTRUCT_01
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
ret
|
||||
|
@ -176,7 +176,7 @@ Function117f5: ; 117f5 (4:57f5)
|
||||
depixel 4, 4, 4, 0
|
||||
ld a, SPRITE_ANIM_INDEX_0A
|
||||
call _InitSpriteAnimStruct
|
||||
ld hl, SPRITEANIMSTRUCT_01
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld [hl], $0
|
||||
hlcoord 5, 2
|
||||
@ -411,7 +411,7 @@ Function1197b: ; 1197b (4:597b)
|
||||
ld [wc6d5], a
|
||||
ld a, b
|
||||
ld [wc6d6], a
|
||||
ld hl, SPRITEANIMSTRUCT_01
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld hl, SPRITEANIMSTRUCT_0E
|
||||
@ -553,7 +553,7 @@ Function11a3b: ; 11a3b (4:5a3b)
|
||||
ld hl, SPRITEANIMSTRUCT_0E
|
||||
add hl, bc
|
||||
add [hl]
|
||||
ld hl, SPRITEANIMSTRUCT_01
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
ld hl, SPRITEANIMSTRUCT_0C
|
||||
|
@ -100,7 +100,7 @@ Function927af: ; 927af (24:67af)
|
||||
call Function92844
|
||||
call Function92b0f
|
||||
xor a
|
||||
ld [wOAMRetentionSize], a
|
||||
ld [wCurrSpriteOAMAddr], a
|
||||
callab DoNextFrameForFirst16Sprites
|
||||
call Function927f8
|
||||
call Function927d3
|
||||
|
@ -36,7 +36,7 @@ endr
|
||||
dw .eighteen
|
||||
dw .nineteen ; finish egg hatching animation
|
||||
dw .twenty ; radio tuning knob
|
||||
dw .twentyone
|
||||
dw .twentyone ; cut grass leaves
|
||||
dw .twentytwo ; flying sprite
|
||||
dw .twentythree ; flying leaves
|
||||
dw .twentyfour
|
||||
@ -370,7 +370,7 @@ endr
|
||||
ret nz
|
||||
ld [hl], $3
|
||||
ld a, $f
|
||||
call Function8d120
|
||||
call _ReinitSpriteAnimFrame
|
||||
ret
|
||||
|
||||
.eleven: ; 8d43e (23:543e)
|
||||
@ -434,7 +434,7 @@ endr
|
||||
|
||||
.sixteen_zero: ; 8d493
|
||||
ld a, $14
|
||||
call Function8d120
|
||||
call _ReinitSpriteAnimFrame
|
||||
|
||||
ld hl, SPRITEANIMSTRUCT_0B
|
||||
add hl, bc
|
||||
@ -786,7 +786,7 @@ endr
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
ld a, $36
|
||||
call Function8d120
|
||||
call _ReinitSpriteAnimFrame
|
||||
ret
|
||||
|
||||
.thirty: ; 8d666 (23:5666)
|
||||
@ -840,7 +840,7 @@ endr
|
||||
cp $40
|
||||
ret nz
|
||||
ld a, $3d
|
||||
call Function8d120
|
||||
call _ReinitSpriteAnimFrame
|
||||
ret
|
||||
|
||||
.thirtyfour: ; 8d6ae (23:56ae)
|
||||
@ -856,7 +856,7 @@ endr
|
||||
ret
|
||||
|
||||
.thirtyone: ; 8d6be (23:56be)
|
||||
callba Function49aa2
|
||||
callba UpdateCelebiPosition
|
||||
ret
|
||||
|
||||
.anonymous_jumptable: ; 8d6c5 (23:56c5)
|
||||
|
@ -24,7 +24,7 @@ PlaySpriteAnimations: ; 8cf69
|
||||
push af
|
||||
|
||||
ld a, 0 * 4
|
||||
ld [wOAMRetentionSize], a
|
||||
ld [wCurrSpriteOAMAddr], a
|
||||
call DoNextFrameForAllSprites
|
||||
|
||||
pop af
|
||||
@ -47,7 +47,7 @@ DoNextFrameForAllSprites: ; 8cf7a
|
||||
push hl
|
||||
push de
|
||||
call DoAnimFrame ; Uses a massive jumptable
|
||||
call Function8d04c
|
||||
call UpdateAnimFrame
|
||||
pop de
|
||||
pop hl
|
||||
jr c, .done
|
||||
@ -58,11 +58,11 @@ DoNextFrameForAllSprites: ; 8cf7a
|
||||
dec e
|
||||
jr nz, .loop
|
||||
|
||||
ld a, [wOAMRetentionSize]
|
||||
ld a, [wCurrSpriteOAMAddr]
|
||||
ld l, a
|
||||
ld h, Sprites / $0100
|
||||
|
||||
.loop2 ; Clear (Sprites + [wOAMRetentionSize] --> SpritesEnd)
|
||||
.loop2 ; Clear (Sprites + [wCurrSpriteOAMAddr] --> SpritesEnd)
|
||||
ld a, l
|
||||
cp SpritesEnd % $100
|
||||
jr nc, .done
|
||||
@ -87,7 +87,7 @@ DoNextFrameForFirst16Sprites: ; 8cfa8 (23:4fa8)
|
||||
push hl
|
||||
push de
|
||||
call DoAnimFrame ; Uses a massive jumptable
|
||||
call Function8d04c
|
||||
call UpdateAnimFrame
|
||||
pop de
|
||||
pop hl
|
||||
jr c, .done
|
||||
@ -98,11 +98,11 @@ DoNextFrameForFirst16Sprites: ; 8cfa8 (23:4fa8)
|
||||
dec e
|
||||
jr nz, .loop
|
||||
|
||||
ld a, [wOAMRetentionSize]
|
||||
ld a, [wCurrSpriteOAMAddr]
|
||||
ld l, a
|
||||
ld h, (Sprites + $40) / $100
|
||||
|
||||
.loop2 ; Clear (Sprites + [wOAMRetentionSize] --> Sprites + $40)
|
||||
.loop2 ; Clear (Sprites + [wCurrSpriteOAMAddr] --> Sprites + $40)
|
||||
ld a, l
|
||||
cp (Sprites + 16 * 4) % $100
|
||||
jr nc, .done
|
||||
@ -149,11 +149,11 @@ InitSpriteAnimStruct:: ; 8cfd6
|
||||
inc [hl]
|
||||
|
||||
.initialized
|
||||
; Get row a of Unknown_8d1c4, copy the pointer into de
|
||||
; Get row a of SpriteAnimSeqData, copy the pointer into de
|
||||
pop af
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, Unknown_8d1c4
|
||||
ld hl, SpriteAnimSeqData
|
||||
rept 3
|
||||
add hl, de
|
||||
endr
|
||||
@ -235,14 +235,14 @@ DeinitializeAllSprites: ; 8d03d (23:503d)
|
||||
ret
|
||||
|
||||
|
||||
Function8d04c: ; 8d04c
|
||||
UpdateAnimFrame: ; 8d04c
|
||||
call InitSpriteAnimBuffer ; init WRAM
|
||||
call Function8d132 ; read from a memory array
|
||||
call GetSpriteAnimFrame ; read from a memory array
|
||||
cp -3
|
||||
jr z, .done
|
||||
cp -4
|
||||
jr z, .delete
|
||||
call Function8d1a2 ; OAM?
|
||||
call GetFrameOAMPointer
|
||||
; add byte to [wCurrAnimVTile]
|
||||
ld a, [wCurrAnimVTile]
|
||||
add [hl]
|
||||
@ -253,7 +253,7 @@ Function8d04c: ; 8d04c
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
push bc
|
||||
ld a, [wOAMRetentionSize]
|
||||
ld a, [wCurrSpriteOAMAddr]
|
||||
ld e, a
|
||||
ld d, Sprites / $100
|
||||
ld a, [hli]
|
||||
@ -297,13 +297,13 @@ Function8d04c: ; 8d04c
|
||||
inc hl
|
||||
inc de
|
||||
; fourth byte: attributes
|
||||
; [de] = Function8d0de([hl])
|
||||
call Function8d0de
|
||||
; [de] = GetSpriteOAMAttr([hl])
|
||||
call GetSpriteOAMAttr
|
||||
ld [de], a
|
||||
inc hl
|
||||
inc de
|
||||
ld a, e
|
||||
ld [wOAMRetentionSize], a
|
||||
ld [wCurrSpriteOAMAddr], a
|
||||
cp SpritesEnd % $100
|
||||
jr nc, .reached_the_end
|
||||
dec c
|
||||
@ -356,7 +356,7 @@ AddOrSubtractX: ; 8d0ce
|
||||
ret
|
||||
; 8d0de
|
||||
|
||||
Function8d0de: ; 8d0de
|
||||
GetSpriteOAMAttr: ; 8d0de
|
||||
ld a, [wCurrSpriteAddSubFlags]
|
||||
ld b, a
|
||||
ld a, [hl]
|
||||
@ -414,8 +414,8 @@ GetSpriteAnimVTile: ; 8d109
|
||||
ret
|
||||
; 8d120
|
||||
|
||||
Function8d120:: ; 8d120
|
||||
ld hl, SPRITEANIMSTRUCT_01
|
||||
_ReinitSpriteAnimFrame:: ; 8d120
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
ld hl, SPRITEANIMSTRUCT_DURATION
|
||||
@ -428,7 +428,7 @@ Function8d120:: ; 8d120
|
||||
; 8d132
|
||||
|
||||
|
||||
Function8d132: ; 8d132
|
||||
GetSpriteAnimFrame: ; 8d132
|
||||
.loop
|
||||
ld hl, SPRITEANIMSTRUCT_DURATION
|
||||
add hl, bc
|
||||
@ -436,7 +436,7 @@ Function8d132: ; 8d132
|
||||
and a
|
||||
jr z, .next_frame ; finished the current sequence
|
||||
dec [hl]
|
||||
call Function8d189 ; load pointer from Unknown_8d6e6
|
||||
call GetSpriteFrameDataPointer ; load pointer from SpriteAnimFrameData
|
||||
ld a, [hli]
|
||||
push af
|
||||
jr .okay
|
||||
@ -445,12 +445,12 @@ Function8d132: ; 8d132
|
||||
ld hl, SPRITEANIMSTRUCT_FRAME
|
||||
add hl, bc
|
||||
inc [hl]
|
||||
call Function8d189 ; load pointer from Unknown_8d6e6
|
||||
call GetSpriteFrameDataPointer ; load pointer from SpriteAnimFrameData
|
||||
ld a, [hli]
|
||||
cp -2
|
||||
jr z, .minus_2
|
||||
jr z, .restart
|
||||
cp -1
|
||||
jr z, .minus_1
|
||||
jr z, .repeat_last
|
||||
|
||||
push af
|
||||
ld a, [hl]
|
||||
@ -471,7 +471,7 @@ Function8d132: ; 8d132
|
||||
pop af
|
||||
ret
|
||||
|
||||
.minus_1
|
||||
.repeat_last
|
||||
xor a
|
||||
ld hl, SPRITEANIMSTRUCT_DURATION
|
||||
add hl, bc
|
||||
@ -484,7 +484,7 @@ rept 2
|
||||
endr
|
||||
jr .loop
|
||||
|
||||
.minus_2
|
||||
.restart
|
||||
xor a
|
||||
ld hl, SPRITEANIMSTRUCT_DURATION
|
||||
add hl, bc
|
||||
@ -497,15 +497,15 @@ endr
|
||||
jr .loop
|
||||
; 8d189
|
||||
|
||||
Function8d189: ; 8d189
|
||||
GetSpriteFrameDataPointer: ; 8d189
|
||||
; Get the data for the current frame for the current animation sequence
|
||||
|
||||
; Unknown_8d6e6[SpriteAnim[SPRITEANIMSTRUCT_01]][SpriteAnim[SPRITEANIMSTRUCT_FRAME]]
|
||||
ld hl, SPRITEANIMSTRUCT_01
|
||||
; SpriteAnimFrameData[SpriteAnim[SPRITEANIMSTRUCT_FRAMESET_ID]][SpriteAnim[SPRITEANIMSTRUCT_FRAME]]
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld e, [hl]
|
||||
ld d, 0
|
||||
ld hl, Unknown_8d6e6
|
||||
ld hl, SpriteAnimFrameData
|
||||
rept 2
|
||||
add hl, de
|
||||
endr
|
||||
@ -521,11 +521,11 @@ endr
|
||||
ret
|
||||
; 8d1a2
|
||||
|
||||
Function8d1a2: ; 8d1a2
|
||||
GetFrameOAMPointer: ; 8d1a2
|
||||
; Load OAM data pointer
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, Unknown_8d94d
|
||||
ld hl, SpriteAnimOAMData
|
||||
rept 3
|
||||
add hl, de
|
||||
endr
|
||||
@ -555,7 +555,7 @@ endr
|
||||
ret
|
||||
; 8d1c4
|
||||
|
||||
Unknown_8d1c4: ; 8d1c4
|
||||
SpriteAnimSeqData: ; 8d1c4
|
||||
; ??, sequence, tile
|
||||
db $01, SPRITE_ANIM_SEQ_01, $00 ; 00
|
||||
db $07, SPRITE_ANIM_SEQ_04, $00 ; 01
|
||||
@ -579,7 +579,7 @@ Unknown_8d1c4: ; 8d1c4
|
||||
db $19, SPRITE_ANIM_SEQ_13, $00 ; 13
|
||||
db $1a, SPRITE_ANIM_SEQ_14, $00 ; 14 radio tuning knob
|
||||
db $1b, SPRITE_ANIM_SEQ_00, $00 ; 15
|
||||
db $1d, SPRITE_ANIM_SEQ_15, $00 ; 16
|
||||
db $1d, SPRITE_ANIM_SEQ_15, $00 ; 16 leaves when cutting down a tree
|
||||
db $1e, SPRITE_ANIM_SEQ_00, $00 ; 17
|
||||
db $1d, SPRITE_ANIM_SEQ_17, $00 ; 18 flying leaves
|
||||
db $1f, SPRITE_ANIM_SEQ_00, $00 ; 19
|
||||
@ -607,12 +607,13 @@ Unknown_8d1c4: ; 8d1c4
|
||||
INCLUDE "engine/sprite_anims.asm" ; DoAnimFrame
|
||||
|
||||
INCLUDE "data/sprite_engine.asm"
|
||||
; Unknown_8d6e6
|
||||
; Unknown_8d94d
|
||||
; SpriteAnimFrameData
|
||||
; SpriteAnimOAMData
|
||||
|
||||
Sprites_Cosine: ; 8e72a
|
||||
add $10
|
||||
Sprites_Sine: ; 8e72c
|
||||
; floor(d * sin(a * pi/32))
|
||||
and $3f
|
||||
cp $20
|
||||
jr nc, .negative
|
||||
@ -669,8 +670,8 @@ AnimateEndOfExpBar: ; 8e79d
|
||||
ld hl, VTiles0 tile $00
|
||||
lb bc, BANK(EndOfExpBarGFX), 1
|
||||
call Request2bpp
|
||||
ld c, $8
|
||||
ld d, $0
|
||||
ld c, 8
|
||||
ld d, 0
|
||||
.loop
|
||||
push bc
|
||||
call .AnimateFrame
|
||||
@ -694,6 +695,7 @@ endr
|
||||
ret z
|
||||
dec c
|
||||
ld a, c
|
||||
; multiply by 8
|
||||
sla a
|
||||
sla a
|
||||
sla a
|
||||
|
206
event/celebi.asm
206
event/celebi.asm
@ -8,17 +8,17 @@ Special_CelebiShrineEvent: ; 4989a
|
||||
depixel 0, 10, 7, 0
|
||||
ld a, SPRITE_ANIM_INDEX_2C
|
||||
call _InitSpriteAnimStruct
|
||||
ld hl, $3
|
||||
ld hl, SPRITEANIMSTRUCT_TILE_ID
|
||||
add hl, bc
|
||||
ld [hl], $84
|
||||
ld hl, $2
|
||||
ld hl, SPRITEANIMSTRUCT_ANIM_SEQ_ID
|
||||
add hl, bc
|
||||
ld [hl], $1f
|
||||
ld hl, $f
|
||||
ld [hl], SPRITE_ANIM_SEQ_1F
|
||||
ld hl, SPRITEANIMSTRUCT_0F
|
||||
add hl, bc
|
||||
ld a, $80
|
||||
ld [hl], a
|
||||
ld a, $a0
|
||||
ld a, 160 ; frame count
|
||||
ld [wcf64], a
|
||||
ld d, $0
|
||||
.loop
|
||||
@ -26,44 +26,47 @@ Special_CelebiShrineEvent: ; 4989a
|
||||
bit 7, a
|
||||
jr nz, .done
|
||||
push bc
|
||||
call Function49bae
|
||||
call GetCelebiSpriteTile
|
||||
inc d
|
||||
push de
|
||||
ld a, $90
|
||||
ld [wOAMRetentionSize], a
|
||||
ld [wCurrSpriteOAMAddr], a
|
||||
callba DoNextFrameForAllSprites
|
||||
call Function49935
|
||||
call CelebiEvent_CountDown
|
||||
ld c, 2
|
||||
call DelayFrames
|
||||
pop de
|
||||
pop bc
|
||||
jr .loop
|
||||
|
||||
|
||||
.done
|
||||
pop af
|
||||
ld [VramState], a
|
||||
call Function498f9
|
||||
call Function49bf3
|
||||
call .RefreshPlayerSprite_ClearAllOthers
|
||||
call CelebiEvent_SetBattleType
|
||||
ret
|
||||
|
||||
; 498f9
|
||||
|
||||
Function498f9: ; 498f9
|
||||
.RefreshPlayerSprite_ClearAllOthers: ; 498f9
|
||||
ld hl, Sprites + 2
|
||||
xor a
|
||||
ld c, $4
|
||||
.loop
|
||||
.OAMloop
|
||||
ld [hli], a
|
||||
rept 3
|
||||
inc hl
|
||||
endr
|
||||
inc a
|
||||
dec c
|
||||
jr nz, .loop
|
||||
jr nz, .OAMloop
|
||||
ld hl, Sprites + $10
|
||||
ld bc, $90
|
||||
xor a
|
||||
call ByteFill
|
||||
ret
|
||||
|
||||
; 49912
|
||||
|
||||
LoadCelebiGFX: ; 49912
|
||||
@ -79,23 +82,27 @@ LoadCelebiGFX: ; 49912
|
||||
xor a
|
||||
ld [wJumptableIndex], a
|
||||
ret
|
||||
|
||||
; 49935
|
||||
|
||||
Function49935: ; 49935
|
||||
CelebiEvent_CountDown: ; 49935
|
||||
ld hl, wcf64
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .asm_4993e
|
||||
jr z, .done
|
||||
dec [hl]
|
||||
ret
|
||||
|
||||
.asm_4993e
|
||||
|
||||
.done
|
||||
ld hl, wJumptableIndex
|
||||
set 7, [hl]
|
||||
ret
|
||||
|
||||
; 49944
|
||||
|
||||
Function49944: ; 49944
|
||||
CelebiEvent_SpawnLeaf: ; 49944
|
||||
; unused
|
||||
ld hl, wcf65
|
||||
ld a, [hl]
|
||||
inc [hl]
|
||||
@ -109,10 +116,11 @@ Function49944: ; 49944
|
||||
ld e, $0
|
||||
ld a, SPRITE_ANIM_INDEX_18 ; fly land
|
||||
call _InitSpriteAnimStruct
|
||||
ld hl, $3
|
||||
ld hl, SPRITEANIMSTRUCT_TILE_ID
|
||||
add hl, bc
|
||||
ld [hl], $80
|
||||
ret
|
||||
|
||||
; 49962
|
||||
|
||||
SpecialCelebiLeafGFX: ; 49962
|
||||
@ -124,105 +132,110 @@ INCBIN "gfx/special/celebi/3.2bpp"
|
||||
INCBIN "gfx/special/celebi/4.2bpp"
|
||||
|
||||
|
||||
Function49aa2: ; 49aa2 (12:5aa2)
|
||||
ld hl, $6
|
||||
UpdateCelebiPosition: ; 49aa2 (12:5aa2)
|
||||
ld hl, SPRITEANIMSTRUCT_XOFFSET
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
push af
|
||||
ld hl, $5
|
||||
ld hl, SPRITEANIMSTRUCT_YCOORD
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
cp $52
|
||||
jp nc, Function49b30
|
||||
ld hl, $5
|
||||
cp 8 * 10 + 2
|
||||
jp nc, .FreezeCelebiPosition
|
||||
ld hl, SPRITEANIMSTRUCT_YCOORD
|
||||
add hl, bc
|
||||
inc [hl]
|
||||
ld hl, $f
|
||||
ld hl, SPRITEANIMSTRUCT_0F
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld d, a
|
||||
cp $3a
|
||||
jr c, .asm_49ac6
|
||||
jr z, .asm_49ac6
|
||||
jr c, .skip
|
||||
jr z, .skip
|
||||
sub $3
|
||||
ld [hl], a
|
||||
.asm_49ac6
|
||||
ld hl, $e
|
||||
.skip
|
||||
ld hl, SPRITEANIMSTRUCT_0E
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
inc [hl]
|
||||
call CelebiEvent_Cosine
|
||||
ld hl, $6
|
||||
ld hl, SPRITEANIMSTRUCT_XOFFSET
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
ld d, a
|
||||
ld hl, $4
|
||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||
add hl, bc
|
||||
add [hl]
|
||||
cp $5c
|
||||
jr nc, .asm_49ae2
|
||||
cp $44
|
||||
jr nc, .asm_49b0d
|
||||
.asm_49ae2
|
||||
cp 8 * 11 + 4
|
||||
jr nc, .ShiftY
|
||||
cp 8 * 8 + 4
|
||||
jr nc, .ReinitSpriteAnimFrame
|
||||
.ShiftY
|
||||
pop af
|
||||
push af
|
||||
cp d
|
||||
jr nc, .asm_49af2
|
||||
ld hl, $4
|
||||
jr nc, .moving_left
|
||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||
add hl, bc
|
||||
add [hl]
|
||||
cp $50
|
||||
jr c, .asm_49b05
|
||||
jr .asm_49afb
|
||||
.asm_49af2
|
||||
ld hl, $4
|
||||
cp 8 * 10
|
||||
jr c, .float_up
|
||||
jr .float_down
|
||||
|
||||
.moving_left
|
||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||
add hl, bc
|
||||
add [hl]
|
||||
cp $50
|
||||
jr nc, .asm_49b05
|
||||
.asm_49afb
|
||||
ld hl, $5
|
||||
cp 8 * 10
|
||||
jr nc, .float_up
|
||||
.float_down
|
||||
ld hl, SPRITEANIMSTRUCT_YCOORD
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
sub $2
|
||||
ld [hl], a
|
||||
jr .asm_49b0d
|
||||
.asm_49b05
|
||||
ld hl, $5
|
||||
jr .ReinitSpriteAnimFrame
|
||||
|
||||
.float_up
|
||||
ld hl, SPRITEANIMSTRUCT_YCOORD
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
add $1
|
||||
ld [hl], a
|
||||
.asm_49b0d
|
||||
.ReinitSpriteAnimFrame
|
||||
pop af
|
||||
ld hl, $4
|
||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||
add hl, bc
|
||||
add [hl]
|
||||
cp $50
|
||||
jr c, .asm_49b26
|
||||
cp $e6
|
||||
jr nc, .asm_49b26
|
||||
ld hl, $1
|
||||
cp 8 * 10
|
||||
jr c, .left
|
||||
cp -(8 * 3 + 2)
|
||||
jr nc, .left
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld a, $41
|
||||
call Function3b3c
|
||||
jr .asm_49b2f
|
||||
.asm_49b26
|
||||
ld hl, $1
|
||||
call ReinitSpriteAnimFrame
|
||||
jr .done
|
||||
|
||||
.left
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld a, $40
|
||||
call Function3b3c
|
||||
.asm_49b2f
|
||||
call ReinitSpriteAnimFrame
|
||||
.done
|
||||
ret
|
||||
|
||||
Function49b30: ; 49b30 (12:5b30)
|
||||
|
||||
.FreezeCelebiPosition: ; 49b30 (12:5b30)
|
||||
pop af
|
||||
ld hl, $1
|
||||
ld hl, SPRITEANIMSTRUCT_FRAMESET_ID
|
||||
add hl, bc
|
||||
ld a, $40
|
||||
call Function3b3c
|
||||
call ReinitSpriteAnimFrame
|
||||
ret
|
||||
|
||||
|
||||
CelebiEvent_Cosine: ; 49b3b (12:5b3b)
|
||||
add $10
|
||||
and $3f
|
||||
@ -231,6 +244,7 @@ CelebiEvent_Cosine: ; 49b3b (12:5b3b)
|
||||
call .SineFunction
|
||||
ld a, h
|
||||
ret
|
||||
|
||||
.asm_49b48
|
||||
and $1f
|
||||
call .SineFunction
|
||||
@ -239,6 +253,7 @@ CelebiEvent_Cosine: ; 49b3b (12:5b3b)
|
||||
inc a
|
||||
ret
|
||||
|
||||
|
||||
.SineFunction: ; 49b52 (12:5b52)
|
||||
ld e, a
|
||||
ld a, d
|
||||
@ -261,13 +276,14 @@ endr
|
||||
and a
|
||||
jr nz, .multiply
|
||||
ret
|
||||
|
||||
; 49b6e (12:5b6e)
|
||||
|
||||
.sinewave: ; 49b6e
|
||||
sine_wave $100
|
||||
; 49bae
|
||||
|
||||
Function49bae: ; 49bae
|
||||
GetCelebiSpriteTile: ; 49bae
|
||||
push hl
|
||||
push bc
|
||||
push de
|
||||
@ -275,66 +291,74 @@ Function49bae: ; 49bae
|
||||
ld d, $3
|
||||
ld e, d
|
||||
cp $0
|
||||
jr z, .asm_49bd0
|
||||
jr z, .Frame1
|
||||
cp d
|
||||
jr z, .asm_49bd4
|
||||
call Function49bed
|
||||
jr z, .Frame2
|
||||
call .AddE
|
||||
cp d
|
||||
jr z, .asm_49bd8
|
||||
call Function49bed
|
||||
jr z, .Frame3
|
||||
call .AddE
|
||||
cp d
|
||||
jr z, .asm_49bdc
|
||||
call Function49bed
|
||||
jr z, .Frame4
|
||||
call .AddE
|
||||
cp d
|
||||
jr c, .asm_49be9
|
||||
jr .asm_49be5
|
||||
jr c, .done
|
||||
jr .restart
|
||||
|
||||
.asm_49bd0
|
||||
|
||||
.Frame1
|
||||
ld a, $84
|
||||
jr .asm_49bde
|
||||
jr .load_tile
|
||||
|
||||
.asm_49bd4
|
||||
|
||||
.Frame2
|
||||
ld a, $88
|
||||
jr .asm_49bde
|
||||
jr .load_tile
|
||||
|
||||
.asm_49bd8
|
||||
|
||||
.Frame3
|
||||
ld a, $8c
|
||||
jr .asm_49bde
|
||||
jr .load_tile
|
||||
|
||||
.asm_49bdc
|
||||
|
||||
.Frame4
|
||||
ld a, $90
|
||||
|
||||
.asm_49bde
|
||||
ld hl, $3
|
||||
.load_tile
|
||||
ld hl, SPRITEANIMSTRUCT_TILE_ID
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
jr .asm_49be9
|
||||
jr .done
|
||||
|
||||
.asm_49be5
|
||||
|
||||
.restart
|
||||
pop de
|
||||
ld d, $ff
|
||||
push de
|
||||
|
||||
.asm_49be9
|
||||
.done
|
||||
pop de
|
||||
pop bc
|
||||
pop hl
|
||||
ret
|
||||
|
||||
; 49bed
|
||||
|
||||
Function49bed: ; 49bed
|
||||
.AddE: ; 49bed
|
||||
push af
|
||||
ld a, d
|
||||
add e
|
||||
ld d, a
|
||||
pop af
|
||||
ret
|
||||
|
||||
; 49bf3
|
||||
|
||||
Function49bf3: ; 49bf3
|
||||
CelebiEvent_SetBattleType: ; 49bf3
|
||||
ld a, BATTLETYPE_CELEBI
|
||||
ld [BattleType], a
|
||||
ret
|
||||
|
||||
; 49bf9
|
||||
|
||||
CheckCaughtCelebi: ; 49bf9
|
||||
@ -345,10 +369,12 @@ CheckCaughtCelebi: ; 49bf9
|
||||
ld [ScriptVar], a
|
||||
jr .done
|
||||
|
||||
|
||||
.false
|
||||
xor a
|
||||
ld [ScriptVar], a
|
||||
|
||||
.done
|
||||
ret
|
||||
|
||||
; 49c0c
|
||||
|
@ -36,7 +36,7 @@ ShakeHeadbuttTree: ; 8c80a
|
||||
add hl, bc
|
||||
ld [hl], $84
|
||||
ld a, 36 * 4
|
||||
ld [wOAMRetentionSize], a
|
||||
ld [wCurrSpriteOAMAddr], a
|
||||
callba DoNextFrameForAllSprites
|
||||
call GetHeadbuttTreeRelativeLocation
|
||||
ld a, $20
|
||||
@ -51,7 +51,7 @@ ShakeHeadbuttTree: ; 8c80a
|
||||
jr z, .done
|
||||
dec [hl]
|
||||
ld a, 36 * 4
|
||||
ld [wOAMRetentionSize], a
|
||||
ld [wCurrSpriteOAMAddr], a
|
||||
callba DoNextFrameForAllSprites
|
||||
call DelayFrame
|
||||
jr .loop
|
||||
@ -125,7 +125,7 @@ OWCutAnimation: ; 8c940
|
||||
bit 7, a
|
||||
jr nz, .finish
|
||||
ld a, 36 * 4
|
||||
ld [wOAMRetentionSize], a
|
||||
ld [wCurrSpriteOAMAddr], a
|
||||
callab DoNextFrameForAllSprites
|
||||
call OWCutJumptable
|
||||
call DelayFrame
|
||||
@ -342,7 +342,7 @@ FlyFromAnim: ; 8caed
|
||||
bit 7, a
|
||||
jr nz, .exit
|
||||
ld a, 0 * 4
|
||||
ld [wOAMRetentionSize], a
|
||||
ld [wCurrSpriteOAMAddr], a
|
||||
callab DoNextFrameForAllSprites
|
||||
call Function8cbc8
|
||||
call DelayFrame
|
||||
@ -380,7 +380,7 @@ FlyToAnim: ; 8cb33
|
||||
bit 7, a
|
||||
jr nz, .exit
|
||||
ld a, 0 * 4
|
||||
ld [wOAMRetentionSize], a
|
||||
ld [wCurrSpriteOAMAddr], a
|
||||
callab DoNextFrameForAllSprites
|
||||
call Function8cbc8
|
||||
call DelayFrame
|
||||
|
6
home.asm
6
home.asm
@ -2036,17 +2036,17 @@ _InitSpriteAnimStruct:: ; 3b2a
|
||||
; 3b3c
|
||||
|
||||
|
||||
Function3b3c:: ; 3b3c
|
||||
ReinitSpriteAnimFrame:: ; 3b3c
|
||||
|
||||
ld [wSpriteAnimIDBuffer], a
|
||||
ld a, [hROMBank]
|
||||
push af
|
||||
|
||||
ld a, BANK(Function8d120)
|
||||
ld a, BANK(_ReinitSpriteAnimFrame)
|
||||
rst Bankswitch
|
||||
ld a, [wSpriteAnimIDBuffer]
|
||||
|
||||
call Function8d120
|
||||
call _ReinitSpriteAnimFrame
|
||||
|
||||
pop af
|
||||
rst Bankswitch
|
||||
|
@ -2478,7 +2478,7 @@ Function11d0f5: ; 11d0f5 (47:50f5)
|
||||
ld d, $0
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
call Function3b3c
|
||||
call ReinitSpriteAnimFrame
|
||||
ld a, [CreditsTimer]
|
||||
sla a
|
||||
ld hl, Unknown_11d23e
|
||||
@ -2487,7 +2487,7 @@ Function11d0f5: ; 11d0f5 (47:50f5)
|
||||
|
||||
Function11d10f: ; 11d10f (47:510f)
|
||||
ld a, $27
|
||||
call Function3b3c
|
||||
call ReinitSpriteAnimFrame
|
||||
ld a, [wcd25]
|
||||
sla a
|
||||
ld hl, Unknown_11d29e
|
||||
@ -2514,7 +2514,7 @@ asm_11d11e: ; 11d11e (47:511e)
|
||||
|
||||
Function11d134: ; 11d134 (47:5134)
|
||||
ld a, $27
|
||||
call Function3b3c
|
||||
call ReinitSpriteAnimFrame
|
||||
ld a, [wcd2a]
|
||||
sla a
|
||||
ld hl, Unknown_11d2b6
|
||||
@ -2523,7 +2523,7 @@ Function11d134: ; 11d134 (47:5134)
|
||||
|
||||
Function11d145: ; 11d145 (47:5145)
|
||||
ld a, $27
|
||||
call Function3b3c
|
||||
call ReinitSpriteAnimFrame
|
||||
ld a, [wcd2c]
|
||||
sla a
|
||||
ld hl, Unknown_11d2ba
|
||||
@ -2532,7 +2532,7 @@ Function11d145: ; 11d145 (47:5145)
|
||||
|
||||
Function11d156: ; 11d156 (47:5156)
|
||||
ld a, $2a
|
||||
call Function3b3c
|
||||
call ReinitSpriteAnimFrame
|
||||
ld a, [wcd4a]
|
||||
sla a
|
||||
sla a
|
||||
@ -2557,7 +2557,7 @@ Function11d175: ; 11d175 (47:5175)
|
||||
.asm_11d180
|
||||
ld a, $26
|
||||
.asm_11d182
|
||||
call Function3b3c
|
||||
call ReinitSpriteAnimFrame
|
||||
ld a, [wcd4d]
|
||||
cp $4
|
||||
jr z, .asm_11d1b1
|
||||
@ -2611,7 +2611,7 @@ Function11d1d7: ; 11d1d7 (47:51d7)
|
||||
|
||||
asm_11d1db: ; 11d1db (47:51db)
|
||||
push de
|
||||
call Function3b3c
|
||||
call ReinitSpriteAnimFrame
|
||||
ld a, [wcd4a]
|
||||
sla a
|
||||
sla a
|
||||
@ -2632,7 +2632,7 @@ asm_11d1db: ; 11d1db (47:51db)
|
||||
|
||||
Function11d1fc: ; 11d1fc (47:51fc)
|
||||
ld a, $26
|
||||
call Function3b3c
|
||||
call ReinitSpriteAnimFrame
|
||||
ld a, $8
|
||||
ld e, a
|
||||
call Function11d2ee
|
||||
|
@ -5885,7 +5885,7 @@ Function11ac51: ; 11ac51
|
||||
call Function11acb7
|
||||
call Function11ad6e
|
||||
ld a, 30 * 4
|
||||
ld [wOAMRetentionSize], a
|
||||
ld [wCurrSpriteOAMAddr], a
|
||||
callba DoNextFrameForAllSprites
|
||||
callba ReloadMapPart
|
||||
jr .asm_11ac82
|
||||
|
10
wram.asm
10
wram.asm
@ -395,7 +395,7 @@ TilePermissions:: ; c2fe
|
||||
|
||||
SECTION "wSpriteAnims", WRAM0 [$c300]
|
||||
; wc300 - wc313 is a 10x2 dictionary.
|
||||
; keys: taken from third column of Unknown_8d1c4
|
||||
; keys: taken from third column of SpriteAnimSeqData
|
||||
; values: VTiles
|
||||
wSpriteAnimDict:: ds 10 * 2
|
||||
ds wSpriteAnimDict - @
|
||||
@ -429,8 +429,8 @@ sprite_anim_struct: MACRO
|
||||
\1YCoord:: ds 1 ; 5
|
||||
\1XOffset:: ds 1 ; 6
|
||||
\1YOffset:: ds 1 ; 7
|
||||
\1FrameTimer:: ds 1 ; 8
|
||||
\1Sprite09:: ds 1 ; 9
|
||||
\1Duration:: ds 1 ; 8
|
||||
\1DurationOffset:: ds 1 ; 9
|
||||
\1FrameIndex:: ds 1 ; a
|
||||
\1Sprite0b:: ds 1
|
||||
\1Sprite0c:: ds 1
|
||||
@ -440,7 +440,7 @@ sprite_anim_struct: MACRO
|
||||
ENDM
|
||||
|
||||
; Field 0: Index
|
||||
; Fields 1-3: Loaded from Unknown_8d1c4
|
||||
; Fields 1-3: Loaded from SpriteAnimSeqData
|
||||
wc314::
|
||||
SpriteAnim1:: sprite_anim_struct SpriteAnim1
|
||||
wc324::
|
||||
@ -466,7 +466,7 @@ wSpriteAnimationStructsEnd::
|
||||
wc3ac:: ds 8 ; c3ac
|
||||
wSpriteAnimCount::
|
||||
wc3b4:: ds 1
|
||||
wOAMRetentionSize:: ds 1
|
||||
wCurrSpriteOAMAddr:: ds 1
|
||||
|
||||
CurIcon:: ; c3b6
|
||||
ds 1
|
||||
|
Loading…
Reference in New Issue
Block a user