thru DisplayYesNoMenuDefaultNo()

This commit is contained in:
jiangzhengwenjz
2019-06-25 05:47:01 +08:00
parent cc937d33b4
commit 0d46c60b38
14 changed files with 104 additions and 338 deletions
+1 -1
View File
@@ -2946,7 +2946,7 @@ _0814D1A6:
strb r0, [r5, 0xC]
b _0814D238
_0814D1CA:
bl sub_80F7858
bl DisplayYesNoMenuDefaultYes
b _0814D230
_0814D1D0:
bl Menu_ProcessInputNoWrapClearOnChoose
+1 -1
View File
@@ -55,7 +55,7 @@ sub_808078C: @ 808078C
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
bl sub_80F7750
bl SetStdWindowBorderStyle
ldr r5, _080807E0 @ =gStringVar4
ldr r1, _080807E4 @ =gUnknown_841DF82
adds r0, r5, 0
+2 -2
View File
@@ -6185,7 +6185,7 @@ sub_8086358: @ 8086358
movs r1, 0
movs r2, 0
bl ChangeBgY
bl sub_80F77B8
bl Menu_LoadStdPal
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
@@ -6568,7 +6568,7 @@ sub_8086650: @ 8086650
movs r1, 0
movs r2, 0
bl ChangeBgY
bl sub_80F77B8
bl Menu_LoadStdPal
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
+1 -1
View File
@@ -2631,7 +2631,7 @@ _080CB9D2:
lsrs r0, 24
strh r0, [r5, 0x22]
movs r1, 0
bl sub_80F7750
bl SetStdWindowBorderStyle
ldr r4, _080CBA70 @ =gUnknown_3005360
ldrh r0, [r5, 0xA]
strh r0, [r4, 0xC]
+2 -2
View File
@@ -8578,7 +8578,7 @@ _0811A15E:
negs r0, r0
b _0811A1A4
_0811A168:
bl sub_80F7858
bl DisplayYesNoMenuDefaultYes
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
@@ -12967,7 +12967,7 @@ _0811C300:
movs r1, 0x1
movs r2, 0xD0
bl TextWindow_SetStdFrame0_WithPal
bl sub_80F77B8
bl Menu_LoadStdPal
ldr r0, _0811C35C @ =sub_811C1B4
bl SetVBlankCallback
ldr r1, _0811C360 @ =gMain
+1 -1
View File
@@ -60,7 +60,7 @@ sub_810EBAC: @ 810EBAC
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0
bl sub_80F7750
bl SetStdWindowBorderStyle
_0810EBD0:
ldrb r0, [r4]
pop {r4}
+1 -309
View File
@@ -4,314 +4,6 @@
.syntax unified
.text
/*
thumb_func_start WindowFunc_ClearStdWindowAndFrame
WindowFunc_ClearStdWindowAndFrame: @ 80F7684
push {r4,r5,lr}
sub sp, 0xC
adds r4, r1, 0
adds r5, r2, 0
ldr r1, [sp, 0x18]
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsls r5, 24
lsls r3, 24
lsls r1, 24
movs r2, 0xFF
lsls r2, 24
adds r4, r2
lsrs r4, 24
adds r5, r2
lsrs r5, 24
movs r2, 0x80
lsls r2, 18
adds r3, r2
lsrs r3, 24
str r3, [sp]
adds r1, r2
lsrs r1, 24
str r1, [sp, 0x4]
movs r1, 0xE
str r1, [sp, 0x8]
movs r1, 0
adds r2, r4, 0
adds r3, r5, 0
bl FillBgTilemapBufferRect
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end WindowFunc_ClearStdWindowAndFrame
thumb_func_start WindowFunc_ClearDialogWindowAndFrame
WindowFunc_ClearDialogWindowAndFrame: @ 80F76CC
push {r4,r5,lr}
sub sp, 0xC
adds r4, r1, 0
adds r5, r2, 0
ldr r1, [sp, 0x18]
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsls r5, 24
lsls r3, 24
lsls r1, 24
movs r2, 0xFE
lsls r2, 24
adds r4, r2
lsrs r4, 24
movs r2, 0xFF
lsls r2, 24
adds r5, r2
lsrs r5, 24
movs r2, 0x80
lsls r2, 19
adds r3, r2
lsrs r3, 24
str r3, [sp]
movs r2, 0x80
lsls r2, 18
adds r1, r2
lsrs r1, 24
str r1, [sp, 0x4]
movs r1, 0xE
str r1, [sp, 0x8]
movs r1, 0
adds r2, r4, 0
adds r3, r5, 0
bl FillBgTilemapBufferRect
add sp, 0xC
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end WindowFunc_ClearDialogWindowAndFrame
*/
thumb_func_start sub_80F771C
sub_80F771C: @ 80F771C
push {r4,lr}
sub sp, 0xC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x20
str r0, [sp]
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
cmp r4, 0x1
bne _080F7746
movs r0, 0
bl CopyBgTilemapBufferToVram
_080F7746:
add sp, 0xC
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80F771C
thumb_func_start sub_80F7750
sub_80F7750: @ 80F7750
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
movs r2, 0x85
lsls r2, 2
movs r3, 0xE
bl SetWindowBorderStyle
pop {r0}
bx r0
thumb_func_end sub_80F7750
thumb_func_start sub_80F7768
sub_80F7768: @ 80F7768
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 24
lsrs r5, r1, 24
ldr r0, _080F7790 @ =gUnknown_203ADFA
ldrb r0, [r0]
cmp r0, 0x2
bne _080F7798
ldr r2, _080F7794 @ =gTextFlags
ldrb r0, [r2]
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
movs r1, 0x80
lsls r1, 2
movs r0, 0
bl TextWindow_LoadTilesStdFrame1
b _080F77A4
.align 2, 0
_080F7790: .4byte gUnknown_203ADFA
_080F7794: .4byte gTextFlags
_080F7798:
movs r1, 0x80
lsls r1, 2
adds r0, r4, 0
movs r2, 0xF0
bl TextWindow_LoadResourcesStdFrame0
_080F77A4:
movs r2, 0x80
lsls r2, 2
adds r0, r4, 0
adds r1, r5, 0
movs r3, 0xF
bl DrawDialogFrameWithCustomTileAndPalette
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80F7768
thumb_func_start sub_80F77B8
sub_80F77B8: @ 80F77B8
push {lr}
ldr r0, _080F77C8 @ =gTMCaseMainWindowPalette
movs r1, 0xE0
movs r2, 0x14
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
_080F77C8: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_80F77B8
thumb_func_start Menu_LoadStdPalAt
Menu_LoadStdPalAt: @ 80F77CC
push {lr}
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
ldr r0, _080F77E0 @ =gTMCaseMainWindowPalette
movs r2, 0x14
bl LoadPalette
pop {r0}
bx r0
.align 2, 0
_080F77E0: .4byte gTMCaseMainWindowPalette
thumb_func_end Menu_LoadStdPalAt
thumb_func_start sub_80F77E4
sub_80F77E4: @ 80F77E4
ldr r0, _080F77E8 @ =gTMCaseMainWindowPalette
bx lr
.align 2, 0
_080F77E8: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_80F77E4
thumb_func_start sub_80F77EC
sub_80F77EC: @ 80F77EC
push {lr}
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xF
bls _080F77F8
movs r1, 0
_080F77F8:
ldr r0, _080F7804 @ =gTMCaseMainWindowPalette
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
pop {r1}
bx r1
.align 2, 0
_080F7804: .4byte gTMCaseMainWindowPalette
thumb_func_end sub_80F77EC
thumb_func_start DisplayItemMessageOnField
DisplayItemMessageOnField: @ 80F7808
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x10
adds r5, r0, 0
adds r4, r1, 0
adds r6, r2, 0
mov r8, r3
lsls r5, 24
lsrs r5, 24
lsls r4, 24
lsrs r4, 24
bl sub_80F6E9C
bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
movs r2, 0x80
lsls r2, 2
str r4, [sp]
str r0, [sp, 0x4]
str r6, [sp, 0x8]
mov r0, r8
str r0, [sp, 0xC]
adds r0, r5, 0
movs r1, 0
movs r3, 0xF
bl DisplayMessageAndContinueTask
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end DisplayItemMessageOnField
thumb_func_start sub_80F7858
sub_80F7858: @ 80F7858
push {lr}
sub sp, 0xC
ldr r0, _080F787C @ =gUnknown_841F43C
movs r1, 0x85
lsls r1, 2
str r1, [sp]
movs r1, 0xE
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x2
movs r2, 0
movs r3, 0x2
bl CreateYesNoMenu
add sp, 0xC
pop {r0}
bx r0
.align 2, 0
_080F787C: .4byte gUnknown_841F43C
thumb_func_end sub_80F7858
thumb_func_start sub_80F7880
sub_80F7880: @ 80F7880
push {lr}
sub sp, 0xC
ldr r0, _080F78A4 @ =gUnknown_841F43C
movs r1, 0x85
lsls r1, 2
str r1, [sp]
movs r1, 0xE
str r1, [sp, 0x4]
movs r1, 0x1
str r1, [sp, 0x8]
movs r1, 0x2
movs r2, 0
movs r3, 0x2
bl CreateYesNoMenu
add sp, 0xC
pop {r0}
bx r0
.align 2, 0
_080F78A4: .4byte gUnknown_841F43C
thumb_func_end sub_80F7880
thumb_func_start GetTextSpeedSetting
GetTextSpeedSetting: @ 80F78A8
@@ -463,7 +155,7 @@ sub_80F7998: @ 80F7998
thumb_func_start sub_80F79A4
sub_80F79A4: @ 80F79A4
push {lr}
bl sub_80F77B8
bl Menu_LoadStdPal
movs r1, 0x80
lsls r1, 2
movs r0, 0
+3 -3
View File
@@ -149,7 +149,7 @@ _080EB77E:
strh r0, [r7, 0x14]
ldrb r0, [r7, 0x14]
movs r1, 0
bl sub_80F7750
bl SetStdWindowBorderStyle
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
@@ -464,7 +464,7 @@ _080EBA1E:
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl sub_80F7750
bl SetStdWindowBorderStyle
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
@@ -1578,7 +1578,7 @@ sub_80EC2FC: @ 80EC2FC
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_80F7858
bl DisplayYesNoMenuDefaultYes
ldr r1, _080EC31C @ =gTasks
lsls r0, r4, 2
adds r0, r4
+8 -8
View File
@@ -249,7 +249,7 @@ _0809CB02:
lsrs r5, r0, 24
adds r0, r5, 0
movs r1, 0
bl sub_80F7750
bl SetStdWindowBorderStyle
mov r2, r10
cmp r2, 0x1E
beq _0809CB32
@@ -636,7 +636,7 @@ _0809CE08:
lsls r0, 24
cmp r0, 0
bne _0809CE26
bl sub_80F7858
bl DisplayYesNoMenuDefaultYes
adds r0, r4, 0
movs r1, 0x50
bl CreateTask
@@ -822,7 +822,7 @@ _0809CF08:
lsrs r0, 24
strh r0, [r4, 0x14]
movs r1, 0
bl sub_80F7750
bl SetStdWindowBorderStyle
ldrb r0, [r4, 0x14]
lsls r5, 27
lsrs r5, 24
@@ -989,7 +989,7 @@ _0809D0B0:
lsrs r6, r0, 24
adds r0, r6, 0
movs r1, 0
bl sub_80F7750
bl SetStdWindowBorderStyle
ldr r2, _0809D128 @ =gUnknown_8417BD3
movs r0, 0x22
str r0, [sp]
@@ -1050,7 +1050,7 @@ _0809D14C:
lsrs r6, r0, 24
adds r0, r6, 0
movs r1, 0
bl sub_80F7750
bl SetStdWindowBorderStyle
mov r0, r8
bl FlagGet
lsls r0, 24
@@ -1326,7 +1326,7 @@ _0809D31C:
strb r0, [r1, 0x5]
ldrb r0, [r3, 0x12]
movs r1, 0x1
bl sub_80F7750
bl SetStdWindowBorderStyle
movs r0, 0
bl ScheduleBgCopyTilemapToVram
movs r0, 0x1
@@ -1613,7 +1613,7 @@ _0809D572:
strh r2, [r1, 0x8]
strh r5, [r1, 0xC]
movs r1, 0x1
bl sub_80F7750
bl SetStdWindowBorderStyle
movs r0, 0
bl ScheduleBgCopyTilemapToVram
_0809D5F2:
@@ -1859,7 +1859,7 @@ _0809D7B8:
lsrs r7, r0, 24
adds r0, r7, 0
movs r1, 0
bl sub_80F7750
bl SetStdWindowBorderStyle
movs r6, 0
mov r5, r9
subs r5, 0x2
+1 -1
View File
@@ -49,7 +49,7 @@ _0809AAF8:
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0
bl sub_80F7750
bl SetStdWindowBorderStyle
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
+3 -3
View File
@@ -1347,7 +1347,7 @@ _0806F7D8: .4byte sub_806F7DC
thumb_func_start sub_806F7DC
sub_806F7DC: @ 806F7DC
push {lr}
bl sub_80F7858
bl DisplayYesNoMenuDefaultYes
ldr r1, _0806F7F0 @ =gUnknown_3000FA4
ldr r0, _0806F7F4 @ =sub_806F7F8
str r0, [r1]
@@ -1451,7 +1451,7 @@ _0806F8A0: .4byte sub_806F8A4
thumb_func_start sub_806F8A4
sub_806F8A4: @ 806F8A4
push {lr}
bl sub_80F7858
bl DisplayYesNoMenuDefaultYes
ldr r1, _0806F8B8 @ =gUnknown_3000FA4
ldr r0, _0806F8BC @ =sub_806F8DC
str r0, [r1]
@@ -1466,7 +1466,7 @@ _0806F8BC: .4byte sub_806F8DC
thumb_func_start sub_806F8C0
sub_806F8C0: @ 806F8C0
push {lr}
bl sub_80F7880
bl DisplayYesNoMenuDefaultNo
ldr r1, _0806F8D4 @ =gUnknown_3000FA4
ldr r0, _0806F8D8 @ =sub_806F8DC
str r0, [r1]
+1 -1
View File
@@ -559,7 +559,7 @@ gUnknown_841F428:: @ 841F428
sStandardTextBox_WindowTemplates:: @ 841F42C
.incbin "baserom.gba", 0x41F42C, 0x10
gUnknown_841F43C:: @ 841F43C
sYesNo_WindowTemplate:: @ 841F43C
.incbin "baserom.gba", 0x41F43C, 0x8
gUnknown_841F444:: @ 841F444
+6 -1
View File
@@ -30,14 +30,19 @@ void CopyRectIntoAltRect(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 heigh
void SetBgRectPal(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
void DecompressAndLoadBgGfxUsingHeap2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
void Menu_LoadStdPal(void);
void Menu_LoadStdPalAt(u16);
void * MallocAndDecompress(const void * src, u32 * size);
u16 sub_80F796C(void);
void ClearStdWindowAndFrame(u8 taskId, bool8 copyNow);
void sub_80F77B8(void);
void sub_80F6E9C(void);
void sub_80F771C(bool8 copyToVram);
void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed);
void AddTextPrinterDiffStyle(bool8 allowSkippingDelayWithButtonPress);
void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress);
void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram);
void sub_80F7768(u8 windowId, bool8 copyToVram);
void DisplayYesNoMenuDefaultYes(void);
void DisplayYesNoMenuDefaultNo(void);
#endif // GUARD_NEW_MENU_HELPERS_H
+73 -4
View File
@@ -13,6 +13,8 @@
#include "field_specials.h"
#include "text_window.h"
#include "script.h"
#include "graphics.h"
#include "palette.h"
#define DLG_WINDOW_PALETTE_NUM 15
#define DLG_WINDOW_BASE_TILE_NUM 0x200
@@ -24,6 +26,7 @@ static EWRAM_DATA u16 gUnknown_203AB5C = {0};
static EWRAM_DATA void *gUnknown_203AB60[0x20] = {NULL};
extern const struct WindowTemplate sStandardTextBox_WindowTemplates[];
extern const struct WindowTemplate sYesNo_WindowTemplate;
EWRAM_DATA u8 sStartMenuWindowId;
static u16 CopyDecompressedTileDataToVram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode);
@@ -323,14 +326,14 @@ void sub_80F6E9C(void)
if (gUnknown_203ADFA == 2)
{
gTextFlags.autoScroll = 1;
TextWindow_LoadTilesStdFrame1(0, 0x200);
TextWindow_LoadTilesStdFrame1(0, DLG_WINDOW_BASE_TILE_NUM);
}
else
{
sub_80F77B8();
TextWindow_LoadResourcesStdFrame0(0, 0x200, 0xF0);
Menu_LoadStdPal();
TextWindow_LoadResourcesStdFrame0(0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10);
}
TextWindow_SetUserSelectedFrame(0, 0x214, 0xE0);
TextWindow_SetUserSelectedFrame(0, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM * 0x10);
}
void DrawDialogueFrame(u8 windowId, bool8 copyToVram)
@@ -459,3 +462,69 @@ static void WindowFunc_ClearDialogWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilem
{
FillBgTilemapBufferRect(bg, 0, tilemapLeft - 2, tilemapTop - 1, width + 4, height + 2, STD_WINDOW_PALETTE_NUM);
}
void sub_80F771C(bool8 copyToVram)
{
FillBgTilemapBufferRect(0, 0, 0, 0, 0x20, 0x20, 0x11);
if (copyToVram == TRUE)
CopyBgTilemapBufferToVram(0);
}
void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram)
{
SetWindowBorderStyle(windowId, copyToVram, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM);
}
void sub_80F7768(u8 windowId, bool8 copyToVram)
{
if (gUnknown_203ADFA == 2)
{
gTextFlags.autoScroll = 1;
TextWindow_LoadTilesStdFrame1(0, DLG_WINDOW_BASE_TILE_NUM);
}
else
{
TextWindow_LoadResourcesStdFrame0(windowId, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10);
}
DrawDialogFrameWithCustomTileAndPalette(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM);
}
void Menu_LoadStdPal(void)
{
LoadPalette(gTMCaseMainWindowPalette, STD_WINDOW_PALETTE_NUM * 0x10, 0x14);
}
void Menu_LoadStdPalAt(u16 offset)
{
LoadPalette(gTMCaseMainWindowPalette, offset, 0x14);
}
static const u16 *GetTmCaseMainWindowPalette(void)
{
return gTMCaseMainWindowPalette;
}
static u16 GetStdPalColor(u8 colorNum)
{
if (colorNum > 0xF)
colorNum = 0;
return gTMCaseMainWindowPalette[colorNum];
}
void DisplayItemMessageOnField(u8 taskId, u8 bgId, const u8 *string, TaskFunc callback)
{
sub_80F6E9C();
DisplayMessageAndContinueTask(taskId, 0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM, bgId, GetTextSpeedSetting(), string, callback);
CopyWindowToVram(0, 3);
}
void DisplayYesNoMenuDefaultYes(void)
{
CreateYesNoMenu(&sYesNo_WindowTemplate, 2, 0, 2, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM, 0);
}
void DisplayYesNoMenuDefaultNo(void)
{
CreateYesNoMenu(&sYesNo_WindowTemplate, 2, 0, 2, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM, 1);
}