diff options
-rw-r--r-- | asm/unk_debug_menu_3.s | 128 | ||||
-rw-r--r-- | src/debug/unk_debug_menu_3.c | 43 |
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 |