Merge branch 'master' into document-eventscripts
This commit is contained in:
@@ -2547,7 +2547,7 @@ static void AnimPetalDanceSmallFlowerStep(struct Sprite* sprite)
|
||||
{
|
||||
sprite->pos2.x += Sin(sprite->data[5], 8);
|
||||
if ((u16)(sprite->data[5] - 59) < 5 || (u16)(sprite->data[5] - 187) < 5)
|
||||
sprite->oam.matrixNum ^= 0x8; // horizontal flip
|
||||
sprite->oam.matrixNum ^= ST_OAM_HFLIP;
|
||||
|
||||
sprite->data[5] += 5;
|
||||
sprite->data[5] &= 0xFF;
|
||||
@@ -4380,19 +4380,19 @@ void sub_8101898(struct Sprite* sprite)
|
||||
{
|
||||
sprite->pos1.x -= 0x18;
|
||||
sprite->pos1.y += 0x18;
|
||||
sprite->oam.matrixNum = 16;
|
||||
sprite->oam.matrixNum = ST_OAM_VFLIP;
|
||||
}
|
||||
else if ((s16)sprite->oam.affineParam == 3)
|
||||
{
|
||||
sprite->pos1.x += 0x18;
|
||||
sprite->pos1.y -= 0x18;
|
||||
sprite->oam.matrixNum = 8;
|
||||
sprite->oam.matrixNum = ST_OAM_HFLIP;
|
||||
}
|
||||
else
|
||||
{
|
||||
sprite->pos1.x += 0x18;
|
||||
sprite->pos1.y += 0x18;
|
||||
sprite->oam.matrixNum = 24;
|
||||
sprite->oam.matrixNum = ST_OAM_HFLIP | ST_OAM_VFLIP;
|
||||
}
|
||||
|
||||
sprite->oam.tileNum = (sprite->oam.tileNum + 16);
|
||||
@@ -5105,7 +5105,7 @@ void sub_8102844(struct Sprite* sprite)
|
||||
sprite->data[7] = sprite->pos1.y;
|
||||
if (IsContest())
|
||||
{
|
||||
sprite->oam.matrixNum = 8;
|
||||
sprite->oam.matrixNum = ST_OAM_HFLIP;
|
||||
sprite->pos1.x += 40;
|
||||
sprite->pos1.y += 20;
|
||||
sprite->data[2] = sprite->pos1.x << 7;
|
||||
@@ -5130,7 +5130,7 @@ void sub_8102844(struct Sprite* sprite)
|
||||
sprite->data[3] = -0x1400 / sprite->data[1];
|
||||
sprite->data[4] = sprite->pos1.y << 7;
|
||||
sprite->data[5] = 0xA00 / sprite->data[1];
|
||||
sprite->oam.matrixNum = 24;
|
||||
sprite->oam.matrixNum = (ST_OAM_HFLIP | ST_OAM_VFLIP);
|
||||
}
|
||||
|
||||
sprite->callback = sub_810296C;
|
||||
@@ -5387,7 +5387,7 @@ void sub_8102FB8(struct Sprite* sprite)
|
||||
s16 a;
|
||||
if (gBattleAnimArgs[0] == 1)
|
||||
{
|
||||
sprite->oam.matrixNum = 8;
|
||||
sprite->oam.matrixNum = ST_OAM_HFLIP;
|
||||
a = 16;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1609,10 +1609,10 @@ static void sub_8103C0C(u8 taskId)
|
||||
switch (gTasks[taskId].data[4])
|
||||
{
|
||||
case 1:
|
||||
sprite->oam.matrixNum |= 24;
|
||||
sprite->oam.matrixNum |= (ST_OAM_HFLIP | ST_OAM_VFLIP);
|
||||
break;
|
||||
case 2:
|
||||
sprite->oam.matrixNum = 8;
|
||||
sprite->oam.matrixNum = ST_OAM_HFLIP;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -1618,7 +1618,7 @@ void sub_815AAA4(struct Sprite *sprite)
|
||||
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
{
|
||||
sprite->oam.matrixNum = 8;
|
||||
sprite->oam.matrixNum = ST_OAM_HFLIP;
|
||||
sprite->pos2.x = -12;
|
||||
sprite->data[1] = 2;
|
||||
}
|
||||
@@ -4167,7 +4167,7 @@ void AnimSmellingSaltsHand(struct Sprite *sprite)
|
||||
sprite->pos1.y = GetBattlerSpriteCoord(battler, 3);
|
||||
if (gBattleAnimArgs[1] == 0)
|
||||
{
|
||||
sprite->oam.matrixNum |= 0x8;
|
||||
sprite->oam.matrixNum |= ST_OAM_HFLIP;
|
||||
sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) - 8;
|
||||
}
|
||||
else
|
||||
@@ -4317,7 +4317,7 @@ void AnimHelpingHandClap(struct Sprite *sprite)
|
||||
{
|
||||
if (gBattleAnimArgs[0] == 0)
|
||||
{
|
||||
sprite->oam.matrixNum |= 0x8; // horizontal flip
|
||||
sprite->oam.matrixNum |= ST_OAM_HFLIP;
|
||||
sprite->pos1.x = 100;
|
||||
sprite->data[7] = 1;
|
||||
}
|
||||
@@ -4545,7 +4545,7 @@ void AnimForesightMagnifyingGlass(struct Sprite *sprite)
|
||||
}
|
||||
|
||||
if (GetBattlerSide(sprite->data[7]) == B_SIDE_OPPONENT)
|
||||
sprite->oam.matrixNum = 8; // horizontal flip
|
||||
sprite->oam.matrixNum = ST_OAM_HFLIP;
|
||||
|
||||
sprite->oam.priority = GetBattlerSpriteBGPriority(sprite->data[7]);
|
||||
sprite->oam.objMode = ST_OAM_OBJ_BLEND;
|
||||
|
||||
@@ -64,7 +64,7 @@ void SetUpBattleVarsAndBirchZigzagoon(void)
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
|
||||
{
|
||||
ZeroEnemyPartyMons();
|
||||
CreateMon(&gEnemyParty[0], SPECIES_ZIGZAGOON, 2, 32, 0, 0, 0, 0);
|
||||
CreateMon(&gEnemyParty[0], SPECIES_ZIGZAGOON, 2, 32, 0, 0, OT_ID_PLAYER_ID, 0);
|
||||
i = 0;
|
||||
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, &i);
|
||||
}
|
||||
|
||||
@@ -415,7 +415,7 @@ static void SetPlayerAndOpponentParties(void)
|
||||
monLevel,
|
||||
ivs,
|
||||
TRUE, gSaveBlock2Ptr->frontier.rentalMons[i].personality,
|
||||
0, 0);
|
||||
OT_ID_PLAYER_ID, 0);
|
||||
|
||||
count = 0;
|
||||
bits = gFacilityTrainerMons[monSetId].evSpread;
|
||||
@@ -456,7 +456,7 @@ static void SetPlayerAndOpponentParties(void)
|
||||
monLevel,
|
||||
ivs,
|
||||
TRUE, gSaveBlock2Ptr->frontier.rentalMons[i + 3].personality,
|
||||
0, 0);
|
||||
OT_ID_PLAYER_ID, 0);
|
||||
|
||||
count = 0;
|
||||
bits = gFacilityTrainerMons[monSetId].evSpread;
|
||||
|
||||
@@ -1536,7 +1536,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo,
|
||||
if (isOpponent)
|
||||
{
|
||||
gSprites[summaryBarSpriteId].pos1.x -= 96;
|
||||
gSprites[summaryBarSpriteId].oam.matrixNum = 8;
|
||||
gSprites[summaryBarSpriteId].oam.matrixNum = ST_OAM_HFLIP;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+3
-3
@@ -2004,7 +2004,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir
|
||||
|
||||
personalityValue += nameHash << 8;
|
||||
fixedIV = partyData[i].iv * 31 / 255;
|
||||
CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, 2, 0);
|
||||
CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0);
|
||||
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
{
|
||||
@@ -2022,7 +2022,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir
|
||||
|
||||
personalityValue += nameHash << 8;
|
||||
fixedIV = partyData[i].iv * 31 / 255;
|
||||
CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, 2, 0);
|
||||
CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0);
|
||||
|
||||
SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem);
|
||||
break;
|
||||
@@ -2036,7 +2036,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir
|
||||
|
||||
personalityValue += nameHash << 8;
|
||||
fixedIV = partyData[i].iv * 31 / 255;
|
||||
CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, 2, 0);
|
||||
CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0);
|
||||
|
||||
SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem);
|
||||
|
||||
|
||||
+85
-78
@@ -231,86 +231,93 @@ static const struct TrainerBattleParameter sTrainerBContinueScriptBattleParams[]
|
||||
{&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR},
|
||||
};
|
||||
|
||||
#define REMATCH(trainer1, trainer2, trainer3, trainer4, trainer5, map) \
|
||||
{ \
|
||||
.trainerIds = {trainer1, trainer2, trainer3, trainer4, trainer5}, \
|
||||
.mapGroup = MAP_GROUP(map), \
|
||||
.mapNum = MAP_NUM(map), \
|
||||
}
|
||||
|
||||
const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES] =
|
||||
{
|
||||
[REMATCH_ROSE] = {{TRAINER_ROSE_1, TRAINER_ROSE_2, TRAINER_ROSE_3, TRAINER_ROSE_4, TRAINER_ROSE_5}, 0x0, 0x21},
|
||||
[REMATCH_ANDRES] = {{TRAINER_ANDRES_1, TRAINER_ANDRES_2, TRAINER_ANDRES_3, TRAINER_ANDRES_4, TRAINER_ANDRES_5}, 0x0, 0x14},
|
||||
[REMATCH_DUSTY] = {{TRAINER_DUSTY_1, TRAINER_DUSTY_2, TRAINER_DUSTY_3, TRAINER_DUSTY_4, TRAINER_DUSTY_5}, 0x0, 0x1a},
|
||||
[REMATCH_LOLA] = {{TRAINER_LOLA_1, TRAINER_LOLA_2, TRAINER_LOLA_3, TRAINER_LOLA_4, TRAINER_LOLA_5}, 0x0, 0x18},
|
||||
[REMATCH_RICKY] = {{TRAINER_RICKY_1, TRAINER_RICKY_2, TRAINER_RICKY_3, TRAINER_RICKY_4, TRAINER_RICKY_5}, 0x0, 0x18},
|
||||
[REMATCH_LILA_AND_ROY] = {{TRAINER_LILA_AND_ROY_1, TRAINER_LILA_AND_ROY_2, TRAINER_LILA_AND_ROY_3, TRAINER_LILA_AND_ROY_4, TRAINER_LILA_AND_ROY_5}, 0x0, 0x27},
|
||||
[REMATCH_CRISTIN] = {{TRAINER_CRISTIN_1, TRAINER_CRISTIN_2, TRAINER_CRISTIN_3, TRAINER_CRISTIN_4, TRAINER_CRISTIN_5}, 0x0, 0x24},
|
||||
[REMATCH_BROOKE] = {{TRAINER_BROOKE_1, TRAINER_BROOKE_2, TRAINER_BROOKE_3, TRAINER_BROOKE_4, TRAINER_BROOKE_5}, 0x0, 0x1a},
|
||||
[REMATCH_WILTON] = {{TRAINER_WILTON_1, TRAINER_WILTON_2, TRAINER_WILTON_3, TRAINER_WILTON_4, TRAINER_WILTON_5}, 0x0, 0x1a},
|
||||
[REMATCH_VALERIE] = {{TRAINER_VALERIE_1, TRAINER_VALERIE_2, TRAINER_VALERIE_3, TRAINER_VALERIE_4, TRAINER_VALERIE_5}, 0x18, 0x14},
|
||||
[REMATCH_CINDY] = {{TRAINER_CINDY_1, TRAINER_CINDY_3, TRAINER_CINDY_4, TRAINER_CINDY_5, TRAINER_CINDY_6}, 0x0, 0x13},
|
||||
[REMATCH_THALIA] = {{TRAINER_THALIA_1, TRAINER_THALIA_2, TRAINER_THALIA_3, TRAINER_THALIA_4, TRAINER_THALIA_5}, 0x18, 0x38},
|
||||
[REMATCH_JESSICA] = {{TRAINER_JESSICA_1, TRAINER_JESSICA_2, TRAINER_JESSICA_3, TRAINER_JESSICA_4, TRAINER_JESSICA_5}, 0x0, 0x24},
|
||||
[REMATCH_WINSTON] = {{TRAINER_WINSTON_1, TRAINER_WINSTON_2, TRAINER_WINSTON_3, TRAINER_WINSTON_4, TRAINER_WINSTON_5}, 0x0, 0x13},
|
||||
[REMATCH_STEVE] = {{TRAINER_STEVE_1, TRAINER_STEVE_2, TRAINER_STEVE_3, TRAINER_STEVE_4, TRAINER_STEVE_5}, 0x0, 0x1d},
|
||||
[REMATCH_TONY] = {{TRAINER_TONY_1, TRAINER_TONY_2, TRAINER_TONY_3, TRAINER_TONY_4, TRAINER_TONY_5}, 0x0, 0x16},
|
||||
[REMATCH_NOB] = {{TRAINER_NOB_1, TRAINER_NOB_2, TRAINER_NOB_3, TRAINER_NOB_4, TRAINER_NOB_5}, 0x0, 0x1e},
|
||||
[REMATCH_KOJI] = {{TRAINER_KOJI_1, TRAINER_KOJI_2, TRAINER_KOJI_3, TRAINER_KOJI_4, TRAINER_KOJI_5}, 0x0, 0x2a},
|
||||
[REMATCH_FERNANDO] = {{TRAINER_FERNANDO_1, TRAINER_FERNANDO_2, TRAINER_FERNANDO_3, TRAINER_FERNANDO_4, TRAINER_FERNANDO_5}, 0x0, 0x26},
|
||||
[REMATCH_DALTON] = {{TRAINER_DALTON_1, TRAINER_DALTON_2, TRAINER_DALTON_3, TRAINER_DALTON_4, TRAINER_DALTON_5}, 0x0, 0x21},
|
||||
[REMATCH_BERNIE] = {{TRAINER_BERNIE_1, TRAINER_BERNIE_2, TRAINER_BERNIE_3, TRAINER_BERNIE_4, TRAINER_BERNIE_5}, 0x0, 0x1d},
|
||||
[REMATCH_ETHAN] = {{TRAINER_ETHAN_1, TRAINER_ETHAN_2, TRAINER_ETHAN_3, TRAINER_ETHAN_4, TRAINER_ETHAN_5}, 0x18, 0xd},
|
||||
[REMATCH_JOHN_AND_JAY] = {{TRAINER_JOHN_AND_JAY_1, TRAINER_JOHN_AND_JAY_2, TRAINER_JOHN_AND_JAY_3, TRAINER_JOHN_AND_JAY_4, TRAINER_JOHN_AND_JAY_5}, 0x18, 0x1},
|
||||
[REMATCH_JEFFREY] = {{TRAINER_JEFFREY_1, TRAINER_JEFFREY_2, TRAINER_JEFFREY_3, TRAINER_JEFFREY_4, TRAINER_JEFFREY_5}, 0x0, 0x23},
|
||||
[REMATCH_CAMERON] = {{TRAINER_CAMERON_1, TRAINER_CAMERON_2, TRAINER_CAMERON_3, TRAINER_CAMERON_4, TRAINER_CAMERON_5}, 0x0, 0x26},
|
||||
[REMATCH_JACKI] = {{TRAINER_JACKI_1, TRAINER_JACKI_2, TRAINER_JACKI_3, TRAINER_JACKI_4, TRAINER_JACKI_5}, 0x0, 0x26},
|
||||
[REMATCH_WALTER] = {{TRAINER_WALTER_1, TRAINER_WALTER_2, TRAINER_WALTER_3, TRAINER_WALTER_4, TRAINER_WALTER_5}, 0x0, 0x24},
|
||||
[REMATCH_KAREN] = {{TRAINER_KAREN_1, TRAINER_KAREN_2, TRAINER_KAREN_3, TRAINER_KAREN_4, TRAINER_KAREN_5}, 0x0, 0x1f},
|
||||
[REMATCH_JERRY] = {{TRAINER_JERRY_1, TRAINER_JERRY_2, TRAINER_JERRY_3, TRAINER_JERRY_4, TRAINER_JERRY_5}, 0x0, 0x1f},
|
||||
[REMATCH_ANNA_AND_MEG] = {{TRAINER_ANNA_AND_MEG_1, TRAINER_ANNA_AND_MEG_2, TRAINER_ANNA_AND_MEG_3, TRAINER_ANNA_AND_MEG_4, TRAINER_ANNA_AND_MEG_5}, 0x0, 0x20},
|
||||
[REMATCH_ISABEL] = {{TRAINER_ISABEL_1, TRAINER_ISABEL_2, TRAINER_ISABEL_3, TRAINER_ISABEL_4, TRAINER_ISABEL_5}, 0x0, 0x19},
|
||||
[REMATCH_MIGUEL] = {{TRAINER_MIGUEL_1, TRAINER_MIGUEL_2, TRAINER_MIGUEL_3, TRAINER_MIGUEL_4, TRAINER_MIGUEL_5}, 0x0, 0x12},
|
||||
[REMATCH_TIMOTHY] = {{TRAINER_TIMOTHY_1, TRAINER_TIMOTHY_2, TRAINER_TIMOTHY_3, TRAINER_TIMOTHY_4, TRAINER_TIMOTHY_5}, 0x0, 0x1e},
|
||||
[REMATCH_SHELBY] = {{TRAINER_SHELBY_1, TRAINER_SHELBY_2, TRAINER_SHELBY_3, TRAINER_SHELBY_4, TRAINER_SHELBY_5}, 0x18, 0xc},
|
||||
[REMATCH_CALVIN] = {{TRAINER_CALVIN_1, TRAINER_CALVIN_2, TRAINER_CALVIN_3, TRAINER_CALVIN_4, TRAINER_CALVIN_5}, 0x0, 0x11},
|
||||
[REMATCH_ELLIOT] = {{TRAINER_ELLIOT_1, TRAINER_ELLIOT_2, TRAINER_ELLIOT_3, TRAINER_ELLIOT_4, TRAINER_ELLIOT_5}, 0x0, 0x15},
|
||||
[REMATCH_ISAIAH] = {{TRAINER_ISAIAH_1, TRAINER_ISAIAH_2, TRAINER_ISAIAH_3, TRAINER_ISAIAH_4, TRAINER_ISAIAH_5}, 0x0, 0x2b},
|
||||
[REMATCH_MARIA] = {{TRAINER_MARIA_1, TRAINER_MARIA_2, TRAINER_MARIA_3, TRAINER_MARIA_4, TRAINER_MARIA_5}, 0x0, 0x20},
|
||||
[REMATCH_ABIGAIL] = {{TRAINER_ABIGAIL_1, TRAINER_ABIGAIL_2, TRAINER_ABIGAIL_3, TRAINER_ABIGAIL_4, TRAINER_ABIGAIL_5}, 0x0, 0x19},
|
||||
[REMATCH_DYLAN] = {{TRAINER_DYLAN_1, TRAINER_DYLAN_2, TRAINER_DYLAN_3, TRAINER_DYLAN_4, TRAINER_DYLAN_5}, 0x0, 0x20},
|
||||
[REMATCH_KATELYN] = {{TRAINER_KATELYN_1, TRAINER_KATELYN_2, TRAINER_KATELYN_3, TRAINER_KATELYN_4, TRAINER_KATELYN_5}, 0x0, 0x2b},
|
||||
[REMATCH_BENJAMIN] = {{TRAINER_BENJAMIN_1, TRAINER_BENJAMIN_2, TRAINER_BENJAMIN_3, TRAINER_BENJAMIN_4, TRAINER_BENJAMIN_5}, 0x0, 0x19},
|
||||
[REMATCH_PABLO] = {{TRAINER_PABLO_1, TRAINER_PABLO_2, TRAINER_PABLO_3, TRAINER_PABLO_4, TRAINER_PABLO_5}, 0x0, 0x29},
|
||||
[REMATCH_NICOLAS] = {{TRAINER_NICOLAS_1, TRAINER_NICOLAS_2, TRAINER_NICOLAS_3, TRAINER_NICOLAS_4, TRAINER_NICOLAS_5}, 0x18, 0x1},
|
||||
[REMATCH_ROBERT] = {{TRAINER_ROBERT_1, TRAINER_ROBERT_2, TRAINER_ROBERT_3, TRAINER_ROBERT_4, TRAINER_ROBERT_5}, 0x0, 0x23},
|
||||
[REMATCH_LAO] = {{TRAINER_LAO_1, TRAINER_LAO_2, TRAINER_LAO_3, TRAINER_LAO_4, TRAINER_LAO_5}, 0x0, 0x1c},
|
||||
[REMATCH_CYNDY] = {{TRAINER_CYNDY_1, TRAINER_CYNDY_2, TRAINER_CYNDY_3, TRAINER_CYNDY_4, TRAINER_CYNDY_5}, 0x0, 0x1e},
|
||||
[REMATCH_MADELINE] = {{TRAINER_MADELINE_1, TRAINER_MADELINE_2, TRAINER_MADELINE_3, TRAINER_MADELINE_4, TRAINER_MADELINE_5}, 0x0, 0x1c},
|
||||
[REMATCH_JENNY] = {{TRAINER_JENNY_1, TRAINER_JENNY_2, TRAINER_JENNY_3, TRAINER_JENNY_4, TRAINER_JENNY_5}, 0x0, 0x27},
|
||||
[REMATCH_DIANA] = {{TRAINER_DIANA_1, TRAINER_DIANA_2, TRAINER_DIANA_3, TRAINER_DIANA_4, TRAINER_DIANA_5}, 0x18, 0xd},
|
||||
[REMATCH_AMY_AND_LIV] = {{TRAINER_AMY_AND_LIV_1, TRAINER_AMY_AND_LIV_2, TRAINER_AMY_AND_LIV_4, TRAINER_AMY_AND_LIV_5, TRAINER_AMY_AND_LIV_6}, 0x0, 0x12},
|
||||
[REMATCH_ERNEST] = {{TRAINER_ERNEST_1, TRAINER_ERNEST_2, TRAINER_ERNEST_3, TRAINER_ERNEST_4, TRAINER_ERNEST_5}, 0x0, 0x28},
|
||||
[REMATCH_CORY] = {{TRAINER_CORY_1, TRAINER_CORY_2, TRAINER_CORY_3, TRAINER_CORY_4, TRAINER_CORY_5}, 0x0, 0x17},
|
||||
[REMATCH_EDWIN] = {{TRAINER_EDWIN_1, TRAINER_EDWIN_2, TRAINER_EDWIN_3, TRAINER_EDWIN_4, TRAINER_EDWIN_5}, 0x0, 0x19},
|
||||
[REMATCH_LYDIA] = {{TRAINER_LYDIA_1, TRAINER_LYDIA_2, TRAINER_LYDIA_3, TRAINER_LYDIA_4, TRAINER_LYDIA_5}, 0x0, 0x20},
|
||||
[REMATCH_ISAAC] = {{TRAINER_ISAAC_1, TRAINER_ISAAC_2, TRAINER_ISAAC_3, TRAINER_ISAAC_4, TRAINER_ISAAC_5}, 0x0, 0x20},
|
||||
[REMATCH_GABRIELLE] = {{TRAINER_GABRIELLE_1, TRAINER_GABRIELLE_2, TRAINER_GABRIELLE_3, TRAINER_GABRIELLE_4, TRAINER_GABRIELLE_5}, 0x18, 0x11},
|
||||
[REMATCH_CATHERINE] = {{TRAINER_CATHERINE_1, TRAINER_CATHERINE_2, TRAINER_CATHERINE_3, TRAINER_CATHERINE_4, TRAINER_CATHERINE_5}, 0x0, 0x22},
|
||||
[REMATCH_JACKSON] = {{TRAINER_JACKSON_1, TRAINER_JACKSON_2, TRAINER_JACKSON_3, TRAINER_JACKSON_4, TRAINER_JACKSON_5}, 0x0, 0x22},
|
||||
[REMATCH_HALEY] = {{TRAINER_HALEY_1, TRAINER_HALEY_2, TRAINER_HALEY_3, TRAINER_HALEY_4, TRAINER_HALEY_5}, 0x0, 0x13},
|
||||
[REMATCH_JAMES] = {{TRAINER_JAMES_1, TRAINER_JAMES_2, TRAINER_JAMES_3, TRAINER_JAMES_4, TRAINER_JAMES_5}, 0x18, 0xb},
|
||||
[REMATCH_TRENT] = {{TRAINER_TRENT_1, TRAINER_TRENT_2, TRAINER_TRENT_3, TRAINER_TRENT_4, TRAINER_TRENT_5}, 0x0, 0x1b},
|
||||
[REMATCH_SAWYER] = {{TRAINER_SAWYER_1, TRAINER_SAWYER_2, TRAINER_SAWYER_3, TRAINER_SAWYER_4, TRAINER_SAWYER_5}, 0x18, 0xc},
|
||||
[REMATCH_KIRA_AND_DAN] = {{TRAINER_KIRA_AND_DAN_1, TRAINER_KIRA_AND_DAN_2, TRAINER_KIRA_AND_DAN_3, TRAINER_KIRA_AND_DAN_4, TRAINER_KIRA_AND_DAN_5}, 0x18, 0x3e},
|
||||
[REMATCH_WALLY_3] = {{TRAINER_WALLY_3, TRAINER_WALLY_4, TRAINER_WALLY_5, TRAINER_WALLY_6, TRAINER_WALLY_6}, 0x18, 0x2b},
|
||||
[REMATCH_ROXANNE] = {{TRAINER_ROXANNE_1, TRAINER_ROXANNE_2, TRAINER_ROXANNE_3, TRAINER_ROXANNE_4, TRAINER_ROXANNE_5}, 0x0, 0x3},
|
||||
[REMATCH_BRAWLY] = {{TRAINER_BRAWLY_1, TRAINER_BRAWLY_2, TRAINER_BRAWLY_3, TRAINER_BRAWLY_4, TRAINER_BRAWLY_5}, 0x0, 0xb},
|
||||
[REMATCH_WATTSON] = {{TRAINER_WATTSON_1, TRAINER_WATTSON_2, TRAINER_WATTSON_3, TRAINER_WATTSON_4, TRAINER_WATTSON_5}, 0x0, 0x2},
|
||||
[REMATCH_FLANNERY] = {{TRAINER_FLANNERY_1, TRAINER_FLANNERY_2, TRAINER_FLANNERY_3, TRAINER_FLANNERY_4, TRAINER_FLANNERY_5}, 0x0, 0xc},
|
||||
[REMATCH_NORMAN] = {{TRAINER_NORMAN_1, TRAINER_NORMAN_2, TRAINER_NORMAN_3, TRAINER_NORMAN_4, TRAINER_NORMAN_5}, 0x0, 0x0},
|
||||
[REMATCH_WINONA] = {{TRAINER_WINONA_1, TRAINER_WINONA_2, TRAINER_WINONA_3, TRAINER_WINONA_4, TRAINER_WINONA_5}, 0x0, 0x4},
|
||||
[REMATCH_TATE_AND_LIZA] = {{TRAINER_TATE_AND_LIZA_1, TRAINER_TATE_AND_LIZA_2, TRAINER_TATE_AND_LIZA_3, TRAINER_TATE_AND_LIZA_4, TRAINER_TATE_AND_LIZA_5}, 0x0, 0x6},
|
||||
[REMATCH_JUAN] = {{TRAINER_JUAN_1, TRAINER_JUAN_2, TRAINER_JUAN_3, TRAINER_JUAN_4, TRAINER_JUAN_5}, 0x0, 0x7},
|
||||
[REMATCH_SIDNEY] = {{TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY}, 0x0, 0x8},
|
||||
[REMATCH_PHOEBE] = {{TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE}, 0x0, 0x8},
|
||||
[REMATCH_GLACIA] = {{TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA}, 0x0, 0x8},
|
||||
[REMATCH_DRAKE] = {{TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE}, 0x0, 0x8},
|
||||
[REMATCH_WALLACE] = {{TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE}, 0x0, 0x8},
|
||||
[REMATCH_ROSE] = REMATCH(TRAINER_ROSE_1, TRAINER_ROSE_2, TRAINER_ROSE_3, TRAINER_ROSE_4, TRAINER_ROSE_5, ROUTE118),
|
||||
[REMATCH_ANDRES] = REMATCH(TRAINER_ANDRES_1, TRAINER_ANDRES_2, TRAINER_ANDRES_3, TRAINER_ANDRES_4, TRAINER_ANDRES_5, ROUTE105),
|
||||
[REMATCH_DUSTY] = REMATCH(TRAINER_DUSTY_1, TRAINER_DUSTY_2, TRAINER_DUSTY_3, TRAINER_DUSTY_4, TRAINER_DUSTY_5, ROUTE111),
|
||||
[REMATCH_LOLA] = REMATCH(TRAINER_LOLA_1, TRAINER_LOLA_2, TRAINER_LOLA_3, TRAINER_LOLA_4, TRAINER_LOLA_5, ROUTE109),
|
||||
[REMATCH_RICKY] = REMATCH(TRAINER_RICKY_1, TRAINER_RICKY_2, TRAINER_RICKY_3, TRAINER_RICKY_4, TRAINER_RICKY_5, ROUTE109),
|
||||
[REMATCH_LILA_AND_ROY] = REMATCH(TRAINER_LILA_AND_ROY_1, TRAINER_LILA_AND_ROY_2, TRAINER_LILA_AND_ROY_3, TRAINER_LILA_AND_ROY_4, TRAINER_LILA_AND_ROY_5, ROUTE124),
|
||||
[REMATCH_CRISTIN] = REMATCH(TRAINER_CRISTIN_1, TRAINER_CRISTIN_2, TRAINER_CRISTIN_3, TRAINER_CRISTIN_4, TRAINER_CRISTIN_5, ROUTE121),
|
||||
[REMATCH_BROOKE] = REMATCH(TRAINER_BROOKE_1, TRAINER_BROOKE_2, TRAINER_BROOKE_3, TRAINER_BROOKE_4, TRAINER_BROOKE_5, ROUTE111),
|
||||
[REMATCH_WILTON] = REMATCH(TRAINER_WILTON_1, TRAINER_WILTON_2, TRAINER_WILTON_3, TRAINER_WILTON_4, TRAINER_WILTON_5, ROUTE111),
|
||||
[REMATCH_VALERIE] = REMATCH(TRAINER_VALERIE_1, TRAINER_VALERIE_2, TRAINER_VALERIE_3, TRAINER_VALERIE_4, TRAINER_VALERIE_5, MT_PYRE_6F),
|
||||
[REMATCH_CINDY] = REMATCH(TRAINER_CINDY_1, TRAINER_CINDY_3, TRAINER_CINDY_4, TRAINER_CINDY_5, TRAINER_CINDY_6, ROUTE104),
|
||||
[REMATCH_THALIA] = REMATCH(TRAINER_THALIA_1, TRAINER_THALIA_2, TRAINER_THALIA_3, TRAINER_THALIA_4, TRAINER_THALIA_5, ABANDONED_SHIP_ROOMS_1F),
|
||||
[REMATCH_JESSICA] = REMATCH(TRAINER_JESSICA_1, TRAINER_JESSICA_2, TRAINER_JESSICA_3, TRAINER_JESSICA_4, TRAINER_JESSICA_5, ROUTE121),
|
||||
[REMATCH_WINSTON] = REMATCH(TRAINER_WINSTON_1, TRAINER_WINSTON_2, TRAINER_WINSTON_3, TRAINER_WINSTON_4, TRAINER_WINSTON_5, ROUTE104),
|
||||
[REMATCH_STEVE] = REMATCH(TRAINER_STEVE_1, TRAINER_STEVE_2, TRAINER_STEVE_3, TRAINER_STEVE_4, TRAINER_STEVE_5, ROUTE114),
|
||||
[REMATCH_TONY] = REMATCH(TRAINER_TONY_1, TRAINER_TONY_2, TRAINER_TONY_3, TRAINER_TONY_4, TRAINER_TONY_5, ROUTE107),
|
||||
[REMATCH_NOB] = REMATCH(TRAINER_NOB_1, TRAINER_NOB_2, TRAINER_NOB_3, TRAINER_NOB_4, TRAINER_NOB_5, ROUTE115),
|
||||
[REMATCH_KOJI] = REMATCH(TRAINER_KOJI_1, TRAINER_KOJI_2, TRAINER_KOJI_3, TRAINER_KOJI_4, TRAINER_KOJI_5, ROUTE127),
|
||||
[REMATCH_FERNANDO] = REMATCH(TRAINER_FERNANDO_1, TRAINER_FERNANDO_2, TRAINER_FERNANDO_3, TRAINER_FERNANDO_4, TRAINER_FERNANDO_5, ROUTE123),
|
||||
[REMATCH_DALTON] = REMATCH(TRAINER_DALTON_1, TRAINER_DALTON_2, TRAINER_DALTON_3, TRAINER_DALTON_4, TRAINER_DALTON_5, ROUTE118),
|
||||
[REMATCH_BERNIE] = REMATCH(TRAINER_BERNIE_1, TRAINER_BERNIE_2, TRAINER_BERNIE_3, TRAINER_BERNIE_4, TRAINER_BERNIE_5, ROUTE114),
|
||||
[REMATCH_ETHAN] = REMATCH(TRAINER_ETHAN_1, TRAINER_ETHAN_2, TRAINER_ETHAN_3, TRAINER_ETHAN_4, TRAINER_ETHAN_5, JAGGED_PASS),
|
||||
[REMATCH_JOHN_AND_JAY] = REMATCH(TRAINER_JOHN_AND_JAY_1, TRAINER_JOHN_AND_JAY_2, TRAINER_JOHN_AND_JAY_3, TRAINER_JOHN_AND_JAY_4, TRAINER_JOHN_AND_JAY_5, METEOR_FALLS_1F_2R),
|
||||
[REMATCH_JEFFREY] = REMATCH(TRAINER_JEFFREY_1, TRAINER_JEFFREY_2, TRAINER_JEFFREY_3, TRAINER_JEFFREY_4, TRAINER_JEFFREY_5, ROUTE120),
|
||||
[REMATCH_CAMERON] = REMATCH(TRAINER_CAMERON_1, TRAINER_CAMERON_2, TRAINER_CAMERON_3, TRAINER_CAMERON_4, TRAINER_CAMERON_5, ROUTE123),
|
||||
[REMATCH_JACKI] = REMATCH(TRAINER_JACKI_1, TRAINER_JACKI_2, TRAINER_JACKI_3, TRAINER_JACKI_4, TRAINER_JACKI_5, ROUTE123),
|
||||
[REMATCH_WALTER] = REMATCH(TRAINER_WALTER_1, TRAINER_WALTER_2, TRAINER_WALTER_3, TRAINER_WALTER_4, TRAINER_WALTER_5, ROUTE121),
|
||||
[REMATCH_KAREN] = REMATCH(TRAINER_KAREN_1, TRAINER_KAREN_2, TRAINER_KAREN_3, TRAINER_KAREN_4, TRAINER_KAREN_5, ROUTE116),
|
||||
[REMATCH_JERRY] = REMATCH(TRAINER_JERRY_1, TRAINER_JERRY_2, TRAINER_JERRY_3, TRAINER_JERRY_4, TRAINER_JERRY_5, ROUTE116),
|
||||
[REMATCH_ANNA_AND_MEG] = REMATCH(TRAINER_ANNA_AND_MEG_1, TRAINER_ANNA_AND_MEG_2, TRAINER_ANNA_AND_MEG_3, TRAINER_ANNA_AND_MEG_4, TRAINER_ANNA_AND_MEG_5, ROUTE117),
|
||||
[REMATCH_ISABEL] = REMATCH(TRAINER_ISABEL_1, TRAINER_ISABEL_2, TRAINER_ISABEL_3, TRAINER_ISABEL_4, TRAINER_ISABEL_5, ROUTE110),
|
||||
[REMATCH_MIGUEL] = REMATCH(TRAINER_MIGUEL_1, TRAINER_MIGUEL_2, TRAINER_MIGUEL_3, TRAINER_MIGUEL_4, TRAINER_MIGUEL_5, ROUTE103),
|
||||
[REMATCH_TIMOTHY] = REMATCH(TRAINER_TIMOTHY_1, TRAINER_TIMOTHY_2, TRAINER_TIMOTHY_3, TRAINER_TIMOTHY_4, TRAINER_TIMOTHY_5, ROUTE115),
|
||||
[REMATCH_SHELBY] = REMATCH(TRAINER_SHELBY_1, TRAINER_SHELBY_2, TRAINER_SHELBY_3, TRAINER_SHELBY_4, TRAINER_SHELBY_5, MT_CHIMNEY),
|
||||
[REMATCH_CALVIN] = REMATCH(TRAINER_CALVIN_1, TRAINER_CALVIN_2, TRAINER_CALVIN_3, TRAINER_CALVIN_4, TRAINER_CALVIN_5, ROUTE102),
|
||||
[REMATCH_ELLIOT] = REMATCH(TRAINER_ELLIOT_1, TRAINER_ELLIOT_2, TRAINER_ELLIOT_3, TRAINER_ELLIOT_4, TRAINER_ELLIOT_5, ROUTE106),
|
||||
[REMATCH_ISAIAH] = REMATCH(TRAINER_ISAIAH_1, TRAINER_ISAIAH_2, TRAINER_ISAIAH_3, TRAINER_ISAIAH_4, TRAINER_ISAIAH_5, ROUTE128),
|
||||
[REMATCH_MARIA] = REMATCH(TRAINER_MARIA_1, TRAINER_MARIA_2, TRAINER_MARIA_3, TRAINER_MARIA_4, TRAINER_MARIA_5, ROUTE117),
|
||||
[REMATCH_ABIGAIL] = REMATCH(TRAINER_ABIGAIL_1, TRAINER_ABIGAIL_2, TRAINER_ABIGAIL_3, TRAINER_ABIGAIL_4, TRAINER_ABIGAIL_5, ROUTE110),
|
||||
[REMATCH_DYLAN] = REMATCH(TRAINER_DYLAN_1, TRAINER_DYLAN_2, TRAINER_DYLAN_3, TRAINER_DYLAN_4, TRAINER_DYLAN_5, ROUTE117),
|
||||
[REMATCH_KATELYN] = REMATCH(TRAINER_KATELYN_1, TRAINER_KATELYN_2, TRAINER_KATELYN_3, TRAINER_KATELYN_4, TRAINER_KATELYN_5, ROUTE128),
|
||||
[REMATCH_BENJAMIN] = REMATCH(TRAINER_BENJAMIN_1, TRAINER_BENJAMIN_2, TRAINER_BENJAMIN_3, TRAINER_BENJAMIN_4, TRAINER_BENJAMIN_5, ROUTE110),
|
||||
[REMATCH_PABLO] = REMATCH(TRAINER_PABLO_1, TRAINER_PABLO_2, TRAINER_PABLO_3, TRAINER_PABLO_4, TRAINER_PABLO_5, ROUTE126),
|
||||
[REMATCH_NICOLAS] = REMATCH(TRAINER_NICOLAS_1, TRAINER_NICOLAS_2, TRAINER_NICOLAS_3, TRAINER_NICOLAS_4, TRAINER_NICOLAS_5, METEOR_FALLS_1F_2R),
|
||||
[REMATCH_ROBERT] = REMATCH(TRAINER_ROBERT_1, TRAINER_ROBERT_2, TRAINER_ROBERT_3, TRAINER_ROBERT_4, TRAINER_ROBERT_5, ROUTE120),
|
||||
[REMATCH_LAO] = REMATCH(TRAINER_LAO_1, TRAINER_LAO_2, TRAINER_LAO_3, TRAINER_LAO_4, TRAINER_LAO_5, ROUTE113),
|
||||
[REMATCH_CYNDY] = REMATCH(TRAINER_CYNDY_1, TRAINER_CYNDY_2, TRAINER_CYNDY_3, TRAINER_CYNDY_4, TRAINER_CYNDY_5, ROUTE115),
|
||||
[REMATCH_MADELINE] = REMATCH(TRAINER_MADELINE_1, TRAINER_MADELINE_2, TRAINER_MADELINE_3, TRAINER_MADELINE_4, TRAINER_MADELINE_5, ROUTE113),
|
||||
[REMATCH_JENNY] = REMATCH(TRAINER_JENNY_1, TRAINER_JENNY_2, TRAINER_JENNY_3, TRAINER_JENNY_4, TRAINER_JENNY_5, ROUTE124),
|
||||
[REMATCH_DIANA] = REMATCH(TRAINER_DIANA_1, TRAINER_DIANA_2, TRAINER_DIANA_3, TRAINER_DIANA_4, TRAINER_DIANA_5, JAGGED_PASS),
|
||||
[REMATCH_AMY_AND_LIV] = REMATCH(TRAINER_AMY_AND_LIV_1, TRAINER_AMY_AND_LIV_2, TRAINER_AMY_AND_LIV_4, TRAINER_AMY_AND_LIV_5, TRAINER_AMY_AND_LIV_6, ROUTE103),
|
||||
[REMATCH_ERNEST] = REMATCH(TRAINER_ERNEST_1, TRAINER_ERNEST_2, TRAINER_ERNEST_3, TRAINER_ERNEST_4, TRAINER_ERNEST_5, ROUTE125),
|
||||
[REMATCH_CORY] = REMATCH(TRAINER_CORY_1, TRAINER_CORY_2, TRAINER_CORY_3, TRAINER_CORY_4, TRAINER_CORY_5, ROUTE108),
|
||||
[REMATCH_EDWIN] = REMATCH(TRAINER_EDWIN_1, TRAINER_EDWIN_2, TRAINER_EDWIN_3, TRAINER_EDWIN_4, TRAINER_EDWIN_5, ROUTE110),
|
||||
[REMATCH_LYDIA] = REMATCH(TRAINER_LYDIA_1, TRAINER_LYDIA_2, TRAINER_LYDIA_3, TRAINER_LYDIA_4, TRAINER_LYDIA_5, ROUTE117),
|
||||
[REMATCH_ISAAC] = REMATCH(TRAINER_ISAAC_1, TRAINER_ISAAC_2, TRAINER_ISAAC_3, TRAINER_ISAAC_4, TRAINER_ISAAC_5, ROUTE117),
|
||||
[REMATCH_GABRIELLE] = REMATCH(TRAINER_GABRIELLE_1, TRAINER_GABRIELLE_2, TRAINER_GABRIELLE_3, TRAINER_GABRIELLE_4, TRAINER_GABRIELLE_5, MT_PYRE_3F),
|
||||
[REMATCH_CATHERINE] = REMATCH(TRAINER_CATHERINE_1, TRAINER_CATHERINE_2, TRAINER_CATHERINE_3, TRAINER_CATHERINE_4, TRAINER_CATHERINE_5, ROUTE119),
|
||||
[REMATCH_JACKSON] = REMATCH(TRAINER_JACKSON_1, TRAINER_JACKSON_2, TRAINER_JACKSON_3, TRAINER_JACKSON_4, TRAINER_JACKSON_5, ROUTE119),
|
||||
[REMATCH_HALEY] = REMATCH(TRAINER_HALEY_1, TRAINER_HALEY_2, TRAINER_HALEY_3, TRAINER_HALEY_4, TRAINER_HALEY_5, ROUTE104),
|
||||
[REMATCH_JAMES] = REMATCH(TRAINER_JAMES_1, TRAINER_JAMES_2, TRAINER_JAMES_3, TRAINER_JAMES_4, TRAINER_JAMES_5, PETALBURG_WOODS),
|
||||
[REMATCH_TRENT] = REMATCH(TRAINER_TRENT_1, TRAINER_TRENT_2, TRAINER_TRENT_3, TRAINER_TRENT_4, TRAINER_TRENT_5, ROUTE112),
|
||||
[REMATCH_SAWYER] = REMATCH(TRAINER_SAWYER_1, TRAINER_SAWYER_2, TRAINER_SAWYER_3, TRAINER_SAWYER_4, TRAINER_SAWYER_5, MT_CHIMNEY),
|
||||
[REMATCH_KIRA_AND_DAN] = REMATCH(TRAINER_KIRA_AND_DAN_1, TRAINER_KIRA_AND_DAN_2, TRAINER_KIRA_AND_DAN_3, TRAINER_KIRA_AND_DAN_4, TRAINER_KIRA_AND_DAN_5, ABANDONED_SHIP_ROOMS2_1F),
|
||||
[REMATCH_WALLY_3] = REMATCH(TRAINER_WALLY_3, TRAINER_WALLY_4, TRAINER_WALLY_5, TRAINER_WALLY_6, TRAINER_WALLY_6, VICTORY_ROAD_1F),
|
||||
[REMATCH_ROXANNE] = REMATCH(TRAINER_ROXANNE_1, TRAINER_ROXANNE_2, TRAINER_ROXANNE_3, TRAINER_ROXANNE_4, TRAINER_ROXANNE_5, RUSTBORO_CITY),
|
||||
[REMATCH_BRAWLY] = REMATCH(TRAINER_BRAWLY_1, TRAINER_BRAWLY_2, TRAINER_BRAWLY_3, TRAINER_BRAWLY_4, TRAINER_BRAWLY_5, DEWFORD_TOWN),
|
||||
[REMATCH_WATTSON] = REMATCH(TRAINER_WATTSON_1, TRAINER_WATTSON_2, TRAINER_WATTSON_3, TRAINER_WATTSON_4, TRAINER_WATTSON_5, MAUVILLE_CITY),
|
||||
[REMATCH_FLANNERY] = REMATCH(TRAINER_FLANNERY_1, TRAINER_FLANNERY_2, TRAINER_FLANNERY_3, TRAINER_FLANNERY_4, TRAINER_FLANNERY_5, LAVARIDGE_TOWN),
|
||||
[REMATCH_NORMAN] = REMATCH(TRAINER_NORMAN_1, TRAINER_NORMAN_2, TRAINER_NORMAN_3, TRAINER_NORMAN_4, TRAINER_NORMAN_5, PETALBURG_CITY),
|
||||
[REMATCH_WINONA] = REMATCH(TRAINER_WINONA_1, TRAINER_WINONA_2, TRAINER_WINONA_3, TRAINER_WINONA_4, TRAINER_WINONA_5, FORTREE_CITY),
|
||||
[REMATCH_TATE_AND_LIZA] = REMATCH(TRAINER_TATE_AND_LIZA_1, TRAINER_TATE_AND_LIZA_2, TRAINER_TATE_AND_LIZA_3, TRAINER_TATE_AND_LIZA_4, TRAINER_TATE_AND_LIZA_5, MOSSDEEP_CITY),
|
||||
[REMATCH_JUAN] = REMATCH(TRAINER_JUAN_1, TRAINER_JUAN_2, TRAINER_JUAN_3, TRAINER_JUAN_4, TRAINER_JUAN_5, SOOTOPOLIS_CITY),
|
||||
[REMATCH_SIDNEY] = REMATCH(TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, EVER_GRANDE_CITY),
|
||||
[REMATCH_PHOEBE] = REMATCH(TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, EVER_GRANDE_CITY),
|
||||
[REMATCH_GLACIA] = REMATCH(TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, EVER_GRANDE_CITY),
|
||||
[REMATCH_DRAKE] = REMATCH(TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, EVER_GRANDE_CITY),
|
||||
[REMATCH_WALLACE] = REMATCH(TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, EVER_GRANDE_CITY),
|
||||
};
|
||||
|
||||
static const u16 sBadgeFlags[8] =
|
||||
|
||||
+1
-1
@@ -3190,7 +3190,7 @@ static void FillPartnerParty(u16 trainerId)
|
||||
sStevenMons[i].level,
|
||||
sStevenMons[i].fixedIV,
|
||||
TRUE, i, // BUG: personality was stored in the 'j' variable. As a result, Steven's pokemon do not have the intended natures.
|
||||
TRUE, STEVEN_OTID);
|
||||
OT_ID_PRESET, STEVEN_OTID);
|
||||
for (j = 0; j < 6; j++)
|
||||
SetMonData(&gPlayerParty[3 + i], MON_DATA_HP_EV + j, &sStevenMons[i].evs[j]);
|
||||
for (j = 0; j < MAX_MON_MOVES; j++)
|
||||
|
||||
@@ -292,7 +292,7 @@ static void PrintContestPaintingCaption(u8 contestType, u8 arg1)
|
||||
category = gUnknown_030061C0->contestCategory;
|
||||
if (contestType < 8)
|
||||
{
|
||||
sub_818E868(gStringVar1, category);
|
||||
BufferContestName(gStringVar1, category);
|
||||
StringAppend(gStringVar1, gText_Space);
|
||||
StringAppend(gStringVar1, gContestRankTextPointers[gUnknown_030061C0->contestRank]);
|
||||
StringCopy(gStringVar2, gUnknown_030061C0->trainerName);
|
||||
|
||||
+239
-236
@@ -143,7 +143,7 @@ struct Unk201C000
|
||||
struct CreditsEntry
|
||||
{
|
||||
u8 var_0;
|
||||
u8 var_1;
|
||||
bool8 isTitle;
|
||||
const u8 *text;
|
||||
};
|
||||
|
||||
@@ -165,7 +165,7 @@ static const u32 gCreditsCopyrightEnd_Gfx[] = INCBIN_U32("graphics/credits/the_e
|
||||
|
||||
static void sub_81772B8(struct Sprite *sprite);
|
||||
|
||||
static const u8 gUnknown_085E5BAC[] =
|
||||
static const u8 sTheEnd_LetterTMap[] =
|
||||
{
|
||||
0, 1, 0,
|
||||
0xFF, 1, 0xFF,
|
||||
@@ -174,7 +174,7 @@ static const u8 gUnknown_085E5BAC[] =
|
||||
0xFF, 1, 0xFF,
|
||||
};
|
||||
|
||||
static const u8 gUnknown_085E5BBB[] =
|
||||
static const u8 sTheEnd_LetterHMap[] =
|
||||
{
|
||||
1, 0xFF, 1,
|
||||
1, 0xFF, 1,
|
||||
@@ -183,7 +183,7 @@ static const u8 gUnknown_085E5BBB[] =
|
||||
1, 0xFF, 1,
|
||||
};
|
||||
|
||||
static const u8 gUnknown_085E5BCA[] =
|
||||
static const u8 sTheEnd_LetterEMap[] =
|
||||
{
|
||||
1, 0, 0,
|
||||
1, 0xFF, 0xFF,
|
||||
@@ -192,7 +192,7 @@ static const u8 gUnknown_085E5BCA[] =
|
||||
1, 0x80, 0x80,
|
||||
};
|
||||
|
||||
static const u8 gUnknown_085E5BD9[] =
|
||||
static const u8 sTheEnd_LetterNMap[] =
|
||||
{
|
||||
1, 3, 1,
|
||||
1, 4, 1,
|
||||
@@ -201,7 +201,7 @@ static const u8 gUnknown_085E5BD9[] =
|
||||
1, 0xC3, 1,
|
||||
};
|
||||
|
||||
static const u8 gUnknown_085E5BE8[] =
|
||||
static const u8 sTheEnd_LetterDMap[] =
|
||||
{
|
||||
1, 6, 7,
|
||||
1, 8, 9,
|
||||
@@ -369,165 +369,165 @@ static const u8 gCreditsText_MotoyasuTojima[] = _("Motoyasu Tojima");
|
||||
static const u8 gCreditsText_NicolaPrattBarlow[] = _("Nicola Pratt-Barlow");
|
||||
static const u8 gCreditsText_ShellieDow[] = _("Shellie Dow");
|
||||
static const u8 gCreditsText_ErikJohnson[] = _("Erik Johnson");
|
||||
static const struct CreditsEntry gCreditsEntry_EmptyString[] = {0, 0, gCreditsText_EmptyString};
|
||||
static const struct CreditsEntry gCreditsEntry_PkmnEmeraldVersion[] = {7, 1, gCreditsText_PkmnEmeraldVersion};
|
||||
static const struct CreditsEntry gCreditsEntry_Credits[] = {11, 1, gCreditsText_Credits};
|
||||
static const struct CreditsEntry gCreditsEntry_ExecutiveDirector[] = {8, 1, gCreditsText_ExecutiveDirector};
|
||||
static const struct CreditsEntry gCreditsEntry_Director[] = {12, 1, gCreditsText_Director};
|
||||
static const struct CreditsEntry gCreditsEntry_ArtDirector[] = {10, 1, gCreditsText_ArtDirector};
|
||||
static const struct CreditsEntry gCreditsEntry_BattleDirector[] = {10, 1, gCreditsText_BattleDirector};
|
||||
static const struct CreditsEntry gCreditsEntry_MainProgrammer[] = {10, 1, gCreditsText_MainProgrammer};
|
||||
static const struct CreditsEntry gCreditsEntry_BattleSystemPgrms[] = {8, 1, gCreditsText_BattleSystemPgrms};
|
||||
static const struct CreditsEntry gCreditsEntry_FieldSystemPgrms[] = {7, 1, gCreditsText_FieldSystemPgrms};
|
||||
static const struct CreditsEntry gCreditsEntry_Programmers[] = {12, 1, gCreditsText_Programmers};
|
||||
static const struct CreditsEntry gCreditsEntry_MainGraphicDesigner[] = {7, 1, gCreditsText_MainGraphicDesigner};
|
||||
static const struct CreditsEntry gCreditsEntry_GraphicDesigners[] = {9, 1, gCreditsText_GraphicDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_PkmnDesigners[] = {10, 1, gCreditsText_PkmnDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_MusicComposition[] = {13, 1, gCreditsText_MusicComposition};
|
||||
static const struct CreditsEntry gCreditsEntry_SoundEffectsAndPkmnVoices[] = {4, 1, gCreditsText_SoundEffectsAndPkmnVoices};
|
||||
static const struct CreditsEntry gCreditsEntry_GameDesigners[] = {11, 1, gCreditsText_GameDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_ScenarioPlot[] = {11, 1, gCreditsText_ScenarioPlot};
|
||||
static const struct CreditsEntry gCreditsEntry_Scenario[] = {13, 1, gCreditsText_Scenario};
|
||||
static const struct CreditsEntry gCreditsEntry_ScriptDesigners[] = {10, 1, gCreditsText_ScriptDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_MapDesigners[] = {11, 1, gCreditsText_MapDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_MapDataDesigners[] = {9, 1, gCreditsText_MapDataDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_ParametricDesigners[] = {9, 1, gCreditsText_ParametricDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_PokedexText[] = {11, 1, gCreditsText_PokedexText};
|
||||
static const struct CreditsEntry gCreditsEntry_EnvAndToolPgrms[] = {6, 1, gCreditsText_EnvAndToolPgrms};
|
||||
static const struct CreditsEntry gCreditsEntry_NCLProductTesting[] = {11, 1, gCreditsText_NCLProductTesting};
|
||||
static const struct CreditsEntry gCreditsEntry_SpecialThanks[] = {10, 1, gCreditsText_SpecialThanks};
|
||||
static const struct CreditsEntry gCreditsEntry_Coordinators[] = {11, 1, gCreditsText_Coordinators};
|
||||
static const struct CreditsEntry gCreditsEntry_Producers[] = {11, 1, gCreditsText_Producers};
|
||||
static const struct CreditsEntry gCreditsEntry_ExecProducers[] = {7, 1, gCreditsText_ExecProducers};
|
||||
static const struct CreditsEntry gCreditsEntry_InfoSupervisors[] = {10, 1, gCreditsText_InfoSupervisors};
|
||||
static const struct CreditsEntry gCreditsEntry_TaskManagers[] = {8, 1, gCreditsText_TaskManagers};
|
||||
static const struct CreditsEntry gCreditsEntry_BrailleCodeCheck[] = {10, 1, gCreditsText_BrailleCodeCheck};
|
||||
static const struct CreditsEntry gCreditsEntry_WorldDirector[] = {10, 1, gCreditsText_WorldDirector};
|
||||
static const struct CreditsEntry gCreditsEntry_BattleFrontierData[] = {8, 1, gCreditsText_BattleFrontierData};
|
||||
static const struct CreditsEntry gCreditsEntry_SupportProgrammers[] = {10, 1, gCreditsText_SupportProgrammers};
|
||||
static const struct CreditsEntry gCreditsEntry_Artwork[] = {12, 1, gCreditsText_Artwork};
|
||||
static const struct CreditsEntry gCreditsEntry_LeadProgrammer[] = {10, 1, gCreditsText_LeadProgrammer};
|
||||
static const struct CreditsEntry gCreditsEntry_LeadGraphicArtist[] = {9, 1, gCreditsText_LeadGraphicArtist};
|
||||
static const struct CreditsEntry gCreditsEntry_SatoshiTajiri[] = {11, 0, gCreditsText_SatoshiTajiri};
|
||||
static const struct CreditsEntry gCreditsEntry_JunichiMasuda[] = {11, 0, gCreditsText_JunichiMasuda};
|
||||
static const struct CreditsEntry gCreditsEntry_KenSugimori[] = {11, 0, gCreditsText_KenSugimori};
|
||||
static const struct CreditsEntry gCreditsEntry_ShigekiMorimoto[] = {11, 0, gCreditsText_ShigekiMorimoto};
|
||||
static const struct CreditsEntry gCreditsEntry_TetsuyaWatanabe[] = {11, 0, gCreditsText_TetsuyaWatanabe};
|
||||
static const struct CreditsEntry gCreditsEntry_HisashiSogabe[] = {11, 0, gCreditsText_HisashiSogabe};
|
||||
static const struct CreditsEntry gCreditsEntry_SosukeTamada[] = {11, 0, gCreditsText_SosukeTamada};
|
||||
static const struct CreditsEntry gCreditsEntry_AkitoMori[] = {11, 0, gCreditsText_AkitoMori};
|
||||
static const struct CreditsEntry gCreditsEntry_KeitaKagaya[] = {11, 0, gCreditsText_KeitaKagaya};
|
||||
static const struct CreditsEntry gCreditsEntry_YoshinoriMatsuda[] = {11, 0, gCreditsText_YoshinoriMatsuda};
|
||||
static const struct CreditsEntry gCreditsEntry_HiroyukiNakamura[] = {11, 0, gCreditsText_HiroyukiNakamura};
|
||||
static const struct CreditsEntry gCreditsEntry_MasaoTaya[] = {11, 0, gCreditsText_MasaoTaya};
|
||||
static const struct CreditsEntry gCreditsEntry_SatoshiNohara[] = {11, 0, gCreditsText_SatoshiNohara};
|
||||
static const struct CreditsEntry gCreditsEntry_TomomichiOhta[] = {11, 0, gCreditsText_TomomichiOhta};
|
||||
static const struct CreditsEntry gCreditsEntry_MiyukiIwasawa[] = {11, 0, gCreditsText_MiyukiIwasawa};
|
||||
static const struct CreditsEntry gCreditsEntry_TakenoriOhta[] = {11, 0, gCreditsText_TakenoriOhta};
|
||||
static const struct CreditsEntry gCreditsEntry_HironobuYoshida[] = {11, 0, gCreditsText_HironobuYoshida};
|
||||
static const struct CreditsEntry gCreditsEntry_MotofumiFujiwara[] = {11, 0, gCreditsText_MotofumiFujiwara};
|
||||
static const struct CreditsEntry gCreditsEntry_SatoshiOhta[] = {11, 0, gCreditsText_SatoshiOhta};
|
||||
static const struct CreditsEntry gCreditsEntry_AsukaIwashita[] = {11, 0, gCreditsText_AsukaIwashita};
|
||||
static const struct CreditsEntry gCreditsEntry_AimiTomita[] = {11, 0, gCreditsText_AimiTomita};
|
||||
static const struct CreditsEntry gCreditsEntry_TakaoUnno[] = {11, 0, gCreditsText_TakaoUnno};
|
||||
static const struct CreditsEntry gCreditsEntry_KanakoEo[] = {11, 0, gCreditsText_KanakoEo};
|
||||
static const struct CreditsEntry gCreditsEntry_JunOkutani[] = {11, 0, gCreditsText_JunOkutani};
|
||||
static const struct CreditsEntry gCreditsEntry_AtsukoNishida[] = {11, 0, gCreditsText_AtsukoNishida};
|
||||
static const struct CreditsEntry gCreditsEntry_MuneoSaito[] = {11, 0, gCreditsText_MuneoSaito};
|
||||
static const struct CreditsEntry gCreditsEntry_RenaYoshikawa[] = {11, 0, gCreditsText_RenaYoshikawa};
|
||||
static const struct CreditsEntry gCreditsEntry_GoIchinose[] = {11, 0, gCreditsText_GoIchinose};
|
||||
static const struct CreditsEntry gCreditsEntry_MorikazuAoki[] = {11, 0, gCreditsText_MorikazuAoki};
|
||||
static const struct CreditsEntry gCreditsEntry_KojiNishino[] = {11, 0, gCreditsText_KojiNishino};
|
||||
static const struct CreditsEntry gCreditsEntry_KenjiMatsushima[] = {11, 0, gCreditsText_KenjiMatsushima};
|
||||
static const struct CreditsEntry gCreditsEntry_TetsujiOhta[] = {11, 0, gCreditsText_TetsujiOhta};
|
||||
static const struct CreditsEntry gCreditsEntry_HitomiSato[] = {11, 0, gCreditsText_HitomiSato};
|
||||
static const struct CreditsEntry gCreditsEntry_TakeshiKawachimaru[] = {11, 0, gCreditsText_TakeshiKawachimaru};
|
||||
static const struct CreditsEntry gCreditsEntry_TeruyukiShimoyamada[] = {11, 0, gCreditsText_TeruyukiShimoyamada};
|
||||
static const struct CreditsEntry gCreditsEntry_ShigeruOhmori[] = {11, 0, gCreditsText_ShigeruOhmori};
|
||||
static const struct CreditsEntry gCreditsEntry_TadashiTakahashi[] = {11, 0, gCreditsText_TadashiTakahashi};
|
||||
static const struct CreditsEntry gCreditsEntry_ToshinobuMatsumiya[] = {11, 0, gCreditsText_ToshinobuMatsumiya};
|
||||
static const struct CreditsEntry gCreditsEntry_AkihitoTomisawa[] = {11, 0, gCreditsText_AkihitoTomisawa};
|
||||
static const struct CreditsEntry gCreditsEntry_HirokiEnomoto[] = {11, 0, gCreditsText_HirokiEnomoto};
|
||||
static const struct CreditsEntry gCreditsEntry_KazuyukiTerada[] = {11, 0, gCreditsText_KazuyukiTerada};
|
||||
static const struct CreditsEntry gCreditsEntry_YuriSakurai[] = {11, 0, gCreditsText_YuriSakurai};
|
||||
static const struct CreditsEntry gCreditsEntry_HiromiSagawa[] = {11, 0, gCreditsText_HiromiSagawa};
|
||||
static const struct CreditsEntry gCreditsEntry_KenjiTominaga[] = {11, 0, gCreditsText_KenjiTominaga};
|
||||
static const struct CreditsEntry gCreditsEntry_YoshioTajiri[] = {11, 0, gCreditsText_YoshioTajiri};
|
||||
static const struct CreditsEntry gCreditsEntry_TeikoSasaki[] = {11, 0, gCreditsText_TeikoSasaki};
|
||||
static const struct CreditsEntry gCreditsEntry_SachikoHamano[] = {11, 0, gCreditsText_SachikoHamano};
|
||||
static const struct CreditsEntry gCreditsEntry_ChieMatsumiya[] = {11, 0, gCreditsText_ChieMatsumiya};
|
||||
static const struct CreditsEntry gCreditsEntry_AkikoShinozaki[] = {11, 0, gCreditsText_AkikoShinozaki};
|
||||
static const struct CreditsEntry gCreditsEntry_AstukoFujii[] = {11, 0, gCreditsText_AstukoFujii};
|
||||
static const struct CreditsEntry gCreditsEntry_NozomuSaito[] = {11, 0, gCreditsText_NozomuSaito};
|
||||
static const struct CreditsEntry gCreditsEntry_KenkichiToyama[] = {11, 0, gCreditsText_KenkichiToyama};
|
||||
static const struct CreditsEntry gCreditsEntry_SuguruNakatsui[] = {11, 0, gCreditsText_SuguruNakatsui};
|
||||
static const struct CreditsEntry gCreditsEntry_YumiFunasaka[] = {11, 0, gCreditsText_YumiFunasaka};
|
||||
static const struct CreditsEntry gCreditsEntry_NaokoYanase[] = {11, 0, gCreditsText_NaokoYanase};
|
||||
static const struct CreditsEntry gCreditsEntry_NCLSuperMarioClub[] = {11, 0, gCreditsText_NCLSuperMarioClub};
|
||||
static const struct CreditsEntry gCreditsEntry_AtsushiTada[] = {11, 0, gCreditsText_AtsushiTada};
|
||||
static const struct CreditsEntry gCreditsEntry_TakahiroOhnishi[] = {11, 0, gCreditsText_TakahiroOhnishi};
|
||||
static const struct CreditsEntry gCreditsEntry_NorihideOkamura[] = {11, 0, gCreditsText_NorihideOkamura};
|
||||
static const struct CreditsEntry gCreditsEntry_HiroNakamura[] = {11, 0, gCreditsText_HiroNakamura};
|
||||
static const struct CreditsEntry gCreditsEntry_HiroyukiUesugi[] = {11, 0, gCreditsText_HiroyukiUesugi};
|
||||
static const struct CreditsEntry gCreditsEntry_TerukiMurakawa[] = {11, 0, gCreditsText_TerukiMurakawa};
|
||||
static const struct CreditsEntry gCreditsEntry_AkiraKinashi[] = {11, 0, gCreditsText_AkiraKinashi};
|
||||
static const struct CreditsEntry gCreditsEntry_MichikoTakizawa[] = {11, 0, gCreditsText_MichikoTakizawa};
|
||||
static const struct CreditsEntry gCreditsEntry_MakikoTakada[] = {11, 0, gCreditsText_MakikoTakada};
|
||||
static const struct CreditsEntry gCreditsEntry_TakanaoKondo[] = {11, 0, gCreditsText_TakanaoKondo};
|
||||
static const struct CreditsEntry gCreditsEntry_AiMashima[] = {11, 0, gCreditsText_AiMashima};
|
||||
static const struct CreditsEntry gCreditsEntry_GakujiNomoto[] = {11, 0, gCreditsText_GakujiNomoto};
|
||||
static const struct CreditsEntry gCreditsEntry_TakehiroIzushi[] = {11, 0, gCreditsText_TakehiroIzushi};
|
||||
static const struct CreditsEntry gCreditsEntry_HitoshiYamagami[] = {11, 0, gCreditsText_HitoshiYamagami};
|
||||
static const struct CreditsEntry gCreditsEntry_KyokoWatanabe[] = {11, 0, gCreditsText_KyokoWatanabe};
|
||||
static const struct CreditsEntry gCreditsEntry_TakaoNakano[] = {11, 0, gCreditsText_TakaoNakano};
|
||||
static const struct CreditsEntry gCreditsEntry_HiroyukiJinnai[] = {11, 0, gCreditsText_HiroyukiJinnai};
|
||||
static const struct CreditsEntry gCreditsEntry_HiroakiTsuru[] = {11, 0, gCreditsText_HiroakiTsuru};
|
||||
static const struct CreditsEntry gCreditsEntry_TsunekazIshihara[] = {11, 0, gCreditsText_TsunekazIshihara};
|
||||
static const struct CreditsEntry gCreditsEntry_SatoruIwata[] = {11, 0, gCreditsText_SatoruIwata};
|
||||
static const struct CreditsEntry gCreditsEntry_KazuyaSuyama[] = {11, 0, gCreditsText_KazuyaSuyama};
|
||||
static const struct CreditsEntry gCreditsEntry_SatoshiMitsuhara[] = {11, 0, gCreditsText_SatoshiMitsuhara};
|
||||
static const struct CreditsEntry gCreditsEntry_JapanBrailleLibrary[] = {9, 0, gCreditsText_JapanBrailleLibrary};
|
||||
static const struct CreditsEntry gCreditsEntry_TomotakaKomura[] = {11, 0, gCreditsText_TomotakaKomura};
|
||||
static const struct CreditsEntry gCreditsEntry_MikikoOhhashi[] = {11, 0, gCreditsText_MikikoOhhashi};
|
||||
static const struct CreditsEntry gCreditsEntry_DaisukeHoshino[] = {11, 0, gCreditsText_DaisukeHoshino};
|
||||
static const struct CreditsEntry gCreditsEntry_KenjiroIto[] = {11, 0, gCreditsText_KenjiroIto};
|
||||
static const struct CreditsEntry gCreditsEntry_RuiKawaguchi[] = {11, 0, gCreditsText_RuiKawaguchi};
|
||||
static const struct CreditsEntry gCreditsEntry_ShunsukeKohori[] = {11, 0, gCreditsText_ShunsukeKohori};
|
||||
static const struct CreditsEntry gCreditsEntry_SachikoNakamichi[] = {11, 0, gCreditsText_SachikoNakamichi};
|
||||
static const struct CreditsEntry gCreditsEntry_FujikoNomura[] = {11, 0, gCreditsText_FujikoNomura};
|
||||
static const struct CreditsEntry gCreditsEntry_KazukiYoshihara[] = {11, 0, gCreditsText_KazukiYoshihara};
|
||||
static const struct CreditsEntry gCreditsEntry_RetsujiNomoto[] = {11, 0, gCreditsText_RetsujiNomoto};
|
||||
static const struct CreditsEntry gCreditsEntry_AzusaTajima[] = {11, 0, gCreditsText_AzusaTajima};
|
||||
static const struct CreditsEntry gCreditsEntry_ShusakuEgami[] = {11, 0, gCreditsText_ShusakuEgami};
|
||||
static const struct CreditsEntry gCreditsEntry_PackageAndManual[] = {0, 1, gCreditsText_PackageAndManual};
|
||||
static const struct CreditsEntry gCreditsEntry_EnglishVersion[] = {0, 1, gCreditsText_EnglishVersion};
|
||||
static const struct CreditsEntry gCreditsEntry_Translator[] = {0, 1, gCreditsText_Translator};
|
||||
static const struct CreditsEntry gCreditsEntry_TextEditor[] = {0, 1, gCreditsText_TextEditor};
|
||||
static const struct CreditsEntry gCreditsEntry_NCLCoordinator[] = {0, 1, gCreditsText_NCLCoordinator};
|
||||
static const struct CreditsEntry gCreditsEntry_GraphicDesigner[] = {0, 1, gCreditsText_GraphicDesigner};
|
||||
static const struct CreditsEntry gCreditsEntry_NOAProductTesting[] = {0, 1, gCreditsText_NOAProductTesting};
|
||||
static const struct CreditsEntry gCreditsEntry_HideyukiNakajima[] = {0, 0, gCreditsText_HideyukiNakajima};
|
||||
static const struct CreditsEntry gCreditsEntry_HidenoriSaeki[] = {0, 0, gCreditsText_HidenoriSaeki};
|
||||
static const struct CreditsEntry gCreditsEntry_YokoWatanabe[] = {0, 0, gCreditsText_YokoWatanabe};
|
||||
static const struct CreditsEntry gCreditsEntry_SakaeKimura[] = {0, 0, gCreditsText_SakaeKimura};
|
||||
static const struct CreditsEntry gCreditsEntry_ChiakiShinkai[] = {0, 0, gCreditsText_ChiakiShinkai};
|
||||
static const struct CreditsEntry gCreditsEntry_SethMcMahill[] = {0, 0, gCreditsText_SethMcMahill};
|
||||
static const struct CreditsEntry gCreditsEntry_NobOgasawara[] = {0, 0, gCreditsText_NobOgasawara};
|
||||
static const struct CreditsEntry gCreditsEntry_TeresaLillygren[] = {0, 0, gCreditsText_TeresaLillygren};
|
||||
static const struct CreditsEntry gCreditsEntry_KimikoNakamichi[] = {0, 0, gCreditsText_KimikoNakamichi};
|
||||
static const struct CreditsEntry gCreditsEntry_SouichiYamamoto[] = {0, 0, gCreditsText_SouichiYamamoto};
|
||||
static const struct CreditsEntry gCreditsEntry_YuichiroIto[] = {0, 0, gCreditsText_YuichiroIto};
|
||||
static const struct CreditsEntry gCreditsEntry_ThomasHertzog[] = {0, 0, gCreditsText_ThomasHertzog};
|
||||
static const struct CreditsEntry gCreditsEntry_MikaKurosawa[] = {0, 0, gCreditsText_MikaKurosawa};
|
||||
static const struct CreditsEntry gCreditsEntry_NationalFederationBlind[] = {0, 0, gCreditsText_NationalFederationBlind};
|
||||
static const struct CreditsEntry gCreditsEntry_PatriciaAMaurer[] = {0, 0, gCreditsText_PatriciaAMaurer};
|
||||
static const struct CreditsEntry gCreditsEntry_EuropeanBlindUnion[] = {0, 0, gCreditsText_EuropeanBlindUnion};
|
||||
static const struct CreditsEntry gCreditsEntry_AustralianBrailleAuthority[] = {0, 0, gCreditsText_AustralianBrailleAuthority};
|
||||
static const struct CreditsEntry gCreditsEntry_RoyalNewZealandFederationBlind[] = {0, 0, gCreditsText_RoyalNewZealandFederationBlind};
|
||||
static const struct CreditsEntry gCreditsEntry_MotoyasuTojima[] = {0, 0, gCreditsText_MotoyasuTojima};
|
||||
static const struct CreditsEntry gCreditsEntry_NicolaPrattBarlow[] = {0, 0, gCreditsText_NicolaPrattBarlow};
|
||||
static const struct CreditsEntry gCreditsEntry_ShellieDow[] = {0, 0, gCreditsText_ShellieDow};
|
||||
static const struct CreditsEntry gCreditsEntry_ErikJohnson[] = {0, 0, gCreditsText_ErikJohnson};
|
||||
static const struct CreditsEntry gCreditsEntry_EmptyString[] = {0, FALSE, gCreditsText_EmptyString};
|
||||
static const struct CreditsEntry gCreditsEntry_PkmnEmeraldVersion[] = {7, TRUE, gCreditsText_PkmnEmeraldVersion};
|
||||
static const struct CreditsEntry gCreditsEntry_Credits[] = {11, TRUE, gCreditsText_Credits};
|
||||
static const struct CreditsEntry gCreditsEntry_ExecutiveDirector[] = {8, TRUE, gCreditsText_ExecutiveDirector};
|
||||
static const struct CreditsEntry gCreditsEntry_Director[] = {12, TRUE, gCreditsText_Director};
|
||||
static const struct CreditsEntry gCreditsEntry_ArtDirector[] = {10, TRUE, gCreditsText_ArtDirector};
|
||||
static const struct CreditsEntry gCreditsEntry_BattleDirector[] = {10, TRUE, gCreditsText_BattleDirector};
|
||||
static const struct CreditsEntry gCreditsEntry_MainProgrammer[] = {10, TRUE, gCreditsText_MainProgrammer};
|
||||
static const struct CreditsEntry gCreditsEntry_BattleSystemPgrms[] = {8, TRUE, gCreditsText_BattleSystemPgrms};
|
||||
static const struct CreditsEntry gCreditsEntry_FieldSystemPgrms[] = {7, TRUE, gCreditsText_FieldSystemPgrms};
|
||||
static const struct CreditsEntry gCreditsEntry_Programmers[] = {12, TRUE, gCreditsText_Programmers};
|
||||
static const struct CreditsEntry gCreditsEntry_MainGraphicDesigner[] = {7, TRUE, gCreditsText_MainGraphicDesigner};
|
||||
static const struct CreditsEntry gCreditsEntry_GraphicDesigners[] = {9, TRUE, gCreditsText_GraphicDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_PkmnDesigners[] = {10, TRUE, gCreditsText_PkmnDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_MusicComposition[] = {13, TRUE, gCreditsText_MusicComposition};
|
||||
static const struct CreditsEntry gCreditsEntry_SoundEffectsAndPkmnVoices[] = {4, TRUE, gCreditsText_SoundEffectsAndPkmnVoices};
|
||||
static const struct CreditsEntry gCreditsEntry_GameDesigners[] = {11, TRUE, gCreditsText_GameDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_ScenarioPlot[] = {11, TRUE, gCreditsText_ScenarioPlot};
|
||||
static const struct CreditsEntry gCreditsEntry_Scenario[] = {13, TRUE, gCreditsText_Scenario};
|
||||
static const struct CreditsEntry gCreditsEntry_ScriptDesigners[] = {10, TRUE, gCreditsText_ScriptDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_MapDesigners[] = {11, TRUE, gCreditsText_MapDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_MapDataDesigners[] = {9, TRUE, gCreditsText_MapDataDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_ParametricDesigners[] = {9, TRUE, gCreditsText_ParametricDesigners};
|
||||
static const struct CreditsEntry gCreditsEntry_PokedexText[] = {11, TRUE, gCreditsText_PokedexText};
|
||||
static const struct CreditsEntry gCreditsEntry_EnvAndToolPgrms[] = {6, TRUE, gCreditsText_EnvAndToolPgrms};
|
||||
static const struct CreditsEntry gCreditsEntry_NCLProductTesting[] = {11, TRUE, gCreditsText_NCLProductTesting};
|
||||
static const struct CreditsEntry gCreditsEntry_SpecialThanks[] = {10, TRUE, gCreditsText_SpecialThanks};
|
||||
static const struct CreditsEntry gCreditsEntry_Coordinators[] = {11, TRUE, gCreditsText_Coordinators};
|
||||
static const struct CreditsEntry gCreditsEntry_Producers[] = {11, TRUE, gCreditsText_Producers};
|
||||
static const struct CreditsEntry gCreditsEntry_ExecProducers[] = {7, TRUE, gCreditsText_ExecProducers};
|
||||
static const struct CreditsEntry gCreditsEntry_InfoSupervisors[] = {10, TRUE, gCreditsText_InfoSupervisors};
|
||||
static const struct CreditsEntry gCreditsEntry_TaskManagers[] = {8, TRUE, gCreditsText_TaskManagers};
|
||||
static const struct CreditsEntry gCreditsEntry_BrailleCodeCheck[] = {10, TRUE, gCreditsText_BrailleCodeCheck};
|
||||
static const struct CreditsEntry gCreditsEntry_WorldDirector[] = {10, TRUE, gCreditsText_WorldDirector};
|
||||
static const struct CreditsEntry gCreditsEntry_BattleFrontierData[] = {8, TRUE, gCreditsText_BattleFrontierData};
|
||||
static const struct CreditsEntry gCreditsEntry_SupportProgrammers[] = {10, TRUE, gCreditsText_SupportProgrammers};
|
||||
static const struct CreditsEntry gCreditsEntry_Artwork[] = {12, TRUE, gCreditsText_Artwork};
|
||||
static const struct CreditsEntry gCreditsEntry_LeadProgrammer[] = {10, TRUE, gCreditsText_LeadProgrammer};
|
||||
static const struct CreditsEntry gCreditsEntry_LeadGraphicArtist[] = {9, TRUE, gCreditsText_LeadGraphicArtist};
|
||||
static const struct CreditsEntry gCreditsEntry_SatoshiTajiri[] = {11, FALSE, gCreditsText_SatoshiTajiri};
|
||||
static const struct CreditsEntry gCreditsEntry_JunichiMasuda[] = {11, FALSE, gCreditsText_JunichiMasuda};
|
||||
static const struct CreditsEntry gCreditsEntry_KenSugimori[] = {11, FALSE, gCreditsText_KenSugimori};
|
||||
static const struct CreditsEntry gCreditsEntry_ShigekiMorimoto[] = {11, FALSE, gCreditsText_ShigekiMorimoto};
|
||||
static const struct CreditsEntry gCreditsEntry_TetsuyaWatanabe[] = {11, FALSE, gCreditsText_TetsuyaWatanabe};
|
||||
static const struct CreditsEntry gCreditsEntry_HisashiSogabe[] = {11, FALSE, gCreditsText_HisashiSogabe};
|
||||
static const struct CreditsEntry gCreditsEntry_SosukeTamada[] = {11, FALSE, gCreditsText_SosukeTamada};
|
||||
static const struct CreditsEntry gCreditsEntry_AkitoMori[] = {11, FALSE, gCreditsText_AkitoMori};
|
||||
static const struct CreditsEntry gCreditsEntry_KeitaKagaya[] = {11, FALSE, gCreditsText_KeitaKagaya};
|
||||
static const struct CreditsEntry gCreditsEntry_YoshinoriMatsuda[] = {11, FALSE, gCreditsText_YoshinoriMatsuda};
|
||||
static const struct CreditsEntry gCreditsEntry_HiroyukiNakamura[] = {11, FALSE, gCreditsText_HiroyukiNakamura};
|
||||
static const struct CreditsEntry gCreditsEntry_MasaoTaya[] = {11, FALSE, gCreditsText_MasaoTaya};
|
||||
static const struct CreditsEntry gCreditsEntry_SatoshiNohara[] = {11, FALSE, gCreditsText_SatoshiNohara};
|
||||
static const struct CreditsEntry gCreditsEntry_TomomichiOhta[] = {11, FALSE, gCreditsText_TomomichiOhta};
|
||||
static const struct CreditsEntry gCreditsEntry_MiyukiIwasawa[] = {11, FALSE, gCreditsText_MiyukiIwasawa};
|
||||
static const struct CreditsEntry gCreditsEntry_TakenoriOhta[] = {11, FALSE, gCreditsText_TakenoriOhta};
|
||||
static const struct CreditsEntry gCreditsEntry_HironobuYoshida[] = {11, FALSE, gCreditsText_HironobuYoshida};
|
||||
static const struct CreditsEntry gCreditsEntry_MotofumiFujiwara[] = {11, FALSE, gCreditsText_MotofumiFujiwara};
|
||||
static const struct CreditsEntry gCreditsEntry_SatoshiOhta[] = {11, FALSE, gCreditsText_SatoshiOhta};
|
||||
static const struct CreditsEntry gCreditsEntry_AsukaIwashita[] = {11, FALSE, gCreditsText_AsukaIwashita};
|
||||
static const struct CreditsEntry gCreditsEntry_AimiTomita[] = {11, FALSE, gCreditsText_AimiTomita};
|
||||
static const struct CreditsEntry gCreditsEntry_TakaoUnno[] = {11, FALSE, gCreditsText_TakaoUnno};
|
||||
static const struct CreditsEntry gCreditsEntry_KanakoEo[] = {11, FALSE, gCreditsText_KanakoEo};
|
||||
static const struct CreditsEntry gCreditsEntry_JunOkutani[] = {11, FALSE, gCreditsText_JunOkutani};
|
||||
static const struct CreditsEntry gCreditsEntry_AtsukoNishida[] = {11, FALSE, gCreditsText_AtsukoNishida};
|
||||
static const struct CreditsEntry gCreditsEntry_MuneoSaito[] = {11, FALSE, gCreditsText_MuneoSaito};
|
||||
static const struct CreditsEntry gCreditsEntry_RenaYoshikawa[] = {11, FALSE, gCreditsText_RenaYoshikawa};
|
||||
static const struct CreditsEntry gCreditsEntry_GoIchinose[] = {11, FALSE, gCreditsText_GoIchinose};
|
||||
static const struct CreditsEntry gCreditsEntry_MorikazuAoki[] = {11, FALSE, gCreditsText_MorikazuAoki};
|
||||
static const struct CreditsEntry gCreditsEntry_KojiNishino[] = {11, FALSE, gCreditsText_KojiNishino};
|
||||
static const struct CreditsEntry gCreditsEntry_KenjiMatsushima[] = {11, FALSE, gCreditsText_KenjiMatsushima};
|
||||
static const struct CreditsEntry gCreditsEntry_TetsujiOhta[] = {11, FALSE, gCreditsText_TetsujiOhta};
|
||||
static const struct CreditsEntry gCreditsEntry_HitomiSato[] = {11, FALSE, gCreditsText_HitomiSato};
|
||||
static const struct CreditsEntry gCreditsEntry_TakeshiKawachimaru[] = {11, FALSE, gCreditsText_TakeshiKawachimaru};
|
||||
static const struct CreditsEntry gCreditsEntry_TeruyukiShimoyamada[] = {11, FALSE, gCreditsText_TeruyukiShimoyamada};
|
||||
static const struct CreditsEntry gCreditsEntry_ShigeruOhmori[] = {11, FALSE, gCreditsText_ShigeruOhmori};
|
||||
static const struct CreditsEntry gCreditsEntry_TadashiTakahashi[] = {11, FALSE, gCreditsText_TadashiTakahashi};
|
||||
static const struct CreditsEntry gCreditsEntry_ToshinobuMatsumiya[] = {11, FALSE, gCreditsText_ToshinobuMatsumiya};
|
||||
static const struct CreditsEntry gCreditsEntry_AkihitoTomisawa[] = {11, FALSE, gCreditsText_AkihitoTomisawa};
|
||||
static const struct CreditsEntry gCreditsEntry_HirokiEnomoto[] = {11, FALSE, gCreditsText_HirokiEnomoto};
|
||||
static const struct CreditsEntry gCreditsEntry_KazuyukiTerada[] = {11, FALSE, gCreditsText_KazuyukiTerada};
|
||||
static const struct CreditsEntry gCreditsEntry_YuriSakurai[] = {11, FALSE, gCreditsText_YuriSakurai};
|
||||
static const struct CreditsEntry gCreditsEntry_HiromiSagawa[] = {11, FALSE, gCreditsText_HiromiSagawa};
|
||||
static const struct CreditsEntry gCreditsEntry_KenjiTominaga[] = {11, FALSE, gCreditsText_KenjiTominaga};
|
||||
static const struct CreditsEntry gCreditsEntry_YoshioTajiri[] = {11, FALSE, gCreditsText_YoshioTajiri};
|
||||
static const struct CreditsEntry gCreditsEntry_TeikoSasaki[] = {11, FALSE, gCreditsText_TeikoSasaki};
|
||||
static const struct CreditsEntry gCreditsEntry_SachikoHamano[] = {11, FALSE, gCreditsText_SachikoHamano};
|
||||
static const struct CreditsEntry gCreditsEntry_ChieMatsumiya[] = {11, FALSE, gCreditsText_ChieMatsumiya};
|
||||
static const struct CreditsEntry gCreditsEntry_AkikoShinozaki[] = {11, FALSE, gCreditsText_AkikoShinozaki};
|
||||
static const struct CreditsEntry gCreditsEntry_AstukoFujii[] = {11, FALSE, gCreditsText_AstukoFujii};
|
||||
static const struct CreditsEntry gCreditsEntry_NozomuSaito[] = {11, FALSE, gCreditsText_NozomuSaito};
|
||||
static const struct CreditsEntry gCreditsEntry_KenkichiToyama[] = {11, FALSE, gCreditsText_KenkichiToyama};
|
||||
static const struct CreditsEntry gCreditsEntry_SuguruNakatsui[] = {11, FALSE, gCreditsText_SuguruNakatsui};
|
||||
static const struct CreditsEntry gCreditsEntry_YumiFunasaka[] = {11, FALSE, gCreditsText_YumiFunasaka};
|
||||
static const struct CreditsEntry gCreditsEntry_NaokoYanase[] = {11, FALSE, gCreditsText_NaokoYanase};
|
||||
static const struct CreditsEntry gCreditsEntry_NCLSuperMarioClub[] = {11, FALSE, gCreditsText_NCLSuperMarioClub};
|
||||
static const struct CreditsEntry gCreditsEntry_AtsushiTada[] = {11, FALSE, gCreditsText_AtsushiTada};
|
||||
static const struct CreditsEntry gCreditsEntry_TakahiroOhnishi[] = {11, FALSE, gCreditsText_TakahiroOhnishi};
|
||||
static const struct CreditsEntry gCreditsEntry_NorihideOkamura[] = {11, FALSE, gCreditsText_NorihideOkamura};
|
||||
static const struct CreditsEntry gCreditsEntry_HiroNakamura[] = {11, FALSE, gCreditsText_HiroNakamura};
|
||||
static const struct CreditsEntry gCreditsEntry_HiroyukiUesugi[] = {11, FALSE, gCreditsText_HiroyukiUesugi};
|
||||
static const struct CreditsEntry gCreditsEntry_TerukiMurakawa[] = {11, FALSE, gCreditsText_TerukiMurakawa};
|
||||
static const struct CreditsEntry gCreditsEntry_AkiraKinashi[] = {11, FALSE, gCreditsText_AkiraKinashi};
|
||||
static const struct CreditsEntry gCreditsEntry_MichikoTakizawa[] = {11, FALSE, gCreditsText_MichikoTakizawa};
|
||||
static const struct CreditsEntry gCreditsEntry_MakikoTakada[] = {11, FALSE, gCreditsText_MakikoTakada};
|
||||
static const struct CreditsEntry gCreditsEntry_TakanaoKondo[] = {11, FALSE, gCreditsText_TakanaoKondo};
|
||||
static const struct CreditsEntry gCreditsEntry_AiMashima[] = {11, FALSE, gCreditsText_AiMashima};
|
||||
static const struct CreditsEntry gCreditsEntry_GakujiNomoto[] = {11, FALSE, gCreditsText_GakujiNomoto};
|
||||
static const struct CreditsEntry gCreditsEntry_TakehiroIzushi[] = {11, FALSE, gCreditsText_TakehiroIzushi};
|
||||
static const struct CreditsEntry gCreditsEntry_HitoshiYamagami[] = {11, FALSE, gCreditsText_HitoshiYamagami};
|
||||
static const struct CreditsEntry gCreditsEntry_KyokoWatanabe[] = {11, FALSE, gCreditsText_KyokoWatanabe};
|
||||
static const struct CreditsEntry gCreditsEntry_TakaoNakano[] = {11, FALSE, gCreditsText_TakaoNakano};
|
||||
static const struct CreditsEntry gCreditsEntry_HiroyukiJinnai[] = {11, FALSE, gCreditsText_HiroyukiJinnai};
|
||||
static const struct CreditsEntry gCreditsEntry_HiroakiTsuru[] = {11, FALSE, gCreditsText_HiroakiTsuru};
|
||||
static const struct CreditsEntry gCreditsEntry_TsunekazIshihara[] = {11, FALSE, gCreditsText_TsunekazIshihara};
|
||||
static const struct CreditsEntry gCreditsEntry_SatoruIwata[] = {11, FALSE, gCreditsText_SatoruIwata};
|
||||
static const struct CreditsEntry gCreditsEntry_KazuyaSuyama[] = {11, FALSE, gCreditsText_KazuyaSuyama};
|
||||
static const struct CreditsEntry gCreditsEntry_SatoshiMitsuhara[] = {11, FALSE, gCreditsText_SatoshiMitsuhara};
|
||||
static const struct CreditsEntry gCreditsEntry_JapanBrailleLibrary[] = {9, FALSE, gCreditsText_JapanBrailleLibrary};
|
||||
static const struct CreditsEntry gCreditsEntry_TomotakaKomura[] = {11, FALSE, gCreditsText_TomotakaKomura};
|
||||
static const struct CreditsEntry gCreditsEntry_MikikoOhhashi[] = {11, FALSE, gCreditsText_MikikoOhhashi};
|
||||
static const struct CreditsEntry gCreditsEntry_DaisukeHoshino[] = {11, FALSE, gCreditsText_DaisukeHoshino};
|
||||
static const struct CreditsEntry gCreditsEntry_KenjiroIto[] = {11, FALSE, gCreditsText_KenjiroIto};
|
||||
static const struct CreditsEntry gCreditsEntry_RuiKawaguchi[] = {11, FALSE, gCreditsText_RuiKawaguchi};
|
||||
static const struct CreditsEntry gCreditsEntry_ShunsukeKohori[] = {11, FALSE, gCreditsText_ShunsukeKohori};
|
||||
static const struct CreditsEntry gCreditsEntry_SachikoNakamichi[] = {11, FALSE, gCreditsText_SachikoNakamichi};
|
||||
static const struct CreditsEntry gCreditsEntry_FujikoNomura[] = {11, FALSE, gCreditsText_FujikoNomura};
|
||||
static const struct CreditsEntry gCreditsEntry_KazukiYoshihara[] = {11, FALSE, gCreditsText_KazukiYoshihara};
|
||||
static const struct CreditsEntry gCreditsEntry_RetsujiNomoto[] = {11, FALSE, gCreditsText_RetsujiNomoto};
|
||||
static const struct CreditsEntry gCreditsEntry_AzusaTajima[] = {11, FALSE, gCreditsText_AzusaTajima};
|
||||
static const struct CreditsEntry gCreditsEntry_ShusakuEgami[] = {11, FALSE, gCreditsText_ShusakuEgami};
|
||||
static const struct CreditsEntry gCreditsEntry_PackageAndManual[] = {0, TRUE, gCreditsText_PackageAndManual};
|
||||
static const struct CreditsEntry gCreditsEntry_EnglishVersion[] = {0, TRUE, gCreditsText_EnglishVersion};
|
||||
static const struct CreditsEntry gCreditsEntry_Translator[] = {0, TRUE, gCreditsText_Translator};
|
||||
static const struct CreditsEntry gCreditsEntry_TextEditor[] = {0, TRUE, gCreditsText_TextEditor};
|
||||
static const struct CreditsEntry gCreditsEntry_NCLCoordinator[] = {0, TRUE, gCreditsText_NCLCoordinator};
|
||||
static const struct CreditsEntry gCreditsEntry_GraphicDesigner[] = {0, TRUE, gCreditsText_GraphicDesigner};
|
||||
static const struct CreditsEntry gCreditsEntry_NOAProductTesting[] = {0, TRUE, gCreditsText_NOAProductTesting};
|
||||
static const struct CreditsEntry gCreditsEntry_HideyukiNakajima[] = {0, FALSE, gCreditsText_HideyukiNakajima};
|
||||
static const struct CreditsEntry gCreditsEntry_HidenoriSaeki[] = {0, FALSE, gCreditsText_HidenoriSaeki};
|
||||
static const struct CreditsEntry gCreditsEntry_YokoWatanabe[] = {0, FALSE, gCreditsText_YokoWatanabe};
|
||||
static const struct CreditsEntry gCreditsEntry_SakaeKimura[] = {0, FALSE, gCreditsText_SakaeKimura};
|
||||
static const struct CreditsEntry gCreditsEntry_ChiakiShinkai[] = {0, FALSE, gCreditsText_ChiakiShinkai};
|
||||
static const struct CreditsEntry gCreditsEntry_SethMcMahill[] = {0, FALSE, gCreditsText_SethMcMahill};
|
||||
static const struct CreditsEntry gCreditsEntry_NobOgasawara[] = {0, FALSE, gCreditsText_NobOgasawara};
|
||||
static const struct CreditsEntry gCreditsEntry_TeresaLillygren[] = {0, FALSE, gCreditsText_TeresaLillygren};
|
||||
static const struct CreditsEntry gCreditsEntry_KimikoNakamichi[] = {0, FALSE, gCreditsText_KimikoNakamichi};
|
||||
static const struct CreditsEntry gCreditsEntry_SouichiYamamoto[] = {0, FALSE, gCreditsText_SouichiYamamoto};
|
||||
static const struct CreditsEntry gCreditsEntry_YuichiroIto[] = {0, FALSE, gCreditsText_YuichiroIto};
|
||||
static const struct CreditsEntry gCreditsEntry_ThomasHertzog[] = {0, FALSE, gCreditsText_ThomasHertzog};
|
||||
static const struct CreditsEntry gCreditsEntry_MikaKurosawa[] = {0, FALSE, gCreditsText_MikaKurosawa};
|
||||
static const struct CreditsEntry gCreditsEntry_NationalFederationBlind[] = {0, FALSE, gCreditsText_NationalFederationBlind};
|
||||
static const struct CreditsEntry gCreditsEntry_PatriciaAMaurer[] = {0, FALSE, gCreditsText_PatriciaAMaurer};
|
||||
static const struct CreditsEntry gCreditsEntry_EuropeanBlindUnion[] = {0, FALSE, gCreditsText_EuropeanBlindUnion};
|
||||
static const struct CreditsEntry gCreditsEntry_AustralianBrailleAuthority[] = {0, FALSE, gCreditsText_AustralianBrailleAuthority};
|
||||
static const struct CreditsEntry gCreditsEntry_RoyalNewZealandFederationBlind[] = {0, FALSE, gCreditsText_RoyalNewZealandFederationBlind};
|
||||
static const struct CreditsEntry gCreditsEntry_MotoyasuTojima[] = {0, FALSE, gCreditsText_MotoyasuTojima};
|
||||
static const struct CreditsEntry gCreditsEntry_NicolaPrattBarlow[] = {0, FALSE, gCreditsText_NicolaPrattBarlow};
|
||||
static const struct CreditsEntry gCreditsEntry_ShellieDow[] = {0, FALSE, gCreditsText_ShellieDow};
|
||||
static const struct CreditsEntry gCreditsEntry_ErikJohnson[] = {0, FALSE, gCreditsText_ErikJohnson};
|
||||
|
||||
#define _ gCreditsEntry_EmptyString
|
||||
static const struct CreditsEntry *const gCreditsEntryPointerTable[][5] =
|
||||
@@ -934,7 +934,7 @@ static const struct CreditsEntry *const gCreditsEntryPointerTable[][5] =
|
||||
};
|
||||
#undef _
|
||||
|
||||
static const struct BgTemplate gUnknown_085E6F68[] =
|
||||
static const struct BgTemplate sBackgroundTemplates[] =
|
||||
{
|
||||
{
|
||||
.bg = 0,
|
||||
@@ -946,7 +946,7 @@ static const struct BgTemplate gUnknown_085E6F68[] =
|
||||
.baseTile = 0
|
||||
},
|
||||
};
|
||||
static const struct WindowTemplate gUnknown_085E6F6C[] =
|
||||
static const struct WindowTemplate sWindowTemplates[] =
|
||||
{
|
||||
{
|
||||
.bg = 0,
|
||||
@@ -1102,51 +1102,51 @@ static const struct SpriteTemplate gUnknown_085E7068 =
|
||||
.callback = sub_81772B8,
|
||||
};
|
||||
|
||||
static void sub_8175744(u8 taskIdA);
|
||||
static void sub_8175774(u8 taskIdA);
|
||||
static void Task_WaitPaletteFade(u8 taskIdA);
|
||||
static void Task_ProgressCreditTasks(u8 taskIdA);
|
||||
static void sub_8175808(u8 taskIdA);
|
||||
static void c2_080C9BFC(u8 taskIdA);
|
||||
static void sub_81758E4(u8 taskIdA);
|
||||
static void Task_CreditsLoadGrassScene(u8 taskIdA);
|
||||
static void sub_81758A4(u8 taskIdA);
|
||||
static void sub_8175A9C(u8 taskIdA);
|
||||
static void sub_8175AE4(u8 taskIdA);
|
||||
static void sub_8175B1C(u8 taskIdA);
|
||||
static void sub_8175B90(u8 taskIdA);
|
||||
static void sub_8175BD8(u8 taskIdA);
|
||||
static void sub_8175C34(u8 taskIdA);
|
||||
static void sub_8175CC8(u8 taskIdA);
|
||||
static void sub_8175CE4(void);
|
||||
static void Task_CreditsTheEnd1(u8 taskIdA);
|
||||
static void Task_CreditsTheEnd2(u8 taskIdA);
|
||||
static void Task_CreditsTheEnd3(u8 taskIdA);
|
||||
static void Task_CreditsTheEnd4(u8 taskIdA);
|
||||
static void Task_CreditsTheEnd5(u8 taskIdA);
|
||||
static void Task_CreditsTheEnd6(u8 taskIdA);
|
||||
static void Task_CreditsSoftReset(u8 taskIdA);
|
||||
static void ResetGpuAndVram(void);
|
||||
static void sub_8175DA0(u8 taskIdB);
|
||||
static u8 sub_817603C(u8 page, u8 taskIdA);
|
||||
static u8 CheckChangeScene(u8 page, u8 taskIdA);
|
||||
static void sub_81760FC(u8 taskIdA);
|
||||
static void sub_817651C(u8 taskIdA);
|
||||
static void sub_817624C(u8 taskIdA);
|
||||
static bool8 sub_8176AB0(u8 data, u8 taskIdA);
|
||||
static void sub_8176CA0(u8 taskIdA);
|
||||
static void sub_8176D1C(u16, u16, u16);
|
||||
static void ResetCreditsTasks(u8 taskIdA);
|
||||
static void LoadTheEndScreen(u16, u16, u16);
|
||||
static void sub_8176E40(u16 arg0, u16 palette);
|
||||
static void sub_8176EE8(struct Sprite *sprite);
|
||||
static void sub_8176F90(struct Sprite *sprite);
|
||||
static u8 sub_8177224(u16 species, s16 x, s16 y, u16 position);
|
||||
static void sub_8177388(void);
|
||||
|
||||
static void sub_81754C8(void)
|
||||
static void CreditsVBlankCallback(void)
|
||||
{
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
static void sub_81754DC(void)
|
||||
static void CB2_RunCreditsSequence(void)
|
||||
{
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
|
||||
if ((gMain.heldKeys & B_BUTTON)
|
||||
&& gHasHallOfFameRecords != 0
|
||||
&& gTasks[gUnknown_0203BCE2].func == sub_8175774)
|
||||
&& gTasks[gUnknown_0203BCE2].func == Task_ProgressCreditTasks)
|
||||
{
|
||||
sub_81754C8();
|
||||
CreditsVBlankCallback();
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
gUnknown_0203BCE5 = 1;
|
||||
@@ -1158,10 +1158,10 @@ static void sub_81754DC(void)
|
||||
static void sub_8175548(void)
|
||||
{
|
||||
ResetBgsAndClearDma3BusyFlags(0);
|
||||
InitBgsFromTemplates(0, gUnknown_085E6F68, 1);
|
||||
InitBgsFromTemplates(0, sBackgroundTemplates, 1);
|
||||
SetBgTilemapBuffer(0, AllocZeroed(0x800));
|
||||
LoadPalette(gUnknown_085E56F0, 0x80, 0x40);
|
||||
InitWindows(gUnknown_085E6F6C);
|
||||
InitWindows(sWindowTemplates);
|
||||
DeactivateAllTextPrinters();
|
||||
PutWindowTilemap(0);
|
||||
CopyWindowToVram(0, 3);
|
||||
@@ -1177,14 +1177,14 @@ static void sub_81755A4(void)
|
||||
Free(ptr);
|
||||
}
|
||||
|
||||
static void sub_81755BC(const u8 *string, u8 y, u8 a2)
|
||||
static void PrintCreditsText(const u8 *string, u8 y, bool8 isTitle)
|
||||
{
|
||||
u8 x;
|
||||
u8 color[3];
|
||||
|
||||
color[0] = 0;
|
||||
|
||||
if (a2 == 1)
|
||||
if (isTitle == TRUE)
|
||||
{
|
||||
color[1] = 3;
|
||||
color[2] = 4;
|
||||
@@ -1199,20 +1199,20 @@ static void sub_81755BC(const u8 *string, u8 y, u8 a2)
|
||||
AddTextPrinterParameterized4(0, 1, x, y, 1, 0, color, -1, string);
|
||||
}
|
||||
|
||||
void sub_8175620(void)
|
||||
void CB2_StartCreditsSequence(void)
|
||||
{
|
||||
u8 taskIdA;
|
||||
s16 taskIdC;
|
||||
u8 taskIdB;
|
||||
|
||||
sub_8175CE4();
|
||||
ResetGpuAndVram();
|
||||
SetVBlankCallback(NULL);
|
||||
InitHeap(gHeap, HEAP_SIZE);
|
||||
ResetPaletteFade();
|
||||
ResetTasks();
|
||||
sub_8175548();
|
||||
|
||||
taskIdA = CreateTask(sub_8175744, 0);
|
||||
taskIdA = CreateTask(Task_WaitPaletteFade, 0);
|
||||
|
||||
gTasks[taskIdA].data[TDA_4] = 0;
|
||||
gTasks[taskIdA].data[TDA_7] = 0;
|
||||
@@ -1237,9 +1237,9 @@ void sub_8175620(void)
|
||||
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
|
||||
EnableInterrupts(INTR_FLAG_VBLANK);
|
||||
SetVBlankCallback(sub_81754C8);
|
||||
SetVBlankCallback(CreditsVBlankCallback);
|
||||
m4aSongNumStart(MUS_THANKFOR);
|
||||
SetMainCallback2(sub_81754DC);
|
||||
SetMainCallback2(CB2_RunCreditsSequence);
|
||||
gUnknown_0203BCE5 = 0;
|
||||
gUnknown_0203BCE8 = AllocZeroed(sizeof(struct Unk201C000));
|
||||
|
||||
@@ -1252,13 +1252,13 @@ void sub_8175620(void)
|
||||
gUnknown_0203BCE2 = taskIdA;
|
||||
}
|
||||
|
||||
static void sub_8175744(u8 taskIdA)
|
||||
static void Task_WaitPaletteFade(u8 taskIdA)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
gTasks[taskIdA].func = sub_8175774;
|
||||
gTasks[taskIdA].func = Task_ProgressCreditTasks;
|
||||
}
|
||||
|
||||
static void sub_8175774(u8 taskIdA)
|
||||
static void Task_ProgressCreditTasks(u8 taskIdA)
|
||||
{
|
||||
u16 data1;
|
||||
|
||||
@@ -1270,7 +1270,7 @@ static void sub_8175774(u8 taskIdA)
|
||||
gTasks[taskIdC].data[TDC_0] = 30;
|
||||
|
||||
gTasks[taskIdA].data[TDA_12] = 0x100;
|
||||
gTasks[taskIdA].func = sub_8175A9C;
|
||||
gTasks[taskIdA].func = Task_CreditsTheEnd1;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1298,7 +1298,7 @@ static void sub_8175808(u8 taskIdA)
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
sub_8176CA0(taskIdA);
|
||||
ResetCreditsTasks(taskIdA);
|
||||
gTasks[taskIdA].func = c2_080C9BFC;
|
||||
}
|
||||
}
|
||||
@@ -1313,8 +1313,8 @@ static void c2_080C9BFC(u8 taskIdA)
|
||||
{
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
|
||||
EnableInterrupts(INTR_FLAG_VBLANK);
|
||||
SetVBlankCallback(sub_81754C8);
|
||||
gTasks[taskIdA].func = sub_8175744;
|
||||
SetVBlankCallback(CreditsVBlankCallback);
|
||||
gTasks[taskIdA].func = Task_WaitPaletteFade;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1323,12 +1323,12 @@ static void sub_81758A4(u8 taskIdA)
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
sub_8176CA0(taskIdA);
|
||||
gTasks[taskIdA].func = sub_81758E4;
|
||||
ResetCreditsTasks(taskIdA);
|
||||
gTasks[taskIdA].func = Task_CreditsLoadGrassScene;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81758E4(u8 taskIdA)
|
||||
static void Task_CreditsLoadGrassScene(u8 taskIdA)
|
||||
{
|
||||
switch (gMain.state)
|
||||
{
|
||||
@@ -1387,12 +1387,12 @@ static void sub_81758E4(u8 taskIdA)
|
||||
|
||||
gMain.state = 0;
|
||||
gUnknown_0203BD28 = 0;
|
||||
gTasks[taskIdA].func = sub_8175744;
|
||||
gTasks[taskIdA].func = Task_WaitPaletteFade;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8175A9C(u8 taskIdA)
|
||||
static void Task_CreditsTheEnd1(u8 taskIdA)
|
||||
{
|
||||
if (gTasks[taskIdA].data[TDA_12])
|
||||
{
|
||||
@@ -1401,23 +1401,23 @@ static void sub_8175A9C(u8 taskIdA)
|
||||
}
|
||||
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 12, 0, 16, RGB_BLACK);
|
||||
gTasks[taskIdA].func = sub_8175AE4;
|
||||
gTasks[taskIdA].func = Task_CreditsTheEnd2;
|
||||
}
|
||||
|
||||
static void sub_8175AE4(u8 taskIdA)
|
||||
static void Task_CreditsTheEnd2(u8 taskIdA)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
sub_8176CA0(taskIdA);
|
||||
gTasks[taskIdA].func = sub_8175B1C;
|
||||
ResetCreditsTasks(taskIdA);
|
||||
gTasks[taskIdA].func = Task_CreditsTheEnd3;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8175B1C(u8 taskIdA)
|
||||
static void Task_CreditsTheEnd3(u8 taskIdA)
|
||||
{
|
||||
sub_8175CE4();
|
||||
ResetGpuAndVram();
|
||||
ResetPaletteFade();
|
||||
sub_8176D1C(0, 0x3800, 0);
|
||||
LoadTheEndScreen(0, 0x3800, 0);
|
||||
ResetSpriteData();
|
||||
FreeAllSpritePalettes();
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 8, 16, 0, RGB_BLACK);
|
||||
@@ -1432,11 +1432,11 @@ static void sub_8175B1C(u8 taskIdA)
|
||||
| DISPCNT_OBJ_1D_MAP
|
||||
| DISPCNT_BG0_ON);
|
||||
|
||||
gTasks[taskIdA].data[TDA_0] = 0xEB;
|
||||
gTasks[taskIdA].func = sub_8175B90;
|
||||
gTasks[taskIdA].data[TDA_0] = 235; //set this to 215 to actually show "THE END" in time to the last song beat
|
||||
gTasks[taskIdA].func = Task_CreditsTheEnd4;
|
||||
}
|
||||
|
||||
static void sub_8175B90(u8 taskIdA)
|
||||
static void Task_CreditsTheEnd4(u8 taskIdA)
|
||||
{
|
||||
if (gTasks[taskIdA].data[TDA_0])
|
||||
{
|
||||
@@ -1445,10 +1445,10 @@ static void sub_8175B90(u8 taskIdA)
|
||||
}
|
||||
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 6, 0, 16, RGB_BLACK);
|
||||
gTasks[taskIdA].func = sub_8175BD8;
|
||||
gTasks[taskIdA].func = Task_CreditsTheEnd5;
|
||||
}
|
||||
|
||||
static void sub_8175BD8(u8 taskIdA)
|
||||
static void Task_CreditsTheEnd5(u8 taskIdA)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
@@ -1456,11 +1456,11 @@ static void sub_8175BD8(u8 taskIdA)
|
||||
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0, RGB_BLACK);
|
||||
gTasks[taskIdA].data[TDA_0] = 7200;
|
||||
gTasks[taskIdA].func = sub_8175C34;
|
||||
gTasks[taskIdA].func = Task_CreditsTheEnd6;
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8175C34(u8 taskIdA)
|
||||
static void Task_CreditsTheEnd6(u8 taskIdA)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
@@ -1468,7 +1468,7 @@ static void sub_8175C34(u8 taskIdA)
|
||||
{
|
||||
FadeOutBGM(4);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 8, 0, 16, RGB_WHITEALPHA);
|
||||
gTasks[taskIdA].func = sub_8175CC8;
|
||||
gTasks[taskIdA].func = Task_CreditsSoftReset;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1482,13 +1482,13 @@ static void sub_8175C34(u8 taskIdA)
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_8175CC8(u8 taskIdA)
|
||||
static void Task_CreditsSoftReset(u8 taskIdA)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
SoftReset(0xFF);
|
||||
}
|
||||
|
||||
static void sub_8175CE4(void)
|
||||
static void ResetGpuAndVram(void)
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_DISPCNT, 0);
|
||||
|
||||
@@ -1539,12 +1539,15 @@ static void sub_8175DA0(u8 taskIdB)
|
||||
gTasks[taskIdB].data[TDB_0] += 1;
|
||||
return;
|
||||
case 2:
|
||||
if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].func == sub_8175774)
|
||||
if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].func == Task_ProgressCreditTasks)
|
||||
{
|
||||
if (gTasks[taskIdB].data[TDB_CURRENT_PAGE] < PAGE_COUNT)
|
||||
{
|
||||
for (i = 0; i < 5; i++)
|
||||
sub_81755BC(gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->text, 5 + i * 16, gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->var_1);
|
||||
PrintCreditsText(
|
||||
gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->text,
|
||||
5 + i * 16,
|
||||
gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->isTitle);
|
||||
|
||||
CopyWindowToVram(0, 2);
|
||||
|
||||
@@ -1578,7 +1581,7 @@ static void sub_8175DA0(u8 taskIdB)
|
||||
return;
|
||||
}
|
||||
|
||||
if (sub_817603C((u8)gTasks[taskIdB].data[TDB_CURRENT_PAGE], (u8)gTasks[taskIdB].data[TDB_TASK_A_ID]))
|
||||
if (CheckChangeScene((u8)gTasks[taskIdB].data[TDB_CURRENT_PAGE], (u8)gTasks[taskIdB].data[TDB_TASK_A_ID]))
|
||||
{
|
||||
gTasks[taskIdB].data[TDB_0] += 1;
|
||||
return;
|
||||
@@ -1606,7 +1609,7 @@ static void sub_8175DA0(u8 taskIdB)
|
||||
}
|
||||
}
|
||||
|
||||
static u8 sub_817603C(u8 page, u8 taskIdA)
|
||||
static u8 CheckChangeScene(u8 page, u8 taskIdA)
|
||||
{
|
||||
// Starts with bike + ocean + morning
|
||||
|
||||
@@ -1685,7 +1688,7 @@ static void sub_81760FC(u8 taskIdD)
|
||||
gTasks[taskIdD].data[TDD_STATE]++;
|
||||
break;
|
||||
case 2:
|
||||
if (gUnknown_0203BCE8->unk8E == 71 || gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].func != sub_8175774)
|
||||
if (gUnknown_0203BCE8->unk8E == 71 || gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].func != Task_ProgressCreditTasks)
|
||||
break;
|
||||
r2 = sub_8177224(gUnknown_0203BCE8->unk0[gUnknown_0203BCE8->unk92], gUnknown_085E6F7C[gUnknown_0203BCE8->unk90][0], gUnknown_085E6F7C[gUnknown_0203BCE8->unk90][1], gUnknown_0203BCE8->unk90);
|
||||
if (gUnknown_0203BCE8->unk92 < gUnknown_0203BCE8->unk94 - 1)
|
||||
@@ -2006,7 +2009,7 @@ static bool8 sub_8176AB0(u8 data, u8 taskIdA)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void sub_8176CA0(u8 taskIdA)
|
||||
static void ResetCreditsTasks(u8 taskIdA)
|
||||
{
|
||||
if (gTasks[taskIdA].data[TDA_0] != 0)
|
||||
{
|
||||
@@ -2035,7 +2038,7 @@ static void sub_8176CA0(u8 taskIdA)
|
||||
gUnknown_0203BD28 = 1;
|
||||
}
|
||||
|
||||
static void sub_8176D1C(u16 arg0, u16 arg1, u16 arg2)
|
||||
static void LoadTheEndScreen(u16 arg0, u16 arg1, u16 arg2)
|
||||
{
|
||||
u16 baseTile;
|
||||
u16 i;
|
||||
@@ -2084,12 +2087,12 @@ static void sub_8176E40(u16 arg0, u16 palette)
|
||||
for (pos = 0; pos < 32 * 32; pos++)
|
||||
((u16 *) (VRAM + arg0))[pos] = baseTile + 1;
|
||||
|
||||
sub_8176DBC(gUnknown_085E5BAC, 3, 7, arg0, palette);
|
||||
sub_8176DBC(gUnknown_085E5BBB, 7, 7, arg0, palette);
|
||||
sub_8176DBC(gUnknown_085E5BCA, 11, 7, arg0, palette);
|
||||
sub_8176DBC(gUnknown_085E5BCA, 16, 7, arg0, palette);
|
||||
sub_8176DBC(gUnknown_085E5BD9, 20, 7, arg0, palette);
|
||||
sub_8176DBC(gUnknown_085E5BE8, 24, 7, arg0, palette);
|
||||
sub_8176DBC(sTheEnd_LetterTMap, 3, 7, arg0, palette);
|
||||
sub_8176DBC(sTheEnd_LetterHMap, 7, 7, arg0, palette);
|
||||
sub_8176DBC(sTheEnd_LetterEMap, 11, 7, arg0, palette);
|
||||
sub_8176DBC(sTheEnd_LetterEMap, 16, 7, arg0, palette);
|
||||
sub_8176DBC(sTheEnd_LetterNMap, 20, 7, arg0, palette);
|
||||
sub_8176DBC(sTheEnd_LetterDMap, 24, 7, arg0, palette);
|
||||
}
|
||||
|
||||
static void sub_8176EE8(struct Sprite *sprite)
|
||||
|
||||
+199
@@ -0,0 +1,199 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.global Start
|
||||
|
||||
.text
|
||||
|
||||
.arm
|
||||
|
||||
Start: @ 8000000
|
||||
b Init
|
||||
|
||||
.include "asm/rom_header.inc"
|
||||
|
||||
@ 80000C0
|
||||
.word 0
|
||||
|
||||
.global GPIOPortData
|
||||
GPIOPortData: @ 80000C4
|
||||
.2byte 0
|
||||
|
||||
.global GPIOPortDirection
|
||||
GPIOPortDirection: @ 80000C6
|
||||
.2byte 0
|
||||
|
||||
.global GPIOPortReadEnable
|
||||
GPIOPortReadEnable: @ 80000C8
|
||||
.2byte 0
|
||||
|
||||
@ 80000CA
|
||||
.2byte 0
|
||||
|
||||
@ 80000CC
|
||||
.space 0x34
|
||||
|
||||
.4byte 3
|
||||
.4byte 2
|
||||
|
||||
.ascii "pokemon emerald version"
|
||||
.space 9
|
||||
|
||||
.4byte gMonFrontPicTable
|
||||
.4byte gMonBackPicTable
|
||||
.4byte gMonPaletteTable
|
||||
.4byte gMonShinyPaletteTable
|
||||
.4byte gMonIconTable
|
||||
.4byte gMonIconPaletteIndices
|
||||
.4byte gMonIconPaletteTable
|
||||
.4byte gSpeciesNames
|
||||
.4byte gMoveNames
|
||||
.4byte gDecorations
|
||||
|
||||
.4byte 0x00001270, 0x0000139c, 0x00000018, 0x00000988
|
||||
.4byte 0x00003b24, 0x00000046, 0x000008e4, 0x000008ac
|
||||
.4byte 0x00000182
|
||||
|
||||
.byte 0x07, 0x0a, 0x0a, 0x0a, 0x0c, 0x0c, 0x06, 0x0c
|
||||
.byte 0x06, 0x10, 0x12, 0x0c, 0x0f, 0x0b, 0x01, 0x08
|
||||
|
||||
.4byte 0x0000000c, 0x00000f2c, 0x00003d88, 0x00000234
|
||||
.4byte 0x00000238, 0x00000009, 0x0000000a, 0x00000000
|
||||
.4byte 0x00000008, 0x00000ca8, 0x00000ca8, 0x000031c7
|
||||
.4byte 0x000031b3, 0x00000000
|
||||
|
||||
.4byte gBaseStats
|
||||
.4byte gAbilityNames
|
||||
.4byte gAbilityDescriptionPointers
|
||||
.4byte gItems
|
||||
.4byte gBattleMoves
|
||||
.4byte gBallSpriteSheets
|
||||
.4byte gBallSpritePalettes
|
||||
|
||||
.4byte 0x000000a8, 0x00000864, 0x0000089b
|
||||
|
||||
.byte 0x1e, 0x1e, 0x10, 0x40
|
||||
|
||||
.4byte 0x0000322e, 0x00000498, 0x000031a8, 0x000031f8
|
||||
.4byte 0x00000034, 0x00000000, 0x00000000
|
||||
|
||||
.arm
|
||||
.align 2, 0
|
||||
.global Init
|
||||
Init: @ 8000204
|
||||
mov r0, PSR_IRQ_MODE
|
||||
msr cpsr_cf, r0
|
||||
ldr sp, sp_irq
|
||||
mov r0, PSR_SYS_MODE
|
||||
msr cpsr_cf, r0
|
||||
ldr sp, sp_sys
|
||||
ldr r1, =INTR_VECTOR
|
||||
adr r0, IntrMain
|
||||
str r0, [r1]
|
||||
ldr r1, =AgbMain + 1
|
||||
mov lr, pc
|
||||
bx r1
|
||||
b Init
|
||||
|
||||
.align 2, 0
|
||||
sp_sys: .word IWRAM_END - 0x1c0
|
||||
sp_irq: .word IWRAM_END - 0x60
|
||||
|
||||
.pool
|
||||
|
||||
.arm
|
||||
.align 2, 0
|
||||
.global IntrMain
|
||||
IntrMain: @ 8000248
|
||||
mov r3, REG_BASE
|
||||
add r3, r3, 0x200
|
||||
ldr r2, [r3, OFFSET_REG_IE - 0x200]
|
||||
ldrh r1, [r3, OFFSET_REG_IME - 0x200]
|
||||
mrs r0, spsr
|
||||
stmdb sp!, {r0-r3,lr}
|
||||
mov r0, 0
|
||||
strh r0, [r3, OFFSET_REG_IME - 0x200]
|
||||
and r1, r2, r2, lsr 16
|
||||
mov r12, 0
|
||||
ands r0, r1, INTR_FLAG_VCOUNT
|
||||
bne IntrMain_FoundIntr
|
||||
add r12, r12, 0x4
|
||||
mov r0, 0x1
|
||||
strh r0, [r3, OFFSET_REG_IME - 0x200]
|
||||
ands r0, r1, INTR_FLAG_SERIAL
|
||||
bne IntrMain_FoundIntr
|
||||
add r12, r12, 0x4
|
||||
ands r0, r1, INTR_FLAG_TIMER3
|
||||
bne IntrMain_FoundIntr
|
||||
add r12, r12, 0x4
|
||||
ands r0, r1, INTR_FLAG_HBLANK
|
||||
bne IntrMain_FoundIntr
|
||||
add r12, r12, 0x4
|
||||
ands r0, r1, INTR_FLAG_VBLANK
|
||||
bne IntrMain_FoundIntr
|
||||
add r12, r12, 0x4
|
||||
ands r0, r1, INTR_FLAG_TIMER0
|
||||
bne IntrMain_FoundIntr
|
||||
add r12, r12, 0x4
|
||||
ands r0, r1, INTR_FLAG_TIMER1
|
||||
bne IntrMain_FoundIntr
|
||||
add r12, r12, 0x4
|
||||
ands r0, r1, INTR_FLAG_TIMER2
|
||||
bne IntrMain_FoundIntr
|
||||
add r12, r12, 0x4
|
||||
ands r0, r1, INTR_FLAG_DMA0
|
||||
bne IntrMain_FoundIntr
|
||||
add r12, r12, 0x4
|
||||
ands r0, r1, INTR_FLAG_DMA1
|
||||
bne IntrMain_FoundIntr
|
||||
add r12, r12, 0x4
|
||||
ands r0, r1, INTR_FLAG_DMA2
|
||||
bne IntrMain_FoundIntr
|
||||
add r12, r12, 0x4
|
||||
ands r0, r1, INTR_FLAG_DMA3
|
||||
bne IntrMain_FoundIntr
|
||||
add r12, r12, 0x4
|
||||
ands r0, r1, INTR_FLAG_KEYPAD
|
||||
bne IntrMain_FoundIntr
|
||||
add r12, r12, 0x4
|
||||
ands r0, r1, INTR_FLAG_GAMEPAK
|
||||
strbne r0, [r3, OFFSET_REG_SOUNDCNT_X - 0x200]
|
||||
bne . @ spin
|
||||
IntrMain_FoundIntr:
|
||||
strh r0, [r3, OFFSET_REG_IF - 0x200]
|
||||
bic r2, r2, r0
|
||||
ldr r0, =gRfuState
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0xA]
|
||||
mov r1, 0x8
|
||||
mov r0, r1, lsl r0
|
||||
orr r0, r0, INTR_FLAG_GAMEPAK
|
||||
orr r1, r0, INTR_FLAG_SERIAL | INTR_FLAG_TIMER3 | INTR_FLAG_VCOUNT | INTR_FLAG_HBLANK
|
||||
and r1, r1, r2
|
||||
strh r1, [r3, OFFSET_REG_IE - 0x200]
|
||||
mrs r3, cpsr
|
||||
bic r3, r3, PSR_I_BIT | PSR_F_BIT | PSR_MODE_MASK
|
||||
orr r3, r3, PSR_SYS_MODE
|
||||
msr cpsr_cf, r3
|
||||
ldr r1, =gIntrTable
|
||||
add r1, r1, r12
|
||||
ldr r0, [r1]
|
||||
stmdb sp!, {lr}
|
||||
adr lr, IntrMain_RetAddr
|
||||
bx r0
|
||||
IntrMain_RetAddr:
|
||||
ldmia sp!, {lr}
|
||||
mrs r3, cpsr
|
||||
bic r3, r3, PSR_I_BIT | PSR_F_BIT | PSR_MODE_MASK
|
||||
orr r3, r3, PSR_I_BIT | PSR_IRQ_MODE
|
||||
msr cpsr_cf, r3
|
||||
ldmia sp!, {r0-r3,lr}
|
||||
strh r2, [r3, OFFSET_REG_IE - 0x200]
|
||||
strh r1, [r3, OFFSET_REG_IME - 0x200]
|
||||
msr spsr_cf, r0
|
||||
bx lr
|
||||
|
||||
.pool
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
@@ -247,245 +247,245 @@ const struct EventObjectGraphicsInfo gEventObjectGraphicsInfo_UnusedMauvilleOldM
|
||||
|
||||
|
||||
const struct EventObjectGraphicsInfo *const gEventObjectGraphicsInfoPointers[] = {
|
||||
&gEventObjectGraphicsInfo_BrendanNormal,
|
||||
&gEventObjectGraphicsInfo_BrendanMachBike,
|
||||
&gEventObjectGraphicsInfo_BrendanSurfing,
|
||||
&gEventObjectGraphicsInfo_BrendanFieldMove,
|
||||
&gEventObjectGraphicsInfo_QuintyPlump,
|
||||
&gEventObjectGraphicsInfo_NinjaBoy,
|
||||
&gEventObjectGraphicsInfo_Twin,
|
||||
&gEventObjectGraphicsInfo_Boy1,
|
||||
&gEventObjectGraphicsInfo_Girl1,
|
||||
&gEventObjectGraphicsInfo_Boy2,
|
||||
&gEventObjectGraphicsInfo_Girl2,
|
||||
&gEventObjectGraphicsInfo_LittleBoy,
|
||||
&gEventObjectGraphicsInfo_LittleGirl,
|
||||
&gEventObjectGraphicsInfo_Boy3,
|
||||
&gEventObjectGraphicsInfo_Girl3,
|
||||
&gEventObjectGraphicsInfo_RichBoy,
|
||||
&gEventObjectGraphicsInfo_Woman1,
|
||||
&gEventObjectGraphicsInfo_FatMan,
|
||||
&gEventObjectGraphicsInfo_PokefanF,
|
||||
&gEventObjectGraphicsInfo_Man1,
|
||||
&gEventObjectGraphicsInfo_Woman2,
|
||||
&gEventObjectGraphicsInfo_ExpertM,
|
||||
&gEventObjectGraphicsInfo_ExpertF,
|
||||
&gEventObjectGraphicsInfo_Man2,
|
||||
&gEventObjectGraphicsInfo_Woman3,
|
||||
&gEventObjectGraphicsInfo_PokefanM,
|
||||
&gEventObjectGraphicsInfo_Woman4,
|
||||
&gEventObjectGraphicsInfo_Cook,
|
||||
&gEventObjectGraphicsInfo_LinkReceptionist,
|
||||
&gEventObjectGraphicsInfo_OldMan,
|
||||
&gEventObjectGraphicsInfo_OldWoman,
|
||||
&gEventObjectGraphicsInfo_Camper,
|
||||
&gEventObjectGraphicsInfo_Picnicker,
|
||||
&gEventObjectGraphicsInfo_Man3,
|
||||
&gEventObjectGraphicsInfo_Woman5,
|
||||
&gEventObjectGraphicsInfo_Youngster,
|
||||
&gEventObjectGraphicsInfo_BugCatcher,
|
||||
&gEventObjectGraphicsInfo_PsychicM,
|
||||
&gEventObjectGraphicsInfo_SchoolKidM,
|
||||
&gEventObjectGraphicsInfo_Maniac,
|
||||
&gEventObjectGraphicsInfo_HexManiac,
|
||||
&gEventObjectGraphicsInfo_Rayquaza1,
|
||||
&gEventObjectGraphicsInfo_SwimmerM,
|
||||
&gEventObjectGraphicsInfo_SwimmerF,
|
||||
&gEventObjectGraphicsInfo_BlackBelt,
|
||||
&gEventObjectGraphicsInfo_Beauty,
|
||||
&gEventObjectGraphicsInfo_Scientist1,
|
||||
&gEventObjectGraphicsInfo_Lass,
|
||||
&gEventObjectGraphicsInfo_Gentleman,
|
||||
&gEventObjectGraphicsInfo_Sailor,
|
||||
&gEventObjectGraphicsInfo_Fisherman,
|
||||
&gEventObjectGraphicsInfo_RunningTriathleteM,
|
||||
&gEventObjectGraphicsInfo_RunningTriathleteF,
|
||||
&gEventObjectGraphicsInfo_TuberF,
|
||||
&gEventObjectGraphicsInfo_TuberM,
|
||||
&gEventObjectGraphicsInfo_Hiker,
|
||||
&gEventObjectGraphicsInfo_CyclingTriathleteM,
|
||||
&gEventObjectGraphicsInfo_CyclingTriathleteF,
|
||||
&gEventObjectGraphicsInfo_Nurse,
|
||||
&gEventObjectGraphicsInfo_ItemBall,
|
||||
&gEventObjectGraphicsInfo_BerryTree,
|
||||
&gEventObjectGraphicsInfo_BerryTreeEarlyStages,
|
||||
&gEventObjectGraphicsInfo_BerryTreeLateStages,
|
||||
&gEventObjectGraphicsInfo_BrendanAcroBike,
|
||||
&gEventObjectGraphicsInfo_ProfBirch,
|
||||
&gEventObjectGraphicsInfo_Man4,
|
||||
&gEventObjectGraphicsInfo_Man5,
|
||||
&gEventObjectGraphicsInfo_ReporterM,
|
||||
&gEventObjectGraphicsInfo_ReporterF,
|
||||
&gEventObjectGraphicsInfo_Bard,
|
||||
&gEventObjectGraphicsInfo_Anabel,
|
||||
&gEventObjectGraphicsInfo_Tucker,
|
||||
&gEventObjectGraphicsInfo_Greta,
|
||||
&gEventObjectGraphicsInfo_Spenser,
|
||||
&gEventObjectGraphicsInfo_Noland,
|
||||
&gEventObjectGraphicsInfo_Lucy,
|
||||
&gEventObjectGraphicsInfo_UnusedNatuDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedMagnemiteDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedSquirtleDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedWooperDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedPikachuDoll,
|
||||
&gEventObjectGraphicsInfo_UnusedPorygon2Doll,
|
||||
&gEventObjectGraphicsInfo_CuttableTree,
|
||||
&gEventObjectGraphicsInfo_MartEmployee,
|
||||
&gEventObjectGraphicsInfo_RooftopSaleWoman,
|
||||
&gEventObjectGraphicsInfo_Teala,
|
||||
&gEventObjectGraphicsInfo_BreakableRock,
|
||||
&gEventObjectGraphicsInfo_PushableBoulder,
|
||||
&gEventObjectGraphicsInfo_MrBrineysBoat,
|
||||
&gEventObjectGraphicsInfo_MayNormal,
|
||||
&gEventObjectGraphicsInfo_MayMachBike,
|
||||
&gEventObjectGraphicsInfo_MayAcroBike,
|
||||
&gEventObjectGraphicsInfo_MaySurfing,
|
||||
&gEventObjectGraphicsInfo_MayFieldMove,
|
||||
&gEventObjectGraphicsInfo_Truck,
|
||||
&gEventObjectGraphicsInfo_VigorothCarryingBox,
|
||||
&gEventObjectGraphicsInfo_VigorothFacingAway,
|
||||
&gEventObjectGraphicsInfo_BirchsBag,
|
||||
&gEventObjectGraphicsInfo_EnemyZigzagoon,
|
||||
&gEventObjectGraphicsInfo_Artist,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanNormal,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanMachBike,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanAcroBike,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanSurfing,
|
||||
&gEventObjectGraphicsInfo_RivalBrendanFieldMove,
|
||||
&gEventObjectGraphicsInfo_RivalMayNormal,
|
||||
&gEventObjectGraphicsInfo_RivalMayMachBike,
|
||||
&gEventObjectGraphicsInfo_RivalMayAcroBike,
|
||||
&gEventObjectGraphicsInfo_RivalMaySurfing,
|
||||
&gEventObjectGraphicsInfo_RivalMayFieldMove,
|
||||
&gEventObjectGraphicsInfo_Cameraman,
|
||||
&gEventObjectGraphicsInfo_BrendanUnderwater,
|
||||
&gEventObjectGraphicsInfo_MayUnderwater,
|
||||
&gEventObjectGraphicsInfo_MovingBox,
|
||||
&gEventObjectGraphicsInfo_CableCar,
|
||||
&gEventObjectGraphicsInfo_Scientist2,
|
||||
&gEventObjectGraphicsInfo_DevonEmployee,
|
||||
&gEventObjectGraphicsInfo_AquaMemberM,
|
||||
&gEventObjectGraphicsInfo_AquaMemberF,
|
||||
&gEventObjectGraphicsInfo_MagmaMemberM,
|
||||
&gEventObjectGraphicsInfo_MagmaMemberF,
|
||||
&gEventObjectGraphicsInfo_Sidney,
|
||||
&gEventObjectGraphicsInfo_Phoebe,
|
||||
&gEventObjectGraphicsInfo_Glacia,
|
||||
&gEventObjectGraphicsInfo_Drake,
|
||||
&gEventObjectGraphicsInfo_Roxanne,
|
||||
&gEventObjectGraphicsInfo_Brawly,
|
||||
&gEventObjectGraphicsInfo_Wattson,
|
||||
&gEventObjectGraphicsInfo_Flannery,
|
||||
&gEventObjectGraphicsInfo_Norman,
|
||||
&gEventObjectGraphicsInfo_Winona,
|
||||
&gEventObjectGraphicsInfo_Liza,
|
||||
&gEventObjectGraphicsInfo_Tate,
|
||||
&gEventObjectGraphicsInfo_Wallace,
|
||||
&gEventObjectGraphicsInfo_Steven,
|
||||
&gEventObjectGraphicsInfo_Wally,
|
||||
&gEventObjectGraphicsInfo_RubySapphireLittleBoy,
|
||||
&gEventObjectGraphicsInfo_BrendanFishing,
|
||||
&gEventObjectGraphicsInfo_MayFishing,
|
||||
&gEventObjectGraphicsInfo_HotSpringsOldWoman,
|
||||
&gEventObjectGraphicsInfo_SSTidal,
|
||||
&gEventObjectGraphicsInfo_SubmarineShadow,
|
||||
&gEventObjectGraphicsInfo_PichuDoll,
|
||||
&gEventObjectGraphicsInfo_PikachuDoll,
|
||||
&gEventObjectGraphicsInfo_MarillDoll,
|
||||
&gEventObjectGraphicsInfo_TogepiDoll,
|
||||
&gEventObjectGraphicsInfo_CyndaquilDoll,
|
||||
&gEventObjectGraphicsInfo_ChikoritaDoll,
|
||||
&gEventObjectGraphicsInfo_TotodileDoll,
|
||||
&gEventObjectGraphicsInfo_JigglypuffDoll,
|
||||
&gEventObjectGraphicsInfo_MeowthDoll,
|
||||
&gEventObjectGraphicsInfo_ClefairyDoll,
|
||||
&gEventObjectGraphicsInfo_DittoDoll,
|
||||
&gEventObjectGraphicsInfo_SmoochumDoll,
|
||||
&gEventObjectGraphicsInfo_TreeckoDoll,
|
||||
&gEventObjectGraphicsInfo_TorchicDoll,
|
||||
&gEventObjectGraphicsInfo_MudkipDoll,
|
||||
&gEventObjectGraphicsInfo_DuskullDoll,
|
||||
&gEventObjectGraphicsInfo_WynautDoll,
|
||||
&gEventObjectGraphicsInfo_BaltoyDoll,
|
||||
&gEventObjectGraphicsInfo_KecleonDoll,
|
||||
&gEventObjectGraphicsInfo_AzurillDoll,
|
||||
&gEventObjectGraphicsInfo_SkittyDoll,
|
||||
&gEventObjectGraphicsInfo_SwabluDoll,
|
||||
&gEventObjectGraphicsInfo_GulpinDoll,
|
||||
&gEventObjectGraphicsInfo_LotadDoll,
|
||||
&gEventObjectGraphicsInfo_SeedotDoll,
|
||||
&gEventObjectGraphicsInfo_PikaCushion,
|
||||
&gEventObjectGraphicsInfo_RoundCushion,
|
||||
&gEventObjectGraphicsInfo_KissCushion,
|
||||
&gEventObjectGraphicsInfo_ZigzagCushion,
|
||||
&gEventObjectGraphicsInfo_SpinCushion,
|
||||
&gEventObjectGraphicsInfo_DiamondCushion,
|
||||
&gEventObjectGraphicsInfo_BallCushion,
|
||||
&gEventObjectGraphicsInfo_GrassCushion,
|
||||
&gEventObjectGraphicsInfo_FireCushion,
|
||||
&gEventObjectGraphicsInfo_WaterCushion,
|
||||
&gEventObjectGraphicsInfo_BigSnorlaxDoll,
|
||||
&gEventObjectGraphicsInfo_BigRhydonDoll,
|
||||
&gEventObjectGraphicsInfo_BigLaprasDoll,
|
||||
&gEventObjectGraphicsInfo_BigVenusaurDoll,
|
||||
&gEventObjectGraphicsInfo_BigCharizardDoll,
|
||||
&gEventObjectGraphicsInfo_BigBlastoiseDoll,
|
||||
&gEventObjectGraphicsInfo_BigWailmerDoll,
|
||||
&gEventObjectGraphicsInfo_BigRegirockDoll,
|
||||
&gEventObjectGraphicsInfo_BigRegiceDoll,
|
||||
&gEventObjectGraphicsInfo_BigRegisteelDoll,
|
||||
&gEventObjectGraphicsInfo_Latias,
|
||||
&gEventObjectGraphicsInfo_Latios,
|
||||
&gEventObjectGraphicsInfo_GameboyKid,
|
||||
&gEventObjectGraphicsInfo_ContestJudge,
|
||||
&gEventObjectGraphicsInfo_BrendanWatering,
|
||||
&gEventObjectGraphicsInfo_MayWatering,
|
||||
&gEventObjectGraphicsInfo_BrendanDecorating,
|
||||
&gEventObjectGraphicsInfo_MayDecorating,
|
||||
&gEventObjectGraphicsInfo_Archie,
|
||||
&gEventObjectGraphicsInfo_Maxie,
|
||||
&gEventObjectGraphicsInfo_Kyogre1,
|
||||
&gEventObjectGraphicsInfo_Groudon1,
|
||||
&gEventObjectGraphicsInfo_Fossil,
|
||||
&gEventObjectGraphicsInfo_Regirock,
|
||||
&gEventObjectGraphicsInfo_Regice,
|
||||
&gEventObjectGraphicsInfo_Registeel,
|
||||
&gEventObjectGraphicsInfo_Skitty,
|
||||
&gEventObjectGraphicsInfo_Kecleon1,
|
||||
&gEventObjectGraphicsInfo_Kyogre2,
|
||||
&gEventObjectGraphicsInfo_Groudon2,
|
||||
&gEventObjectGraphicsInfo_Rayquaza2,
|
||||
&gEventObjectGraphicsInfo_Zigzagoon,
|
||||
&gEventObjectGraphicsInfo_Pikachu,
|
||||
&gEventObjectGraphicsInfo_Azumarill,
|
||||
&gEventObjectGraphicsInfo_Wingull,
|
||||
&gEventObjectGraphicsInfo_Kecleon2,
|
||||
&gEventObjectGraphicsInfo_TuberMSwimming,
|
||||
&gEventObjectGraphicsInfo_Azurill,
|
||||
&gEventObjectGraphicsInfo_Mom,
|
||||
&gEventObjectGraphicsInfo_LinkBrendan,
|
||||
&gEventObjectGraphicsInfo_LinkMay,
|
||||
&gEventObjectGraphicsInfo_Juan,
|
||||
&gEventObjectGraphicsInfo_Scott,
|
||||
&gEventObjectGraphicsInfo_Poochyena,
|
||||
&gEventObjectGraphicsInfo_Kyogre3,
|
||||
&gEventObjectGraphicsInfo_Groudon3,
|
||||
&gEventObjectGraphicsInfo_MysteryEventDeliveryman,
|
||||
&gEventObjectGraphicsInfo_Statue,
|
||||
&gEventObjectGraphicsInfo_Kirlia,
|
||||
&gEventObjectGraphicsInfo_Dusclops,
|
||||
&gEventObjectGraphicsInfo_UnionRoomAttendant,
|
||||
&gEventObjectGraphicsInfo_Sudowoodo,
|
||||
&gEventObjectGraphicsInfo_Mew,
|
||||
&gEventObjectGraphicsInfo_Red,
|
||||
&gEventObjectGraphicsInfo_Leaf,
|
||||
&gEventObjectGraphicsInfo_Deoxys,
|
||||
&gEventObjectGraphicsInfo_BirthIslandStone,
|
||||
&gEventObjectGraphicsInfo_Brandon,
|
||||
&gEventObjectGraphicsInfo_RubySapphireBrendan,
|
||||
&gEventObjectGraphicsInfo_RubySapphireMay,
|
||||
&gEventObjectGraphicsInfo_Lugia,
|
||||
&gEventObjectGraphicsInfo_HoOh,
|
||||
[EVENT_OBJ_GFX_BRENDAN_NORMAL] = &gEventObjectGraphicsInfo_BrendanNormal,
|
||||
[EVENT_OBJ_GFX_BRENDAN_MACH_BIKE] = &gEventObjectGraphicsInfo_BrendanMachBike,
|
||||
[EVENT_OBJ_GFX_BRENDAN_SURFING] = &gEventObjectGraphicsInfo_BrendanSurfing,
|
||||
[EVENT_OBJ_GFX_BRENDAN_FIELD_MOVE] = &gEventObjectGraphicsInfo_BrendanFieldMove,
|
||||
[EVENT_OBJ_GFX_QUINTY_PLUMP] = &gEventObjectGraphicsInfo_QuintyPlump,
|
||||
[EVENT_OBJ_GFX_NINJA_BOY] = &gEventObjectGraphicsInfo_NinjaBoy,
|
||||
[EVENT_OBJ_GFX_TWIN] = &gEventObjectGraphicsInfo_Twin,
|
||||
[EVENT_OBJ_GFX_BOY_1] = &gEventObjectGraphicsInfo_Boy1,
|
||||
[EVENT_OBJ_GFX_GIRL_1] = &gEventObjectGraphicsInfo_Girl1,
|
||||
[EVENT_OBJ_GFX_BOY_2] = &gEventObjectGraphicsInfo_Boy2,
|
||||
[EVENT_OBJ_GFX_GIRL_2] = &gEventObjectGraphicsInfo_Girl2,
|
||||
[EVENT_OBJ_GFX_LITTLE_BOY] = &gEventObjectGraphicsInfo_LittleBoy,
|
||||
[EVENT_OBJ_GFX_LITTLE_GIRL] = &gEventObjectGraphicsInfo_LittleGirl,
|
||||
[EVENT_OBJ_GFX_BOY_3] = &gEventObjectGraphicsInfo_Boy3,
|
||||
[EVENT_OBJ_GFX_GIRL_3] = &gEventObjectGraphicsInfo_Girl3,
|
||||
[EVENT_OBJ_GFX_RICH_BOY] = &gEventObjectGraphicsInfo_RichBoy,
|
||||
[EVENT_OBJ_GFX_WOMAN_1] = &gEventObjectGraphicsInfo_Woman1,
|
||||
[EVENT_OBJ_GFX_FAT_MAN] = &gEventObjectGraphicsInfo_FatMan,
|
||||
[EVENT_OBJ_GFX_POKEFAN_F] = &gEventObjectGraphicsInfo_PokefanF,
|
||||
[EVENT_OBJ_GFX_MAN_1] = &gEventObjectGraphicsInfo_Man1,
|
||||
[EVENT_OBJ_GFX_WOMAN_2] = &gEventObjectGraphicsInfo_Woman2,
|
||||
[EVENT_OBJ_GFX_EXPERT_M] = &gEventObjectGraphicsInfo_ExpertM,
|
||||
[EVENT_OBJ_GFX_EXPERT_F] = &gEventObjectGraphicsInfo_ExpertF,
|
||||
[EVENT_OBJ_GFX_MAN_2] = &gEventObjectGraphicsInfo_Man2,
|
||||
[EVENT_OBJ_GFX_WOMAN_3] = &gEventObjectGraphicsInfo_Woman3,
|
||||
[EVENT_OBJ_GFX_POKEFAN_M] = &gEventObjectGraphicsInfo_PokefanM,
|
||||
[EVENT_OBJ_GFX_WOMAN_4] = &gEventObjectGraphicsInfo_Woman4,
|
||||
[EVENT_OBJ_GFX_COOK] = &gEventObjectGraphicsInfo_Cook,
|
||||
[EVENT_OBJ_GFX_LINK_RECEPTIONIST] = &gEventObjectGraphicsInfo_LinkReceptionist,
|
||||
[EVENT_OBJ_GFX_OLD_MAN] = &gEventObjectGraphicsInfo_OldMan,
|
||||
[EVENT_OBJ_GFX_OLD_WOMAN] = &gEventObjectGraphicsInfo_OldWoman,
|
||||
[EVENT_OBJ_GFX_CAMPER] = &gEventObjectGraphicsInfo_Camper,
|
||||
[EVENT_OBJ_GFX_PICNICKER] = &gEventObjectGraphicsInfo_Picnicker,
|
||||
[EVENT_OBJ_GFX_MAN_3] = &gEventObjectGraphicsInfo_Man3,
|
||||
[EVENT_OBJ_GFX_WOMAN_5] = &gEventObjectGraphicsInfo_Woman5,
|
||||
[EVENT_OBJ_GFX_YOUNGSTER] = &gEventObjectGraphicsInfo_Youngster,
|
||||
[EVENT_OBJ_GFX_BUG_CATCHER] = &gEventObjectGraphicsInfo_BugCatcher,
|
||||
[EVENT_OBJ_GFX_PSYCHIC_M] = &gEventObjectGraphicsInfo_PsychicM,
|
||||
[EVENT_OBJ_GFX_SCHOOL_KID_M] = &gEventObjectGraphicsInfo_SchoolKidM,
|
||||
[EVENT_OBJ_GFX_MANIAC] = &gEventObjectGraphicsInfo_Maniac,
|
||||
[EVENT_OBJ_GFX_HEX_MANIAC] = &gEventObjectGraphicsInfo_HexManiac,
|
||||
[EVENT_OBJ_GFX_RAYQUAZA_1] = &gEventObjectGraphicsInfo_Rayquaza1,
|
||||
[EVENT_OBJ_GFX_SWIMMER_M] = &gEventObjectGraphicsInfo_SwimmerM,
|
||||
[EVENT_OBJ_GFX_SWIMMER_F] = &gEventObjectGraphicsInfo_SwimmerF,
|
||||
[EVENT_OBJ_GFX_BLACK_BELT] = &gEventObjectGraphicsInfo_BlackBelt,
|
||||
[EVENT_OBJ_GFX_BEAUTY] = &gEventObjectGraphicsInfo_Beauty,
|
||||
[EVENT_OBJ_GFX_SCIENTIST_1] = &gEventObjectGraphicsInfo_Scientist1,
|
||||
[EVENT_OBJ_GFX_LASS] = &gEventObjectGraphicsInfo_Lass,
|
||||
[EVENT_OBJ_GFX_GENTLEMAN] = &gEventObjectGraphicsInfo_Gentleman,
|
||||
[EVENT_OBJ_GFX_SAILOR] = &gEventObjectGraphicsInfo_Sailor,
|
||||
[EVENT_OBJ_GFX_FISHERMAN] = &gEventObjectGraphicsInfo_Fisherman,
|
||||
[EVENT_OBJ_GFX_RUNNING_TRIATHLETE_M] = &gEventObjectGraphicsInfo_RunningTriathleteM,
|
||||
[EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F] = &gEventObjectGraphicsInfo_RunningTriathleteF,
|
||||
[EVENT_OBJ_GFX_TUBER_F] = &gEventObjectGraphicsInfo_TuberF,
|
||||
[EVENT_OBJ_GFX_TUBER_M] = &gEventObjectGraphicsInfo_TuberM,
|
||||
[EVENT_OBJ_GFX_HIKER] = &gEventObjectGraphicsInfo_Hiker,
|
||||
[EVENT_OBJ_GFX_CYCLING_TRIATHLETE_M] = &gEventObjectGraphicsInfo_CyclingTriathleteM,
|
||||
[EVENT_OBJ_GFX_CYCLING_TRIATHLETE_F] = &gEventObjectGraphicsInfo_CyclingTriathleteF,
|
||||
[EVENT_OBJ_GFX_NURSE] = &gEventObjectGraphicsInfo_Nurse,
|
||||
[EVENT_OBJ_GFX_ITEM_BALL] = &gEventObjectGraphicsInfo_ItemBall,
|
||||
[EVENT_OBJ_GFX_BERRY_TREE] = &gEventObjectGraphicsInfo_BerryTree,
|
||||
[EVENT_OBJ_GFX_BERRY_TREE_EARLY_STAGES] = &gEventObjectGraphicsInfo_BerryTreeEarlyStages,
|
||||
[EVENT_OBJ_GFX_BERRY_TREE_LATE_STAGES] = &gEventObjectGraphicsInfo_BerryTreeLateStages,
|
||||
[EVENT_OBJ_GFX_BRENDAN_ACRO_BIKE] = &gEventObjectGraphicsInfo_BrendanAcroBike,
|
||||
[EVENT_OBJ_GFX_PROF_BIRCH] = &gEventObjectGraphicsInfo_ProfBirch,
|
||||
[EVENT_OBJ_GFX_MAN_4] = &gEventObjectGraphicsInfo_Man4,
|
||||
[EVENT_OBJ_GFX_MAN_5] = &gEventObjectGraphicsInfo_Man5,
|
||||
[EVENT_OBJ_GFX_REPORTER_M] = &gEventObjectGraphicsInfo_ReporterM,
|
||||
[EVENT_OBJ_GFX_REPORTER_F] = &gEventObjectGraphicsInfo_ReporterF,
|
||||
[EVENT_OBJ_GFX_BARD] = &gEventObjectGraphicsInfo_Bard,
|
||||
[EVENT_OBJ_GFX_ANABEL] = &gEventObjectGraphicsInfo_Anabel,
|
||||
[EVENT_OBJ_GFX_TUCKER] = &gEventObjectGraphicsInfo_Tucker,
|
||||
[EVENT_OBJ_GFX_GRETA] = &gEventObjectGraphicsInfo_Greta,
|
||||
[EVENT_OBJ_GFX_SPENSER] = &gEventObjectGraphicsInfo_Spenser,
|
||||
[EVENT_OBJ_GFX_NOLAND] = &gEventObjectGraphicsInfo_Noland,
|
||||
[EVENT_OBJ_GFX_LUCY] = &gEventObjectGraphicsInfo_Lucy,
|
||||
[EVENT_OBJ_GFX_UNUSED_NATU_DOLL] = &gEventObjectGraphicsInfo_UnusedNatuDoll,
|
||||
[EVENT_OBJ_GFX_UNUSED_MAGNEMITE_DOLL] = &gEventObjectGraphicsInfo_UnusedMagnemiteDoll,
|
||||
[EVENT_OBJ_GFX_UNUSED_SQUIRTLE_DOLL] = &gEventObjectGraphicsInfo_UnusedSquirtleDoll,
|
||||
[EVENT_OBJ_GFX_UNUSED_WOOPER_DOLL] = &gEventObjectGraphicsInfo_UnusedWooperDoll,
|
||||
[EVENT_OBJ_GFX_UNUSED_PIKACHU_DOLL] = &gEventObjectGraphicsInfo_UnusedPikachuDoll,
|
||||
[EVENT_OBJ_GFX_UNUSED_PORYGON2_DOLL] = &gEventObjectGraphicsInfo_UnusedPorygon2Doll,
|
||||
[EVENT_OBJ_GFX_CUTTABLE_TREE] = &gEventObjectGraphicsInfo_CuttableTree,
|
||||
[EVENT_OBJ_GFX_MART_EMPLOYEE] = &gEventObjectGraphicsInfo_MartEmployee,
|
||||
[EVENT_OBJ_GFX_ROOFTOP_SALE_WOMAN] = &gEventObjectGraphicsInfo_RooftopSaleWoman,
|
||||
[EVENT_OBJ_GFX_TEALA] = &gEventObjectGraphicsInfo_Teala,
|
||||
[EVENT_OBJ_GFX_BREAKABLE_ROCK] = &gEventObjectGraphicsInfo_BreakableRock,
|
||||
[EVENT_OBJ_GFX_PUSHABLE_BOULDER] = &gEventObjectGraphicsInfo_PushableBoulder,
|
||||
[EVENT_OBJ_GFX_MR_BRINEYS_BOAT] = &gEventObjectGraphicsInfo_MrBrineysBoat,
|
||||
[EVENT_OBJ_GFX_MAY_NORMAL] = &gEventObjectGraphicsInfo_MayNormal,
|
||||
[EVENT_OBJ_GFX_MAY_MACH_BIKE] = &gEventObjectGraphicsInfo_MayMachBike,
|
||||
[EVENT_OBJ_GFX_MAY_ACRO_BIKE] = &gEventObjectGraphicsInfo_MayAcroBike,
|
||||
[EVENT_OBJ_GFX_MAY_SURFING] = &gEventObjectGraphicsInfo_MaySurfing,
|
||||
[EVENT_OBJ_GFX_MAY_FIELD_MOVE] = &gEventObjectGraphicsInfo_MayFieldMove,
|
||||
[EVENT_OBJ_GFX_TRUCK] = &gEventObjectGraphicsInfo_Truck,
|
||||
[EVENT_OBJ_GFX_VIGOROTH_CARRYING_BOX] = &gEventObjectGraphicsInfo_VigorothCarryingBox,
|
||||
[EVENT_OBJ_GFX_VIGOROTH_FACING_AWAY] = &gEventObjectGraphicsInfo_VigorothFacingAway,
|
||||
[EVENT_OBJ_GFX_BIRCHS_BAG] = &gEventObjectGraphicsInfo_BirchsBag,
|
||||
[EVENT_OBJ_GFX_ZIGZAGOON_1] = &gEventObjectGraphicsInfo_EnemyZigzagoon,
|
||||
[EVENT_OBJ_GFX_ARTIST] = &gEventObjectGraphicsInfo_Artist,
|
||||
[EVENT_OBJ_GFX_RIVAL_BRENDAN_NORMAL] = &gEventObjectGraphicsInfo_RivalBrendanNormal,
|
||||
[EVENT_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE] = &gEventObjectGraphicsInfo_RivalBrendanMachBike,
|
||||
[EVENT_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE] = &gEventObjectGraphicsInfo_RivalBrendanAcroBike,
|
||||
[EVENT_OBJ_GFX_RIVAL_BRENDAN_SURFING] = &gEventObjectGraphicsInfo_RivalBrendanSurfing,
|
||||
[EVENT_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE] = &gEventObjectGraphicsInfo_RivalBrendanFieldMove,
|
||||
[EVENT_OBJ_GFX_RIVAL_MAY_NORMAL] = &gEventObjectGraphicsInfo_RivalMayNormal,
|
||||
[EVENT_OBJ_GFX_RIVAL_MAY_MACH_BIKE] = &gEventObjectGraphicsInfo_RivalMayMachBike,
|
||||
[EVENT_OBJ_GFX_RIVAL_MAY_ACRO_BIKE] = &gEventObjectGraphicsInfo_RivalMayAcroBike,
|
||||
[EVENT_OBJ_GFX_RIVAL_MAY_SURFING] = &gEventObjectGraphicsInfo_RivalMaySurfing,
|
||||
[EVENT_OBJ_GFX_RIVAL_MAY_FIELD_MOVE] = &gEventObjectGraphicsInfo_RivalMayFieldMove,
|
||||
[EVENT_OBJ_GFX_CAMERAMAN] = &gEventObjectGraphicsInfo_Cameraman,
|
||||
[EVENT_OBJ_GFX_BRENDAN_UNDERWATER] = &gEventObjectGraphicsInfo_BrendanUnderwater,
|
||||
[EVENT_OBJ_GFX_MAY_UNDERWATER] = &gEventObjectGraphicsInfo_MayUnderwater,
|
||||
[EVENT_OBJ_GFX_MOVING_BOX] = &gEventObjectGraphicsInfo_MovingBox,
|
||||
[EVENT_OBJ_GFX_CABLE_CAR] = &gEventObjectGraphicsInfo_CableCar,
|
||||
[EVENT_OBJ_GFX_SCIENTIST_2] = &gEventObjectGraphicsInfo_Scientist2,
|
||||
[EVENT_OBJ_GFX_DEVON_EMPLOYEE] = &gEventObjectGraphicsInfo_DevonEmployee,
|
||||
[EVENT_OBJ_GFX_AQUA_MEMBER_M] = &gEventObjectGraphicsInfo_AquaMemberM,
|
||||
[EVENT_OBJ_GFX_AQUA_MEMBER_F] = &gEventObjectGraphicsInfo_AquaMemberF,
|
||||
[EVENT_OBJ_GFX_MAGMA_MEMBER_M] = &gEventObjectGraphicsInfo_MagmaMemberM,
|
||||
[EVENT_OBJ_GFX_MAGMA_MEMBER_F] = &gEventObjectGraphicsInfo_MagmaMemberF,
|
||||
[EVENT_OBJ_GFX_SIDNEY] = &gEventObjectGraphicsInfo_Sidney,
|
||||
[EVENT_OBJ_GFX_PHOEBE] = &gEventObjectGraphicsInfo_Phoebe,
|
||||
[EVENT_OBJ_GFX_GLACIA] = &gEventObjectGraphicsInfo_Glacia,
|
||||
[EVENT_OBJ_GFX_DRAKE] = &gEventObjectGraphicsInfo_Drake,
|
||||
[EVENT_OBJ_GFX_ROXANNE] = &gEventObjectGraphicsInfo_Roxanne,
|
||||
[EVENT_OBJ_GFX_BRAWLY] = &gEventObjectGraphicsInfo_Brawly,
|
||||
[EVENT_OBJ_GFX_WATTSON] = &gEventObjectGraphicsInfo_Wattson,
|
||||
[EVENT_OBJ_GFX_FLANNERY] = &gEventObjectGraphicsInfo_Flannery,
|
||||
[EVENT_OBJ_GFX_NORMAN] = &gEventObjectGraphicsInfo_Norman,
|
||||
[EVENT_OBJ_GFX_WINONA] = &gEventObjectGraphicsInfo_Winona,
|
||||
[EVENT_OBJ_GFX_LIZA] = &gEventObjectGraphicsInfo_Liza,
|
||||
[EVENT_OBJ_GFX_TATE] = &gEventObjectGraphicsInfo_Tate,
|
||||
[EVENT_OBJ_GFX_WALLACE] = &gEventObjectGraphicsInfo_Wallace,
|
||||
[EVENT_OBJ_GFX_STEVEN] = &gEventObjectGraphicsInfo_Steven,
|
||||
[EVENT_OBJ_GFX_WALLY] = &gEventObjectGraphicsInfo_Wally,
|
||||
[EVENT_OBJ_GFX_LITTLE_BOY_3] = &gEventObjectGraphicsInfo_RubySapphireLittleBoy,
|
||||
[EVENT_OBJ_GFX_BRENDAN_FISHING] = &gEventObjectGraphicsInfo_BrendanFishing,
|
||||
[EVENT_OBJ_GFX_MAY_FISHING] = &gEventObjectGraphicsInfo_MayFishing,
|
||||
[EVENT_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN] = &gEventObjectGraphicsInfo_HotSpringsOldWoman,
|
||||
[EVENT_OBJ_GFX_SS_TIDAL] = &gEventObjectGraphicsInfo_SSTidal,
|
||||
[EVENT_OBJ_GFX_SUBMARINE_SHADOW] = &gEventObjectGraphicsInfo_SubmarineShadow,
|
||||
[EVENT_OBJ_GFX_PICHU_DOLL] = &gEventObjectGraphicsInfo_PichuDoll,
|
||||
[EVENT_OBJ_GFX_PIKACHU_DOLL] = &gEventObjectGraphicsInfo_PikachuDoll,
|
||||
[EVENT_OBJ_GFX_MARILL_DOLL] = &gEventObjectGraphicsInfo_MarillDoll,
|
||||
[EVENT_OBJ_GFX_TOGEPI_DOLL] = &gEventObjectGraphicsInfo_TogepiDoll,
|
||||
[EVENT_OBJ_GFX_CYNDAQUIL_DOLL] = &gEventObjectGraphicsInfo_CyndaquilDoll,
|
||||
[EVENT_OBJ_GFX_CHIKORITA_DOLL] = &gEventObjectGraphicsInfo_ChikoritaDoll,
|
||||
[EVENT_OBJ_GFX_TOTODILE_DOLL] = &gEventObjectGraphicsInfo_TotodileDoll,
|
||||
[EVENT_OBJ_GFX_JIGGLYPUFF_DOLL] = &gEventObjectGraphicsInfo_JigglypuffDoll,
|
||||
[EVENT_OBJ_GFX_MEOWTH_DOLL] = &gEventObjectGraphicsInfo_MeowthDoll,
|
||||
[EVENT_OBJ_GFX_CLEFAIRY_DOLL] = &gEventObjectGraphicsInfo_ClefairyDoll,
|
||||
[EVENT_OBJ_GFX_DITTO_DOLL] = &gEventObjectGraphicsInfo_DittoDoll,
|
||||
[EVENT_OBJ_GFX_SMOOCHUM_DOLL] = &gEventObjectGraphicsInfo_SmoochumDoll,
|
||||
[EVENT_OBJ_GFX_TREECKO_DOLL] = &gEventObjectGraphicsInfo_TreeckoDoll,
|
||||
[EVENT_OBJ_GFX_TORCHIC_DOLL] = &gEventObjectGraphicsInfo_TorchicDoll,
|
||||
[EVENT_OBJ_GFX_MUDKIP_DOLL] = &gEventObjectGraphicsInfo_MudkipDoll,
|
||||
[EVENT_OBJ_GFX_DUSKULL_DOLL] = &gEventObjectGraphicsInfo_DuskullDoll,
|
||||
[EVENT_OBJ_GFX_WYNAUT_DOLL] = &gEventObjectGraphicsInfo_WynautDoll,
|
||||
[EVENT_OBJ_GFX_BALTOY_DOLL] = &gEventObjectGraphicsInfo_BaltoyDoll,
|
||||
[EVENT_OBJ_GFX_KECLEON_DOLL] = &gEventObjectGraphicsInfo_KecleonDoll,
|
||||
[EVENT_OBJ_GFX_AZURILL_DOLL] = &gEventObjectGraphicsInfo_AzurillDoll,
|
||||
[EVENT_OBJ_GFX_SKITTY_DOLL] = &gEventObjectGraphicsInfo_SkittyDoll,
|
||||
[EVENT_OBJ_GFX_SWABLU_DOLL] = &gEventObjectGraphicsInfo_SwabluDoll,
|
||||
[EVENT_OBJ_GFX_GULPIN_DOLL] = &gEventObjectGraphicsInfo_GulpinDoll,
|
||||
[EVENT_OBJ_GFX_LOTAD_DOLL] = &gEventObjectGraphicsInfo_LotadDoll,
|
||||
[EVENT_OBJ_GFX_SEEDOT_DOLL] = &gEventObjectGraphicsInfo_SeedotDoll,
|
||||
[EVENT_OBJ_GFX_PIKA_CUSHION] = &gEventObjectGraphicsInfo_PikaCushion,
|
||||
[EVENT_OBJ_GFX_ROUND_CUSHION] = &gEventObjectGraphicsInfo_RoundCushion,
|
||||
[EVENT_OBJ_GFX_KISS_CUSHION] = &gEventObjectGraphicsInfo_KissCushion,
|
||||
[EVENT_OBJ_GFX_ZIGZAG_CUSHION] = &gEventObjectGraphicsInfo_ZigzagCushion,
|
||||
[EVENT_OBJ_GFX_SPIN_CUSHION] = &gEventObjectGraphicsInfo_SpinCushion,
|
||||
[EVENT_OBJ_GFX_DIAMOND_CUSHION] = &gEventObjectGraphicsInfo_DiamondCushion,
|
||||
[EVENT_OBJ_GFX_BALL_CUSHION] = &gEventObjectGraphicsInfo_BallCushion,
|
||||
[EVENT_OBJ_GFX_GRASS_CUSHION] = &gEventObjectGraphicsInfo_GrassCushion,
|
||||
[EVENT_OBJ_GFX_FIRE_CUSHION] = &gEventObjectGraphicsInfo_FireCushion,
|
||||
[EVENT_OBJ_GFX_WATER_CUSHION] = &gEventObjectGraphicsInfo_WaterCushion,
|
||||
[EVENT_OBJ_GFX_BIG_SNORLAX_DOLL] = &gEventObjectGraphicsInfo_BigSnorlaxDoll,
|
||||
[EVENT_OBJ_GFX_BIG_RHYDON_DOLL] = &gEventObjectGraphicsInfo_BigRhydonDoll,
|
||||
[EVENT_OBJ_GFX_BIG_LAPRAS_DOLL] = &gEventObjectGraphicsInfo_BigLaprasDoll,
|
||||
[EVENT_OBJ_GFX_BIG_VENUSAUR_DOLL] = &gEventObjectGraphicsInfo_BigVenusaurDoll,
|
||||
[EVENT_OBJ_GFX_BIG_CHARIZARD_DOLL] = &gEventObjectGraphicsInfo_BigCharizardDoll,
|
||||
[EVENT_OBJ_GFX_BIG_BLASTOISE_DOLL] = &gEventObjectGraphicsInfo_BigBlastoiseDoll,
|
||||
[EVENT_OBJ_GFX_BIG_WAILMER_DOLL] = &gEventObjectGraphicsInfo_BigWailmerDoll,
|
||||
[EVENT_OBJ_GFX_BIG_REGIROCK_DOLL] = &gEventObjectGraphicsInfo_BigRegirockDoll,
|
||||
[EVENT_OBJ_GFX_BIG_REGICE_DOLL] = &gEventObjectGraphicsInfo_BigRegiceDoll,
|
||||
[EVENT_OBJ_GFX_BIG_REGISTEEL_DOLL] = &gEventObjectGraphicsInfo_BigRegisteelDoll,
|
||||
[EVENT_OBJ_GFX_LATIAS] = &gEventObjectGraphicsInfo_Latias,
|
||||
[EVENT_OBJ_GFX_LATIOS] = &gEventObjectGraphicsInfo_Latios,
|
||||
[EVENT_OBJ_GFX_GAMEBOY_KID] = &gEventObjectGraphicsInfo_GameboyKid,
|
||||
[EVENT_OBJ_GFX_CONTEST_JUDGE] = &gEventObjectGraphicsInfo_ContestJudge,
|
||||
[EVENT_OBJ_GFX_BRENDAN_WATERING] = &gEventObjectGraphicsInfo_BrendanWatering,
|
||||
[EVENT_OBJ_GFX_MAY_WATERING] = &gEventObjectGraphicsInfo_MayWatering,
|
||||
[EVENT_OBJ_GFX_BRENDAN_DECORATING] = &gEventObjectGraphicsInfo_BrendanDecorating,
|
||||
[EVENT_OBJ_GFX_MAY_DECORATING] = &gEventObjectGraphicsInfo_MayDecorating,
|
||||
[EVENT_OBJ_GFX_ARCHIE] = &gEventObjectGraphicsInfo_Archie,
|
||||
[EVENT_OBJ_GFX_MAXIE] = &gEventObjectGraphicsInfo_Maxie,
|
||||
[EVENT_OBJ_GFX_KYOGRE_1] = &gEventObjectGraphicsInfo_Kyogre1,
|
||||
[EVENT_OBJ_GFX_GROUDON_1] = &gEventObjectGraphicsInfo_Groudon1,
|
||||
[EVENT_OBJ_GFX_FOSSIL] = &gEventObjectGraphicsInfo_Fossil,
|
||||
[EVENT_OBJ_GFX_REGIROCK] = &gEventObjectGraphicsInfo_Regirock,
|
||||
[EVENT_OBJ_GFX_REGICE] = &gEventObjectGraphicsInfo_Regice,
|
||||
[EVENT_OBJ_GFX_REGISTEEL] = &gEventObjectGraphicsInfo_Registeel,
|
||||
[EVENT_OBJ_GFX_SKITTY] = &gEventObjectGraphicsInfo_Skitty,
|
||||
[EVENT_OBJ_GFX_KECLEON_1] = &gEventObjectGraphicsInfo_Kecleon1,
|
||||
[EVENT_OBJ_GFX_KYOGRE_2] = &gEventObjectGraphicsInfo_Kyogre2,
|
||||
[EVENT_OBJ_GFX_GROUDON_2] = &gEventObjectGraphicsInfo_Groudon2,
|
||||
[EVENT_OBJ_GFX_RAYQUAZA_2] = &gEventObjectGraphicsInfo_Rayquaza2,
|
||||
[EVENT_OBJ_GFX_ZIGZAGOON_2] = &gEventObjectGraphicsInfo_Zigzagoon,
|
||||
[EVENT_OBJ_GFX_PIKACHU] = &gEventObjectGraphicsInfo_Pikachu,
|
||||
[EVENT_OBJ_GFX_AZUMARILL] = &gEventObjectGraphicsInfo_Azumarill,
|
||||
[EVENT_OBJ_GFX_WINGULL] = &gEventObjectGraphicsInfo_Wingull,
|
||||
[EVENT_OBJ_GFX_KECLEON_2] = &gEventObjectGraphicsInfo_Kecleon2,
|
||||
[EVENT_OBJ_GFX_TUBER_M_SWIMMING] = &gEventObjectGraphicsInfo_TuberMSwimming,
|
||||
[EVENT_OBJ_GFX_AZURILL] = &gEventObjectGraphicsInfo_Azurill,
|
||||
[EVENT_OBJ_GFX_MOM] = &gEventObjectGraphicsInfo_Mom,
|
||||
[EVENT_OBJ_GFX_LINK_BRENDAN] = &gEventObjectGraphicsInfo_LinkBrendan,
|
||||
[EVENT_OBJ_GFX_LINK_MAY] = &gEventObjectGraphicsInfo_LinkMay,
|
||||
[EVENT_OBJ_GFX_JUAN] = &gEventObjectGraphicsInfo_Juan,
|
||||
[EVENT_OBJ_GFX_SCOTT] = &gEventObjectGraphicsInfo_Scott,
|
||||
[EVENT_OBJ_GFX_POOCHYENA] = &gEventObjectGraphicsInfo_Poochyena,
|
||||
[EVENT_OBJ_GFX_KYOGRE_3] = &gEventObjectGraphicsInfo_Kyogre3,
|
||||
[EVENT_OBJ_GFX_GROUDON_3] = &gEventObjectGraphicsInfo_Groudon3,
|
||||
[EVENT_OBJ_GFX_MYSTERY_GIFT_MAN] = &gEventObjectGraphicsInfo_MysteryEventDeliveryman,
|
||||
[EVENT_OBJ_GFX_TRICK_HOUSE_STATUE] = &gEventObjectGraphicsInfo_Statue,
|
||||
[EVENT_OBJ_GFX_KIRLIA] = &gEventObjectGraphicsInfo_Kirlia,
|
||||
[EVENT_OBJ_GFX_DUSCLOPS] = &gEventObjectGraphicsInfo_Dusclops,
|
||||
[EVENT_OBJ_GFX_UNION_ROOM_NURSE] = &gEventObjectGraphicsInfo_UnionRoomAttendant,
|
||||
[EVENT_OBJ_GFX_SUDOWOODO] = &gEventObjectGraphicsInfo_Sudowoodo,
|
||||
[EVENT_OBJ_GFX_MEW] = &gEventObjectGraphicsInfo_Mew,
|
||||
[EVENT_OBJ_GFX_RED] = &gEventObjectGraphicsInfo_Red,
|
||||
[EVENT_OBJ_GFX_LEAF] = &gEventObjectGraphicsInfo_Leaf,
|
||||
[EVENT_OBJ_GFX_DEOXYS] = &gEventObjectGraphicsInfo_Deoxys,
|
||||
[EVENT_OBJ_GFX_DEOXYS_TRIANGLE] = &gEventObjectGraphicsInfo_BirthIslandStone,
|
||||
[EVENT_OBJ_GFX_BRANDON] = &gEventObjectGraphicsInfo_Brandon,
|
||||
[EVENT_OBJ_GFX_LINK_RS_BRENDAN] = &gEventObjectGraphicsInfo_RubySapphireBrendan,
|
||||
[EVENT_OBJ_GFX_LINK_RS_MAY] = &gEventObjectGraphicsInfo_RubySapphireMay,
|
||||
[EVENT_OBJ_GFX_LUGIA] = &gEventObjectGraphicsInfo_Lugia,
|
||||
[EVENT_OBJ_GFX_HOOH] = &gEventObjectGraphicsInfo_HoOh,
|
||||
};
|
||||
|
||||
const struct EventObjectGraphicsInfo *const gMauvilleOldManGraphicsInfoPointers[] = {
|
||||
|
||||
@@ -0,0 +1,470 @@
|
||||
#include "constants/easy_chat.h"
|
||||
#include "constants/event_objects.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/moves.h"
|
||||
|
||||
static const u16 sContestLadyMonGfxId[] =
|
||||
{
|
||||
EVENT_OBJ_GFX_ZIGZAGOON_1,
|
||||
EVENT_OBJ_GFX_SKITTY,
|
||||
EVENT_OBJ_GFX_POOCHYENA,
|
||||
EVENT_OBJ_GFX_KECLEON_1,
|
||||
EVENT_OBJ_GFX_PIKACHU
|
||||
};
|
||||
|
||||
static const u16 sLilycoveLadyGfxId[] =
|
||||
{
|
||||
EVENT_OBJ_GFX_WOMAN_4,
|
||||
EVENT_OBJ_GFX_WOMAN_2,
|
||||
EVENT_OBJ_GFX_GIRL_2
|
||||
};
|
||||
|
||||
// Quiz Lady data
|
||||
static const u16 sQuizLadyQuestion1[] =
|
||||
{
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_STORES,
|
||||
EC_WORD_INFORMATION,
|
||||
EC_WORD_ON,
|
||||
EC_WORD_POKEMON,
|
||||
EC_WORD_QUES,
|
||||
EC_WORD_CAMERA,
|
||||
EC_WORD_POKEDEX,
|
||||
EC_WORD_POKENAV
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion2[] =
|
||||
{
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_ISN_T,
|
||||
EC_WORD_A,
|
||||
EC_WORD_GAME,
|
||||
EC_WORD_VERSION,
|
||||
EC_WORD_QUES,
|
||||
EC_WORD_RUBY,
|
||||
EC_WORD_SAPPHIRE,
|
||||
EC_WORD_DARK
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion3[] =
|
||||
{
|
||||
EC_WORD_HOW,
|
||||
EC_WORD_DO,
|
||||
EC_WORD_POKEMON,
|
||||
EC_WORD_EVOLVE,
|
||||
EC_WORD_QUES,
|
||||
0xFFFF,
|
||||
EC_WORD_LEVEL,
|
||||
EC_WORD_INSOMNIA,
|
||||
EC_WORD_CUTE_CHARM
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion4[] =
|
||||
{
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_IS,
|
||||
EC_WORD_THE,
|
||||
EC_WORD_PRETTY,
|
||||
EC_WORD_ITEM,
|
||||
EC_WORD_QUES,
|
||||
EC_WORD_COLD,
|
||||
EC_WORD_FLOWERS,
|
||||
EC_WORD_MACHINE
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion5[] =
|
||||
{
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_ITEM,
|
||||
EC_WORD_DO,
|
||||
EC_WORD_YOU,
|
||||
EC_WORD_BREAK,
|
||||
EC_WORD_QUES,
|
||||
EC_WORD_EGG,
|
||||
EC_WORD_MAIL,
|
||||
EC_WORD_PHONE
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion6[] =
|
||||
{
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_WILL,
|
||||
EC_WORD_STOP,
|
||||
EC_MOVE2(CONFUSION),
|
||||
EC_WORD_QUES,
|
||||
0xFFFF,
|
||||
EC_WORD_ILLUMINATE,
|
||||
EC_WORD_OWN_TEMPO,
|
||||
EC_WORD_SWIFT_SWIM
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion7[] =
|
||||
{
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_OF,
|
||||
EC_WORD_THESE,
|
||||
EC_WORD_IS,
|
||||
EC_WORD_MUSIC,
|
||||
EC_WORD_QUES,
|
||||
EC_WORD_FLYING,
|
||||
EC_WORD_STEEL,
|
||||
EC_WORD_ROCK
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion8[] =
|
||||
{
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_WILL,
|
||||
EC_MOVE2(BLOCK),
|
||||
EC_WORD_ESCAPE,
|
||||
EC_WORD_QUES,
|
||||
0xFFFF,
|
||||
EC_WORD_RUN_AWAY,
|
||||
EC_WORD_SHADOW_TAG,
|
||||
EC_WORD_WONDER_GUARD
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion9[] =
|
||||
{
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_WILL,
|
||||
EC_WORD_STOP,
|
||||
EC_WORD_POISON,
|
||||
EC_WORD_QUES,
|
||||
0xFFFF,
|
||||
EC_WORD_GUTS,
|
||||
EC_WORD_IMMUNITY,
|
||||
EC_WORD_SHED_SKIN
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion10[] =
|
||||
{
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_GOES,
|
||||
EC_WORD_WITH,
|
||||
EC_WORD_CENTER,
|
||||
EC_WORD_QUES,
|
||||
0xFFFF,
|
||||
EC_WORD_POKEDEX,
|
||||
EC_WORD_POKEMON,
|
||||
EC_WORD_POKENAV
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion11[] =
|
||||
{
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_STORES,
|
||||
EC_WORD_YOUR,
|
||||
EC_WORD_POKEMON,
|
||||
EC_WORD_QUES,
|
||||
0xFFFF,
|
||||
EC_WORD_PC,
|
||||
EC_WORD_DEPT_STORE,
|
||||
EC_WORD_TELEVISION
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion12[] =
|
||||
{
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_MACHINE,
|
||||
EC_WORD_GIVES,
|
||||
EC_WORD_YOU,
|
||||
EC_WORD_INFORMATION,
|
||||
EC_WORD_QUES,
|
||||
EC_WORD_BIKE,
|
||||
EC_WORD_LOCOMOTIVE,
|
||||
EC_WORD_TELEVISION
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion13[] =
|
||||
{
|
||||
EC_WORD_A,
|
||||
EC_WORD_POKEMON,
|
||||
EC_WORD_WAS,
|
||||
EC_WORD_ONCE,
|
||||
EC_WORD_THIS,
|
||||
EC_WORD_QUES,
|
||||
EC_WORD_PHONE,
|
||||
EC_WORD_PLUSH_DOLL,
|
||||
EC_WORD_LETTER
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion14[] =
|
||||
{
|
||||
EC_WORD_STEEL,
|
||||
EC_WORD_IS,
|
||||
EC_WORD_STRONG,
|
||||
EC_WORD_VERSUS,
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_QUES,
|
||||
EC_WORD_ICE,
|
||||
EC_WORD_GROUND,
|
||||
0xFFFF
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion15[] =
|
||||
{
|
||||
EC_WORD_DARK,
|
||||
EC_WORD_IS,
|
||||
EC_WORD_WEAK,
|
||||
EC_WORD_VERSUS,
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_QUES,
|
||||
EC_WORD_PSYCHIC,
|
||||
EC_WORD_FIGHTING,
|
||||
0xFFFF
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuestion16[] =
|
||||
{
|
||||
EC_WORD_GHOST,
|
||||
EC_WORD_IS,
|
||||
EC_WORD_WEAK,
|
||||
EC_WORD_VERSUS,
|
||||
EC_WORD_WHICH,
|
||||
EC_WORD_QUES,
|
||||
EC_WORD_NORMAL,
|
||||
EC_WORD_DARK,
|
||||
0xFFFF
|
||||
};
|
||||
|
||||
static const u16 *const sQuizLadyQuizQuestions[] =
|
||||
{
|
||||
sQuizLadyQuestion1,
|
||||
sQuizLadyQuestion2,
|
||||
sQuizLadyQuestion3,
|
||||
sQuizLadyQuestion4,
|
||||
sQuizLadyQuestion5,
|
||||
sQuizLadyQuestion6,
|
||||
sQuizLadyQuestion7,
|
||||
sQuizLadyQuestion8,
|
||||
sQuizLadyQuestion9,
|
||||
sQuizLadyQuestion10,
|
||||
sQuizLadyQuestion11,
|
||||
sQuizLadyQuestion12,
|
||||
sQuizLadyQuestion13,
|
||||
sQuizLadyQuestion14,
|
||||
sQuizLadyQuestion15,
|
||||
sQuizLadyQuestion16
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyQuizAnswers[] =
|
||||
{
|
||||
EC_WORD_POKEDEX,
|
||||
EC_WORD_DARK,
|
||||
EC_WORD_LEVEL,
|
||||
EC_WORD_FLOWERS,
|
||||
EC_WORD_EGG,
|
||||
EC_WORD_OWN_TEMPO,
|
||||
EC_WORD_ROCK,
|
||||
EC_WORD_SHADOW_TAG,
|
||||
EC_WORD_IMMUNITY,
|
||||
EC_WORD_POKEMON,
|
||||
EC_WORD_PC,
|
||||
EC_WORD_TELEVISION,
|
||||
EC_WORD_PLUSH_DOLL,
|
||||
EC_WORD_ICE,
|
||||
EC_WORD_FIGHTING,
|
||||
EC_WORD_DARK
|
||||
};
|
||||
|
||||
static const u16 sQuizLadyPrizes[] =
|
||||
{
|
||||
ITEM_GLITTER_MAIL,
|
||||
ITEM_BEAD_MAIL,
|
||||
ITEM_TROPIC_MAIL,
|
||||
ITEM_MAX_ETHER,
|
||||
ITEM_MAX_ETHER,
|
||||
ITEM_MAX_ETHER,
|
||||
ITEM_WATMEL_BERRY,
|
||||
ITEM_BELUE_BERRY,
|
||||
ITEM_DURIN_BERRY,
|
||||
ITEM_LUXURY_BALL,
|
||||
ITEM_TM15_HYPER_BEAM,
|
||||
ITEM_BIG_PEARL,
|
||||
ITEM_STAR_PIECE,
|
||||
ITEM_RARE_CANDY,
|
||||
ITEM_RARE_CANDY,
|
||||
ITEM_PREMIER_BALL
|
||||
};
|
||||
|
||||
// Favor Lady data
|
||||
static const u8 *const sFavorLadyRequests[] =
|
||||
{
|
||||
gText_FavorLady_Slippery,
|
||||
gText_FavorLady_Roundish,
|
||||
gText_FavorLady_Whamish,
|
||||
gText_FavorLady_Shiny,
|
||||
gText_FavorLady_Sticky,
|
||||
gText_FavorLady_Pointy
|
||||
};
|
||||
|
||||
static const u16 sFavorLadyAcceptedItems_Slippery[] =
|
||||
{
|
||||
ITEM_REPEL,
|
||||
ITEM_SUPER_REPEL,
|
||||
ITEM_MAX_REPEL,
|
||||
ITEM_ANTIDOTE,
|
||||
ITEM_PARALYZE_HEAL,
|
||||
ITEM_BURN_HEAL,
|
||||
ITEM_BELUE_BERRY,
|
||||
ITEM_AWAKENING,
|
||||
ITEM_ICE_HEAL,
|
||||
ITEM_REVIVE,
|
||||
ITEM_MAX_REVIVE,
|
||||
ITEM_ENERGY_POWDER,
|
||||
ITEM_NONE
|
||||
};
|
||||
|
||||
static const u16 sFavorLadyAcceptedItems_Roundish[] =
|
||||
{
|
||||
ITEM_FLUFFY_TAIL,
|
||||
ITEM_PEARL,
|
||||
ITEM_BIG_PEARL,
|
||||
ITEM_HARD_STONE,
|
||||
ITEM_SMOKE_BALL,
|
||||
ITEM_SHOAL_SHELL,
|
||||
ITEM_TINY_MUSHROOM,
|
||||
ITEM_BIG_MUSHROOM,
|
||||
ITEM_PECHA_BERRY,
|
||||
ITEM_ASPEAR_BERRY,
|
||||
ITEM_ORAN_BERRY,
|
||||
ITEM_GREPA_BERRY,
|
||||
ITEM_MAGOST_BERRY,
|
||||
ITEM_WATMEL_BERRY,
|
||||
ITEM_POKE_BALL,
|
||||
ITEM_ULTRA_BALL,
|
||||
ITEM_NONE
|
||||
};
|
||||
|
||||
static const u16 sFavorLadyAcceptedItems_Whamish[] =
|
||||
{
|
||||
ITEM_REVIVAL_HERB,
|
||||
ITEM_POTION,
|
||||
ITEM_FRESH_WATER,
|
||||
ITEM_SODA_POP,
|
||||
ITEM_LEMONADE,
|
||||
ITEM_HARD_STONE,
|
||||
ITEM_LIGHT_BALL,
|
||||
ITEM_LAVA_COOKIE,
|
||||
ITEM_CHESTO_BERRY,
|
||||
ITEM_NANAB_BERRY,
|
||||
ITEM_WEPEAR_BERRY,
|
||||
ITEM_KELPSY_BERRY,
|
||||
ITEM_NOMEL_BERRY,
|
||||
ITEM_DURIN_BERRY,
|
||||
ITEM_NONE
|
||||
};
|
||||
|
||||
static const u16 sFavorLadyAcceptedItems_Shiny[] =
|
||||
{
|
||||
ITEM_HEAL_POWDER,
|
||||
ITEM_X_SPEED,
|
||||
ITEM_X_ATTACK,
|
||||
ITEM_X_DEFEND,
|
||||
ITEM_BLUE_FLUTE,
|
||||
ITEM_YELLOW_FLUTE,
|
||||
ITEM_RED_FLUTE,
|
||||
ITEM_BLACK_FLUTE,
|
||||
ITEM_WHITE_FLUTE,
|
||||
ITEM_NUGGET,
|
||||
ITEM_SUN_STONE,
|
||||
ITEM_STARDUST,
|
||||
ITEM_STAR_PIECE,
|
||||
ITEM_PEARL,
|
||||
ITEM_BIG_PEARL,
|
||||
ITEM_TWISTED_SPOON,
|
||||
ITEM_SILVER_POWDER,
|
||||
ITEM_BRIGHT_POWDER,
|
||||
ITEM_LUXURY_BALL,
|
||||
ITEM_PREMIER_BALL,
|
||||
ITEM_NONE
|
||||
};
|
||||
|
||||
static const u16 sFavorLadyAcceptedItems_Sticky[] =
|
||||
{
|
||||
ITEM_ENERGY_ROOT,
|
||||
ITEM_FULL_RESTORE,
|
||||
ITEM_MAX_POTION,
|
||||
ITEM_DIRE_HIT,
|
||||
ITEM_X_ACCURACY,
|
||||
ITEM_GUARD_SPEC,
|
||||
ITEM_WATMEL_BERRY,
|
||||
ITEM_LEFTOVERS,
|
||||
ITEM_TINY_MUSHROOM,
|
||||
ITEM_HEART_SCALE,
|
||||
ITEM_NONE
|
||||
};
|
||||
|
||||
static const u16 sFavorLadyAcceptedItems_Pointy[] =
|
||||
{
|
||||
ITEM_QUICK_CLAW,
|
||||
ITEM_POISON_BARB,
|
||||
ITEM_SHARP_BEAK,
|
||||
ITEM_DRAGON_FANG,
|
||||
ITEM_TAMATO_BERRY,
|
||||
ITEM_DURIN_BERRY,
|
||||
ITEM_PETAYA_BERRY,
|
||||
ITEM_SALAC_BERRY,
|
||||
ITEM_STARDUST,
|
||||
ITEM_STAR_PIECE,
|
||||
ITEM_NONE
|
||||
};
|
||||
|
||||
static const u16 *const sFavorLadyAcceptedItemLists[] =
|
||||
{
|
||||
sFavorLadyAcceptedItems_Slippery,
|
||||
sFavorLadyAcceptedItems_Roundish,
|
||||
sFavorLadyAcceptedItems_Whamish,
|
||||
sFavorLadyAcceptedItems_Shiny,
|
||||
sFavorLadyAcceptedItems_Sticky,
|
||||
sFavorLadyAcceptedItems_Pointy
|
||||
};
|
||||
|
||||
static const u16 sFavorLadyPrizes[] =
|
||||
{
|
||||
ITEM_LUXURY_BALL,
|
||||
ITEM_NUGGET,
|
||||
ITEM_PROTEIN,
|
||||
ITEM_HEART_SCALE,
|
||||
ITEM_RARE_CANDY,
|
||||
ITEM_PP_MAX
|
||||
};
|
||||
|
||||
|
||||
static const u8 *const sContestLadyMonNames[] =
|
||||
{
|
||||
gText_ContestLady_Handsome,
|
||||
gText_ContestLady_Vinny,
|
||||
gText_ContestLady_Moreme,
|
||||
gText_ContestLady_Ironhard,
|
||||
gText_ContestLady_Muscle
|
||||
};
|
||||
|
||||
static const u8 *const sContestLadyCategoryNames[] =
|
||||
{
|
||||
gText_ContestLady_Coolness,
|
||||
gText_ContestLady_Beauty,
|
||||
gText_ContestLady_Cuteness,
|
||||
gText_ContestLady_Smartness,
|
||||
gText_ContestLady_Toughness
|
||||
};
|
||||
|
||||
static const u8 *const sContestNames[] =
|
||||
{
|
||||
gText_CoolnessContest,
|
||||
gText_BeautyContest,
|
||||
gText_CutenessContest,
|
||||
gText_SmartnessContest,
|
||||
gText_ToughnessContest
|
||||
};
|
||||
|
||||
static const u16 sContestLadyMonSpecies[] =
|
||||
{
|
||||
SPECIES_ZIGZAGOON,
|
||||
SPECIES_SKITTY,
|
||||
SPECIES_POOCHYENA,
|
||||
SPECIES_KECLEON,
|
||||
SPECIES_PIKACHU
|
||||
};
|
||||
+2
-2
@@ -835,7 +835,7 @@ void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation)
|
||||
u8 metLocation;
|
||||
u8 isEgg;
|
||||
|
||||
CreateMon(mon, species, EGG_HATCH_LEVEL, 0x20, FALSE, 0, FALSE, 0);
|
||||
CreateMon(mon, species, EGG_HATCH_LEVEL, 0x20, FALSE, 0, OT_ID_PLAYER_ID, 0);
|
||||
metLevel = 0;
|
||||
ball = ITEM_POKE_BALL;
|
||||
language = LANGUAGE_JAPANESE;
|
||||
@@ -862,7 +862,7 @@ static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *
|
||||
u8 language;
|
||||
|
||||
personality = daycare->offspringPersonality;
|
||||
CreateMon(mon, species, EGG_HATCH_LEVEL, 0x20, TRUE, personality, FALSE, 0);
|
||||
CreateMon(mon, species, EGG_HATCH_LEVEL, 0x20, TRUE, personality, OT_ID_PLAYER_ID, 0);
|
||||
metLevel = 0;
|
||||
ball = ITEM_POKE_BALL;
|
||||
language = LANGUAGE_JAPANESE;
|
||||
|
||||
+1
-1
@@ -127,7 +127,7 @@ static void Task_DiplomaFadeOut(u8 taskId)
|
||||
|
||||
static void DisplayDiplomaText(void)
|
||||
{
|
||||
if (sub_80C0944())
|
||||
if (HasAllMons())
|
||||
{
|
||||
SetGpuReg(REG_OFFSET_BG1HOFS, DISPCNT_BG0_ON);
|
||||
StringCopy(gStringVar1, gText_DexNational);
|
||||
|
||||
+16
-14
@@ -30,6 +30,7 @@
|
||||
#include "constants/easy_chat.h"
|
||||
#include "constants/event_objects.h"
|
||||
#include "constants/flags.h"
|
||||
#include "constants/lilycove_lady.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/rgb.h"
|
||||
@@ -240,6 +241,7 @@ struct Unk8597530
|
||||
MainCallback callback;
|
||||
};
|
||||
|
||||
// Lilycove Quiz Lady
|
||||
static const struct Unk8597530 sUnknown_08597530[] = {
|
||||
{
|
||||
.word = 26,
|
||||
@@ -1305,15 +1307,15 @@ void ShowEasyChatScreen(void)
|
||||
displayedPersonType = EASY_CHAT_PERSON_BOY;
|
||||
break;
|
||||
case EASY_CHAT_TYPE_QUIZ_ANSWER:
|
||||
words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016;
|
||||
words = &gSaveBlock1Ptr->lilycoveLady.quiz.playerAnswer;
|
||||
break;
|
||||
case EASY_CHAT_TYPE_QUIZ_QUESTION:
|
||||
return;
|
||||
case EASY_CHAT_TYPE_QUIZ_SET_QUESTION:
|
||||
words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_002;
|
||||
words = gSaveBlock1Ptr->lilycoveLady.quiz.question;
|
||||
break;
|
||||
case EASY_CHAT_TYPE_QUIZ_SET_ANSWER:
|
||||
words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014;
|
||||
words = &gSaveBlock1Ptr->lilycoveLady.quiz.correctAnswer;
|
||||
break;
|
||||
case EASY_CHAT_TYPE_APPRENTICE:
|
||||
words = gSaveBlock2Ptr->apprentices[0].easyChatWords;
|
||||
@@ -1329,7 +1331,7 @@ void ShowEasyChatScreen(void)
|
||||
DoEasyChatScreen(gSpecialVar_0x8004, words, CB2_ReturnToFieldContinueScript, displayedPersonType);
|
||||
}
|
||||
|
||||
static void sub_811A7E4(void)
|
||||
static void CB2_QuizLadyQuestion(void)
|
||||
{
|
||||
LilycoveLady *lilycoveLady;
|
||||
|
||||
@@ -1343,7 +1345,7 @@ static void sub_811A7E4(void)
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
lilycoveLady = &gSaveBlock1Ptr->lilycoveLady;
|
||||
lilycoveLady->quiz.unk_016 = -1;
|
||||
lilycoveLady->quiz.playerAnswer = -1;
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
DoQuizQuestionEasyChatScreen();
|
||||
}
|
||||
@@ -1352,9 +1354,9 @@ static void sub_811A7E4(void)
|
||||
gMain.state ++;
|
||||
}
|
||||
|
||||
void sub_811A858(void)
|
||||
void QuizLadyShowQuizQuestion(void)
|
||||
{
|
||||
SetMainCallback2(sub_811A7E4);
|
||||
SetMainCallback2(CB2_QuizLadyQuestion);
|
||||
}
|
||||
|
||||
static int sub_811A868(u16 word)
|
||||
@@ -1387,7 +1389,7 @@ static void DoQuizAnswerEasyChatScreen(void)
|
||||
{
|
||||
DoEasyChatScreen(
|
||||
EASY_CHAT_TYPE_QUIZ_ANSWER,
|
||||
&gSaveBlock1Ptr->lilycoveLady.quiz.unk_016,
|
||||
&gSaveBlock1Ptr->lilycoveLady.quiz.playerAnswer,
|
||||
CB2_ReturnToFieldContinueScript,
|
||||
EASY_CHAT_PERSON_DISPLAY_NONE);
|
||||
}
|
||||
@@ -1395,7 +1397,7 @@ static void DoQuizAnswerEasyChatScreen(void)
|
||||
static void DoQuizQuestionEasyChatScreen(void)
|
||||
{
|
||||
DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_QUESTION,
|
||||
gSaveBlock1Ptr->lilycoveLady.quiz.unk_002,
|
||||
gSaveBlock1Ptr->lilycoveLady.quiz.question,
|
||||
CB2_ReturnToFieldContinueScript,
|
||||
EASY_CHAT_PERSON_DISPLAY_NONE);
|
||||
}
|
||||
@@ -1403,7 +1405,7 @@ static void DoQuizQuestionEasyChatScreen(void)
|
||||
static void DoQuizSetAnswerEasyChatScreen(void)
|
||||
{
|
||||
DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_SET_ANSWER,
|
||||
&gSaveBlock1Ptr->lilycoveLady.quiz.unk_014,
|
||||
&gSaveBlock1Ptr->lilycoveLady.quiz.correctAnswer,
|
||||
CB2_ReturnToFieldContinueScript,
|
||||
EASY_CHAT_PERSON_DISPLAY_NONE);
|
||||
}
|
||||
@@ -1411,7 +1413,7 @@ static void DoQuizSetAnswerEasyChatScreen(void)
|
||||
static void DoQuizSetQuestionEasyChatScreen(void)
|
||||
{
|
||||
DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_SET_QUESTION,
|
||||
gSaveBlock1Ptr->lilycoveLady.quiz.unk_002,
|
||||
gSaveBlock1Ptr->lilycoveLady.quiz.question,
|
||||
CB2_ReturnToFieldContinueScript,
|
||||
EASY_CHAT_PERSON_DISPLAY_NONE);
|
||||
}
|
||||
@@ -2660,9 +2662,9 @@ static int sub_811BD64(void)
|
||||
return sub_811BCF4();
|
||||
|
||||
saveBlock1 = gSaveBlock1Ptr;
|
||||
for (i = 0; i < 9; i++)
|
||||
for (i = 0; i < QUIZ_QUESTION_LEN; i++)
|
||||
{
|
||||
if (saveBlock1->lilycoveLady.quiz.unk_002[i] != 0xFFFF)
|
||||
if (saveBlock1->lilycoveLady.quiz.question[i] != 0xFFFF)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2676,7 +2678,7 @@ static int sub_811BDB0(void)
|
||||
return sub_811BCF4();
|
||||
|
||||
quiz = &gSaveBlock1Ptr->lilycoveLady.quiz;
|
||||
return quiz->unk_014 == 0xFFFF ? 1 : 0;
|
||||
return quiz->correctAnswer == 0xFFFF ? 1 : 0;
|
||||
}
|
||||
|
||||
static void sub_811BDF0(u8 *arg0)
|
||||
|
||||
+1
-1
@@ -322,7 +322,7 @@ static void CreatedHatchedMon(struct Pokemon *egg, struct Pokemon *temp)
|
||||
pokerus = GetMonData(egg, MON_DATA_POKERUS);
|
||||
obedience = GetMonData(egg, MON_DATA_OBEDIENCE);
|
||||
|
||||
CreateMon(temp, species, EGG_HATCH_LEVEL, 32, TRUE, personality, 0, 0);
|
||||
CreateMon(temp, species, EGG_HATCH_LEVEL, 32, TRUE, personality, OT_ID_PLAYER_ID, 0);
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
|
||||
+2
-2
@@ -667,9 +667,9 @@ static void sub_810A75C(struct Sprite *sprite)
|
||||
sprite->oam.tileNum += gBattleAnimArgs[3] * 4;
|
||||
|
||||
if (gBattleAnimArgs[3] == 1)
|
||||
sprite->oam.matrixNum = 8;
|
||||
sprite->oam.matrixNum = ST_OAM_HFLIP;
|
||||
else if (gBattleAnimArgs[3] == 2)
|
||||
sprite->oam.matrixNum = 16;
|
||||
sprite->oam.matrixNum = ST_OAM_VFLIP;
|
||||
|
||||
sprite->data[0] = gBattleAnimArgs[2];
|
||||
sprite->callback = WaitAnimForDuration;
|
||||
|
||||
@@ -1442,7 +1442,7 @@ void SetShoalItemFlag(u16 v0)
|
||||
void PutZigzagoonInPlayerParty(void)
|
||||
{
|
||||
u16 monData;
|
||||
CreateMon(&gPlayerParty[0], SPECIES_ZIGZAGOON, 7, 0x20, FALSE, 0, FALSE, 0);
|
||||
CreateMon(&gPlayerParty[0], SPECIES_ZIGZAGOON, 7, 0x20, FALSE, 0, OT_ID_PLAYER_ID, 0);
|
||||
monData = TRUE;
|
||||
SetMonData(&gPlayerParty[0], MON_DATA_ABILITY_NUM, &monData);
|
||||
monData = MOVE_TACKLE;
|
||||
|
||||
+2
-2
@@ -912,9 +912,9 @@ void sub_810D874(struct Sprite *sprite)
|
||||
}
|
||||
|
||||
if (IsContest())
|
||||
sprite->oam.matrixNum |= 0x8;
|
||||
sprite->oam.matrixNum |= ST_OAM_HFLIP;
|
||||
else if (GetBattlerSide(battler) == B_SIDE_PLAYER)
|
||||
sprite->oam.matrixNum |= 0x18;
|
||||
sprite->oam.matrixNum |= (ST_OAM_HFLIP | ST_OAM_VFLIP);
|
||||
|
||||
sprite->data[0] = 16;
|
||||
sprite->data[1] = sprite->pos1.x;
|
||||
|
||||
+1
-1
@@ -1800,7 +1800,7 @@ void sub_810EEF8(struct Sprite *sprite)
|
||||
sprite->data[2] = gBattleAnimArgs[0];
|
||||
|
||||
if (sprite->data[2])
|
||||
sprite->oam.matrixNum = 8;
|
||||
sprite->oam.matrixNum = ST_OAM_HFLIP;
|
||||
|
||||
if (gBattleAnimArgs[1] == 0)
|
||||
{
|
||||
|
||||
+1
-1
@@ -2503,7 +2503,7 @@ void CreateFrontierBrainPokemon(void)
|
||||
monLevel,
|
||||
sFrontierBrainsMons[facility][symbol][i].fixedIV,
|
||||
TRUE, j,
|
||||
TRUE, FRONTIER_BRAIN_OTID);
|
||||
OT_ID_PRESET, FRONTIER_BRAIN_OTID);
|
||||
SetMonData(&gEnemyParty[monPartyId], MON_DATA_HELD_ITEM, &sFrontierBrainsMons[facility][symbol][i].heldItem);
|
||||
for (j = 0; j < NUM_STATS; j++)
|
||||
SetMonData(&gEnemyParty[monPartyId], MON_DATA_HP_EV + j, &sFrontierBrainsMons[facility][symbol][i].evs[j]);
|
||||
|
||||
+1
-1
@@ -1039,7 +1039,7 @@ static void sub_81129F0(struct Sprite *sprite)
|
||||
{
|
||||
xDelta = 24;
|
||||
xDelta2 = -2;
|
||||
sprite->oam.matrixNum = 8;
|
||||
sprite->oam.matrixNum = ST_OAM_HFLIP;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+1
-1
@@ -755,7 +755,7 @@ static void Task_Hof_HandleExit(u8 taskId)
|
||||
|
||||
static void SetCallback2AfterHallOfFameDisplay(void)
|
||||
{
|
||||
SetMainCallback2(sub_8175620);
|
||||
SetMainCallback2(CB2_StartCreditsSequence);
|
||||
}
|
||||
|
||||
#undef tDontSaveData
|
||||
|
||||
+12
-12
@@ -118,9 +118,9 @@ void sub_81AD9C0(u8);
|
||||
void sub_81ADB14(u8);
|
||||
void sub_81ADA7C(u8);
|
||||
void sub_81ADC0C(u8);
|
||||
void bag_menu_leave_maybe_3(void);
|
||||
void bag_menu_leave_maybe_2(void);
|
||||
void bag_menu_leave_maybe(void);
|
||||
void CB2_FavorLadyExitBagMenu(void);
|
||||
void CB2_QuizLadyExitBagMenu(void);
|
||||
void sub_81ABA6C(void);
|
||||
static void SetPocketListPositions(void);
|
||||
void sub_81ABAE0(void);
|
||||
@@ -493,20 +493,20 @@ void sub_81AAC14(void)
|
||||
|
||||
void sub_81AAC28(void)
|
||||
{
|
||||
GoToBagMenu(RETURN_LOCATION_FIELD_6, POCKETS_COUNT, bag_menu_leave_maybe_3);
|
||||
GoToBagMenu(RETURN_LOCATION_FIELD_6, POCKETS_COUNT, bag_menu_leave_maybe);
|
||||
gSpecialVar_0x8005 = 0;
|
||||
gSpecialVar_Result = 0;
|
||||
}
|
||||
|
||||
void sub_81AAC50(void)
|
||||
void FavorLadyOpenBagMenu(void)
|
||||
{
|
||||
GoToBagMenu(RETURN_LOCATION_FIELD_4, POCKETS_COUNT, bag_menu_leave_maybe_2);
|
||||
GoToBagMenu(RETURN_LOCATION_FIELD_4, POCKETS_COUNT, CB2_FavorLadyExitBagMenu);
|
||||
gSpecialVar_Result = 0;
|
||||
}
|
||||
|
||||
void sub_81AAC70(void)
|
||||
void QuizLadyOpenBagMenu(void)
|
||||
{
|
||||
GoToBagMenu(RETURN_LOCATION_FIELD_5, POCKETS_COUNT, bag_menu_leave_maybe);
|
||||
GoToBagMenu(RETURN_LOCATION_FIELD_5, POCKETS_COUNT, CB2_QuizLadyExitBagMenu);
|
||||
gSpecialVar_Result = 0;
|
||||
}
|
||||
|
||||
@@ -2202,7 +2202,7 @@ void unknown_ItemMenu_Show(u8 taskId)
|
||||
unknown_ItemMenu_Confirm(taskId);
|
||||
}
|
||||
|
||||
void bag_menu_leave_maybe_3(void)
|
||||
void bag_menu_leave_maybe(void)
|
||||
{
|
||||
gFieldCallback = Apprentice_EnableBothScriptContexts;
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
@@ -2216,9 +2216,9 @@ void unknown_ItemMenu_Give2(u8 taskId)
|
||||
unknown_ItemMenu_Confirm(taskId);
|
||||
}
|
||||
|
||||
void bag_menu_leave_maybe_2(void)
|
||||
void CB2_FavorLadyExitBagMenu(void)
|
||||
{
|
||||
gFieldCallback = sub_818DEF4;
|
||||
gFieldCallback = FieldCallback_FavorLadyEnableScriptContexts;
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
}
|
||||
|
||||
@@ -2229,9 +2229,9 @@ void unknown_ItemMenu_Confirm2(u8 taskId)
|
||||
unknown_ItemMenu_Confirm(taskId);
|
||||
}
|
||||
|
||||
void bag_menu_leave_maybe(void)
|
||||
void CB2_QuizLadyExitBagMenu(void)
|
||||
{
|
||||
gFieldCallback = sub_818E564;
|
||||
gFieldCallback = FieldCallback_QuizLadyEnableScriptContexts;
|
||||
SetMainCallback2(CB2_ReturnToField);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start ArcTan2
|
||||
ArcTan2: @ 82E7078
|
||||
swi 0xA
|
||||
bx lr
|
||||
thumb_func_end ArcTan2
|
||||
|
||||
thumb_func_start BgAffineSet
|
||||
@ void BgAffineSet(BgAffineSet_src_data *src, BgAffineSet_dest_data *dest, int entry_count)
|
||||
BgAffineSet: @ 82E707C
|
||||
swi 0xE
|
||||
bx lr
|
||||
thumb_func_end BgAffineSet
|
||||
|
||||
thumb_func_start CpuFastSet
|
||||
@ void CpuFastSet(void *src, void *dest, unsigned int mode)
|
||||
CpuFastSet: @ 82E7080
|
||||
swi 0xC
|
||||
bx lr
|
||||
thumb_func_end CpuFastSet
|
||||
|
||||
thumb_func_start CpuSet
|
||||
@ void CpuSet(void *src, void *dest, unsigned int mode)
|
||||
CpuSet: @ 82E7084
|
||||
swi 0xB
|
||||
bx lr
|
||||
thumb_func_end CpuSet
|
||||
|
||||
thumb_func_start Div
|
||||
Div: @ 82E7088
|
||||
swi 0x6
|
||||
bx lr
|
||||
thumb_func_end Div
|
||||
|
||||
thumb_func_start LZ77UnCompVram
|
||||
@ void LZ77UnCompVram(void *src, void *dest)
|
||||
LZ77UnCompVram: @ 82E708C
|
||||
swi 0x12
|
||||
bx lr
|
||||
thumb_func_end LZ77UnCompVram
|
||||
|
||||
thumb_func_start LZ77UnCompWram
|
||||
@ void LZ77UnCompWram(void *src, void *dest)
|
||||
LZ77UnCompWram: @ 82E7090
|
||||
swi 0x11
|
||||
bx lr
|
||||
thumb_func_end LZ77UnCompWram
|
||||
|
||||
thumb_func_start MultiBoot
|
||||
@ s32 MultiBoot(struct MultiBootParam *mp)
|
||||
MultiBoot: @ 82E7094
|
||||
movs r1, 0x1
|
||||
swi 0x25
|
||||
bx lr
|
||||
thumb_func_end MultiBoot
|
||||
|
||||
thumb_func_start ObjAffineSet
|
||||
ObjAffineSet: @ 82E709C
|
||||
swi 0xF
|
||||
bx lr
|
||||
thumb_func_end ObjAffineSet
|
||||
|
||||
thumb_func_start RLUnCompVram
|
||||
RLUnCompVram: @ 82E70A0
|
||||
swi 0x15
|
||||
bx lr
|
||||
thumb_func_end RLUnCompVram
|
||||
|
||||
thumb_func_start RLUnCompWram
|
||||
RLUnCompWram: @ 82E70A4
|
||||
swi 0x14
|
||||
bx lr
|
||||
thumb_func_end RLUnCompWram
|
||||
|
||||
thumb_func_start RegisterRamReset
|
||||
@ void RegisterRamReset(int ResetFlags)
|
||||
RegisterRamReset: @ 82E70A8
|
||||
swi 0x1
|
||||
bx lr
|
||||
thumb_func_end RegisterRamReset
|
||||
|
||||
thumb_func_start SoftReset
|
||||
@ void SoftReset()
|
||||
SoftReset: @ 82E70AC
|
||||
ldr r3, =REG_IME
|
||||
movs r2, 0
|
||||
strb r2, [r3]
|
||||
ldr r1, =0x3007F00
|
||||
mov sp, r1
|
||||
swi 0x1
|
||||
swi 0
|
||||
.pool
|
||||
thumb_func_end SoftReset
|
||||
|
||||
thumb_func_start Sqrt
|
||||
@ s16 Sqrt(int)
|
||||
Sqrt: @ 82E70C4
|
||||
swi 0x8
|
||||
bx lr
|
||||
thumb_func_end Sqrt
|
||||
|
||||
thumb_func_start VBlankIntrWait
|
||||
@ void VBlankIntrWait()
|
||||
VBlankIntrWait: @ 82E70C8
|
||||
movs r2, 0
|
||||
swi 0x5
|
||||
bx lr
|
||||
thumb_func_end VBlankIntrWait
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
@@ -0,0 +1,550 @@
|
||||
@ This library can be used to download and execute a multi-boot image from
|
||||
@ a GameCube using the JOY Bus protocol over the link cable.
|
||||
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.equiv GCMB_STRUCT_BASE_DEST_PTR, 0x20
|
||||
.equiv GCMB_STRUCT_CUR_DEST_PTR, 0x24
|
||||
.equiv GCMB_STRUCT_SERIAL_INTR_HANDLER, 0x28
|
||||
|
||||
.equiv ROM_HEADER_NINTENDO_LOGO_OFFSET, 0x4
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start GameCubeMultiBoot_Hash
|
||||
GameCubeMultiBoot_Hash: @ 82DED70
|
||||
push {r4,lr}
|
||||
ldr r4, pool_HashVal
|
||||
eors r3, r1
|
||||
movs r2, 0x20
|
||||
|
||||
GameCubeMultiBoot_Hash_Loop:
|
||||
lsrs r3, 1
|
||||
bcc GameCubeMultiBoot_Hash_SkipEor
|
||||
|
||||
eors r3, r4
|
||||
|
||||
GameCubeMultiBoot_Hash_SkipEor:
|
||||
subs r2, 0x1
|
||||
bne GameCubeMultiBoot_Hash_Loop
|
||||
|
||||
pop {r4,pc}
|
||||
thumb_func_end GameCubeMultiBoot_Hash
|
||||
|
||||
thumb_func_start GameCubeMultiBoot_Main
|
||||
@ void GameCubeMultiBoot_Main(struct GameCubeMultiBoot *mb);
|
||||
GameCubeMultiBoot_Main: @ 82DED84
|
||||
ldr r1, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER]
|
||||
cmp r1, 0
|
||||
beq _082DEDAA
|
||||
ldrb r1, [r0, 0x1]
|
||||
adds r1, 0x1
|
||||
strb r1, [r0, 0x1]
|
||||
ldrb r1, [r0, 0x2]
|
||||
cmp r1, 0x2
|
||||
beq _082DEDF4
|
||||
ldr r3, pool_InterruptRegs
|
||||
ldrh r2, [r3, OFFSET_REG_IME - 0x200]
|
||||
movs r1, 0
|
||||
strh r1, [r3, OFFSET_REG_IME - 0x200]
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0xA
|
||||
bgt _082DEDA8
|
||||
adds r1, 0x1
|
||||
strb r1, [r0]
|
||||
_082DEDA8:
|
||||
strh r2, [r3, OFFSET_REG_IME - 0x200]
|
||||
_082DEDAA:
|
||||
bcs GameCubeMultiBoot_Init
|
||||
ldrb r1, [r0, 0x2]
|
||||
cmp r1, 0
|
||||
bne _082DEDF6
|
||||
ldr r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
|
||||
ldr r2, [r0, GCMB_STRUCT_BASE_DEST_PTR]
|
||||
subs r1, r2
|
||||
beq _082DEE76
|
||||
cmp r1, 0xA0
|
||||
bcc _082DEE76
|
||||
push {r4-r6}
|
||||
movs r1, 0x98
|
||||
adds r2, ROM_HEADER_NINTENDO_LOGO_OFFSET
|
||||
ldr r4, pool_NintendoLogo
|
||||
_082DEDC6:
|
||||
ldm r2!, {r5}
|
||||
ldm r4!, {r6}
|
||||
cmp r5, r6
|
||||
bne _082DEDDC
|
||||
subs r1, 0x4
|
||||
bne _082DEDC6
|
||||
ldm r2!, {r5}
|
||||
ldm r4!, {r6}
|
||||
eors r5, r6
|
||||
lsrs r5, 8
|
||||
str r2, [r0, GCMB_STRUCT_BASE_DEST_PTR]
|
||||
_082DEDDC:
|
||||
pop {r4-r6}
|
||||
bne GameCubeMultiBoot_Init
|
||||
movs r1, 0x1
|
||||
strb r1, [r0, 0x2]
|
||||
ldr r1, [r0, 0x4]
|
||||
ldr r2, [r0, 0x8]
|
||||
eors r1, r2
|
||||
str r1, [r0, 0x18]
|
||||
ldr r2, pool_Kawa
|
||||
muls r1, r2
|
||||
adds r1, 0x1
|
||||
str r1, [r0, 0x14]
|
||||
_082DEDF4:
|
||||
bx lr
|
||||
_082DEDF6:
|
||||
ldr r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
|
||||
mov r12, r1
|
||||
ldr r3, [r0, 0x18]
|
||||
push {r4-r7}
|
||||
ldr r4, [r0, GCMB_STRUCT_BASE_DEST_PTR]
|
||||
ldr r5, pool_Kawa
|
||||
ldr r6, [r0, 0x14]
|
||||
ldr r7, pool_HashVal
|
||||
_082DEE06:
|
||||
cmp r4, r12
|
||||
bcs _082DEE26
|
||||
ldr r1, [r4]
|
||||
eors r1, r6
|
||||
adds r1, r3
|
||||
stm r4!, {r1}
|
||||
eors r3, r1
|
||||
movs r2, 0x20
|
||||
_082DEE16:
|
||||
lsrs r3, 1
|
||||
bcc _082DEE1C
|
||||
eors r3, r7
|
||||
_082DEE1C:
|
||||
subs r2, 0x1
|
||||
bne _082DEE16
|
||||
muls r6, r5
|
||||
adds r6, 0x1
|
||||
b _082DEE06
|
||||
_082DEE26:
|
||||
str r4, [r0, GCMB_STRUCT_BASE_DEST_PTR]
|
||||
str r6, [r0, 0x14]
|
||||
pop {r4-r7}
|
||||
str r3, [r0, 0x18]
|
||||
ldrh r1, [r0, 0x12]
|
||||
cmp r1, 0
|
||||
bne _082DEE76
|
||||
ldr r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
|
||||
ldr r2, [r0, GCMB_STRUCT_BASE_DEST_PTR]
|
||||
cmp r1, r2
|
||||
bne _082DEE76
|
||||
ldr r1, [r0, 0xC]
|
||||
cmp r1, 0
|
||||
beq _082DEE60
|
||||
ldrh r1, [r0, 0x10]
|
||||
cmp r1, 0
|
||||
beq _082DEDF4
|
||||
mov r12, lr
|
||||
movs r1, 0xBB
|
||||
ldr r3, [r0, 0xC]
|
||||
bl GameCubeMultiBoot_Hash
|
||||
ldrh r1, [r0, 0x10]
|
||||
mov lr, r12
|
||||
subs r1, r3
|
||||
bne GameCubeMultiBoot_Init
|
||||
movs r1, 0x2
|
||||
strb r1, [r0, 0x2]
|
||||
bx lr
|
||||
_082DEE60:
|
||||
mov r12, lr
|
||||
ldrb r1, [r0, 0x3]
|
||||
lsls r1, 24
|
||||
subs r1, 0x1
|
||||
str r1, [r0, 0xC]
|
||||
bl GameCubeMultiBoot_Hash
|
||||
lsls r3, 8
|
||||
adds r3, 0xFF
|
||||
str r3, [r0, 0x1C]
|
||||
bx r12
|
||||
_082DEE76:
|
||||
bx lr
|
||||
thumb_func_end GameCubeMultiBoot_Main
|
||||
|
||||
.align 2, 0
|
||||
|
||||
pool_HashVal: .4byte 0xa1c1
|
||||
|
||||
pool_Kawa: .ascii "Kawa" @ name of BIOS developer
|
||||
|
||||
pool_NintendoLogo: .4byte RomHeaderNintendoLogo
|
||||
|
||||
thumb_func_start GameCubeMultiBoot_ExecuteProgram
|
||||
@ void GameCubeMultiBoot_ExecuteProgram(struct GameCubeMultiBoot *mb);
|
||||
GameCubeMultiBoot_ExecuteProgram: @ 82DEE84
|
||||
ldrb r1, [r0, 0x2]
|
||||
cmp r1, 0x2
|
||||
bne GameCubeMultiBoot_ExecuteProgram_Fail
|
||||
ldr r3, pool_InterruptRegs
|
||||
movs r1, 0
|
||||
strh r1, [r3, OFFSET_REG_IME - 0x200]
|
||||
ldr r1, pool_MultiBootLoadAddr
|
||||
adds r1, 0xC0
|
||||
bx r1
|
||||
GameCubeMultiBoot_ExecuteProgram_Fail:
|
||||
bx lr
|
||||
thumb_func_end GameCubeMultiBoot_ExecuteProgram
|
||||
|
||||
thumb_func_start GameCubeMultiBoot_Init
|
||||
@ void GameCubeMultiBoot_Init(struct GameCubeMultiBoot *mb);
|
||||
GameCubeMultiBoot_Init: @ 82DEE98
|
||||
ldr r3, pool_InterruptRegs
|
||||
|
||||
@ Save IME register.
|
||||
ldrh r2, [r3, OFFSET_REG_IME - 0x200]
|
||||
|
||||
@ Disable interrupts.
|
||||
movs r1, 0
|
||||
strh r1, [r3, OFFSET_REG_IME - 0x200]
|
||||
|
||||
@ Set the handler to the "Stop" routine.
|
||||
@ Unless the first command that is received is a device reset command, the
|
||||
@ "Stop" routine will be executed and no further commands will be processed.
|
||||
adr r3, GcMbIntrHandler_Stop
|
||||
str r3, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER]
|
||||
|
||||
ldrb r3, [r0, 0x3]
|
||||
push {r3}
|
||||
ldrb r3, [r0, 0x1]
|
||||
push {r0,r3}
|
||||
|
||||
adds r3, r0, 0
|
||||
adds r3, GCMB_STRUCT_BASE_DEST_PTR
|
||||
|
||||
@ clear all but the last 3 fields of the struct
|
||||
GameCubeMultiBoot_Init_ClearStructLoop:
|
||||
stm r0!, {r1}
|
||||
cmp r0, r3
|
||||
blo GameCubeMultiBoot_Init_ClearStructLoop
|
||||
|
||||
pop {r0,r3}
|
||||
lsrs r3, 1
|
||||
strb r3, [r0, 0x3]
|
||||
pop {r3}
|
||||
strb r3, [r0, 0x1]
|
||||
|
||||
ldr r3, pool_SerialRegs
|
||||
|
||||
@ Turn off JOY Bus mode.
|
||||
lsls r0, r3, 10
|
||||
strh r0, [r3, OFFSET_REG_RCNT - 0x120]
|
||||
|
||||
@ Turn on JOY Bus mode.
|
||||
movs r0, 0xC0
|
||||
lsls r0, 8
|
||||
strh r0, [r3, OFFSET_REG_RCNT - 0x120]
|
||||
|
||||
@ Init JOY Bus registers.
|
||||
movs r0, 0x47
|
||||
strh r0, [r3, OFFSET_REG_JOYCNT - 0x120]
|
||||
strh r1, [r3, OFFSET_REG_JOYSTAT - 0x120]
|
||||
|
||||
ldr r3, pool_InterruptRegs
|
||||
|
||||
@ Acknowledge serial interrupt.
|
||||
movs r0, INTR_FLAG_SERIAL
|
||||
strh r0, [r3, OFFSET_REG_IF - 0x200]
|
||||
|
||||
@ Enable serial interrupt.
|
||||
ldrh r1, [r3, OFFSET_REG_IE - 0x200]
|
||||
orrs r1, r0
|
||||
strh r1, [r3, OFFSET_REG_IE - 0x200]
|
||||
|
||||
@ Restore IME register.
|
||||
strh r2, [r3, OFFSET_REG_IME - 0x200]
|
||||
|
||||
bx lr
|
||||
thumb_func_end GameCubeMultiBoot_Init
|
||||
|
||||
non_word_aligned_thumb_func_start GameCubeMultiBoot_HandleSerialInterrupt
|
||||
@ void GameCubeMultiBoot_HandleSerialInterrupt(struct GameCubeMultiBoot *mb);
|
||||
GameCubeMultiBoot_HandleSerialInterrupt: @ 82DEEE2
|
||||
ldr r3, pool_SerialRegs
|
||||
|
||||
@ Acknowledge reset/receive/send flags.
|
||||
ldrh r1, [r3, OFFSET_REG_JOYCNT - 0x120]
|
||||
strh r1, [r3, OFFSET_REG_JOYCNT - 0x120]
|
||||
|
||||
movs r2, 0
|
||||
strb r2, [r0]
|
||||
|
||||
ldr r2, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER]
|
||||
cmp r2, 0
|
||||
beq GameCubeMultiBoot_HandleSerialInterruptDone
|
||||
|
||||
lsrs r1, 1 @ was a device reset command received?
|
||||
bcs GameCubeMultiBoot_BeginHandshake @ branch if so
|
||||
|
||||
mov pc, r2
|
||||
|
||||
.align 2, 0
|
||||
|
||||
@ Zero the status and the interrupt handler pointer.
|
||||
@ Commands from the GameCube will not be processed after this is executed
|
||||
@ unless GameCubeMultiBoot_Init() is called again.
|
||||
GcMbIntrHandler_Stop:
|
||||
movs r2, 0
|
||||
strh r2, [r3, OFFSET_REG_JOYSTAT - 0x120]
|
||||
|
||||
GameCubeMultiBoot_SetInterruptHandler:
|
||||
str r2, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER]
|
||||
|
||||
GameCubeMultiBoot_ReadVCount:
|
||||
ldr r3, pool_RegDispstat
|
||||
ldrh r1, [r3, OFFSET_REG_VCOUNT - OFFSET_REG_DISPSTAT]
|
||||
strb r1, [r0, 0x3]
|
||||
|
||||
GameCubeMultiBoot_HandleSerialInterruptDone:
|
||||
bx lr
|
||||
|
||||
GameCubeMultiBoot_BeginHandshake:
|
||||
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
|
||||
ldr r1, pool_RubyUSAGameCode
|
||||
str r1, [r3, OFFSET_REG_JOY_TRANS - 0x120]
|
||||
movs r1, 0x10
|
||||
strh r1, [r3, OFFSET_REG_JOYSTAT - 0x120]
|
||||
ldrb r1, [r0, 0x3]
|
||||
strb r1, [r0, 0x9]
|
||||
ldrb r1, [r0, 0x2]
|
||||
cmp r1, 0
|
||||
bne GcMbIntrHandler_Stop
|
||||
ldr r1, pool_MultiBootLoadAddr
|
||||
str r1, [r0, GCMB_STRUCT_BASE_DEST_PTR]
|
||||
str r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
|
||||
adr r2, GcMbIntrHandler_CheckGameCodeSent
|
||||
b GameCubeMultiBoot_SetInterruptHandler
|
||||
|
||||
.align 2, 0
|
||||
|
||||
GcMbIntrHandler_CheckGameCodeSent: @ 82DEF24
|
||||
lsls r1, 31
|
||||
bcc GcMbIntrHandler_Stop @ stop if send failed
|
||||
bmi GameCubeMultiBoot_CheckHandshakeResponse @ branch if receive is complete
|
||||
|
||||
@ If the response hasn't been fully received yet,
|
||||
@ check again upon the next interrupt.
|
||||
adr r2, GcMbIntrHandler_CheckHandshakeResponse
|
||||
b GameCubeMultiBoot_SetInterruptHandler
|
||||
|
||||
.align 2, 0
|
||||
|
||||
GcMbIntrHandler_CheckHandshakeResponse: @ 82DEF30
|
||||
lsrs r1, 1 @ is receive complete?
|
||||
bcc GcMbIntrHandler_Stop @ stop if not
|
||||
|
||||
GameCubeMultiBoot_CheckHandshakeResponse:
|
||||
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
|
||||
ldr r2, pool_RubyUSAGameCode
|
||||
cmp r1, r2
|
||||
bne GcMbIntrHandler_Stop @ stop if the GameCube didn't reply with the same game code
|
||||
ldrb r1, [r0, 0x3]
|
||||
strb r1, [r0, 0xB]
|
||||
adr r2, GcMbIntrHandler_82DEF44
|
||||
b GameCubeMultiBoot_SetInterruptHandler
|
||||
|
||||
.align 2, 0
|
||||
|
||||
GcMbIntrHandler_82DEF44: @ 82DEF44
|
||||
lsrs r1, 1 @ is receive complete?
|
||||
bcc GcMbIntrHandler_Stop @ branch if not
|
||||
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
|
||||
lsrs r2, r1, 24
|
||||
cmp r2, 0xDD
|
||||
bne GcMbIntrHandler_Stop
|
||||
str r1, [r0, 0x4]
|
||||
ldrb r1, [r0, 0x1]
|
||||
strb r1, [r0, 0xA]
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
ldr r1, [r0, 0x8]
|
||||
lsrs r1, 8
|
||||
_082DEF5E:
|
||||
lsrs r1, 1
|
||||
adcs r2, r3
|
||||
cmp r1, 0
|
||||
bne _082DEF5E
|
||||
cmp r2, 0xE
|
||||
bgt _082DEF70
|
||||
cmp r2, 0x7
|
||||
bge _082DEF72
|
||||
movs r1, 0xFF
|
||||
_082DEF70:
|
||||
strb r1, [r0, 0xA]
|
||||
_082DEF72:
|
||||
ldr r1, [r0, 0x8]
|
||||
adds r1, 0xEE
|
||||
ldr r3, pool_SerialRegs
|
||||
str r1, [r3, OFFSET_REG_JOY_TRANS - 0x120]
|
||||
movs r1, 0x30
|
||||
strh r1, [r3, OFFSET_REG_JOYSTAT - 0x120]
|
||||
adr r2, GcMbIntrHandler_82DEF84
|
||||
b GameCubeMultiBoot_SetInterruptHandler
|
||||
|
||||
.align 2, 0
|
||||
|
||||
GcMbIntrHandler_82DEF84: @ 82DEF84
|
||||
lsls r1, 31
|
||||
bcc GcMbIntrHandler_Stop @ stop if send failed
|
||||
bmi _082DEF94 @ branch if receive is complete
|
||||
adr r2, GcMbIntrHandler_82DEF90
|
||||
b GameCubeMultiBoot_SetInterruptHandler
|
||||
|
||||
.align 2, 0
|
||||
|
||||
GcMbIntrHandler_82DEF90: @ 82DEF90
|
||||
lsrs r1, 1 @ is receive complete?
|
||||
bcc GcMbIntrHandler_Stop @ branch if not
|
||||
_082DEF94:
|
||||
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
|
||||
ldr r2, _082DF034
|
||||
cmp r1, r2
|
||||
bhs GcMbIntrHandler_Stop
|
||||
adds r1, 0x1
|
||||
adds r1, r1
|
||||
strh r1, [r0, 0x12]
|
||||
ldrb r1, [r0, 0x2]
|
||||
cmp r1, 0
|
||||
_082DEFA6:
|
||||
bne GcMbIntrHandler_Stop
|
||||
ldr r1, pool_MultiBootLoadAddr
|
||||
str r1, [r0, GCMB_STRUCT_BASE_DEST_PTR]
|
||||
str r1, [r0, GCMB_STRUCT_CUR_DEST_PTR]
|
||||
adr r2, GcMbIntrHandler_82DEFB4
|
||||
b GameCubeMultiBoot_SetInterruptHandler
|
||||
|
||||
.align 2, 0
|
||||
|
||||
GcMbIntrHandler_82DEFB4: @ 82DEFB4
|
||||
lsrs r1, 1 @ is receive complete?
|
||||
bcc GcMbIntrHandler_Stop @ branch if not
|
||||
ldr r2, [r0, GCMB_STRUCT_CUR_DEST_PTR]
|
||||
movs r1, 0x4
|
||||
ands r1, r2
|
||||
adds r1, 0x8
|
||||
lsls r1, 2
|
||||
strh r1, [r3, OFFSET_REG_JOYSTAT - 0x120]
|
||||
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
|
||||
stm r2!, {r1}
|
||||
str r2, [r0, GCMB_STRUCT_CUR_DEST_PTR]
|
||||
ldrh r1, [r0, 0x12]
|
||||
subs r1, 0x1
|
||||
strh r1, [r0, 0x12]
|
||||
bne GameCubeMultiBoot_ReadVCount
|
||||
|
||||
_082DEFD2:
|
||||
ldrb r1, [r0, 0x1]
|
||||
lsls r1, 8
|
||||
adds r1, 0xCC
|
||||
str r1, [r3, OFFSET_REG_JOY_TRANS - 0x120]
|
||||
adr r2, _082DEFE0
|
||||
b GameCubeMultiBoot_SetInterruptHandler
|
||||
|
||||
.align 2, 0
|
||||
|
||||
_082DEFE0:
|
||||
lsls r1, 31
|
||||
|
||||
_082DEFE2:
|
||||
bcc GcMbIntrHandler_Stop
|
||||
ldr r1, [r0, 0x1C]
|
||||
cmp r1, 0
|
||||
beq _082DEFD2
|
||||
str r1, [r3, OFFSET_REG_JOY_TRANS - 0x120]
|
||||
adr r2, GcMbIntrHandler_82DEFF0
|
||||
b GameCubeMultiBoot_SetInterruptHandler
|
||||
|
||||
.align 2, 0
|
||||
|
||||
GcMbIntrHandler_82DEFF0: @ 82DEFF0
|
||||
lsls r1, 31
|
||||
bcc _082DEFE2 @ branch if send failed
|
||||
bmi _082DF000 @ branch if receive is complete
|
||||
adr r2, GcMbIntrHandler_82DEFFC
|
||||
b GameCubeMultiBoot_SetInterruptHandler
|
||||
|
||||
.align 2, 0
|
||||
|
||||
GcMbIntrHandler_82DEFFC: @ 82DEFFC
|
||||
lsrs r1, 1 @ is receive complete?
|
||||
bcc _082DEFE2 @ branch if not
|
||||
|
||||
_082DF000:
|
||||
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
|
||||
lsrs r2, r1, 24
|
||||
cmp r2, 0xBB
|
||||
bne _082DEFA6
|
||||
strh r1, [r0, 0x10]
|
||||
adr r2, GcMbIntrHandler_82DF010
|
||||
b GameCubeMultiBoot_SetInterruptHandler
|
||||
|
||||
.align 2, 0
|
||||
|
||||
GcMbIntrHandler_82DF010: @ 82DF010
|
||||
b GcMbIntrHandler_Stop
|
||||
|
||||
thumb_func_end GameCubeMultiBoot_HandleSerialInterrupt
|
||||
|
||||
non_word_aligned_thumb_func_start GameCubeMultiBoot_Quit
|
||||
@ void GameCubeMultiBoot_Quit();
|
||||
GameCubeMultiBoot_Quit: @ 82DF012
|
||||
ldr r3, pool_InterruptRegs
|
||||
|
||||
@ Save IME register.
|
||||
ldrh r2, [r3, OFFSET_REG_IME - 0x200]
|
||||
|
||||
@ Disable interrupts.
|
||||
movs r1, 0
|
||||
strh r1, [r3, OFFSET_REG_IME - 0x200]
|
||||
|
||||
ldr r3, pool_SerialRegs
|
||||
|
||||
@ Acknowledge all JOYCNT flags.
|
||||
movs r0, 0x7
|
||||
strh r0, [r3, OFFSET_REG_JOYCNT - 0x120]
|
||||
|
||||
@ Turn off JOY Bus mode.
|
||||
lsls r0, r3, 10
|
||||
strh r0, [r3, OFFSET_REG_RCNT - 0x120] @ store 0x8000
|
||||
|
||||
ldr r3, pool_InterruptRegs
|
||||
|
||||
@ Acknowledge serial interrupt.
|
||||
movs r0, INTR_FLAG_SERIAL
|
||||
strh r0, [r3, OFFSET_REG_IF - 0x200]
|
||||
|
||||
@ Disable serial interrupt.
|
||||
ldrh r1, [r3, OFFSET_REG_IE - 0x200]
|
||||
bics r1, r0
|
||||
strh r1, [r3, OFFSET_REG_IE - 0x200]
|
||||
|
||||
@ Restore IME register.
|
||||
strh r2, [r3, OFFSET_REG_IME - 0x200]
|
||||
|
||||
bx lr
|
||||
thumb_func_end GameCubeMultiBoot_Quit
|
||||
|
||||
.align 2, 0
|
||||
|
||||
_082DF034: .4byte 0x4000
|
||||
|
||||
pool_InterruptRegs: .4byte REG_BASE + 0x200
|
||||
|
||||
pool_SerialRegs: .4byte REG_BASE + 0x120
|
||||
|
||||
pool_RegDispstat: .4byte REG_DISPSTAT
|
||||
|
||||
pool_RubyUSAGameCode: .ascii "AXVE"
|
||||
|
||||
pool_MultiBootLoadAddr: .4byte EWRAM_START
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
+374
-563
File diff suppressed because it is too large
Load Diff
+1934
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -198,7 +198,7 @@ void NewGameInitData(void)
|
||||
ScriptContext2_RunNewScript(EventScript_ResetAllMapFlags);
|
||||
ResetMiniGamesResults();
|
||||
copy_strings_to_sav1();
|
||||
SetLilycoveLady();
|
||||
InitLilycoveLady();
|
||||
ResetAllApprenticeData();
|
||||
ClearRankingHallRecords();
|
||||
InitMatchCallCounters();
|
||||
|
||||
+1
-1
@@ -3650,7 +3650,7 @@ static u8 sub_81B31B0(u8 a)
|
||||
|
||||
for (i = 0; i < gUnknown_0203CEC4->listSize; i++)
|
||||
{
|
||||
u8 unk = (gUnknown_0203CEC4->actions[i] > 18) ? 4 : 3;
|
||||
u8 unk = (gUnknown_0203CEC4->actions[i] >= MENU_FIELD_MOVES) ? 4 : 3;
|
||||
AddTextPrinterParameterized4(gUnknown_0203CEC4->windowId[0], 1, cursorDimension, (i * 16) + 1, fontAttribute, 0, sFontColorTable[unk], 0, sCursorOptions[gUnknown_0203CEC4->actions[i]].text);
|
||||
}
|
||||
|
||||
|
||||
+27
-27
@@ -4249,12 +4249,12 @@ u16 GetPokedexHeightWeight(u16 dexNum, u8 data)
|
||||
{
|
||||
switch (data)
|
||||
{
|
||||
case 0: // height
|
||||
return gPokedexEntries[dexNum].height;
|
||||
case 1: // weight
|
||||
return gPokedexEntries[dexNum].weight;
|
||||
default:
|
||||
return 1;
|
||||
case 0: // height
|
||||
return gPokedexEntries[dexNum].height;
|
||||
case 1: // weight
|
||||
return gPokedexEntries[dexNum].weight;
|
||||
default:
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4360,23 +4360,23 @@ u16 GetHoennPokedexCount(u8 caseID)
|
||||
return count;
|
||||
}
|
||||
|
||||
u16 sub_80C089C(u8 caseID)
|
||||
u16 GetKantoPokedexCount(u8 caseID)
|
||||
{
|
||||
u16 count = 0;
|
||||
u16 i;
|
||||
|
||||
for (i = 0; i < 151; i++)
|
||||
for (i = 0; i < KANTO_DEX_COUNT; i++)
|
||||
{
|
||||
switch (caseID)
|
||||
{
|
||||
case FLAG_GET_SEEN:
|
||||
if (GetSetPokedexFlag(i + 1, FLAG_GET_SEEN))
|
||||
count++;
|
||||
break;
|
||||
case FLAG_GET_CAUGHT:
|
||||
if (GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT))
|
||||
count++;
|
||||
break;
|
||||
case FLAG_GET_SEEN:
|
||||
if (GetSetPokedexFlag(i + 1, FLAG_GET_SEEN))
|
||||
count++;
|
||||
break;
|
||||
case FLAG_GET_CAUGHT:
|
||||
if (GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT))
|
||||
count++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return count;
|
||||
@@ -4386,7 +4386,7 @@ bool16 HasAllHoennMons(void)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
for (i = 0; i < 200; i++)
|
||||
for (i = 0; i < HOENN_DEX_COUNT - 2; i++)
|
||||
{
|
||||
if (!GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_CAUGHT))
|
||||
return FALSE;
|
||||
@@ -4394,11 +4394,11 @@ bool16 HasAllHoennMons(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_80C0918(void)
|
||||
bool8 HasAllKantoMons(void)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
for (i = 0; i < 150; i++)
|
||||
for (i = 0; i < KANTO_DEX_COUNT - 1; i++)
|
||||
{
|
||||
if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT))
|
||||
return FALSE;
|
||||
@@ -4406,26 +4406,26 @@ bool8 sub_80C0918(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u16 sub_80C0944(void)
|
||||
bool16 HasAllMons(void)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
for (i = 0; i < 150; i++)
|
||||
for (i = 0; i < NATIONAL_DEX_MEWTWO; i++)
|
||||
{
|
||||
if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT))
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
for (i = 151; i < 248; i++)
|
||||
for (i = NATIONAL_DEX_MEW; i < NATIONAL_DEX_TYRANITAR; i++)
|
||||
{
|
||||
if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT))
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
for (i = 251; i < 384; i++)
|
||||
for (i = NATIONAL_DEX_CELEBI; i < NATIONAL_DEX_RAYQUAZA; i++)
|
||||
{
|
||||
if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT))
|
||||
return 0;
|
||||
return FALSE;
|
||||
}
|
||||
return 1;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_80C09B0(u16 a)
|
||||
|
||||
+7
-7
@@ -2341,7 +2341,7 @@ void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedI
|
||||
u16 evAmount;
|
||||
u8 evsBits;
|
||||
|
||||
CreateMon(mon, species, level, fixedIV, 0, 0, 0, 0);
|
||||
CreateMon(mon, species, level, fixedIV, 0, 0, OT_ID_PLAYER_ID, 0);
|
||||
|
||||
evsBits = evSpread;
|
||||
|
||||
@@ -2373,7 +2373,7 @@ void CreateBattleTowerMon(struct Pokemon *mon, struct BattleTowerPokemon *src)
|
||||
u8 language;
|
||||
u8 value;
|
||||
|
||||
CreateMon(mon, src->species, src->level, 0, 1, src->personality, 1, src->otId);
|
||||
CreateMon(mon, src->species, src->level, 0, 1, src->personality, OT_ID_PRESET, src->otId);
|
||||
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
SetMonMoveSlot(mon, src->moves[i], i);
|
||||
@@ -2435,7 +2435,7 @@ void CreateBattleTowerMon2(struct Pokemon *mon, struct BattleTowerPokemon *src,
|
||||
else
|
||||
level = src->level;
|
||||
|
||||
CreateMon(mon, src->species, level, 0, 1, src->personality, 1, src->otId);
|
||||
CreateMon(mon, src->species, level, 0, 1, src->personality, OT_ID_PRESET, src->otId);
|
||||
|
||||
for (i = 0; i < MAX_MON_MOVES; i++)
|
||||
SetMonMoveSlot(mon, src->moves[i], i);
|
||||
@@ -2497,7 +2497,7 @@ void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 m
|
||||
0x1F,
|
||||
TRUE,
|
||||
personality,
|
||||
TRUE,
|
||||
OT_ID_PRESET,
|
||||
otId);
|
||||
|
||||
SetMonData(mon, MON_DATA_HELD_ITEM, &src->party[monId].item);
|
||||
@@ -2527,7 +2527,7 @@ void CreateMonWithEVSpreadNatureOTID(struct Pokemon *mon, u16 species, u8 level,
|
||||
i = Random32();
|
||||
} while (nature != GetNatureFromPersonality(i));
|
||||
|
||||
CreateMon(mon, species, level, fixedIV, TRUE, i, TRUE, otId);
|
||||
CreateMon(mon, species, level, fixedIV, TRUE, i, OT_ID_PRESET, otId);
|
||||
evsBits = evSpread;
|
||||
for (i = 0; i < NUM_STATS; i++)
|
||||
{
|
||||
@@ -4424,7 +4424,7 @@ u8 GetMonsStateToDoubles_2(void)
|
||||
return (aliveCount > 1) ? PLAYER_HAS_TWO_USABLE_MONS : PLAYER_HAS_ONE_USABLE_MON;
|
||||
}
|
||||
|
||||
u8 GetAbilityBySpecies(u16 species, bool8 abilityNum)
|
||||
u8 GetAbilityBySpecies(u16 species, u8 abilityNum)
|
||||
{
|
||||
if (abilityNum)
|
||||
gLastUsedAbility = gBaseStats[species].abilities[1];
|
||||
@@ -4458,7 +4458,7 @@ void CreateSecretBaseEnemyParty(struct SecretBase *secretBaseRecord)
|
||||
15,
|
||||
1,
|
||||
gBattleResources->secretBase->party.personality[i],
|
||||
2,
|
||||
OT_ID_RANDOM_NO_SHINY,
|
||||
0);
|
||||
|
||||
SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleResources->secretBase->party.heldItems[i]);
|
||||
|
||||
@@ -464,9 +464,6 @@ EWRAM_DATA static u8 sMovingMonOrigBoxPos = 0;
|
||||
EWRAM_DATA static bool8 sCanOnlyMove = 0;
|
||||
|
||||
// This file's functions.
|
||||
#if !defined(NONMATCHING) && MODERN
|
||||
#define static
|
||||
#endif
|
||||
static void CreatePCMenu(u8 whichMenu, s16 *windowIdPtr);
|
||||
static void Cb2_EnterPSS(u8 boxOption);
|
||||
static u8 GetCurrentBoxOption(void);
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
#include "battle.h"
|
||||
#include "gym_leader_rematch.h"
|
||||
#include "match_call.h"
|
||||
#include "pokenav.h"
|
||||
#include "constants/region_map_sections.h"
|
||||
#include "constants/trainers.h"
|
||||
|
||||
// Static type declarations
|
||||
|
||||
@@ -94,11 +96,11 @@ typedef union {
|
||||
const struct MatchCallStruct5 *type5;
|
||||
} match_call_t;
|
||||
|
||||
struct UnkStruct_08625388 {
|
||||
struct MatchCallOverride {
|
||||
u16 idx;
|
||||
u16 v2;
|
||||
u32 v4;
|
||||
const u8 *v8[4];
|
||||
u16 facilityClass;
|
||||
u32 flag;
|
||||
const u8 *flavorTexts[4];
|
||||
};
|
||||
|
||||
// Static RAM declarations
|
||||
@@ -123,11 +125,11 @@ static bool32 MatchCall_IsRematchable_Type2(match_call_t);
|
||||
static bool32 MatchCall_IsRematchable_Type3(match_call_t);
|
||||
static bool32 MatchCall_IsRematchable_Type4(match_call_t);
|
||||
|
||||
static bool32 sub_81D1840(match_call_t);
|
||||
static bool32 sub_81D1844(match_call_t);
|
||||
static bool32 sub_81D1848(match_call_t);
|
||||
static bool32 sub_81D184C(match_call_t);
|
||||
static bool32 sub_81D1850(match_call_t);
|
||||
static bool32 MatchCall_HasCheckPage_Type0(match_call_t);
|
||||
static bool32 MatchCall_HasCheckPage_Type1(match_call_t);
|
||||
static bool32 MatchCall_HasCheckPage_Type2(match_call_t);
|
||||
static bool32 MatchCall_HasCheckPage_Type3(match_call_t);
|
||||
static bool32 MatchCall_HasCheckPage_Type4(match_call_t);
|
||||
|
||||
static u32 MatchCall_GetRematchTableIdx_Type0(match_call_t);
|
||||
static u32 MatchCall_GetRematchTableIdx_Type1(match_call_t);
|
||||
@@ -423,10 +425,10 @@ static const match_call_text_data_t sMayTextScripts[] = {
|
||||
{ NULL, 0xFFFF, 0xFFFF }
|
||||
};
|
||||
|
||||
static const struct MatchCallStruct4 sBrendanMatchCallHeader =
|
||||
static const struct MatchCallStruct4 sMayMatchCallHeader =
|
||||
{
|
||||
.type = 4,
|
||||
.gender = MALE,
|
||||
.gender = MALE, //Gender of player
|
||||
.flag = FLAG_ENABLE_RIVAL_MATCH_CALL,
|
||||
.desc = gMayBrendanMatchCallDesc,
|
||||
.name = gExpandedPlaceholder_May,
|
||||
@@ -452,10 +454,10 @@ static const match_call_text_data_t sBrendanTextScripts[] = {
|
||||
{ NULL, 0xFFFF, 0xFFFF }
|
||||
};
|
||||
|
||||
static const struct MatchCallStruct4 sMayMatchCallHeader =
|
||||
static const struct MatchCallStruct4 sBrendanMatchCallHeader =
|
||||
{
|
||||
.type = 4,
|
||||
.gender = FEMALE,
|
||||
.gender = FEMALE, //Gender of player
|
||||
.flag = FLAG_ENABLE_RIVAL_MATCH_CALL,
|
||||
.desc = gMayBrendanMatchCallDesc,
|
||||
.name = gExpandedPlaceholder_Brendan,
|
||||
@@ -727,27 +729,27 @@ static const struct MatchCallStruct5 sWallaceMatchCallHeader =
|
||||
};
|
||||
|
||||
static const match_call_t sMatchCallHeaders[] = {
|
||||
{.type0 = &sMrStoneMatchCallHeader},
|
||||
{.type3 = &sProfBirchMatchCallHeader},
|
||||
{.type4 = &sMayMatchCallHeader},
|
||||
{.type4 = &sBrendanMatchCallHeader},
|
||||
{.type2 = &sWallyMatchCallHeader},
|
||||
{.type5 = &sNormanMatchCallHeader},
|
||||
{.type0 = &sMomMatchCallHeader},
|
||||
{.type0 = &sStevenMatchCallHeader},
|
||||
{.type0 = &sScottMatchCallHeader},
|
||||
{.type5 = &sRoxanneMatchCallHeader},
|
||||
{.type5 = &sBrawlyMatchCallHeader},
|
||||
{.type5 = &sWattsonMatchCallHeader},
|
||||
{.type5 = &sFlanneryMatchCallHeader},
|
||||
{.type5 = &sWinonaMatchCallHeader},
|
||||
{.type5 = &sTateLizaMatchCallHeader},
|
||||
{.type5 = &sJuanMatchCallHeader},
|
||||
{.type5 = &sSidneyMatchCallHeader},
|
||||
{.type5 = &sPhoebeMatchCallHeader},
|
||||
{.type5 = &sGlaciaMatchCallHeader},
|
||||
{.type5 = &sDrakeMatchCallHeader},
|
||||
{.type5 = &sWallaceMatchCallHeader}
|
||||
[MC_HEADER_MR_STONE] = {.type0 = &sMrStoneMatchCallHeader},
|
||||
[MC_HEADER_PROF_BIRCH] = {.type3 = &sProfBirchMatchCallHeader},
|
||||
[MC_HEADER_BRENDAN] = {.type4 = &sBrendanMatchCallHeader},
|
||||
[MC_HEADER_MAY] = {.type4 = &sMayMatchCallHeader},
|
||||
[MC_HEADER_WALLY] = {.type2 = &sWallyMatchCallHeader},
|
||||
[MC_HEADER_NORMAN] = {.type5 = &sNormanMatchCallHeader},
|
||||
[MC_HEADER_MOM] = {.type0 = &sMomMatchCallHeader},
|
||||
[MC_HEADER_STEVEN] = {.type0 = &sStevenMatchCallHeader},
|
||||
[MC_HEADER_SCOTT] = {.type0 = &sScottMatchCallHeader},
|
||||
[MC_HEADER_ROXANNE] = {.type5 = &sRoxanneMatchCallHeader},
|
||||
[MC_HEADER_BRAWLY] = {.type5 = &sBrawlyMatchCallHeader},
|
||||
[MC_HEADER_WATTSON] = {.type5 = &sWattsonMatchCallHeader},
|
||||
[MC_HEADER_FLANNERY] = {.type5 = &sFlanneryMatchCallHeader},
|
||||
[MC_HEADER_WINONA] = {.type5 = &sWinonaMatchCallHeader},
|
||||
[MC_HEADER_TATE_LIZA] = {.type5 = &sTateLizaMatchCallHeader},
|
||||
[MC_HEADER_JUAN] = {.type5 = &sJuanMatchCallHeader},
|
||||
[MC_HEADER_SIDNEY] = {.type5 = &sSidneyMatchCallHeader},
|
||||
[MC_HEADER_PHOEBE] = {.type5 = &sPhoebeMatchCallHeader},
|
||||
[MC_HEADER_GLACIA] = {.type5 = &sGlaciaMatchCallHeader},
|
||||
[MC_HEADER_DRAKE] = {.type5 = &sDrakeMatchCallHeader},
|
||||
[MC_HEADER_WALLACE] = {.type5 = &sWallaceMatchCallHeader}
|
||||
};
|
||||
|
||||
static bool32 (*const sMatchCallGetFlagFuncs[])(match_call_t) = {
|
||||
@@ -774,12 +776,12 @@ static bool32 (*const sMatchCall_IsRematchableFunctions[])(match_call_t) = {
|
||||
MatchCall_IsRematchable_Type3
|
||||
};
|
||||
|
||||
static bool32 (*const gUnknown_08625338[])(match_call_t) = {
|
||||
sub_81D1840,
|
||||
sub_81D1844,
|
||||
sub_81D1848,
|
||||
sub_81D184C,
|
||||
sub_81D1850
|
||||
static bool32 (*const sMatchCall_HasCheckPageFunctions[])(match_call_t) = {
|
||||
MatchCall_HasCheckPage_Type0,
|
||||
MatchCall_HasCheckPage_Type1,
|
||||
MatchCall_HasCheckPage_Type2,
|
||||
MatchCall_HasCheckPage_Type4,
|
||||
MatchCall_HasCheckPage_Type3
|
||||
};
|
||||
|
||||
static u32 (*const sMatchCall_GetRematchTableIdxFunctions[])(match_call_t) = {
|
||||
@@ -806,11 +808,11 @@ static void (*const sMatchCall_GetNameAndDescFunctions[])(match_call_t, const u8
|
||||
MatchCall_GetNameAndDesc_Type3
|
||||
};
|
||||
|
||||
static const struct UnkStruct_08625388 sMatchCallCheckPageOverrides[] = {
|
||||
{ 7, 0x4B, 0xffff, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle } }, // STEVEN
|
||||
{ 7, 0x4B, FLAG_DEFEATED_MOSSDEEP_GYM, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle } }, // STEVEN
|
||||
{ 2, 0x3c, 0xffff, { gMatchCall_BrendanStrategyText, gMatchCall_BrendanTrainersPokemonText, gMatchCall_BrendanSelfIntroductionText_Line1, gMatchCall_BrendanSelfIntroductionText_Line2 } }, // Brendan
|
||||
{ 3, 0x3f, 0xffff, { gMatchCall_MayStrategyText, gMatchCall_MayTrainersPokemonText, gMatchCall_MaySelfIntroductionText_Line1, gMatchCall_MaySelfIntroductionText_Line2 } } // May
|
||||
static const struct MatchCallOverride sMatchCallCheckPageOverrides[] = {
|
||||
{ MC_HEADER_STEVEN, FACILITY_CLASS_STEVEN, 0xFFFF, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle } }, // STEVEN
|
||||
{ MC_HEADER_STEVEN, FACILITY_CLASS_STEVEN, FLAG_DEFEATED_MOSSDEEP_GYM, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle } }, // STEVEN
|
||||
{ MC_HEADER_BRENDAN, FACILITY_CLASS_BRENDAN, 0xFFFF, { gMatchCall_BrendanStrategyText, gMatchCall_BrendanTrainersPokemonText, gMatchCall_BrendanSelfIntroductionText_Line1, gMatchCall_BrendanSelfIntroductionText_Line2 } }, // Brendan
|
||||
{ MC_HEADER_MAY, FACILITY_CLASS_MAY, 0xFFFF, { gMatchCall_MayStrategyText, gMatchCall_MayTrainersPokemonText, gMatchCall_MaySelfIntroductionText_Line1, gMatchCall_MaySelfIntroductionText_Line2 } } // May
|
||||
};
|
||||
|
||||
// .text
|
||||
@@ -981,7 +983,7 @@ static bool32 MatchCall_IsRematchable_Type3(match_call_t matchCall)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool32 sub_81D17E8(u32 idx)
|
||||
bool32 MatchCall_HasCheckPage(u32 idx)
|
||||
{
|
||||
match_call_t matchCall;
|
||||
u32 i;
|
||||
@@ -990,7 +992,7 @@ bool32 sub_81D17E8(u32 idx)
|
||||
return FALSE;
|
||||
matchCall = sMatchCallHeaders[idx];
|
||||
i = MatchCallGetFunctionIndex(matchCall);
|
||||
if (gUnknown_08625338[i](matchCall))
|
||||
if (sMatchCall_HasCheckPageFunctions[i](matchCall))
|
||||
return TRUE;
|
||||
for (i = 0; i < ARRAY_COUNT(sMatchCallCheckPageOverrides); i++)
|
||||
{
|
||||
@@ -1000,27 +1002,27 @@ bool32 sub_81D17E8(u32 idx)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool32 sub_81D1840(match_call_t matchCall)
|
||||
static bool32 MatchCall_HasCheckPage_Type0(match_call_t matchCall)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool32 sub_81D1844(match_call_t matchCall)
|
||||
static bool32 MatchCall_HasCheckPage_Type1(match_call_t matchCall)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static bool32 sub_81D1848(match_call_t matchCall)
|
||||
static bool32 MatchCall_HasCheckPage_Type2(match_call_t matchCall)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static bool32 sub_81D184C(match_call_t matchCall)
|
||||
static bool32 MatchCall_HasCheckPage_Type4(match_call_t matchCall)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static bool32 sub_81D1850(match_call_t matchCall)
|
||||
static bool32 MatchCall_HasCheckPage_Type3(match_call_t matchCall)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
@@ -1210,7 +1212,7 @@ static void MatchCall_GetNameAndDescByRematchIdx(u32 idx, const u8 **desc, const
|
||||
*name = trainer->trainerName;
|
||||
}
|
||||
|
||||
const u8 *sub_81D1B40(u32 idx, u32 offset)
|
||||
const u8 *MatchCall_GetOverrideFlavorText(u32 idx, u32 offset)
|
||||
{
|
||||
u32 i;
|
||||
|
||||
@@ -1224,24 +1226,24 @@ const u8 *sub_81D1B40(u32 idx, u32 offset)
|
||||
break;
|
||||
if (sMatchCallCheckPageOverrides[i + 1].idx != idx)
|
||||
break;
|
||||
if (!FlagGet(sMatchCallCheckPageOverrides[i + 1].v4))
|
||||
if (!FlagGet(sMatchCallCheckPageOverrides[i + 1].flag))
|
||||
break;
|
||||
i++;
|
||||
}
|
||||
return sMatchCallCheckPageOverrides[i].v8[offset];
|
||||
return sMatchCallCheckPageOverrides[i].flavorTexts[offset];
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int sub_81D1BD0(u32 idx)
|
||||
int MatchCall_GetOverrideFacilityClass(u32 idx)
|
||||
{
|
||||
u32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sMatchCallCheckPageOverrides); i++)
|
||||
{
|
||||
if (sMatchCallCheckPageOverrides[i].idx == idx)
|
||||
return sMatchCallCheckPageOverrides[i].v2;
|
||||
return sMatchCallCheckPageOverrides[i].facilityClass;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
+7
-7
@@ -84,7 +84,7 @@ static u32 sub_81CAB44(struct Pokenav3Struct *state)
|
||||
state->callback = sub_81CAC04;
|
||||
state->unk0 = 0;
|
||||
selectedMatchCall = GetSelectedMatchCall();
|
||||
if (!state->unk1C[selectedMatchCall].boxId || sub_81D17E8(state->unk1C[selectedMatchCall].unk6))
|
||||
if (!state->unk1C[selectedMatchCall].boxId || MatchCall_HasCheckPage(state->unk1C[selectedMatchCall].unk6))
|
||||
{
|
||||
state->unk4 = gUnknown_0862250A;
|
||||
state->unk2 = 2;
|
||||
@@ -212,7 +212,7 @@ static u32 sub_81CAD20(s32 taskState)
|
||||
state->unkA++;
|
||||
}
|
||||
|
||||
if (++state->unk8 >= 21) // TODO: This is the size of sMatchCallHeaders
|
||||
if (++state->unk8 >= MC_HEADER_COUNT)
|
||||
{
|
||||
state->unkC = state->unk8;
|
||||
state->unk8 = 0;
|
||||
@@ -331,7 +331,7 @@ int sub_81CAF04(int index)
|
||||
return gTrainers[index].trainerPic;
|
||||
}
|
||||
|
||||
index = sub_81D1BD0(var0);
|
||||
index = MatchCall_GetOverrideFacilityClass(var0);
|
||||
return gFacilityClassToPicIndex[index];
|
||||
}
|
||||
|
||||
@@ -358,7 +358,7 @@ const u8 *sub_81CAFD8(int index, int textType)
|
||||
{
|
||||
var0 = MatchCall_GetRematchTableIdx(state->unk1C[index].unk6);
|
||||
if (var0 == REMATCH_TABLE_ENTRIES)
|
||||
return sub_81D1B40(state->unk1C[index].unk6, textType);
|
||||
return MatchCall_GetOverrideFlavorText(state->unk1C[index].unk6, textType);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -426,7 +426,7 @@ int sub_81CB0E4(int index)
|
||||
{
|
||||
if (!state->unk1C[index].boxId)
|
||||
return count;
|
||||
if (sub_81D17E8(state->unk1C[index].unk6))
|
||||
if (MatchCall_HasCheckPage(state->unk1C[index].unk6))
|
||||
return count;
|
||||
|
||||
count++;
|
||||
@@ -443,7 +443,7 @@ int sub_81CB128(int index)
|
||||
{
|
||||
if (!state->unk1C[index].boxId)
|
||||
return count;
|
||||
if (sub_81D17E8(state->unk1C[index].unk6))
|
||||
if (MatchCall_HasCheckPage(state->unk1C[index].unk6))
|
||||
return count;
|
||||
|
||||
count--;
|
||||
@@ -462,7 +462,7 @@ bool32 unref_sub_81CB16C(void)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
for (i = 0; i < 21; i++) // TODO: This is the size of sMatchCallHeaders
|
||||
for (i = 0; i < MC_HEADER_COUNT; i++)
|
||||
{
|
||||
if (MatchCallFlagGetByIndex(i))
|
||||
{
|
||||
|
||||
+2
-2
@@ -701,10 +701,10 @@ static void ReceiveLilycoveLadyData(LilycoveLady *lilycoveLady, size_t recordSiz
|
||||
}
|
||||
|
||||
memcpy(sLilycoveLadySave, (void *)lilycoveLady + recordSize * mixIndices[which], sizeof(LilycoveLady));
|
||||
sub_818DA78();
|
||||
ResetLilycoveLadyForRecordMix();
|
||||
if (dest != NULL)
|
||||
{
|
||||
sub_818E570(dest);
|
||||
QuizLadyClearQuestionForRecordMix(dest);
|
||||
free(dest);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -67,7 +67,7 @@ static void CreateInitialRoamerMon(bool16 createLatios)
|
||||
else
|
||||
(&gSaveBlock1Ptr->roamer)->species = SPECIES_LATIOS;
|
||||
|
||||
CreateMon(&gEnemyParty[0], (&gSaveBlock1Ptr->roamer)->species, 40, 0x20, 0, 0, 0, 0);
|
||||
CreateMon(&gEnemyParty[0], (&gSaveBlock1Ptr->roamer)->species, 40, 0x20, 0, 0, OT_ID_PLAYER_ID, 0);
|
||||
(&gSaveBlock1Ptr->roamer)->level = 40;
|
||||
(&gSaveBlock1Ptr->roamer)->status = 0;
|
||||
(&gSaveBlock1Ptr->roamer)->active = TRUE;
|
||||
|
||||
+1
-1
@@ -508,7 +508,7 @@ void AnimDirtParticleAcrossScreen(struct Sprite *sprite)
|
||||
sprite->pos1.x = 304;
|
||||
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
|
||||
sprite->data[5] = 1;
|
||||
sprite->oam.matrixNum = 8;
|
||||
sprite->oam.matrixNum = ST_OAM_HFLIP;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
+15
-12
@@ -62,7 +62,7 @@ static EWRAM_DATA u16 sMovingNpcMapBank = 0;
|
||||
static EWRAM_DATA u16 sMovingNpcMapId = 0;
|
||||
static EWRAM_DATA u16 sFieldEffectScriptId = 0;
|
||||
|
||||
static u8 gUnknown_03000F30;
|
||||
static u8 gBrailleWindowId;
|
||||
|
||||
extern const SpecialFunc gSpecials[];
|
||||
extern const u8 *gStdScripts[];
|
||||
@@ -466,6 +466,9 @@ bool8 ScrCmd_addvar(struct ScriptContext *ctx)
|
||||
{
|
||||
u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx));
|
||||
*ptr += ScriptReadHalfword(ctx);
|
||||
// Note: addvar doesn't support adding from a variable in vanilla. If you were to
|
||||
// add a VarGet() to the above, make sure you change the `addvar VAR_0x8006, 65535`
|
||||
// in the contest scripts to `subvar VAR_0x8006, 1`, else contests will break.
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1102,7 +1105,7 @@ bool8 ScrCmd_setobjectxyperm(struct ScriptContext *ctx)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 ScrCmd_moveobjectoffscreen(struct ScriptContext *ctx)
|
||||
bool8 ScrCmd_copyobjectxytoperm(struct ScriptContext *ctx)
|
||||
{
|
||||
u16 localId = VarGet(ScriptReadHalfword(ctx));
|
||||
|
||||
@@ -1515,13 +1518,13 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
|
||||
yText = (yText - yWindow - 1) * 8;
|
||||
|
||||
winTemplate = CreateWindowTemplate(0, xWindow, yWindow + 1, width, height, 0xF, 0x1);
|
||||
gUnknown_03000F30 = AddWindow(&winTemplate);
|
||||
LoadUserWindowBorderGfx(gUnknown_03000F30, 0x214, 0xE0);
|
||||
DrawStdWindowFrame(gUnknown_03000F30, 0);
|
||||
PutWindowTilemap(gUnknown_03000F30);
|
||||
FillWindowPixelBuffer(gUnknown_03000F30, PIXEL_FILL(1));
|
||||
AddTextPrinterParameterized(gUnknown_03000F30, 6, gStringVar4, xText, yText, 0xFF, 0x0);
|
||||
CopyWindowToVram(gUnknown_03000F30, 3);
|
||||
gBrailleWindowId = AddWindow(&winTemplate);
|
||||
LoadUserWindowBorderGfx(gBrailleWindowId, 0x214, 0xE0);
|
||||
DrawStdWindowFrame(gBrailleWindowId, 0);
|
||||
PutWindowTilemap(gBrailleWindowId);
|
||||
FillWindowPixelBuffer(gBrailleWindowId, PIXEL_FILL(1));
|
||||
AddTextPrinterParameterized(gBrailleWindowId, 6, gStringVar4, xText, yText, 0xFF, 0x0);
|
||||
CopyWindowToVram(gBrailleWindowId, 3);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1630,7 +1633,7 @@ bool8 ScrCmd_buffercontesttype(struct ScriptContext *ctx)
|
||||
u8 stringVarIndex = ScriptReadByte(ctx);
|
||||
u16 index = VarGet(ScriptReadHalfword(ctx));
|
||||
|
||||
sub_818E868(sScriptStringVars[stringVarIndex], index);
|
||||
BufferContestName(sScriptStringVars[stringVarIndex], index);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -2254,8 +2257,8 @@ bool8 ScrCmd_setmonmetlocation(struct ScriptContext *ctx)
|
||||
|
||||
void sub_809BDB4(void)
|
||||
{
|
||||
ClearStdWindowAndFrame(gUnknown_03000F30, 1);
|
||||
RemoveWindow(gUnknown_03000F30);
|
||||
ClearStdWindowAndFrame(gBrailleWindowId, 1);
|
||||
RemoveWindow(gBrailleWindowId);
|
||||
}
|
||||
|
||||
bool8 ScrCmd_buffertrainerclassname(struct ScriptContext *ctx)
|
||||
|
||||
+5
-5
@@ -41,11 +41,11 @@ const struct MenuAction MultichoiceList_003[] =
|
||||
|
||||
const struct MenuAction MultichoiceList_004[] =
|
||||
{
|
||||
{gUnknown_085EADA4, NULL},
|
||||
{gUnknown_085EADB5, NULL},
|
||||
{gUnknown_085EADC4, NULL},
|
||||
{gUnknown_085EADD5, NULL},
|
||||
{gUnknown_085EADE7, NULL},
|
||||
{gText_CoolnessContest, NULL},
|
||||
{gText_BeautyContest, NULL},
|
||||
{gText_CutenessContest, NULL},
|
||||
{gText_SmartnessContest, NULL},
|
||||
{gText_ToughnessContest, NULL},
|
||||
{gText_Exit, NULL},
|
||||
};
|
||||
|
||||
|
||||
@@ -551,7 +551,7 @@ u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 u
|
||||
u8 heldItem[2];
|
||||
struct Pokemon mon;
|
||||
|
||||
CreateMon(&mon, species, level, 32, 0, 0, 0, 0);
|
||||
CreateMon(&mon, species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0);
|
||||
heldItem[0] = item;
|
||||
heldItem[1] = item >> 8;
|
||||
SetMonData(&mon, MON_DATA_HELD_ITEM, heldItem);
|
||||
@@ -624,7 +624,7 @@ void CreateScriptedWildMon(u16 species, u8 level, u16 item)
|
||||
u8 heldItem[2];
|
||||
|
||||
ZeroEnemyPartyMons();
|
||||
CreateMon(&gEnemyParty[0], species, level, 0x20, 0, 0, 0, 0);
|
||||
CreateMon(&gEnemyParty[0], species, level, 0x20, 0, 0, OT_ID_PLAYER_ID, 0);
|
||||
if (item)
|
||||
{
|
||||
heldItem[0] = item;
|
||||
|
||||
+22
-22
@@ -610,11 +610,11 @@ const u8 gUnknown_085EAD72[] = _("What's a CONTEST?");
|
||||
const u8 gUnknown_085EAD84[] = _("Types of CONTESTS");
|
||||
const u8 gUnknown_085EAD96[] = _("Ranks");
|
||||
const u8 gUnknown_085EAD9C[] = _("Judging");
|
||||
const u8 gUnknown_085EADA4[] = _("COOLNESS CONTEST");
|
||||
const u8 gUnknown_085EADB5[] = _("BEAUTY CONTEST");
|
||||
const u8 gUnknown_085EADC4[] = _("CUTENESS CONTEST");
|
||||
const u8 gUnknown_085EADD5[] = _("SMARTNESS CONTEST");
|
||||
const u8 gUnknown_085EADE7[] = _("TOUGHNESS CONTEST");
|
||||
const u8 gText_CoolnessContest[] = _("COOLNESS CONTEST");
|
||||
const u8 gText_BeautyContest[] = _("BEAUTY CONTEST");
|
||||
const u8 gText_CutenessContest[] = _("CUTENESS CONTEST");
|
||||
const u8 gText_SmartnessContest[] = _("SMARTNESS CONTEST");
|
||||
const u8 gText_ToughnessContest[] = _("TOUGHNESS CONTEST");
|
||||
const u8 gUnknown_085EADF9[] = _("DECORATION");
|
||||
const u8 gUnknown_085EAE04[] = _("PACK UP");
|
||||
const u8 gUnknown_085EAE0C[] = _("COUNT");
|
||||
@@ -1591,23 +1591,23 @@ const u8 gText_PkmnsNickname[] = _("{STR_VAR_1}'s nickname?");
|
||||
const u8 gText_TellHimTheWords[] = _("Tell him the words.");
|
||||
const u8 gText_MoveOkBack[] = _("{DPAD_NONE}MOVE {A_BUTTON}OK {B_BUTTON}BACK");
|
||||
const u8 gText_CallCantBeMadeHere[] = _("A call can't be made from here.");
|
||||
const u8 gUnknown_085EEB2B[] = _("HANDSOME");
|
||||
const u8 gUnknown_085EEB34[] = _("VINNY");
|
||||
const u8 gUnknown_085EEB3A[] = _("MOREME");
|
||||
const u8 gUnknown_085EEB41[] = _("IRONHARD");
|
||||
const u8 gUnknown_085EEB4A[] = _("MUSCLE");
|
||||
const u8 gUnknown_085EEB51[] = _("coolness");
|
||||
const u8 gUnknown_085EEB5A[] = _("beauty");
|
||||
const u8 gUnknown_085EEB61[] = _("cuteness");
|
||||
const u8 gUnknown_085EEB6A[] = _("smartness");
|
||||
const u8 gUnknown_085EEB74[] = _("toughness");
|
||||
const u8 gText_Lady2[] = _("Lady");
|
||||
const u8 gUnknown_085EEB83[] = _("slippery");
|
||||
const u8 gUnknown_085EEB8C[] = _("roundish");
|
||||
const u8 gUnknown_085EEB95[] = _("wham-ish");
|
||||
const u8 gUnknown_085EEB9E[] = _("shiny");
|
||||
const u8 gUnknown_085EEBA4[] = _("sticky");
|
||||
const u8 gUnknown_085EEBAB[] = _("pointy");
|
||||
const u8 gText_ContestLady_Handsome[] = _("HANDSOME");
|
||||
const u8 gText_ContestLady_Vinny[] = _("VINNY");
|
||||
const u8 gText_ContestLady_Moreme[] = _("MOREME");
|
||||
const u8 gText_ContestLady_Ironhard[] = _("IRONHARD");
|
||||
const u8 gText_ContestLady_Muscle[] = _("MUSCLE");
|
||||
const u8 gText_ContestLady_Coolness[] = _("coolness");
|
||||
const u8 gText_ContestLady_Beauty[] = _("beauty");
|
||||
const u8 gText_ContestLady_Cuteness[] = _("cuteness");
|
||||
const u8 gText_ContestLady_Smartness[] = _("smartness");
|
||||
const u8 gText_ContestLady_Toughness[] = _("toughness");
|
||||
const u8 gText_QuizLady_Lady[] = _("Lady");
|
||||
const u8 gText_FavorLady_Slippery[] = _("slippery");
|
||||
const u8 gText_FavorLady_Roundish[] = _("roundish");
|
||||
const u8 gText_FavorLady_Whamish[] = _("wham-ish");
|
||||
const u8 gText_FavorLady_Shiny[] = _("shiny");
|
||||
const u8 gText_FavorLady_Sticky[] = _("sticky");
|
||||
const u8 gText_FavorLady_Pointy[] = _("pointy");
|
||||
const u8 gText_RentalPkmn2[] = _("RENTAL POKéMON");
|
||||
const u8 gText_SelectFirstPkmn[] = _("Select the first POKéMON.");
|
||||
const u8 gText_SelectSecondPkmn[] = _("Select the second POKéMON.");
|
||||
|
||||
+2
-2
@@ -1551,7 +1551,7 @@ static void sub_80773D0(void)
|
||||
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
CreateMon(&gEnemyParty[i], SPECIES_NONE, 0, 0x20, FALSE, 0, 0, 0);
|
||||
CreateMon(&gEnemyParty[i], SPECIES_NONE, 0, 0x20, FALSE, 0, OT_ID_PLAYER_ID, 0);
|
||||
}
|
||||
|
||||
sub_807A19C(0);
|
||||
@@ -5832,7 +5832,7 @@ static void _CreateInGameTradePokemon(u8 whichPlayerMon, u8 whichInGameTrade)
|
||||
u8 isMail;
|
||||
struct Pokemon *pokemon = &gEnemyParty[0];
|
||||
|
||||
CreateMon(pokemon, inGameTrade->species, level, 32, TRUE, inGameTrade->personality, TRUE, inGameTrade->otId);
|
||||
CreateMon(pokemon, inGameTrade->species, level, 32, TRUE, inGameTrade->personality, OT_ID_PRESET, inGameTrade->otId);
|
||||
|
||||
SetMonData(pokemon, MON_DATA_HP_IV, &inGameTrade->ivs[0]);
|
||||
SetMonData(pokemon, MON_DATA_ATK_IV, &inGameTrade->ivs[1]);
|
||||
|
||||
@@ -1657,12 +1657,12 @@ void PutLilycoveContestLadyShowOnTheAir(void)
|
||||
if (gSpecialVar_Result != TRUE)
|
||||
{
|
||||
show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot];
|
||||
sub_818E848(&show->contestLiveUpdates2.language);
|
||||
BufferContestLadyLanguage(&show->contestLiveUpdates2.language);
|
||||
show->contestLiveUpdates2.pokemonNameLanguage = LANGUAGE_ENGLISH;
|
||||
show->contestLiveUpdates2.kind = TVSHOW_CONTEST_LIVE_UPDATES_2;
|
||||
show->contestLiveUpdates2.active = TRUE;
|
||||
sub_818E81C(show->contestLiveUpdates2.playerName);
|
||||
sub_818E7E0(&show->contestLiveUpdates2.contestCategory, show->contestLiveUpdates2.nickname);
|
||||
BufferContestLadyPlayerName(show->contestLiveUpdates2.playerName);
|
||||
BufferContestLadyMonName(&show->contestLiveUpdates2.contestCategory, show->contestLiveUpdates2.nickname);
|
||||
show->contestLiveUpdates2.pokeblockState = sub_818E880();
|
||||
tv_store_id_2x(show);
|
||||
}
|
||||
@@ -5600,7 +5600,7 @@ static void DoTVShowPokemonContestLiveUpdates(void)
|
||||
switch (state)
|
||||
{
|
||||
case 0:
|
||||
sub_818E868(gStringVar1, show->contestLiveUpdates.category);
|
||||
BufferContestName(gStringVar1, show->contestLiveUpdates.category);
|
||||
StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]);
|
||||
TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language);
|
||||
if (show->contestLiveUpdates.round1Rank == show->contestLiveUpdates.round2Rank)
|
||||
@@ -7720,7 +7720,7 @@ static void DoTVShowPokemonContestLiveUpdates2(void)
|
||||
switch (state)
|
||||
{
|
||||
case 0:
|
||||
sub_818E868(gStringVar1, show->contestLiveUpdates2.contestCategory);
|
||||
BufferContestName(gStringVar1, show->contestLiveUpdates2.contestCategory);
|
||||
if (show->contestLiveUpdates2.pokeblockState == 1)
|
||||
{
|
||||
sTVShowState = 1;
|
||||
|
||||
Reference in New Issue
Block a user