diff options
Diffstat (limited to 'src/script_menu.c')
-rw-r--r-- | src/script_menu.c | 189 |
1 files changed, 23 insertions, 166 deletions
diff --git a/src/script_menu.c b/src/script_menu.c index 03aef9813..5488bed3e 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -895,17 +895,38 @@ bool8 ScriptMenu_CreatePCMultichoice(void) } } -#if ENGLISH void ScriptMenu_CreatePCMenu(void) { - u16 playersPCWidth = GetStringWidthInTilesForScriptMenu(gPCText_PlayersPC); u8 width; u8 numChoices; +#if ENGLISH + u16 playersPCWidth = GetStringWidthInTilesForScriptMenu(gPCText_PlayersPC); if (playersPCWidth > GetStringWidthInTilesForScriptMenu(gPCText_SomeonesPC)) width = playersPCWidth; else width = 8; +#elif GERMAN + s32 sp8[4]; + s32 r4 = 0; + s32 r5; + + if (FlagGet(FLAG_SYS_PC_LANETTE)) + sp8[r4++] = GetStringWidthInTilesForScriptMenu(gPCText_LanettesPC); + else + sp8[r4++] = GetStringWidthInTilesForScriptMenu(gPCText_SomeonesPC); + sp8[r4++] = GetStringWidthInTilesForScriptMenu(gPCText_PlayersPC); + sp8[r4++] = GetStringWidthInTilesForScriptMenu(gPCText_LogOff); + if (FlagGet(FLAG_SYS_GAME_CLEAR)) + sp8[r4++] = GetStringWidthInTilesForScriptMenu(gPCText_HallOfFame); + + width = 0; + for (r5 = 0; r5 < r4; r5++) + { + if (width < sp8[r5]) + width = sp8[r5]; + } +#endif if (FlagGet(FLAG_SYS_GAME_CLEAR)) // player has cleared game? { @@ -930,170 +951,6 @@ void ScriptMenu_CreatePCMenu(void) InitMenu(0, 1, 1, numChoices, 0, width + 1); StartScriptMenuTask(0, 0, width + 2, 2 * numChoices + 1, 0, numChoices); } -#elif GERMAN -NAKED -void ScriptMenu_CreatePCMenu(void) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - sub sp, 0x18\n\ - ldr r0, _080B5748 @ =0x0000084b\n\ - bl FlagGet\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _080B5750\n\ - ldr r0, _080B574C @ =gPCText_LanettesPC\n\ - b _080B5752\n\ - .align 2, 0\n\ -_080B5748: .4byte 0x0000084b\n\ -_080B574C: .4byte gPCText_LanettesPC\n\ -_080B5750:\n\ - ldr r0, _080B57E8 @ =gPCText_SomeonesPC\n\ -_080B5752:\n\ - bl GetStringWidthInTilesForScriptMenu\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x8]\n\ - movs r4, 0x1\n\ - ldr r0, _080B57EC @ =gPCText_PlayersPC\n\ - bl GetStringWidthInTilesForScriptMenu\n\ - lsls r1, r4, 2\n\ - add r1, sp\n\ - adds r1, 0x8\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [r1]\n\ - ldr r0, _080B57F0 @ =gPCText_LogOff\n\ - bl GetStringWidthInTilesForScriptMenu\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x10]\n\ - movs r4, 0x3\n\ - ldr r0, _080B57F4 @ =0x00000804\n\ - bl FlagGet\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _080B5798\n\ - ldr r0, _080B57F8 @ =gPCText_HallOfFame\n\ - bl GetStringWidthInTilesForScriptMenu\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x14]\n\ - movs r4, 0x4\n\ -_080B5798:\n\ - movs r5, 0\n\ - cmp r5, r4\n\ - bge _080B57B4\n\ - add r2, sp, 0x8\n\ - adds r1, r4, 0\n\ -_080B57A2:\n\ - ldr r0, [r2]\n\ - cmp r5, r0\n\ - bge _080B57AC\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ -_080B57AC:\n\ - adds r2, 0x4\n\ - subs r1, 0x1\n\ - cmp r1, 0\n\ - bne _080B57A2\n\ -_080B57B4:\n\ - ldr r0, _080B57F4 @ =0x00000804\n\ - bl FlagGet\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _080B57FC\n\ - movs r7, 0x4\n\ - adds r4, r5, 0x2\n\ - lsls r2, r4, 24\n\ - lsrs r2, 24\n\ - movs r0, 0\n\ - movs r1, 0\n\ - movs r3, 0x9\n\ - bl Menu_DrawStdWindowFrame\n\ - ldr r0, _080B57F8 @ =gPCText_HallOfFame\n\ - movs r1, 0x1\n\ - movs r2, 0x5\n\ - bl Menu_PrintText\n\ - ldr r0, _080B57F0 @ =gPCText_LogOff\n\ - movs r1, 0x1\n\ - movs r2, 0x7\n\ - bl Menu_PrintText\n\ - b _080B5818\n\ - .align 2, 0\n\ -_080B57E8: .4byte gPCText_SomeonesPC\n\ -_080B57EC: .4byte gPCText_PlayersPC\n\ -_080B57F0: .4byte gPCText_LogOff\n\ -_080B57F4: .4byte 0x00000804\n\ -_080B57F8: .4byte gPCText_HallOfFame\n\ -_080B57FC:\n\ - movs r7, 0x3\n\ - adds r4, r5, 0x2\n\ - lsls r2, r4, 24\n\ - lsrs r2, 24\n\ - movs r0, 0\n\ - movs r1, 0\n\ - movs r3, 0x7\n\ - bl Menu_DrawStdWindowFrame\n\ - ldr r0, _080B5834 @ =gPCText_LogOff\n\ - movs r1, 0x1\n\ - movs r2, 0x5\n\ - bl Menu_PrintText\n\ -_080B5818:\n\ - adds r6, r4, 0\n\ - ldr r0, _080B5838 @ =0x0000084b\n\ - bl FlagGet\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _080B5840\n\ - ldr r0, _080B583C @ =gPCText_LanettesPC\n\ - movs r1, 0x1\n\ - movs r2, 0x1\n\ - bl Menu_PrintText\n\ - b _080B584A\n\ - .align 2, 0\n\ -_080B5834: .4byte gPCText_LogOff\n\ -_080B5838: .4byte 0x0000084b\n\ -_080B583C: .4byte gPCText_LanettesPC\n\ -_080B5840:\n\ - ldr r0, _080B5888 @ =gPCText_SomeonesPC\n\ - movs r1, 0x1\n\ - movs r2, 0x1\n\ - bl Menu_PrintText\n\ -_080B584A:\n\ - ldr r0, _080B588C @ =gPCText_PlayersPC\n\ - movs r1, 0x1\n\ - movs r2, 0x3\n\ - bl Menu_PrintText\n\ - movs r4, 0\n\ - str r4, [sp]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x4]\n\ - movs r0, 0\n\ - movs r1, 0x1\n\ - movs r2, 0x1\n\ - adds r3, r7, 0\n\ - bl InitMenu\n\ - lsls r2, r6, 24\n\ - lsrs r2, 24\n\ - lsls r3, r7, 1\n\ - adds r3, 0x1\n\ - str r4, [sp]\n\ - str r7, [sp, 0x4]\n\ - movs r0, 0\n\ - movs r1, 0\n\ - bl StartScriptMenuTask\n\ - add sp, 0x18\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_080B5888: .4byte gPCText_SomeonesPC\n\ -_080B588C: .4byte gPCText_PlayersPC\n\ - .syntax divided\n"); -} -#endif void ScriptMenu_DisplayPCStartupPrompt(void) { |