This commit is contained in:
Eduardo Quezada
2022-08-02 12:18:17 -04:00
parent 18cdd708b5
commit 1b30bccb47
10 changed files with 408 additions and 22 deletions

View File

@@ -366,6 +366,7 @@ gTilesetPalettes_InsideBuilding::
.incbin "data/tilesets/primary/building/palettes/14.gbapal"
.incbin "data/tilesets/primary/building/palettes/15.gbapal"
.ifdef ENGLISH
.align 2
gTilesetTiles_Shop::
.incbin "data/tilesets/secondary/shop/tiles.4bpp.lz"
@@ -388,6 +389,7 @@ gTilesetPalettes_Shop::
.incbin "data/tilesets/secondary/shop/palettes/13.gbapal"
.incbin "data/tilesets/secondary/shop/palettes/14.gbapal"
.incbin "data/tilesets/secondary/shop/palettes/15.gbapal"
.endif
.align 2
gTilesetTiles_PokemonCenter::
@@ -1408,6 +1410,7 @@ gTilesetPalettes_BattlePalace::
.incbin "data/tilesets/secondary/battle_palace/palettes/14.gbapal"
.incbin "data/tilesets/secondary/battle_palace/palettes/15.gbapal"
.ifdef ENGLISH
.align 2
gTilesetTiles_BattleDome::
.incbin "data/tilesets/secondary/battle_dome/tiles.4bpp.lz"
@@ -1430,6 +1433,7 @@ gTilesetPalettes_BattleDome::
.incbin "data/tilesets/secondary/battle_dome/palettes/13.gbapal"
.incbin "data/tilesets/secondary/battle_dome/palettes/14.gbapal"
.incbin "data/tilesets/secondary/battle_dome/palettes/15.gbapal"
.endif
.align 2
gTilesetTiles_BattleFactory::

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

View File

@@ -17,7 +17,7 @@
// Using English as default.
#if !defined(ENGLISH) && !defined(FRENCH)
#define FRENCH 1
#define ENGLISH 1
#endif
#if ENGLISH

View File

@@ -5063,4 +5063,54 @@ extern const u8 gMailTilemap_Retro[];
extern const u8 gMonMarkingsMenu_Gfx[];
extern const u16 gMonMarkingsMenu_Pal[];
#if FRENCH
extern const u16 gPokeJumpBonuses_Pal[];
extern const u32 gPokeJumpBonuses_Gfx[];
extern const u32 gPokeJumpBonuses_Tilemap[];
extern const u16 g321Start_Pal[];
extern const u32 g321Start_Gfx[];
extern const u16 gBlenderCenter_Pal[];
extern const u32 gFrontierPassMapScreen_Gfx[];
// roulette
extern const u16 gRouletteShadow_Pal[];
extern const u16 gRouletteBall_Pal[];
extern const u16 gRouletteBallCounter_Pal[];
extern const u16 gRouletteCursor_Pal[];
extern const u16 gRouletteCredit_Pal[];
extern const u16 gRouletteShroomish_Pal[];
extern const u16 gRouletteTaillow_Pal[];
extern const u16 gRouletteGridIcons_Pal[];
extern const u16 gRouletteWynaut_Pal[];
extern const u16 gRouletteAzurill_Pal[];
extern const u16 gRouletteSkitty_Pal[];
extern const u16 gRouletteMakuhita_Pal[];
// pokedex cry screen
extern const u16 gCryMeter_Pal[];
extern const u8 gCryMeter_Gfx[];
// credits
extern const u32 gCreditsCopyrightEnd_Gfx[];
extern const u32 gCreditsCopyrightEnd_Tilemap[];
// pokenav match call gfx
extern const u16 gMatchCallUI_Pal[];
extern const u32 gMatchCallUI_Gfx[];
extern const u32 gMatchCallUI_Tilemap[];
// pokenav conditions search results
extern const u16 gConditionSearchResultFramePal[];
extern const u32 gConditionSearchResultTiles[];
extern const u32 gConditionSearchResultTilemap[];
// pokenav ribbon list
extern const u16 gMonRibbonListFramePal[];
extern const u32 gMonRibbonListFrameTiles[];
extern const u32 gMonRibbonListFrameTilemap[];
#endif
#endif //GUARD_GRAPHICS_H

View File

