summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/mauville_old_man.s141
-rw-r--r--data/mauville_old_man.s8
-rw-r--r--ld_script.txt1
-rw-r--r--src/mauville_old_man.c55
-rw-r--r--sym_bss.txt6
5 files changed, 57 insertions, 154 deletions
diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s
index 00f4192f8..950abfb64 100644
--- a/asm/mauville_old_man.s
+++ b/asm/mauville_old_man.s
@@ -5,147 +5,6 @@
.text
- thumb_func_start sub_81210B8
-sub_81210B8: @ 81210B8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r7, sp
- mov r8, sp
- ldr r0, =gUnknown_0859F288
- ldr r0, [r0]
- lsls r0, 3
- lsrs r0, 3
- adds r0, 0x3
- lsrs r0, 2
- lsls r0, 2
- mov r1, sp
- subs r1, r0
- mov sp, r1
- mov r9, sp
- mov r0, sp
- movs r1, 0x24
- bl sub_8121064
- movs r5, 0
-_081210E4:
- ldr r1, =gUnknown_0859F048
- mov r2, r9
- adds r0, r2, r5
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r4, [r0]
- ldrb r6, [r0, 0x1]
- movs r1, 0
- ldr r2, =gUnknown_0203A12C
- ldr r0, [r2]
- ldrb r0, [r0, 0x4]
- cmp r0, r4
- beq _08121112
-_08121100:
- adds r1, 0x1
- cmp r1, 0x3
- bgt _08121112
- ldr r0, [r2]
- adds r0, 0x4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, r4
- bne _08121100
-_08121112:
- cmp r1, 0x4
- bne _08121162
- adds r0, r4, 0
- bl sub_8120E74
- cmp r0, r6
- bcc _08121162
- ldr r0, =gUnknown_0203A12C
- ldr r1, [r0]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- bl sub_8120ED8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bne _08121150
- ldr r0, =gUnknown_03001178
- ldrb r0, [r0]
- adds r1, r4, 0
- bl sub_8120FDC
- b _0812115E
- .pool
-_08121150:
- bl sub_8120ED8
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_8120FDC
-_0812115E:
- movs r0, 0x1
- b _0812116A
-_08121162:
- adds r5, 0x1
- cmp r5, 0x23
- ble _081210E4
- movs r0, 0
-_0812116A:
- mov sp, r8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81210B8
-
- thumb_func_start sub_8121178
-sub_8121178: @ 8121178
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- ldr r6, =gUnknown_0203A12C
- ldr r0, [r6]
- adds r0, 0x4
- adds r0, r5
- ldrb r0, [r0]
- mov r8, r0
- ldr r4, =gStringVar1
- adds r0, r5, 0
- bl sub_8120F08
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0xA
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar2
- mov r0, r8
- bl sub_8120ECC
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, =gStringVar3
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8120F7C
- ldr r0, [r6]
- adds r0, 0x34
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r4, 0
- bl ConvertInternationalString
- mov r0, r8
- bl sub_8120EC0
- bl ShowFieldMessage
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8121178
-
thumb_func_start sub_81211EC
sub_81211EC: @ 81211EC
push {r4,r5,lr}
diff --git a/data/mauville_old_man.s b/data/mauville_old_man.s
deleted file mode 100644
index fe7056541..000000000
--- a/data/mauville_old_man.s
+++ /dev/null
@@ -1,8 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
- .align 2, 0
-
-gUnknown_0859F288:: @ 859F288
- .4byte 0x00000024, 0x00000008
diff --git a/ld_script.txt b/ld_script.txt
index c975586a6..e1cc109a6 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -458,7 +458,6 @@ SECTIONS {
data/easy_chat.o(.rodata);
src/mon_markings.o(.rodata);
src/mauville_old_man.o(.rodata);
- data/mauville_old_man.o(.rodata);
src/mail.o(.rodata);
data/menu_helpers.o(.rodata);
src/heal_location.o(.rodata);
diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c
index 04af0e066..4f85d4577 100644
--- a/src/mauville_old_man.c
+++ b/src/mauville_old_man.c
@@ -19,6 +19,7 @@
#include "sound.h"
#include "strings.h"
#include "overworld.h"
+#include "field_message_box.h"
#define CHAR_SONG_WORD_SEPARATOR 0x37
@@ -33,6 +34,8 @@ void sub_8120E50(void);
void sub_81339F8(void); // TraderSetup
void sub_8133A60(void);
+IWRAM_DATA u8 gUnknown_03001178;
+
struct BardSong gUnknown_03006130;
EWRAM_DATA u16 gUnknown_0203A128 = 0;
@@ -1085,3 +1088,55 @@ void sub_8121064(u8 * arr, s32 count) // ScrambleStatList
arr[b] = temp;
}
}
+
+struct UnknownStruct_0859F288
+{
+ u32 length;
+ u32 unused2;
+};
+
+const struct UnknownStruct_0859F288 gUnknown_0859F288 = {
+ 36,
+ 8
+};
+
+bool8 sub_81210B8(void) // StorytellerInitializeRandomStat
+{
+ u8 arr[gUnknown_0859F288.length];
+ s32 i;
+ s32 j;
+
+ sub_8121064(arr, 36);
+ for (i = 0; i < 36; i++)
+ {
+ u8 stat = gUnknown_0859F048[arr[i]].stat;
+ u8 minVal = gUnknown_0859F048[arr[i]].minVal;
+
+ for (j = 0; j < 4; j++)
+ {
+ if (gUnknown_0203A12C->gameStatIDs[j] == stat)
+ break;
+ }
+ if (j == 4 && sub_8120E74(stat) >= minVal)
+ {
+ gUnknown_0203A12C->alreadyRecorded = TRUE;
+ if (sub_8120ED8() == 4)
+ sub_8120FDC(gUnknown_03001178, stat);
+ else
+ sub_8120FDC(sub_8120ED8(), stat);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void sub_8121178(u32 player) // StorytellerDisplayStory
+{
+ u8 stat = gUnknown_0203A12C->gameStatIDs[player];
+
+ ConvertIntToDecimalStringN(gStringVar1, sub_8120F08(player), 0, 10);
+ StringCopy(gStringVar2, sub_8120ECC(stat));
+ sub_8120F7C(player, gStringVar3);
+ ConvertInternationalString(gStringVar3, gUnknown_0203A12C->unk34[player]);
+ ShowFieldMessage(sub_8120EC0(stat));
+}
diff --git a/sym_bss.txt b/sym_bss.txt
index 24e6afa3b..186ff8ced 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -28,11 +28,9 @@
.include "src/script_menu.o"
.include "src/record_mixing.o"
.include "src/tv.o"
+ .include "src/mauville_old_man.o"
- .space 1 @ TODO: define this u32 in mauville_old_man
-gUnknown_03001178: @ 3001178
- .space 0x4
-
+ .align 2
gUnknown_0300117C: @ 300117C
.space 0x4