#include "asm/constants/gba_constants.inc" #include "asm/macros.inc" .syntax unified .text thumb_func_start UpdateMakuhitaDialogue UpdateMakuhitaDialogue: push {r4,r5,lr} sub sp, 0x18 ldr r1, _0802FFA4 ldr r0, [r1] ldr r0, [r0, 0x8] adds r5, r1, 0 cmp r0, 0xD bls _0802FF9A b _080301A0 _0802FF9A: lsls r0, 2 ldr r1, _0802FFA8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0802FFA4: .4byte gUnknown_203B318 _0802FFA8: .4byte _0802FFAC .align 2, 0 _0802FFAC: .4byte _0802FFE4 .4byte _08030000 .4byte _08030038 .4byte _08030050 .4byte _08030068 .4byte _08030074 .4byte _080300DC .4byte _080300C4 .4byte _080300F4 .4byte _0803010C .4byte _08030148 .4byte _08030174 .4byte _08030180 .4byte _080301A0 _0802FFE4: bl sub_80301B0 ldr r2, _0802FFF8 ldr r0, _0802FFFC ldr r5, [r0] ldr r1, [r5, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 b _0803000E .align 2, 0 _0802FFF8: .4byte gMakuhitaDialogue _0802FFFC: .4byte gUnknown_203B318 _08030000: ldr r2, _08030034 ldr r5, [r5] ldr r1, [r5, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x4 _0803000E: adds r0, r2 ldr r0, [r0] ldr r2, [r5, 0x14] adds r3, r5, 0 adds r3, 0x18 movs r4, 0 str r4, [sp] movs r1, 0x4 str r1, [sp, 0x4] str r4, [sp, 0x8] ldr r1, [r5, 0x68] str r1, [sp, 0xC] movs r1, 0xC str r1, [sp, 0x10] movs r1, 0 bl sub_8014248 b _080301A0 .align 2, 0 _08030034: .4byte gMakuhitaDialogue _08030038: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _0803004C ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x8 b _0803015A .align 2, 0 _0803004C: .4byte gMakuhitaDialogue _08030050: ldr r3, [r5] movs r0, 0x4 str r0, [r3, 0xC] ldr r2, _08030064 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0xC b _0803015A .align 2, 0 _08030064: .4byte gMakuhitaDialogue _08030068: movs r0, 0x3 movs r1, 0 movs r2, 0xA bl sub_80302E8 b _080301A0 _08030074: ldr r1, [r5] movs r0, 0xD str r0, [r1, 0xC] movs r2, 0x10 ldrsh r0, [r1, r2] bl sub_80A2740 lsls r0, 24 lsrs r0, 24 ldr r2, _080300B4 ldr r1, [sp, 0x14] ands r1, r2 orrs r1, r0 ldr r0, _080300B8 ands r1, r0 movs r0, 0x80 lsls r0, 1 orrs r1, r0 str r1, [sp, 0x14] ldr r0, _080300BC add r1, sp, 0x14 bl PrintYellowDungeonNametoBuffer ldr r2, _080300C0 ldr r3, [r5] ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x10 b _0803015A .align 2, 0 _080300B4: .4byte 0xffffff00 _080300B8: .4byte 0xffff00ff _080300BC: .4byte gAvailablePokemonNames _080300C0: .4byte gMakuhitaDialogue _080300C4: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _080300D8 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x18 b _0803015A .align 2, 0 _080300D8: .4byte gMakuhitaDialogue _080300DC: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _080300F0 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x14 b _0803015A .align 2, 0 _080300F0: .4byte gMakuhitaDialogue _080300F4: ldr r3, [r5] movs r0, 0x9 str r0, [r3, 0xC] ldr r2, _08030108 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x1C b _0803015A .align 2, 0 _08030108: .4byte gMakuhitaDialogue _0803010C: ldr r4, _08030138 bl GetPlayerPokemonStruct adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x6 bl PrintColoredPokeNameToBuffer ldr r0, _0803013C ldr r1, [r0] movs r0, 0xB str r0, [r1, 0xC] movs r0, 0xCB bl PlaySound ldr r0, _08030140 ldr r3, _08030144 movs r1, 0 movs r2, 0 bl sub_80141B4 b _080301A0 .align 2, 0 _08030138: .4byte gPlayerName _0803013C: .4byte gUnknown_203B318 _08030140: .4byte gUnknown_80E0778 _08030144: .4byte 0x00000101 _08030148: ldr r3, [r5] movs r0, 0xD str r0, [r3, 0xC] ldr r2, _0803016C ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x20 _0803015A: adds r0, r2 ldr r0, [r0] ldr r2, [r3, 0x68] ldr r3, _08030170 movs r1, 0 bl sub_80141B4 b _080301A0 .align 2, 0 _0803016C: .4byte gMakuhitaDialogue _08030170: .4byte 0x0000010d _08030174: movs r0, 0x1 movs r1, 0x49 movs r2, 0x1 bl sub_801B60C b _080301A0 _08030180: ldr r3, [r5] movs r0, 0x1 str r0, [r3, 0xC] ldr r2, _080301A8 ldr r1, [r3, 0x4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x24 adds r0, r2 ldr r0, [r0] ldr r2, [r3, 0x68] ldr r3, _080301AC movs r1, 0 bl sub_80141B4 _080301A0: add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080301A8: .4byte gMakuhitaDialogue _080301AC: .4byte 0x0000010d thumb_func_end UpdateMakuhitaDialogue thumb_func_start sub_80301B0 sub_80301B0: push {r4,lr} ldr r4, _080301F8 ldr r1, [r4] movs r2, 0x2 str r2, [r1, 0x14] ldr r0, _080301FC str r0, [r1, 0x18] str r2, [r1, 0x1C] bl sub_80306A4 lsls r0, 24 cmp r0, 0 beq _080301D6 ldr r0, [r4] movs r1, 0x1 negs r1, r1 str r1, [r0, 0x1C] movs r1, 0x1 str r1, [r0, 0x14] _080301D6: ldr r1, [r4] movs r2, 0x1 ldr r0, _08030200 ldr r0, [r0] str r0, [r1, 0x20] movs r0, 0x3 str r0, [r1, 0x24] ldr r0, _08030204 ldr r0, [r0] str r0, [r1, 0x28] str r2, [r1, 0x2C] movs r0, 0 str r0, [r1, 0x30] str r2, [r1, 0x34] pop {r4} pop {r0} bx r0 .align 2, 0 _080301F8: .4byte gUnknown_203B318 _080301FC: .4byte gUnknown_80E07D8 _08030200: .4byte gUnknown_80D4970 _08030204: .4byte gUnknown_80D4934 thumb_func_end sub_80301B0 thumb_func_start sub_8030208 sub_8030208: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _08030250 ldr r0, _08030230 ldr r1, [r0] ldr r0, [sp] str r0, [r1, 0x14] ldr r0, [sp] cmp r0, 0x2 beq _0803023A cmp r0, 0x2 bgt _08030234 cmp r0, 0x1 beq _0803024A b _08030250 .align 2, 0 _08030230: .4byte gUnknown_203B318 _08030234: cmp r0, 0x3 beq _08030242 b _08030250 _0803023A: movs r0, 0x3 bl UpdateMakuhitaState b _08030250 _08030242: movs r0, 0xC bl UpdateMakuhitaState b _08030250 _0803024A: movs r0, 0x2 bl UpdateMakuhitaState _08030250: add sp, 0x4 pop {r0} bx r0 thumb_func_end sub_8030208 thumb_func_start sub_8030258 sub_8030258: push {lr} movs r0, 0x1 bl sub_80303AC cmp r0, 0x2 beq _08030288 cmp r0, 0x2 bcc _0803029A cmp r0, 0x3 bne _0803029A bl sub_8030418 ldr r1, _08030284 ldr r1, [r1] strh r0, [r1, 0x10] bl sub_8030480 movs r0, 0x5 bl UpdateMakuhitaState b _0803029A .align 2, 0 _08030284: .4byte gUnknown_203B318 _08030288: bl sub_8030480 ldr r0, _080302A0 ldr r1, [r0] ldr r0, _080302A4 strh r0, [r1, 0x10] movs r0, 0x1 bl UpdateMakuhitaState _0803029A: pop {r0} bx r0 .align 2, 0 _080302A0: .4byte gUnknown_203B318 _080302A4: .4byte 0x0000ffff thumb_func_end sub_8030258 thumb_func_start sub_80302A8 sub_80302A8: push {lr} bl sub_801B6AC cmp r0, 0x1 bls _080302C0 cmp r0, 0x3 bhi _080302C0 bl sub_801B72C movs r0, 0xA bl UpdateMakuhitaState _080302C0: pop {r0} bx r0 thumb_func_end sub_80302A8 thumb_func_start sub_80302C4 sub_80302C4: push {lr} sub sp, 0x4 mov r0, sp bl sub_80144A4 cmp r0, 0 bne _080302DC ldr r0, _080302E4 ldr r0, [r0] ldr r0, [r0, 0xC] bl UpdateMakuhitaState _080302DC: add sp, 0x4 pop {r0} bx r0 .align 2, 0 _080302E4: .4byte gUnknown_203B318 thumb_func_end sub_80302C4 thumb_func_start sub_80302E8 sub_80302E8: push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 bl sub_80306A4 lsls r0, 24 cmp r0, 0 beq _08030302 movs r0, 0 b _0803039A _08030302: ldr r4, _080303A4 ldr r0, [r4] cmp r0, 0 bne _08030314 movs r0, 0xD0 movs r1, 0x8 bl MemoryAlloc str r0, [r4] _08030314: ldr r0, [r4] str r5, [r0, 0x64] lsls r1, r5, 1 adds r1, r5 lsls r1, 3 adds r1, 0x6C adds r1, r0, r1 str r1, [r0, 0x68] adds r0, 0x6C bl sub_8006518 ldr r1, [r4] ldr r2, [r1, 0x64] lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0 adds r1, 0x6C ldr r0, _080303A8 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldr r2, [r4] ldr r1, [r2, 0x68] adds r0, r2, 0 adds r0, 0xCC str r0, [r1, 0x14] cmp r6, 0 beq _08030362 ldr r1, [r2, 0x64] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r1, r2, 0 adds r1, 0x74 adds r1, r0 ldr r0, [r6] str r0, [r1] _08030362: ldr r0, [r4] ldr r0, [r0, 0x68] mov r1, r8 bl sub_8012D08 bl ResetUnusedInputStruct ldr r0, [r4] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r4, [r4] adds r4, 0x30 bl sub_8030668 adds r1, r0, 0 adds r0, r4, 0 mov r2, r8 adds r3, r5, 0 bl sub_8013818 bl sub_80304C8 bl sub_803053C movs r0, 0x1 _0803039A: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _080303A4: .4byte gUnknown_203B31C _080303A8: .4byte gUnknown_80E0804 thumb_func_end sub_80302E8 thumb_func_start sub_80303AC sub_80303AC: push {r4,lr} lsls r0, 24 cmp r0, 0 bne _080303C8 ldr r0, _080303C4 ldr r0, [r0] adds r0, 0x30 bl sub_8013660 movs r0, 0 b _08030410 .align 2, 0 _080303C4: .4byte gUnknown_203B31C _080303C8: ldr r4, _080303E4 ldr r0, [r4] adds r0, 0x30 bl GetKeyPress cmp r0, 0x1 beq _080303E8 cmp r0, 0x2 bne _080303F2 movs r0, 0x1 bl PlayMenuSoundEffect movs r0, 0x2 b _08030410 .align 2, 0 _080303E4: .4byte gUnknown_203B31C _080303E8: movs r0, 0 bl PlayMenuSoundEffect movs r0, 0x3 b _08030410 _080303F2: ldr r0, [r4] adds r0, 0x30 movs r1, 0x1 bl sub_80138B8 lsls r0, 24 cmp r0, 0 bne _08030406 movs r0, 0 b _08030410 _08030406: bl sub_80304C8 bl sub_803053C movs r0, 0x1 _08030410: pop {r4} pop {r1} bx r1 thumb_func_end sub_80303AC thumb_func_start sub_8030418 sub_8030418: ldr r0, _08030440 ldr r2, [r0] adds r0, r2, 0 adds r0, 0x4E movs r3, 0 ldrsh r1, [r0, r3] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r1 adds r1, r2, 0 adds r1, 0x48 movs r3, 0 ldrsh r1, [r1, r3] adds r0, r1 lsls r0, 1 adds r0, r2, r0 movs r1, 0 ldrsh r0, [r0, r1] bx lr .align 2, 0 _08030440: .4byte gUnknown_203B31C thumb_func_end sub_8030418 thumb_func_start sub_8030444 sub_8030444: push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8030668 adds r1, r0, 0 ldr r5, _0803047C ldr r0, [r5] adds r2, r0, 0 adds r2, 0x52 strh r1, [r2] adds r0, 0x30 bl sub_8013984 bl sub_80304C8 bl sub_803053C cmp r4, 0 beq _08030476 ldr r0, [r5] adds r0, 0x30 bl AddMenuCursorSprite _08030476: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0803047C: .4byte gUnknown_203B31C thumb_func_end sub_8030444 thumb_func_start sub_8030480 sub_8030480: push {r4,r5,lr} ldr r4, _080304C0 ldr r2, [r4] cmp r2, 0 beq _080304BA ldr r0, [r2, 0x64] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r2, r1 adds r1, 0x6C ldr r0, _080304C4 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} bl ResetUnusedInputStruct ldr r0, [r4] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C ldr r0, [r4] bl MemoryFree movs r0, 0 str r0, [r4] _080304BA: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080304C0: .4byte gUnknown_203B31C _080304C4: .4byte gUnknown_80E07EC thumb_func_end sub_8030480 thumb_func_start sub_80304C8 sub_80304C8: push {r4,lr} ldr r4, _08030538 ldr r0, [r4] adds r0, 0xCC movs r2, 0 movs r1, 0x1 strb r1, [r0] ldr r0, [r4] adds r0, 0xCD strb r2, [r0] ldr r0, [r4] adds r0, 0xCE movs r1, 0x8 strb r1, [r0] ldr r0, [r4] adds r0, 0xCF strb r2, [r0] ldr r0, [r4] adds r0, 0x4A movs r1, 0 ldrsh r0, [r0, r1] movs r1, 0xC bl sub_80095E4 adds r0, 0x2 lsls r0, 16 ldr r2, [r4] ldr r3, [r2, 0x64] lsls r1, r3, 1 adds r1, r3 lsls r1, 3 adds r1, r2, r1 adds r1, 0x7A asrs r3, r0, 16 lsrs r0, 16 strh r0, [r1] ldr r1, [r2, 0x64] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 adds r3, 0x2 adds r2, 0x7C strh r3, [r2] bl ResetUnusedInputStruct ldr r0, [r4] adds r0, 0x6C movs r1, 0x1 movs r2, 0x1 bl sub_800641C pop {r4} pop {r0} bx r0 .align 2, 0 _08030538: .4byte gUnknown_203B31C thumb_func_end sub_80304C8 thumb_func_start sub_803053C sub_803053C: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x108 ldr r4, _08030658 ldr r0, [r4] ldr r0, [r0, 0x64] bl sub_8008C54 ldr r0, [r4] ldr r0, [r0, 0x64] bl sub_80073B8 ldr r2, _0803065C ldr r0, [r4] ldr r3, [r0, 0x64] movs r0, 0 str r0, [sp] movs r0, 0xA movs r1, 0 bl xxx_call_draw_string ldr r3, [r4] adds r0, r3, 0 adds r0, 0xCE ldrb r0, [r0] lsls r0, 3 adds r0, 0x4 adds r1, r3, 0 adds r1, 0x4E movs r5, 0 ldrsh r2, [r1, r5] adds r2, 0x1 movs r1, 0x7 str r1, [sp] ldr r1, [r3, 0x64] str r1, [sp, 0x4] movs r1, 0 movs r3, 0x2 bl sub_8012BC4 movs r0, 0 mov r9, r0 ldr r0, [r4] adds r0, 0x4A movs r1, 0 ldrsh r0, [r0, r1] cmp r9, r0 bge _0803063E mov r8, r4 _080305A2: mov r3, r8 ldr r1, [r3] adds r0, r1, 0 adds r0, 0x4E movs r5, 0 ldrsh r2, [r0, r5] subs r0, 0x2 movs r3, 0 ldrsh r0, [r0, r3] muls r0, r2 add r0, r9 lsls r0, 1 adds r1, r0 movs r5, 0 ldrsh r4, [r1, r5] adds r0, r4, 0 bl sub_80A2740 lsls r0, 24 lsrs r7, r0, 24 adds r0, r4, 0 bl sub_80A2668 adds r4, r0, 0 lsls r4, 16 asrs r4, 16 mov r1, r8 ldr r0, [r1] adds r0, 0x30 mov r1, r9 bl sub_8013800 adds r6, r0, 0 movs r5, 0x7 adds r0, r4, 0 bl sub_809758C lsls r0, 24 cmp r0, 0 beq _08030608 mov r3, r8 ldr r0, [r3] ldr r3, [r0, 0x64] movs r0, 0 str r0, [sp] movs r0, 0x8 adds r1, r6, 0 ldr r2, _08030660 bl xxx_call_draw_string movs r5, 0x4 _08030608: adds r0, r7, 0 bl GetDungeonName1 adds r3, r0, 0 add r0, sp, 0x8 ldr r1, _08030664 adds r2, r5, 0 bl sprintf_2 mov r5, r8 ldr r0, [r5] ldr r3, [r0, 0x64] movs r0, 0 str r0, [sp] movs r0, 0x10 adds r1, r6, 0 add r2, sp, 0x8 bl xxx_call_draw_string movs r0, 0x1 add r9, r0 ldr r0, [r5] adds r0, 0x4A movs r1, 0 ldrsh r0, [r0, r1] cmp r9, r0 blt _080305A2 _0803063E: ldr r0, _08030658 ldr r0, [r0] ldr r0, [r0, 0x64] bl sub_80073E0 add sp, 0x108 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08030658: .4byte gUnknown_203B31C _0803065C: .4byte gUnknown_80E081C _08030660: .4byte gUnknown_80E0824 _08030664: .4byte gUnknown_80E0828 thumb_func_end sub_803053C thumb_func_start sub_8030668 sub_8030668: push {r4-r6,lr} movs r6, 0 movs r5, 0 _0803066E: lsls r0, r5, 16 asrs r4, r0, 16 adds r0, r4, 0 bl sub_8097504 lsls r0, 24 cmp r0, 0 beq _08030690 adds r0, r4, 0 bl sub_80A26CC ldr r1, _080306A0 ldr r1, [r1] lsls r2, r6, 1 adds r1, r2 strh r0, [r1] adds r6, 0x1 _08030690: adds r5, 0x1 cmp r5, 0x16 ble _0803066E adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _080306A0: .4byte gUnknown_203B31C thumb_func_end sub_8030668 thumb_func_start sub_80306A4 sub_80306A4: movs r0, 0 bx lr thumb_func_end sub_80306A4 .align 2,0