summaryrefslogtreecommitdiff
path: root/event
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2015-12-05 15:38:25 -0500
committerPikalaxALT <PikalaxALT@gmail.com>2015-12-05 15:38:25 -0500
commit6eac26732a7d19e08374e7e8e6f122da38b4a395 (patch)
tree191f9348414cbb8e9eab1633501d82bd6c4f7e9e /event
parente83a5bae87d565eae14716470397df211a1fee94 (diff)
Celebi Event
Diffstat (limited to 'event')
-rwxr-xr-xevent/celebi.asm206
-rwxr-xr-xevent/field_moves.asm10
2 files changed, 121 insertions, 95 deletions
diff --git a/event/celebi.asm b/event/celebi.asm
index df31e0776..8388caa20 100755
--- a/event/celebi.asm
+++ b/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
diff --git a/event/field_moves.asm b/event/field_moves.asm
index 398636451..d1635078e 100755
--- a/event/field_moves.asm
+++ b/event/field_moves.asm
@@ -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