summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-06-24 15:47:06 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-06-26 04:52:34 +0800
commitd64ddf09450a4119017e7e2ecf2bcb2061b6a241 (patch)
treed090e343c35199f95a25aac21635379195f10251
parentefad45497dfb69cf2879d0bf2e318eaf8fc2252f (diff)
through AddTextPrinterWithCustomSpeedForMessage
-rw-r--r--.gitignore1
-rw-r--r--asm/field_message_box.s4
-rw-r--r--asm/link_rfu_3.s4
-rw-r--r--asm/new_menu_helpers.s160
-rw-r--r--asm/start_menu.s2
-rw-r--r--src/new_menu_helpers.c39
-rw-r--r--sym_ewram.txt7
-rw-r--r--tools/br_ips/.gitignore2
8 files changed, 41 insertions, 178 deletions
diff --git a/.gitignore b/.gitignore
index d64e00e65..c9266139c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -43,3 +43,4 @@ build/
*.pl
*.bak
src/data/items.h # Autogenerated by jsonproc
+
diff --git a/asm/field_message_box.s b/asm/field_message_box.s
index ffb214205..3ace107ab 100644
--- a/asm/field_message_box.s
+++ b/asm/field_message_box.s
@@ -226,7 +226,7 @@ textbox_fdecode_auto_and_task_add: @ 80694C8
ldr r0, _080694E0 @ =gStringVar4
bl StringExpandPlaceholders
movs r0, 0x1
- bl sub_80F6D5C
+ bl AddTextPrinterDiffStyle
bl task_add_textbox
pop {r0}
bx r0
@@ -238,7 +238,7 @@ _080694E0: .4byte gStringVar4
textbox_auto_and_task_add: @ 80694E4
push {lr}
movs r0, 0x1
- bl sub_80F6D5C
+ bl AddTextPrinterDiffStyle
bl task_add_textbox
pop {r0}
bx r0
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 8ce369e1f..6acf4a919 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -8491,7 +8491,7 @@ sub_811A0B4: @ 811A0B4
bl StringExpandPlaceholders
movs r0, 0
movs r1, 0x1
- bl sub_80F6E54
+ bl AddTextPrinterWithCustomSpeedForMessage
movs r0, 0
pop {r4}
pop {r1}
@@ -8536,7 +8536,7 @@ _0811A10A:
adds r1, r5, 0
bl StringExpandPlaceholders
movs r0, 0x1
- bl sub_80F6E08
+ bl AddTextPrinterForMessage
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
diff --git a/asm/new_menu_helpers.s b/asm/new_menu_helpers.s
index 6c23410d9..66cf70db4 100644
--- a/asm/new_menu_helpers.s
+++ b/asm/new_menu_helpers.s
@@ -5,166 +5,6 @@
.text
- thumb_func_start sub_80F6D5C
-sub_80F6D5C: @ 80F6D5C
- push {r4,r5,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- ldr r3, _080F6DA8 @ =gTextFlags
- movs r4, 0x1
- ands r0, r4
- ldrb r2, [r3]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
- bl ContextNpcGetTextColor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080F6DB0
- bl GetTextSpeedSetting
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, _080F6DAC @ =gStringVar4
- str r5, [sp]
- movs r0, 0x8
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x4
- bl AddTextPrinterParameterized2
- b _080F6DFC
- .align 2, 0
-_080F6DA8: .4byte gTextFlags
-_080F6DAC: .4byte gStringVar4
-_080F6DB0:
- cmp r0, 0x1
- bne _080F6DDC
- bl GetTextSpeedSetting
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, _080F6DD8 @ =gStringVar4
- str r5, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x5
- bl AddTextPrinterParameterized2
- b _080F6DFC
- .align 2, 0
-_080F6DD8: .4byte gStringVar4
-_080F6DDC:
- bl GetTextSpeedSetting
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, _080F6E04 @ =gStringVar4
- str r5, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x2
- bl AddTextPrinterParameterized2
-_080F6DFC:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6E04: .4byte gStringVar4
- thumb_func_end sub_80F6D5C
-
- thumb_func_start sub_80F6E08
-sub_80F6E08: @ 80F6E08
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _080F6E4C @ =gTextFlags
- movs r4, 0x1
- ands r0, r4
- ldrb r2, [r3]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
- bl GetTextSpeedSetting
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r2, _080F6E50 @ =gStringVar4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x2
- bl AddTextPrinterParameterized2
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6E4C: .4byte gTextFlags
-_080F6E50: .4byte gStringVar4
- thumb_func_end sub_80F6E08
-
- thumb_func_start sub_80F6E54
-sub_80F6E54: @ 80F6E54
- push {r4,r5,lr}
- sub sp, 0x10
- adds r3, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r4, _080F6E94 @ =gTextFlags
- movs r5, 0x1
- ands r0, r5
- ldrb r2, [r4]
- movs r1, 0x2
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r4]
- ldr r2, _080F6E98 @ =gStringVar4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x2
- bl AddTextPrinterParameterized2
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080F6E94: .4byte gTextFlags
-_080F6E98: .4byte gStringVar4
- thumb_func_end sub_80F6E54
-
thumb_func_start sub_80F6E9C
sub_80F6E9C: @ 80F6E9C
push {lr}
diff --git a/asm/start_menu.s b/asm/start_menu.s
index f6c289a64..a4a6bef7b 100644
--- a/asm/start_menu.s
+++ b/asm/start_menu.s
@@ -1179,7 +1179,7 @@ sub_806F69C: @ 806F69C
movs r1, 0x1
bl sub_80F7768
movs r0, 0x1
- bl sub_80F6E08
+ bl AddTextPrinterForMessage
ldr r1, _0806F6CC @ =gUnknown_3000FA9
movs r0, 0x1
strb r0, [r1]
diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c
index 7abe277e1..c4e8ab284 100644
--- a/src/new_menu_helpers.c
+++ b/src/new_menu_helpers.c
@@ -10,11 +10,12 @@
#include "new_menu_helpers.h"
#include "quest_log.h"
#include "text.h"
+#include "field_specials.h"
static EWRAM_DATA bool8 gUnknown_203AB58[4] = {FALSE}; // knizz: bgmaps_that_need_syncing
+static EWRAM_DATA u16 gUnknown_203AB5C = {0};
+static EWRAM_DATA void *gUnknown_203AB60[0x20] = {NULL};
-EWRAM_DATA u16 gUnknown_203AB5C;
-EWRAM_DATA void *gUnknown_203AB60[0x20];
extern const struct WindowTemplate sStandardTextBox_WindowTemplates[];
EWRAM_DATA u8 sStartMenuWindowId;
@@ -181,10 +182,10 @@ u16 CopyDecompressedTileDataToVram(u8 bgId, const void *src, u16 size, u16 offse
{
switch (mode)
{ // different to EM
- case 1:
- break;
- case 0:
- default:
+ case 1:
+ break;
+ case 0:
+ default:
return LoadBgTiles(bgId, src, size, offset);
}
return LoadBgTilemap(bgId, src, size, offset);
@@ -279,3 +280,29 @@ u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed
return AddTextPrinter(&printer, speed, callback);
}
+void AddTextPrinterDiffStyle(bool8 allowSkippingDelayWithButtonPress)
+{
+ u8 result;
+ void *nptr = NULL; // This is required for matching
+
+ gTextFlags.canABSpeedUpPrint = allowSkippingDelayWithButtonPress;
+ result = ContextNpcGetTextColor();
+ if (!result)
+ AddTextPrinterParameterized2(0, 4, gStringVar4, GetTextSpeedSetting(), nptr, 8, 1, 3);
+ else if (result == 1)
+ AddTextPrinterParameterized2(0, 5, gStringVar4, GetTextSpeedSetting(), nptr, 4, 1, 3);
+ else
+ AddTextPrinterParameterized2(0, 2, gStringVar4, GetTextSpeedSetting(), nptr, 2, 1, 3);
+}
+
+void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress)
+{
+ gTextFlags.canABSpeedUpPrint = allowSkippingDelayWithButtonPress;
+ AddTextPrinterParameterized2(0, 2, gStringVar4, GetTextSpeedSetting(), NULL, 2, 1, 3);
+}
+
+void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed)
+{
+ gTextFlags.canABSpeedUpPrint = allowSkippingDelayWithButtonPress;
+ AddTextPrinterParameterized2(0, 2, gStringVar4, speed, NULL, 2, 1, 3);
+}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index f0c9efb4d..8b50769cc 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -1209,14 +1209,7 @@ gUnknown_203AB54: @ 203AB54
.space 0x4
.include "src/new_menu_helpers.o"
-
.align 2
-gUnknown_203AB5C: @ 203AB5C
- .space 0x4
-
-gUnknown_203AB60: @ 203AB60
- .space 0x80
-
sStartMenuWindowId: @ 203ABE0
.space 0x4
diff --git a/tools/br_ips/.gitignore b/tools/br_ips/.gitignore
new file mode 100644
index 000000000..f3fb1444f
--- /dev/null
+++ b/tools/br_ips/.gitignore
@@ -0,0 +1,2 @@
+br_ips
+ips_patch