through sub_8130C20

This commit is contained in:
PikalaxALT
2019-04-10 20:26:51 -04:00
parent 716639a628
commit 35892e6b53
6 changed files with 227 additions and 685 deletions
+217
View File
@@ -5,6 +5,7 @@
#include "gpu_regs.h"
#include "wild_encounter.h"
#include "palette.h"
#include "blend_palette.h"
#include "text.h"
#include "window.h"
#include "text_window.h"
@@ -19,6 +20,8 @@
#include "string_util.h"
#include "pokeball.h"
#include "naming_screen.h"
#include "math_util.h"
#include "overworld.h"
#include "constants/species.h"
#include "constants/songs.h"
@@ -75,6 +78,18 @@ void sub_8130694(u8 taskId);
void sub_81306D4(u8 taskId);
void sub_813071C(u8 taskId);
void sub_81307D0(u8 taskId);
void sub_8130858(u8 taskId);
void sub_81308D0(u8 taskId);
void sub_8130914(u8 taskId);
void sub_8130940(u8 taskId);
void sub_8130980(u8 taskId);
void sub_8130A38(u8 taskId);
void sub_8130A80(u8 taskId);
void sub_8130ADC(u8 taskId);
void sub_8130B10(u8 taskId);
void sub_8130BA8(u8 taskId);
void sub_8130BF0(u8 taskId);
void sub_8130C20(u8 taskId);
void sub_8130C64(void);
void sub_8130F2C(u8 taskId);
void sub_8130FD4(u8 taskId, u8 state);
@@ -1470,3 +1485,205 @@ void sub_81306D4(u8 taskId)
sub_81315CC(taskId, 2);
gTasks[taskId].func = sub_813071C;
}
void sub_813071C(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (data[2] != 0)
{
OaksSpeechPrintMessage(gUnknown_81C5E2E, sOakSpeechResources->unk_001F);
sOakSpeechResources->unk_0010 = 1;
gTasks[taskId].func = sub_81301B0;
}
}
void sub_81307D0(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (data[2] != 0)
{
sub_8131310();
if (data[3] != 0)
data[3]--;
else
{
if (gSaveBlock2Ptr->playerGender == MALE)
sub_81311F4(MALE, 0);
else
sub_81311F4(FEMALE, 0);
gTasks[taskId].data[1] = 0;
gSpriteCoordOffsetX = 0;
ChangeBgX(2, 0, 0);
sub_81315CC(taskId, 2);
gTasks[taskId].func = sub_8130858;
}
}
}
void sub_8130858(u8 taskId)
{
if (gTasks[taskId].data[2] != 0)
{
StringExpandPlaceholders(gStringVar4, gUnknown_81C5EF4);
OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->unk_001F);
gTasks[taskId].data[3] = 30;
gTasks[taskId].func = sub_81308D0;
}
}
void sub_81308D0(u8 taskId)
{
if (!IsTextPrinterActive(0))
{
if (gTasks[taskId].data[3] != 0)
gTasks[taskId].data[3]--;
else
{
FadeOutBGM(4);
gTasks[taskId].func = sub_8130914;
}
}
}
void sub_8130914(u8 taskId)
{
sOakSpeechResources->unk_0012 = 0;
sub_8130A38(taskId);
sub_8130ADC(taskId);
sub_8130940(taskId);
}
void sub_8130940(u8 taskId)
{
s16 * data = gTasks[taskId].data;
SetBgAttribute(2, 6, 1);
data[0] = 0;
data[1] = 0;
data[2] = 256;
data[15] = 0;
gTasks[taskId].func = sub_8130980;
}
void sub_8130980(u8 taskId)
{
s16 * data = gTasks[taskId].data;
s16 x, y;
u16 r0;
sOakSpeechResources->unk_0012++;
if (sOakSpeechResources->unk_0012 % 20 == 0)
{
if (sOakSpeechResources->unk_0012 == 40)
PlaySE(SE_FU_ZUZUZU);
r0 = data[2];
data[2] -= 32;
x = sub_80D8B90(r0 - 8);
y = sub_80D8B90(data[2] - 16);
SetBgAffine(2, 0x7800, 0x5400, 0x78, 0x54, x, y, 0);
if (data[2] <= 96)
{
data[15] = 1;
data[0] = 36;
gTasks[taskId].func = sub_8130BA8;
}
}
}
void sub_8130A38(u8 taskId)
{
u8 taskId2 = CreateTask(sub_8130A80, 1);
s16 * data = gTasks[taskId2].data;
data[0] = 0;
data[1] = 0;
data[2] = 0;
data[15] = 0;
BeginNormalPaletteFade(0xFFFF0FCF, 4, 0, 16, RGB_BLACK);
}
void sub_8130A80(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (!gPaletteFade.active)
{
if (data[1] != 0)
{
DestroyTask(taskId);
sub_8131168(taskId, 1);
}
else
{
data[1]++;
BeginNormalPaletteFade(0x0000F000, 0, 0, 16, RGB_BLACK);
}
}
}
void sub_8130ADC(u8 taskId)
{
u8 taskId2 = CreateTask(sub_8130B10, 2);
s16 * data = gTasks[taskId2].data;
data[0] = 8;
data[1] = 0;
data[2] = 8;
data[14] = 0;
data[15] = 0;
}
void sub_8130B10(u8 taskId)
{
s16 * data = gTasks[taskId].data;
u8 i;
if (data[0] != 0)
data[0]--;
else
{
if (data[1] <= 0 && data[2] != 0)
data[2]--;
BlendPalette(0x40, 0x20, data[14], RGB_WHITE);
data[14]++;
data[1]--;
data[0] = data[2];
if (data[14] > 14)
{
for (i = 0; i < 32; i++)
{
gPlttBufferFaded[i + 0x40] = RGB_WHITE;
gPlttBufferUnfaded[i + 0x40] = RGB_WHITE;
}
DestroyTask(taskId);
}
}
}
void sub_8130BA8(u8 taskId)
{
if (gTasks[taskId].data[0] != 0)
gTasks[taskId].data[0]--;
else
{
BeginNormalPaletteFade(0x00000030, 2, 0, 16, RGB_BLACK);
gTasks[taskId].func = sub_8130BF0;
}
}
void sub_8130BF0(u8 taskId)
{
if (!gPaletteFade.active)
{
gTasks[taskId].func = sub_8130C20;
}
}
void sub_8130C20(u8 taskId)
{
FreeAllWindowBuffers();
sub_8044D80();
Free(sOakSpeechResources);
sOakSpeechResources = NULL;
gTextFlags.flag_0 = FALSE;
SetMainCallback2(CB2_NewGame);
DestroyTask(taskId);
}