summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/help_system_812B1E0.s115
-rw-r--r--data/data_83FECCC.s66
-rw-r--r--include/help_system.h23
-rw-r--r--include/list_menu.h1
-rw-r--r--src/help_system_812B1E0.c56
5 files changed, 114 insertions, 147 deletions
diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s
index a6036015e..77c196c4e 100644
--- a/asm/help_system_812B1E0.s
+++ b/asm/help_system_812B1E0.s
@@ -5,121 +5,6 @@
.text
- thumb_func_start sub_812B520
-sub_812B520: @ 812B520
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r4, 0
- movs r3, 0
- ldr r0, _0812B598 @ =gUnknown_845C4B0
- mov r9, r0
- ldr r1, _0812B59C @ =gUnknown_203B0EC
- mov r8, r1
- ldr r0, _0812B5A0 @ =gUnknown_845C4B6
- mov r12, r0
- ldr r7, _0812B5A4 @ =gUnknown_845B080
-_0812B53E:
- mov r1, r9
- adds r0, r3, r1
- ldrb r2, [r0]
- mov r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- adds r0, r2, r0
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0812B56C
- lsls r1, r4, 3
- adds r1, r5
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- str r0, [r1]
- str r2, [r1, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0812B56C:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x5
- bls _0812B53E
- lsls r0, r4, 3
- adds r0, r5
- subs r0, 0x8
- movs r1, 0x2
- negs r1, r1
- str r1, [r0, 0x4]
- movs r0, 0
- strh r4, [r6, 0x4]
- strh r4, [r6, 0x6]
- strb r0, [r6, 0x8]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B598: .4byte gUnknown_845C4B0
-_0812B59C: .4byte gUnknown_203B0EC
-_0812B5A0: .4byte gUnknown_845C4B6
-_0812B5A4: .4byte gUnknown_845B080
- thumb_func_end sub_812B520
-
- thumb_func_start sub_812B5A8
-sub_812B5A8: @ 812B5A8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0
- bl sub_813BDE8
- movs r0, 0
- bl sub_813BFC0
- movs r0, 0x1
- bl sub_813BE78
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_812B4C4
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_812B614
- ldr r0, _0812B608 @ =gUnknown_841DFC9
- bl sub_812BF74
- ldrb r1, [r4, 0xC]
- ldrb r2, [r4, 0xD]
- adds r0, r4, 0
- bl sub_813C64C
- ldr r1, _0812B60C @ =gUnknown_845B080
- ldr r0, _0812B610 @ =gUnknown_3005E9C
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_813C4CC
- movs r0, 0x1
- bl sub_813BDA4
- movs r0, 0x1
- bl sub_813BD5C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B608: .4byte gUnknown_841DFC9
-_0812B60C: .4byte gUnknown_845B080
-_0812B610: .4byte gUnknown_3005E9C
- thumb_func_end sub_812B5A8
-
thumb_func_start sub_812B614
sub_812B614: @ 812B614
push {r4-r7,lr}
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index bc4bdc6ed..ffdaa8a67 100644
--- a/data/data_83FECCC.s
+++ b/data/data_83FECCC.s
@@ -2136,37 +2136,79 @@ gUnknown_841DFA0:: @ 841DFA0
.string "GOLD$"
gUnknown_841DFA5:: @ 841DFA5
- .incbin "baserom.gba", 0x41DFA5, 0x7
+ .string "{KEYGFX_A_BUTTON}NEXT$"
gUnknown_841DFAC:: @ 841DFAC
- .incbin "baserom.gba", 0x41DFAC, 0x12
+ .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}OK {KEYGFX_B_BUTTON}END$"
gUnknown_841DFBE:: @ 841DFBE
- .incbin "baserom.gba", 0x41DFBE, 0xB
+ .string "{KEYGFX_A_BUTTON}{KEYGFX_B_BUTTON}CANCEL$"
gUnknown_841DFC9:: @ 841DFC9
- .incbin "baserom.gba", 0x41DFC9, 0xCA
-
+ .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}OK {KEYGFX_B_BUTTON}CANCEL$"
+
+ @ easy chat categories
+ .string "POKéMON$"
+ .string "TRAINER$"
+ .string "STATUS$"
+ .string "BATTLE$"
+ .string "GREETINGS$"
+ .string "PEOPLE$"
+ .string "VOICES$"
+ .string "SPEECH$"
+ .string "ENDINGS$"
+ .string "FEELINGS$"
+ .string "CONDITIONS$"
+ .string "ACTIONS$"
+ .string "LIFESTYLE$"
+ .string "HOBBIES$"
+ .string "TIME$"
+ .string "MISC.$"
+ .string "ADJECTIVES$"
+ .string "EVENTS$"
+ .string "MOVE 1$"
+ .string "MOVE 2$"
+ .string "TRENDY SAYING$"
+ .string "POKéMON2$"
+
+ @ trade-related
gUnknown_841E093:: @ 841E093
- .incbin "baserom.gba", 0x41E093, 0xC
+ .string "???$"
+ .string "$"
+ .string "Lv$"
+ .string "---$"
gUnknown_841E09F:: @ 841E09F
- .incbin "baserom.gba", 0x41E09F, 0x6
+ .string "????$"
+ .string "$"
gUnknown_841E0A5:: @ 841E0A5
- .incbin "baserom.gba", 0x41E0A5, 0x144
+ .string "Is this trade okay?$"
+ .string "CANCEL$"
+ .string "Choose a POKéMON.$"
+ .string "SUMMARY$"
+ .string "TRADE$"
+ .string "Cancel trade?$"
+ .string "Press the B Button to exit.$"
+ .string "SUMMARY$"
+ .string "TRADE$"
+ .string "{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}Communication standby…\nPlease wait.$"
+ .string "{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}The trade has been canceled.$"
+ .string "{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}That's your only POKéMON\nfor battle.$"
+ .string "{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}Waiting for your friend\nto finish…$"
+ .string "Your friend wants\nto trade POKéMON.$"
gUnknown_841E1E9:: @ 841E1E9
- .incbin "baserom.gba", 0x41E1E9, 0x17
+ .string "{STR_VAR_2} will be\nsent to {STR_VAR_1}.$"
gUnknown_841E200:: @ 841E200
- .incbin "baserom.gba", 0x41E200, 0xD
+ .string "Bye-bye, {STR_VAR_2}!$"
gUnknown_841E20D:: @ 841E20D
- .incbin "baserom.gba", 0x41E20D, 0x11
+ .string "{STR_VAR_1} sent over {STR_VAR_3}.$"
gUnknown_841E21E:: @ 841E21E
- .incbin "baserom.gba", 0x41E21E, 0x16
+ .string "Take good care of {STR_VAR_3}!$"
gUnknown_841E234:: @ 841E234
.string "From $"
diff --git a/include/help_system.h b/include/help_system.h
index 6eee0dcb3..f9aaba907 100644
--- a/include/help_system.h
+++ b/include/help_system.h
@@ -2,30 +2,27 @@
#define GUARD_HELP_SYSTEM_H
#include "global.h"
-
-struct HelpSystemStruct_203F1AC
-{
-
-};
+#include "list_menu.h"
struct HelpSystemStruct_203F190_sub
{
- struct HelpSystemStruct_203F1AC * field_00;
+ struct ListMenuItem * field_00;
u16 field_04;
u16 field_06;
u8 field_08;
u8 field_09;
-
};
struct HelpSystemStruct_203F190
{
- struct HelpSystemStruct_203F190_sub field_00;
- u8 filler_0C[0x10];
+ struct HelpSystemStruct_203F190_sub sub;
+ u8 field_0C;
+ u8 field_0D;
+ u8 filler_10[0xC];
};
extern struct HelpSystemStruct_203F190 gUnknown_203F190;
-extern struct HelpSystemStruct_203F1AC gUnknown_203F1AC;
+extern struct ListMenuItem gUnknown_203F1AC[];
extern bool8 gUnknown_3005ECC;
extern u8 gUnknown_203F175;
@@ -33,8 +30,12 @@ void sub_812B1E0(u8);
void sub_812B484(void);
void HelpSystem_SetSomeVariable2(u8);
void sub_812B478(void);
-void sub_813C64C(struct HelpSystemStruct_203F190_sub *, u8, u8);
+void sub_813C64C(struct HelpSystemStruct_203F190 *, u8, u8);
+void sub_813C4CC(const u8 *, u8, u8);
void sub_813BDA4(u8);
void sub_813BD5C(u8);
+void sub_813BDE8(u8);
+void sub_813BFC0(u8);
+void sub_813BE78(u8);
#endif //GUARD_HELP_SYSTEM_H
diff --git a/include/list_menu.h b/include/list_menu.h
index 79dc3ec3f..6116ee39a 100644
--- a/include/list_menu.h
+++ b/include/list_menu.h
@@ -2,6 +2,7 @@
#define GUARD_LIST_MENU_H
#include "global.h"
+#include "window.h"
// Exported type declarations
diff --git a/src/help_system_812B1E0.c b/src/help_system_812B1E0.c
index 2b64a3ab3..68ca6adb6 100644
--- a/src/help_system_812B1E0.c
+++ b/src/help_system_812B1E0.c
@@ -17,13 +17,18 @@ u16 gUnknown_3005EA0;
bool32 sub_812B27C(const u16 * mapIdxs);
void sub_812B4B8(void);
-void sub_812B520(struct HelpSystemStruct_203F190_sub * a0, struct HelpSystemStruct_203F1AC * a1);
-void sub_812BF9C(struct HelpSystemStruct_203F190_sub * a0, struct HelpSystemStruct_203F1AC * a1);
+void sub_812B520(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
+void sub_812B614(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
+void sub_812BF9C(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1);
void sub_812BF74(const u8 *);
// strings.h
extern const u8 gUnknown_841DFAC[];
+extern const u8 gUnknown_841DFC9[];
+extern const u8 *const gUnknown_845B080[];
+extern const u8 gUnknown_845C4B0[];
+extern const u8 gUnknown_845C4B6[][6];
extern const u16 gUnknown_845C594[]; // marts
extern const u16 gUnknown_845C5BC[]; // gyms
extern const u8 gUnknown_845C5CE[][3];
@@ -179,16 +184,16 @@ void sub_812B4B8(void)
gUnknown_203F175 = 0;
}
-void sub_812B4C4(struct HelpSystemStruct_203F190_sub * a0, struct HelpSystemStruct_203F1AC * a1)
+void sub_812B4C4(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
{
- a0->field_00 = a1;
- a0->field_04 = 1;
- a0->field_06 = 1;
- a0->field_08 = 1;
- a0->field_09 = 4;
+ a0->sub.field_00 = a1;
+ a0->sub.field_04 = 1;
+ a0->sub.field_06 = 1;
+ a0->sub.field_08 = 1;
+ a0->sub.field_09 = 4;
}
-void sub_812B4D8(struct HelpSystemStruct_203F190_sub * a0, struct HelpSystemStruct_203F1AC * a1)
+void sub_812B4D8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
{
sub_812B4C4(a0, a1);
sub_812B520(a0, a1);
@@ -198,3 +203,36 @@ void sub_812B4D8(struct HelpSystemStruct_203F190_sub * a0, struct HelpSystemStru
sub_813BDA4(1);
sub_813BD5C(1);
}
+
+void sub_812B520(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
+{
+ u8 i;
+ u8 r4 = 0;
+ for (i = 0; i < 6; i++)
+ {
+ if (gUnknown_845C4B6[gUnknown_203B0EC][gUnknown_845C4B0[i]] == 1)
+ {
+ a1[r4].label = gUnknown_845B080[gUnknown_845C4B0[i]];
+ a1[r4].index = gUnknown_845C4B0[i];
+ r4++;
+ }
+ }
+ a1[r4 - 1].index = -2;
+ a0->sub.field_04 = r4;
+ a0->sub.field_06 = r4;
+ a0->sub.field_08 = 0;
+}
+
+void sub_812B5A8(struct HelpSystemStruct_203F190 * a0, struct ListMenuItem * a1)
+{
+ sub_813BDE8(0);
+ sub_813BFC0(0);
+ sub_813BE78(1);
+ sub_812B4C4(a0, a1);
+ sub_812B614(a0, a1);
+ sub_812BF74(gUnknown_841DFC9);
+ sub_813C64C(a0, a0->field_0C, a0->field_0D);
+ sub_813C4CC(gUnknown_845B080[gUnknown_3005E9C[1]], 0, 0);
+ sub_813BDA4(1);
+ sub_813BD5C(1);
+}