Merge pull request #464 from colonelsalt/documentation
Document fields in oak_speech
This commit is contained in:
+71
-58
@@ -23,7 +23,7 @@ struct OakSpeechResources
|
|||||||
void * trainerPicTilemapBuffer;
|
void * trainerPicTilemapBuffer;
|
||||||
void * unk_0008;
|
void * unk_0008;
|
||||||
u8 filler_000C[4];
|
u8 filler_000C[4];
|
||||||
u16 unk_0010;
|
u16 hasPlayerBeenNamed;
|
||||||
u16 unk_0012;
|
u16 unk_0012;
|
||||||
u16 unk_0014[4];
|
u16 unk_0014[4];
|
||||||
u8 textColor[3];
|
u8 textColor[3];
|
||||||
@@ -91,7 +91,7 @@ static void DestroyOaksSpeechTrainerPic(void);
|
|||||||
static void CreateFadeInTask(u8 taskId, u8 state);
|
static void CreateFadeInTask(u8 taskId, u8 state);
|
||||||
static void CreateFadeOutTask(u8 taskId, u8 state);
|
static void CreateFadeOutTask(u8 taskId, u8 state);
|
||||||
static void PrintNameChoiceOptions(u8 taskId, u8 state);
|
static void PrintNameChoiceOptions(u8 taskId, u8 state);
|
||||||
static void GetDefaultName(u8 arg0, u8 namePick);
|
static void GetDefaultName(u8 hasPlayerBeenNamed, u8 rivalNameChoice);
|
||||||
|
|
||||||
extern const u8 gText_Controls[];
|
extern const u8 gText_Controls[];
|
||||||
extern const u8 gText_ABUTTONNext[];
|
extern const u8 gText_ABUTTONNext[];
|
||||||
@@ -463,6 +463,14 @@ static const u8 *const sRivalNameChoices[] = {
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
MALE_PLAYER_PIC,
|
||||||
|
FEMALE_PLAYER_PIC,
|
||||||
|
RIVAL_PIC,
|
||||||
|
OAK_PIC
|
||||||
|
};
|
||||||
|
|
||||||
static void VBlankCB_NewGameOaksSpeech(void)
|
static void VBlankCB_NewGameOaksSpeech(void)
|
||||||
{
|
{
|
||||||
LoadOam();
|
LoadOam();
|
||||||
@@ -487,6 +495,9 @@ void StartNewGameScene(void)
|
|||||||
SetMainCallback2(CB2_NewGameOaksSpeech);
|
SetMainCallback2(CB2_NewGameOaksSpeech);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define tTrainerPicPosX data[1]
|
||||||
|
#define tTrainerPicFadeState data[2]
|
||||||
|
|
||||||
static void Task_OaksSpeech1(u8 taskId)
|
static void Task_OaksSpeech1(u8 taskId)
|
||||||
{
|
{
|
||||||
switch (gMain.state)
|
switch (gMain.state)
|
||||||
@@ -880,7 +891,7 @@ static void Task_OakSpeech9(u8 taskId)
|
|||||||
CopyToBgTilemapBuffer(1, sOakSpeech_BackgroundTilemap, 0, 0);
|
CopyToBgTilemapBuffer(1, sOakSpeech_BackgroundTilemap, 0, 0);
|
||||||
CopyBgTilemapBufferToVram(1);
|
CopyBgTilemapBufferToVram(1);
|
||||||
CreateNidoranFSprite(taskId);
|
CreateNidoranFSprite(taskId);
|
||||||
LoadOaksSpeechTrainerPic(3, 0);
|
LoadOaksSpeechTrainerPic(OAK_PIC, 0);
|
||||||
CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 1);
|
CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 1);
|
||||||
PlayBGM(MUS_ROUTE24);
|
PlayBGM(MUS_ROUTE24);
|
||||||
BeginNormalPaletteFade(0xFFFFFFFF, 5, 16, 0, RGB_BLACK);
|
BeginNormalPaletteFade(0xFFFFFFFF, 5, 16, 0, RGB_BLACK);
|
||||||
@@ -1040,13 +1051,13 @@ static void Task_OakSpeech18(u8 taskId)
|
|||||||
{
|
{
|
||||||
s16 * data = gTasks[taskId].data;
|
s16 * data = gTasks[taskId].data;
|
||||||
|
|
||||||
if (data[2] != 0)
|
if (tTrainerPicFadeState != 0)
|
||||||
{
|
{
|
||||||
if (data[3] != 0)
|
if (data[3] != 0)
|
||||||
data[3]--;
|
data[3]--;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
data[1] = -60;
|
tTrainerPicPosX = -60;
|
||||||
DestroyOaksSpeechTrainerPic();
|
DestroyOaksSpeechTrainerPic();
|
||||||
OaksSpeechPrintMessage(gOakText_AskPlayerGender, sOakSpeechResources->textSpeed);
|
OaksSpeechPrintMessage(gOakText_AskPlayerGender, sOakSpeechResources->textSpeed);
|
||||||
gTasks[taskId].func = Task_OakSpeech19;
|
gTasks[taskId].func = Task_OakSpeech19;
|
||||||
@@ -1110,9 +1121,9 @@ static void Task_OakSpeech21(u8 taskId)
|
|||||||
static void Task_OakSpeech22(u8 taskId)
|
static void Task_OakSpeech22(u8 taskId)
|
||||||
{
|
{
|
||||||
if (gSaveBlock2Ptr->playerGender == MALE)
|
if (gSaveBlock2Ptr->playerGender == MALE)
|
||||||
LoadOaksSpeechTrainerPic(MALE, 0);
|
LoadOaksSpeechTrainerPic(MALE_PLAYER_PIC, 0);
|
||||||
else
|
else
|
||||||
LoadOaksSpeechTrainerPic(FEMALE, 0);
|
LoadOaksSpeechTrainerPic(FEMALE_PLAYER_PIC, 0);
|
||||||
CreateFadeOutTask(taskId, 2);
|
CreateFadeOutTask(taskId, 2);
|
||||||
gTasks[taskId].data[3] = 32;
|
gTasks[taskId].data[3] = 32;
|
||||||
gTasks[taskId].func = Task_OakSpeech23;
|
gTasks[taskId].func = Task_OakSpeech23;
|
||||||
@@ -1122,13 +1133,13 @@ static void Task_OakSpeech23(u8 taskId)
|
|||||||
{
|
{
|
||||||
s16 * data = gTasks[taskId].data;
|
s16 * data = gTasks[taskId].data;
|
||||||
|
|
||||||
if (data[2] != 0)
|
if (tTrainerPicFadeState != 0)
|
||||||
{
|
{
|
||||||
if (data[3] != 0)
|
if (data[3] != 0)
|
||||||
data[3]--;
|
data[3]--;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
data[1] = 0;
|
tTrainerPicPosX = 0;
|
||||||
OaksSpeechPrintMessage(gOakText_AskPlayerName, sOakSpeechResources->textSpeed);
|
OaksSpeechPrintMessage(gOakText_AskPlayerName, sOakSpeechResources->textSpeed);
|
||||||
gTasks[taskId].func = Task_OakSpeech24;
|
gTasks[taskId].func = Task_OakSpeech24;
|
||||||
}
|
}
|
||||||
@@ -1140,7 +1151,7 @@ static void Task_OakSpeech24(u8 taskId)
|
|||||||
if (!IsTextPrinterActive(0))
|
if (!IsTextPrinterActive(0))
|
||||||
{
|
{
|
||||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
|
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
|
||||||
sOakSpeechResources->unk_0010 = 0;
|
sOakSpeechResources->hasPlayerBeenNamed = FALSE;
|
||||||
gTasks[taskId].func = Task_OakSpeech25;
|
gTasks[taskId].func = Task_OakSpeech25;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1150,16 +1161,16 @@ static void Task_OakSpeech35(u8 taskId)
|
|||||||
|
|
||||||
if (!IsTextPrinterActive(0))
|
if (!IsTextPrinterActive(0))
|
||||||
{
|
{
|
||||||
if (data[1] > -60)
|
if (tTrainerPicPosX > -60)
|
||||||
{
|
{
|
||||||
data[1] -= 2;
|
tTrainerPicPosX -= 2;
|
||||||
gSpriteCoordOffsetX += 2;
|
gSpriteCoordOffsetX += 2;
|
||||||
ChangeBgX(2, 0x200, 2);
|
ChangeBgX(2, 0x200, 2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
data[1] = -60;
|
tTrainerPicPosX = -60;
|
||||||
PrintNameChoiceOptions(taskId, sOakSpeechResources->unk_0010);
|
PrintNameChoiceOptions(taskId, sOakSpeechResources->hasPlayerBeenNamed);
|
||||||
gTasks[taskId].func = Task_OakSpeech29;
|
gTasks[taskId].func = Task_OakSpeech29;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1167,8 +1178,8 @@ static void Task_OakSpeech35(u8 taskId)
|
|||||||
|
|
||||||
static void Task_OakSpeech28(u8 taskId)
|
static void Task_OakSpeech28(u8 taskId)
|
||||||
{
|
{
|
||||||
PrintNameChoiceOptions(taskId, sOakSpeechResources->unk_0010);
|
PrintNameChoiceOptions(taskId, sOakSpeechResources->hasPlayerBeenNamed);
|
||||||
if (sOakSpeechResources->unk_0010 == 0)
|
if (sOakSpeechResources->hasPlayerBeenNamed == FALSE)
|
||||||
{
|
{
|
||||||
OaksSpeechPrintMessage(gOakText_AskPlayerName, 0);
|
OaksSpeechPrintMessage(gOakText_AskPlayerName, 0);
|
||||||
}
|
}
|
||||||
@@ -1192,7 +1203,7 @@ static void Task_OakSpeech29(u8 taskId)
|
|||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
ClearStdWindowAndFrameToTransparent(data[13], TRUE);
|
ClearStdWindowAndFrameToTransparent(data[13], TRUE);
|
||||||
RemoveWindow(data[13]);
|
RemoveWindow(data[13]);
|
||||||
GetDefaultName(sOakSpeechResources->unk_0010, input - 1);
|
GetDefaultName(sOakSpeechResources->hasPlayerBeenNamed, input - 1);
|
||||||
data[15] = 1;
|
data[15] = 1;
|
||||||
gTasks[taskId].func = Task_OakSpeech26;
|
gTasks[taskId].func = Task_OakSpeech26;
|
||||||
break;
|
break;
|
||||||
@@ -1210,8 +1221,8 @@ static void Task_OakSpeech25(u8 taskId)
|
|||||||
{
|
{
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
GetDefaultName(sOakSpeechResources->unk_0010, 0);
|
GetDefaultName(sOakSpeechResources->hasPlayerBeenNamed, 0);
|
||||||
if (sOakSpeechResources->unk_0010 == 0)
|
if (sOakSpeechResources->hasPlayerBeenNamed == FALSE)
|
||||||
{
|
{
|
||||||
DoNamingScreen(NAMING_SCREEN_PLAYER, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnFromNamingScreen);
|
DoNamingScreen(NAMING_SCREEN_PLAYER, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnFromNamingScreen);
|
||||||
}
|
}
|
||||||
@@ -1234,7 +1245,7 @@ static void Task_OakSpeech26(u8 taskId)
|
|||||||
{
|
{
|
||||||
if (data[15] == 1)
|
if (data[15] == 1)
|
||||||
{
|
{
|
||||||
if (sOakSpeechResources->unk_0010 == 0)
|
if (sOakSpeechResources->hasPlayerBeenNamed == FALSE)
|
||||||
{
|
{
|
||||||
StringExpandPlaceholders(gStringVar4, gOakText_FinalizePlayerName);
|
StringExpandPlaceholders(gStringVar4, gOakText_FinalizePlayerName);
|
||||||
}
|
}
|
||||||
@@ -1267,7 +1278,7 @@ static void Task_OakSpeech27(u8 taskId)
|
|||||||
case 0:
|
case 0:
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
gTasks[taskId].data[3] = 40;
|
gTasks[taskId].data[3] = 40;
|
||||||
if (sOakSpeechResources->unk_0010 == 0)
|
if (sOakSpeechResources->hasPlayerBeenNamed == FALSE)
|
||||||
{
|
{
|
||||||
ClearDialogWindowAndFrame(0, 1);
|
ClearDialogWindowAndFrame(0, 1);
|
||||||
CreateFadeInTask(taskId, 2);
|
CreateFadeInTask(taskId, 2);
|
||||||
@@ -1283,7 +1294,7 @@ static void Task_OakSpeech27(u8 taskId)
|
|||||||
case 1:
|
case 1:
|
||||||
case -1:
|
case -1:
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
if (sOakSpeechResources->unk_0010 == 0)
|
if (sOakSpeechResources->hasPlayerBeenNamed == FALSE)
|
||||||
gTasks[taskId].func = Task_OakSpeech24;
|
gTasks[taskId].func = Task_OakSpeech24;
|
||||||
else
|
else
|
||||||
gTasks[taskId].func = Task_OakSpeech28;
|
gTasks[taskId].func = Task_OakSpeech28;
|
||||||
@@ -1295,7 +1306,7 @@ static void Task_OakSpeech30(u8 taskId)
|
|||||||
{
|
{
|
||||||
s16 * data = gTasks[taskId].data;
|
s16 * data = gTasks[taskId].data;
|
||||||
|
|
||||||
if (data[2] != 0)
|
if (tTrainerPicFadeState != 0)
|
||||||
{
|
{
|
||||||
DestroyOaksSpeechTrainerPic();
|
DestroyOaksSpeechTrainerPic();
|
||||||
if (data[3] != 0)
|
if (data[3] != 0)
|
||||||
@@ -1318,9 +1329,9 @@ static void Task_OakSpeech31(u8 taskId)
|
|||||||
static void Task_OakSpeech32(u8 taskId)
|
static void Task_OakSpeech32(u8 taskId)
|
||||||
{
|
{
|
||||||
ChangeBgX(2, 0, 0);
|
ChangeBgX(2, 0, 0);
|
||||||
gTasks[taskId].data[1] = 0;
|
gTasks[taskId].tTrainerPicPosX = 0;
|
||||||
gSpriteCoordOffsetX = 0;
|
gSpriteCoordOffsetX = 0;
|
||||||
LoadOaksSpeechTrainerPic(2, 0);
|
LoadOaksSpeechTrainerPic(RIVAL_PIC, 0);
|
||||||
CreateFadeOutTask(taskId, 2);
|
CreateFadeOutTask(taskId, 2);
|
||||||
gTasks[taskId].func = Task_OakSpeech34;
|
gTasks[taskId].func = Task_OakSpeech34;
|
||||||
}
|
}
|
||||||
@@ -1329,10 +1340,10 @@ static void Task_OakSpeech34(u8 taskId)
|
|||||||
{
|
{
|
||||||
s16 * data = gTasks[taskId].data;
|
s16 * data = gTasks[taskId].data;
|
||||||
|
|
||||||
if (data[2] != 0)
|
if (tTrainerPicFadeState != 0)
|
||||||
{
|
{
|
||||||
OaksSpeechPrintMessage(gOakText_IntroduceRival, sOakSpeechResources->textSpeed);
|
OaksSpeechPrintMessage(gOakText_IntroduceRival, sOakSpeechResources->textSpeed);
|
||||||
sOakSpeechResources->unk_0010 = 1;
|
sOakSpeechResources->hasPlayerBeenNamed = TRUE;
|
||||||
gTasks[taskId].func = Task_OakSpeech35;
|
gTasks[taskId].func = Task_OakSpeech35;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1341,7 +1352,7 @@ static void Task_OakSpeech33(u8 taskId)
|
|||||||
{
|
{
|
||||||
s16 * data = gTasks[taskId].data;
|
s16 * data = gTasks[taskId].data;
|
||||||
|
|
||||||
if (data[2] != 0)
|
if (tTrainerPicFadeState != 0)
|
||||||
{
|
{
|
||||||
DestroyOaksSpeechTrainerPic();
|
DestroyOaksSpeechTrainerPic();
|
||||||
if (data[3] != 0)
|
if (data[3] != 0)
|
||||||
@@ -1349,10 +1360,10 @@ static void Task_OakSpeech33(u8 taskId)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gSaveBlock2Ptr->playerGender == MALE)
|
if (gSaveBlock2Ptr->playerGender == MALE)
|
||||||
LoadOaksSpeechTrainerPic(MALE, 0);
|
LoadOaksSpeechTrainerPic(MALE_PLAYER_PIC, 0);
|
||||||
else
|
else
|
||||||
LoadOaksSpeechTrainerPic(FEMALE, 0);
|
LoadOaksSpeechTrainerPic(FEMALE_PLAYER_PIC, 0);
|
||||||
gTasks[taskId].data[1] = 0;
|
gTasks[taskId].tTrainerPicPosX = 0;
|
||||||
gSpriteCoordOffsetX = 0;
|
gSpriteCoordOffsetX = 0;
|
||||||
ChangeBgX(2, 0, 0);
|
ChangeBgX(2, 0, 0);
|
||||||
CreateFadeOutTask(taskId, 2);
|
CreateFadeOutTask(taskId, 2);
|
||||||
@@ -1363,7 +1374,7 @@ static void Task_OakSpeech33(u8 taskId)
|
|||||||
|
|
||||||
static void Task_OakSpeech36(u8 taskId)
|
static void Task_OakSpeech36(u8 taskId)
|
||||||
{
|
{
|
||||||
if (gTasks[taskId].data[2] != 0)
|
if (gTasks[taskId].tTrainerPicFadeState != 0)
|
||||||
{
|
{
|
||||||
StringExpandPlaceholders(gStringVar4, gOakText_LegendAboutToUnfold);
|
StringExpandPlaceholders(gStringVar4, gOakText_LegendAboutToUnfold);
|
||||||
OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->textSpeed);
|
OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->textSpeed);
|
||||||
@@ -1399,8 +1410,8 @@ static void Task_OakSpeech38_3(u8 taskId)
|
|||||||
s16 * data = gTasks[taskId].data;
|
s16 * data = gTasks[taskId].data;
|
||||||
SetBgAttribute(2, 6, 1);
|
SetBgAttribute(2, 6, 1);
|
||||||
data[0] = 0;
|
data[0] = 0;
|
||||||
data[1] = 0;
|
tTrainerPicPosX = 0;
|
||||||
data[2] = 256;
|
tTrainerPicFadeState = 256;
|
||||||
data[15] = 0;
|
data[15] = 0;
|
||||||
gTasks[taskId].func = Task_OakSpeech39;
|
gTasks[taskId].func = Task_OakSpeech39;
|
||||||
}
|
}
|
||||||
@@ -1416,12 +1427,12 @@ static void Task_OakSpeech39(u8 taskId)
|
|||||||
{
|
{
|
||||||
if (sOakSpeechResources->unk_0012 == 40)
|
if (sOakSpeechResources->unk_0012 == 40)
|
||||||
PlaySE(SE_WARP_IN);
|
PlaySE(SE_WARP_IN);
|
||||||
r0 = data[2];
|
r0 = tTrainerPicFadeState;
|
||||||
data[2] -= 32;
|
tTrainerPicFadeState -= 32;
|
||||||
x = Q_8_8_inv(r0 - 8);
|
x = Q_8_8_inv(r0 - 8);
|
||||||
y = Q_8_8_inv(data[2] - 16);
|
y = Q_8_8_inv(tTrainerPicFadeState - 16);
|
||||||
SetBgAffine(2, 0x7800, 0x5400, 0x78, 0x54, x, y, 0);
|
SetBgAffine(2, 0x7800, 0x5400, 0x78, 0x54, x, y, 0);
|
||||||
if (data[2] <= 96)
|
if (tTrainerPicFadeState <= 96)
|
||||||
{
|
{
|
||||||
data[15] = 1;
|
data[15] = 1;
|
||||||
data[0] = 36;
|
data[0] = 36;
|
||||||
@@ -1583,16 +1594,16 @@ static void CB2_ReturnFromNamingScreen(void)
|
|||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
taskId = CreateTask(Task_OakSpeech26, 0);
|
taskId = CreateTask(Task_OakSpeech26, 0);
|
||||||
if (sOakSpeechResources->unk_0010 == 0)
|
if (sOakSpeechResources->hasPlayerBeenNamed == FALSE)
|
||||||
{
|
{
|
||||||
if (gSaveBlock2Ptr->playerGender == MALE)
|
if (gSaveBlock2Ptr->playerGender == MALE)
|
||||||
LoadOaksSpeechTrainerPic(MALE, 0);
|
LoadOaksSpeechTrainerPic(MALE_PLAYER_PIC, 0);
|
||||||
else
|
else
|
||||||
LoadOaksSpeechTrainerPic(FEMALE, 0);
|
LoadOaksSpeechTrainerPic(FEMALE_PLAYER_PIC, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
LoadOaksSpeechTrainerPic(2, 0);
|
LoadOaksSpeechTrainerPic(RIVAL_PIC, 0);
|
||||||
gTasks[taskId].data[1] = -60;
|
gTasks[taskId].tTrainerPicPosX = -60;
|
||||||
gSpriteCoordOffsetX += 60;
|
gSpriteCoordOffsetX += 60;
|
||||||
ChangeBgX(2, -0x3C00, 0);
|
ChangeBgX(2, -0x3C00, 0);
|
||||||
CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 1);
|
CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 1);
|
||||||
@@ -1704,19 +1715,19 @@ static void LoadOaksSpeechTrainerPic(u16 whichPic, u16 tileOffset)
|
|||||||
|
|
||||||
switch (whichPic)
|
switch (whichPic)
|
||||||
{
|
{
|
||||||
case 0: // FIRE
|
case MALE_PLAYER_PIC:
|
||||||
LoadPalette(sOakSpeechGfx_RedPal, 0x40, 0x40);
|
LoadPalette(sOakSpeechGfx_RedPal, 0x40, 0x40);
|
||||||
LZ77UnCompVram(sOakSpeechGfx_RedPic, (void *)0x06000600 + tileOffset);
|
LZ77UnCompVram(sOakSpeechGfx_RedPic, (void *)0x06000600 + tileOffset);
|
||||||
break;
|
break;
|
||||||
case 1: // LEAF
|
case FEMALE_PLAYER_PIC:
|
||||||
LoadPalette(sOakSpeechGfx_LeafPal, 0x40, 0x40);
|
LoadPalette(sOakSpeechGfx_LeafPal, 0x40, 0x40);
|
||||||
LZ77UnCompVram(sOakSpeechGfx_LeafPic, (void *)0x06000600 + tileOffset);
|
LZ77UnCompVram(sOakSpeechGfx_LeafPic, (void *)0x06000600 + tileOffset);
|
||||||
break;
|
break;
|
||||||
case 2: // BLUE
|
case RIVAL_PIC:
|
||||||
LoadPalette(sOakSpeechGfx_RivalPal, 0x60, 0x40);
|
LoadPalette(sOakSpeechGfx_RivalPal, 0x60, 0x40);
|
||||||
LZ77UnCompVram(sOakSpeechGfx_RivalPic, (void *)0x06000600 + tileOffset);
|
LZ77UnCompVram(sOakSpeechGfx_RivalPic, (void *)0x06000600 + tileOffset);
|
||||||
break;
|
break;
|
||||||
case 3: // OAK
|
case OAK_PIC:
|
||||||
LoadPalette(sOakSpeechGfx_OakPal, 0x60, 0x40);
|
LoadPalette(sOakSpeechGfx_OakPal, 0x60, 0x40);
|
||||||
LZ77UnCompVram(sOakSpeechGfx_OakPic, (void *)0x06000600 + tileOffset);
|
LZ77UnCompVram(sOakSpeechGfx_OakPic, (void *)0x06000600 + tileOffset);
|
||||||
break;
|
break;
|
||||||
@@ -1740,12 +1751,14 @@ static void DestroyOaksSpeechTrainerPic(void)
|
|||||||
CopyBgTilemapBufferToVram(2);
|
CopyBgTilemapBufferToVram(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define tParentTaskId data[0]
|
||||||
|
|
||||||
static void Task_SlowFadeIn(u8 taskId)
|
static void Task_SlowFadeIn(u8 taskId)
|
||||||
{
|
{
|
||||||
u8 i = 0;
|
u8 i = 0;
|
||||||
if (gTasks[taskId].data[1] == 0)
|
if (gTasks[taskId].data[1] == 0)
|
||||||
{
|
{
|
||||||
gTasks[gTasks[taskId].data[0]].data[2] = 1;
|
gTasks[gTasks[taskId].tParentTaskId].tTrainerPicFadeState = 1;
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
for (i = 0; i < 3; i++)
|
for (i = 0; i < 3; i++)
|
||||||
{
|
{
|
||||||
@@ -1781,9 +1794,9 @@ static void CreateFadeInTask(u8 taskId, u8 state)
|
|||||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ);
|
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ);
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0x10);
|
SetGpuReg(REG_OFFSET_BLDALPHA, 0x10);
|
||||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||||
gTasks[taskId].data[2] = 0;
|
gTasks[taskId].tTrainerPicFadeState = 0;
|
||||||
taskId2 = CreateTask(Task_SlowFadeIn, 0);
|
taskId2 = CreateTask(Task_SlowFadeIn, 0);
|
||||||
gTasks[taskId2].data[0] = taskId;
|
gTasks[taskId2].tParentTaskId = taskId;
|
||||||
gTasks[taskId2].data[1] = 16;
|
gTasks[taskId2].data[1] = 16;
|
||||||
gTasks[taskId2].data[2] = 0;
|
gTasks[taskId2].data[2] = 0;
|
||||||
gTasks[taskId2].data[3] = state;
|
gTasks[taskId2].data[3] = state;
|
||||||
@@ -1802,7 +1815,7 @@ static void Task_SlowFadeOut(u8 taskId)
|
|||||||
{
|
{
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
gTasks[gTasks[taskId].data[0]].data[2] = 1;
|
gTasks[gTasks[taskId].tParentTaskId].tTrainerPicFadeState = 1;
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1835,9 +1848,9 @@ static void CreateFadeOutTask(u8 taskId, u8 state)
|
|||||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ);
|
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ);
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0x1000);
|
SetGpuReg(REG_OFFSET_BLDALPHA, 0x1000);
|
||||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||||
gTasks[taskId].data[2] = 0;
|
gTasks[taskId].tTrainerPicFadeState = 0;
|
||||||
taskId2 = CreateTask(Task_SlowFadeOut, 0);
|
taskId2 = CreateTask(Task_SlowFadeOut, 0);
|
||||||
gTasks[taskId2].data[0] = taskId;
|
gTasks[taskId2].tParentTaskId = taskId;
|
||||||
gTasks[taskId2].data[1] = 0;
|
gTasks[taskId2].data[1] = 0;
|
||||||
gTasks[taskId2].data[2] = 16;
|
gTasks[taskId2].data[2] = 16;
|
||||||
gTasks[taskId2].data[3] = state;
|
gTasks[taskId2].data[3] = state;
|
||||||
@@ -1848,7 +1861,7 @@ static void CreateFadeOutTask(u8 taskId, u8 state)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void PrintNameChoiceOptions(u8 taskId, u8 state)
|
static void PrintNameChoiceOptions(u8 taskId, u8 hasPlayerBeenNamed)
|
||||||
{
|
{
|
||||||
s16 * data = gTasks[taskId].data;
|
s16 * data = gTasks[taskId].data;
|
||||||
const u8 *const * textPtrs;
|
const u8 *const * textPtrs;
|
||||||
@@ -1859,7 +1872,7 @@ static void PrintNameChoiceOptions(u8 taskId, u8 state)
|
|||||||
DrawStdFrameWithCustomTileAndPalette(data[13], 1, GetStdWindowBaseTileNum(), 14);
|
DrawStdFrameWithCustomTileAndPalette(data[13], 1, GetStdWindowBaseTileNum(), 14);
|
||||||
FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11);
|
FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11);
|
||||||
AddTextPrinterParameterized(data[13], 2, gOtherText_NewName, 8, 1, 0, NULL);
|
AddTextPrinterParameterized(data[13], 2, gOtherText_NewName, 8, 1, 0, NULL);
|
||||||
if (state == 0)
|
if (hasPlayerBeenNamed == FALSE)
|
||||||
textPtrs = gSaveBlock2Ptr->playerGender == MALE ? sMaleNameChoices : sFemaleNameChoices;
|
textPtrs = gSaveBlock2Ptr->playerGender == MALE ? sMaleNameChoices : sFemaleNameChoices;
|
||||||
else
|
else
|
||||||
textPtrs = sRivalNameChoices;
|
textPtrs = sRivalNameChoices;
|
||||||
@@ -1871,13 +1884,13 @@ static void PrintNameChoiceOptions(u8 taskId, u8 state)
|
|||||||
CopyWindowToVram(data[13], COPYWIN_BOTH);
|
CopyWindowToVram(data[13], COPYWIN_BOTH);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void GetDefaultName(u8 arg0, u8 namePick)
|
static void GetDefaultName(u8 hasPlayerBeenNamed, u8 rivalNameChoice)
|
||||||
{
|
{
|
||||||
const u8 * src;
|
const u8 * src;
|
||||||
u8 * dest;
|
u8 * dest;
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
||||||
if (arg0 == 0)
|
if (hasPlayerBeenNamed == FALSE)
|
||||||
{
|
{
|
||||||
if (gSaveBlock2Ptr->playerGender == MALE)
|
if (gSaveBlock2Ptr->playerGender == MALE)
|
||||||
src = sMaleNameChoices[Random() % 19];
|
src = sMaleNameChoices[Random() % 19];
|
||||||
@@ -1887,7 +1900,7 @@ static void GetDefaultName(u8 arg0, u8 namePick)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
src = sRivalNameChoices[namePick];
|
src = sRivalNameChoices[rivalNameChoice];
|
||||||
dest = gSaveBlock1Ptr->rivalName;
|
dest = gSaveBlock1Ptr->rivalName;
|
||||||
}
|
}
|
||||||
for (i = 0; i < PLAYER_NAME_LENGTH && src[i] != EOS; i++)
|
for (i = 0; i < PLAYER_NAME_LENGTH && src[i] != EOS; i++)
|
||||||
|
|||||||
Reference in New Issue
Block a user