diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/contest_painting.c | 10 | ||||
-rw-r--r-- | src/mystery_event_script.c | 16 | ||||
-rw-r--r-- | src/option_menu.c | 93 | ||||
-rw-r--r-- | src/pokemon_summary_screen.c | 6 | ||||
-rw-r--r-- | src/starter_choose.c | 159 |
5 files changed, 272 insertions, 12 deletions
diff --git a/src/contest_painting.c b/src/contest_painting.c index eddcc87c1..d75947e05 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -263,15 +263,23 @@ static void ContestPaintingPrintCaption(u8 contestType, u8 arg1) { ptr = StringCopy(ptr, gUnknown_083F60AC[type]); ptr = StringCopy(ptr, gContestText_ContestWinner); +#if ENGLISH ptr = StringCopy(ptr, gUnknown_03005E8C->trainer_name); +#elif GERMAN + ptr = StringCopy10(ptr, gUnknown_03005E8C->pokemon_name); +#endif - // {ENG} + // {LATIN} ptr[0] = 0xFC; ptr[1] = 0x16; ptr += 2; ptr = StringCopy(ptr, gOtherText_Unknown1); +#if ENGLISH ptr = StringCopy10(ptr, gUnknown_03005E8C->pokemon_name); +#elif GERMAN + ptr = StringCopy(ptr, gUnknown_03005E8C->trainer_name); +#endif xPos = 6; yPos = 14; diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index e3d533d28..45ef719da 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -4,10 +4,16 @@ #include "string_util.h" #include "text.h" +#if ENGLISH +#define UNK_MASK_1 0x2 +#elif GERMAN +#define UNK_MASK_1 0x4 +#endif + #ifdef SAPPHIRE -#define UNK_MASK 0x100 +#define UNK_MASK_2 0x100 #else -#define UNK_MASK 0x80 +#define UNK_MASK_2 0x80 #endif extern struct ScriptContext gUnknown_02039288; @@ -19,16 +25,16 @@ extern u8 gOtherText_DataCannotUseVersion[]; bool32 sub_8126098(u16 a1, u32 a2, u16 a3, u32 a4) { - if (!(a1 & 0x2)) + if (!(a1 & UNK_MASK_1)) return FALSE; - if (!(a2 & 0x2)) + if (!(a2 & UNK_MASK_1)) return FALSE; if (!(a3 & 0x4)) return FALSE; - if (!(a4 & UNK_MASK)) + if (!(a4 & UNK_MASK_2)) return FALSE; return TRUE; diff --git a/src/option_menu.c b/src/option_menu.c index 878df16ba..2463b11c6 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -334,6 +334,17 @@ static u8 TextSpeed_ProcessInput(u8 selection) return selection; } +#if ENGLISH +#define TEXTSPEED_SLOW_LEFT (120) +#define TEXTSPEED_MIX_LEFT (155) +#define TEXTSPEED_FAST_LEFT (184) +#endif +#if GERMAN +#define TEXTSPEED_SLOW_LEFT (120) +#define TEXTSPEED_MIX_LEFT (161) +#define TEXTSPEED_FAST_LEFT (202) +#endif + static void TextSpeed_DrawChoices(u8 selection) { u8 styles[3]; @@ -343,9 +354,9 @@ static void TextSpeed_DrawChoices(u8 selection) styles[2] = 0xF; styles[selection] = 0x8; - DrawOptionMenuChoice(gSystemText_Slow, 120, 40, styles[0]); - DrawOptionMenuChoice(gSystemText_Mid, 155, 40, styles[1]); - DrawOptionMenuChoice(gSystemText_Fast, 184, 40, styles[2]); + DrawOptionMenuChoice(gSystemText_Slow, TEXTSPEED_SLOW_LEFT, 40, styles[0]); + DrawOptionMenuChoice(gSystemText_Mid, TEXTSPEED_MIX_LEFT, 40, styles[1]); + DrawOptionMenuChoice(gSystemText_Fast, TEXTSPEED_FAST_LEFT, 40, styles[2]); } static u8 BattleScene_ProcessInput(u8 selection) @@ -374,6 +385,14 @@ static u8 BattleStyle_ProcessInput(u8 selection) return selection; } +#if ENGLISH +#define BATTLESTYLE_SHIFT (120) +#define BATTLESTYLE_SET (190) +#elif GERMAN +#define BATTLESTYLE_SHIFT (120) +#define BATTLESTYLE_SET (178) +#endif + static void BattleStyle_DrawChoices(u8 selection) { u8 styles[2]; @@ -382,8 +401,8 @@ static void BattleStyle_DrawChoices(u8 selection) styles[1] = 0xF; styles[selection] = 0x8; - DrawOptionMenuChoice(gSystemText_Shift, 120, 72, styles[0]); - DrawOptionMenuChoice(gSystemText_Set, 190, 72, styles[1]); + DrawOptionMenuChoice(gSystemText_Shift, BATTLESTYLE_SHIFT, 72, styles[0]); + DrawOptionMenuChoice(gSystemText_Set, BATTLESTYLE_SET, 72, styles[1]); } static u8 Sound_ProcessInput(u8 selection) @@ -431,6 +450,7 @@ static u8 FrameType_ProcessInput(u8 selection) #define CHAR_0 0xA1 //Character code of '0' character +#if ENGLISH static void FrameType_DrawChoices(u8 selection) { u8 text[8]; @@ -460,6 +480,69 @@ static void FrameType_DrawChoices(u8 selection) MenuPrint(gSystemText_Type, 15, 15); MenuPrint(text, 18, 15); } +#elif GERMAN +__attribute__((naked)) +static void FrameType_DrawChoices(u8 selection) +{ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + sub sp, 0x10\n\ + lsls r0, 24\n\ + movs r1, 0x80\n\ + lsls r1, 17\n\ + adds r0, r1\n\ + lsrs r5, r0, 24\n\ + ldr r1, _0808C368 @ =gSystemText_Type\n\ + mov r0, sp\n\ + bl StringCopy\n\ + ldr r1, _0808C36C @ =gSystemText_Terminator\n\ + mov r0, sp\n\ + bl StringAppend\n\ + adds r4, r0, 0\n\ + adds r0, r5, 0\n\ + movs r1, 0xA\n\ + bl __udivsi3\n\ + adds r1, r0, 0\n\ + lsls r0, r1, 24\n\ + lsrs r6, r0, 24\n\ + cmp r6, 0\n\ + beq _0808C370\n\ + adds r0, r1, 0\n\ + adds r0, 0xA1\n\ + strb r0, [r4]\n\ + adds r4, 0x1\n\ + adds r0, r5, 0\n\ + movs r1, 0xA\n\ + bl __umodsi3\n\ + adds r0, 0xA1\n\ + strb r0, [r4]\n\ + b _0808C380\n\ + .align 2, 0\n\ +_0808C368: .4byte gSystemText_Type\n\ +_0808C36C: .4byte gSystemText_Terminator\n\ +_0808C370:\n\ + adds r0, r5, 0\n\ + movs r1, 0xA\n\ + bl __umodsi3\n\ + adds r0, 0xA1\n\ + strb r0, [r4]\n\ + adds r4, 0x1\n\ + strb r6, [r4]\n\ +_0808C380:\n\ + adds r4, 0x1\n\ + movs r0, 0xFF\n\ + strb r0, [r4]\n\ + mov r0, sp\n\ + movs r1, 0xF\n\ + movs r2, 0xF\n\ + bl MenuPrint\n\ + add sp, 0x10\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided\n"); +} +#endif static u8 ButtonMode_ProcessInput(u8 selection) { diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 61ae11438..00a0bea29 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -81,6 +81,7 @@ void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *pokemon, u8 left, u8 u8 *ptr = gStringVar4; u8 nature = GetNature(pokemon); +#if ENGLISH ptr = sub_80A1E9C(ptr, gNatureNames[nature], 14); if (nature != NATURE_BOLD && nature != NATURE_GENTLE) @@ -89,6 +90,11 @@ void PokemonSummaryScreen_PrintTrainerMemo(struct Pokemon *pokemon, u8 left, u8 } ptr = StringCopy(ptr, gOtherText_Nature); +#elif GERMAN + ptr = StringCopy(gStringVar4, gOtherText_Nature); + ptr = sub_80A1E9C(ptr, gNatureNames[nature], 14); + ptr = StringCopy(ptr, gOtherText_Terminator4); +#endif if (PokemonSummaryScreen_CheckOT(pokemon) == TRUE) { diff --git a/src/starter_choose.c b/src/starter_choose.c index c838f2dc0..2b28df4f0 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -465,7 +465,7 @@ static void Task_StarterChoose6(u8 taskId) gTasks[taskId].func = Task_StarterChoose1; } -static void AddTextColorCtrlCode(u8 *string, u8 bgColor, u8 textColor, u8 shadowColor) +void AddTextColorCtrlCode(u8 *string, u8 bgColor, u8 textColor, u8 shadowColor) { *(string++) = EXT_CTRL_CODE_BEGIN; *(string++) = 4; @@ -480,6 +480,8 @@ static void AddTextColorCtrlCode(u8 *string, u8 bgColor, u8 textColor, u8 shadow *p = c; \ } + +#if ENGLISH static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) { u8 labelText[72]; @@ -545,6 +547,161 @@ static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) REG_WIN0H = WIN_RANGE(labelLeft, labelRight); REG_WIN0V = WIN_RANGE(labelTop, labelBottom); } +#elif GERMAN +__attribute__((naked)) +static void CreateStarterPokemonLabel(u8 prevSelection, u8 selection) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + sub sp, 0x48\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + lsls r1, 24\n\ + lsrs r5, r1, 24\n\ + cmp r0, 0xFF\n\ + beq _0810A872\n\ + ldr r1, _0810A960 @ =gStarterChoose_LabelCoords\n\ + lsls r2, r0, 1\n\ + adds r0, r2, r1\n\ + ldrb r0, [r0]\n\ + adds r1, 0x1\n\ + adds r2, r1\n\ + ldrb r1, [r2]\n\ + adds r2, r0, 0\n\ + adds r2, 0xD\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + adds r3, r1, 0x3\n\ + lsls r3, 24\n\ + lsrs r3, 24\n\ + bl MenuZeroFillWindowRect\n\ + ldr r0, _0810A964 @ =0x04000040\n\ + movs r1, 0\n\ + strh r1, [r0]\n\ + adds r0, 0x4\n\ + strh r1, [r0]\n\ +_0810A872:\n\ + adds r0, r5, 0\n\ + bl GetStarterPokemon\n\ + lsls r0, 16\n\ + lsrs r6, r0, 16\n\ + adds r0, r6, 0\n\ + bl SpeciesToNationalPokedexNum\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + bl GetPokemonCategory\n\ + adds r4, r0, 0\n\ + mov r0, sp\n\ + movs r1, 0\n\ + movs r2, 0xF\n\ + movs r3, 0x8\n\ + bl AddTextColorCtrlCode\n\ + movs r2, 0x8\n\ + movs r3, 0\n\ + ldrb r0, [r4]\n\ + lsls r5, 1\n\ + mov r7, sp\n\ + adds r7, 0x5\n\ + cmp r0, 0xFF\n\ + beq _0810A8CA\n\ +_0810A8A8:\n\ + mov r0, sp\n\ + adds r1, r0, r2\n\ + adds r0, r4, r3\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + adds r0, r2, 0x1\n\ + lsls r0, 24\n\ + lsrs r2, r0, 24\n\ + adds r0, r4, r3\n\ + ldrb r0, [r0]\n\ + cmp r0, 0xFF\n\ + beq _0810A8CA\n\ + cmp r3, 0xA\n\ + bls _0810A8A8\n\ +_0810A8CA:\n\ + mov r0, sp\n\ + adds r1, r0, r2\n\ + movs r0, 0xFF\n\ + strb r0, [r1]\n\ + mov r1, sp\n\ + movs r0, 0xFC\n\ + strb r0, [r1, 0x5]\n\ + movs r0, 0x11\n\ + strb r0, [r1, 0x6]\n\ + mov r2, sp\n\ + lsls r1, r3, 1\n\ + adds r1, r3\n\ + lsls r1, 1\n\ + movs r0, 0x70\n\ + subs r0, r1\n\ + asrs r0, 1\n\ + strb r0, [r2, 0x7]\n\ + ldr r0, _0810A960 @ =gStarterChoose_LabelCoords\n\ + adds r1, r5, r0\n\ + ldrb r4, [r1]\n\ + adds r0, 0x1\n\ + adds r0, r5, r0\n\ + ldrb r5, [r0]\n\ + mov r0, sp\n\ + adds r1, r4, 0\n\ + adds r2, r5, 0\n\ + bl MenuPrint\n\ + mov r0, sp\n\ + movs r1, 0\n\ + movs r2, 0xF\n\ + movs r3, 0x8\n\ + bl AddTextColorCtrlCode\n\ + movs r0, 0xB\n\ + adds r1, r6, 0\n\ + muls r1, r0\n\ + ldr r0, _0810A968 @ =gSpeciesNames\n\ + adds r1, r0\n\ + adds r0, r7, 0\n\ + movs r2, 0x70\n\ + movs r3, 0x2\n\ + bl sub_8072C74\n\ + adds r2, r5, 0x2\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + mov r0, sp\n\ + adds r1, r4, 0\n\ + bl MenuPrint\n\ + lsls r0, r4, 3\n\ + adds r0, 0x4\n\ + lsls r0, 24\n\ + adds r4, 0xD\n\ + lsls r4, 3\n\ + adds r4, 0x4\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + lsls r1, r5, 27\n\ + adds r5, 0x4\n\ + lsls r5, 27\n\ + lsrs r5, 24\n\ + ldr r2, _0810A964 @ =0x04000040\n\ + lsrs r0, 16\n\ + orrs r0, r4\n\ + strh r0, [r2]\n\ + ldr r0, _0810A96C @ =0x04000044\n\ + lsrs r1, 16\n\ + orrs r1, r5\n\ + strh r1, [r0]\n\ + add sp, 0x48\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_0810A960: .4byte gStarterChoose_LabelCoords\n\ +_0810A964: .4byte 0x04000040\n\ +_0810A968: .4byte gSpeciesNames\n\ +_0810A96C: .4byte 0x04000044\n\ + .syntax divided\n"); +} +#endif static void nullsub_72(struct Sprite *sprite) { |