title_screen: through sub_8079730

This commit is contained in:
PikalaxALT
2019-07-31 13:50:47 -04:00
parent e96ecee460
commit c3f95c1cbb
6 changed files with 245 additions and 637 deletions
-636
View File
@@ -5,642 +5,6 @@
.text
thumb_func_start sub_80792C8
sub_80792C8: @ 80792C8
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _080792EC @ =gTasks+0x8
adds r4, r0, r1
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0x5
bls _080792E2
b _08079414
_080792E2:
lsls r0, 2
ldr r1, _080792F0 @ =_080792F4
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080792EC: .4byte gTasks+0x8
_080792F0: .4byte _080792F4
.align 2, 0
_080792F4:
.4byte _0807930C
.4byte _08079344
.4byte _08079368
.4byte _0807937C
.4byte _080793BC
.4byte _08079404
_0807930C:
movs r1, 0x80
lsls r1, 6
movs r0, 0
bl SetGpuRegBits
movs r0, 0x48
movs r1, 0x3F
bl SetGpuReg
movs r0, 0x4A
movs r1, 0x37
bl SetGpuReg
movs r0, 0x44
movs r1, 0xA0
bl SetGpuReg
movs r0, 0x40
movs r1, 0
bl SetGpuReg
movs r0, 0x80
lsls r0, 7
movs r1, 0
movs r2, 0
bl BlendPalettes
b _080793AA
_08079344:
movs r1, 0xC0
lsls r1, 1
adds r0, r1, 0
ldrh r1, [r4, 0x2]
adds r0, r1
strh r0, [r4, 0x2]
lsls r0, 16
asrs r0, 20
strh r0, [r4, 0x4]
cmp r0, 0xEF
ble _08079364
movs r0, 0xF0
strh r0, [r4, 0x4]
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
_08079364:
ldrh r1, [r4, 0x4]
b _080793F6
_08079368:
ldrh r0, [r4, 0x6]
adds r0, 0x1
strh r0, [r4, 0x6]
lsls r0, 16
asrs r0, 16
cmp r0, 0x9
ble _08079414
movs r0, 0
strh r0, [r4, 0x6]
b _080793AA
_0807937C:
movs r0, 0x4A
movs r1, 0x3B
bl SetGpuReg
ldr r1, _080793B4 @ =0x0000f0f0
movs r0, 0x40
bl SetGpuReg
ldr r1, _080793B8 @ =0xffff1000
movs r0, 0x2
movs r2, 0
bl ChangeBgX
movs r0, 0x80
lsls r0, 8
movs r1, 0
movs r2, 0
bl BlendPalettes
movs r1, 0xF0
lsls r1, 4
adds r0, r1, 0
strh r0, [r4, 0x2]
_080793AA:
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
b _08079414
.align 2, 0
_080793B4: .4byte 0x0000f0f0
_080793B8: .4byte 0xffff1000
_080793BC:
ldr r1, _08079400 @ =0xfffffe80
adds r0, r1, 0
ldrh r1, [r4, 0x2]
adds r0, r1
strh r0, [r4, 0x2]
lsls r0, 16
asrs r0, 20
strh r0, [r4, 0x4]
cmp r0, 0
bgt _080793DA
movs r0, 0
strh r0, [r4, 0x4]
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
_080793DA:
movs r0, 0x4
ldrsh r1, [r4, r0]
negs r1, r1
lsls r1, 8
movs r0, 0x2
movs r2, 0
bl ChangeBgX
ldrh r1, [r4, 0x4]
lsls r1, 8
movs r0, 0xF0
orrs r1, r0
lsls r1, 16
lsrs r1, 16
_080793F6:
movs r0, 0x40
bl SetGpuReg
b _08079414
.align 2, 0
_08079400: .4byte 0xfffffe80
_08079404:
movs r1, 0x80
lsls r1, 6
movs r0, 0
bl ClearGpuRegBits
adds r0, r5, 0
bl DestroyTask
_08079414:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80792C8
thumb_func_start sub_807941C
sub_807941C: @ 807941C
push {r4,r5,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
ldr r1, _08079460 @ =gTasks+0x8
adds r5, r0, r1
movs r1, 0x1E
ldrsh r0, [r5, r1]
cmp r0, 0
beq _08079444
ldr r0, _08079464 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08079444
movs r0, 0x1
strh r0, [r5, 0x1C]
_08079444:
movs r3, 0x1C
ldrsh r0, [r5, r3]
cmp r0, 0
beq _08079468
ldr r0, _08079464 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _08079468
adds r0, r2, 0
bl DestroyTask
b _08079510
.align 2, 0
_08079460: .4byte gTasks+0x8
_08079464: .4byte gPaletteFade
_08079468:
movs r1, 0x2
ldrsh r0, [r5, r1]
ldrh r2, [r5, 0x2]
cmp r0, 0
bne _08079476
movs r0, 0x3C
b _08079478
_08079476:
movs r0, 0x1E
_08079478:
strh r0, [r5, 0x4]
ldrh r0, [r5]
adds r0, 0x1
strh r0, [r5]
lsls r0, 16
asrs r0, 16
movs r3, 0x4
ldrsh r1, [r5, r3]
cmp r0, r1
blt _08079510
movs r0, 0
strh r0, [r5]
movs r0, 0x1
eors r0, r2
strh r0, [r5, 0x2]
lsls r0, 16
cmp r0, 0
beq _080794CC
ldr r2, _080794C0 @ =gPlttBufferUnfaded
ldr r4, _080794C4 @ =gUnknown_8EAE094
ldr r1, _080794C8 @ =gPlttBufferFaded
movs r0, 0xF1
lsls r0, 1
adds r1, r0
adds r2, r0
movs r3, 0x4
_080794AC:
ldrh r0, [r4, 0xC]
strh r0, [r2]
ldrh r0, [r4, 0xC]
strh r0, [r1]
adds r1, 0x2
adds r2, 0x2
subs r3, 0x1
cmp r3, 0
bge _080794AC
b _080794F2
.align 2, 0
_080794C0: .4byte gPlttBufferUnfaded
_080794C4: .4byte gUnknown_8EAE094
_080794C8: .4byte gPlttBufferFaded
_080794CC:
movs r3, 0
ldr r2, _08079518 @ =gPlttBufferUnfaded
ldr r0, _0807951C @ =gUnknown_8EAE094
ldr r1, _08079520 @ =gPlttBufferFaded
adds r4, r0, 0x2
movs r0, 0xF1
lsls r0, 1
adds r1, r0
adds r2, r0
_080794DE:
ldrh r0, [r4]
strh r0, [r2]
ldrh r0, [r4]
strh r0, [r1]
adds r4, 0x2
adds r1, 0x2
adds r2, 0x2
adds r3, 0x1
cmp r3, 0x4
ble _080794DE
_080794F2:
movs r1, 0x1C
ldrsh r0, [r5, r1]
cmp r0, 0
beq _08079510
movs r0, 0x80
lsls r0, 8
ldr r2, _08079524 @ =gPaletteFade
ldrh r1, [r2, 0x4]
lsls r1, 21
lsrs r1, 27
ldrh r2, [r2, 0x6]
lsls r2, 17
lsrs r2, 17
bl BlendPalettes
_08079510:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08079518: .4byte gPlttBufferUnfaded
_0807951C: .4byte gUnknown_8EAE094
_08079520: .4byte gPlttBufferFaded
_08079524: .4byte gPaletteFade
thumb_func_end sub_807941C
thumb_func_start sub_8079528
sub_8079528: @ 8079528
push {lr}
ldr r0, _08079548 @ =sub_807941C
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
ldr r2, _0807954C @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r2
movs r0, 0x1
strh r0, [r1, 0x26]
pop {r0}
bx r0
.align 2, 0
_08079548: .4byte sub_807941C
_0807954C: .4byte gTasks
thumb_func_end sub_8079528
thumb_func_start sub_8079550
sub_8079550: @ 8079550
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r5, r0, 16
asrs r4, r5, 16
cmp r4, 0
blt _08079574
ldr r3, _08079618 @ =gScanlineEffectRegBuffers
lsls r2, r4, 1
ldr r0, _0807961C @ =gScanlineEffect
ldrb r1, [r0, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
adds r2, r3
movs r0, 0x10
strh r0, [r2]
_08079574:
movs r3, 0
mov r8, r5
adds r6, r4, 0
ldr r0, _08079618 @ =gScanlineEffectRegBuffers
mov r12, r0
ldr r7, _0807961C @ =gScanlineEffect
movs r5, 0xF
lsls r2, r6, 1
adds r4, r2, 0
_08079586:
adds r0, r6, r3
cmp r0, 0
blt _0807959A
ldrb r1, [r7, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r0, r4, r0
add r0, r12
strh r5, [r0]
_0807959A:
subs r0, r6, r3
cmp r0, 0
blt _080795AE
ldrb r1, [r7, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r0, r2, r0
add r0, r12
strh r5, [r0]
_080795AE:
subs r5, 0x1
subs r2, 0x2
adds r4, 0x2
adds r3, 0x1
cmp r3, 0xF
ble _08079586
mov r1, r8
asrs r0, r1, 16
adds r3, r0, 0
adds r3, 0x10
cmp r3, 0x9F
bgt _080795E6
ldr r6, _08079618 @ =gScanlineEffectRegBuffers
ldr r5, _0807961C @ =gScanlineEffect
movs r4, 0
_080795CC:
cmp r3, 0
blt _080795E0
lsls r2, r3, 1
ldrb r1, [r5, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
adds r2, r6
strh r4, [r2]
_080795E0:
adds r3, 0x1
cmp r3, 0x9F
ble _080795CC
_080795E6:
mov r1, r8
asrs r0, r1, 16
adds r3, r0, 0
subs r3, 0x10
cmp r3, 0
blt _0807960E
ldr r6, _08079618 @ =gScanlineEffectRegBuffers
ldr r5, _0807961C @ =gScanlineEffect
movs r4, 0
_080795F8:
lsls r2, r3, 1
ldrb r1, [r5, 0x14]
lsls r0, r1, 4
subs r0, r1
lsls r0, 7
adds r2, r0
adds r2, r6
strh r4, [r2]
subs r3, 0x1
cmp r3, 0
bge _080795F8
_0807960E:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08079618: .4byte gScanlineEffectRegBuffers
_0807961C: .4byte gScanlineEffect
thumb_func_end sub_8079550
thumb_func_start sub_8079620
sub_8079620: @ 8079620
push {lr}
ldr r1, _08079644 @ =gScanlineEffect
ldrb r0, [r1, 0x15]
cmp r0, 0
beq _0807962E
movs r0, 0x3
strb r0, [r1, 0x15]
_0807962E:
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
pop {r0}
bx r0
.align 2, 0
_08079644: .4byte gScanlineEffect
thumb_func_end sub_8079620
thumb_func_start sub_8079648
sub_8079648: @ 8079648
push {r4,lr}
ldr r0, _080796BC @ =sub_80792C8
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
beq _0807965C
bl DestroyTask
_0807965C:
bl sub_8071898
bl ResetPaletteFadeControl
ldr r0, _080796C0 @ =gUnknown_8EAB6C4
movs r2, 0xD0
lsls r2, 1
movs r1, 0
bl LoadPalette
ldr r0, _080796C4 @ =gUnknown_8EAD5E8
movs r1, 0xD0
movs r2, 0x20
bl LoadPalette
ldr r4, _080796C8 @ =gUnknown_8EAE094
adds r0, r4, 0
movs r1, 0xF0
movs r2, 0x20
bl LoadPalette
adds r0, r4, 0
movs r1, 0xE0
movs r2, 0x20
bl LoadPalette
bl ResetBgPositions
movs r1, 0xE0
lsls r1, 8
movs r0, 0
bl ClearGpuRegBits
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0
bl ShowBg
movs r0, 0x3
bl ShowBg
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080796BC: .4byte sub_80792C8
_080796C0: .4byte gUnknown_8EAB6C4
_080796C4: .4byte gUnknown_8EAD5E8
_080796C8: .4byte gUnknown_8EAE094
thumb_func_end sub_8079648
thumb_func_start sub_80796CC
sub_80796CC: @ 80796CC
push {lr}
bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _080796DE
ldr r0, _080796E4 @ =sub_80F55A0
bl SetMainCallback2
_080796DE:
pop {r0}
bx r0
.align 2, 0
_080796E4: .4byte sub_80F55A0
thumb_func_end sub_80796CC
thumb_func_start sub_80796E8
sub_80796E8: @ 80796E8
push {lr}
bl UpdatePaletteFade
lsls r0, 24
cmp r0, 0
bne _080796FE
bl m4aMPlayAllStop
ldr r0, _08079704 @ =mb_berry_fix_serve
bl SetMainCallback2
_080796FE:
pop {r0}
bx r0
.align 2, 0
_08079704: .4byte mb_berry_fix_serve
thumb_func_end sub_80796E8
thumb_func_start sub_8079708
sub_8079708: @ 8079708
push {r4,r5,lr}
movs r5, 0
ldr r4, _08079728 @ =gUnknown_83BFB9C
_0807970E:
adds r0, r4, 0
bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x3
bls _0807970E
ldr r0, _0807972C @ =gUnknown_83BFBBC
bl LoadSpritePalettes
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08079728: .4byte gUnknown_83BFB9C
_0807972C: .4byte gUnknown_83BFBBC
thumb_func_end sub_8079708
thumb_func_start sub_8079730
sub_8079730: @ 8079730
push {r4,lr}
adds r4, r0, 0
adds r2, r4, 0
adds r2, 0x2E
ldrh r0, [r4, 0x2E]
ldrh r1, [r2, 0x2]
subs r0, r1
strh r0, [r4, 0x2E]
lsls r0, 16
asrs r0, 20
strh r0, [r4, 0x20]
movs r1, 0x8
negs r1, r1
cmp r0, r1
blt _08079774
ldrh r0, [r2, 0x6]
ldrh r1, [r2, 0x4]
adds r0, r1
strh r0, [r2, 0x4]
lsls r0, 16
asrs r0, 20
strh r0, [r4, 0x22]
subs r0, 0x10
lsls r0, 16
lsrs r0, 16
cmp r0, 0xB8
bhi _08079774
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0807977C
_08079774:
adds r0, r4, 0
bl DestroySprite
b _080797A6
_0807977C:
ldrh r1, [r2, 0xE]
movs r3, 0xE
ldrsh r0, [r2, r3]
cmp r0, 0
beq _080797A6
subs r0, r1, 0x1
strh r0, [r2, 0xE]
lsls r0, 16
cmp r0, 0
bne _080797A6
adds r0, r4, 0
movs r1, 0
bl StartSpriteAnim
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
_080797A6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8079730
thumb_func_start sub_80797AC
sub_80797AC: @ 80797AC
push {r4-r7,lr}
+6
View File
@@ -0,0 +1,6 @@
#ifndef GUARD_BERRY_FIX_PROGRAM_H
#define GUARD_BERRY_FIX_PROGRAM_H
void mb_berry_fix_serve(void);
#endif //GUARD_BERRY_FIX_PROGRAM_H
+6
View File
@@ -0,0 +1,6 @@
#ifndef GUARD_CLEAR_SAVE_DATA_SCREEN_H
#define GUARD_CLEAR_SAVE_DATA_SCREEN_H
void sub_80F55A0(void);
#endif //GUARD_CLEAR_SAVE_DATA_SCREEN_H
+1 -1
View File
@@ -968,7 +968,7 @@ extern const u8 gUnknown_8EAD390[];
extern const u16 gUnknown_8EAD5E8[];
extern const u8 gUnknown_8EAD608[];
extern const u8 gUnknown_8EADEE4[];
extern const u16 gUnknown_8EAE094[];
extern u16 gUnknown_8EAE094[]; // If this is const, title_screen.c does not match
extern const u8 gUnknown_8EAE0B4[];
extern const u8 gUnknown_8EAE374[];
extern const u16 gUnknown_8EAE488[];
+1
View File
@@ -75,6 +75,7 @@ void TintPalette_GrayScale2(u16 *, u16);
void TintPalette_SepiaTone(u16 *, u16);
void sub_80717A8(u32, s8, u8, u8, u16, u8, u8);
bool32 sub_807185C(u8);
void sub_8071898(void);
extern struct PaletteFadeControl gPaletteFade;
+231
View File
@@ -16,6 +16,9 @@
#include "new_game.h"
#include "save.h"
#include "main_menu.h"
#include "clear_save_data_screen.h"
#include "berry_fix_program.h"
#include "decompress.h"
#include "constants/songs.h"
#include "constants/species.h"
@@ -626,3 +629,231 @@ void sub_80791C0(s16 * data)
break;
}
}
void sub_80792C8(u8 taskId)
{
s16 * data = gTasks[taskId].data;
switch (data[0])
{
case 0:
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
SetGpuReg(REG_OFFSET_WININ, WIN_RANGE(0x00, 0x3F));
SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0x00, 0x37));
SetGpuReg(REG_OFFSET_WIN0V, 0xA0);
SetGpuReg(REG_OFFSET_WIN0H, 0x00);
BlendPalettes(0x00004000, 0, RGB_BLACK);
data[0]++;
break;
case 1:
data[1] += 0x180;
data[2] = data[1] >> 4;
if (data[2] >= 0xF0)
{
data[2] = 0xF0;
data[0]++;
}
SetGpuReg(REG_OFFSET_WIN0H, data[2]);
break;
case 2:
data[3]++;
if (data[3] >= 10)
{
data[3] = 0;
data[0]++;
}
break;
case 3:
SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0, 0x3B));
SetGpuReg(REG_OFFSET_WIN0H, 0xF0F0);
ChangeBgX(2, -0xF000, 0);
BlendPalettes(0x00008000, 0, RGB_BLACK);
data[1] = 0xF00;
data[0]++;
break;
case 4:
data[1] -= 0x180;
data[2] = data[1] >> 4;
if (data[2] <= 0)
{
data[2] = 0;
data[0]++;
}
ChangeBgX(2, -data[2] << 8, 0);
SetGpuReg(REG_OFFSET_WIN0H, (data[2] << 8) | 0xF0);
break;
case 5:
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
DestroyTask(taskId);
break;
}
}
void sub_807941C(u8 taskId)
{
s16 * data = gTasks[taskId].data;
s32 i;
if (data[15] && gPaletteFade.active)
data[14] = 1;
if (data[14] && !gPaletteFade.active)
DestroyTask(taskId);
else
{
if (!data[1])
data[2] = 60;
else
data[2] = 30;
data[0]++;
if (data[0] >= data[2])
{
data[0] = 0;
data[1] ^= 1;
if (data[1])
{
for (i = 0; i < 5; i++)
{
gPlttBufferUnfaded[0xF1 + i] = gUnknown_8EAE094[6];
gPlttBufferFaded[0xF1 + i] = gUnknown_8EAE094[6];
}
}
else
{
for (i = 0; i < 5; i++)
{
gPlttBufferUnfaded[0xF1 + i] = gUnknown_8EAE094[1 + i];
gPlttBufferFaded[0xF1 + i] = gUnknown_8EAE094[1 + i];
}
}
if (data[14])
{
BlendPalettes(0x00008000, gPaletteFade.y, gPaletteFade.blendColor);
}
}
}
}
void sub_8079528(void)
{
u8 taskId = FindTaskIdByFunc(sub_807941C);
gTasks[taskId].data[15] = TRUE;
}
void sub_8079550(s16 a0)
{
s32 i;
if (a0 >= 0)
{
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][a0] = 16;
}
for (i = 0; i < 16; i++)
{
if (a0 + i >= 0)
{
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][a0 + i] = 15 - i;
}
if (a0 - i >= 0)
{
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][a0 - i] = 15 - i;
}
}
for (i = a0 + 16; i < 160; i++)
{
if (i >= 0)
{
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = 0;
}
}
for (i = a0 - 16; i >= 0; i--)
{
if (i >= 0)
{
gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = 0;
}
}
}
void sub_8079620(void)
{
if (gScanlineEffect.state)
gScanlineEffect.state = 3;
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDY, 0);
}
void sub_8079648(void)
{
u8 taskId;
taskId = FindTaskIdByFunc(sub_80792C8);
if (taskId != 0xFF)
DestroyTask(taskId);
sub_8071898();
ResetPaletteFadeControl();
LoadPalette(gUnknown_8EAB6C4, 0x00, 0x1A0);
LoadPalette(gUnknown_8EAD5E8, 0xD0, 0x20);
LoadPalette(gUnknown_8EAE094, 0xF0, 0x20);
LoadPalette(gUnknown_8EAE094, 0xE0, 0x20);
ResetBgPositions();
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON);
ShowBg(1);
ShowBg(2);
ShowBg(0);
ShowBg(3);
}
void sub_80796CC(void)
{
if (!UpdatePaletteFade())
SetMainCallback2(sub_80F55A0);
}
void sub_80796E8(void)
{
if (!UpdatePaletteFade())
{
m4aMPlayAllStop();
SetMainCallback2(mb_berry_fix_serve);
}
}
void sub_8079708(void)
{
s32 i;
for (i = 0; i < NELEMS(gUnknown_83BFB9C); i++)
LoadCompressedSpriteSheet(&gUnknown_83BFB9C[i]);
LoadSpritePalettes(gUnknown_83BFBBC);
}
void sub_8079730(struct Sprite * sprite)
{
s16 * data = sprite->data;
sprite->data[0] -= data[1];
sprite->pos1.x = sprite->data[0] >> 4;
if (sprite->pos1.x < -8)
{
DestroySprite(sprite);
return;
}
data[2] += data[3];
sprite->pos1.y = data[2] >> 4;
if (sprite->pos1.y < 0x10 || sprite->pos1.y > 0xc8)
{
DestroySprite(sprite);
return;
}
if (sprite->animEnded)
{
DestroySprite(sprite);
return;
}
if (data[7] != 0 && --data[7] == 0)
{
StartSpriteAnim(sprite, 0);
sprite->invisible = FALSE;
}
}