mirror of
https://github.com/pret/pokeemerald.git
synced 2026-08-25 20:01:34 -05:00
(56/654)
This commit is contained in:
@@ -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::
|
||||
|
||||
BIN
graphics/credits/the_end_copyright_fr.bin
Normal file
BIN
graphics/credits/the_end_copyright_fr.bin
Normal file
Binary file not shown.
BIN
graphics/credits/the_end_copyright_fr.png
Normal file
BIN
graphics/credits/the_end_copyright_fr.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 314 B |
@@ -17,7 +17,7 @@
|
||||
|
||||
// Using English as default.
|
||||
#if !defined(ENGLISH) && !defined(FRENCH)
|
||||
#define FRENCH 1
|
||||
#define ENGLISH 1
|
||||
#endif
|
||||
|
||||
#if ENGLISH
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 n’avez 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} n’a 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);
|
||||
|
||||
|
||||
@@ -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[] = {
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
106
src/graphics.c
106
src/graphics.c
@@ -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};
|
||||
|
||||
Reference in New Issue
Block a user