Merge branch 'master' into battle
This commit is contained in:
@@ -496,9 +496,9 @@ static void sub_80BB2A0(u8 taskId)
|
||||
gTasks[taskId].data[7] = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
|
||||
gTasks[taskId].func = sub_80BB4B8;
|
||||
if (sAnimStatsChangeData->data[0] == 0)
|
||||
PlaySE12WithPanning(SE_W255, BattleAnimAdjustPanning2(PAN_SIDE_PLAYER));
|
||||
PlaySE12WithPanning(SE_W287, BattleAnimAdjustPanning2(PAN_SIDE_PLAYER));
|
||||
else
|
||||
PlaySE12WithPanning(SE_W327, BattleAnimAdjustPanning2(PAN_SIDE_PLAYER));
|
||||
PlaySE12WithPanning(SE_W287B, BattleAnimAdjustPanning2(PAN_SIDE_PLAYER));
|
||||
}
|
||||
|
||||
static void sub_80BB4B8(u8 taskId)
|
||||
|
||||
@@ -807,7 +807,7 @@ static void sub_802F610(void)
|
||||
{
|
||||
if (gReceivedRemoteLinkPlayers == 0)
|
||||
{
|
||||
m4aSongNumStop(SE_T_OOAME);
|
||||
m4aSongNumStop(SE_HINSI);
|
||||
gMain.inBattle = 0;
|
||||
gMain.callback1 = gPreBattleCallback1;
|
||||
SetMainCallback2(sub_8011A1C);
|
||||
@@ -816,7 +816,7 @@ static void sub_802F610(void)
|
||||
}
|
||||
else if (IsLinkTaskFinished())
|
||||
{
|
||||
m4aSongNumStop(SE_T_OOAME);
|
||||
m4aSongNumStop(SE_HINSI);
|
||||
gMain.inBattle = 0;
|
||||
gMain.callback1 = gPreBattleCallback1;
|
||||
SetMainCallback2(sub_8011A1C);
|
||||
@@ -838,7 +838,7 @@ void sub_802F6A8(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
m4aSongNumStop(SE_T_OOAME);
|
||||
m4aSongNumStop(SE_HINSI);
|
||||
gMain.inBattle = 0;
|
||||
gMain.callback1 = gPreBattleCallback1;
|
||||
SetMainCallback2(gMain.savedCallback);
|
||||
@@ -1087,7 +1087,7 @@ static void Task_PrepareToGiveExpWithExpBar(u8 taskId)
|
||||
exp -= currLvlExp;
|
||||
expToNextLvl = gExperienceTables[gBaseStats[species].growthRate][level + 1] - currLvlExp;
|
||||
SetBattleBarStruct(battlerId, gHealthboxSpriteIds[battlerId], expToNextLvl, exp, -gainedExp);
|
||||
PlaySE(SE_U);
|
||||
PlaySE(SE_EXP);
|
||||
gTasks[taskId].func = sub_80300F4;
|
||||
}
|
||||
|
||||
@@ -1113,7 +1113,7 @@ static void sub_80300F4(u8 taskId)
|
||||
u16 species;
|
||||
s32 expOnNextLvl;
|
||||
|
||||
m4aSongNumStop(SE_U);
|
||||
m4aSongNumStop(SE_EXP);
|
||||
level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
|
||||
currExp = GetMonData(&gPlayerParty[monId], MON_DATA_EXP);
|
||||
species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES);
|
||||
@@ -1227,7 +1227,7 @@ static void sub_80303A8(u8 taskId)
|
||||
++data[15];
|
||||
break;
|
||||
case 2:
|
||||
PlaySE(SE_T_KAMI2);
|
||||
PlaySE(SE_REGI);
|
||||
if (IsMonGettingExpSentOut())
|
||||
sub_811E5B8(sprite->pos1.x + sprite->pos2.x,
|
||||
sprite->pos1.y + sprite->pos2.y,
|
||||
|
||||
@@ -820,7 +820,7 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId)
|
||||
if (!gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong)
|
||||
PlaySE(SE_T_OOAME);
|
||||
PlaySE(SE_HINSI);
|
||||
gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 1;
|
||||
}
|
||||
}
|
||||
@@ -828,9 +828,9 @@ void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId)
|
||||
{
|
||||
gBattleSpritesDataPtr->battlerData[battlerId].lowHpSong = 0;
|
||||
if (!IsDoubleBattle())
|
||||
m4aSongNumStop(SE_T_OOAME);
|
||||
m4aSongNumStop(SE_HINSI);
|
||||
else if (IsDoubleBattle() && !gBattleSpritesDataPtr->battlerData[battlerId ^ BIT_FLANK].lowHpSong)
|
||||
m4aSongNumStop(SE_T_OOAME);
|
||||
m4aSongNumStop(SE_HINSI);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -841,7 +841,7 @@ void BattleStopLowHpSound(void)
|
||||
gBattleSpritesDataPtr->battlerData[playerBattler].lowHpSong = 0;
|
||||
if (IsDoubleBattle())
|
||||
gBattleSpritesDataPtr->battlerData[playerBattler ^ BIT_FLANK].lowHpSong = 0;
|
||||
m4aSongNumStop(SE_T_OOAME);
|
||||
m4aSongNumStop(SE_HINSI);
|
||||
}
|
||||
|
||||
// not used
|
||||
|
||||
@@ -3165,7 +3165,7 @@ static void atk23_getexp(void)
|
||||
&& !gBattleStruct->wildVictorySong)
|
||||
{
|
||||
BattleStopLowHpSound();
|
||||
PlayBGM(BGM_FRLG_KACHI_WILD_POKEMON);
|
||||
PlayBGM(MUS_WIN_YASEI);
|
||||
++gBattleStruct->wildVictorySong;
|
||||
}
|
||||
if (GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HP))
|
||||
|
||||
@@ -2756,7 +2756,7 @@ static bool8 BT_Phase2Mugshot_StartSpriteSlide(struct Task *task)
|
||||
BT_SetSpriteAsOpponentOrPlayer(task->tOpponentSpriteId, FALSE);
|
||||
BT_SetSpriteAsOpponentOrPlayer(task->tPlayerSpriteId, TRUE);
|
||||
BT_StartSpriteSlide(task->tOpponentSpriteId);
|
||||
PlaySE(SE_C_MAKU_U);
|
||||
PlaySE(SE_BT_START);
|
||||
++sTransitionStructPtr->vblankDma;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -95,7 +95,7 @@ void mb_berry_fix_serve(void) // noreturn
|
||||
ResetSpriteData();
|
||||
ResetTasks();
|
||||
ScanlineEffect_Stop();
|
||||
gUnknown_3005ECC = 0;
|
||||
gHelpSystemEnabled = FALSE;
|
||||
taskId = CreateTask(mb_berry_fix_task, 0);
|
||||
gTasks[taskId].data[0] = 0;
|
||||
SetMainCallback2(mb_berry_fix_maincb);
|
||||
|
||||
+2
-2
@@ -704,7 +704,7 @@ static void BerryPouchMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMen
|
||||
{
|
||||
if (onInit != TRUE)
|
||||
{
|
||||
PlaySE(SE_W287B);
|
||||
PlaySE(SE_BAG1);
|
||||
StartBerryPouchSpriteWobbleAnim();
|
||||
}
|
||||
DestroyItemMenuIcon(sResources->itemMenuIconId ^ 1);
|
||||
@@ -1381,7 +1381,7 @@ static void Task_SellYes(u8 taskId)
|
||||
static void Task_SellBerries_PlaySfxAndRemoveBerries(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
PlaySE(SE_CASHIER);
|
||||
PlaySE(SE_SHOP);
|
||||
RemoveBagItem(gSpecialVar_ItemId, data[8]);
|
||||
AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]);
|
||||
sub_809C09C(gSpecialVar_ItemId, data[8], 2);
|
||||
|
||||
+3
-3
@@ -130,7 +130,7 @@ enum CreditsMap
|
||||
CREDITS_MAP_VERMILION_CITY,
|
||||
CREDITS_MAP_ROUTE10,
|
||||
CREDITS_MAP_CELADON_CITY,
|
||||
CREDITS_MAP_SAFFRON_CITY_DUPLICATE,
|
||||
CREDITS_MAP_SAFFRON_CITY,
|
||||
CREDITS_MAP_ROUTE17,
|
||||
CREDITS_MAP_FUCHSIA_CITY,
|
||||
CREDITS_MAP_CINNABAR_ISLAND,
|
||||
@@ -412,7 +412,7 @@ static const struct CreditsScrcmd sCreditsScript[] = {
|
||||
CREDITS_PRINT(BRAILLE_CODE_CHECK, 221),
|
||||
CREDITS_PRINT(INFORMATION_SUPERVISORS, 221),
|
||||
CREDITS_PRINT(DUMMY, 51),
|
||||
CREDITS_MAPNEXT(SAFFRON_CITY_DUPLICATE, 16),
|
||||
CREDITS_MAPNEXT(SAFFRON_CITY, 16),
|
||||
CREDITS_PRINT(COORDINATORS, 211),
|
||||
CREDITS_PRINT(TASK_MANAGERS, 210),
|
||||
CREDITS_PRINT(PRODUCERS, 210),
|
||||
@@ -619,7 +619,7 @@ static const struct CreditsOverworldCmd sOverworldCmd_CeladonCity[] = {
|
||||
};
|
||||
|
||||
static const struct CreditsOverworldCmd sOverworldCmd_SaffronCity[] = {
|
||||
{ 0x00fe, MAP_GROUP(SAFFRON_CITY_DUPLICATE), MAP_NUM(SAFFRON_CITY_DUPLICATE) },
|
||||
{ 0x00fe, MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY) },
|
||||
{ 0x0027, 0x0005, 0x0001 },
|
||||
{ 0x0000, 0x0001, 0x0500 }, // Scroll down
|
||||
{ 0x00fd, 0x00fd, 0x00fd }
|
||||
|
||||
+4
-4
@@ -1795,7 +1795,7 @@ void EggHatch(void)
|
||||
ScriptContext2_Enable();
|
||||
CreateTask(Task_EggHatch, 10);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
||||
sub_812B478();
|
||||
HelpSystem_Disable();
|
||||
}
|
||||
|
||||
static void Task_EggHatch(u8 taskID)
|
||||
@@ -1901,7 +1901,7 @@ static void EggHatchSetMonNickname(void)
|
||||
SetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3);
|
||||
FreeMonSpritesGfx();
|
||||
Free(sEggHatchData);
|
||||
sub_812B484();
|
||||
HelpSystem_Enable();
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
}
|
||||
|
||||
@@ -2024,7 +2024,7 @@ static void CB2_EggHatch_1(void)
|
||||
UnsetBgTilemapBuffer(1);
|
||||
Free(sEggHatchData);
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
sub_812B484();
|
||||
HelpSystem_Enable();
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -2142,7 +2142,7 @@ static void SpriteCB_Egg_4(struct Sprite* sprite)
|
||||
sprite->data[0]++;
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
PlaySE(SE_JIHANKI);
|
||||
PlaySE(SE_TAMAGO);
|
||||
sprite->invisible = TRUE;
|
||||
sprite->callback = SpriteCB_Egg_5;
|
||||
sprite->data[0] = 0;
|
||||
|
||||
+5
-5
@@ -448,7 +448,7 @@ void UseFameChecker(MainCallback savedCallback)
|
||||
sFameCheckerData->listMenuTopIdx2 = 0;
|
||||
sFameCheckerData->listMenuDrawnSelIdx = 0;
|
||||
sFameCheckerData->viewingFlavorText = FALSE;
|
||||
PlaySE(SE_W202);
|
||||
PlaySE(SE_W129);
|
||||
SetMainCallback2(MainCB2_LoadFameChecker);
|
||||
}
|
||||
|
||||
@@ -559,11 +559,11 @@ static void Task_TopMenuHandleInput(u8 taskId)
|
||||
cursorPos = FameCheckerGetCursorY();
|
||||
if (TryExitPickMode(taskId) == TRUE)
|
||||
{
|
||||
PlaySE(SE_W100);
|
||||
PlaySE(SE_W199);
|
||||
}
|
||||
else if (cursorPos != sFameCheckerData->numUnlockedPersons - 1) // anything but CANCEL
|
||||
{
|
||||
PlaySE(SE_W100);
|
||||
PlaySE(SE_W199);
|
||||
FillWindowPixelRect(FCWINDOWID_ICONDESC, 0x00, 0, 0, 88, 32);
|
||||
FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_ICONDESC);
|
||||
UpdateInfoBoxTilemap(2, 4);
|
||||
@@ -748,7 +748,7 @@ static void FC_MoveSelectorCursor(u8 taskId, s8 dx, s8 dy)
|
||||
{
|
||||
u8 i;
|
||||
s16 *data = gTasks[taskId].data;
|
||||
PlaySE(SE_W155);
|
||||
PlaySE(SE_W207B);
|
||||
gSprites[data[0]].pos1.x += dx;
|
||||
gSprites[data[0]].pos1.y += dy;
|
||||
for (i = 0; i < 6; i++)
|
||||
@@ -826,7 +826,7 @@ static bool8 SetMessageSelectorIconObjMode(u8 spriteId, u8 objMode)
|
||||
|
||||
static void Task_StartToCloseFameChecker(u8 taskId)
|
||||
{
|
||||
PlaySE(SE_W202);
|
||||
PlaySE(SE_W129);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
|
||||
gTasks[taskId].func = Task_DestroyAssetsAndCloseFameChecker;
|
||||
}
|
||||
|
||||
@@ -305,7 +305,7 @@ static void sub_807DF94(void)
|
||||
Overworld_PlaySpecialMapMusic();
|
||||
pal_fill_for_maplights();
|
||||
sub_8111CF0();
|
||||
PlaySE(SE_RU_GASHIN);
|
||||
PlaySE(SE_TK_WARPOUT);
|
||||
CreateTask(sub_807E31C, 10);
|
||||
ScriptContext2_Enable();
|
||||
}
|
||||
@@ -713,7 +713,7 @@ static void sub_807E784(u8 taskId)
|
||||
case 0:
|
||||
player_bitmagic();
|
||||
ScriptContext2_Enable();
|
||||
PlaySE(SE_FU_ZUZUZU);
|
||||
PlaySE(SE_TK_WARPIN);
|
||||
sub_805DAB0();
|
||||
task->data[0]++;
|
||||
break;
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ static void Task_FieldPoisonEffect(u8 taskId)
|
||||
|
||||
void FldEffPoison_Start(void)
|
||||
{
|
||||
PlaySE(SE_DAUGI);
|
||||
PlaySE(SE_DOKU);
|
||||
CreateTask(Task_FieldPoisonEffect, 80);
|
||||
}
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@ bool8 FldEff_UseRockSmash(void)
|
||||
|
||||
static void sub_80C9A60(void)
|
||||
{
|
||||
PlaySE(SE_W145);
|
||||
PlaySE(SE_W088);
|
||||
FieldEffectActiveListRemove(FLDEFF_USE_ROCK_SMASH);
|
||||
EnableBothScriptContexts();
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ static void StartSweetScentFieldEffect(void)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
PlaySE(SE_W260);
|
||||
PlaySE(SE_W230);
|
||||
gUnknown_203AAB0 = (u8 *)Alloc(0x400);
|
||||
CpuFastSet(gPlttBufferUnfaded, gUnknown_203AAB0, 0x100);
|
||||
CpuFastSet(gPlttBufferFaded, gPlttBufferUnfaded, 0x100);
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ static const struct HealLocation sSpawnPoints[] = {
|
||||
[SPAWN_FUCHSIA_CITY - 1] = {MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY), 0x19, 0x20},
|
||||
[SPAWN_CINNABAR_ISLAND - 1] = {MAP_GROUP(CINNABAR_ISLAND), MAP_NUM(CINNABAR_ISLAND), 0x0e, 0x0c},
|
||||
[SPAWN_INDIGO_PLATEAU - 1] = {MAP_GROUP(INDIGO_PLATEAU_EXTERIOR), MAP_NUM(INDIGO_PLATEAU_EXTERIOR), 0x0b, 0x07},
|
||||
[SPAWN_SAFFRON_CITY - 1] = {MAP_GROUP(SAFFRON_CITY_DUPLICATE), MAP_NUM(SAFFRON_CITY_DUPLICATE), 0x18, 0x27},
|
||||
[SPAWN_SAFFRON_CITY - 1] = {MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY), 0x18, 0x27},
|
||||
[SPAWN_ROUTE4 - 1] = {MAP_GROUP(ROUTE4), MAP_NUM(ROUTE4), 0x0c, 0x06},
|
||||
[SPAWN_ROUTE10 - 1] = {MAP_GROUP(ROUTE10), MAP_NUM(ROUTE10), 0x0d, 0x15},
|
||||
[SPAWN_ONE_ISLAND - 1] = {MAP_GROUP(ONE_ISLAND), MAP_NUM(ONE_ISLAND), 0x0e, 0x06},
|
||||
|
||||
+7
-5
@@ -16,6 +16,8 @@
|
||||
|
||||
extern u8 gGlyphInfo[];
|
||||
|
||||
bool8 gHelpSystemEnabled;
|
||||
|
||||
struct HelpSystemVideoState
|
||||
{
|
||||
/*0x00*/ MainCallback savedVblankCb;
|
||||
@@ -49,20 +51,20 @@ u8 RunHelpSystemCallback(void)
|
||||
{
|
||||
case 0:
|
||||
sInHelpSystem = 0;
|
||||
if (gSaveBlock2Ptr->optionsButtonMode != OPTIONS_BUTTON_MODE_NORMAL)
|
||||
if (gSaveBlock2Ptr->optionsButtonMode != OPTIONS_BUTTON_MODE_HELP)
|
||||
return 0;
|
||||
if (JOY_NEW(R_BUTTON) && gUnknown_203F175 == 1)
|
||||
return 0;
|
||||
if (JOY_NEW(L_BUTTON | R_BUTTON))
|
||||
{
|
||||
if (!sub_812B45C() || !gUnknown_3005ECC)
|
||||
if (!sub_812B45C() || !gHelpSystemEnabled)
|
||||
{
|
||||
PlaySE(SE_HELP_PAGE);
|
||||
PlaySE(SE_HELP_NG);
|
||||
return 0;
|
||||
}
|
||||
m4aMPlayStop(&gMPlayInfo_SE1);
|
||||
m4aMPlayStop(&gMPlayInfo_SE2);
|
||||
PlaySE(SE_HELP_OPEN);
|
||||
PlaySE(SE_HELP_OP);
|
||||
if (!gUnknown_203F174)
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x80);
|
||||
SaveCallbacks();
|
||||
@@ -110,7 +112,7 @@ u8 RunHelpSystemCallback(void)
|
||||
case 5:
|
||||
if (!sub_812BB9C(&gHelpSystemListMenu, gHelpSystemListMenuItems))
|
||||
{
|
||||
PlaySE(SE_HELP_CLOSE);
|
||||
PlaySE(SE_HELP_CL);
|
||||
sVideoState.state = 6;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1005,16 +1005,16 @@ bool8 sub_812B45C(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_812B478(void)
|
||||
void HelpSystem_Disable(void)
|
||||
{
|
||||
gUnknown_3005ECC = 0;
|
||||
gHelpSystemEnabled = FALSE;
|
||||
}
|
||||
|
||||
void sub_812B484(void)
|
||||
void HelpSystem_Enable(void)
|
||||
{
|
||||
if (gUnknown_203ADFA != 2 && gUnknown_203ADFA != 3)
|
||||
{
|
||||
gUnknown_3005ECC = 1;
|
||||
gHelpSystemEnabled = TRUE;
|
||||
sub_812B4B8();
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -738,7 +738,7 @@ static void sub_80ECC3C(struct IntroSequenceData * this)
|
||||
switch (this->field_0004)
|
||||
{
|
||||
case 0:
|
||||
PlaySE(BGM_FRLG_GAMEFREAK_LOGO);
|
||||
PlaySE(MUS_TITLEROG);
|
||||
sub_80EDC40();
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
@@ -907,7 +907,7 @@ static void sub_80ECEA4(struct IntroSequenceData * this)
|
||||
case 3:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
m4aSongNumStart(BGM_FRLG_OPENING);
|
||||
m4aSongNumStart(MUS_DEMO);
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
}
|
||||
|
||||
+1
-1
@@ -379,7 +379,7 @@ static bool8 ItemPc_DoGfxSetup(void)
|
||||
{
|
||||
sub_80A0A48(0, 0, 0);
|
||||
ItemPc_SetInitializedFlag(1);
|
||||
PlaySE(SE_PC_LOGON);
|
||||
PlaySE(SE_PC_LOGIN);
|
||||
}
|
||||
gMain.state++;
|
||||
break;
|
||||
|
||||
+2
-2
@@ -496,7 +496,7 @@ void FieldUseFunc_SuperRepel(u8 taskId)
|
||||
{
|
||||
if (VarGet(VAR_REPEL_STEP_COUNT) == 0)
|
||||
{
|
||||
PlaySE(SE_RU_GASYAN);
|
||||
PlaySE(SE_TU_SAA);
|
||||
gTasks[taskId].func = sub_80A19E8;
|
||||
}
|
||||
else
|
||||
@@ -551,7 +551,7 @@ void sub_80A1B48(u8 taskId)
|
||||
{
|
||||
if (++gTasks[taskId].data[8] > 7)
|
||||
{
|
||||
PlaySE(SE_PN_ON);
|
||||
PlaySE(SE_BIDORO);
|
||||
DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -170,7 +170,7 @@ static void Task_ItemfinderResponseSoundsAndAnims(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
PlaySE(SE_TOY_F);
|
||||
PlaySE(SE_DAUGI);
|
||||
CreateArrowSprite(tDingNum, direction);
|
||||
tDingNum++;
|
||||
tNumDingsRemaining--;
|
||||
@@ -191,7 +191,7 @@ static void Task_ItemfinderUnderfootSoundsAndAnims(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
PlaySE(SE_TOY_F);
|
||||
PlaySE(SE_DAUGI);
|
||||
tStartSpriteId = CreateStarSprite();
|
||||
tDingNum++;
|
||||
tNumDingsRemaining--;
|
||||
|
||||
+13
-13
@@ -982,7 +982,7 @@ void sub_800A3F4(void)
|
||||
|
||||
u8 GetMultiplayerId(void)
|
||||
{
|
||||
if (gWirelessCommType == TRUE)
|
||||
if (gWirelessCommType == 1)
|
||||
{
|
||||
return rfu_get_multiplayer_id();
|
||||
}
|
||||
@@ -999,7 +999,7 @@ u8 bitmask_all_link_players_but_self(void)
|
||||
|
||||
bool8 SendBlock(u8 unused, const void *src, u16 size)
|
||||
{
|
||||
if (gWirelessCommType == TRUE)
|
||||
if (gWirelessCommType == 1)
|
||||
{
|
||||
return Rfu_InitBlockSend(src, size);
|
||||
}
|
||||
@@ -1008,7 +1008,7 @@ bool8 SendBlock(u8 unused, const void *src, u16 size)
|
||||
|
||||
bool8 sub_800A474(u8 a0)
|
||||
{
|
||||
if (gWirelessCommType == TRUE)
|
||||
if (gWirelessCommType == 1)
|
||||
{
|
||||
return sub_80FA0F8(a0);
|
||||
}
|
||||
@@ -1023,7 +1023,7 @@ bool8 sub_800A474(u8 a0)
|
||||
|
||||
bool8 IsLinkTaskFinished(void)
|
||||
{
|
||||
if (gWirelessCommType == TRUE)
|
||||
if (gWirelessCommType == 1)
|
||||
{
|
||||
return IsRfuTaskFinished();
|
||||
}
|
||||
@@ -1032,7 +1032,7 @@ bool8 IsLinkTaskFinished(void)
|
||||
|
||||
u8 GetBlockReceivedStatus(void)
|
||||
{
|
||||
if (gWirelessCommType == TRUE)
|
||||
if (gWirelessCommType == 1)
|
||||
{
|
||||
return Rfu_GetBlockReceivedStatus();
|
||||
}
|
||||
@@ -1041,7 +1041,7 @@ u8 GetBlockReceivedStatus(void)
|
||||
|
||||
void SetBlockReceivedFlag(u8 who)
|
||||
{
|
||||
if (gWirelessCommType == TRUE)
|
||||
if (gWirelessCommType == 1)
|
||||
{
|
||||
Rfu_SetBlockReceivedFlag(who);
|
||||
}
|
||||
@@ -1055,7 +1055,7 @@ void ResetBlockReceivedFlags(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (gWirelessCommType == TRUE)
|
||||
if (gWirelessCommType == 1)
|
||||
{
|
||||
for (i = 0; i < MAX_RFU_PLAYERS; i++)
|
||||
{
|
||||
@@ -1073,7 +1073,7 @@ void ResetBlockReceivedFlags(void)
|
||||
|
||||
void ResetBlockReceivedFlag(u8 who)
|
||||
{
|
||||
if (gWirelessCommType == TRUE)
|
||||
if (gWirelessCommType == 1)
|
||||
{
|
||||
Rfu_ResetBlockReceivedFlag(who);
|
||||
}
|
||||
@@ -1314,7 +1314,7 @@ u8 sub_800AA74(void)
|
||||
|
||||
void sub_800AA80(u16 a0)
|
||||
{
|
||||
if (gWirelessCommType == TRUE)
|
||||
if (gWirelessCommType == 1)
|
||||
{
|
||||
task_add_05_task_del_08FA224_when_no_RfuFunc();
|
||||
}
|
||||
@@ -1331,7 +1331,7 @@ void sub_800AA80(u16 a0)
|
||||
|
||||
void sub_800AAC0(void)
|
||||
{
|
||||
if (gWirelessCommType == TRUE)
|
||||
if (gWirelessCommType == 1)
|
||||
{
|
||||
task_add_05_task_del_08FA224_when_no_RfuFunc();
|
||||
}
|
||||
@@ -1386,7 +1386,7 @@ static void sub_800AB38(void)
|
||||
|
||||
void sub_800AB9C(void)
|
||||
{
|
||||
if (gWirelessCommType == TRUE)
|
||||
if (gWirelessCommType == 1)
|
||||
{
|
||||
sub_80FA42C();
|
||||
}
|
||||
@@ -1577,7 +1577,7 @@ static void CB2_PrintErrorMessage(void)
|
||||
{
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
sub_812B484();
|
||||
HelpSystem_Enable();
|
||||
PlaySE(SE_PIN);
|
||||
gWirelessCommType = 0;
|
||||
sLinkErrorBuffer.unk_06 = 0;
|
||||
@@ -1588,7 +1588,7 @@ static void CB2_PrintErrorMessage(void)
|
||||
{
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
sub_812B484();
|
||||
HelpSystem_Enable();
|
||||
rfu_REQ_stopMode();
|
||||
rfu_waitREQComplete();
|
||||
DoSoftReset();
|
||||
|
||||
+1
-2
@@ -104,7 +104,6 @@ static IntrFunc * const sTimerIntrFunc = gIntrTable + 0x7;
|
||||
EWRAM_DATA u8 gDecompressionBuffer[0x4000] = {0};
|
||||
EWRAM_DATA u16 gTrainerId = 0;
|
||||
|
||||
extern bool8 gUnknown_3005ECC;
|
||||
extern bool8 gWirelessCommType;
|
||||
extern bool8 gUnknown_3005E88;
|
||||
|
||||
@@ -138,7 +137,7 @@ void AgbMain()
|
||||
SetDefaultFontsPointer();
|
||||
|
||||
gSoftResetDisabled = FALSE;
|
||||
gUnknown_3005ECC = FALSE;
|
||||
gHelpSystemEnabled = FALSE;
|
||||
|
||||
sub_80F50F4();
|
||||
|
||||
|
||||
+795
@@ -0,0 +1,795 @@
|
||||
#include "global.h"
|
||||
#include "palette.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "bg.h"
|
||||
#include "dma3.h"
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
#include "save.h"
|
||||
#include "event_data.h"
|
||||
#include "window.h"
|
||||
#include "menu.h"
|
||||
#include "link.h"
|
||||
#include "oak_speech.h"
|
||||
#include "overworld.h"
|
||||
#include "quest_log.h"
|
||||
#include "mystery_gift_menu.h"
|
||||
#include "strings.h"
|
||||
#include "sound.h"
|
||||
#include "title_screen.h"
|
||||
#include "help_system.h"
|
||||
#include "string_util.h"
|
||||
#include "pokedex.h"
|
||||
#include "text_window.h"
|
||||
#include "text_window_graphics.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
enum MainMenuType
|
||||
{
|
||||
MAIN_MENU_NEWGAME = 0,
|
||||
MAIN_MENU_CONTINUE,
|
||||
MAIN_MENU_MYSTERYGIFT
|
||||
};
|
||||
|
||||
enum MainMenuWindow
|
||||
{
|
||||
MAIN_MENU_WINDOW_NEWGAME_ONLY = 0,
|
||||
MAIN_MENU_WINDOW_CONTINUE,
|
||||
MAIN_MENU_WINDOW_NEWGAME,
|
||||
MAIN_MENU_WINDOW_MYSTERYGIFT,
|
||||
MAIN_MENU_WINDOW_ERROR,
|
||||
MAIN_MENU_WINDOW_COUNT
|
||||
};
|
||||
|
||||
#define tMenuType data[0]
|
||||
#define tCursorPos data[1]
|
||||
|
||||
#define tUnused8 data[8]
|
||||
#define tMGErrorMsgState data[9]
|
||||
#define tMGErrorType data[10]
|
||||
|
||||
static bool32 MainMenuGpuInit(u8 a0);
|
||||
static void Task_SetWin0BldRegsAndCheckSaveFile(u8 taskId);
|
||||
static void PrintSaveErrorStatus(u8 taskId, const u8 *str);
|
||||
static void Task_SaveErrorStatus_RunPrinterThenWaitButton(u8 taskId);
|
||||
static void Task_SetWin0BldRegsNoSaveFileCheck(u8 taskId);
|
||||
static void Task_WaitFadeAndPrintMainMenuText(u8 taskId);
|
||||
static void Task_PrintMainMenuText(u8 taskId);
|
||||
static void Task_WaitDma3AndFadeIn(u8 taskId);
|
||||
static void Task_UpdateVisualSelection(u8 taskId);
|
||||
static void Task_HandleMenuInput(u8 taskId);
|
||||
static void Task_ExecuteMainMenuSelection(u8 taskId);
|
||||
static void Task_MysteryGiftError(u8 taskId);
|
||||
static void Task_ReturnToTileScreen(u8 taskId);
|
||||
static void MoveWindowByMenuTypeAndCursorPos(u8 menuType, u8 cursorPos);
|
||||
static bool8 HandleMenuInput(u8 taskId);
|
||||
static void PrintMessageOnWindow4(const u8 *str);
|
||||
static void PrintContinueStats(void);
|
||||
static void PrintPlayerName(void);
|
||||
static void PrintPlayTime(void);
|
||||
static void PrintDexCount(void);
|
||||
static void PrintBadgeCount(void);
|
||||
static void LoadUserFrameToBg(u8 bgId);
|
||||
static void SetStdFrame0OnBg(u8 bgId);
|
||||
static void MainMenu_DrawWindow(const struct WindowTemplate * template);
|
||||
static void MainMenu_EraseWindow(const struct WindowTemplate * template);
|
||||
|
||||
static const u8 sString_Dummy[] = _("");
|
||||
static const u8 sString_Newline[] = _("\n");
|
||||
|
||||
static const struct WindowTemplate sWindowTemplate[] = {
|
||||
[MAIN_MENU_WINDOW_NEWGAME_ONLY] = {
|
||||
.bg = 0,
|
||||
.tilemapLeft = 3,
|
||||
.tilemapTop = 1,
|
||||
.width = 24,
|
||||
.height = 2,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x001
|
||||
},
|
||||
[MAIN_MENU_WINDOW_CONTINUE] = {
|
||||
.bg = 0,
|
||||
.tilemapLeft = 3,
|
||||
.tilemapTop = 1,
|
||||
.width = 24,
|
||||
.height = 10,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x001
|
||||
},
|
||||
[MAIN_MENU_WINDOW_NEWGAME] = {
|
||||
.bg = 0,
|
||||
.tilemapLeft = 3,
|
||||
.tilemapTop = 13,
|
||||
.width = 24,
|
||||
.height = 2,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x0f1
|
||||
},
|
||||
[MAIN_MENU_WINDOW_MYSTERYGIFT] = {
|
||||
.bg = 0,
|
||||
.tilemapLeft = 3,
|
||||
.tilemapTop = 17,
|
||||
.width = 24,
|
||||
.height = 2,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x121
|
||||
},
|
||||
[MAIN_MENU_WINDOW_ERROR] = {
|
||||
.bg = 0,
|
||||
.tilemapLeft = 3,
|
||||
.tilemapTop = 15,
|
||||
.width = 24,
|
||||
.height = 4,
|
||||
.paletteNum = 15,
|
||||
.baseBlock = 0x001
|
||||
},
|
||||
[MAIN_MENU_WINDOW_COUNT] = DUMMY_WIN_TEMPLATE
|
||||
};
|
||||
|
||||
static const u16 sBgPal00[] = INCBIN_U16("data/main_menu/unk_8234648.gbapal");
|
||||
static const u16 sBgPal15[] = INCBIN_U16("data/main_menu/unk_8234668.gbapal");
|
||||
|
||||
static const u8 sTextColor1[] = { 10, 11, 12 };
|
||||
|
||||
static const u8 sTextColor2[] = { 10, 1, 12 };
|
||||
|
||||
static const struct BgTemplate sBgTemplate[] = {
|
||||
{
|
||||
.bg = 0,
|
||||
.charBaseIndex = 0,
|
||||
.mapBaseIndex = 30,
|
||||
.priority = 0
|
||||
}
|
||||
};
|
||||
|
||||
static const u8 sMenuCursorYMax[] = { 0, 1, 2 };
|
||||
|
||||
static void CB2_MainMenu(void)
|
||||
{
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
UpdatePaletteFade();
|
||||
}
|
||||
|
||||
static void VBlankCB_MainMenu(void)
|
||||
{
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
void CB2_InitMainMenu(void)
|
||||
{
|
||||
MainMenuGpuInit(1);
|
||||
}
|
||||
|
||||
static void CB2_InitMainMenu_2(void)
|
||||
{
|
||||
MainMenuGpuInit(1);
|
||||
}
|
||||
|
||||
static bool32 MainMenuGpuInit(u8 a0)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
SetVBlankCallback(NULL);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BG2CNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1CNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0CNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BG2HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG2VOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG1VOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0HOFS, 0);
|
||||
SetGpuReg(REG_OFFSET_BG0VOFS, 0);
|
||||
DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE);
|
||||
DmaFill32(3, 0, (void *)OAM, OAM_SIZE);
|
||||
DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2);
|
||||
ScanlineEffect_Stop();
|
||||
ResetTasks();
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
ResetPaletteFade();
|
||||
ResetBgsAndClearDma3BusyFlags(FALSE);
|
||||
InitBgsFromTemplates(0, sBgTemplate, NELEMS(sBgTemplate));
|
||||
ChangeBgX(0, 0, 0);
|
||||
ChangeBgY(0, 0, 0);
|
||||
ChangeBgX(1, 0, 0);
|
||||
ChangeBgY(1, 0, 0);
|
||||
ChangeBgX(2, 0, 0);
|
||||
ChangeBgY(2, 0, 0);
|
||||
InitWindows(sWindowTemplate);
|
||||
DeactivateAllTextPrinters();
|
||||
LoadPalette(sBgPal00, 0x00, 0x20);
|
||||
LoadPalette(sBgPal15, 0xF0, 0x20);
|
||||
SetGpuReg(REG_OFFSET_WIN0H, 0);
|
||||
SetGpuReg(REG_OFFSET_WIN0V, 0);
|
||||
SetGpuReg(REG_OFFSET_WININ, 0);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
SetMainCallback2(CB2_MainMenu);
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON);
|
||||
taskId = CreateTask(Task_SetWin0BldRegsAndCheckSaveFile, 0);
|
||||
gTasks[taskId].tCursorPos = 0;
|
||||
gTasks[taskId].tUnused8 = a0;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* The entire screen is darkened slightly except at WIN0 to indicate
|
||||
* the player cursor position.
|
||||
*/
|
||||
|
||||
static void Task_SetWin0BldRegsAndCheckSaveFile(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_WIN0H, 0);
|
||||
SetGpuReg(REG_OFFSET_WIN0V, 0);
|
||||
SetGpuReg(REG_OFFSET_WININ, 0x0001);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, 0x0021);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0));
|
||||
SetGpuReg(REG_OFFSET_BLDY, 7);
|
||||
switch (gSaveFileStatus)
|
||||
{
|
||||
case SAVE_STATUS_OK:
|
||||
LoadUserFrameToBg(0);
|
||||
if (Flag_0x839_IsSet() == TRUE)
|
||||
{
|
||||
gTasks[taskId].tMenuType = MAIN_MENU_MYSTERYGIFT;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].tMenuType = MAIN_MENU_CONTINUE;
|
||||
}
|
||||
gTasks[taskId].func = Task_SetWin0BldRegsNoSaveFileCheck;
|
||||
break;
|
||||
case SAVE_STATUS_INVALID:
|
||||
SetStdFrame0OnBg(0);
|
||||
gTasks[taskId].tMenuType = MAIN_MENU_NEWGAME;
|
||||
PrintSaveErrorStatus(taskId, gText_SaveFileHasBeenDeleted);
|
||||
break;
|
||||
case SAVE_STATUS_ERROR:
|
||||
SetStdFrame0OnBg(0);
|
||||
gTasks[taskId].tMenuType = MAIN_MENU_CONTINUE;
|
||||
PrintSaveErrorStatus(taskId, gText_SaveFileCorruptedPrevWillBeLoaded);
|
||||
if (Flag_0x839_IsSet() == TRUE)
|
||||
{
|
||||
gTasks[taskId].tMenuType = MAIN_MENU_MYSTERYGIFT;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[taskId].tMenuType = MAIN_MENU_CONTINUE;
|
||||
}
|
||||
break;
|
||||
case SAVE_STATUS_EMPTY:
|
||||
default:
|
||||
LoadUserFrameToBg(0);
|
||||
gTasks[taskId].tMenuType = MAIN_MENU_NEWGAME;
|
||||
gTasks[taskId].func = Task_SetWin0BldRegsNoSaveFileCheck;
|
||||
break;
|
||||
case SAVE_STATUS_NO_FLASH:
|
||||
SetStdFrame0OnBg(0);
|
||||
gTasks[taskId].tMenuType = MAIN_MENU_NEWGAME;
|
||||
PrintSaveErrorStatus(taskId, gText_1MSubCircuitBoardNotInstalled);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void PrintSaveErrorStatus(u8 taskId, const u8 *str)
|
||||
{
|
||||
PrintMessageOnWindow4(str);
|
||||
gTasks[taskId].func = Task_SaveErrorStatus_RunPrinterThenWaitButton;
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0xFFFF);
|
||||
ShowBg(0);
|
||||
SetVBlankCallback(VBlankCB_MainMenu);
|
||||
}
|
||||
|
||||
static void Task_SaveErrorStatus_RunPrinterThenWaitButton(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
RunTextPrinters();
|
||||
if (!IsTextPrinterActive(MAIN_MENU_WINDOW_ERROR) && JOY_NEW(A_BUTTON))
|
||||
{
|
||||
ClearWindowTilemap(MAIN_MENU_WINDOW_ERROR);
|
||||
MainMenu_EraseWindow(&sWindowTemplate[MAIN_MENU_WINDOW_ERROR]);
|
||||
LoadUserFrameToBg(0);
|
||||
if (gTasks[taskId].tMenuType == MAIN_MENU_NEWGAME)
|
||||
gTasks[taskId].func = Task_SetWin0BldRegsNoSaveFileCheck;
|
||||
else
|
||||
gTasks[taskId].func = Task_PrintMainMenuText;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Task_SetWin0BldRegsNoSaveFileCheck(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_WIN0H, 0);
|
||||
SetGpuReg(REG_OFFSET_WIN0V, 0);
|
||||
SetGpuReg(REG_OFFSET_WININ, 0x0001);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, 0x0021);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0));
|
||||
SetGpuReg(REG_OFFSET_BLDY, 7);
|
||||
if (gTasks[taskId].tMenuType == MAIN_MENU_NEWGAME)
|
||||
gTasks[taskId].func = Task_ExecuteMainMenuSelection;
|
||||
else
|
||||
gTasks[taskId].func = Task_WaitFadeAndPrintMainMenuText;
|
||||
}
|
||||
}
|
||||
|
||||
static void Task_WaitFadeAndPrintMainMenuText(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
Task_PrintMainMenuText(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
static void Task_PrintMainMenuText(u8 taskId)
|
||||
{
|
||||
u16 pal;
|
||||
SetGpuReg(REG_OFFSET_WIN0H, 0);
|
||||
SetGpuReg(REG_OFFSET_WIN0V, 0);
|
||||
SetGpuReg(REG_OFFSET_WININ, 0x0001);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, 0x0021);
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN);
|
||||
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0));
|
||||
SetGpuReg(REG_OFFSET_BLDY, 7);
|
||||
if (gSaveBlock2Ptr->playerGender == MALE)
|
||||
pal = RGB(4, 16, 31);
|
||||
else
|
||||
pal = RGB(31, 3, 21);
|
||||
LoadPalette(&pal, 0xF1, 2);
|
||||
switch (gTasks[taskId].tMenuType)
|
||||
{
|
||||
case MAIN_MENU_NEWGAME:
|
||||
default:
|
||||
FillWindowPixelBuffer(MAIN_MENU_WINDOW_NEWGAME_ONLY, PIXEL_FILL(10));
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_NEWGAME_ONLY, 2, 2, 2, sTextColor1, -1, gText_NewGame);
|
||||
MainMenu_DrawWindow(&sWindowTemplate[MAIN_MENU_WINDOW_NEWGAME_ONLY]);
|
||||
PutWindowTilemap(MAIN_MENU_WINDOW_NEWGAME_ONLY);
|
||||
CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME_ONLY, 3);
|
||||
break;
|
||||
case MAIN_MENU_CONTINUE:
|
||||
FillWindowPixelBuffer(MAIN_MENU_WINDOW_CONTINUE, PIXEL_FILL(10));
|
||||
FillWindowPixelBuffer(MAIN_MENU_WINDOW_NEWGAME, PIXEL_FILL(10));
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_CONTINUE, 2, 2, 2, sTextColor1, -1, gText_Continue);
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_NEWGAME, 2, 2, 2, sTextColor1, -1, gText_NewGame);
|
||||
PrintContinueStats();
|
||||
MainMenu_DrawWindow(&sWindowTemplate[MAIN_MENU_WINDOW_CONTINUE]);
|
||||
MainMenu_DrawWindow(&sWindowTemplate[MAIN_MENU_WINDOW_NEWGAME]);
|
||||
PutWindowTilemap(MAIN_MENU_WINDOW_CONTINUE);
|
||||
PutWindowTilemap(MAIN_MENU_WINDOW_NEWGAME);
|
||||
CopyWindowToVram(MAIN_MENU_WINDOW_CONTINUE, 2);
|
||||
CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME, 3);
|
||||
break;
|
||||
case MAIN_MENU_MYSTERYGIFT:
|
||||
FillWindowPixelBuffer(MAIN_MENU_WINDOW_CONTINUE, PIXEL_FILL(10));
|
||||
FillWindowPixelBuffer(MAIN_MENU_WINDOW_NEWGAME, PIXEL_FILL(10));
|
||||
FillWindowPixelBuffer(MAIN_MENU_WINDOW_MYSTERYGIFT, PIXEL_FILL(10));
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_CONTINUE, 2, 2, 2, sTextColor1, -1, gText_Continue);
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_NEWGAME, 2, 2, 2, sTextColor1, -1, gText_NewGame);
|
||||
gTasks[taskId].tMGErrorType = 1;
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_MYSTERYGIFT, 2, 2, 2, sTextColor1, -1, gText_MysteryGift);
|
||||
PrintContinueStats();
|
||||
MainMenu_DrawWindow(&sWindowTemplate[MAIN_MENU_WINDOW_CONTINUE]);
|
||||
MainMenu_DrawWindow(&sWindowTemplate[MAIN_MENU_WINDOW_NEWGAME]);
|
||||
MainMenu_DrawWindow(&sWindowTemplate[MAIN_MENU_WINDOW_MYSTERYGIFT]);
|
||||
PutWindowTilemap(MAIN_MENU_WINDOW_CONTINUE);
|
||||
PutWindowTilemap(MAIN_MENU_WINDOW_NEWGAME);
|
||||
PutWindowTilemap(MAIN_MENU_WINDOW_MYSTERYGIFT);
|
||||
CopyWindowToVram(MAIN_MENU_WINDOW_CONTINUE, 2);
|
||||
CopyWindowToVram(MAIN_MENU_WINDOW_NEWGAME, 2);
|
||||
CopyWindowToVram(MAIN_MENU_WINDOW_MYSTERYGIFT, 3);
|
||||
break;
|
||||
}
|
||||
gTasks[taskId].func = Task_WaitDma3AndFadeIn;
|
||||
}
|
||||
|
||||
static void Task_WaitDma3AndFadeIn(u8 taskId)
|
||||
{
|
||||
if (CheckForSpaceForDma3Request(-1) != -1)
|
||||
{
|
||||
gTasks[taskId].func = Task_UpdateVisualSelection;
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0xFFFF);
|
||||
ShowBg(0);
|
||||
SetVBlankCallback(VBlankCB_MainMenu);
|
||||
}
|
||||
}
|
||||
|
||||
static void Task_UpdateVisualSelection(u8 taskId)
|
||||
{
|
||||
MoveWindowByMenuTypeAndCursorPos(gTasks[taskId].tMenuType, gTasks[taskId].tCursorPos);
|
||||
gTasks[taskId].func = Task_HandleMenuInput;
|
||||
}
|
||||
|
||||
static void Task_HandleMenuInput(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active && HandleMenuInput(taskId))
|
||||
{
|
||||
gTasks[taskId].func = Task_UpdateVisualSelection;
|
||||
}
|
||||
}
|
||||
|
||||
static void Task_ExecuteMainMenuSelection(u8 taskId)
|
||||
{
|
||||
s32 menuAction;
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
switch (gTasks[taskId].tMenuType)
|
||||
{
|
||||
default:
|
||||
case MAIN_MENU_NEWGAME:
|
||||
menuAction = MAIN_MENU_NEWGAME;
|
||||
break;
|
||||
case MAIN_MENU_CONTINUE:
|
||||
switch (gTasks[taskId].tCursorPos)
|
||||
{
|
||||
default:
|
||||
case 0:
|
||||
menuAction = MAIN_MENU_CONTINUE;
|
||||
break;
|
||||
case 1:
|
||||
menuAction = MAIN_MENU_NEWGAME;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case MAIN_MENU_MYSTERYGIFT:
|
||||
switch (gTasks[taskId].tCursorPos)
|
||||
{
|
||||
default:
|
||||
case 0:
|
||||
menuAction = MAIN_MENU_CONTINUE;
|
||||
break;
|
||||
case 1:
|
||||
menuAction = MAIN_MENU_NEWGAME;
|
||||
break;
|
||||
case 2:
|
||||
if (!IsWirelessAdapterConnected())
|
||||
{
|
||||
SetStdFrame0OnBg(0);
|
||||
gTasks[taskId].func = Task_MysteryGiftError;
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
menuAction = MAIN_MENU_MYSTERYGIFT;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
switch (menuAction)
|
||||
{
|
||||
default:
|
||||
case MAIN_MENU_NEWGAME:
|
||||
gUnknown_2031DE0 = 0;
|
||||
FreeAllWindowBuffers();
|
||||
DestroyTask(taskId);
|
||||
StartNewGameScene();
|
||||
break;
|
||||
case MAIN_MENU_CONTINUE:
|
||||
gPlttBufferUnfaded[0] = RGB_BLACK;
|
||||
gPlttBufferFaded[0] = RGB_BLACK;
|
||||
gUnknown_2031DE0 = 0;
|
||||
FreeAllWindowBuffers();
|
||||
TrySetUpQuestLogScenes_ElseContinueFromSave(taskId);
|
||||
break;
|
||||
case MAIN_MENU_MYSTERYGIFT:
|
||||
SetMainCallback2(c2_mystery_gift);
|
||||
HelpSystem_Disable();
|
||||
FreeAllWindowBuffers();
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Task_MysteryGiftError(u8 taskId)
|
||||
{
|
||||
switch (gTasks[taskId].tMGErrorMsgState)
|
||||
{
|
||||
case 0:
|
||||
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
|
||||
if (gTasks[taskId].tMGErrorType == 1)
|
||||
PrintMessageOnWindow4(gText_WirelessAdapterIsNotConnected);
|
||||
else
|
||||
PrintMessageOnWindow4(gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached);
|
||||
gTasks[taskId].tMGErrorMsgState++;
|
||||
break;
|
||||
case 1:
|
||||
if (!gPaletteFade.active)
|
||||
gTasks[taskId].tMGErrorMsgState++;
|
||||
break;
|
||||
case 2:
|
||||
RunTextPrinters();
|
||||
if (!IsTextPrinterActive(4))
|
||||
gTasks[taskId].tMGErrorMsgState++;
|
||||
break;
|
||||
case 3:
|
||||
if (JOY_NEW(A_BUTTON | B_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
|
||||
gTasks[taskId].func = Task_ReturnToTileScreen;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void Task_ReturnToTileScreen(u8 taskId)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetMainCallback2(CB2_InitTitleScreen);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
static void MoveWindowByMenuTypeAndCursorPos(u8 menuType, u8 cursorPos)
|
||||
{
|
||||
u16 win0vTop, win0vBot;
|
||||
SetGpuReg(REG_OFFSET_WIN0H, 0x12DE);
|
||||
switch (menuType)
|
||||
{
|
||||
default:
|
||||
case MAIN_MENU_NEWGAME:
|
||||
win0vTop = 0x00 << 8;
|
||||
win0vBot = 0x20;
|
||||
break;
|
||||
case MAIN_MENU_CONTINUE:
|
||||
case MAIN_MENU_MYSTERYGIFT:
|
||||
switch (cursorPos)
|
||||
{
|
||||
default:
|
||||
case 0: // CONTINUE
|
||||
win0vTop = 0x00 << 8;
|
||||
win0vBot = 0x60;
|
||||
break;
|
||||
case 1: // NEW GAME
|
||||
win0vTop = 0x60 << 8;
|
||||
win0vBot = 0x80;
|
||||
break;
|
||||
case 2: // MYSTERY GIFT
|
||||
win0vTop = 0x80 << 8;
|
||||
win0vBot = 0xA0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
SetGpuReg(REG_OFFSET_WIN0V, (win0vTop + (2 << 8)) | (win0vBot - 2));
|
||||
}
|
||||
|
||||
static bool8 HandleMenuInput(u8 taskId)
|
||||
{
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
IsWirelessAdapterConnected(); // called for its side effects only
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
|
||||
gTasks[taskId].func = Task_ExecuteMainMenuSelection;
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
|
||||
SetGpuReg(REG_OFFSET_WIN0H, 0xF0);
|
||||
SetGpuReg(REG_OFFSET_WIN0V, 0xA0);
|
||||
gTasks[taskId].func = Task_ReturnToTileScreen;
|
||||
}
|
||||
else if (JOY_NEW(DPAD_UP) && gTasks[taskId].tCursorPos > 0)
|
||||
{
|
||||
gTasks[taskId].tCursorPos--;
|
||||
return TRUE;
|
||||
}
|
||||
else if (JOY_NEW(DPAD_DOWN) && gTasks[taskId].tCursorPos < sMenuCursorYMax[gTasks[taskId].tMenuType])
|
||||
{
|
||||
gTasks[taskId].tCursorPos++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void PrintMessageOnWindow4(const u8 *str)
|
||||
{
|
||||
FillWindowPixelBuffer(MAIN_MENU_WINDOW_ERROR, PIXEL_FILL(10));
|
||||
MainMenu_DrawWindow(&sWindowTemplate[4]);
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_ERROR, 2, 0, 2, sTextColor1, 2, str);
|
||||
PutWindowTilemap(MAIN_MENU_WINDOW_ERROR);
|
||||
CopyWindowToVram(MAIN_MENU_WINDOW_ERROR, 2);
|
||||
SetGpuReg(REG_OFFSET_WIN0H, 0x13DD);
|
||||
SetGpuReg(REG_OFFSET_WIN0V, 0x739D);
|
||||
}
|
||||
|
||||
static void PrintContinueStats(void)
|
||||
{
|
||||
PrintPlayerName();
|
||||
PrintDexCount();
|
||||
PrintPlayTime();
|
||||
PrintBadgeCount();
|
||||
}
|
||||
|
||||
static void PrintPlayerName(void)
|
||||
{
|
||||
s32 i;
|
||||
u8 name[OT_NAME_LENGTH + 1];
|
||||
u8 *ptr;
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_CONTINUE, 2, 2, 18, sTextColor2, -1, gText_Player);
|
||||
ptr = name;
|
||||
for (i = 0; i < OT_NAME_LENGTH; i++)
|
||||
*ptr++ = gSaveBlock2Ptr->playerName[i];
|
||||
*ptr = EOS;
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_CONTINUE, 2, 62, 18, sTextColor2, -1, name);
|
||||
}
|
||||
|
||||
static void PrintPlayTime(void)
|
||||
{
|
||||
u8 strbuf[30];
|
||||
u8 *ptr;
|
||||
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_CONTINUE, 2, 2, 34, sTextColor2, -1, gText_Time);
|
||||
ptr = ConvertIntToDecimalStringN(strbuf, gSaveBlock2Ptr->playTimeHours, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
*ptr++ = CHAR_COLON;
|
||||
ConvertIntToDecimalStringN(ptr, gSaveBlock2Ptr->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_CONTINUE, 2, 62, 34, sTextColor2, -1, strbuf);
|
||||
}
|
||||
|
||||
static void PrintDexCount(void)
|
||||
{
|
||||
u8 strbuf[30];
|
||||
u8 *ptr;
|
||||
u16 dexcount;
|
||||
if (FlagGet(FLAG_0x829) == TRUE)
|
||||
{
|
||||
if (IsNationalPokedexEnabled())
|
||||
dexcount = GetNationalPokedexCount(FLAG_GET_CAUGHT);
|
||||
else
|
||||
dexcount = GetKantoPokedexCount(FLAG_GET_CAUGHT);
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_CONTINUE, 2, 2, 50, sTextColor2, -1, gText_Pokedex);
|
||||
ptr = ConvertIntToDecimalStringN(strbuf, dexcount, STR_CONV_MODE_LEFT_ALIGN, 3);
|
||||
StringAppend(ptr, gTextJPDummy_Hiki);
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_CONTINUE, 2, 62, 50, sTextColor2, -1, strbuf);
|
||||
}
|
||||
}
|
||||
|
||||
static void PrintBadgeCount(void)
|
||||
{
|
||||
u8 strbuf[30];
|
||||
u8 *ptr;
|
||||
u32 flagId;
|
||||
u8 nbadges = 0;
|
||||
for (flagId = FLAG_UNK820; flagId < FLAG_UNK820 + 8; flagId++)
|
||||
{
|
||||
if (FlagGet(flagId))
|
||||
nbadges++;
|
||||
}
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_CONTINUE, 2, 2, 66, sTextColor2, -1, gText_Badges);
|
||||
ptr = ConvertIntToDecimalStringN(strbuf, nbadges, STR_CONV_MODE_LEADING_ZEROS, 1);
|
||||
StringAppend(ptr, gTextJPDummy_Ko);
|
||||
AddTextPrinterParameterized3(MAIN_MENU_WINDOW_CONTINUE, 2, 62, 66, sTextColor2, -1, strbuf);
|
||||
}
|
||||
|
||||
static void LoadUserFrameToBg(u8 bgId)
|
||||
{
|
||||
LoadBgTiles(bgId, GetUserFrameGraphicsInfo(gSaveBlock2Ptr->optionsWindowFrameType)->tiles, 0x120, 0x1B1);
|
||||
LoadPalette(GetUserFrameGraphicsInfo(gSaveBlock2Ptr->optionsWindowFrameType)->palette, 0x20, 0x20);
|
||||
MainMenu_EraseWindow(&sWindowTemplate[MAIN_MENU_WINDOW_ERROR]);
|
||||
}
|
||||
|
||||
static void SetStdFrame0OnBg(u8 bgId)
|
||||
{
|
||||
TextWindow_SetStdFrame0_WithPal(MAIN_MENU_WINDOW_NEWGAME_ONLY, 0x1B1, 0x20);
|
||||
MainMenu_EraseWindow(&sWindowTemplate[MAIN_MENU_WINDOW_ERROR]);
|
||||
}
|
||||
|
||||
static void MainMenu_DrawWindow(const struct WindowTemplate * windowTemplate)
|
||||
{
|
||||
FillBgTilemapBufferRect(
|
||||
windowTemplate->bg,
|
||||
0x1B1,
|
||||
windowTemplate->tilemapLeft - 1,
|
||||
windowTemplate->tilemapTop - 1,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
);
|
||||
FillBgTilemapBufferRect(
|
||||
windowTemplate->bg,
|
||||
0x1B2,
|
||||
windowTemplate->tilemapLeft,
|
||||
windowTemplate->tilemapTop - 1,
|
||||
windowTemplate->width,
|
||||
windowTemplate->height,
|
||||
2
|
||||
);
|
||||
FillBgTilemapBufferRect(
|
||||
windowTemplate->bg,
|
||||
0x1B3,
|
||||
windowTemplate->tilemapLeft +
|
||||
windowTemplate->width,
|
||||
windowTemplate->tilemapTop - 1,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
);
|
||||
FillBgTilemapBufferRect(
|
||||
windowTemplate->bg,
|
||||
0x1B4,
|
||||
windowTemplate->tilemapLeft - 1,
|
||||
windowTemplate->tilemapTop,
|
||||
1,
|
||||
windowTemplate->height,
|
||||
2
|
||||
);
|
||||
FillBgTilemapBufferRect(
|
||||
windowTemplate->bg,
|
||||
0x1B6,
|
||||
windowTemplate->tilemapLeft +
|
||||
windowTemplate->width,
|
||||
windowTemplate->tilemapTop,
|
||||
1,
|
||||
windowTemplate->height,
|
||||
2
|
||||
);
|
||||
FillBgTilemapBufferRect(
|
||||
windowTemplate->bg,
|
||||
0x1B7,
|
||||
windowTemplate->tilemapLeft - 1,
|
||||
windowTemplate->tilemapTop +
|
||||
windowTemplate->height,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
);
|
||||
FillBgTilemapBufferRect(
|
||||
windowTemplate->bg,
|
||||
0x1B8,
|
||||
windowTemplate->tilemapLeft,
|
||||
windowTemplate->tilemapTop +
|
||||
windowTemplate->height,
|
||||
windowTemplate->width,
|
||||
1,
|
||||
2
|
||||
);
|
||||
FillBgTilemapBufferRect(
|
||||
windowTemplate->bg,
|
||||
0x1B9,
|
||||
windowTemplate->tilemapLeft +
|
||||
windowTemplate->width,
|
||||
windowTemplate->tilemapTop +
|
||||
windowTemplate->height,
|
||||
1,
|
||||
1,
|
||||
2
|
||||
);
|
||||
CopyBgTilemapBufferToVram(windowTemplate->bg);
|
||||
}
|
||||
|
||||
static void MainMenu_EraseWindow(const struct WindowTemplate * windowTemplate)
|
||||
{
|
||||
FillBgTilemapBufferRect(
|
||||
windowTemplate->bg,
|
||||
0x000,
|
||||
windowTemplate->tilemapLeft - 1,
|
||||
windowTemplate->tilemapTop - 1,
|
||||
windowTemplate->tilemapLeft +
|
||||
windowTemplate->width + 1,
|
||||
windowTemplate->tilemapTop +
|
||||
windowTemplate->height + 1,
|
||||
2
|
||||
);
|
||||
CopyBgTilemapBufferToVram(windowTemplate->bg);
|
||||
}
|
||||
+1
-1
@@ -59,7 +59,7 @@ u16 sub_8146CE8(void)
|
||||
struct MysteryEventStruct *r4 = sub_8143D94();
|
||||
u16 r5;
|
||||
|
||||
if (!sub_806E2BC() || !ValidateReceivedWonderNews())
|
||||
if (!Flag_0x839_IsSet() || !ValidateReceivedWonderNews())
|
||||
return 0;
|
||||
|
||||
r5 = sub_8146E0C(r4);
|
||||
|
||||
+2
-2
@@ -192,7 +192,7 @@ u32 sub_8143770(u8 * r4, u16 * r5)
|
||||
case 2:
|
||||
if (GetLinkPlayerCount_2() == 2)
|
||||
{
|
||||
PlaySE(SE_TOY_G);
|
||||
PlaySE(SE_PINPON);
|
||||
CheckShouldAdvanceLinkState();
|
||||
*r5 = 0;
|
||||
*r4 = 3;
|
||||
@@ -475,7 +475,7 @@ void sub_8143910(u8 taskId)
|
||||
data->state = 0;
|
||||
break;
|
||||
case 26:
|
||||
sub_812B484();
|
||||
HelpSystem_Enable();
|
||||
Free(data->t10);
|
||||
DestroyTask(taskId);
|
||||
SetMainCallback2(MainCB_FreeAllBuffersAndReturnToInitTitleScreen);
|
||||
|
||||
+4
-66
@@ -24,6 +24,7 @@
|
||||
#include "mevent_server.h"
|
||||
#include "menews_jisan.h"
|
||||
#include "help_system.h"
|
||||
#include "strings.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
EWRAM_DATA u8 sDownArrowCounterAndYCoordIdx[8] = {};
|
||||
@@ -33,69 +34,6 @@ void task_add_00_mystery_gift(void);
|
||||
void task00_mystery_gift(u8 taskId);
|
||||
void task_add_00_ereader(void);
|
||||
|
||||
extern const u8 gText_PickOKExit[];
|
||||
extern const u8 gText_PickOKCancel[];
|
||||
extern const u8 gText_MysteryGift[];
|
||||
extern const u8 gJPText_MysteryGift[];
|
||||
extern const u8 gJPText_DecideStop[];
|
||||
extern const u8 gText_WhatToDoWithCards[];
|
||||
extern const u8 gText_WhatToDoWithNews[];
|
||||
extern const u8 gText_OkayToDiscardNews[];
|
||||
extern const u8 gText_IfThrowAwayCardEventWontHappen[];
|
||||
extern const u8 gText_WonderCardThrownAway[];
|
||||
extern const u8 gText_WonderNewsThrownAway[];
|
||||
extern const u8 gText_DataWillBeSaved[];
|
||||
extern const u8 gText_SaveCompletedPressA[];
|
||||
extern const u8 gText_WonderCards[];
|
||||
extern const u8 gText_WonderNews[];
|
||||
extern const u8 gText_Exit3[];
|
||||
extern const u8 gText_WirelessCommunication[];
|
||||
extern const u8 gText_Friend2[];
|
||||
extern const u8 gFameCheckerText_Cancel[];
|
||||
extern const u8 gText_Receive[];
|
||||
extern const u8 gText_Send[];
|
||||
extern const u8 gText_Toss[];
|
||||
extern const u8 gText_VarietyOfEventsImportedWireless[];
|
||||
extern const u8 gText_WonderCardsInPossession[];
|
||||
extern const u8 gText_ReadNewsThatArrived[];
|
||||
extern const u8 gText_ReturnToTitle[];
|
||||
extern const u8 gText_NothingSentOver[];
|
||||
extern const u8 gText_RecordUploadedViaWireless[];
|
||||
extern const u8 gText_WonderCardReceived[];
|
||||
extern const u8 gText_WonderCardReceivedFrom[];
|
||||
extern const u8 gText_WonderNewsReceived[];
|
||||
extern const u8 gText_WonderNewsReceivedFrom[];
|
||||
extern const u8 gText_NewStampReceived[];
|
||||
extern const u8 gText_AlreadyHadCard[];
|
||||
extern const u8 gText_AlreadyHadStamp[];
|
||||
extern const u8 gText_AlreadyHadNews[];
|
||||
extern const u8 gText_NoMoreRoomForStamps[];
|
||||
extern const u8 gText_CommunicationCanceled[];
|
||||
extern const u8 gText_CantAcceptCardFromTrainer[];
|
||||
extern const u8 gText_CantAcceptNewsFromTrainer[];
|
||||
extern const u8 gText_CommunicationError[];
|
||||
extern const u8 gText_NewTrainerReceived[];
|
||||
extern const u8 gText_WonderCardSentTo[];
|
||||
extern const u8 gText_WonderNewsSentTo[];
|
||||
extern const u8 gText_StampSentTo[];
|
||||
extern const u8 gText_OtherTrainerHasCard[];
|
||||
extern const u8 gText_OtherTrainerHasStamp[];
|
||||
extern const u8 gText_OtherTrainerHasNews[];
|
||||
extern const u8 gText_OtherTrainerCanceled[];
|
||||
extern const u8 gText_GiftSentTo[];
|
||||
extern const u8 gText_CantSendGiftToTrainer[];
|
||||
extern const u8 gText_DontHaveCardNewOneInput[];
|
||||
extern const u8 gText_DontHaveNewsNewOneInput[];
|
||||
extern const u8 gText_WhereShouldCardBeAccessed[];
|
||||
extern const u8 gText_WhereShouldNewsBeAccessed[];
|
||||
extern const u8 gText_Communicating[];
|
||||
extern const u8 gText_ThrowAwayWonderCard[];
|
||||
extern const u8 gText_HaventReceivedCardsGift[];
|
||||
extern const u8 gText_CommunicationCompleted[];
|
||||
extern const u8 gText_HaventReceivedGiftOkayToDiscard[];
|
||||
extern const u8 gText_SendingWonderCard[];
|
||||
extern const u8 gText_SendingWonderNews[];
|
||||
|
||||
const u16 gUnkTextboxBorderPal[] = INCBIN_U16("graphics/interface/unk_textbox_border.gbapal");
|
||||
const u32 gUnkTextboxBorderGfx[] = INCBIN_U32("graphics/interface/unk_textbox_border.4bpp.lz");
|
||||
|
||||
@@ -490,7 +428,7 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader)
|
||||
case 3:
|
||||
ShowBg(0);
|
||||
ShowBg(3);
|
||||
PlayBGM(BGM_FRLG_MYSTERY_GIFT);
|
||||
PlayBGM(MUS_OKURIMONO);
|
||||
SetVBlankCallback(vblankcb_mystery_gift_e_reader_run);
|
||||
EnableInterrupts(INTR_FLAG_VBLANK | INTR_FLAG_VCOUNT | INTR_FLAG_TIMER3 | INTR_FLAG_SERIAL);
|
||||
return TRUE;
|
||||
@@ -538,7 +476,7 @@ void PrintMysteryGiftOrEReaderTopMenu(bool8 mg_or_ereader, bool32 usePickOkCance
|
||||
if (!mg_or_ereader)
|
||||
{
|
||||
src = usePickOkCancel == TRUE ? gText_PickOKExit : gText_PickOKCancel;
|
||||
AddTextPrinterParameterized4(0, 2, 2, 2, 0, 0, sMG_Ereader_TextColor_1, 0, gText_MysteryGift);
|
||||
AddTextPrinterParameterized4(0, 2, 2, 2, 0, 0, sMG_Ereader_TextColor_1, 0, gText_MysteryGift2);
|
||||
width = 222 - GetStringWidth(0, src, 0);
|
||||
AddTextPrinterParameterized4(0, 0, width, 2, 0, 0, sMG_Ereader_TextColor_1, 0, src);
|
||||
}
|
||||
@@ -1742,7 +1680,7 @@ void task00_mystery_gift(u8 taskId)
|
||||
break;
|
||||
case 37:
|
||||
CloseLink();
|
||||
sub_812B484();
|
||||
HelpSystem_Enable();
|
||||
Free(data->buffer);
|
||||
DestroyTask(taskId);
|
||||
SetMainCallback2(MainCB_FreeAllBuffersAndReturnToInitTitleScreen);
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ static void SetDefaultOptions(void)
|
||||
gSaveBlock2Ptr->optionsBattleStyle = OPTIONS_BATTLE_STYLE_SHIFT;
|
||||
gSaveBlock2Ptr->optionsBattleSceneOff = FALSE;
|
||||
gSaveBlock2Ptr->regionMapZoom = FALSE;
|
||||
gSaveBlock2Ptr->optionsButtonMode = OPTIONS_BUTTON_MODE_NORMAL;
|
||||
gSaveBlock2Ptr->optionsButtonMode = OPTIONS_BUTTON_MODE_HELP;
|
||||
}
|
||||
|
||||
static void ClearPokedexFlags(void)
|
||||
|
||||
+5
-5
@@ -561,7 +561,7 @@ static void Task_OaksSpeech1(u8 taskId)
|
||||
ShowBg(0);
|
||||
ShowBg(1);
|
||||
SetVBlankCallback(VBlankCB_NewGameOaksSpeech);
|
||||
PlayBGM(BGM_FRLG_GAME_EXPLANATION_START);
|
||||
PlayBGM(MUS_SOUSA);
|
||||
gTasks[taskId].func = Task_OaksSpeech2;
|
||||
gMain.state = 0;
|
||||
return;
|
||||
@@ -715,7 +715,7 @@ static void Task_OakSpeech6(u8 taskId)
|
||||
data[3]--;
|
||||
else
|
||||
{
|
||||
PlayBGM(BGM_FRLG_GAME_EXPLANATION_MIDDLE);
|
||||
PlayBGM(MUS_SEKAIKAN);
|
||||
ClearTopBarWindow();
|
||||
TopBarWindowPrintString(gText_ABUTTONNext, 0, 1);
|
||||
sOakSpeechResources->unk_0008 = MallocAndDecompress(sNewGameAdventureIntroTilemap, &sp14);
|
||||
@@ -817,7 +817,7 @@ static void Task_OakSpeech7(u8 taskId)
|
||||
break;
|
||||
case 4:
|
||||
sub_8006398(gTasks[taskId].data[5]);
|
||||
PlayBGM(BGM_FRLG_GAME_EXPLANATION_END);
|
||||
PlayBGM(MUS_SEIBETU);
|
||||
data[15] = 24;
|
||||
gMain.state++;
|
||||
break;
|
||||
@@ -876,7 +876,7 @@ static void Task_OakSpeech9(u8 taskId)
|
||||
CreateNidoranFSprite(taskId);
|
||||
LoadOaksSpeechTrainerPic(3, 0);
|
||||
CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 1);
|
||||
PlayBGM(BGM_FRLG_ROUTE_24);
|
||||
PlayBGM(MUS_OPENING);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 5, 16, 0, RGB_BLACK);
|
||||
data[3] = 80;
|
||||
ShowBg(2);
|
||||
@@ -1409,7 +1409,7 @@ static void Task_OakSpeech39(u8 taskId)
|
||||
if (sOakSpeechResources->unk_0012 % 20 == 0)
|
||||
{
|
||||
if (sOakSpeechResources->unk_0012 == 40)
|
||||
PlaySE(SE_FU_ZUZUZU);
|
||||
PlaySE(SE_TK_WARPIN);
|
||||
r0 = data[2];
|
||||
data[2] -= 32;
|
||||
x = sub_80D8B90(r0 - 8);
|
||||
|
||||
+9
-9
@@ -93,7 +93,7 @@ static struct UnkStruct_300201C * gUnknown_300201C;
|
||||
static u16 gUnknown_3002020;
|
||||
|
||||
EWRAM_DATA u8 gUnknown_203ADF8 = 0;
|
||||
EWRAM_DATA u8 gUnknown_203ADF9 = 0;
|
||||
static EWRAM_DATA u8 sNumScenes = 0;
|
||||
EWRAM_DATA u8 gUnknown_203ADFA = 0;
|
||||
EWRAM_DATA u16 gUnknown_203ADFC = 0;
|
||||
EWRAM_DATA u8 gUnknown_203ADFE[3] = {0};
|
||||
@@ -840,21 +840,21 @@ bool8 sub_8110E68(struct UnkStruct_203AE98 * a0)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_8110F14(u8 taskId)
|
||||
void TrySetUpQuestLogScenes_ElseContinueFromSave(u8 taskId)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
sub_811381C();
|
||||
gUnknown_203ADF9 = 0;
|
||||
sNumScenes = 0;
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
if (gSaveBlock1Ptr->questLog[i].unk_000)
|
||||
gUnknown_203ADF9++;
|
||||
sNumScenes++;
|
||||
}
|
||||
|
||||
if (gUnknown_203ADF9 != 0)
|
||||
if (sNumScenes != 0)
|
||||
{
|
||||
gUnknown_3005ECC = FALSE;
|
||||
gHelpSystemEnabled = FALSE;
|
||||
sub_8110F90(taskId);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
@@ -1221,7 +1221,7 @@ void sub_8111914(void)
|
||||
ScriptContext2_Enable();
|
||||
if (++gUnknown_203ADF8 < 4 && gSaveBlock1Ptr->questLog[gUnknown_203ADF8].unk_000)
|
||||
{
|
||||
gUnknown_203ADF9--;
|
||||
sNumScenes--;
|
||||
sub_8111368();
|
||||
}
|
||||
else
|
||||
@@ -1402,7 +1402,7 @@ bool8 sub_8111CD0(void)
|
||||
void sub_8111CF0(void)
|
||||
{
|
||||
if (gUnknown_203ADFA == 2)
|
||||
sub_8111070(gUnknown_203ADF9);
|
||||
sub_8111070(sNumScenes);
|
||||
}
|
||||
|
||||
void sub_8111D10(void)
|
||||
@@ -1603,7 +1603,7 @@ void sub_81120AC(u8 taskId)
|
||||
gTextFlags.autoScroll = FALSE;
|
||||
gUnknown_2036E28 = 0;
|
||||
sub_8082740(0);
|
||||
gUnknown_3005ECC = 1;
|
||||
gHelpSystemEnabled = TRUE;
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
}
|
||||
|
||||
+2
-2
@@ -179,7 +179,7 @@ static const struct SpriteTemplate sWakeSpriteTemplate = {
|
||||
void ScrSpecial_SeaGallopFerry(void)
|
||||
{
|
||||
SetVBlankCallback(NULL);
|
||||
sub_812B478();
|
||||
HelpSystem_Disable();
|
||||
SetMainCallback2(CB2_SetUpSeaGallopScene);
|
||||
}
|
||||
|
||||
@@ -306,7 +306,7 @@ static void Task_SeaGallop_2(u8 taskId)
|
||||
if (sub_8055FC4() && !gPaletteFade.active)
|
||||
{
|
||||
Task_SeaGallop_3();
|
||||
sub_812B484();
|
||||
HelpSystem_Enable();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -734,7 +734,7 @@ static void MainTask_SlotsGameLoop(u8 taskId)
|
||||
{
|
||||
sSlotMachineState->bet++;
|
||||
TakeCoins(1);
|
||||
PlaySE(SE_T_KAMI2);
|
||||
PlaySE(SE_REGI);
|
||||
sub_8141148(8, 0);
|
||||
sub_8141148(2, 1);
|
||||
data[0] = 1;
|
||||
@@ -752,7 +752,7 @@ static void MainTask_SlotsGameLoop(u8 taskId)
|
||||
sSlotMachineState->bet += GetCoins();
|
||||
SetCoins(0);
|
||||
}
|
||||
PlaySE(SE_T_KAMI2);
|
||||
PlaySE(SE_REGI);
|
||||
sub_8141148(8, 0);
|
||||
sub_8141148(2, 1);
|
||||
data[0] = 1;
|
||||
|
||||
+14
-14
@@ -42,20 +42,20 @@ extern struct ToneData gCryTable[];
|
||||
extern struct ToneData gCryTable2[];
|
||||
|
||||
static const struct Fanfare sFanfares[] = {
|
||||
{ MUS_FANFA1, 80 },
|
||||
{ MUS_FANFA4, 160 },
|
||||
{ MUS_FANFA5, 220 },
|
||||
{ MUS_ME_WAZA, 220 },
|
||||
{ MUS_ME_ASA, 160 },
|
||||
{ MUS_ME_BACHI, 340 },
|
||||
{ MUS_ME_WASURE, 180 },
|
||||
{ MUS_ME_KINOMI, 120 },
|
||||
{ MUS_ME_B_BIG, 250 },
|
||||
{ MUS_ME_B_SMALL, 150 },
|
||||
{ MUS_ME_ZANNEN, 160 },
|
||||
{ BGM_FRLG_FLUTE, 450 },
|
||||
{ BGM_FRLG_ME_KEYITEM, 170 },
|
||||
{ BGM_FRLG_ME_POKEDEX_EVAL, 196 }
|
||||
{ MUS_FANFA1, 80 },
|
||||
{ MUS_FANFA4, 160 },
|
||||
{ MUS_FANFA5, 220 },
|
||||
{ MUS_ME_WAZA, 220 },
|
||||
{ MUS_ME_ASA, 160 },
|
||||
{ MUS_ME_BACHI, 340 },
|
||||
{ MUS_ME_WASURE, 180 },
|
||||
{ MUS_ME_KINOMI, 120 },
|
||||
{ MUS_ME_B_BIG, 250 },
|
||||
{ MUS_ME_B_SMALL, 150 },
|
||||
{ MUS_ME_ZANNEN, 160 },
|
||||
{ MUS_POKEFUE, 450 },
|
||||
{ MUS_FAN5, 170 },
|
||||
{ MUS_FAN2, 196 }
|
||||
};
|
||||
|
||||
extern u16 SpeciesToCryId(u16);
|
||||
|
||||
+2
-2
@@ -83,7 +83,7 @@ void Special_SSAnneDepartureCutscene(void)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
PlaySE(SE_SHIP_HORN);
|
||||
PlaySE(SE_KITEKI);
|
||||
taskId = CreateTask(Task_SSAnneInit, 8);
|
||||
gTasks[taskId].data[0] = 50;
|
||||
}
|
||||
@@ -118,7 +118,7 @@ static void Task_SSAnneRun(u8 taskId)
|
||||
boatObject = &gMapObjects[mapObjectId];
|
||||
if (gSprites[boatObject->spriteId].pos1.x + gSprites[boatObject->spriteId].pos2.x < -120)
|
||||
{
|
||||
PlaySE(SE_SHIP_HORN);
|
||||
PlaySE(SE_KITEKI);
|
||||
gTasks[taskId].func = Task_SSAnneFinish;
|
||||
}
|
||||
else
|
||||
|
||||
+4
-4
@@ -503,7 +503,7 @@ static void TeachyTvMainCallback(void)
|
||||
gTasks[taskId].data[0] = TeachyTvSetupWindow();
|
||||
gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam();
|
||||
TeachyTvSetupScrollIndicatorArrowPair();
|
||||
PlayNewMapMusic(BGM_FRLG_TEACHY_TV);
|
||||
PlayNewMapMusic(MUS_TVNOIZE);
|
||||
TeachyTvSetWindowRegs();
|
||||
}
|
||||
ScheduleBgCopyTilemapToVram(0);
|
||||
@@ -779,7 +779,7 @@ static void TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId)
|
||||
ScheduleBgCopyTilemapToVram(2);
|
||||
data[2] = 0;
|
||||
++data[3];
|
||||
PlayNewMapMusic(BGM_FRLG_FOLLOW_ME);
|
||||
PlayNewMapMusic(MUS_ANNAI);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1060,7 +1060,7 @@ static void TTVcmd_End(u8 taskId)
|
||||
{
|
||||
s16 *data = gTasks[taskId].data;
|
||||
if (data[2] == 0)
|
||||
PlayNewMapMusic(BGM_FRLG_TEACHY_TV);
|
||||
PlayNewMapMusic(MUS_TVNOIZE);
|
||||
TeachyTvBg2AnimController();
|
||||
if (++data[2] > 63)
|
||||
{
|
||||
@@ -1227,7 +1227,7 @@ static void TeachyTvRestorePlayerPartyCallback(void)
|
||||
if (gBattleOutcome == B_OUTCOME_DREW)
|
||||
SetTeachyTvControllerModeToResume();
|
||||
else
|
||||
PlayNewMapMusic(BGM_FRLG_FOLLOW_ME);
|
||||
PlayNewMapMusic(MUS_ANNAI);
|
||||
CB2_ReturnToTeachyTV();
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -12,6 +12,7 @@
|
||||
#include "window.h"
|
||||
#include "graphics.h"
|
||||
#include "dynamic_placeholder_text_util.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
extern u8 gGlyphInfo[0x90];
|
||||
extern const struct OamData gOamData_83AC9D0;
|
||||
@@ -552,7 +553,7 @@ bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter)
|
||||
if (JOY_NEW(A_BUTTON | B_BUTTON))
|
||||
{
|
||||
result = TRUE;
|
||||
PlaySE(5);
|
||||
PlaySE(SE_SELECT);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
@@ -570,7 +571,7 @@ bool16 TextPrinterWait(struct TextPrinter *textPrinter)
|
||||
if (JOY_NEW(A_BUTTON | B_BUTTON))
|
||||
{
|
||||
result = TRUE;
|
||||
PlaySE(5);
|
||||
PlaySE(SE_SELECT);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
||||
@@ -51,7 +51,7 @@ const struct TextWindowGraphics gUserFrames[] = {
|
||||
{gUnknown_84717CC, gUnknown_8471A2C}
|
||||
}; // NELEMS = 10
|
||||
|
||||
const struct TextWindowGraphics * sub_8069788(u8 idx)
|
||||
const struct TextWindowGraphics * GetUserFrameGraphicsInfo(u8 idx)
|
||||
{
|
||||
if (idx >= 20) // if (idx >= NELEMS(gUserFrames))
|
||||
return &gUserFrames[0];
|
||||
|
||||
+4
-4
@@ -285,7 +285,7 @@ void CB2_InitTitleScreen(void)
|
||||
sTitleScreenTimerTaskId = CreateTask(Task_TitleScreenTimer, 2);
|
||||
SetVBlankCallback(VBlankCB);
|
||||
SetMainCallback2(CB2_TitleScreenRun);
|
||||
m4aSongNumStart(BGM_FRLG_TITLE);
|
||||
m4aSongNumStart(MUS_TITLE);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -513,7 +513,7 @@ static void SetTitleScreenScene_Run(s16 * data)
|
||||
CreateTask(Task_FlameOrLeafSpawner, 5);
|
||||
SetGpuRegsForTitleScreenRun();
|
||||
data[6] = CreateSlashSprite();
|
||||
sub_812B484();
|
||||
HelpSystem_Enable();
|
||||
data[1]++;
|
||||
// fallthrough
|
||||
case 1:
|
||||
@@ -583,7 +583,7 @@ static void SetTitleScreenScene_Restart(s16 * data)
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_812B478();
|
||||
HelpSystem_Disable();
|
||||
DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain));
|
||||
SetMainCallback2(sub_80EC864);
|
||||
break;
|
||||
@@ -626,7 +626,7 @@ static void SetTitleScreenScene_Cry(s16 * data)
|
||||
Sav2_ClearSetDefault();
|
||||
SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound);
|
||||
InitHeap(gHeap, HEAP_SIZE);
|
||||
SetMainCallback2(sub_800C300);
|
||||
SetMainCallback2(CB2_InitMainMenu);
|
||||
DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain));
|
||||
}
|
||||
break;
|
||||
|
||||
+1
-1
@@ -1104,7 +1104,7 @@ static void Task_DoSaleOfTMs(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
|
||||
PlaySE(0xF8);
|
||||
PlaySE(SE_SHOP);
|
||||
RemoveBagItem(gSpecialVar_ItemId, data[8]);
|
||||
AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]);
|
||||
sub_809C09C(gSpecialVar_ItemId, data[8], 2);
|
||||
|
||||
+4
-4
@@ -75,7 +75,7 @@ bool32 sub_815F2AC(u8 spriteId)
|
||||
// fallthrough
|
||||
case 1:
|
||||
if (sprite->data[2] == 0)
|
||||
PlaySE(SE_TRACK_STOP);
|
||||
PlaySE(SE_KON2);
|
||||
if (++sprite->data[2] >= 20)
|
||||
{
|
||||
sprite->data[2] = 0;
|
||||
@@ -167,7 +167,7 @@ void sub_815F470(struct Sprite * sprite)
|
||||
sprite->pos2.y = data[5] >> 4;
|
||||
if (sprite->pos2.y >= 0)
|
||||
{
|
||||
PlaySE(SE_TRACK_STOP);
|
||||
PlaySE(SE_KON2);
|
||||
sprite->pos2.y = 0;
|
||||
data[0]++;
|
||||
}
|
||||
@@ -176,7 +176,7 @@ void sub_815F470(struct Sprite * sprite)
|
||||
data[1] += 12;
|
||||
if (data[1] >= 128)
|
||||
{
|
||||
PlaySE(SE_TRACK_STOP);
|
||||
PlaySE(SE_KON2);
|
||||
data[1] = 0;
|
||||
data[0]++;
|
||||
}
|
||||
@@ -187,7 +187,7 @@ void sub_815F470(struct Sprite * sprite)
|
||||
data[1] += 16;
|
||||
if (data[1] >= 128)
|
||||
{
|
||||
PlaySE(SE_TRACK_STOP);
|
||||
PlaySE(SE_KON2);
|
||||
data[1] = 0;
|
||||
data[0]++;
|
||||
}
|
||||
|
||||
+1
-1
@@ -836,7 +836,7 @@ static void Task_VsSeeker_2(u8 taskId)
|
||||
|
||||
if (data[2] != 2 && --data[1] == 0)
|
||||
{
|
||||
PlaySE(SE_BASABASA);
|
||||
PlaySE(SE_C_PIKON);
|
||||
data[1] = 11;
|
||||
data[2]++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user