Pokecenter heal and HOF field effects
This commit is contained in:
@@ -5,977 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start FldEff_PokecenterHeal
|
||||
FldEff_PokecenterHeal: @ 8083B8C
|
||||
push {r4,lr}
|
||||
bl CalculatePlayerPartyCount
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r0, _08083BC8 @ =Task_PokecenterHeal
|
||||
movs r1, 0xFF
|
||||
bl CreateTask
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
ldr r0, _08083BCC @ =gTasks
|
||||
adds r1, r0
|
||||
strh r4, [r1, 0xA]
|
||||
movs r0, 0x5D
|
||||
strh r0, [r1, 0xC]
|
||||
movs r0, 0x24
|
||||
strh r0, [r1, 0xE]
|
||||
movs r0, 0x80
|
||||
strh r0, [r1, 0x10]
|
||||
movs r0, 0x18
|
||||
strh r0, [r1, 0x12]
|
||||
movs r0, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08083BC8: .4byte Task_PokecenterHeal
|
||||
_08083BCC: .4byte gTasks
|
||||
thumb_func_end FldEff_PokecenterHeal
|
||||
|
||||
thumb_func_start Task_PokecenterHeal
|
||||
Task_PokecenterHeal: @ 8083BD0
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
ldr r0, _08083BF8 @ =gTasks
|
||||
adds r1, r0
|
||||
ldr r2, _08083BFC @ =sPokecenterHealTaskCBTable
|
||||
movs r3, 0x8
|
||||
ldrsh r0, [r1, r3]
|
||||
lsls r0, 2
|
||||
adds r0, r2
|
||||
ldr r2, [r0]
|
||||
adds r0, r1, 0
|
||||
bl _call_via_r2
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08083BF8: .4byte gTasks
|
||||
_08083BFC: .4byte sPokecenterHealTaskCBTable
|
||||
thumb_func_end Task_PokecenterHeal
|
||||
|
||||
thumb_func_start PokecenterHealEffect_0
|
||||
PokecenterHealEffect_0: @ 8083C00
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrh r0, [r4, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x8]
|
||||
movs r1, 0xA
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, 0xC
|
||||
ldrsh r1, [r4, r2]
|
||||
movs r3, 0xE
|
||||
ldrsh r2, [r4, r3]
|
||||
movs r3, 0x1
|
||||
bl CreatePokeballGlowSprite
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
strh r0, [r4, 0x14]
|
||||
movs r1, 0x10
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, 0x12
|
||||
ldrsh r1, [r4, r2]
|
||||
bl PokecenterHealEffectHelper
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
strh r0, [r4, 0x16]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end PokecenterHealEffect_0
|
||||
|
||||
thumb_func_start PokecenterHealEffect_1
|
||||
PokecenterHealEffect_1: @ 8083C3C
|
||||
push {r4,lr}
|
||||
adds r2, r0, 0
|
||||
ldr r3, _08083C74 @ =gSprites
|
||||
movs r1, 0x14
|
||||
ldrsh r0, [r2, r1]
|
||||
lsls r1, r0, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r3
|
||||
movs r4, 0x2E
|
||||
ldrsh r0, [r1, r4]
|
||||
cmp r0, 0x1
|
||||
ble _08083C6E
|
||||
movs r0, 0x16
|
||||
ldrsh r1, [r2, r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r3
|
||||
ldrh r1, [r0, 0x2E]
|
||||
adds r1, 0x1
|
||||
strh r1, [r0, 0x2E]
|
||||
ldrh r0, [r2, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r2, 0x8]
|
||||
_08083C6E:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08083C74: .4byte gSprites
|
||||
thumb_func_end PokecenterHealEffect_1
|
||||
|
||||
thumb_func_start PokecenterHealEffect_2
|
||||
PokecenterHealEffect_2: @ 8083C78
|
||||
push {lr}
|
||||
adds r3, r0, 0
|
||||
ldr r2, _08083C9C @ =gSprites
|
||||
movs r0, 0x14
|
||||
ldrsh r1, [r3, r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r2
|
||||
movs r1, 0x2E
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, 0x4
|
||||
ble _08083C98
|
||||
ldrh r0, [r3, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r3, 0x8]
|
||||
_08083C98:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08083C9C: .4byte gSprites
|
||||
thumb_func_end PokecenterHealEffect_2
|
||||
|
||||
thumb_func_start PokecenterHealEffect_3
|
||||
PokecenterHealEffect_3: @ 8083CA0
|
||||
push {lr}
|
||||
ldr r2, _08083CD8 @ =gSprites
|
||||
movs r3, 0x14
|
||||
ldrsh r1, [r0, r3]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r1, r0, r2
|
||||
movs r2, 0x2E
|
||||
ldrsh r0, [r1, r2]
|
||||
cmp r0, 0x6
|
||||
ble _08083CD2
|
||||
adds r0, r1, 0
|
||||
bl DestroySprite
|
||||
movs r0, 0x19
|
||||
bl FieldEffectActiveListRemove
|
||||
ldr r0, _08083CDC @ =Task_PokecenterHeal
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl DestroyTask
|
||||
_08083CD2:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08083CD8: .4byte gSprites
|
||||
_08083CDC: .4byte Task_PokecenterHeal
|
||||
thumb_func_end PokecenterHealEffect_3
|
||||
|
||||
thumb_func_start FldEff_HallOfFameRecord
|
||||
FldEff_HallOfFameRecord: @ 8083CE0
|
||||
push {r4,lr}
|
||||
bl CalculatePlayerPartyCount
|
||||
adds r4, r0, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r0, _08083D14 @ =Task_HallOfFameRecord
|
||||
movs r1, 0xFF
|
||||
bl CreateTask
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
ldr r0, _08083D18 @ =gTasks
|
||||
adds r1, r0
|
||||
strh r4, [r1, 0xA]
|
||||
movs r0, 0x75
|
||||
strh r0, [r1, 0xC]
|
||||
movs r0, 0x3C
|
||||
strh r0, [r1, 0xE]
|
||||
movs r0, 0
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08083D14: .4byte Task_HallOfFameRecord
|
||||
_08083D18: .4byte gTasks
|
||||
thumb_func_end FldEff_HallOfFameRecord
|
||||
|
||||
thumb_func_start Task_HallOfFameRecord
|
||||
Task_HallOfFameRecord: @ 8083D1C
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, r0, 2
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
ldr r0, _08083D44 @ =gTasks
|
||||
adds r1, r0
|
||||
ldr r2, _08083D48 @ =sHallOfFameRecordTaskCBTable
|
||||
movs r3, 0x8
|
||||
ldrsh r0, [r1, r3]
|
||||
lsls r0, 2
|
||||
adds r0, r2
|
||||
ldr r2, [r0]
|
||||
adds r0, r1, 0
|
||||
bl _call_via_r2
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08083D44: .4byte gTasks
|
||||
_08083D48: .4byte sHallOfFameRecordTaskCBTable
|
||||
thumb_func_end Task_HallOfFameRecord
|
||||
|
||||
thumb_func_start HallOfFameRecordEffect_0
|
||||
HallOfFameRecordEffect_0: @ 8083D4C
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrh r0, [r4, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x8]
|
||||
movs r1, 0xA
|
||||
ldrsh r0, [r4, r1]
|
||||
movs r2, 0xC
|
||||
ldrsh r1, [r4, r2]
|
||||
movs r3, 0xE
|
||||
ldrsh r2, [r4, r3]
|
||||
movs r3, 0
|
||||
bl CreatePokeballGlowSprite
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
strh r0, [r4, 0x14]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end HallOfFameRecordEffect_0
|
||||
|
||||
thumb_func_start HallOfFameRecordEffect_1
|
||||
HallOfFameRecordEffect_1: @ 8083D74
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r2, _08083DA8 @ =gSprites
|
||||
movs r0, 0x14
|
||||
ldrsh r1, [r4, r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r2
|
||||
movs r1, 0x2E
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, 0x1
|
||||
ble _08083DA2
|
||||
movs r0, 0x78
|
||||
movs r1, 0x19
|
||||
bl HallOfFameRecordEffectHelper
|
||||
ldrh r0, [r4, 0x26]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x26]
|
||||
ldrh r0, [r4, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x8]
|
||||
_08083DA2:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08083DA8: .4byte gSprites
|
||||
thumb_func_end HallOfFameRecordEffect_1
|
||||
|
||||
thumb_func_start HallOfFameRecordEffect_2
|
||||
HallOfFameRecordEffect_2: @ 8083DAC
|
||||
push {lr}
|
||||
adds r3, r0, 0
|
||||
ldr r2, _08083DD0 @ =gSprites
|
||||
movs r0, 0x14
|
||||
ldrsh r1, [r3, r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r2
|
||||
movs r1, 0x2E
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, 0x4
|
||||
ble _08083DCC
|
||||
ldrh r0, [r3, 0x8]
|
||||
adds r0, 0x1
|
||||
strh r0, [r3, 0x8]
|
||||
_08083DCC:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08083DD0: .4byte gSprites
|
||||
thumb_func_end HallOfFameRecordEffect_2
|
||||
|
||||
thumb_func_start HallOfFameRecordEffect_3
|
||||
HallOfFameRecordEffect_3: @ 8083DD4
|
||||
push {lr}
|
||||
ldr r2, _08083E0C @ =gSprites
|
||||
movs r3, 0x14
|
||||
ldrsh r1, [r0, r3]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r1, r0, r2
|
||||
movs r2, 0x2E
|
||||
ldrsh r0, [r1, r2]
|
||||
cmp r0, 0x6
|
||||
ble _08083E06
|
||||
adds r0, r1, 0
|
||||
bl DestroySprite
|
||||
movs r0, 0x3E
|
||||
bl FieldEffectActiveListRemove
|
||||
ldr r0, _08083E10 @ =Task_HallOfFameRecord
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl DestroyTask
|
||||
_08083E06:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08083E0C: .4byte gSprites
|
||||
_08083E10: .4byte Task_HallOfFameRecord
|
||||
thumb_func_end HallOfFameRecordEffect_3
|
||||
|
||||
thumb_func_start CreatePokeballGlowSprite
|
||||
CreatePokeballGlowSprite: @ 8083E14
|
||||
push {r4-r6,lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
mov r8, r0
|
||||
adds r4, r1, 0
|
||||
adds r5, r2, 0
|
||||
adds r6, r3, 0
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
mov r8, r0
|
||||
lsls r4, 16
|
||||
lsrs r4, 16
|
||||
lsls r5, 16
|
||||
lsrs r5, 16
|
||||
lsls r6, 16
|
||||
lsrs r6, 16
|
||||
ldr r0, _08083E68 @ =SpriteCB_PokeballGlowEffect
|
||||
bl CreateInvisibleSprite
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, r0, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
ldr r2, _08083E6C @ =gSprites
|
||||
adds r1, r2
|
||||
strh r4, [r1, 0x24]
|
||||
strh r5, [r1, 0x26]
|
||||
adds r3, r1, 0
|
||||
adds r3, 0x43
|
||||
movs r2, 0xFF
|
||||
strb r2, [r3]
|
||||
strh r6, [r1, 0x38]
|
||||
mov r2, r8
|
||||
strh r2, [r1, 0x3A]
|
||||
strh r0, [r1, 0x3C]
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08083E68: .4byte SpriteCB_PokeballGlowEffect
|
||||
_08083E6C: .4byte gSprites
|
||||
thumb_func_end CreatePokeballGlowSprite
|
||||
|
||||
thumb_func_start SpriteCB_PokeballGlowEffect
|
||||
SpriteCB_PokeballGlowEffect: @ 8083E70
|
||||
push {lr}
|
||||
ldr r2, _08083E88 @ =sPokeballGlowSpriteCBTable
|
||||
movs r3, 0x2E
|
||||
ldrsh r1, [r0, r3]
|
||||
lsls r1, 2
|
||||
adds r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08083E88: .4byte sPokeballGlowSpriteCBTable
|
||||
thumb_func_end SpriteCB_PokeballGlowEffect
|
||||
|
||||
thumb_func_start PokeballGlowEffect_0
|
||||
PokeballGlowEffect_0: @ 8083E8C
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrh r1, [r4, 0x30]
|
||||
movs r2, 0x30
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, 0
|
||||
beq _08083EA4
|
||||
subs r0, r1, 0x1
|
||||
strh r0, [r4, 0x30]
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bne _08083F00
|
||||
_08083EA4:
|
||||
movs r0, 0x19
|
||||
strh r0, [r4, 0x30]
|
||||
ldr r0, _08083F18 @ =gUnknown_83CBF88
|
||||
ldr r1, _08083F1C @ =gUnknown_83CC010
|
||||
movs r2, 0x32
|
||||
ldrsh r3, [r4, r2]
|
||||
lsls r3, 2
|
||||
adds r3, r1
|
||||
ldrh r1, [r4, 0x24]
|
||||
ldrh r2, [r3]
|
||||
adds r1, r2
|
||||
lsls r1, 16
|
||||
asrs r1, 16
|
||||
ldrh r2, [r4, 0x26]
|
||||
ldrh r3, [r3, 0x2]
|
||||
adds r2, r3
|
||||
lsls r2, 16
|
||||
asrs r2, 16
|
||||
movs r3, 0xFF
|
||||
bl CreateSpriteAtEnd
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r2, _08083F20 @ =gSprites
|
||||
lsls r1, r0, 4
|
||||
adds r1, r0
|
||||
lsls r1, 2
|
||||
adds r1, r2
|
||||
ldrb r2, [r1, 0x5]
|
||||
movs r0, 0xD
|
||||
negs r0, r0
|
||||
ands r0, r2
|
||||
movs r2, 0x8
|
||||
orrs r0, r2
|
||||
strb r0, [r1, 0x5]
|
||||
ldrh r0, [r4, 0x3C]
|
||||
strh r0, [r1, 0x2E]
|
||||
ldrh r0, [r4, 0x32]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x32]
|
||||
ldrh r0, [r4, 0x3A]
|
||||
subs r0, 0x1
|
||||
strh r0, [r4, 0x3A]
|
||||
movs r0, 0x17
|
||||
bl PlaySE
|
||||
_08083F00:
|
||||
movs r1, 0x3A
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0
|
||||
bne _08083F12
|
||||
movs r0, 0x20
|
||||
strh r0, [r4, 0x30]
|
||||
ldrh r0, [r4, 0x2E]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2E]
|
||||
_08083F12:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08083F18: .4byte gUnknown_83CBF88
|
||||
_08083F1C: .4byte gUnknown_83CC010
|
||||
_08083F20: .4byte gSprites
|
||||
thumb_func_end PokeballGlowEffect_0
|
||||
|
||||
thumb_func_start PokeballGlowEffect_1
|
||||
PokeballGlowEffect_1: @ 8083F24
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
ldrh r0, [r1, 0x30]
|
||||
subs r0, 0x1
|
||||
strh r0, [r1, 0x30]
|
||||
lsls r0, 16
|
||||
asrs r2, r0, 16
|
||||
cmp r2, 0
|
||||
bne _08083F54
|
||||
ldrh r0, [r1, 0x2E]
|
||||
adds r0, 0x1
|
||||
strh r0, [r1, 0x2E]
|
||||
movs r0, 0x8
|
||||
strh r0, [r1, 0x30]
|
||||
strh r2, [r1, 0x32]
|
||||
strh r2, [r1, 0x34]
|
||||
movs r2, 0x38
|
||||
ldrsh r0, [r1, r2]
|
||||
cmp r0, 0
|
||||
beq _08083F54
|
||||
movs r0, 0x80
|
||||
lsls r0, 1
|
||||
bl PlayFanfare
|
||||
_08083F54:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end PokeballGlowEffect_1
|
||||
|
||||
thumb_func_start PokeballGlowEffect_2
|
||||
PokeballGlowEffect_2: @ 8083F58
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
adds r7, r0, 0
|
||||
ldrh r0, [r7, 0x30]
|
||||
subs r0, 0x1
|
||||
strh r0, [r7, 0x30]
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bne _08083F88
|
||||
movs r0, 0x8
|
||||
strh r0, [r7, 0x30]
|
||||
ldrh r0, [r7, 0x32]
|
||||
adds r0, 0x1
|
||||
movs r1, 0x3
|
||||
ands r0, r1
|
||||
strh r0, [r7, 0x32]
|
||||
cmp r0, 0
|
||||
bne _08083F88
|
||||
ldrh r0, [r7, 0x34]
|
||||
adds r0, 0x1
|
||||
strh r0, [r7, 0x34]
|
||||
_08083F88:
|
||||
ldrh r4, [r7, 0x32]
|
||||
adds r4, 0x3
|
||||
movs r0, 0x3
|
||||
mov r8, r0
|
||||
mov r1, r8
|
||||
ands r4, r1
|
||||
ldr r3, _08084080 @ =0x00001007
|
||||
mov r10, r3
|
||||
mov r0, r10
|
||||
bl IndexOfSpritePaletteTag
|
||||
lsls r0, 24
|
||||
lsrs r0, 4
|
||||
movs r1, 0x84
|
||||
lsls r1, 17
|
||||
adds r0, r1
|
||||
lsrs r0, 16
|
||||
ldr r6, _08084084 @ =gUnknown_83CC028
|
||||
adds r1, r4, r6
|
||||
ldrb r1, [r1]
|
||||
ldr r5, _08084088 @ =gUnknown_83CC02C
|
||||
adds r2, r4, r5
|
||||
ldrb r2, [r2]
|
||||
ldr r3, _0808408C @ =gUnknown_83CC030
|
||||
mov r9, r3
|
||||
add r4, r9
|
||||
ldrb r3, [r4]
|
||||
bl MultiplyInvertedPaletteRGBComponents
|
||||
ldrh r4, [r7, 0x32]
|
||||
adds r4, 0x2
|
||||
mov r0, r8
|
||||
ands r4, r0
|
||||
mov r0, r10
|
||||
bl IndexOfSpritePaletteTag
|
||||
lsls r0, 24
|
||||
lsrs r0, 4
|
||||
movs r1, 0x83
|
||||
lsls r1, 17
|
||||
adds r0, r1
|
||||
lsrs r0, 16
|
||||
adds r1, r4, r6
|
||||
ldrb r1, [r1]
|
||||
adds r2, r4, r5
|
||||
ldrb r2, [r2]
|
||||
add r4, r9
|
||||
ldrb r3, [r4]
|
||||
bl MultiplyInvertedPaletteRGBComponents
|
||||
ldrh r4, [r7, 0x32]
|
||||
adds r4, 0x1
|
||||
mov r3, r8
|
||||
ands r4, r3
|
||||
mov r0, r10
|
||||
bl IndexOfSpritePaletteTag
|
||||
lsls r0, 24
|
||||
lsrs r0, 4
|
||||
movs r1, 0x81
|
||||
lsls r1, 17
|
||||
adds r0, r1
|
||||
lsrs r0, 16
|
||||
adds r1, r4, r6
|
||||
ldrb r1, [r1]
|
||||
adds r2, r4, r5
|
||||
ldrb r2, [r2]
|
||||
add r4, r9
|
||||
ldrb r3, [r4]
|
||||
bl MultiplyInvertedPaletteRGBComponents
|
||||
ldrh r4, [r7, 0x32]
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
mov r0, r10
|
||||
bl IndexOfSpritePaletteTag
|
||||
lsls r0, 24
|
||||
lsrs r0, 4
|
||||
ldr r3, _08084090 @ =0x01050000
|
||||
adds r0, r3
|
||||
lsrs r0, 16
|
||||
adds r6, r4, r6
|
||||
ldrb r6, [r6]
|
||||
adds r5, r4, r5
|
||||
ldrb r5, [r5]
|
||||
add r4, r9
|
||||
ldrb r4, [r4]
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl MultiplyInvertedPaletteRGBComponents
|
||||
mov r0, r10
|
||||
bl IndexOfSpritePaletteTag
|
||||
lsls r0, 24
|
||||
lsrs r0, 4
|
||||
ldr r1, _08084094 @ =0x01030000
|
||||
adds r0, r1
|
||||
lsrs r0, 16
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl MultiplyInvertedPaletteRGBComponents
|
||||
movs r3, 0x34
|
||||
ldrsh r0, [r7, r3]
|
||||
cmp r0, 0x2
|
||||
ble _08084072
|
||||
ldrh r0, [r7, 0x2E]
|
||||
adds r0, 0x1
|
||||
movs r1, 0
|
||||
strh r0, [r7, 0x2E]
|
||||
movs r0, 0x8
|
||||
strh r0, [r7, 0x30]
|
||||
strh r1, [r7, 0x32]
|
||||
_08084072:
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08084080: .4byte 0x00001007
|
||||
_08084084: .4byte gUnknown_83CC028
|
||||
_08084088: .4byte gUnknown_83CC02C
|
||||
_0808408C: .4byte gUnknown_83CC030
|
||||
_08084090: .4byte 0x01050000
|
||||
_08084094: .4byte 0x01030000
|
||||
thumb_func_end PokeballGlowEffect_2
|
||||
|
||||
thumb_func_start PokeballGlowEffect_3
|
||||
PokeballGlowEffect_3: @ 8084098
|
||||
push {r4-r6,lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
adds r2, r0, 0
|
||||
ldrh r0, [r2, 0x30]
|
||||
subs r0, 0x1
|
||||
strh r0, [r2, 0x30]
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bne _080840C8
|
||||
movs r0, 0x8
|
||||
strh r0, [r2, 0x30]
|
||||
ldrh r0, [r2, 0x32]
|
||||
adds r0, 0x1
|
||||
movs r1, 0x3
|
||||
ands r0, r1
|
||||
strh r0, [r2, 0x32]
|
||||
cmp r0, 0x3
|
||||
bne _080840C8
|
||||
ldrh r0, [r2, 0x2E]
|
||||
adds r0, 0x1
|
||||
strh r0, [r2, 0x2E]
|
||||
movs r0, 0x1E
|
||||
strh r0, [r2, 0x30]
|
||||
_080840C8:
|
||||
ldrh r4, [r2, 0x32]
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r0, _08084174 @ =0x00001007
|
||||
mov r8, r0
|
||||
bl IndexOfSpritePaletteTag
|
||||
lsls r0, 24
|
||||
lsrs r0, 4
|
||||
movs r1, 0x84
|
||||
lsls r1, 17
|
||||
adds r0, r1
|
||||
lsrs r0, 16
|
||||
ldr r1, _08084178 @ =gUnknown_83CC028
|
||||
adds r1, r4, r1
|
||||
ldrb r6, [r1]
|
||||
ldr r1, _0808417C @ =gUnknown_83CC02C
|
||||
adds r1, r4, r1
|
||||
ldrb r5, [r1]
|
||||
ldr r1, _08084180 @ =gUnknown_83CC030
|
||||
adds r4, r1
|
||||
ldrb r4, [r4]
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl MultiplyInvertedPaletteRGBComponents
|
||||
mov r0, r8
|
||||
bl IndexOfSpritePaletteTag
|
||||
lsls r0, 24
|
||||
lsrs r0, 4
|
||||
movs r1, 0x83
|
||||
lsls r1, 17
|
||||
adds r0, r1
|
||||
lsrs r0, 16
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl MultiplyInvertedPaletteRGBComponents
|
||||
mov r0, r8
|
||||
bl IndexOfSpritePaletteTag
|
||||
lsls r0, 24
|
||||
lsrs r0, 4
|
||||
movs r1, 0x81
|
||||
lsls r1, 17
|
||||
adds r0, r1
|
||||
lsrs r0, 16
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl MultiplyInvertedPaletteRGBComponents
|
||||
mov r0, r8
|
||||
bl IndexOfSpritePaletteTag
|
||||
lsls r0, 24
|
||||
lsrs r0, 4
|
||||
ldr r1, _08084184 @ =0x01050000
|
||||
adds r0, r1
|
||||
lsrs r0, 16
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl MultiplyInvertedPaletteRGBComponents
|
||||
mov r0, r8
|
||||
bl IndexOfSpritePaletteTag
|
||||
lsls r0, 24
|
||||
lsrs r0, 4
|
||||
ldr r1, _08084188 @ =0x01030000
|
||||
adds r0, r1
|
||||
lsrs r0, 16
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl MultiplyInvertedPaletteRGBComponents
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08084174: .4byte 0x00001007
|
||||
_08084178: .4byte gUnknown_83CC028
|
||||
_0808417C: .4byte gUnknown_83CC02C
|
||||
_08084180: .4byte gUnknown_83CC030
|
||||
_08084184: .4byte 0x01050000
|
||||
_08084188: .4byte 0x01030000
|
||||
thumb_func_end PokeballGlowEffect_3
|
||||
|
||||
thumb_func_start PokeballGlowEffect_4
|
||||
PokeballGlowEffect_4: @ 808418C
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
ldrh r0, [r1, 0x30]
|
||||
subs r0, 0x1
|
||||
strh r0, [r1, 0x30]
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bne _080841A2
|
||||
ldrh r0, [r1, 0x2E]
|
||||
adds r0, 0x1
|
||||
strh r0, [r1, 0x2E]
|
||||
_080841A2:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end PokeballGlowEffect_4
|
||||
|
||||
thumb_func_start PokeballGlowEffect_5
|
||||
PokeballGlowEffect_5: @ 80841A8
|
||||
ldrh r1, [r0, 0x2E]
|
||||
adds r1, 0x1
|
||||
strh r1, [r0, 0x2E]
|
||||
bx lr
|
||||
thumb_func_end PokeballGlowEffect_5
|
||||
|
||||
thumb_func_start PokeballGlowEffect_6
|
||||
PokeballGlowEffect_6: @ 80841B0
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
movs r1, 0x38
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0
|
||||
beq _080841C6
|
||||
bl IsFanfareTaskInactive
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080841CC
|
||||
_080841C6:
|
||||
ldrh r0, [r4, 0x2E]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2E]
|
||||
_080841CC:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end PokeballGlowEffect_6
|
||||
|
||||
thumb_func_start PokeballGlowEffect_7
|
||||
PokeballGlowEffect_7: @ 80841D4
|
||||
bx lr
|
||||
thumb_func_end PokeballGlowEffect_7
|
||||
|
||||
thumb_func_start SpriteCB_PokeballGlow
|
||||
SpriteCB_PokeballGlow: @ 80841D8
|
||||
push {lr}
|
||||
adds r3, r0, 0
|
||||
ldr r2, _080841FC @ =gSprites
|
||||
movs r0, 0x2E
|
||||
ldrsh r1, [r3, r0]
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r2
|
||||
movs r1, 0x2E
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, 0x4
|
||||
ble _080841F8
|
||||
adds r0, r3, 0
|
||||
bl FieldEffectFreeGraphicsResources
|
||||
_080841F8:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080841FC: .4byte gSprites
|
||||
thumb_func_end SpriteCB_PokeballGlow
|
||||
|
||||
thumb_func_start PokecenterHealEffectHelper
|
||||
PokecenterHealEffectHelper: @ 8084200
|
||||
push {lr}
|
||||
adds r3, r0, 0
|
||||
adds r2, r1, 0
|
||||
ldr r0, _08084244 @ =gUnknown_83CBFA0
|
||||
lsls r3, 16
|
||||
asrs r3, 16
|
||||
lsls r2, 16
|
||||
asrs r2, 16
|
||||
adds r1, r3, 0
|
||||
movs r3, 0
|
||||
bl CreateSpriteAtEnd
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r2, r0, 4
|
||||
adds r2, r0
|
||||
lsls r2, 2
|
||||
ldr r1, _08084248 @ =gSprites
|
||||
adds r2, r1
|
||||
ldrb r3, [r2, 0x5]
|
||||
movs r1, 0xD
|
||||
negs r1, r1
|
||||
ands r1, r3
|
||||
movs r3, 0x8
|
||||
orrs r1, r3
|
||||
strb r1, [r2, 0x5]
|
||||
adds r2, 0x3E
|
||||
ldrb r1, [r2]
|
||||
movs r3, 0x4
|
||||
orrs r1, r3
|
||||
strb r1, [r2]
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08084244: .4byte gUnknown_83CBFA0
|
||||
_08084248: .4byte gSprites
|
||||
thumb_func_end PokecenterHealEffectHelper
|
||||
|
||||
thumb_func_start SpriteCB_PokecenterMonitor
|
||||
SpriteCB_PokecenterMonitor: @ 808424C
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
movs r1, 0x2E
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0
|
||||
beq _08084270
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0x2E]
|
||||
adds r2, r4, 0
|
||||
adds r2, 0x3E
|
||||
ldrb r1, [r2]
|
||||
subs r0, 0x5
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
bl StartSpriteAnim
|
||||
_08084270:
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x3F
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08084284
|
||||
adds r0, r4, 0
|
||||
bl FieldEffectFreeGraphicsResources
|
||||
_08084284:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end SpriteCB_PokecenterMonitor
|
||||
|
||||
thumb_func_start HallOfFameRecordEffectHelper
|
||||
HallOfFameRecordEffectHelper: @ 808428C
|
||||
push {lr}
|
||||
adds r3, r0, 0
|
||||
adds r2, r1, 0
|
||||
ldr r0, _080842A8 @ =gUnknown_83CBFB8
|
||||
lsls r3, 16
|
||||
asrs r3, 16
|
||||
lsls r2, 16
|
||||
asrs r2, 16
|
||||
adds r1, r3, 0
|
||||
movs r3, 0
|
||||
bl CreateSpriteAtEnd
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080842A8: .4byte gUnknown_83CBFB8
|
||||
thumb_func_end HallOfFameRecordEffectHelper
|
||||
|
||||
thumb_func_start SpriteCB_HallOfFameMonitor
|
||||
SpriteCB_HallOfFameMonitor: @ 80842AC
|
||||
push {lr}
|
||||
adds r2, r0, 0
|
||||
adds r0, 0x3F
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080842C2
|
||||
adds r0, r2, 0
|
||||
bl FieldEffectFreeGraphicsResources
|
||||
_080842C2:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end SpriteCB_HallOfFameMonitor
|
||||
|
||||
thumb_func_start ReturnToFieldFromFlyMapSelect
|
||||
ReturnToFieldFromFlyMapSelect: @ 80842C8
|
||||
push {lr}
|
||||
|
||||
@@ -6,136 +6,6 @@
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnknown_83CBE9C:: @ 83CBE9C sprite_palette
|
||||
obj_pal gUnknown_83CAFB0, 4103
|
||||
|
||||
gUnknown_83CBEA4:: @ 83CBEA4 sprite_palette
|
||||
obj_pal gUnknown_83CB3D0, 4112
|
||||
|
||||
gOamData_83CBEAC:: @ 83CBEAC oam_data
|
||||
.4byte 0x80004000, 0x00000000
|
||||
|
||||
gUnknown_83CBEB4:: @ 83CBEB4 sprite_frames
|
||||
obj_frame_tiles gUnknown_83CAF90, 0x0020
|
||||
|
||||
gUnknown_83CBEBC:: @ 83CBEBC sprite_frames
|
||||
obj_frame_tiles gUnknown_83CAFD0 + 0x000, 0x0100
|
||||
obj_frame_tiles gUnknown_83CAFD0 + 0x100, 0x0100
|
||||
obj_frame_tiles gUnknown_83CAFD0 + 0x200, 0x0100
|
||||
obj_frame_tiles gUnknown_83CAFD0 + 0x300, 0x0100
|
||||
|
||||
gUnknown_83CBEDC:: @ 83CBEDC sprite_frames
|
||||
obj_frame_tiles gUnknown_83CB3F0 + 0x000, 0x0080
|
||||
obj_frame_tiles gUnknown_83CB3F0 + 0x080, 0x0080
|
||||
obj_frame_tiles gUnknown_83CB3F0 + 0x100, 0x0080
|
||||
obj_frame_tiles gUnknown_83CB3F0 + 0x180, 0x0080
|
||||
|
||||
gUnknown_83CBEFC:: @ 83CBEFC unknown
|
||||
.byte 0xf4, 0xf8, 0x01, 0x80
|
||||
.byte 0x04, 0xf8, 0x20, 0x80
|
||||
.byte 0xf4, 0x00, 0x31, 0x80
|
||||
.byte 0x04, 0x00, 0x50, 0x80
|
||||
.byte 0x04, 0x00, 0x00, 0x00
|
||||
|
||||
gUnknown_83CBF10:: @ 83CBF10 dataptr
|
||||
.4byte gUnknown_83CBEFC
|
||||
|
||||
gUnknown_83CBF14:: @ 83CBF14 unknown
|
||||
.byte 0xe0, 0xf8, 0x05, 0x80
|
||||
.byte 0x00, 0xf8, 0x45, 0x80
|
||||
.byte 0xe0, 0x00, 0x85, 0x80
|
||||
.byte 0x00, 0x00, 0xc5, 0x80
|
||||
.byte 0x04, 0x00, 0x00, 0x00
|
||||
|
||||
gUnknown_83CBF28:: @ 83CBE28 dataptr
|
||||
.4byte gUnknown_83CBF14
|
||||
|
||||
gUnknown_83CBF2C:: @ 83CBF2C animcmd
|
||||
obj_image_anim_frame 0x0000, 1
|
||||
obj_image_anim_jump 0
|
||||
|
||||
gUnknown_83CBF34:: @ 83CBF34 animcmd
|
||||
obj_image_anim_frame 0x0001, 5
|
||||
obj_image_anim_frame 0x0002, 5
|
||||
obj_image_anim_frame 0x0003, 7
|
||||
obj_image_anim_frame 0x0002, 5
|
||||
obj_image_anim_frame 0x0001, 5
|
||||
obj_image_anim_frame 0x0000, 5
|
||||
obj_image_anim_loop 3
|
||||
obj_image_anim_end
|
||||
|
||||
.align 2
|
||||
gUnknown_83CBF54:: @ 83CBF54 dataptr
|
||||
.4byte gUnknown_83CBF2C
|
||||
.4byte gUnknown_83CBF34
|
||||
|
||||
gUnknown_83CBF5C:: @ 83CBF5C animcmd
|
||||
obj_image_anim_frame 0x0003, 8
|
||||
obj_image_anim_frame 0x0002, 8
|
||||
obj_image_anim_frame 0x0001, 8
|
||||
obj_image_anim_frame 0x0000, 8
|
||||
obj_image_anim_frame 0x0001, 8
|
||||
obj_image_anim_frame 0x0002, 8
|
||||
obj_image_anim_loop 2
|
||||
obj_image_anim_frame 0x0001, 8
|
||||
obj_image_anim_frame 0x0000, 8
|
||||
obj_image_anim_end
|
||||
|
||||
.align 2
|
||||
gUnknown_83CBF84:: @ 83CBF84 dataptr
|
||||
.4byte gUnknown_83CBF5C
|
||||
|
||||
gUnknown_83CBF88:: @ 83CBF88 spr_template
|
||||
spr_template 65535, 4103, gOamData_83CBE58, gUnknown_83CBF54, gUnknown_83CBEB4, gDummySpriteAffineAnimTable, SpriteCB_PokeballGlow
|
||||
|
||||
gUnknown_83CBFA0:: @ 83CBFA0 spr_template
|
||||
spr_template 65535, 4103, gOamData_83CBEAC, gUnknown_83CBF54, gUnknown_83CBEBC, gDummySpriteAffineAnimTable, SpriteCB_PokecenterMonitor
|
||||
|
||||
gUnknown_83CBFB8:: @ 83CBFB8 spr_template
|
||||
spr_template 65535, 4112, gOamData_83CBE60, gUnknown_83CBF84, gUnknown_83CBEDC, gDummySpriteAffineAnimTable, SpriteCB_HallOfFameMonitor
|
||||
|
||||
.align 2
|
||||
sPokecenterHealTaskCBTable:: @ 83CBFD0 dataptr
|
||||
.4byte PokecenterHealEffect_0
|
||||
.4byte PokecenterHealEffect_1
|
||||
.4byte PokecenterHealEffect_2
|
||||
.4byte PokecenterHealEffect_3
|
||||
|
||||
.align 2
|
||||
sHallOfFameRecordTaskCBTable:: @ 83CBFE0 dataptr
|
||||
.4byte HallOfFameRecordEffect_0
|
||||
.4byte HallOfFameRecordEffect_1
|
||||
.4byte HallOfFameRecordEffect_2
|
||||
.4byte HallOfFameRecordEffect_3
|
||||
|
||||
.align 2
|
||||
sPokeballGlowSpriteCBTable:: @ 83CBFF0 dataptr
|
||||
.4byte PokeballGlowEffect_0
|
||||
.4byte PokeballGlowEffect_1
|
||||
.4byte PokeballGlowEffect_2
|
||||
.4byte PokeballGlowEffect_3
|
||||
.4byte PokeballGlowEffect_4
|
||||
.4byte PokeballGlowEffect_5
|
||||
.4byte PokeballGlowEffect_6
|
||||
.4byte PokeballGlowEffect_7
|
||||
|
||||
gUnknown_83CC010:: @ 83CC010 data16
|
||||
.2byte 0, 0
|
||||
.2byte 6, 0
|
||||
.2byte 0, 4
|
||||
.2byte 6, 4
|
||||
.2byte 0, 8
|
||||
.2byte 6, 8
|
||||
|
||||
gUnknown_83CC028:: @ 83CC028 data8
|
||||
.byte 0x10, 0x0c, 0x08, 0x00
|
||||
|
||||
gUnknown_83CC02C:: @ 83CC02C data8
|
||||
.byte 0x10, 0x0c, 0x08, 0x00
|
||||
|
||||
gUnknown_83CC030:: @ 83CC030 data8
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
sFallWarpEffectCBPtrs:: @ 83CC034 dataptr
|
||||
.4byte FallWarpEffect_1
|
||||
|
||||
@@ -7,8 +7,11 @@
|
||||
#include "field_weather.h"
|
||||
#include "overworld.h"
|
||||
#include "quest_log.h"
|
||||
#include "task.h"
|
||||
#include "trainer_pokemon_sprites.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
#define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))}
|
||||
#define FIELD_EFFECT_COUNT 32
|
||||
|
||||
static u8 sFieldEffectActiveList[FIELD_EFFECT_COUNT];
|
||||
@@ -28,6 +31,10 @@ void FieldEffectScript_LoadPal(const u8 **script);
|
||||
void FieldEffectScript_CallNative(const u8 **script, u32 *result);
|
||||
void FieldEffectFreeTilesIfUnused(u16 tilesTag);
|
||||
void FieldEffectFreePaletteIfUnused(u8 paletteNum);
|
||||
void Task_PokecenterHeal(u8 taskId);
|
||||
void SpriteCB_PokeballGlow(struct Sprite * sprite);
|
||||
void SpriteCB_PokecenterMonitor(struct Sprite * sprite);
|
||||
void SpriteCB_HallOfFameMonitor(struct Sprite * sprite);
|
||||
|
||||
const u16 sNewGameOakObjectSpriteTiles[] = INCBIN_U16("graphics/field_effects/unk_83CA770.4bpp");
|
||||
const u16 sNewGameOakObjectPals[] = INCBIN_U16("graphics/field_effects/unk_83CAF70.gbapal");
|
||||
@@ -130,6 +137,187 @@ const struct SpriteTemplate gNewGameOakObjectTemplate = {
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
const struct SpritePalette gUnknown_83CBE9C = {
|
||||
gUnknown_83CAFB0, 4103
|
||||
};
|
||||
|
||||
const struct SpritePalette gUnknown_83CBEA4 = {
|
||||
gUnknown_83CB3D0, 4112
|
||||
};
|
||||
|
||||
const struct OamData gOamData_83CBEAC = {
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.mosaic = FALSE,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(32x16),
|
||||
.x = 0,
|
||||
.matrixNum = 0,
|
||||
.size = SPRITE_SIZE(32x16),
|
||||
.tileNum = 0x000,
|
||||
.priority = 0,
|
||||
.paletteNum = 0x0,
|
||||
.affineParam = 0
|
||||
};
|
||||
|
||||
const struct SpriteFrameImage gUnknown_83CBEB4[] = {
|
||||
{gUnknown_83CAF90, 0x20}
|
||||
};
|
||||
|
||||
const struct SpriteFrameImage gUnknown_83CBEBC[] = {
|
||||
{gUnknown_83CAFD0 + 0x000, 0x100},
|
||||
{gUnknown_83CAFD0 + 0x080, 0x100},
|
||||
{gUnknown_83CAFD0 + 0x100, 0x100},
|
||||
{gUnknown_83CAFD0 + 0x180, 0x100}
|
||||
};
|
||||
|
||||
const struct SpriteFrameImage gUnknown_83CBEDC[] = {
|
||||
{gUnknown_83CB3F0 + 0x00, 0x80},
|
||||
{gUnknown_83CB3F0 + 0x40, 0x80},
|
||||
{gUnknown_83CB3F0 + 0x80, 0x80},
|
||||
{gUnknown_83CB3F0 + 0xC0, 0x80}
|
||||
};
|
||||
|
||||
const struct Subsprite gUnknown_83CBEFC[] =
|
||||
{
|
||||
{
|
||||
.x = -12,
|
||||
.y = -8,
|
||||
.shape = SPRITE_SHAPE(16x8),
|
||||
.size = SPRITE_SIZE(16x8),
|
||||
.tileOffset = 0,
|
||||
.priority = 2
|
||||
}, {
|
||||
.x = 4,
|
||||
.y = -8,
|
||||
.shape = SPRITE_SHAPE(8x8),
|
||||
.size = SPRITE_SIZE(8x8),
|
||||
.tileOffset = 2,
|
||||
.priority = 2
|
||||
}, {
|
||||
.x = -12,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(16x8),
|
||||
.size = SPRITE_SIZE(16x8),
|
||||
.tileOffset = 3,
|
||||
.priority = 2
|
||||
}, {
|
||||
.x = 4,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(8x8),
|
||||
.size = SPRITE_SIZE(8x8),
|
||||
.tileOffset = 5,
|
||||
.priority = 2
|
||||
}
|
||||
};
|
||||
|
||||
const struct SubspriteTable gUnknown_83CBF0C = subsprite_table(gUnknown_83CBEFC);
|
||||
|
||||
const struct Subsprite gUnknown_83CBF14[] =
|
||||
{
|
||||
{
|
||||
.x = -32,
|
||||
.y = -8,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
.tileOffset = 0,
|
||||
.priority = 2
|
||||
}, {
|
||||
.x = 0,
|
||||
.y = -8,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
.tileOffset = 4,
|
||||
.priority = 2
|
||||
}, {
|
||||
.x = -32,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
.tileOffset = 8,
|
||||
.priority = 2
|
||||
}, {
|
||||
.x = 0,
|
||||
.y = 0,
|
||||
.shape = SPRITE_SHAPE(32x8),
|
||||
.size = SPRITE_SIZE(32x8),
|
||||
.tileOffset = 12,
|
||||
.priority = 2
|
||||
}
|
||||
};
|
||||
|
||||
const struct SubspriteTable gUnknown_83CBF24 = subsprite_table(gUnknown_83CBF14);
|
||||
|
||||
const union AnimCmd gUnknown_83CBF2C[] = {
|
||||
ANIMCMD_FRAME(0, 1),
|
||||
ANIMCMD_JUMP(0)
|
||||
};
|
||||
|
||||
const union AnimCmd gUnknown_83CBF34[] = {
|
||||
ANIMCMD_FRAME(1, 5),
|
||||
ANIMCMD_FRAME(2, 5),
|
||||
ANIMCMD_FRAME(3, 7),
|
||||
ANIMCMD_FRAME(2, 5),
|
||||
ANIMCMD_FRAME(1, 5),
|
||||
ANIMCMD_FRAME(0, 5),
|
||||
ANIMCMD_LOOP(3),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
const union AnimCmd *const gUnknown_83CBF54[] = {
|
||||
gUnknown_83CBF2C,
|
||||
gUnknown_83CBF34
|
||||
};
|
||||
|
||||
const union AnimCmd gUnknown_83CBF5C[] = {
|
||||
ANIMCMD_FRAME(3, 8),
|
||||
ANIMCMD_FRAME(2, 8),
|
||||
ANIMCMD_FRAME(1, 8),
|
||||
ANIMCMD_FRAME(0, 8),
|
||||
ANIMCMD_FRAME(1, 8),
|
||||
ANIMCMD_FRAME(2, 8),
|
||||
ANIMCMD_LOOP(2),
|
||||
ANIMCMD_FRAME(1, 8),
|
||||
ANIMCMD_FRAME(0, 8),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
const union AnimCmd *const gUnknown_83CBF84[] = {
|
||||
gUnknown_83CBF5C
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_83CBF88 = {
|
||||
.tileTag = 65535,
|
||||
.paletteTag = 4103,
|
||||
.oam = &gOamData_83CBE58,
|
||||
.anims = gUnknown_83CBF54,
|
||||
.images = gUnknown_83CBEB4,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCB_PokeballGlow
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_83CBFA0 = {
|
||||
.tileTag = 65535,
|
||||
.paletteTag = 4103,
|
||||
.oam = &gOamData_83CBEAC,
|
||||
.anims = gUnknown_83CBF54,
|
||||
.images = gUnknown_83CBEBC,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCB_PokecenterMonitor
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_83CBFB8 = {
|
||||
.tileTag = 65535,
|
||||
.paletteTag = 4112,
|
||||
.oam = &gOamData_83CBE60,
|
||||
.anims = gUnknown_83CBF84,
|
||||
.images = gUnknown_83CBEDC,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCB_HallOfFameMonitor
|
||||
};
|
||||
|
||||
|
||||
u32 FieldEffectStart(u8 fldeff)
|
||||
{
|
||||
const u8 *script;
|
||||
@@ -451,3 +639,346 @@ void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b)
|
||||
outPal |= curBlue << 10;
|
||||
gPlttBufferFaded[i] = outPal;
|
||||
}
|
||||
|
||||
void PokecenterHealEffect_0(struct Task * task);
|
||||
void PokecenterHealEffect_1(struct Task * task);
|
||||
void PokecenterHealEffect_2(struct Task * task);
|
||||
void PokecenterHealEffect_3(struct Task * task);
|
||||
void HallOfFameRecordEffect_0(struct Task * task);
|
||||
void HallOfFameRecordEffect_1(struct Task * task);
|
||||
void HallOfFameRecordEffect_2(struct Task * task);
|
||||
void HallOfFameRecordEffect_3(struct Task * task);
|
||||
void Task_HallOfFameRecord(u8 taskId);
|
||||
u8 CreatePokeballGlowSprite(s16 duration, s16 x, s16 y, bool16 fanfare);
|
||||
void SpriteCB_PokeballGlowEffect(struct Sprite * sprite);
|
||||
void PokeballGlowEffect_0(struct Sprite * sprite);
|
||||
void PokeballGlowEffect_1(struct Sprite * sprite);
|
||||
void PokeballGlowEffect_2(struct Sprite * sprite);
|
||||
void PokeballGlowEffect_3(struct Sprite * sprite);
|
||||
void PokeballGlowEffect_4(struct Sprite * sprite);
|
||||
void PokeballGlowEffect_5(struct Sprite * sprite);
|
||||
void PokeballGlowEffect_6(struct Sprite * sprite);
|
||||
void PokeballGlowEffect_7(struct Sprite * sprite);
|
||||
u8 PokecenterHealEffectHelper(s32 x, s32 y);
|
||||
void HallOfFameRecordEffectHelper(s32 x, s32 y);
|
||||
|
||||
void (*const sPokecenterHealTaskCBTable[])(struct Task *) = {
|
||||
PokecenterHealEffect_0,
|
||||
PokecenterHealEffect_1,
|
||||
PokecenterHealEffect_2,
|
||||
PokecenterHealEffect_3
|
||||
};
|
||||
|
||||
void (*const sHallOfFameRecordTaskCBTable[])(struct Task *) = {
|
||||
HallOfFameRecordEffect_0,
|
||||
HallOfFameRecordEffect_1,
|
||||
HallOfFameRecordEffect_2,
|
||||
HallOfFameRecordEffect_3
|
||||
};
|
||||
|
||||
void (*const sPokeballGlowSpriteCBTable[])(struct Sprite *) = {
|
||||
PokeballGlowEffect_0,
|
||||
PokeballGlowEffect_1,
|
||||
PokeballGlowEffect_2,
|
||||
PokeballGlowEffect_3,
|
||||
PokeballGlowEffect_4,
|
||||
PokeballGlowEffect_5,
|
||||
PokeballGlowEffect_6,
|
||||
PokeballGlowEffect_7
|
||||
};
|
||||
|
||||
bool8 FldEff_PokecenterHeal(void)
|
||||
{
|
||||
u8 nPokemon;
|
||||
struct Task *task;
|
||||
|
||||
nPokemon = CalculatePlayerPartyCount();
|
||||
task = &gTasks[CreateTask(Task_PokecenterHeal, 0xff)];
|
||||
task->data[1] = nPokemon;
|
||||
task->data[2] = 0x5d;
|
||||
task->data[3] = 0x24;
|
||||
task->data[4] = 0x80;
|
||||
task->data[5] = 0x18;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Task_PokecenterHeal(u8 taskId)
|
||||
{
|
||||
struct Task * task = &gTasks[taskId];
|
||||
sPokecenterHealTaskCBTable[task->data[0]](task);
|
||||
}
|
||||
|
||||
void PokecenterHealEffect_0(struct Task *task)
|
||||
{
|
||||
task->data[0]++;
|
||||
task->data[6] = CreatePokeballGlowSprite(task->data[1], task->data[2], task->data[3], TRUE);
|
||||
task->data[7] = PokecenterHealEffectHelper(task->data[4], task->data[5]);
|
||||
}
|
||||
|
||||
void PokecenterHealEffect_1(struct Task *task)
|
||||
{
|
||||
if (gSprites[task->data[6]].data[0] > 1)
|
||||
{
|
||||
gSprites[task->data[7]].data[0]++;
|
||||
task->data[0]++;
|
||||
}
|
||||
}
|
||||
|
||||
void PokecenterHealEffect_2(struct Task *task)
|
||||
{
|
||||
if (gSprites[task->data[6]].data[0] > 4)
|
||||
{
|
||||
task->data[0]++;
|
||||
}
|
||||
}
|
||||
|
||||
void PokecenterHealEffect_3(struct Task *task)
|
||||
{
|
||||
if (gSprites[task->data[6]].data[0] > 6)
|
||||
{
|
||||
DestroySprite(&gSprites[task->data[6]]);
|
||||
FieldEffectActiveListRemove(FLDEFF_POKECENTER_HEAL);
|
||||
DestroyTask(FindTaskIdByFunc(Task_PokecenterHeal));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool8 FldEff_HallOfFameRecord(void)
|
||||
{
|
||||
u8 nPokemon;
|
||||
struct Task *task;
|
||||
|
||||
nPokemon = CalculatePlayerPartyCount();
|
||||
task = &gTasks[CreateTask(Task_HallOfFameRecord, 0xff)];
|
||||
task->data[1] = nPokemon;
|
||||
task->data[2] = 0x75;
|
||||
task->data[3] = 0x3C;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Task_HallOfFameRecord(u8 taskId)
|
||||
{
|
||||
struct Task *task;
|
||||
task = &gTasks[taskId];
|
||||
sHallOfFameRecordTaskCBTable[task->data[0]](task);
|
||||
}
|
||||
|
||||
void HallOfFameRecordEffect_0(struct Task *task)
|
||||
{
|
||||
u8 taskId;
|
||||
task->data[0]++;
|
||||
task->data[6] = CreatePokeballGlowSprite(task->data[1], task->data[2], task->data[3], FALSE);
|
||||
}
|
||||
|
||||
void HallOfFameRecordEffect_1(struct Task *task)
|
||||
{
|
||||
if (gSprites[task->data[6]].data[0] > 1)
|
||||
{
|
||||
HallOfFameRecordEffectHelper(0x78, 0x19);
|
||||
task->data[15]++; // was this ever initialized? is this ever used?
|
||||
task->data[0]++;
|
||||
}
|
||||
}
|
||||
|
||||
void HallOfFameRecordEffect_2(struct Task *task)
|
||||
{
|
||||
if (gSprites[task->data[6]].data[0] > 4)
|
||||
{
|
||||
task->data[0]++;
|
||||
}
|
||||
}
|
||||
|
||||
void HallOfFameRecordEffect_3(struct Task *task)
|
||||
{
|
||||
if (gSprites[task->data[6]].data[0] > 6)
|
||||
{
|
||||
DestroySprite(&gSprites[task->data[6]]);
|
||||
FieldEffectActiveListRemove(FLDEFF_HALL_OF_FAME_RECORD);
|
||||
DestroyTask(FindTaskIdByFunc(Task_HallOfFameRecord));
|
||||
}
|
||||
}
|
||||
|
||||
u8 CreatePokeballGlowSprite(s16 duration, s16 x, s16 y, bool16 fanfare)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite *sprite;
|
||||
spriteId = CreateInvisibleSprite(SpriteCB_PokeballGlowEffect);
|
||||
sprite = &gSprites[spriteId];
|
||||
sprite->pos2.x = x;
|
||||
sprite->pos2.y = y;
|
||||
sprite->subpriority = 0xFF;
|
||||
sprite->data[5] = fanfare;
|
||||
sprite->data[6] = duration;
|
||||
sprite->data[7] = spriteId;
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
void SpriteCB_PokeballGlowEffect(struct Sprite * sprite)
|
||||
{
|
||||
sPokeballGlowSpriteCBTable[sprite->data[0]](sprite);
|
||||
}
|
||||
|
||||
const struct Coords16 gUnknown_83CC010[] = {
|
||||
{0, 0},
|
||||
{6, 0},
|
||||
{0, 4},
|
||||
{6, 4},
|
||||
{0, 8},
|
||||
{6, 8}
|
||||
};
|
||||
|
||||
const u8 gUnknown_83CC028[] = {16, 12, 8, 0};
|
||||
const u8 gUnknown_83CC02C[] = {16, 12, 8, 0};
|
||||
const u8 gUnknown_83CC030[] = { 0, 0, 0, 0};
|
||||
|
||||
void PokeballGlowEffect_0(struct Sprite *sprite)
|
||||
{
|
||||
u8 endSpriteId;
|
||||
if (sprite->data[1] == 0 || (--sprite->data[1]) == 0)
|
||||
{
|
||||
sprite->data[1] = 25;
|
||||
endSpriteId = CreateSpriteAtEnd(&gUnknown_83CBF88, gUnknown_83CC010[sprite->data[2]].x + sprite->pos2.x, gUnknown_83CC010[sprite->data[2]].y + sprite->pos2.y, 0xFF);
|
||||
gSprites[endSpriteId].oam.priority = 2;
|
||||
gSprites[endSpriteId].data[0] = sprite->data[7];
|
||||
sprite->data[2]++;
|
||||
sprite->data[6]--;
|
||||
PlaySE(SE_BOWA);
|
||||
}
|
||||
if (sprite->data[6] == 0)
|
||||
{
|
||||
sprite->data[1] = 32;
|
||||
sprite->data[0]++;
|
||||
}
|
||||
}
|
||||
|
||||
void PokeballGlowEffect_1(struct Sprite *sprite)
|
||||
{
|
||||
if ((--sprite->data[1]) == 0)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
sprite->data[1] = 8;
|
||||
sprite->data[2] = 0;
|
||||
sprite->data[3] = 0;
|
||||
if (sprite->data[5])
|
||||
{
|
||||
PlayFanfare(MUS_ME_ASA);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void PokeballGlowEffect_2(struct Sprite *sprite)
|
||||
{
|
||||
u8 phase;
|
||||
if ((--sprite->data[1]) == 0)
|
||||
{
|
||||
sprite->data[1] = 8;
|
||||
sprite->data[2]++;
|
||||
sprite->data[2] &= 3;
|
||||
if (sprite->data[2] == 0)
|
||||
{
|
||||
sprite->data[3]++;
|
||||
}
|
||||
}
|
||||
phase = (sprite->data[2] + 3) & 3;
|
||||
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, gUnknown_83CC028[phase], gUnknown_83CC02C[phase], gUnknown_83CC030[phase]);
|
||||
phase = (sprite->data[2] + 2) & 3;
|
||||
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, gUnknown_83CC028[phase], gUnknown_83CC02C[phase], gUnknown_83CC030[phase]);
|
||||
phase = (sprite->data[2] + 1) & 3;
|
||||
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, gUnknown_83CC028[phase], gUnknown_83CC02C[phase], gUnknown_83CC030[phase]);
|
||||
phase = sprite->data[2];
|
||||
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x105, gUnknown_83CC028[phase], gUnknown_83CC02C[phase], gUnknown_83CC030[phase]);
|
||||
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, gUnknown_83CC028[phase], gUnknown_83CC02C[phase], gUnknown_83CC030[phase]);
|
||||
if (sprite->data[3] > 2)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
sprite->data[1] = 8;
|
||||
sprite->data[2] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void PokeballGlowEffect_3(struct Sprite *sprite)
|
||||
{
|
||||
u8 phase;
|
||||
if ((--sprite->data[1]) == 0)
|
||||
{
|
||||
sprite->data[1] = 8;
|
||||
sprite->data[2]++;
|
||||
sprite->data[2] &= 3;
|
||||
if (sprite->data[2] == 3)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
sprite->data[1] = 30;
|
||||
}
|
||||
}
|
||||
phase = sprite->data[2];
|
||||
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x108, gUnknown_83CC028[phase], gUnknown_83CC02C[phase], gUnknown_83CC030[phase]);
|
||||
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x106, gUnknown_83CC028[phase], gUnknown_83CC02C[phase], gUnknown_83CC030[phase]);
|
||||
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x102, gUnknown_83CC028[phase], gUnknown_83CC02C[phase], gUnknown_83CC030[phase]);
|
||||
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x105, gUnknown_83CC028[phase], gUnknown_83CC02C[phase], gUnknown_83CC030[phase]);
|
||||
MultiplyInvertedPaletteRGBComponents((IndexOfSpritePaletteTag(0x1007) << 4) + 0x103, gUnknown_83CC028[phase], gUnknown_83CC02C[phase], gUnknown_83CC030[phase]);
|
||||
}
|
||||
|
||||
void PokeballGlowEffect_4(struct Sprite *sprite)
|
||||
{
|
||||
if ((--sprite->data[1]) == 0)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
}
|
||||
}
|
||||
|
||||
void PokeballGlowEffect_5(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0]++;
|
||||
}
|
||||
|
||||
void PokeballGlowEffect_6(struct Sprite *sprite)
|
||||
{
|
||||
if (sprite->data[5] == 0 || IsFanfareTaskInactive())
|
||||
{
|
||||
sprite->data[0]++;
|
||||
}
|
||||
}
|
||||
|
||||
void PokeballGlowEffect_7(struct Sprite *sprite)
|
||||
{
|
||||
}
|
||||
|
||||
void SpriteCB_PokeballGlow(struct Sprite * sprite)
|
||||
{
|
||||
if (gSprites[sprite->data[0]].data[0] > 4)
|
||||
FieldEffectFreeGraphicsResources(sprite);
|
||||
}
|
||||
|
||||
u8 PokecenterHealEffectHelper(s32 x, s32 y)
|
||||
{
|
||||
u8 spriteId;
|
||||
struct Sprite * sprite;
|
||||
spriteId = CreateSpriteAtEnd(&gUnknown_83CBFA0, x, y, 0);
|
||||
sprite = &gSprites[spriteId];
|
||||
sprite->oam.priority = 2;
|
||||
sprite->invisible = TRUE;
|
||||
return spriteId;
|
||||
}
|
||||
|
||||
void SpriteCB_PokecenterMonitor(struct Sprite * sprite)
|
||||
{
|
||||
if (sprite->data[0] != 0)
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
sprite->invisible = FALSE;
|
||||
StartSpriteAnim(sprite, 1);
|
||||
}
|
||||
if (sprite->animEnded)
|
||||
FieldEffectFreeGraphicsResources(sprite);
|
||||
}
|
||||
|
||||
void HallOfFameRecordEffectHelper(s32 x, s32 y)
|
||||
{
|
||||
CreateSpriteAtEnd(&gUnknown_83CBFB8, x, y, 0);
|
||||
}
|
||||
|
||||
void SpriteCB_HallOfFameMonitor(struct Sprite * sprite)
|
||||
{
|
||||
if (sprite->animEnded)
|
||||
FieldEffectFreeGraphicsResources(sprite);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user