summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-04-06 22:38:12 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-04-06 22:38:12 -0400
commit0426e350618857107fd8351e7c05b563152e4fdb (patch)
tree8cb8e1e3984682ff2cbdb52d72cca3366ecb8f19
parent9a529d12a955a605810154ea0eb242860db9304e (diff)
through debug_sub_813C6AC
-rw-r--r--asm/unk_debug_menu_3.s128
-rw-r--r--src/debug/unk_debug_menu_3.c43
2 files changed, 43 insertions, 128 deletions
diff --git a/asm/unk_debug_menu_3.s b/asm/unk_debug_menu_3.s
index d501950d7..d14bfb3e1 100644
--- a/asm/unk_debug_menu_3.s
+++ b/asm/unk_debug_menu_3.s
@@ -5,134 +5,6 @@
.text
- thumb_func_start debug_sub_813C638
-debug_sub_813C638:
- push {r4, r5, r6, lr}
- mov r6, r8
- push {r6}
- add sp, sp, #0xffffffec
- mov r8, r0
- add r4, r1, #0
- add r5, r2, #0
- add r6, r3, #0
- lsl r4, r4, #0x10
- lsr r4, r4, #0x10
- lsl r5, r5, #0x18
- lsr r5, r5, #0x18
- lsl r6, r6, #0x10
- lsr r6, r6, #0x10
- bl ZeroMonData
- mov r0, #0x0
- str r0, [sp]
- str r0, [sp, #0x4]
- mov r0, #0x1
- str r0, [sp, #0x8]
- ldr r0, ._25 @ 0x270f
- str r0, [sp, #0xc]
- mov r0, r8
- add r1, r4, #0
- add r2, r5, #0
- mov r3, #0x20
- bl CreateMon
- ldr r2, ._25 + 4 @ Str_842E240
- mov r0, r8
- mov r1, #0x7
- bl SetMonData
- ldr r2, ._25 + 8 @ Str_842E248
- mov r0, r8
- mov r1, #0x2
- bl SetMonData
- str r6, [sp, #0x10]
- mov r0, r8
- mov r1, #0xc
- add r2, sp, #0x10
- bl SetMonData
- add sp, sp, #0x14
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6}
- pop {r0}
- bx r0
-._26:
- .align 2, 0
-._25:
- .word 0x270f
- .word Str_842E240
- .word Str_842E248
-
- thumb_func_end debug_sub_813C638
-
- thumb_func_start debug_sub_813C6AC
-debug_sub_813C6AC:
- push {r4, r5, r6, r7, lr}
- mov r7, r8
- push {r7}
- add sp, sp, #0xfffffff8
- add r6, r0, #0
- add r5, r1, #0
- add r0, r5, #0
- bl ClearMailStruct
- add r0, r6, #0
- mov r1, #0xc
- bl GetMonData
- lsl r0, r0, #0x10
- lsr r0, r0, #0x10
- mov r8, r0
- bl ItemIsMail
- lsl r0, r0, #0x18
- cmp r0, #0
- beq ._27 @cond_branch
- add r4, r5, #0
- add r4, r4, #0x12
- add r7, r5, #0
- add r7, r7, #0x1a
- mov r1, #0x9
- add r0, r5, #0
- add r0, r0, #0x10
-._28:
- strh r1, [r0]
- sub r1, r1, #0x1
- sub r0, r0, #0x2
- cmp r0, r5
- bge ._28 @cond_branch
- add r0, r6, #0
- mov r1, #0x7
- mov r2, sp
- bl GetMonData
- add r0, r4, #0
- mov r1, sp
- mov r2, #0x8
- bl StringCopyN
- add r0, r6, #0
- mov r1, #0x1
- bl GetMonData
- add r1, r7, #0
- bl write_word_to_mem
- add r0, r6, #0
- mov r1, #0xb
- bl GetMonData
- add r4, r0, #0
- lsl r4, r4, #0x10
- lsr r4, r4, #0x10
- add r0, r6, #0
- mov r1, #0x0
- bl GetMonData
- add r1, r0, #0
- add r0, r4, #0
- bl SpeciesToMailSpecies
- strh r0, [r5, #0x1e]
- mov r0, r8
- strh r0, [r5, #0x20]
-._27:
- add sp, sp, #0x8
- pop {r3}
- mov r8, r3
- pop {r4, r5, r6, r7}
- pop {r0}
- bx r0
-
- thumb_func_end debug_sub_813C6AC
-
thumb_func_start debug_sub_813C740
debug_sub_813C740:
push {r4, r5, r6, lr}
diff --git a/src/debug/unk_debug_menu_3.c b/src/debug/unk_debug_menu_3.c
index 7e63abbd3..0b348fa0b 100644
--- a/src/debug/unk_debug_menu_3.c
+++ b/src/debug/unk_debug_menu_3.c
@@ -1,8 +1,11 @@
#include "global.h"
#include "debug.h"
#include "constants/items.h"
+#include "string_util.h"
+#include "new_game.h"
#include "mystery_event_script.h"
#include "berry.h"
+#include "mail_data.h"
#if DEBUG
@@ -148,4 +151,44 @@ size_t debug_sub_813C5B4(u8 * dest)
return size;
}
+extern const u8 Str_842E240[];
+extern const u8 Str_842E248[];
+
+void debug_sub_813C638(struct Pokemon * mon, u16 species, u8 level, u16 itemId)
+{
+ u32 _itemId;
+ ZeroMonData(mon);
+ CreateMon(mon, species, level, 32, FALSE, 0, TRUE, 9999);
+ SetMonData(mon, MON_DATA_OT_NAME, Str_842E240);
+ SetMonData(mon, MON_DATA_NICKNAME, Str_842E248);
+ _itemId = itemId;
+ SetMonData(mon, MON_DATA_HELD_ITEM, &_itemId);
+}
+
+void debug_sub_813C6AC(struct Pokemon *mon, struct MailStruct *mail)
+{
+ u16 itemId;
+ ClearMailStruct(mail);
+ itemId = GetMonData(mon, MON_DATA_HELD_ITEM);
+ if (ItemIsMail(itemId))
+ {
+ u8 * name = mail->playerName;
+ u8 * id = mail->trainerId;
+ u8 nameBuf[8];
+ int i;
+
+ for (i = 0; i < 9; i++)
+ mail->words[i] = i + 1;
+
+ GetMonData(mon, MON_DATA_OT_NAME, nameBuf);
+ StringCopyN(name, nameBuf, OT_NAME_LENGTH + 1);
+
+ write_word_to_mem(GetMonData(mon, MON_DATA_OT_ID), id);
+
+ mail->species = SpeciesToMailSpecies(GetMonData(mon, MON_DATA_SPECIES), GetMonData(mon, MON_DATA_PERSONALITY));
+ mail->itemId = itemId;
+
+ }
+}
+
#endif // DEBUG