summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xMakefile78
-rw-r--r--asm/code_80521D0.s4
-rw-r--r--asm/code_809D148.s2
-rw-r--r--asm/exclusive_pokemon.s12
-rw-r--r--asm/wonder_mail_1.s280
-rw-r--r--charmap.txt40
-rw-r--r--data/data_80B9BB8.s2
-rw-r--r--data/data_80DED44.s23
-rw-r--r--data/personality_test.s29
-rw-r--r--data/text/wonder_mail_1.inc113
-rw-r--r--include/wonder_mail.h43
-rwxr-xr-xld_script.txt1
-rw-r--r--src/adventure_log.c23
-rw-r--r--src/code_80118A4_1.c0
-rw-r--r--src/data/formatted_type_names.h36
-rw-r--r--src/data/nature_description.h439
-rw-r--r--src/data/wonder_mail_1.h288
-rw-r--r--src/personality_test.c20
-rw-r--r--src/wonder_mail.c598
-rw-r--r--src/wonder_mail_main_menu_pre.c57
-rw-r--r--src/wonder_mail_mid.c400
-rw-r--r--src/wonder_mail_pre.c2
-rw-r--r--tools/preproc/c_file.cpp2
23 files changed, 1170 insertions, 1322 deletions
diff --git a/Makefile b/Makefile
index 24207a5..536fd79 100755
--- a/Makefile
+++ b/Makefile
@@ -69,11 +69,27 @@ CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef
#### Files ####
BUILD_NAME = red
+BUILD_DIR := build/pmd_$(BUILD_NAME)
ROM := pmd_$(BUILD_NAME).gba
+ELF := $(ROM:%.gba=%.elf)
MAP := $(ROM:%.gba=%.map)
-BUILD_DIR := build/pmd_$(BUILD_NAME)
+C_SUBDIR = src
+GFLIB_SUBDIR = gflib
+ASM_SUBDIR = asm
+DATA_SRC_SUBDIR = src/data
+DATA_ASM_SUBDIR = data
+SONG_SUBDIR = sound/songs
+MID_SUBDIR = sound/songs/midi
+SAMPLE_SUBDIR = sound/direct_sound_samples
+
+C_BUILDDIR = $(BUILD_DIR)/$(C_SUBDIR)
+GFLIB_BUILDDIR = $(BUILD_DIR)/$(GFLIB_SUBDIR)
+ASM_BUILDDIR = $(BUILD_DIR)/$(ASM_SUBDIR)
+DATA_ASM_BUILDDIR = $(BUILD_DIR)/$(DATA_ASM_SUBDIR)
+SONG_BUILDDIR = $(BUILD_DIR)/$(SONG_SUBDIR)
+MID_BUILDDIR = $(BUILD_DIR)/$(MID_SUBDIR)
C_SOURCES := $(wildcard src/*.c)
ASM_SOURCES := $(wildcard asm/*.s data/*.s)
@@ -88,21 +104,20 @@ SUBDIRS := $(sort $(dir $(ALL_OBJECTS)))
LD_SCRIPT := $(BUILD_DIR)/ld_script.ld
# Special configurations required for lib files
-$(BUILD_DIR)/src/agb_flash.o : CC1FLAGS := -O -mthumb-interwork
-$(BUILD_DIR)/src/agb_flash_1m.o: CC1FLAGS := -O -mthumb-interwork
-$(BUILD_DIR)/src/agb_flash_mx.o: CC1FLAGS := -O -mthumb-interwork
+$(C_BUILDDIR)/agb_flash.o : CC1FLAGS := -O -mthumb-interwork
+$(C_BUILDDIR)/agb_flash_1m.o: CC1FLAGS := -O -mthumb-interwork
+$(C_BUILDDIR)/agb_flash_mx.o: CC1FLAGS := -O -mthumb-interwork
-$(BUILD_DIR)/src/m4a.o: CC1 := tools/agbcc/bin/old_agbcc
+$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc
#### Main Rules ####
# Disable dependency scanning when NODEP is used for quick building
-# TODO enable when NODEP is fixed
-#ifeq ($(NODEP),)
-#$(BUILD_DIR)/src/%.o: C_DEP = $(shell $(SCANINC) -I include src/$(*F).c)
-#$(BUILD_DIR)/asm/%.o: ASM_DEP = $(shell $(SCANINC) asm/$(*F).s)
-#$(BUILD_DIR)/data/%.o: ASM_DEP = $(shell $(SCANINC) data/$(*F).s)
-#endif
+ifeq ($(NODEP),1)
+$(C_BUILDDIR)/%.o: C_DEP :=
+else
+$(C_BUILDDIR)/%.o: C_DEP = $(shell [[ -f $(C_SUBDIR)/$*.c ]] && $(SCANINC) -I include -I tools/agbcc/include -I gflib $(C_SUBDIR)/$*.c)
+endif
ALL_BUILDS := red
@@ -110,6 +125,7 @@ ALL_BUILDS := red
.PHONY: all clean tidy libagbsyscall tools clean-tools $(TOOLDIRS)
MAKEFLAGS += --no-print-directory
+
# Secondary expansion is required for dependency variables in object rules.
.SECONDEXPANSION:
# Clear the default suffixes
@@ -133,7 +149,6 @@ tools: $(TOOLDIRS)
$(TOOLDIRS):
@$(MAKE) -C $@ CC=$(HOSTCC) CXX=$(HOSTCXX)
-
compare: all
@$(SHA1SUM) $(BUILD_NAME).sha1
@@ -144,33 +159,34 @@ clean-tools:
@$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);)
tidy:
- $(RM) $(ALL_BUILDS:%=pmd_%{.gba,.elf,.map})
- $(RM) -r build
+ $(RM) -f $(ROM) $(ELF) $(MAP)
+ $(RM) -r $(BUILD_DIR)
@$(MAKE) clean -C libagbsyscall
-$(ROM): %.gba: %.elf tools
- $(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0xA000000 $< $@
- $(GBAFIX) $@ -p -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
+$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.c $$(C_DEP)
+ @$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i
+ @$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CC1FLAGS) -o $(C_BUILDDIR)/$*.s
+ @echo -e ".text\n\t.align\t2, 0\n" >> $(C_BUILDDIR)/$*.s
+ $(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s
-%.elf: $(LD_SCRIPT) $(ALL_OBJECTS) $(LIBC) libagbsyscall
- cd $(BUILD_DIR) && $(LD) -T ld_script.ld -Map ../../$(MAP) -o ../../$@ $(LIB)
+$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(ASM_DEP)
+ $(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@
+
+$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s $$(ASM_DEP)
+ $(AS) $(ASFLAGS) $< -o $@
+
+libagbsyscall:
+ @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN)
$(LD_SCRIPT): ld_script.txt $(BUILD_DIR)/sym_ewram.ld $(BUILD_DIR)/sym_ewram2.ld $(BUILD_DIR)/sym_iwram.ld
cd $(BUILD_DIR) && sed -e "s#tools/#../../tools/#g" ../../ld_script.txt >ld_script.ld
$(BUILD_DIR)/sym_%.ld: sym_%.txt
$(CPP) -P $(CPPFLAGS) $< | sed -e "s#tools/#../../tools/#g" > $@
-$(C_OBJECTS): $(BUILD_DIR)/%.o: %.c $$(C_DEP)
- @$(CPP) $(CPPFLAGS) $< -o $(BUILD_DIR)/$*.i
- @$(CC1) $(CC1FLAGS) $(BUILD_DIR)/$*.i -o $(BUILD_DIR)/$*.s
- @printf ".text\n\t.align\t2, 0\n" >> $(BUILD_DIR)/$*.s
- $(AS) $(ASFLAGS) -o $@ $(BUILD_DIR)/$*.s
-
-$(BUILD_DIR)/data/%.o: data/%.s $$(ASM_DEP)
- $(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@
+$(ELF): $(LD_SCRIPT) $(ALL_OBJECTS) $(LIBC) libagbsyscall
+ cd $(BUILD_DIR) && $(LD) -T ld_script.ld -Map ../../$(MAP) -o ../../$@ $(LIB)
-$(BUILD_DIR)/%.o: %.s $$(ASM_DEP)
- $(AS) $(ASFLAGS) $< -o $@
+$(ROM): %.gba: $(ELF) tools
+ $(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0xA000000 $< $@
+ $(GBAFIX) $@ -p -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
-libagbsyscall:
- @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN)
diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s
index a2e7f3d..8e13cf1 100644
--- a/asm/code_80521D0.s
+++ b/asm/code_80521D0.s
@@ -39946,7 +39946,7 @@ _080665BE:
b _08066704
_080665D0:
adds r0, r6, 0
- bl sub_80981DC
+ bl IsExclusivePokemonUnlocked
lsls r0, 24
cmp r0, 0
bne _080665DE
@@ -48621,7 +48621,7 @@ sub_806AA0C:
lsls r1, 24
lsrs r5, r1, 24
adds r0, r4, 0
- bl sub_80981DC
+ bl IsExclusivePokemonUnlocked
lsls r0, 24
cmp r0, 0
beq _0806AA56
diff --git a/asm/code_809D148.s b/asm/code_809D148.s
index fa42327..2ca52f3 100644
--- a/asm/code_809D148.s
+++ b/asm/code_809D148.s
@@ -8841,7 +8841,7 @@ _080A1CCC:
cmp r5, r0
beq _080A1CA4
adds r0, r5, 0
- bl sub_80981DC
+ bl IsExclusivePokemonUnlocked
lsls r0, 24
cmp r0, 0
beq _080A1CA4
diff --git a/asm/exclusive_pokemon.s b/asm/exclusive_pokemon.s
index f52efbc..593b931 100644
--- a/asm/exclusive_pokemon.s
+++ b/asm/exclusive_pokemon.s
@@ -338,8 +338,8 @@ _080981D4:
_080981D8: .4byte gUnknown_203B498
thumb_func_end sub_80981A0
- thumb_func_start sub_80981DC
-sub_80981DC:
+ thumb_func_start IsExclusivePokemonUnlocked
+IsExclusivePokemonUnlocked:
push {r4,r5,lr}
lsls r0, 16
asrs r3, r0, 16
@@ -369,10 +369,10 @@ _0809820E:
pop {r4,r5}
pop {r1}
bx r1
- thumb_func_end sub_80981DC
+ thumb_func_end IsExclusivePokemonUnlocked
- thumb_func_start sub_8098214
-sub_8098214:
+ thumb_func_start UnlockExclusivePokemon
+UnlockExclusivePokemon:
push {r4-r6,lr}
lsls r0, 16
asrs r3, r0, 16
@@ -400,7 +400,7 @@ _08098232:
.align 2, 0
_08098240: .4byte gUnknown_203B498
_08098244: .4byte gExclusivePokemon
- thumb_func_end sub_8098214
+ thumb_func_end UnlockExclusivePokemon
thumb_func_start sub_8098248
sub_8098248:
diff --git a/asm/wonder_mail_1.s b/asm/wonder_mail_1.s
index c0407c9..5bd22cf 100644
--- a/asm/wonder_mail_1.s
+++ b/asm/wonder_mail_1.s
@@ -5,280 +5,6 @@
.text
- thumb_func_start sub_802A50C
-sub_802A50C:
- push {r4,r5,lr}
- sub sp, 0x44
- bl sub_80154F0
- adds r4, r0, 0
- add r0, sp, 0x14
- movs r1, 0
- movs r2, 0x30
- bl MemoryFill8
- cmp r4, 0x2
- bne _0802A526
- b _0802A660
-_0802A526:
- cmp r4, 0x3
- beq _0802A52C
- b _0802A680
-_0802A52C:
- ldr r0, _0802A54C
- ldr r1, [r0]
- adds r1, 0x8
- movs r0, 0x20
- add r2, sp, 0x14
- bl sub_8039068
- subs r0, 0x7
- cmp r0, 0x11
- bls _0802A542
- b _0802A654
-_0802A542:
- lsls r0, 2
- ldr r1, _0802A550
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802A54C: .4byte gUnknown_203B2C4
-_0802A550: .4byte _0802A554
- .align 2, 0
-_0802A554:
- .4byte _0802A654
- .4byte _0802A654
- .4byte _0802A654
- .4byte _0802A654
- .4byte _0802A5F0
- .4byte _0802A654
- .4byte _0802A654
- .4byte _0802A654
- .4byte _0802A654
- .4byte _0802A654
- .4byte _0802A59C
- .4byte _0802A654
- .4byte _0802A654
- .4byte _0802A5D8
- .4byte _0802A654
- .4byte _0802A654
- .4byte _0802A654
- .4byte _0802A618
-_0802A59C:
- ldr r0, _0802A5CC
- ldr r3, _0802A5D0
- movs r2, 0
- str r2, [sp]
- movs r1, 0x4
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- ldr r1, _0802A5D4
- ldr r1, [r1]
- movs r2, 0x84
- lsls r2, 3
- adds r1, r2
- str r1, [sp, 0xC]
- movs r1, 0xC
- str r1, [sp, 0x10]
- movs r1, 0
- movs r2, 0x7
- bl sub_8014248
- movs r0, 0x28
- bl sub_802B2BC
- b _0802A654
- .align 2, 0
-_0802A5CC: .4byte gUnknown_80DF1C0
-_0802A5D0: .4byte gUnknown_80DEE44
-_0802A5D4: .4byte gUnknown_203B2C4
-_0802A5D8:
- ldr r0, _0802A5E8
- ldr r1, _0802A5EC
- ldr r2, [r1]
- movs r3, 0x84
- lsls r3, 3
- adds r2, r3
- b _0802A5FC
- .align 2, 0
-_0802A5E8: .4byte gUnknown_80DF208
-_0802A5EC: .4byte gUnknown_203B2C4
-_0802A5F0:
- ldr r0, _0802A60C
- ldr r1, _0802A610
- ldr r2, [r1]
- movs r4, 0x84
- lsls r4, 3
- adds r2, r4
-_0802A5FC:
- ldr r3, _0802A614
- movs r1, 0
- bl sub_80141B4
- movs r0, 0x1F
- bl sub_802B2BC
- b _0802A654
- .align 2, 0
-_0802A60C: .4byte gUnknown_80DF0A0
-_0802A610: .4byte gUnknown_203B2C4
-_0802A614: .4byte 0x0000010d
-_0802A618:
- ldr r1, [sp, 0x24]
- movs r0, 0x4
- bl sub_809539C
- lsls r0, 24
- lsrs r0, 24
- bl sub_8095228
- adds r2, r0, 0
- add r1, sp, 0x14
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- movs r1, 0x6
- strb r1, [r0]
- ldr r0, _0802A65C
- ldr r0, [r0]
- movs r5, 0x86
- lsls r5, 3
- adds r0, r5
- ldr r1, [sp, 0x24]
- str r1, [r0]
- movs r0, 0x21
- bl sub_802B2BC
-_0802A654:
- bl sub_80155F0
- b _0802A680
- .align 2, 0
-_0802A65C: .4byte gUnknown_203B2C4
-_0802A660:
- bl sub_80155F0
- bl ResetUnusedInputStruct
- ldr r0, _0802A688
- ldr r0, [r0]
- movs r1, 0xEF
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- movs r2, 0x1
- bl sub_800641C
- movs r0, 0x1
- bl sub_802B2BC
-_0802A680:
- add sp, 0x44
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A688: .4byte gUnknown_203B2C4
- thumb_func_end sub_802A50C
-
- thumb_func_start sub_802A68C
-sub_802A68C:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A6AE
- bl sub_8012600
- lsls r0, 24
- cmp r0, 0
- bne _0802A6AE
- bl sub_8012750
- movs r0, 0xD
- bl sub_802B2BC
-_0802A6AE:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802A68C
-
- thumb_func_start sub_802A6B4
-sub_802A6B4:
- push {r4,lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A6E8
- bl sub_8012600
- lsls r0, 24
- cmp r0, 0
- bne _0802A6E8
- bl sub_8012744
- adds r4, r0, 0
- bl sub_8012750
- cmp r4, 0
- bne _0802A6E2
- movs r0, 0x20
- bl sub_802B2BC
- b _0802A6E8
-_0802A6E2:
- movs r0, 0x3
- bl sub_802B2BC
-_0802A6E8:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_802A6B4
-
- thumb_func_start sub_802A6F0
-sub_802A6F0:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A710
- movs r0, 0x18
- bl sub_802B2BC
- movs r0, 0x1
- bl sub_8011C28
- movs r0, 0
- bl sub_8012574
-_0802A710:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802A6F0
-
- thumb_func_start sub_802A718
-sub_802A718:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A738
- movs r0, 0x25
- bl sub_802B2BC
- movs r0, 0x1
- bl sub_8011C28
- movs r0, 0
- bl sub_8012574
-_0802A738:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802A718
-
- thumb_func_start sub_802A740
-sub_802A740:
- push {lr}
- sub sp, 0x4
- mov r0, sp
- bl sub_80144A4
- cmp r0, 0
- bne _0802A754
- movs r0, 0x1E
- bl sub_802B2BC
-_0802A754:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802A740
-
thumb_func_start sub_802A75C
sub_802A75C:
push {lr}
@@ -7130,7 +6856,7 @@ _0802DCE0:
ldr r0, [r0, 0x34]
movs r1, 0xC
ldrsh r0, [r0, r1]
- bl sub_8098214
+ bl UnlockExclusivePokemon
ldr r0, _0802DD70
ldr r1, [r5]
ldr r1, [r1, 0x34]
@@ -7179,7 +6905,7 @@ _0802DD9C:
ldr r0, [r0, 0x34]
movs r2, 0xE
ldrsh r0, [r0, r2]
- bl sub_8098214
+ bl UnlockExclusivePokemon
b _0802DE3E
.align 2, 0
_0802DDB4: .4byte gUnknown_203B2FC
@@ -7191,7 +6917,7 @@ _0802DDB8:
ldr r0, [r0, 0x34]
movs r1, 0xE
ldrsh r0, [r0, r1]
- bl sub_8098214
+ bl UnlockExclusivePokemon
b _0802DE3E
.align 2, 0
_0802DDD0: .4byte gUnknown_203B2FC
diff --git a/charmap.txt b/charmap.txt
index 0567a8d..f1d932b 100644
--- a/charmap.txt
+++ b/charmap.txt
@@ -227,3 +227,43 @@ DPAD = 87 52
'\0' = 00
'\n' = 0A
+
+@ TEXT MACROS
+@
+@ "#" is a text macro for different things
+@ case is insensitive but need different
+@ definitions to match
+
+EXTRA_MSG = 23 50 @ #P
+WAIT_PRESS = 23 57 @ #W
+CENTER_ALIGN = 23 2B @ #+
+NEW_LINE = 23 4E @ #N
+
+
+@ COLOR FORMATTING MACROS
+@
+@ TO USE: {COLOR_(1 or 2) ______} text here {END_COLOR_(# from first one)}
+@ EX: {COLOR_2} Steel {END_COLOR_TEXT_2} gets you a colored yellow "Steel"
+COLOR_1 = 23 43
+COLOR_2 = 23 63
+END_COLOR_TEXT_1 = 23 52
+END_COLOR_TEXT_2 = 23 72
+
+@ COLORS
+WHITE = 30 @ C0
+BLUE = 31 @ C1
+RED = 32 @ C2
+BLACK = 33 @ C3
+GREEN = 34 @ C4
+CYAN = 35 @ C5
+YELLOW = 36 @ C6
+WHITE_2 = 37 @ C7
+DARKER_GRAY = 38 @ C8
+DARK_GRAY = 39 @ C9
+WHITE_3 = 41 @ CA
+WHITE_4 = 42 @ CB
+YELLOW_2 = 43 @ CC
+YELLOW_3 = 44 @ CD
+LIGHT_BLUE = 45 @ CE
+WHITE_5 = 46 @ CF
+LIGHT_BLUE_2 = 47 @ CG (TODO CHECK THIS)
diff --git a/data/data_80B9BB8.s b/data/data_80B9BB8.s
index c203289..0801563 100644
--- a/data/data_80B9BB8.s
+++ b/data/data_80B9BB8.s
@@ -2973,5 +2973,3 @@ gUnknown_80DDB24: @ 80DDB24
gUnknown_80DDB60: @ 80DDB60
.incbin "baserom.gba", 0xDDB60, 0x48
- .include "data/text/wonder_mail_1.inc"
-
diff --git a/data/data_80DED44.s b/data/data_80DED44.s
index 21f1673..ce3aad8 100644
--- a/data/data_80DED44.s
+++ b/data/data_80DED44.s
@@ -1,10 +1,5 @@
.section .rodata
- .global gUnknown_80DED44
-gUnknown_80DED44: @ 80DED44
- @ replacing .incbin "baserom.gba", 0x000ded44, 0x4
- .4byte 0x01
-
.global gUnknown_80DED48
gUnknown_80DED48: @ 80DED48
@ replacing .incbin "baserom.gba", 0x000ded48, 0x18
@@ -1211,21 +1206,3 @@ gUnknown_80E1FDC: @ 80E1FDC
.align 2,0
.string "pksdir0\0"
.align 2,0
-
- .global gUnknown_80E1FF0
-gUnknown_80E1FF0: @ 80E1FF0
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x03, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80E2008
-gUnknown_80E2008: @ 80E2008
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x06, 0x00, 0x00, 0x00
- .byte 0x02, 0x00, 0x02, 0x00
- .byte 0x1a, 0x00, 0x04, 0x00
- .byte 0x06, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
diff --git a/data/personality_test.s b/data/personality_test.s
index 541dec4..b6cd987 100644
--- a/data/personality_test.s
+++ b/data/personality_test.s
@@ -1837,32 +1837,3 @@ gStarters: @ 80F278E (2D Array / [Male][Female])
.byte 0x34, 0x00 @ Meowth (Quirky M)
.byte 0x15, 0x01 @ Treecko (Quirky F)
.byte 0x00, 0x00 @ End of table
-
- .global gStarterReveal
-gStarterReveal: @ 80F27C4
- .string "\n"
- .string "#+The Pokémon $m0!\0"
- .4byte gStarterReveal
-
- .global gPartnerPrompt
-gPartnerPrompt: @ 80F27DC
- .string "#+This is the final step.#W\n"
- .string "#+Who would you like to have as a partner?#P" @ #P -> scroll down
- .string "#+Choose the Pokémon you want\n"
- .string "#+as your partner from this group.\0"
- .align 2,0
- .4byte gPartnerPrompt
-
- .global gPartnerNickPrompt
-gPartnerNickPrompt: @ 80F286C
- .string "#+What is your partner~27s nickname?\0"
- .align 2,0
- .4byte gPartnerNickPrompt
-
- .global gEndIntroText
-gEndIntroText: @ 80F2898
- .string "#+OK! We~27re all set!#P"
- .string "#+Let~27s get you into the\n"
- .string "#+world of Pokémon!#P"
- .string "#+Go for it!\0"
- .align 2,0
diff --git a/data/text/wonder_mail_1.inc b/data/text/wonder_mail_1.inc
deleted file mode 100644
index 9b50564..0000000
--- a/data/text/wonder_mail_1.inc
+++ /dev/null
@@ -1,113 +0,0 @@
-gUnknown_80DDBA8:: @ 80DDBA8
- .string " What you need to do is\n"
- .string "tell your friend--the one you rescued--\n"
- .string "this here password.\0"
- .align 2, 0
-
-gUnknown_80DDBFC:: @ 80DDBFC
- .string " All righty!\n"
- .string "Here~27s your #CGA-OK Mail password#R.\0"
- .align 2, 0
-
-gUnknown_80DDC30:: @ 80DDC30
- .string " Okeydoke! That~27s all done.\n"
- .string "Come around whenever you need.\0"
- .align 2, 0
-
-gUnknown_80DDC70:: @ 80DDC70
- .string " Okeydoke! I sent off your\n"
- .string "#CGA-OK Mail#R.#P"
- .string " Let me save your adventure.\0"
- .align 2, 0
-
-gUnknown_80DDCBC:: @ 80DDCBC
- .string "#+Please choose the Pokémon you want to\n"
- .string "#+send as a helper to your friend.\n"
- .string "#+(Its hold item will not be sent.)\0"
- .align 2, 0
-
-gUnknown_80DDD2C:: @ 80DDD2C
- .string " ...Uh~2c no?\n"
- .string "There appear to be no Pokémon in your\n"
- .string "Friend Areas. What do you want to do?\0"
- .align 2, 0
-
-gUnknown_80DDD88:: @ 80DDD88
- .string " You~27re sure you want to\n"
- .string "send this here Pokémon?\0"
- .align 2, 0
-
-gUnknown_80DDDBC:: @ 80DDDBC
- .string " You~27re sure about this?\0"
- .align 2, 0
-
-gUnknown_80DDDD8:: @ 80DDDD8
- .string " All righty. I need you to\n"
- .string "pick the #CGA-OK Mail#R you want to send.\0"
- .align 2, 0
-
-gUnknown_80DDE20:: @ 80DDE20
- .string " ...Uh~2c no?\n"
- .string "I don~27t see any #CGA-OK Mail#R here.\0"
- .align 2, 0
-
-gUnknown_80DDE58:: @ 80DDE58
- .string " Did you know? If you use\n"
- .string "a #CGGame Link cable#R~2c you can send\n"
- .string "a #CGhelper Pokémon#R to your friend.\0"
- .align 2, 0
-
-gUnknown_80DDEC0:: @ 80DDEC0
- .string " Don~27t you worry. Sending\n"
- .string "a Pokémon doesn~27t mean it will go away.\n"
- .string "So! Want to send one to your friend?\0"
- .align 2, 0
-
-gUnknown_80DDF2C:: @ 80DDF2C
- .string " ...Uh~2c no?\n"
- .string "There~27s no space at all to receive\n"
- .string "any more mail.#P"
- .string " Delete some old mail~2c\n"
- .string "and then come to me to receive\n"
- .string "your mail~2c OK?\0"
- .align 2, 0
-
-gUnknown_80DDFB8:: @ 80DDFB8
- .string " All righty! Connect up\n"
- .string "the #CGGame Link cable#R~2c if you~27d please.\n"
- .string "Your friend ready~2c too?\0"
- .align 2, 0
-
-gUnknown_80DE01C:: @ 80DE01C
- .string "#+Communicating...\n"
- .string "#+Please wait with the power on.\n"
- .string "#+To cancel~2c press {B_BUTTON}.\0"
- .align 2, 0
-
-gUnknown_80DE06C:: @ 80DE06C
- .string " Okeydoke!\n"
- .string "I received your friend~27s #CGSOS Mail#R.#P"
- .string " Let me save your adventure.\0"
- .align 2, 0
-
-gUnknown_80DE0C0:: @ 80DE0C0
- .string " Okeydoke! You~27re good to go.\n"
- .string "Just give me a shout when you~27d like\n"
- .string "to go rescue your friend.\0"
- .align 2, 0
-
-gUnknown_80DE124:: @ 80DE124
- .string " OK~2c I need you to enter\n"
- .string "the #CGSOS Mail password#R that your\n"
- .string "friend gave you.\0"
- .align 2, 0
-
-gUnknown_80DE178:: @ 80DE178
- .string " How do you want to receive\n"
- .string "your friend~27s #CGSOS Mail#R?\0"
- .align 2, 0
-
-gUnknown_80DE1B4:: @ 80DE1B4
- .string " How do you want to send\n"
- .string "your #CGA-OK Mail#R?\0"
- .align 2, 0
diff --git a/include/wonder_mail.h b/include/wonder_mail.h
index 39cc9b2..b56fe32 100644
--- a/include/wonder_mail.h
+++ b/include/wonder_mail.h
@@ -40,6 +40,49 @@ struct WonderMailStruct_203B2C0
};
+struct unkStruct_41C
+{
+ u8 unk41C;
+ u8 unk41D;
+ u8 unk41E;
+ u8 unk41F;
+};
+
+struct WonderMailStruct_203B2C4
+{
+ // size: 0x564
+ u8 unk0;
+ u8 padding[3];
+ u32 unk4; // wonder mail link status??
+ u8 unk8[0x36]; // Probably a buffer for entry
+ u8 unk3E;
+ u32 unk40;
+ u32 linkError; // another link status
+ u8 filler48[0x218 - 0x48];
+ s8 unk218;
+ u32 unk21C;
+ u8 filler220[0x30C - 0x220];
+ u32 unk30C;
+ u8 filler310[0x35C - 0x310];
+ u32 unk35C;
+ u8 filler360[0x3BC - 0x360];
+ u32 unk3BC;
+ u8 filler3C0[0x41C - 0x3C0];
+ struct unkStruct_41C unk41C;
+ /* 0x420 */ struct OpenedFile *faceFile;
+ /* 0x424 */ u8 *faceData;
+ u16 unk428;
+ u16 unk42A;
+ u8 unk42C;
+ u8 unk42D;
+ u8 unk42E;
+ u32 unk430;
+ u8 padding3[0x534 - 0x434];
+ s32 unk534;
+ u32 unk538;
+ u8 fill53C[0x564 - 0x53C];
+};
+
void sub_8028B04(u32 r0);
diff --git a/ld_script.txt b/ld_script.txt
index 2a7c039..87e884d 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -92,7 +92,6 @@ SECTIONS {
src/wonder_mail_pre.o(.text);
asm/wonder_mail.o(.text);
src/wonder_mail.o(.text);
- src/wonder_mail_mid.o(.text);
asm/wonder_mail_1.o(.text);
src/adventure_log.o(.text);
src/friend_rescue.o(.text);
diff --git a/src/adventure_log.c b/src/adventure_log.c
index 2a02840..420d71d 100644
--- a/src/adventure_log.c
+++ b/src/adventure_log.c
@@ -31,8 +31,23 @@ struct AdventureLog
};
extern struct AdventureLog *gAdventureLog;
-extern struct unkData gUnknown_80E2008;
-extern struct unkData gUnknown_80E1FF0;
+
+const struct unkData gUnknown_80E1FF0 = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ NULL
+};
+const struct unkData gUnknown_80E2008 = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x06, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x02, 0x00,
+ 0x1A, 0x00, 0x04,
+ 0x06, 0x00,
+ NULL
+};
// Adventure Log Text
const u8 gAdventureLogHeaderText[] = "Adventure Log";
@@ -43,8 +58,8 @@ extern void *MemoryAlloc(u32, u32);
extern void MemoryFree(void *);
extern void sub_8006518(struct unkData *);
extern void sub_800641C(void *, u32, u32);
-extern void sub_8032084();
-extern void DisplayAdventureLog();
+void sub_8032084();
+void DisplayAdventureLog();
extern void sub_8013818(void *, u32, u32, u32);
extern u8 sub_8013938(void *);
extern void sub_8013660(void *);
diff --git a/src/code_80118A4_1.c b/src/code_80118A4_1.c
deleted file mode 100644
index e69de29..0000000
--- a/src/code_80118A4_1.c
+++ /dev/null
diff --git a/src/data/formatted_type_names.h b/src/data/formatted_type_names.h
index e973056..16deaad 100644
--- a/src/data/formatted_type_names.h
+++ b/src/data/formatted_type_names.h
@@ -1,18 +1,18 @@
-ALIGNED(4) const char gFormattedSteelText[] = "#c6Steel#r";
-ALIGNED(4) const char gFormattedDarkText[] = "#c6Dark#r";
-ALIGNED(4) const char gFormattedDragonText[] = "#c6Dragon#r";
-ALIGNED(4) const char gFormattedGhostText[] = "#c6Ghost#r";
-ALIGNED(4) const char gFormattedRockText[] = "#c6Rock#r";
-ALIGNED(4) const char gFormattedBugText[] = "#c6Bug#r";
-ALIGNED(4) const char gFormattedPsychicText[] = "#c6Psychic#r";
-ALIGNED(4) const char gFormattedFlyingText[] = "#c6Flying#r";
-ALIGNED(4) const char gFormattedGroundText[] = "#c6Ground#r";
-ALIGNED(4) const char gFormattedPoisonText[] = "#c6Poison#r";
-ALIGNED(4) const char gFormattedFightingText[] = "#c6Fighting#r";
-ALIGNED(4) const char gFormattedIceText[] = "#c6Ice#r ";
-ALIGNED(4) const char gFormattedElectricText[] = "#c6Electric#r";
-ALIGNED(4) const char gFormattedGrassText[] = "#c6Grass#r";
-ALIGNED(4) const char gFormattedWaterText[] = "#c6Water#r";
-ALIGNED(4) const char gFormattedFireText[] = "#c6Fire#r ";
-ALIGNED(4) const char gFormattedNormalText[] = "#c6Normal#r";
-ALIGNED(4) const char gFormattedNoneText[] = "#c6None#r";
+ALIGNED(4) const char gFormattedSteelText[] = _("{COLOR_2 YELLOW}Steel{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedDarkText[] = _("{COLOR_2 YELLOW}Dark{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedDragonText[] = _("{COLOR_2 YELLOW}Dragon{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedGhostText[] = _("{COLOR_2 YELLOW}Ghost{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedRockText[] = _("{COLOR_2 YELLOW}Rock{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedBugText[] = _("{COLOR_2 YELLOW}Bug{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedPsychicText[] = _("{COLOR_2 YELLOW}Psychic{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedFlyingText[] = _("{COLOR_2 YELLOW}Flying{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedGroundText[] = _("{COLOR_2 YELLOW}Ground{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedPoisonText[] = _("{COLOR_2 YELLOW}Poison{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedFightingText[] = _("{COLOR_2 YELLOW}Fighting{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedIceText[] = _("{COLOR_2 YELLOW}Ice{END_COLOR_TEXT_2} ");
+ALIGNED(4) const char gFormattedElectricText[] = _("{COLOR_2 YELLOW}Electric{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedGrassText[] = _("{COLOR_2 YELLOW}Grass{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedWaterText[] = _("{COLOR_2 YELLOW}Water{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedFireText[] = _("{COLOR_2 YELLOW}Fire{END_COLOR_TEXT_2} ");
+ALIGNED(4) const char gFormattedNormalText[] = _("{COLOR_2 YELLOW}Normal{END_COLOR_TEXT_2}");
+ALIGNED(4) const char gFormattedNoneText[] = _("{COLOR_2 YELLOW}None{END_COLOR_TEXT_2}");
diff --git a/src/data/nature_description.h b/src/data/nature_description.h
index a8b396f..7281705 100644
--- a/src/data/nature_description.h
+++ b/src/data/nature_description.h
@@ -1,232 +1,233 @@
-ALIGNED(4) const char gQuirkyDescription[] =
- "#+You appear to be...#W\n"
- "#+The quirky type.#P"
- "#+People consider you an eccentric\n"
- "#+who does things at your own pace.#P"
- "#+You never break tempo.#P"
- "#+Your carefree nature makes you\n"
- "#+attractive. But you also happen\n"
- "#+to be somewhat childish...#P"
- "#+You are fickle and cause problems for the\n"
- "#+people who have to go along with you.#P"
- "#+Maybe people are even upset\n"
- "#+with you for being so fickle?#P"
- "#+If you realize how selfishly\n"
- "#+you~27re behaving~2c try to think\n"
- "#+before you do anything rash.#P"
- "#+A quirky person like you should be...";
+ALIGNED(4) const char gQuirkyDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The quirky type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}People consider you an eccentric\n"
+ "{CENTER_ALIGN}who does things at your own pace.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You never break tempo.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Your carefree nature makes you\n"
+ "{CENTER_ALIGN}attractive. But you also happen\n"
+ "{CENTER_ALIGN}to be somewhat childish...{EXTRA_MSG}"
+ "{CENTER_ALIGN}You are fickle and cause problems for the\n"
+ "{CENTER_ALIGN}people who have to go along with you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Maybe people are even upset\n"
+ "{CENTER_ALIGN}with you for being so fickle?{EXTRA_MSG}"
+ "{CENTER_ALIGN}If you realize how selfishly\n"
+ "{CENTER_ALIGN}you~27re behaving~2c try to think\n"
+ "{CENTER_ALIGN}before you do anything rash.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A quirky person like you should be...");
-ALIGNED(4) const char gLonelyDescription[] =
- "#+You appear to be...#W\n"
- "#+The lonely type.#P"
- "#+You always act cheerful and\n"
- "#+jocular around other people.#P"
- "#+But that~27s only because\n"
- "#+you are with other people.#P"
- "#+However~2c when you get alone...#P"
- "#+Do you find yourself\n"
- "#+feeling oddly depressed?#P"
- "#+That~27s why you always\n"
- "#+want to be with others.#P"
- "#+But if you go around feeling\n"
- "#+depressed too much...#P"
- "#+Your nutritional balance goes out\n"
- "#+of wack. Eat more vegetables!#P"
- "#+However...#W\n"
- "#+It~27s not a bad thing\n"
- "#+to feel lonely.#P"
- "#+You know what it~27s like when you aren~27t\n"
- "#+alone~2c so that~27s why you feel lonesome.#P"
- "#+And that~27s why you aren~27t really alone.#P"
- "#+A lonely person like you should be...";
+ALIGNED(4) const char gLonelyDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The lonely type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You always act cheerful and\n"
+ "{CENTER_ALIGN}jocular around other people.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But that~27s only because\n"
+ "{CENTER_ALIGN}you are with other people.{EXTRA_MSG}"
+ "{CENTER_ALIGN}However~2c when you get alone...{EXTRA_MSG}"
+ "{CENTER_ALIGN}Do you find yourself\n"
+ "{CENTER_ALIGN}feeling oddly depressed?{EXTRA_MSG}"
+ "{CENTER_ALIGN}That~27s why you always\n"
+ "{CENTER_ALIGN}want to be with others.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But if you go around feeling\n"
+ "{CENTER_ALIGN}depressed too much...{EXTRA_MSG}"
+ "{CENTER_ALIGN}Your nutritional balance goes out\n"
+ "{CENTER_ALIGN}of wack. Eat more vegetables!{EXTRA_MSG}"
+ "{CENTER_ALIGN}However...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}It~27s not a bad thing\n"
+ "{CENTER_ALIGN}to feel lonely.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You know what it~27s like when you aren~27t\n"
+ "{CENTER_ALIGN}alone~2c so that~27s why you feel lonesome.{EXTRA_MSG}"
+ "{CENTER_ALIGN}And that~27s why you aren~27t really alone.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A lonely person like you should be...");
-ALIGNED(4) const char gRelaxedDescription[] =
- "#+You appear to be...#W\n"
- "#+The relaxed type.#P"
- "#+Do you occasionally\n"
- "#+zone out and miss a bus?#P"
- "#+Or do you find yourself dozing off?#P"
- "#+Or is your reaction time\n"
- "#+a little slower than others?#P"
- "#+But that~27s not necessarily\n"
- "#+a bad thing.#P"
- "#+You can do things at your own\n"
- "#+tempo without feeling pressured.#P"
- "#+You can live in a relaxed and\n"
- "#+unhurried manner without worries.#P"
- "#+I think that~27s a happy\n"
- "#+lifestyle to be envied~2c even.#P"
- "#+You~27re also surprisingly popular.#P"
- "#+The way you vacantly stare\n"
- "#+off into the distance...#P"
- "#+It should make that someone\n"
- "#+special~27s pulse race.#P"
- "#+A relaxed person like you should be...";
+ALIGNED(4) const char gRelaxedDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The relaxed type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Do you occasionally\n"
+ "{CENTER_ALIGN}zone out and miss a bus?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Or do you find yourself dozing off?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Or is your reaction time\n"
+ "{CENTER_ALIGN}a little slower than others?{EXTRA_MSG}"
+ "{CENTER_ALIGN}But that~27s not necessarily\n"
+ "{CENTER_ALIGN}a bad thing.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You can do things at your own\n"
+ "{CENTER_ALIGN}tempo without feeling pressured.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You can live in a relaxed and\n"
+ "{CENTER_ALIGN}unhurried manner without worries.{EXTRA_MSG}"
+ "{CENTER_ALIGN}I think that~27s a happy\n"
+ "{CENTER_ALIGN}lifestyle to be envied~2c even.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re also surprisingly popular.{EXTRA_MSG}"
+ "{CENTER_ALIGN}The way you vacantly stare\n"
+ "{CENTER_ALIGN}off into the distance...{EXTRA_MSG}"
+ "{CENTER_ALIGN}It should make that someone\n"
+ "{CENTER_ALIGN}special~27s pulse race.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A relaxed person like you should be...");
-ALIGNED(4) const char gCalmDescription[] =
- "#+You appear to be...#W\n"
- "#+The calm type.#P"
- "#+You~27re capable of giving advice\n"
- "#+to friends with worries.#P"
- "#+You don~27t like to fight.#P"
- "#+You~27re a warm~2c kindhearted\n"
- "#+person who cares.#P"
- "#+You must have many friends\n"
- "#+who look up to you.#P"
- "#+However...#W\n"
- "#+You may also be somewhat gullible...#P"
- "#+As well as a little careless...#P"
- "#+And even a little sloppy.#P"
- "#+You might want to keep\n"
- "#+those points in mind.#P"
- "#+A calm person like you should be...";
+ALIGNED(4) const char gCalmDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The calm type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re capable of giving advice\n"
+ "{CENTER_ALIGN}to friends with worries.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You don~27t like to fight.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re a warm~2c kindhearted\n"
+ "{CENTER_ALIGN}person who cares.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You must have many friends\n"
+ "{CENTER_ALIGN}who look up to you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}However...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}You may also be somewhat gullible...{EXTRA_MSG}"
+ "{CENTER_ALIGN}As well as a little careless...{EXTRA_MSG}"
+ "{CENTER_ALIGN}And even a little sloppy.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You might want to keep\n"
+ "{CENTER_ALIGN}those points in mind.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A calm person like you should be...");
-ALIGNED(4) const char gSassyDescription[] =
- "#+You appear to be...#W\n"
- "#+The sassy type.#P"
- "#+You tend to be somewhat cynical.#P"
- "#+Despite that~2c there is something\n"
- "#+appealing and lovable about you.#P"
- "#+But do you occasionally say something\n"
- "#+arrogant that angers others?#P"
- "#+Do you make that mistake?#P"
- "#+Or have people called you\n"
- "#+conceited~2c vain~2c or selfish?#P"
- "#+Have people said that about you?#P"
- "#+Huh?#W You~27re telling me to get lost?#P"
- "#+Why~2c you... Come here and say that!#W\n"
- "#+......Gasp!#P"
- "#+...I~27m sorry.\n"
- "#+I let my feelings run away.\n"
- "#+I truly regret this~2c really.#P"
- "#+Anyway~2c your cool and aloof\n"
- "#+attitude is what defines you.#P"
- "#+It makes you exasperating and\n"
- "#+appealing at the same time.#P"
- "#+A sassy person like you should be...";
+ALIGNED(4) const char gSassyDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The sassy type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You tend to be somewhat cynical.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Despite that~2c there is something\n"
+ "{CENTER_ALIGN}appealing and lovable about you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But do you occasionally say something\n"
+ "{CENTER_ALIGN}arrogant that angers others?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Do you make that mistake?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Or have people called you\n"
+ "{CENTER_ALIGN}conceited~2c vain~2c or selfish?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Have people said that about you?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Huh?{WAIT_PRESS} You~27re telling me to get lost?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Why~2c you... Come here and say that!{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}......Gasp!{EXTRA_MSG}"
+ "{CENTER_ALIGN}...I~27m sorry.\n"
+ "{CENTER_ALIGN}I let my feelings run away.\n"
+ "{CENTER_ALIGN}I truly regret this~2c really.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Anyway~2c your cool and aloof\n"
+ "{CENTER_ALIGN}attitude is what defines you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}It makes you exasperating and\n"
+ "{CENTER_ALIGN}appealing at the same time.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A sassy person like you should be...");
-ALIGNED(4) const char gHastyDescription[] =
- "#+You appear to be...#W\n"
- "#+The hasty type.#P"
- "#+You like to take charge\n"
- "#+and get things done.#P"
- "#+You~27re a real go-getter.#P"
- "#+But are you also stressed out?#P"
- "#+You get irritated when your\n"
- "#+friends don~27t show up on time.#P"
- "#+You get frustrated when things\n"
- "#+don~27t turn out the way you expect.#P"
- "#+Maybe you jab the elevator button\n"
- "#+if the elevator is slow to arrive.#P"
- "#+...Maybe you~27re already jabbing\n"
- "#+the A Button repeatedly now.#P"
- "#+Beware--getting too easily irritated\n"
- "#+just isn~27t good for your well-being.#P"
- "#+A hasty person like you should be...";
+ALIGNED(4) const char gHastyDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The hasty type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You like to take charge\n"
+ "{CENTER_ALIGN}and get things done.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re a real go-getter.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But are you also stressed out?{EXTRA_MSG}"
+ "{CENTER_ALIGN}You get irritated when your\n"
+ "{CENTER_ALIGN}friends don~27t show up on time.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You get frustrated when things\n"
+ "{CENTER_ALIGN}don~27t turn out the way you expect.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Maybe you jab the elevator button\n"
+ "{CENTER_ALIGN}if the elevator is slow to arrive.{EXTRA_MSG}"
+ "{CENTER_ALIGN}...Maybe you~27re already jabbing\n"
+ "{CENTER_ALIGN}the A Button repeatedly now.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Beware--getting too easily irritated\n"
+ "{CENTER_ALIGN}just isn~27t good for your well-being.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A hasty person like you should be...");
-ALIGNED(4) const char gTimidDescription[] =
- "#+You appear to be...#W\n"
- "#+The timid type.#P"
- "#+You may find it hard to go\n"
- "#+to the washroom at night.#P"
- "#+You may also find it too frightening\n"
- "#+to go back to school to get something\n"
- "#+you left behind in class.#P"
- "#+If you~27re ever walking on a dark\n"
- "#+street at night~2c you probably turn\n"
- "#+around often to check behind you.#P"
- "#+But your timid nature is\n"
- "#+also your good point!#P"
- "#+Because those who know fear are\n"
- "#+those who know true courage.#P"
- "#+A timid person like you should be...";
+ALIGNED(4) const char gTimidDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The timid type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You may find it hard to go\n"
+ "{CENTER_ALIGN}to the washroom at night.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You may also find it too frightening\n"
+ "{CENTER_ALIGN}to go back to school to get something\n"
+ "{CENTER_ALIGN}you left behind in class.{EXTRA_MSG}"
+ "{CENTER_ALIGN}If you~27re ever walking on a dark\n"
+ "{CENTER_ALIGN}street at night~2c you probably turn\n"
+ "{CENTER_ALIGN}around often to check behind you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But your timid nature is\n"
+ "{CENTER_ALIGN}also your good point!{EXTRA_MSG}"
+ "{CENTER_ALIGN}Because those who know fear are\n"
+ "{CENTER_ALIGN}those who know true courage.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A timid person like you should be...");
-ALIGNED(4) const char gNaiveDescription[] =
- "#+You appear to be...#W\n"
- "#+The naive type.#P"
- "#+You are highly curious~2c\n"
- "#+and you love rare things.#P"
- "#+Your cheerful and carefree\n"
- "#+attitude should make things fun\n"
- "#+for the people around you.#P"
- "#+But you do have one flaw.\n"
- "#+You can be childish.#P"
- "#+You can never sit still.\n"
- "#+You~27re always on the move.#P"
- "#+You can also be selfish~2c\n"
- "#+so you should watch yourself.#P"
- "#+A naive person like you should be...";
+ALIGNED(4) const char gNaiveDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The naive type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You are highly curious~2c\n"
+ "{CENTER_ALIGN}and you love rare things.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Your cheerful and carefree\n"
+ "{CENTER_ALIGN}attitude should make things fun\n"
+ "{CENTER_ALIGN}for the people around you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But you do have one flaw.\n"
+ "{CENTER_ALIGN}You can be childish.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You can never sit still.\n"
+ "{CENTER_ALIGN}You~27re always on the move.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You can also be selfish~2c\n"
+ "{CENTER_ALIGN}so you should watch yourself.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A naive person like you should be...");
-ALIGNED(4) const char gImpishDescription[] =
- "#+You appear to be...#W\n"
- "#+The impish type.#P"
- "#+You~27re playful~2c cheerful~2c\n"
- "#+and you love pranks.#P"
- "#+You~27re also kindhearted.#P"
- "#+That~27s why the people around\n"
- "#+you find you so irresistible.#P"
- "#+You must be the most\n"
- "#+popular person around!#P"
- "#+Oh?#W You~27re not that popular?#W\n"
- "#+You~27re either being modest...\n"
- "#+or you just don~27t notice it.#P"
- "#+I bet people are just too shy\n"
- "#+to let their feelings be known.#P"
- "#+There~27s someone out there who~27s\n"
- "#+afraid to declare their love for you!#P"
- "#+An impish person like you should be...";
+ALIGNED(4) const char gImpishDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The impish type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re playful~2c cheerful~2c\n"
+ "{CENTER_ALIGN}and you love pranks.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re also kindhearted.{EXTRA_MSG}"
+ "{CENTER_ALIGN}That~27s why the people around\n"
+ "{CENTER_ALIGN}you find you so irresistible.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You must be the most\n"
+ "{CENTER_ALIGN}popular person around!{EXTRA_MSG}"
+ "{CENTER_ALIGN}Oh?{WAIT_PRESS} You~27re not that popular?{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}You~27re either being modest...\n"
+ "{CENTER_ALIGN}or you just don~27t notice it.{EXTRA_MSG}"
+ "{CENTER_ALIGN}I bet people are just too shy\n"
+ "{CENTER_ALIGN}to let their feelings be known.{EXTRA_MSG}"
+ "{CENTER_ALIGN}There~27s someone out there who~27s\n"
+ "{CENTER_ALIGN}afraid to declare their love for you!{EXTRA_MSG}"
+ "{CENTER_ALIGN}An impish person like you should be...");
-ALIGNED(4) const char gJollyDescription[] =
- "#+You appear to be...#W\n"
- "#+The jolly type.#P"
- "#+Always laughing and smiling~2c\n"
- "#+you uplift everyone around you.#P"
- "#+You love jokes!#P"
- "#+You have lots of friends~2c and\n"
- "#+you~27re popular wherever you go.#P"
- "#+But sometimes you get carried away\n"
- "#+and say things that get you in trouble.#P"
- "#+You should learn to think before\n"
- "#+saying or doing anything.#P"
- "#+A jolly person like you should be...";
+ALIGNED(4) const char gJollyDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The jolly type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}Always laughing and smiling~2c\n"
+ "{CENTER_ALIGN}you uplift everyone around you.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You love jokes!{EXTRA_MSG}"
+ "{CENTER_ALIGN}You have lots of friends~2c and\n"
+ "{CENTER_ALIGN}you~27re popular wherever you go.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But sometimes you get carried away\n"
+ "{CENTER_ALIGN}and say things that get you in trouble.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You should learn to think before\n"
+ "{CENTER_ALIGN}saying or doing anything.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A jolly person like you should be...");
-ALIGNED(4) const char gBraveDescription[] =
- "#+You appear to be...#W\n"
- "#+The brave type.#P"
- "#+You have a strong sense of justice.#W\n"
- "#+You hate evil.#W\n"
- "#+You will take on any opponent.#P"
- "#+You are truly a hero!#P"
- "#+Go forth!#P"
- "#+For justice...#W\n"
- "#+For peace on earth...#W\n"
- "#+Fight the forces of evil!#P"
- "#+......#WIf I~27m wrong...#W\n"
- "#+Work at becoming a true hero!#P"
- "#+A brave person like you should be...";
+ALIGNED(4) const char gBraveDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The brave type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You have a strong sense of justice.{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}You hate evil.{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}You will take on any opponent.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You are truly a hero!{EXTRA_MSG}"
+ "{CENTER_ALIGN}Go forth!{EXTRA_MSG}"
+ "{CENTER_ALIGN}For justice...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}For peace on earth...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}Fight the forces of evil!{EXTRA_MSG}"
+ "{CENTER_ALIGN}......{WAIT_PRESS}If I~27m wrong...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}Work at becoming a true hero!{EXTRA_MSG}"
+ "{CENTER_ALIGN}A brave person like you should be...");
-ALIGNED(4) const char gDocileDescription[] =
- "#+You appear to be...#W\n"
- "#+The docile type.#P"
- "#+You~27re very kindhearted.#W\n"
- "#+Very helpful.#W\n"
- "#+You can make friends with anyone.#P"
- "#+You~27re a wonderful person.#P"
- "#+......#WIs that going overboard?#W\n"
- "#+I don~27t think so.#P"
- "#+You yourself should be\n"
- "#+the best judge of that.#P"
- "#+A docile person like you should be...";
+ALIGNED(4) const char gDocileDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The docile type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re very kindhearted.{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}Very helpful.{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}You can make friends with anyone.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You~27re a wonderful person.{EXTRA_MSG}"
+ "{CENTER_ALIGN}......{WAIT_PRESS}Is that going overboard?{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}I don~27t think so.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You yourself should be\n"
+ "{CENTER_ALIGN}the best judge of that.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A docile person like you should be...");
-ALIGNED(4) const char gHardyDescription[] =
- "#+You appear to be...#W\n"
- "#+The hardy type.#P#+You do your homework diligently~2c\n"
- "#+and you know to eat properly.#P"
- "#+You have strong willpower that lets\n"
- "#+you complete tasks~2c however tough.#P"
- "#+But~2c you can also be stubborn to the\n"
- "#+point of even feuding with friends...#P"
- "#+Nothing will go right for you when you~27re\n"
- "#+irritated~2c so learn to laugh it off.#P"
- "#+A hardy person like you should be...";
+ALIGNED(4) const char gHardyDescription[] = _(
+ "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}The hardy type.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You do your homework diligently~2c\n"
+ "{CENTER_ALIGN}and you know to eat properly.{EXTRA_MSG}"
+ "{CENTER_ALIGN}You have strong willpower that lets\n"
+ "{CENTER_ALIGN}you complete tasks~2c however tough.{EXTRA_MSG}"
+ "{CENTER_ALIGN}But~2c you can also be stubborn to the\n"
+ "{CENTER_ALIGN}point of even feuding with friends...{EXTRA_MSG}"
+ "{CENTER_ALIGN}Nothing will go right for you when you~27re\n"
+ "{CENTER_ALIGN}irritated~2c so learn to laugh it off.{EXTRA_MSG}"
+ "{CENTER_ALIGN}A hardy person like you should be...");
diff --git a/src/data/wonder_mail_1.h b/src/data/wonder_mail_1.h
index 7b840d6..19c49dd 100644
--- a/src/data/wonder_mail_1.h
+++ b/src/data/wonder_mail_1.h
@@ -1,141 +1,259 @@
-ALIGNED(4) const char gUnknown_80DE1E4[] =
+ALIGNED(4) const char gUnknown_80DDBA8[] = _(
+ " What you need to do is\n"
+ "tell your friend--the one you rescued--\n"
+ "this here password.");
+
+ALIGNED(4) const char gUnknown_80DDBFC[] = _(
+ " All righty!\n"
+ "Here~27s your {COLOR_1 LIGHT_BLUE_2}A-OK Mail password{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gUnknown_80DDC30[] = _(
+ " Okeydoke! That~27s all done.\n"
+ "Come around whenever you need.");
+
+ALIGNED(4) const char gUnknown_80DDC70[] = _(
+ " Okeydoke! I sent off your\n"
+ "{COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " Let me save your adventure.");
+
+ALIGNED(4) const char gUnknown_80DDCBC[] = _(
+ "{CENTER_ALIGN}Please choose the Pokémon you want to\n"
+ "{CENTER_ALIGN}send as a helper to your friend.\n"
+ "{CENTER_ALIGN}(Its hold item will not be sent.)");
+
+ALIGNED(4) const char gUnknown_80DDD2C[] = _(
" ...Uh~2c no?\n"
- "You don~27t have an #CGSOS Mail#R.#P"
+ "There appear to be no Pokémon in your\n"
+ "Friend Areas. What do you want to do?");
+
+ALIGNED(4) const char gUnknown_80DDD88[] = _(
+ " You~27re sure you want to\n"
+ "send this here Pokémon?");
+
+ALIGNED(4) const char gUnknown_80DDDBC[] = _(
+ " You~27re sure about this?");
+
+ALIGNED(4) const char gUnknown_80DDDD8[] = _(
+ " All righty. I need you to\n"
+ "pick the {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1} you want to send.");
+
+ALIGNED(4) const char gUnknown_80DDE20[] = _(
+ " ...Uh~2c no?\n"
+ "I don~27t see any {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1} here.");
+
+ALIGNED(4) const char gUnknown_80DDE58[] = _(
+ " Did you know? If you use\n"
+ "a {COLOR_1 LIGHT_BLUE_2}Game Link cable{END_COLOR_TEXT_1}~2c you can send\n"
+ "a {COLOR_1 LIGHT_BLUE_2}helper Pokémon{END_COLOR_TEXT_1} to your friend.");
+
+ALIGNED(4) const char gUnknown_80DDEC0[] = _(
+ " Don~27t you worry. Sending\n"
+ "a Pokémon doesn~27t mean it will go away.\n"
+ "So! Want to send one to your friend?");
+
+ALIGNED(4) const char gUnknown_80DDF2C[] = _(
+ " ...Uh~2c no?\n"
+ "There~27s no space at all to receive\n"
+ "any more mail.{EXTRA_MSG}"
+ " Delete some old mail~2c\n"
+ "and then come to me to receive\n"
+ "your mail~2c OK?");
+
+ALIGNED(4) const char gUnknown_80DDFB8[] = _(
+ " All righty! Connect up\n"
+ "the {COLOR_1 LIGHT_BLUE_2}Game Link cable{END_COLOR_TEXT_1}~2c if you~27d please.\n"
+ "Your friend ready~2c too?");
+
+ALIGNED(4) const char gUnknown_80DE01C[] = _(
+ "{CENTER_ALIGN}Communicating...\n"
+ "{CENTER_ALIGN}Please wait with the power on.\n"
+ "{CENTER_ALIGN}To cancel~2c press {B_BUTTON}.");
+
+ALIGNED(4) const char gUnknown_80DE06C[] = _(
+ " Okeydoke!\n"
+ "I received your friend~27s {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
+ " Let me save your adventure.");
+
+ALIGNED(4) const char gUnknown_80DE0C0[] = _(
+ " Okeydoke! You~27re good to go.\n"
+ "Just give me a shout when you~27d like\n"
+ "to go rescue your friend.");
+
+ALIGNED(4) const char gUnknown_80DE124[] = _(
+ " OK~2c I need you to enter\n"
+ "the {COLOR_1 LIGHT_BLUE_2}SOS Mail password{END_COLOR_TEXT_1} that your\n"
+ "friend gave you.");
+
+ALIGNED(4) const char gUnknown_80DE178[] = _(
+ " How do you want to receive\n"
+ "your friend~27s {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}?");
+
+ALIGNED(4) const char gUnknown_80DE1B4[] = _(
+ " How do you want to send\n"
+ "your {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}?");
+
+ALIGNED(4) const char gUnknown_80DE1E4[] = _(
+ " ...Uh~2c no?\n"
+ "You don~27t have an {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
" You~27ll need to arrange\n"
- "to receive your friend~27s #CGSOS Mail#R first.\n"
- "That~27s what you need to do.";
+ "to receive your friend~27s {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1} first.\n"
+ "That~27s what you need to do.");
-ALIGNED(4) const char gUnknown_80DE280[] =
+ALIGNED(4) const char gUnknown_80DE280[] = _(
" Okeydoke!\n"
- "Let me show you to the rescue site.";
+ "Let me show you to the rescue site.");
-ALIGNED(4) const char gUnknown_80DE2B0[] =
+ALIGNED(4) const char gUnknown_80DE2B0[] = _(
" ...Uh~2c no?\n"
"Doesn~27t look like you can go to the dungeon\n"
- "named in this #CGSOS Mail#R.#P"
+ "named in this {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
" Come see me about doing\n"
"this rescue when you can actually go\n"
- "to that dungeon~2c all right?";
+ "to that dungeon~2c all right?");
-ALIGNED(4) const char gUnknown_80DE368[] =
+ALIGNED(4) const char gUnknown_80DE368[] = _(
" ...Uh~2c no?\n"
"You~27ve blown this rescue mission too\n"
- "often. Your friend~27s team is beyond help.#P"
+ "often. Your friend~27s team is beyond help.{EXTRA_MSG}"
" I~27m sorry to say this~2c\n"
"but you~27ll have to tell your friend that\n"
- "your rescue attempts failed.";
+ "your rescue attempts failed.");
-ALIGNED(4) const char gUnknown_80DE430[] =
+ALIGNED(4) const char gUnknown_80DE430[] = _(
" Okeydoke.\n"
- "I~27ll need you to choose the #CGSOS Mail#R\n"
- "for you to go on a rescue mission.";
+ "I~27ll need you to choose the {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}\n"
+ "for you to go on a rescue mission.");
-ALIGNED(4) const char gUnknown_80DE48C[] =
+ALIGNED(4) const char gUnknown_80DE48C[] = _(
" What kind of mail do you\n"
- "want to delete?";
+ "want to delete?");
-ALIGNED(4) const char gUnknown_80DE4B8[] =
+ALIGNED(4) const char gUnknown_80DE4B8[] = _(
" All righty. Choose\n"
- "the #CGSOS Mail#R you don~27t need.";
+ "the {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1} you don~27t need.");
-ALIGNED(4) const char gUnknown_80DE4F0[] =
+ALIGNED(4) const char gUnknown_80DE4F0[] = _(
" ...Uh~2c no?\n"
- "You don~27t have any #CGSOS Mail#R.";
-
-ALIGNED(4) const char gUnknown_80DE524[] =
- " If you want a reward~2c #C2don~27t\n"
- "delete an A-OK Mail#R before getting a\n"
- "#CGThank-You Mail#R back for it.#P"
- " #C2Be careful#R if you~27re going\n"
- "to delete any #CGA-OK Mail#R.#P"
+ "You don~27t have any {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gUnknown_80DE524[] = _(
+ " If you want a reward~2c {COLOR_1 RED}don~27t\n"
+ "delete an A-OK Mail{END_COLOR_TEXT_1} before getting a\n"
+ "{COLOR_1 LIGHT_BLUE_2}Thank-You Mail{END_COLOR_TEXT_1} back for it.{EXTRA_MSG}"
+ " {COLOR_1 RED}Be careful{END_COLOR_TEXT_1} if you~27re going\n"
+ "to delete any {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}.{EXTRA_MSG}"
" Okeydoke.\n"
- "Choose an #CGA-OK Mail#R\n"
- "you don~27t need anymore.";
-ALIGNED(4) const char gUnknown_80DE614[] =
+ "Choose an {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}\n"
+ "you don~27t need anymore.");
+
+ALIGNED(4) const char gUnknown_80DE614[] = _(
" ...Uh~2c no?\n"
- "You don~27t have any #CGA-OK Mail#R.";
-ALIGNED(4) const char gUnknown_80DE648[] =
+ "You don~27t have any {COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gUnknown_80DE648[] = _(
" Uh~2c OK.\n"
"So~2c you want me to delete every piece\n"
- "of mail that you have.";
-ALIGNED(4) const char gUnknown_80DE694[] =
+ "of mail that you have.");
+
+ALIGNED(4) const char gUnknown_80DE694[] = _(
" ...Uh~2c no?\n"
"You don~27t have a single piece of\n"
- "mail on you!";
-ALIGNED(4) const char gUnknown_80DE6D4[] =
- " So~2c delete all your #CGSOS Mail#R~2c\n"
- "#CGA-OK Mail#R~2c and your #CGThank-You Mail#R?\n"
- "You~27re absolutely~2c positively sure?";
-ALIGNED(4) const char gUnknown_80DE754[] =
+ "mail on you!");
+
+ALIGNED(4) const char gUnknown_80DE6D4[] = _(
+ " So~2c delete all your {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}~2c\n"
+ "{COLOR_1 LIGHT_BLUE_2}A-OK Mail{END_COLOR_TEXT_1}~2c and your {COLOR_1 LIGHT_BLUE_2}Thank-You Mail{END_COLOR_TEXT_1}?\n"
+ "You~27re absolutely~2c positively sure?");
+
+ALIGNED(4) const char gUnknown_80DE754[] = _(
" If I delete any mail~2c it~27s\n"
"gone forever and ever. Bye-bye.\n"
- "You~27re really~2c really sure now?";
-ALIGNED(4) const char gUnknown_80DE7B8[] =
+ "You~27re really~2c really sure now?");
+
+ALIGNED(4) const char gUnknown_80DE7B8[] = _(
" OK~2c then.\n"
- "Let me save your adventure now.";
-ALIGNED(4) const char gUnknown_80DE7E8[] =
- " Okeydoke. That~27s all done.";
-ALIGNED(4) const char gUnknown_80DE808[] =
+ "Let me save your adventure now.");
+
+ALIGNED(4) const char gUnknown_80DE7E8[] = _(
+ " Okeydoke. That~27s all done.");
+
+ALIGNED(4) const char gUnknown_80DE808[] = _(
" Do you want to delete\n"
- "any other mail?";
-ALIGNED(4) const char gUnknown_80DE830[] =
+ "any other mail?");
+
+ALIGNED(4) const char gUnknown_80DE830[] = _(
" Okeydoke.\n"
- "I~27ll delete #CGevery piece of mail#R.";
-ALIGNED(4) const char gUnknown_80DE864[] =
+ "I~27ll delete {COLOR_1 LIGHT_BLUE_2}every piece of mail{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gUnknown_80DE864[] = _(
" Okeydoke.\n"
- "Every bit of mail has been deleted.#P"
- " Let me save your adventure.";
-ALIGNED(4) const char gUnknown_80DE8B4[] =
+ "Every bit of mail has been deleted.{EXTRA_MSG}"
+ " Let me save your adventure.");
+
+ALIGNED(4) const char gUnknown_80DE8B4[] = _(
" Well~2c hello~2c there!\n"
- "This is the #CGFriend Rescue#R counter.\n"
- "What can I help you with today?";
-ALIGNED(4) const char gUnknown_80DE918[] =
+ "This is the {COLOR_1 LIGHT_BLUE_2}Friend Rescue{END_COLOR_TEXT_1} counter.\n"
+ "What can I help you with today?");
+
+ALIGNED(4) const char gUnknown_80DE918[] = _(
" Help you with anything\n"
- "else today?";
-ALIGNED(4) const char gUnknown_80DE93C[] =
- " Come again anytime!";
+ "else today?");
-ALIGNED(4) const char gWonderMailErrorText[] =
+ALIGNED(4) const char gUnknown_80DE93C[] = _(
+ " Come again anytime!");
+
+ALIGNED(4) const char gWonderMailErrorText[] = _(
" ...Uh~2c no?\n"
- "Something~27s not working right here...";
-ALIGNED(4) const char gWonderMailNumGBAsText[] =
+ "Something~27s not working right here...");
+
+ALIGNED(4) const char gWonderMailNumGBAsText[] = _(
" ...Uh~2c no?\n"
"The number of GBA systems isn~27t right.\n"
- "You~27d better try this again from the top.";
-ALIGNED(4) const char gWonderMailWrongModeText[] =
+ "You~27d better try this again from the top.");
+
+ALIGNED(4) const char gWonderMailWrongModeText[] = _(
" ...Uh~2c no? You~27re not in the\n"
"same mode as your friend.\n"
- "You~27d better try this again from the top.";
-ALIGNED(4) const char gWonderMailStorageFullText[] =
+ "You~27d better try this again from the top.");
+
+ALIGNED(4) const char gWonderMailStorageFullText[] = _(
" ...Uh~2c no?\n"
"Your storage space is stuffed full.\n"
- "You~27d better make room and try again.";
-ALIGNED(4) const char gWonderMailDuplicateText[] =
+ "You~27d better make room and try again.");
+
+ALIGNED(4) const char gWonderMailDuplicateText[] = _(
" ...Uh~2c no? It looks like\n"
"you received this mail before.\n"
- "You can~27t get the same mail twice. ";
-ALIGNED(4) const char gWonderMailNotEligibleReceiveText[] =
+ "You can~27t get the same mail twice. ");
+
+ALIGNED(4) const char gWonderMailNotEligibleReceiveText[] = _(
" ...Uh~2c no?\n"
- "You~27re not eligible to receive this mail.";
-ALIGNED(4) const char gWonderMailNoRoomText[] =
+ "You~27re not eligible to receive this mail.");
+
+ALIGNED(4) const char gWonderMailNoRoomText[] = _(
" ...Uh~2c no?\n"
"There~27s no room for you to \n"
- "receive any more mail.#P"
+ "receive any more mail.{EXTRA_MSG}"
" You~27d better delete some\n"
"mail and make room before you come see\n"
- "me again about receiving new mail.";
-ALIGNED(4) const char gWonderMailFriendErrorText[] =
+ "me again about receiving new mail.");
+
+ALIGNED(4) const char gWonderMailFriendErrorText[] = _(
" ...Uh~2c no? Looks like your\n"
"friend didn~27t do what needed doing.\n"
- "You~27d better do this again from the top.";
-ALIGNED(4) const char gWonderMailPasswordIncorrectText[] =
+ "You~27d better do this again from the top.");
+
+ALIGNED(4) const char gWonderMailPasswordIncorrectText[] = _(
" ...Uh~2c no?\n"
"This here password looks wrong.\n"
- "Do you want to try that again?";
-ALIGNED(4) const char gWonderMailSOSPasswordIncorrectText[] =
+ "Do you want to try that again?");
+
+ALIGNED(4) const char gWonderMailSOSPasswordIncorrectText[] = _(
" ...Uh~2c no? This password~27s\n"
- "not for any #CGSOS Mail#R.";
-ALIGNED(4) const char gWonderMailAOKMailReceivedText[] =
- ": I received the #CGSOS Mail#R.\n"
- "Your adventure will be saved.";
-ALIGNED(4) const char mail_filler[] = "pksdir0";
+ "not for any {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.");
+
+ALIGNED(4) const char gWonderMailAOKMailReceivedText[] = _(
+ ": I received the {COLOR_1 LIGHT_BLUE_2}SOS Mail{END_COLOR_TEXT_1}.\n"
+ "Your adventure will be saved.");
+
+ALIGNED(4) const char mail_filler[] = _("pksdir0");
diff --git a/src/personality_test.c b/src/personality_test.c
index 67f0f9f..974ca03 100644
--- a/src/personality_test.c
+++ b/src/personality_test.c
@@ -89,10 +89,7 @@ struct stack_PartnerSprite
};
extern const char gStarterReveal[];
-extern const char gPartnerPrompt[];
-extern const char gPartnerNickPrompt[];
extern const char gGenderText[];
-extern const char gEndIntroText[];
extern u32 gGenderMenu;
extern const char gUnknown_80F42C0;
@@ -113,7 +110,24 @@ extern const char gRelaxedDescription[];
extern const char gLonelyDescription[];
extern const char gQuirkyDescription[];
+const char gStarterReveal[] = _("\n{CENTER_ALIGN}The Pokémon $m0!");
+const char * const gStarterRevealPtr = gStarterReveal;
+const char gPartnerPrompt[] = _(
+ "{CENTER_ALIGN}This is the final step.{WAIT_PRESS}\n"
+ "{CENTER_ALIGN}Who would you like to have as a partner?{EXTRA_MSG}"
+ "{CENTER_ALIGN}Choose the Pokémon you want\n"
+ "{CENTER_ALIGN}as your partner from this group.");
+const char * const gPartnerPromptPtr = gPartnerPrompt;
+
+const char gPartnerNickPrompt[] = _("{CENTER_ALIGN}What is your partner~27s nickname?");
+const char * const gPartnerNickPromptPtr = gPartnerNickPrompt;
+
+ALIGNED(4) const char gEndIntroText[] = _(
+ "{CENTER_ALIGN}OK! We~27re all set!{EXTRA_MSG}"
+ "{CENTER_ALIGN}Let~27s get you into the\n"
+ "{CENTER_ALIGN}world of Pokémon!{EXTRA_MSG}"
+ "{CENTER_ALIGN}Go for it!");
const char * const gEndIntroTextPtr = gEndIntroText;
const char * const gPersonalityTypeDescriptionTable[NUM_PERSONALITIES] =
diff --git a/src/wonder_mail.c b/src/wonder_mail.c
index da8f44c..656d156 100644
--- a/src/wonder_mail.c
+++ b/src/wonder_mail.c
@@ -5,67 +5,20 @@
#include "constants/species.h"
#include "wonder_mail.h"
-struct unkStruct_203B2C4
-{
- // size: 0x564
- u8 unk0;
- u8 padding[3];
- u32 unk4; // wonder mail link status??
- u8 unk8[0x36]; // Probably a buffer for entry
- u8 unk3E;
- u32 unk40;
- u32 linkError; // another link status
- u8 filler48[0x218 - 0x48];
- s8 unk218;
- u32 unk21C;
- u8 filler220[0x30C - 0x220];
- u32 unk30C;
- u8 filler310[0x35C - 0x310];
- u32 unk35C;
- u8 filler360[0x3BC - 0x360];
- u32 unk3BC;
- u8 filler3C0[0x41C - 0x3C0];
- u32 unk41C;
- /* 0x420 */ struct OpenedFile *faceFile;
- /* 0x424 */ u8 *faceData;
- u16 unk428;
- u16 unk42A;
- u8 unk42C;
- u8 unk42D;
- u8 unk42E;
- u32 unk430;
- u8 padding3[0x534 - 0x434];
- s32 unk534;
- u32 unk538;
-};
-extern struct unkStruct_203B2C4 *gUnknown_203B2C4;
+extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
+extern struct WonderMailStruct_203B2C4 *gUnknown_203B2C4;
struct unkStruct_8095228
{
- u32 unk0;
- u8 unk4;
- u8 padding[0x10 - 0x5];
+ u8 unkArray[0x10];
u32 unk10;
u8 padding2[0x20 - 0x14];
- u32 unk20;
+ struct unkStruct_41C unk20;
u8 padding3[0x2C - 0x24];
s8 unk2C;
u8 padding4[0x30 - 0x2D];
- s8 unk30;
};
-// Used as a temp storage when receiveing A-OK Mail
-struct unkStruct_80293F4
-{
- u8 unkArray[0x10];
- u32 unk10;
- u8 padding[0x30 - 0x14];
-};
-
-
-
-extern struct WonderMailStruct_203B2C0 *gUnknown_203B2C0;
-
extern u32 sub_80144A4(s32 *r0);
extern void sub_8011C28(u32);
extern void sub_8095240(u8);
@@ -81,7 +34,10 @@ extern u8 sub_80A2824(u32);
#include "data/wonder_mail_1.h"
-extern u32 gUnknown_80DED44;
+const struct unkStruct_41C gUnknown_80DED44 =
+{
+ 1, 0, 0, 0
+};
extern u32 gUnknown_80DDA48;
@@ -94,6 +50,11 @@ extern const char gUnknown_80DF0A0[];
extern const char gUnknown_80DF0E0[];
extern const char gUnknown_80DF138[];
extern const char gUnknown_80DF194[];
+extern u32 gUnknown_80DEE44;
+extern const char gUnknown_80DF1C0[];
+extern const char gUnknown_80DF208[];
+extern const char gUnknown_80DF0A0[];
+extern u8 sub_809539C(u32, u32);
extern char gUnknown_202E5D8[0x50];
extern char gAvailablePokemonNames[0x50];
@@ -103,7 +64,6 @@ extern u32 sub_8095324(u32);
extern void sub_80141B4(const char *r0, u32, u32 *r1, u32);
extern void nullsub_130(void);
extern void sub_8028348(void);
-extern void sub_800641C(void *r0, u8, u8);
extern void ResetUnusedInputStruct();
extern void sub_803084C();
extern u32 sub_8030768(u32);
@@ -196,8 +156,45 @@ extern void sub_801CBB8();
extern void sub_80155F0();
extern void sub_8031E10();
extern void sub_802F2C0();
+extern u16 gUnknown_80E5990[];
+extern s32 sub_8001658(u32, u32);
+extern u32 gUnknown_80E4A40[];
+extern u8 sub_8099B94();
+
+extern void sub_8099A5C(u32, u32, u32*);
+extern void sub_8099AFC(u32, u32, u32*);
+extern void sub_800641C(void *, u32, u32);
+extern void ResetUnusedInputStruct();
+extern void sub_8099690(u32);
+extern void sub_80141B4(const char *r0, u32, u32 *r1, u32);
+extern u32 sub_80144A4(s32 *r0);
+extern u32 sub_8031DCC(void);
+extern void sub_8031E00(void);
+extern void sub_8031E10(void);
+extern void sub_8030D40(u8, u32);
+extern u32 sub_8030768(u32);
+extern void sub_803084C(void);
+extern s8 sub_80307EC(void);
+extern void sub_8006518(u32 *);
+extern u8 sub_8012FD8(u32 *r0);
+extern void sub_8013114(u32 *, s32 *);
+extern void sub_8035CC0(u32 *, u32);
+extern void sub_8030810(u32);
+extern u32 sub_8030DA0();
+extern void sub_8030DE4();
+extern void sub_803092C();
+extern void sub_8035CF4(u32 *, u32, u32);
+extern u32 sub_801CA08(u32);
+extern void sub_801CBB8();
+extern void sub_801B3C0(struct unkStruct_41C *);
+extern u8 sub_801CB24();
+extern void sub_801B450();
+extern u32 sub_801B410();
+extern void sub_801CB5C(u32);
+extern void sub_801CCD8();
+extern void sub_8011C28(u32);
void sub_8028B04(u32 r0)
@@ -267,7 +264,7 @@ void sub_8028BF0(void)
return;
}
gUnknown_203B2C0->unk40 = 8;
- gUnknown_203B2C0->unk544 = 0xffff;
+ gUnknown_203B2C0->unk544 = -1;
switch(temp)
{
case 0:
@@ -606,7 +603,7 @@ void sub_8028FDC(void)
{
case 8:
return_var = sub_8095228(gUnknown_203B2C0->unk218);
- if(sub_80A2824(return_var->unk4) == 0)
+ if(sub_80A2824(return_var->unkArray[4]) == 0)
{
sub_8028B04(0x1C);
}
@@ -883,56 +880,54 @@ void sub_80293D8(void)
sub_8028B04(0x27);
}
-// TODO: pls someone fix this madness of a match - Sese
-// This is definitely a fake match with the casting and switch could probably be cleaned up too..
-//
+// TODO: pls look into this later - Sese
void sub_80293F4(void)
{
u32 return_var;
- struct unkStruct_80293F4 temp;
+ struct unkStruct_8095228 temp;
return_var = sub_80154F0();
- MemoryFill8((u8 *)temp.unkArray, 0, 0x30);
+ MemoryFill8((u8 *)&temp, 0, sizeof(struct unkStruct_8095228));
switch(return_var)
{
case 3:
- switch(sub_8039068(0x1C, (gUnknown_203B2C0->unk8), temp.unkArray) - 7)
+ switch(sub_8039068(0x1C, (gUnknown_203B2C0->unk8), temp.unkArray))
{
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
case 8:
case 9:
- break;
case 10:
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ break;
+ case 17:
sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, &gUnknown_80DDA48, 0, 4, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0xC);
- sub_8028B04(0x28);
+ sub_8028B04(40);
break;
- case 11:
+ case 18:
sub_80141B4(gWonderMailSOSPasswordIncorrectText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
sub_8028B04(7);
break;
- case 0:
+ case 7:
sub_80141B4(gWonderMailDuplicateText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x10d);
sub_8028B04(7);
break;
- case 12:
- case 13:
- case 14:
+ case 19:
+ case 20:
+ case 21:
break;
- case 15:
+ case 22:
sub_8095274(temp.unk10);
temp.unkArray[0] = 2; // Some sort of Ack?
sub_80951BC(temp.unkArray);
sub_80141B4(gWonderMailAOKMailReceivedText, 0, (u32 *)&gUnknown_203B2C0->faceFile, 0x101);
- sub_8028B04(0x23);
+ sub_8028B04(35);
break;
- case 16:
- case 17:
+ case 23:
+ case 24:
default:
break;
}
@@ -1113,7 +1108,7 @@ void sub_80297D4(void)
case 2:
sub_8023C60();
sub_8028B04(1);
- gUnknown_203B2C0->unk544 = 0xffff;
+ gUnknown_203B2C0->unk544 = -1;
break;
case 3:
gUnknown_203B2C0->unk544 = sub_8023B44();
@@ -1349,8 +1344,8 @@ u32 sub_8029B50(void)
ResetUnusedInputStruct();
sub_800641C(0,1,1);
- gUnknown_203B2C4 = MemoryAlloc(0x564, 8);
- MemoryFill8((u8 *)gUnknown_203B2C4, 0, 0x564);
+ gUnknown_203B2C4 = MemoryAlloc(sizeof(struct WonderMailStruct_203B2C4), 8);
+ MemoryFill8((u8 *)gUnknown_203B2C4, 0, sizeof(struct WonderMailStruct_203B2C4));
sub_808D8E0(gUnknown_202E5D8, SPECIES_PELIPPER);
monName = GetMonSpecies(SPECIES_PELIPPER);
@@ -1588,3 +1583,442 @@ void PrintWonderMailLinkError(u32 param_1)
return;
}
}
+
+void sub_8029F98(void)
+{
+ s32 auStack20;
+
+ if (sub_80144A4(&auStack20) != 0) {
+ return;
+ }
+ MemoryFill8((u8 *)&gUnknown_203B2C4->unk41C, 0, 4);
+ gUnknown_203B2C4->unk41C.unk41E = 0;
+ gUnknown_203B2C4->unk41C.unk41D = 1;
+ gUnknown_203B2C4->unk41C.unk41C = 0;
+ if (gUnknown_203B2C4->linkError == 0) {
+ switch(gUnknown_203B2C4->unk40)
+ {
+ case 6:
+ switch(gUnknown_203B2C4->unk534)
+ {
+ case 3:
+ case 5:
+ case 6:
+ // "Thank-You Mail has been sent"
+ sub_80141B4(gUnknown_80DF194, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
+ break;
+ case 4:
+ default:
+ break;
+ }
+ sub_802B2BC(0xD);
+ break;
+ case 7:
+ sub_802B2BC(0x21);
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ PrintWonderMailLinkError(gUnknown_203B2C4->linkError);
+ sub_802B2BC(0x1F);
+ }
+}
+
+void sub_802A050(void)
+{
+ switch(sub_8031DCC())
+ {
+
+ case 3:
+ case 2:
+ sub_8031E10();
+ ResetUnusedInputStruct();
+ sub_800641C(&gUnknown_203B2C4->unk3BC, 1, 1);
+ sub_802B2BC(0x1B);
+ break;
+ case 1:
+ sub_8031E00();
+ break;
+ default:
+ return;
+ }
+}
+
+void sub_802A090(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ switch(temp)
+ {
+ case 7:
+ sub_802B2BC(6);
+ break;
+ case 8:
+ case 0:
+ sub_802B2BC(1);
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+void sub_802A0C8(void)
+{
+ switch(sub_8030768(1))
+ {
+ case 2:
+ sub_803084C();
+ sub_802B2BC(1);
+ break;
+ case 3:
+ gUnknown_203B2C4->unk218 = sub_80307EC();
+ sub_802B2BC(0x11);
+ break;
+ case 4:
+ gUnknown_203B2C4->unk4 = 0x10;
+ gUnknown_203B2C4->unk218 = sub_80307EC();
+ sub_8006518(&gUnknown_203B2C4->unk3BC);
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ sub_8030D40(gUnknown_203B2C4->unk218,0);
+ sub_802B2BC(0x12);
+ break;
+ }
+}
+
+void sub_802A158(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x10);
+ }
+}
+
+void sub_802A174(void)
+{
+ s32 temp;
+
+ temp = -1;
+ sub_8030768(0);
+ if (sub_8012FD8(&gUnknown_203B2C4->unk30C) == 0) {
+ sub_8013114(&gUnknown_203B2C4->unk30C, &temp);
+ }
+
+ switch(temp)
+ {
+ case 0xB:
+ sub_803084C();
+ sub_802B2BC(0xe);
+ break;
+ case 0xC:
+ gUnknown_203B2C4->unk4 = 0x2b;
+ sub_8006518(&gUnknown_203B2C4->unk3BC);
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ sub_8030D40(gUnknown_203B2C4->unk218,0);
+ sub_802B2BC(0x12);
+ break;
+ case 0:
+ case 0xD:
+ sub_8035CC0(&gUnknown_203B2C4->unk35C,2);
+ sub_8030810(1);
+ sub_802B2BC(0x10);
+ default:
+ break;
+ }
+}
+
+void sub_802A230(void)
+{
+ switch(sub_8030DA0())
+ {
+ case 2:
+ case 3:
+ sub_8030DE4();
+ ResetUnusedInputStruct();
+ sub_800641C(&gUnknown_203B2C4->unk3BC, 1, 1);
+ sub_803092C();
+ if (gUnknown_203B2C4->unk4 == 0x2b) {
+ sub_8035CF4(&gUnknown_203B2C4->unk21C, 3, 1);
+ sub_802B2BC(0x11);
+ }
+ else {
+ sub_802B2BC(gUnknown_203B2C4->unk4);
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+void sub_802A28C(void)
+{
+
+ gUnknown_203B2C4->unk41C.unk41E = 0;
+ gUnknown_203B2C4->unk41C.unk41D = 1;
+ gUnknown_203B2C4->unk41C.unk41C = 0;
+
+ switch(sub_801CA08(1))
+ {
+ case 2:
+ sub_801CBB8();
+ sub_802B2BC(1);
+ break;
+ case 3:
+ gUnknown_203B2C4->unk41C.unk41E = sub_801CB24();
+ sub_802B2BC(0x14);
+ break;
+ case 4:
+ gUnknown_203B2C4->unk4 = 0x13;
+ gUnknown_203B2C4->unk41C.unk41E = sub_801CB24();
+ sub_8006518(&gUnknown_203B2C4->unk3BC);
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ sub_801B3C0(&gUnknown_203B2C4->unk41C);
+ sub_802B2BC(0x15);
+ break;
+ }
+}
+
+void sub_802A33C(void)
+{
+ switch(sub_801B410())
+ {
+ case 2:
+ case 3:
+ sub_801B450();
+ ResetUnusedInputStruct();
+ sub_800641C(&gUnknown_203B2C4->unk3BC,1,1);
+ sub_801CB5C(1);
+ if (gUnknown_203B2C4->unk4 == 0x2b) {
+ sub_8035CF4(&gUnknown_203B2C4->unk21C,3,1);
+ sub_802B2BC(0x14);
+ }
+ else {
+ sub_802B2BC(gUnknown_203B2C4->unk4);
+ }
+ break;
+ case 1:
+ default:
+ break;
+ }
+}
+
+void sub_802A39C(void)
+{
+ s32 temp;
+
+ temp = -1;
+ sub_801CA08(0);
+ if (sub_8012FD8(&gUnknown_203B2C4->unk30C) == 0) {
+ sub_8013114(&gUnknown_203B2C4->unk30C, &temp);
+ }
+
+ switch(temp)
+ {
+ case 0xB:
+ sub_801CBB8();
+ sub_802B2BC(0xC);
+ break;
+ case 0xC:
+ gUnknown_203B2C4->unk4 = 0x2b;
+ sub_8006518(&gUnknown_203B2C4->unk3BC);
+ ResetUnusedInputStruct();
+ sub_800641C(0,1,1);
+ sub_801B3C0(&gUnknown_203B2C4->unk41C);
+ sub_802B2BC(0x15);
+ break;
+ case 0:
+ case 0xD:
+ sub_8035CC0(&gUnknown_203B2C4->unk35C, 3);
+ sub_801CCD8();
+ sub_802B2BC(0x13);
+ default:
+ break;
+ }
+}
+
+void sub_802A458(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0xD);
+ }
+}
+
+void sub_802A474(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x3);
+ }
+}
+
+void sub_802A490(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x3);
+ }
+}
+
+void sub_802A4AC(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x18);
+ sub_8011C28(1);
+ sub_8012574(0);
+ }
+}
+
+void sub_802A4D4(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x1A);
+ }
+}
+
+void sub_802A4F0(void)
+{
+ s32 temp;
+ if(sub_80144A4(&temp) == 0)
+ {
+ sub_802B2BC(0x27);
+ }
+}
+
+void sub_802A50C(void)
+{
+ u8 uVar1;
+ struct unkStruct_8095228 *puVar5;
+ u32 return_var;
+ struct unkStruct_8095228 temp;
+
+ return_var = sub_80154F0();
+ MemoryFill8((u8 *)&temp, 0, sizeof(struct unkStruct_8095228));
+ switch(return_var)
+ {
+ case 3:
+ switch(sub_8039068(0x20,gUnknown_203B2C4->unk8,temp.unkArray))
+ {
+ case 7:
+ case 8:
+ case 9:
+ case 0xA:
+ case 0xD:
+ case 0xE:
+ case 0xF:
+ case 0x10:
+ break;
+ case 0x11:
+ // Wrong password
+ sub_8014248(gUnknown_80DF1C0,0,7,&gUnknown_80DEE44,0,4,0,(u32 *)&gUnknown_203B2C4->faceFile,0xc);
+ sub_802B2BC(0x28);
+ break;
+ case 0x14:
+ // Incorrect password
+ sub_80141B4(gUnknown_80DF208,0,(u32 *)&gUnknown_203B2C4->faceFile,0x10d);
+ sub_802B2BC(0x1f);
+ break;
+ case 0xB:
+ // Not eligible to receive
+ sub_80141B4(gUnknown_80DF0A0,0,(u32 *)&gUnknown_203B2C4->faceFile,0x10d);
+ sub_802B2BC(0x1f);
+ break;
+ case 0x18:
+ // I think this is when password works successfully
+ uVar1 = sub_809539C(4,temp.unk10);
+ puVar5 = sub_8095228(uVar1);
+ *puVar5 = temp;
+ puVar5->unkArray[0] = 6;
+ gUnknown_203B2C4->unk430 = temp.unk10;
+ sub_802B2BC(0x21);
+ break;
+ default:
+ break;
+ }
+ sub_80155F0();
+ break;
+ case 2:
+ sub_80155F0();
+ ResetUnusedInputStruct();
+ sub_800641C(&gUnknown_203B2C4->unk3BC, 1, 1);
+ sub_802B2BC(1);
+ break;
+ }
+}
+
+void sub_802A68C(void)
+{
+ s32 temp;
+
+ if (sub_80144A4(&temp) == 0) {
+ if (sub_8012600() == 0) {
+ sub_8012750();
+ sub_802B2BC(0xd);
+ }
+ }
+}
+
+void sub_802A6B4(void)
+{
+ int iVar2;
+ u32 temp;
+
+ if (sub_80144A4(&temp) == 0) {
+ if (sub_8012600() == 0) {
+ iVar2 = sub_8012744();
+ sub_8012750();
+ if (iVar2 == 0) {
+ sub_802B2BC(0x20);
+ }
+ else {
+ sub_802B2BC(3);
+ }
+ }
+ }
+}
+
+void sub_802A6F0(void)
+{
+ s32 temp;
+
+ if (sub_80144A4(&temp) == 0) {
+ sub_802B2BC(0x18);
+ sub_8011C28(1);
+ sub_8012574(0);
+ }
+}
+
+void sub_802A718(void)
+{
+ s32 temp;
+
+ if (sub_80144A4(&temp) == 0) {
+ sub_802B2BC(0x25);
+ sub_8011C28(1);
+ sub_8012574(0);
+ }
+}
+
+void sub_802A740(void)
+{
+ s32 temp;
+
+ if (sub_80144A4(&temp) == 0) {
+ sub_802B2BC(0x1e);
+ }
+}
diff --git a/src/wonder_mail_main_menu_pre.c b/src/wonder_mail_main_menu_pre.c
index c1c5157..288d352 100644
--- a/src/wonder_mail_main_menu_pre.c
+++ b/src/wonder_mail_main_menu_pre.c
@@ -1,6 +1,11 @@
#include "global.h"
#include "save.h"
+#define EXIT_TO_MAIN_MENU 5
+#define PASSWORD_SUCCESS 13
+#define PASSWORD_INVALID 19
+#define PASSWORD_ENTRY_SCREEN 18
+
struct unkWonderMailData
{
u8 unk0[20];
@@ -10,7 +15,7 @@ struct unkStruct_203B3E8
{
// size: 0x49C
u8 unk0; // state variable?
- u8 unk1[0x36]; // Wonder Mail Buffer...
+ u8 PasswordEntryBuffer[0x36]; // Wonder Mail Buffer...
struct unkWonderMailData unk38; // 0x30 - 0x14
u8 unk38_1[0x30 - 20]; // TODO: split for the ldm/stm stuff (fix dumb hack)
u8 fill68[0x1EC - 0x68];
@@ -94,7 +99,7 @@ bool8 CreateWonderMailMenu(void)
MemoryFill8((u8 *)gUnknown_203B3E8, 0, sizeof(struct unkStruct_203B3E8));
for(iVar2 = 0; iVar2 < 0x36; iVar2++){
- gUnknown_203B3E8->unk1[iVar2] = 0;
+ gUnknown_203B3E8->PasswordEntryBuffer[iVar2] = 0;
}
gUnknown_203B3E8->unk490 = 3;
@@ -111,14 +116,14 @@ u8 UpdateWonderMailMenu(void)
case 4:
sub_8039A18();
break;
- case 5: // When you exit out of the menu
+ case EXIT_TO_MAIN_MENU: // When you exit out of the menu
return 3;
case 8:
sub_8039AA8();
break;
- case 11: // "Please enter the Wonder Mail Password" Screen
+ case 11:
break;
- case 12: // Password Entry
+ case 12:
sub_8039B14();
break;
case 6:
@@ -130,28 +135,28 @@ u8 UpdateWonderMailMenu(void)
case 7:
sub_8039D88();
break;
- case 13:
+ case PASSWORD_SUCCESS:
sub_8039D28();
break;
case 14:
sub_8039D68();
break;
- case 15:
+ case 15: // Saving adventure
sub_8039DA4();
break;
- case 16:
+ case 16: // Display "Recieved Wonder Mail was added" and go back to main menu
sub_8039DCC();
break;
case 10:
sub_8039B3C();
break;
- case 17:
+ case 17: // "Please enter the Wonder Mail Password" Screen
sub_8039D0C();
break;
- case 18:
+ case PASSWORD_ENTRY_SCREEN: // Password Entry
sub_8039C60();
break;
- case 19:
+ case PASSWORD_INVALID:
sub_8039DE8();
}
return 0;
@@ -189,7 +194,7 @@ void sub_8039A18(void)
break;
case 0:
case 8:
- sub_803A1C0(5);
+ sub_803A1C0(EXIT_TO_MAIN_MENU);
break;
}
}
@@ -255,7 +260,7 @@ void sub_8039B58(void)
sub_803A1C0(7);
break;
case 10:
- sub_803A1C0(13);
+ sub_803A1C0(PASSWORD_SUCCESS);
break;
}
}
@@ -306,7 +311,7 @@ void sub_8039BAC(u32 arg)
case 10:
case 11:
case 12:
- case 13:
+ case PASSWORD_SUCCESS:
default:
// "Communication Error"
sub_80141B4(&gUnknown_80E7914, 0, 0, 0x101);
@@ -326,23 +331,25 @@ void sub_8039C60(void)
sub_80155F0();
ResetUnusedInputStruct();
sub_800641C(&gUnknown_203B3E8->unk1EC,1,1);
- if ( !sub_803D358(gUnknown_203B3E8->unk1,&gUnknown_203B3E8->unk38) || !sub_80959C0(&gUnknown_203B3E8->unk38) )
+ if ( !sub_803D358(gUnknown_203B3E8->PasswordEntryBuffer, &gUnknown_203B3E8->unk38) || !sub_80959C0(&gUnknown_203B3E8->unk38) )
{
- sub_803A1C0(19);
+ // Invalid password
+ sub_803A1C0(PASSWORD_INVALID);
}
else {
- // Copying some data but don't know what or structure
+ // Successful password
+ // Copy the decoded data to another buffer?
gUnknown_203B3E8->unk3C0 = gUnknown_203B3E8->unk38;
gUnknown_203B3E8->unk498 = 1;
- sub_803A1C0(13);
+ sub_803A1C0(PASSWORD_SUCCESS);
}
break;
case 2:
sub_80155F0();
ResetUnusedInputStruct();
sub_800641C(&gUnknown_203B3E8->unk1EC,1,1);
- sub_803A1C0(5);
+ sub_803A1C0(EXIT_TO_MAIN_MENU);
break;
}
}
@@ -352,7 +359,7 @@ void sub_8039D0C(void)
int iVar2;
if(sub_80144A4(&iVar2) == 0)
{
- sub_803A1C0(0x12);
+ sub_803A1C0(PASSWORD_ENTRY_SCREEN);
}
}
@@ -407,22 +414,24 @@ void sub_8039DCC(void)
int iVar2;
if(sub_80144A4(&iVar2) == 0)
{
- sub_803A1C0(5);
+ sub_803A1C0(EXIT_TO_MAIN_MENU);
}
}
void sub_8039DE8(void)
{
int iVar2;
+
+ // Prompt to re-enter password
if(sub_80144A4(&iVar2) == 0)
{
switch(iVar2)
{
- case 6:
+ case 6: // Yes
sub_803A1C0(0x11);
break;
- case 0:
- sub_803A1C0(5);
+ case 0: // No
+ sub_803A1C0(EXIT_TO_MAIN_MENU);
break;
}
}
diff --git a/src/wonder_mail_mid.c b/src/wonder_mail_mid.c
deleted file mode 100644
index 62755b1..0000000
--- a/src/wonder_mail_mid.c
+++ /dev/null
@@ -1,400 +0,0 @@
-#include "global.h"
-#include "file_system.h"
-
-struct unkStruct_203B2C4
-{
- // size: 0x564
- u8 unk0;
- u8 padding[3];
- u32 unk4; // wonder mail link status??
- u8 unk8[0x36];
- u8 unk3E;
- u32 unk40;
- u32 linkError; // another link status
- u8 filler48[0x218 - 0x48];
- s8 unk218;
- u32 unk21C;
- u8 filler220[0x30C - 0x220];
- u32 unk30C;
- u8 filler310[0x35C - 0x310];
- u32 unk35C;
- u8 filler360[0x3BC - 0x360];
- u32 unk3BC;
- u8 filler3C0[0x41C - 0x3C0];
- u8 unk41C[4]; // TODO: unify this with wonder_mail.c
- struct OpenedFile *faceFile;
- u8 *faceData;
- u16 unk428;
- u16 unk42A;
- u8 unk42C;
- u8 unk42D;
- u8 unk42E;
- u32 unk430;
- u8 filler434[0x534 - 0x434];
- s32 unk534;
- u32 unk538;
-};
-extern struct unkStruct_203B2C4 *gUnknown_203B2C4;
-
-
-extern u16 gUnknown_80E5990[];
-extern s32 sub_8001658(u32, u32);
-extern u32 gUnknown_80E4A40[];
-extern u8 sub_8099B94();
-
-extern void sub_8099A5C(u32, u32, u32*);
-extern void sub_8099AFC(u32, u32, u32*);
-extern void sub_800641C(void *, u32, u32);
-extern void ResetUnusedInputStruct();
-extern void sub_8099690(u32);
-extern void sub_80141B4(u32 *r0, u32, u32 *r1, u32);
-
-
-extern void MemoryFill8(u8 *dest, u8 value, s32 size);
-extern u32 gUnknown_80DF194;
-extern void PrintWonderMailLinkError(u32 param_1);
-
-extern void sub_802B2BC(u32);
-extern u32 sub_80144A4(s32 *r0);
-extern u32 sub_8031DCC(void);
-extern void sub_8031E00(void);
-extern void sub_8031E10(void);
-extern void sub_8030D40(u8, u32);
-extern u32 sub_8030768(u32);
-extern void sub_803084C(void);
-extern s8 sub_80307EC(void);
-extern void sub_8006518(u32 *);
-extern u8 sub_8012FD8(u32 *r0);
-extern void sub_8013114(u32 *, s32 *);
-extern void sub_8035CC0(u32 *, u32);
-extern void sub_8030810(u32);
-extern u32 sub_8030DA0();
-extern void sub_8030DE4();
-extern void sub_803092C();
-extern void sub_8035CF4(u32 *, u32, u32);
-extern u32 sub_801CA08(u32);
-extern void sub_801CBB8();
-extern void sub_801B3C0(u8 *);
-extern u8 sub_801CB24();
-extern void sub_801B450();
-extern u32 sub_801B410();
-extern void sub_801CB5C(u32);
-extern void sub_801CCD8();
-extern void sub_8011C28(u32);
-extern void sub_8012574(u32);
-
-void sub_8029F98(void)
-{
- s32 auStack20;
-
- if (sub_80144A4(&auStack20) != 0) {
- return;
- }
- MemoryFill8(gUnknown_203B2C4->unk41C, 0, 4);
- gUnknown_203B2C4->unk41C[2] = 0;
- gUnknown_203B2C4->unk41C[1] = 1;
- gUnknown_203B2C4->unk41C[0] = 0;
- if (gUnknown_203B2C4->linkError == 0) {
- switch(gUnknown_203B2C4->unk40)
- {
- case 6:
- switch(gUnknown_203B2C4->unk534)
- {
- case 3:
- case 5:
- case 6:
- // "Thank-You Mail has been sent"
- sub_80141B4(&gUnknown_80DF194, 0, (u32 *)&gUnknown_203B2C4->faceFile, 0x10d);
- break;
- case 4:
- default:
- break;
- }
- sub_802B2BC(0xD);
- break;
- case 7:
- sub_802B2BC(0x21);
- break;
- default:
- break;
- }
- }
- else
- {
- PrintWonderMailLinkError(gUnknown_203B2C4->linkError);
- sub_802B2BC(0x1F);
- }
-}
-
-void sub_802A050(void)
-{
- switch(sub_8031DCC())
- {
-
- case 3:
- case 2:
- sub_8031E10();
- ResetUnusedInputStruct();
- sub_800641C(&gUnknown_203B2C4->unk3BC, 1, 1);
- sub_802B2BC(0x1B);
- break;
- case 1:
- sub_8031E00();
- break;
- default:
- return;
- }
-}
-
-void sub_802A090(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- switch(temp)
- {
- case 7:
- sub_802B2BC(6);
- break;
- case 8:
- case 0:
- sub_802B2BC(1);
- break;
- default:
- break;
- }
- }
-}
-
-void sub_802A0C8(void)
-{
- switch(sub_8030768(1))
- {
- case 2:
- sub_803084C();
- sub_802B2BC(1);
- break;
- case 3:
- gUnknown_203B2C4->unk218 = sub_80307EC();
- sub_802B2BC(0x11);
- break;
- case 4:
- gUnknown_203B2C4->unk4 = 0x10;
- gUnknown_203B2C4->unk218 = sub_80307EC();
- sub_8006518(&gUnknown_203B2C4->unk3BC);
- ResetUnusedInputStruct();
- sub_800641C(0,1,1);
- sub_8030D40(gUnknown_203B2C4->unk218,0);
- sub_802B2BC(0x12);
- break;
- }
-}
-
-void sub_802A158(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0x10);
- }
-}
-
-void sub_802A174(void)
-{
- s32 temp;
-
- temp = -1;
- sub_8030768(0);
- if (sub_8012FD8(&gUnknown_203B2C4->unk30C) == 0) {
- sub_8013114(&gUnknown_203B2C4->unk30C, &temp);
- }
-
- switch(temp)
- {
- case 0xB:
- sub_803084C();
- sub_802B2BC(0xe);
- break;
- case 0xC:
- gUnknown_203B2C4->unk4 = 0x2b;
- sub_8006518(&gUnknown_203B2C4->unk3BC);
- ResetUnusedInputStruct();
- sub_800641C(0,1,1);
- sub_8030D40(gUnknown_203B2C4->unk218,0);
- sub_802B2BC(0x12);
- break;
- case 0:
- case 0xD:
- sub_8035CC0(&gUnknown_203B2C4->unk35C,2);
- sub_8030810(1);
- sub_802B2BC(0x10);
- default:
- break;
- }
-}
-
-void sub_802A230(void)
-{
- switch(sub_8030DA0())
- {
- case 2:
- case 3:
- sub_8030DE4();
- ResetUnusedInputStruct();
- sub_800641C(&gUnknown_203B2C4->unk3BC, 1, 1);
- sub_803092C();
- if (gUnknown_203B2C4->unk4 == 0x2b) {
- sub_8035CF4(&gUnknown_203B2C4->unk21C, 3, 1);
- sub_802B2BC(0x11);
- }
- else {
- sub_802B2BC(gUnknown_203B2C4->unk4);
- }
- break;
- default:
- break;
- }
-}
-
-void sub_802A28C(void)
-{
-
- gUnknown_203B2C4->unk41C[2] = 0;
- gUnknown_203B2C4->unk41C[1] = 1;
- gUnknown_203B2C4->unk41C[0] = 0;
-
- switch(sub_801CA08(1))
- {
- case 2:
- sub_801CBB8();
- sub_802B2BC(1);
- break;
- case 3:
- gUnknown_203B2C4->unk41C[2] = sub_801CB24();
- sub_802B2BC(0x14);
- break;
- case 4:
- gUnknown_203B2C4->unk4 = 0x13;
- gUnknown_203B2C4->unk41C[2] = sub_801CB24();
- sub_8006518(&gUnknown_203B2C4->unk3BC);
- ResetUnusedInputStruct();
- sub_800641C(0,1,1);
- sub_801B3C0(gUnknown_203B2C4->unk41C);
- sub_802B2BC(0x15);
- break;
- }
-}
-
-void sub_802A33C(void)
-{
- switch(sub_801B410())
- {
- case 2:
- case 3:
- sub_801B450();
- ResetUnusedInputStruct();
- sub_800641C(&gUnknown_203B2C4->unk3BC,1,1);
- sub_801CB5C(1);
- if (gUnknown_203B2C4->unk4 == 0x2b) {
- sub_8035CF4(&gUnknown_203B2C4->unk21C,3,1);
- sub_802B2BC(0x14);
- }
- else {
- sub_802B2BC(gUnknown_203B2C4->unk4);
- }
- break;
- case 1:
- default:
- break;
- }
-}
-
-void sub_802A39C(void)
-{
- s32 temp;
-
- temp = -1;
- sub_801CA08(0);
- if (sub_8012FD8(&gUnknown_203B2C4->unk30C) == 0) {
- sub_8013114(&gUnknown_203B2C4->unk30C, &temp);
- }
-
- switch(temp)
- {
- case 0xB:
- sub_801CBB8();
- sub_802B2BC(0xC);
- break;
- case 0xC:
- gUnknown_203B2C4->unk4 = 0x2b;
- sub_8006518(&gUnknown_203B2C4->unk3BC);
- ResetUnusedInputStruct();
- sub_800641C(0,1,1);
- sub_801B3C0(gUnknown_203B2C4->unk41C);
- sub_802B2BC(0x15);
- break;
- case 0:
- case 0xD:
- sub_8035CC0(&gUnknown_203B2C4->unk35C, 3);
- sub_801CCD8();
- sub_802B2BC(0x13);
- default:
- break;
- }
-}
-
-void sub_802A458(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0xD);
- }
-}
-
-void sub_802A474(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0x3);
- }
-}
-
-void sub_802A490(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0x3);
- }
-}
-
-void sub_802A4AC(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0x18);
- sub_8011C28(1);
- sub_8012574(0);
- }
-}
-
-void sub_802A4D4(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0x1A);
- }
-}
-
-void sub_802A4F0(void)
-{
- s32 temp;
- if(sub_80144A4(&temp) == 0)
- {
- sub_802B2BC(0x27);
- }
-}
diff --git a/src/wonder_mail_pre.c b/src/wonder_mail_pre.c
index 94ab51f..e6c2ecb 100644
--- a/src/wonder_mail_pre.c
+++ b/src/wonder_mail_pre.c
@@ -92,7 +92,7 @@ u32 sub_8027F88(void)
gUnknown_203B2C0->unk42E = 0;
gUnknown_203B2C0->unk428 = 2;
gUnknown_203B2C0->unk42A = 8;
- for(counter = 0; counter < 0x36; counter++){
+ for(counter = 0; counter < 0x36; counter++){
gUnknown_203B2C0->unk8[counter] = 0;
}
gUnknown_203B2C0->unk0 = 0x3D;
diff --git a/tools/preproc/c_file.cpp b/tools/preproc/c_file.cpp
index b996a04..59426ef 100644
--- a/tools/preproc/c_file.cpp
+++ b/tools/preproc/c_file.cpp
@@ -234,7 +234,7 @@ void CFile::TryConvertString()
if (noTerminator)
std::printf(" }");
else
- std::printf("0xFF }");
+ std::printf("0x00 }");
}
bool CFile::CheckIdentifier(const std::string& ident)