@@ -241,7 +241,9 @@ static s16 sDebug_GameTimeStage;
u8 gInGameOpponentsNo;
#if ENGLISH
static const u16 sBlenderCenter_Pal[] = INCBIN_U16("graphics/berry_blender/center.gbapal");
#endif
static const u8 sBlenderCenter_Tilemap[] = INCBIN_U8("graphics/berry_blender/center_map.bin");
static const u16 sBlenderOuter_Pal[] = INCBIN_U16("graphics/berry_blender/outer.gbapal");
@@ -249,6 +251,7 @@ static const u16 sUnused_Pal[] = INCBIN_U16("graphics/berry_blender/unused.gbapa
static const u16 sEmpty_Pal[16 * 14] = {0};
// unused text
#if ENGLISH
static const u8 sUnusedText_YesNo[] = _("YES\nNO");
static const u8 sUnusedText_2[] = _("");
static const u8 sUnusedText_Space[] = _(" ");
@@ -264,6 +267,23 @@ static const u8 sText_Lassie[] = _("LASSIE");
static const u8 sText_Master[] = _("MASTER");
static const u8 sText_Dude[] = _("DUDE");
static const u8 sText_Miss[] = _("MISS");
#elif FRENCH
static const u8 sUnusedText_YesNo[] = _("OUI\nNON");
static const u8 sUnusedText_2[] = _("");
static const u8 sUnusedText_Space[] = _(" ");
static const u8 sUnusedText_Terminating[] = _("Fin.");
static const u8 sUnusedText_LinkPartnerNotFound[] = _("Partenaire(s) de jeu non trouvé(s).\nVeuillez réessayer.\p");
static const u8 sText_BerryBlenderStart[] = _("Démarrage du MIXEUR.\pChoisissez une BAIE dans le SAC\nà mettre dans le MIXEUR.\p");
static const u8 sText_NewParagraph[] = _("\p");
static const u8 sText_WasMade[] = _("{STR_VAR_1} a été fait!");
static const u8 sText_Mister[] = _("PAPY");
static const u8 sText_Laddie[] = _("GAMIN");
static const u8 sText_Lassie[] = _("GAMINE");
static const u8 sText_Master[] = _("MAITRE");
static const u8 sText_Dude[] = _("TYPE");
static const u8 sText_Miss[] = _("MISS");
#endif
static const u8 *const sBlenderOpponentsNames[] =
{
@@ -274,7 +294,7 @@ static const u8 *const sBlenderOpponentsNames[] =
[BLENDER_DUDE] = sText_Dude,
[BLENDER_MISS] = sText_Miss
};
#if ENGLISH
static const u8 sText_PressAToStart[] = _("Press the A Button to start.");
static const u8 sText_PleaseWaitAWhile[] = _("Please wait a while.");
static const u8 sText_CommunicationStandby[] = _("Communication standby…");
@@ -298,6 +318,31 @@ static const u8 sText_Ranking[] = _("RANKING");
static const u8 sText_TheLevelIs[] = _("The level is ");
static const u8 sText_TheFeelIs[] = _(", and the feel is ");
static const u8 sText_Dot2[] = _(".");
#elif FRENCH
static const u8 sText_PressAToStart[] = _("Appuyez sur le bouton A pour démarrer.");
static const u8 sText_PleaseWaitAWhile[] = _("Veuillez patientez.");
static const u8 sText_CommunicationStandby[] = _("Connexion en cours…");
static const u8 sText_WouldLikeToBlendAnotherBerry[] = _("Voulez-vous mixer une autre BAIE?");
static const u8 sText_RunOutOfBerriesForBlending[] = _("Vous navez plus de BAIES à mettre\ndans le MIXEUR.\p");
static const u8 sText_YourPokeblockCaseIsFull[] = _("Votre BOITE {POKEBLOCK}S est pleine.\p");
static const u8 sText_HasNoBerriesToPut[] = _("{STR_VAR_1} na pas de BAIES à mettre\ndans le MIXEUR.");
static const u8 sText_ApostropheSPokeblockCaseIsFull[] = _("La BOITE {POKEBLOCK}S de\n{STR_VAR_1} est pleine.\p");
static const u8 sText_BlendingResults[] = _("RESULTATS DU MIXAGE");
static const u8 sText_BerryUsed[] = _("BAIE UTIL.");
static const u8 sText_SpaceBerry[] = _("BAIE {STR_VAR_1}");
static const u8 sText_Time[] = _("TEMPS");
static const u8 sText_Min[] = _(" MIN ");
static const u8 sText_Sec[] = _(" S");
static const u8 sText_MaximumSpeed[] = _("VITESSE MAXI.");
static const u8 sText_RPM[] = _(" RPM");
static const u8 sText_Dot[] = _(".");
static const u8 sText_NewLine[] = _("\n");
static const u8 sText_Space[] = _(" ");
static const u8 sText_Ranking[] = _("CLASSEMENT");
static const u8 sText_TheLevelIs[] = _("Niveau: ");
static const u8 sText_TheFeelIs[] = _(" / Onctuosité: ");
static const u8 sText_Dot2[] = _(".");
#endif
static const struct BgTemplate sBgTemplates[3] =
{
@@ -916,6 +961,7 @@ static const u8 sUnused[] =
0x0c, 0x10, 0x00, 0xff, 0x06, 0x27, 0x02, 0xff, 0x00, 0x0c, 0x48,
0x02, 0xff, 0x00, 0x01, 0x1f, 0x02, 0xff, 0x00, 0x16, 0x37, 0x02,
0xff, 0x00, 0x0d, 0x50, 0x4b, 0x02, 0xff, 0x06, 0x06, 0x06, 0x06,
#if ENGLISH
0x05, 0x03, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02
};
@@ -928,6 +974,9 @@ static const struct WindowTemplate sBlenderRecordWindowTemplate =
.height = 11,
.paletteNum = 15,
.baseBlock = 8
#elif FRENCH
0x05, 0x03, 0x03, 0x03, 0x02, 0x02
#endif
};
static void UpdateHitPitch(void)
@@ -959,7 +1008,11 @@ static bool8 LoadBerryBlenderGfx(void)
case 1:
CopyToBgTilemapBuffer(2, sBlenderCenter_Tilemap, 0x400, 0);
CopyBgTilemapBufferToVram(2);
#if ENGLISH
LoadPalette(sBlenderCenter_Pal, 0, 0x100);
#elif FRENCH
LoadPalette(gBlenderCenter_Pal, 0, 0x100);
#endif
sBerryBlender->loadGfxState++;
break;
case 2:
@@ -2850,12 +2903,20 @@ static void CB2_CheckPlayAgainLink(void)
case 1:
sBerryBlender->gameEndState = 3;
StringCopy(gStringVar4, gLinkPlayers[sBerryBlender->canceledPlayerId].name);
#if ENGLISH
StringAppend(gStringVar4, sText_ApostropheSPokeblockCaseIsFull);
#elif FRENCH
StringAppendWithPlaceholder(gStringVar4, sText_ApostropheSPokeblockCaseIsFull, gStringVar4);
#endif
break;
case 2:
sBerryBlender->gameEndState++;
StringCopy(gStringVar4, gLinkPlayers[sBerryBlender->canceledPlayerId].name);
#if ENGLISH
StringAppend(gStringVar4, sText_HasNoBerriesToPut);
#elif FRENCH
StringAppendWithPlaceholder(gStringVar4, sText_HasNoBerriesToPut, gStringVar4);
#endif
break;
case 3:
if (Blender_PrintText(&sBerryBlender->textState, gStringVar4, GetPlayerTextSpeedDelay()))
@@ -3514,13 +3575,24 @@ static bool8 PrintBlendingResults(void)
StringCopy(sBerryBlender->stringVar, sBerryBlender->blendedBerries[place].name);
ConvertInternationalString(sBerryBlender->stringVar, gLinkPlayers[place].language);
#if ENGLISH
StringAppend(sBerryBlender->stringVar, sText_SpaceBerry);
#elif FRENCH
StringAppendWithPlaceholder(sBerryBlender->stringVar, sText_SpaceBerry, sBerryBlender->stringVar);
#endif
Blender_AddTextPrinter(5, sBerryBlender->stringVar, 0x54, yPos, TEXT_SKIP_DRAW, 3);
}
Blender_AddTextPrinter(5, sText_MaximumSpeed, 0, 0x51, TEXT_SKIP_DRAW, 3);
ConvertIntToDecimalStringN(sBerryBlender->stringVar, sBerryBlender->maxRPM / 100, STR_CONV_MODE_RIGHT_ALIGN, 3);
#if ENGLISH
StringAppend(sBerryBlender->stringVar, sText_Dot);
#elif FRENCH
{
u8 comma[] = _(",");
StringAppend(sBerryBlender->stringVar, comma);
}
#endif
ConvertIntToDecimalStringN(text, sBerryBlender->maxRPM % 100, STR_CONV_MODE_LEADING_ZEROS, 2);
StringAppend(sBerryBlender->stringVar, text);
@@ -3592,6 +3664,10 @@ static bool8 PrintBlendingResults(void)
return FALSE;
}
#if FRENCH
static const u8 sUnused2[] = {0x03, 0x03, 0x03, 0x03, 0x02};
#endif
static void PrintMadePokeblockString(struct Pokeblock *pokeblock, u8 *dst)
{
u8 text[12];
@@ -3599,7 +3675,11 @@ static void PrintMadePokeblockString(struct Pokeblock *pokeblock, u8 *dst)
dst[0] = EOS;
StringCopy(dst, gPokeblockNames[pokeblock->color]);
#if ENGLISH
StringAppend(dst, sText_WasMade);
#elif FRENCH
StringAppendWithPlaceholder(dst, sText_WasMade, dst);
#endif
StringAppend(dst, sText_NewLine);
flavorLvl = GetHighestPokeblocksFlavorLevel(pokeblock);
@@ -3759,10 +3839,24 @@ void ShowBerryBlenderRecordWindow(void)
{
s32 i;
s32 xPos, yPos;
#if ENGLISH
struct WindowTemplate winTemplate;
u8 text[32];
winTemplate = sBlenderRecordWindowTemplate;
#elif FRENCH
struct WindowTemplate winTemplate =
{
.bg = 0,
.tilemapLeft = 6,
.tilemapTop = 4,
.width = 18,
.height = 11,
.paletteNum = 15,
.baseBlock = 8
};
u8 text[32];
#endif
gRecordsWindowId = AddWindow(&winTemplate);
DrawStdWindowFrame(gRecordsWindowId, FALSE);
FillWindowPixelBuffer(gRecordsWindowId, PIXEL_FILL(1));
@@ -3779,7 +3873,12 @@ void ShowBerryBlenderRecordWindow(void)
record = gSaveBlock1Ptr->berryBlenderRecords[i];
txtPtr = ConvertIntToDecimalStringN(text, record / 100, STR_CONV_MODE_RIGHT_ALIGN, 3);
#if ENGLISH
txtPtr = StringAppend(txtPtr, sText_Dot);
#elif FRENCH
*txtPtr++ = CHAR_COMMA;
*txtPtr = EOS;
#endif
txtPtr = ConvertIntToDecimalStringN(txtPtr, record % 100, STR_CONV_MODE_LEADING_ZEROS, 2);
txtPtr = StringAppend(txtPtr, sText_RPM);

View File

@@ -27,27 +27,78 @@ static int BerryFix_TrySetScene(int);
static void BerryFix_SetScene(int);
static void BerryFix_HideScene(void);
#if ENGLISH
static const u8 sText_BerryProgramUpdate[] = _("Berry Program Update");
static const u8 sText_RubySapphire[] = _("Ruby/Sapphire");
static const u8 sText_Emerald[] = _("Emerald");
static const u8 sText_BerryProgramWillBeUpdatedPressA[] = _("The Berry Program on your POKéMON\n"
"Ruby/Sapphire Game Pak will be updated.\n"
"{COLOR RED}{SHADOW LIGHT_RED}Press the A Button.");
static const u8 sText_EnsureGBAConnectionMatches[] = _("Please ensure the connection of your\n"
"Game Boy Advance system matches this.\n"
"{COLOR RED}{SHADOW LIGHT_RED}YES: Press the A Button.\n"
"NO: Turn off the power and try again.");
static const u8 sText_TurnOffPowerHoldingStartSelect[] = _("Please turn on the power of POKéMON\n"
"Ruby/Sapphire while holding START and\n"
"SELECT simultaneously. Then, ensure\n"
"the picture above appears.");
static const u8 sText_TransmittingPleaseWait[] = _("Transmitting. Please wait.\n"
"{COLOR RED}{SHADOW LIGHT_RED}Please do not turn off the power or\n"
"unplug the Game Boy Advance Game\nLink Cable.");
static const u8 sText_PleaseFollowInstructionsOnScreen[] = _("Please follow the instructions on your\n"
"POKéMON Ruby/Sapphire screen.");
static const u8 sText_TransmissionFailureTryAgain[] = _("Transmission failure.\n"
"{COLOR RED}{SHADOW LIGHT_RED}Please try again.");
static const u8 sText_BerryProgramWillBeUpdatedPressA[] = _(
"The Berry Program on your POKéMON\n"
"Ruby/Sapphire Game Pak will be updated.\n"
"{COLOR RED}{SHADOW LIGHT_RED}Press the A Button.");
static const u8 sText_EnsureGBAConnectionMatches[] = _(
"Please ensure the connection of your\n"
"Game Boy Advance system matches this.\n"
"{COLOR RED}{SHADOW LIGHT_RED}YES: Press the A Button.\n"
"NO: Turn off the power and try again.");
static const u8 sText_TurnOffPowerHoldingStartSelect[] = _(
"Please turn on the power of POKéMON\n"
"Ruby/Sapphire while holding START and\n"
"SELECT simultaneously. Then, ensure\n"
"the picture above appears.");
static const u8 sText_TransmittingPleaseWait[] = _(
"Transmitting. Please wait.\n"
"{COLOR RED}{SHADOW LIGHT_RED}Please do not turn off the power or\n"
"unplug the Game Boy Advance Game\nLink Cable.");
static const u8 sText_PleaseFollowInstructionsOnScreen[] = _(
"Please follow the instructions on your\n"
"POKéMON Ruby/Sapphire screen.");
static const u8 sText_TransmissionFailureTryAgain[] = _(
"Transmission failure.\n"
"{COLOR RED}{SHADOW LIGHT_RED}Please try again.");
#elif FRENCH
static const u8 sText_BerryProgramUpdate[] = _("Mise à jour du Programme Baie");
static const u8 sText_RubySapphire[] = _("Rubis/Saphir");
static const u8 sText_Emerald[] = _("Emeraude");
static const u8 sText_BerryProgramWillBeUpdatedPressA[] = _(
"Le Programme Baie sur votre\n"
"cartouche Rubis/Saphir va être\n"
"mis à jour.\n"
"{COLOR 4}{SHADOW 5}Appuyez sur le bouton A.");
static const u8 sText_EnsureGBAConnectionMatches[] = _(
"Veuillez vérifier que vos Game Boy\n"
"Advance sont connectées correctement.\n"
"{COLOR 4}{SHADOW 5}Oui: Bouton A.\n"
"Non: Eteindre et recommencer.");
static const u8 sText_TurnOffPowerHoldingStartSelect[] = _(
"Veuillez allumer la console POKéMON\n"
"Rubis/Saphir en maintenant enfoncés\n"
"simultanément START et SELECT.\n"
"Assurez-vous que ce logo apparaît.");
static const u8 sText_TransmittingPleaseWait[] = _(
"Transmission en cours…\n"
"{COLOR 4}{SHADOW 5}Néteignez pas votre Game Boy\n"
"Advance et ne retirez pas le câble\n"
"Game Boy Advance Game Link.");
static const u8 sText_PleaseFollowInstructionsOnScreen[] = _(
"Veuillez suivre les instructions sur\n"
"lécran de POKéMON Rubis/Saphir.");
static const u8 sText_TransmissionFailureTryAgain[] = _(
"Echec de la transmission.\n"
"{COLOR 4}{SHADOW 5}Veuillez réessayer.");
#endif
static const struct BgTemplate sBerryFixBgTemplates[] = {
{

View File

@@ -109,7 +109,11 @@ static const struct WindowTemplate sWindowTemplates[] =
.width = 8,
.height = 2,
.paletteNum = 15,
#if ENGLISH
.baseBlock = 69,
#elif FRENCH
.baseBlock = 72,
#endif
},
{ // WIN_SIZE_FIRM
.bg = 1,
@@ -118,16 +122,29 @@ static const struct WindowTemplate sWindowTemplates[] =
.width = 18,
.height = 4,
.paletteNum = 15,
#if ENGLISH
.baseBlock = 85,
#elif FRENCH
.baseBlock = 88,
#endif
},
{ // WIN_DESC
.bg = 1,
#if ENGLISH
.tilemapLeft = 4,
.tilemapTop = 14,
.width = 25,
.height = 4,
.paletteNum = 15,
.baseBlock = 157,
#elif FRENCH
.tilemapLeft = 3,
.tilemapTop = 14,
.width = 27,
.height = 4,
.paletteNum = 15,
.baseBlock = 160,
#endif
},
{ // WIN_BERRY_TAG
.bg = 0,
@@ -136,7 +153,11 @@ static const struct WindowTemplate sWindowTemplates[] =
.width = 8,
.height = 2,
.paletteNum = 15,
#if ENGLISH
.baseBlock = 257,
#elif FRENCH
.baseBlock = 268,
#endif
},
DUMMY_WIN_TEMPLATE
};
@@ -399,8 +420,14 @@ static void PrintAllBerryData(void)
static void PrintBerryNumberAndName(void)
{
#if ENGLISH
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
ConvertIntToDecimalStringN(gStringVar1, sBerryTag->berryId, STR_CONV_MODE_LEADING_ZEROS, 2);
#elif FRENCH
const struct Berry *berry;
ConvertIntToDecimalStringN(gStringVar1, sBerryTag->berryId, STR_CONV_MODE_LEADING_ZEROS, 2);
berry = GetBerryInfo(sBerryTag->berryId);
#endif
StringCopy(gStringVar2, berry->name);
StringExpandPlaceholders(gStringVar4, gText_NumberVar1Var2);
PrintTextInBerryTagScreen(WIN_BERRY_NAME, gStringVar4, 0, 1, 0, 0);
@@ -412,6 +439,7 @@ static void PrintBerrySize(void)
AddTextPrinterParameterized(WIN_SIZE_FIRM, FONT_NORMAL, gText_SizeSlash, 0, 1, TEXT_SKIP_DRAW, NULL);
if (berry->size != 0)
{
#if ENGLISH
u32 inches, fraction;
inches = 1000 * berry->size / 254;
@@ -422,6 +450,10 @@ static void PrintBerrySize(void)
ConvertIntToDecimalStringN(gStringVar1, inches, STR_CONV_MODE_LEFT_ALIGN, 2);
ConvertIntToDecimalStringN(gStringVar2, fraction, STR_CONV_MODE_LEFT_ALIGN, 2);
#elif FRENCH
ConvertIntToDecimalStringN(gStringVar1, berry->size / 10, STR_CONV_MODE_LEFT_ALIGN, 2);
ConvertIntToDecimalStringN(gStringVar2, berry->size % 10, STR_CONV_MODE_LEFT_ALIGN, 2);
#endif
StringExpandPlaceholders(gStringVar4, gText_Var1DotVar2);
AddTextPrinterParameterized(WIN_SIZE_FIRM, FONT_NORMAL, gStringVar4, 0x28, 1, 0, NULL);
}
@@ -444,13 +476,21 @@ static void PrintBerryFirmness(void)
static void PrintBerryDescription1(void)
{
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
#if ENGLISH
AddTextPrinterParameterized(WIN_DESC, FONT_NORMAL, berry->description1, 0, 1, 0, NULL);
#elif FRENCH
AddTextPrinterParameterized(WIN_DESC, FONT_NORMAL, berry->description1, 5, 1, 0, NULL);
#endif
}
static void PrintBerryDescription2(void)
{
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
AddTextPrinterParameterized(WIN_DESC, FONT_NORMAL, berry->description2, 0, 0x11, 0, NULL);
#if ENGLISH
AddTextPrinterParameterized(WIN_DESC, FONT_NORMAL, berry->description2, 0, 17, 0, NULL);
#elif FRENCH
AddTextPrinterParameterized(WIN_DESC, FONT_NORMAL, berry->description2, 5, 17, 0, NULL);
#endif
}
static void CreateBerrySprite(void)

View File

@@ -87,7 +87,9 @@ static EWRAM_DATA bool8 sUsedSpeedUp = 0; // Never read
static EWRAM_DATA struct CreditsData *sCreditsData = {0};
static const u16 sCredits_Pal[] = INCBIN_U16("graphics/credits/credits.gbapal");
#if ENGLISH
static const u32 sCreditsCopyrightEnd_Gfx[] = INCBIN_U32("graphics/credits/the_end_copyright.4bpp.lz");
#endif
static void SpriteCB_CreditsMonBg(struct Sprite *);
static void Task_WaitPaletteFade(u8);
@@ -118,6 +120,7 @@ static void SpriteCB_Rival(struct Sprite *);
static u8 CreateCreditsMonSprite(u16, s16, s16, u16);
static void DeterminePokemonToShow(void);
#if ENGLISH
static const u8 sTheEnd_LetterMap_T[] =
{
0, 1, 0,
@@ -162,6 +165,7 @@ static const u8 sTheEnd_LetterMap_D[] =
1, 0x88, 0x89,
1, 0x86, 0x87,
};
#endif
#include "data/credits.h"
@@ -784,7 +788,11 @@ static void Task_UpdatePage(u8 taskId)
case 3:
if (!gPaletteFade.active)
{
#if ENGLISH
gTasks[taskId].tDelay = 115;
#elif FRENCH
gTasks[taskId].tDelay = 121;
#endif
gTasks[taskId].tState++;
}
return;
@@ -918,7 +926,11 @@ static void Task_ShowMons(u8 taskId)
if (sCreditsData->currShownMon < sCreditsData->numMonToShow - 1)
{
sCreditsData->currShownMon++;
#if ENGLISH
gSprites[spriteId].data[3] = 50;
#elif FRENCH
gSprites[spriteId].data[3] = 52;
#endif
}
else
{
@@ -932,7 +944,11 @@ static void Task_ShowMons(u8 taskId)
else
sCreditsData->nextImgPos++;
#if ENGLISH
gTasks[taskId].tDelay = 50;
#elif FRENCH
gTasks[taskId].tDelay = 52;
#endif
gTasks[taskId].tState++;
break;
case 3:
@@ -1077,8 +1093,11 @@ static void Task_CycleSceneryPalette(u8 taskId)
case SCENE_FOREST_CATCH_RIVAL:
if (gTasks[taskId].tTimer != TIMER_STOP)
{
#if ENGLISH
if (gTasks[taskId].tTimer == 584)
#elif FRENCH
if (gTasks[taskId].tTimer == 620)
#endif
{
gTasks[gTasks[gTasks[taskId].tMainTaskId].tTaskId_BikeScene].tState = 10;
gTasks[taskId].tTimer = TIMER_STOP;
@@ -1290,6 +1309,7 @@ static void LoadTheEndScreen(u16 tileOffsetLoad, u16 tileOffsetWrite, u16 palOff
u16 baseTile;
u16 i;
#if ENGLISH
LZ77UnCompVram(sCreditsCopyrightEnd_Gfx, (void *)(VRAM + tileOffsetLoad));
LoadPalette(gIntroCopyright_Pal, palOffset, sizeof(gIntroCopyright_Pal));
@@ -1297,8 +1317,18 @@ static void LoadTheEndScreen(u16 tileOffsetLoad, u16 tileOffsetWrite, u16 palOff
for (i = 0; i < 32 * 32; i++)
((u16 *) (VRAM + tileOffsetWrite))[i] = baseTile + 1;
#elif FRENCH
LZ77UnCompVram(gCreditsCopyrightEnd_Gfx, (void *)(VRAM + tileOffsetLoad));
LoadPalette(gIntroCopyright_Pal, palOffset, sizeof(gIntroCopyright_Pal));
baseTile = (palOffset / 16) << 12;
for (i = 0; i < 32 * 32; i++)
((u16 *) (VRAM + tileOffsetWrite))[i] = baseTile;
#endif
}
#if ENGLISH
static u16 GetLetterMapTile(u8 baseTiles)
{
u16 out = (baseTiles & 0x3F) + 80;
@@ -1341,6 +1371,12 @@ static void DrawTheEnd(u16 offset, u16 palette)
DrawLetterMapTiles(sTheEnd_LetterMap_N, 20, 7, offset, palette);
DrawLetterMapTiles(sTheEnd_LetterMap_D, 24, 7, offset, palette);
}
#elif FRENCH
static void DrawTheEnd(u16 offset, u16 palette)
{
LZ77UnCompVram(gCreditsCopyrightEnd_Tilemap, ((u16 *) (VRAM + offset)));
}
#endif
#define sState data[0]

View File

@@ -1523,8 +1523,114 @@ const u16 gBerryCrush_Crusher_Pal[] = INCBIN_U16("graphics/berry_crush/crusher.g
const u32 gBerryCrush_Crusher_Gfx[] = INCBIN_U32("graphics/berry_crush/crusher.4bpp.lz");
const u32 gBerryCrush_TextWindows_Tilemap[] = INCBIN_U32("graphics/berry_crush/text_windows.bin.lz");
#if FRENCH
// Moved from other files in the french version.
// credits
const u32 gCreditsCopyrightEnd_Gfx[] = INCBIN_U32("graphics/credits/the_end_copyright_fr.4bpp.lz");
const u32 gCreditsCopyrightEnd_Tilemap[] = INCBIN_U32("graphics/credits/the_end_copyright_fr.bin.lz");
const u16 g321Start_Pal[] = INCBIN_U16("graphics/link/321start.gbapal");
const u32 g321Start_Gfx[] = INCBIN_U32("graphics/link/321start.4bpp.lz");
// poke jump
const u16 gPokeJumpBonuses_Pal[] = INCBIN_U16("graphics/pokemon_jump/bonuses.gbapal");
const u32 gPokeJumpBonuses_Gfx[] = INCBIN_U32("graphics/pokemon_jump/bonuses.4bpp.lz");
const u32 gPokeJumpBonuses_Tilemap[] = INCBIN_U32("graphics/pokemon_jump/bonuses.bin.lz");
const u16 gBlenderCenter_Pal[] = INCBIN_U16("graphics/berry_blender/center.gbapal");
// tiles shop
const u16 gTilesetPalettes_Shop[][16] =
{
INCBIN_U16("data/tilesets/secondary/shop/palettes/00.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/01.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/02.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/03.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/04.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/05.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/06.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/07.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/08.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/09.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/10.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/11.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/12.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/13.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/14.gbapal"),
INCBIN_U16("data/tilesets/secondary/shop/palettes/15.gbapal"),
};
const u32 gTilesetTiles_Shop[] = INCBIN_U32("data/tilesets/secondary/shop/tiles.4bpp.lz");
// roulette
const u16 gRouletteShadow_Pal[] = INCBIN_U16("graphics/roulette/shadow.gbapal");
const u16 gRouletteBall_Pal[] = INCBIN_U16("graphics/roulette/ball.gbapal");
const u16 gRouletteBallCounter_Pal[] = INCBIN_U16("graphics/roulette/ball_counter.gbapal");
const u16 gRouletteCursor_Pal[] = INCBIN_U16("graphics/roulette/cursor.gbapal");
const u16 gRouletteCredit_Pal[] = INCBIN_U16("graphics/roulette/credit.gbapal");
const u16 gRouletteShroomish_Pal[] = INCBIN_U16("graphics/roulette/shroomish.gbapal");
const u16 gRouletteTaillow_Pal[] = INCBIN_U16("graphics/roulette/tailow.gbapal");
const u16 gRouletteGridIcons_Pal[] = INCBIN_U16("graphics/roulette/grid_icons.gbapal");
const u16 gRouletteWynaut_Pal[] = INCBIN_U16("graphics/roulette/wynaut.gbapal");
const u16 gRouletteAzurill_Pal[] = INCBIN_U16("graphics/roulette/azurill.gbapal");
const u16 gRouletteSkitty_Pal[] = INCBIN_U16("graphics/roulette/skitty.gbapal");
const u16 gRouletteMakuhita_Pal[] = INCBIN_U16("graphics/roulette/makuhita.gbapal");
const u16 gRouletteUnused1_Pal[] = INCBIN_U16("graphics/roulette/unused_1.gbapal");
const u16 gRouletteUnused2_Pal[] = INCBIN_U16("graphics/roulette/unused_2.gbapal");
const u16 gRouletteUnused3_Pal[] = INCBIN_U16("graphics/roulette/unused_3.gbapal");
const u16 gRouletteUnused4_Pal[] = INCBIN_U16("graphics/roulette/unused_4.gbapal");
// frontier pass
const u32 gFrontierPassMapScreen_Gfx[] = INCBIN_U32("graphics/frontier_pass/map_screen.4bpp.lz");
// tiles battle dome
const u16 gTilesetPalettes_BattleDome[][16] =
{
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/00.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/01.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/02.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/03.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/04.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/05.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/06.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/07.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/08.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/09.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/10.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/11.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/12.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/13.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/14.gbapal"),
INCBIN_U16("data/tilesets/secondary/battle_dome/palettes/15.gbapal"),
};
const u32 gTilesetTiles_BattleDome[] = INCBIN_U32("data/tilesets/secondary/battle_dome/tiles.4bpp.lz");
// pokenav match call gfx
const u16 gMatchCallUI_Pal[] = INCBIN_U16("graphics/pokenav/match_call/ui.gbapal");
const u32 gMatchCallUI_Gfx[] = INCBIN_U32("graphics/pokenav/match_call/ui.4bpp.lz");
const u32 gMatchCallUI_Tilemap[] = INCBIN_U32("graphics/pokenav/match_call/ui.bin.lz");
// pokenav conditions search results
const u16 gConditionSearchResultFramePal[] = INCBIN_U16("graphics/pokenav/condition/search_results.gbapal");
const u32 gConditionSearchResultTiles[] = INCBIN_U32("graphics/pokenav/condition/search_results.4bpp.lz");
const u32 gConditionSearchResultTilemap[] = INCBIN_U32("graphics/pokenav/condition/search_results.bin.lz");
// pokenav ribbons list
const u16 gMonRibbonListFramePal[] = INCBIN_U16("graphics/pokenav/ribbons/list_bg.gbapal");
const u32 gMonRibbonListFrameTiles[] = INCBIN_U32("graphics/pokenav/ribbons/list_bg.4bpp.lz");
const u32 gMonRibbonListFrameTilemap[] = INCBIN_U32("graphics/pokenav/ribbons/list_bg.bin.lz");
// pokedex
const u16 gCryMeter_Pal[] = INCBIN_U16("graphics/pokedex/cry_meter.gbapal");
const u8 gCryMeter_Gfx[] = INCBIN_U8("graphics/pokedex/cry_meter.4bpp.lz");
#endif
// random garbage at the end.
#if ENGLISH
static const u8 sEmpty3[0x54BAC] = {0};
#elif FRENCH
static const u8 sEmpty3[0x4EA98] = {0};
#endif
static const u8 sUnused1[] = {0x0D, 0x00, 0x58, 0x02};
static const u8 sEmpty4[0x1145] = {0};
static const u8 sUnused2[] = {0x02};