diff --git a/asm/code_801C620.s b/asm/code_801C620.s index 4770bb556..3b7dbce38 100644 --- a/asm/code_801C620.s +++ b/asm/code_801C620.s @@ -5,155 +5,6 @@ .text - thumb_func_start sub_801C8C4 -sub_801C8C4: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r0, 0 - adds r6, r1, 0 - mov r9, r2 - mov r10, r3 - bl sub_801CF14 - lsls r0, 24 - cmp r0, 0 - beq _0801C8E4 - movs r0, 0 - b _0801C9D0 -_0801C8E4: - ldr r5, _0801C9E0 - ldr r0, [r5] - cmp r0, 0 - bne _0801C8F6 - ldr r0, _0801C9E4 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] -_0801C8F6: - ldr r0, [r5] - str r4, [r0] - bl sub_801CF94 - ldr r0, [r5] - movs r4, 0x9D - lsls r4, 3 - adds r1, r0, r4 - str r6, [r1] - ldr r1, _0801C9E8 - mov r8, r1 - adds r2, r0, r1 - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 3 - movs r7, 0x9E - lsls r7, 3 - adds r1, r7 - adds r1, r0, r1 - str r1, [r2] - adds r0, r7 - bl sub_8006518 - ldr r1, [r5] - adds r4, r1, r4 - ldr r2, [r4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, r7 - ldr r0, _0801C9EC - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r2, [r5] - mov r1, r8 - adds r0, r2, r1 - ldr r1, [r0] - movs r3, 0xAA - lsls r3, 3 - adds r0, r2, r3 - str r0, [r1, 0x14] - mov r4, r9 - cmp r4, 0 - beq _0801C96C - movs r1, 0x9D - lsls r1, 3 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - subs r3, 0x58 - adds r1, r2, r3 - adds r1, r0 - ldr r0, [r4] - str r0, [r1] -_0801C96C: - ldr r0, [r5] - add r0, r8 - ldr r0, [r0] - mov r1, r10 - bl sub_8012D08 - bl ResetUnusedInputStruct - ldr r0, [r5] - adds r0, r7 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r5] - ldr r0, _0801C9F0 - adds r4, r0 - bl sub_801CE58 - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r10 - adds r3, r6, 0 - bl sub_8013818 - ldr r0, _0801C9F4 - ldr r4, [r5] - ldr r1, [r0] - ldr r0, [r4] - cmp r1, r0 - bne _0801C9C6 - ldr r0, _0801C9F8 - ldrh r1, [r0] - ldr r2, _0801C9FC - adds r0, r4, r2 - strh r1, [r0] - ldr r0, _0801CA00 - ldrh r1, [r0] - ldr r3, _0801CA04 - adds r0, r4, r3 - strh r1, [r0] - ldr r1, _0801C9F0 - adds r0, r4, r1 - bl sub_8013984 -_0801C9C6: - bl sub_801CC38 - bl sub_801CCD8 - movs r0, 0x1 -_0801C9D0: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0801C9E0: .4byte gUnknown_203B244 -_0801C9E4: .4byte 0x00000554 -_0801C9E8: .4byte 0x000004ec -_0801C9EC: .4byte gUnknown_80DBE54 -_0801C9F0: .4byte 0x000004b4 -_0801C9F4: .4byte gUnknown_203B248 -_0801C9F8: .4byte gUnknown_203B24C -_0801C9FC: .4byte 0x000004cc -_0801CA00: .4byte gUnknown_203B24E -_0801CA04: .4byte 0x000004d2 - thumb_func_end sub_801C8C4 - thumb_func_start sub_801CA08 sub_801CA08: push {r4-r6,lr} diff --git a/asm/code_801D760.s b/asm/code_801D760.s index 3b4d8dff8..1bcd5ba57 100644 --- a/asm/code_801D760.s +++ b/asm/code_801D760.s @@ -5,86 +5,6 @@ .text - thumb_func_start sub_801DAC0 -sub_801DAC0: - ldr r0, _0801DAD8 - ldr r1, [r0] - ldrh r2, [r1, 0x1E] - ldrh r0, [r1, 0x1C] - adds r3, r0, 0 - muls r3, r2 - adds r0, r3, 0 - ldrh r1, [r1, 0x18] - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - bx lr - .align 2, 0 -_0801DAD8: .4byte gUnknown_203B258 - thumb_func_end sub_801DAC0 - - thumb_func_start sub_801DADC -sub_801DADC: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _0801DB08 - ldr r0, [r5] - movs r1, 0xE5 - strh r1, [r0, 0x22] - bl sub_8013984 - bl sub_801DB54 - bl sub_801DBD4 - cmp r4, 0 - beq _0801DB02 - ldr r0, [r5] - bl AddMenuCursorSprite -_0801DB02: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801DB08: .4byte gUnknown_203B258 - thumb_func_end sub_801DADC - - thumb_func_start sub_801DB0C -sub_801DB0C: - push {r4,r5,lr} - ldr r4, _0801DB4C - ldr r2, [r4] - cmp r2, 0 - beq _0801DB46 - ldr r0, [r2, 0x34] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x3C - ldr r0, _0801DB50 - 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, 0x3C - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0801DB46: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801DB4C: .4byte gUnknown_203B258 -_0801DB50: .4byte gUnknown_80DBF70 - thumb_func_end sub_801DB0C - thumb_func_start sub_801DB54 sub_801DB54: push {r4,lr} diff --git a/asm/code_803D110.s b/asm/code_803D110.s index f5d2ba2c2..51c4c2465 100644 --- a/asm/code_803D110.s +++ b/asm/code_803D110.s @@ -5178,8 +5178,8 @@ _0803F984: bx r0 thumb_func_end sub_803F878 - thumb_func_start sub_803F994 -sub_803F994: + thumb_func_start GetCameraXPos +GetCameraXPos: ldr r0, _0803F9A8 ldr r0, [r0] ldr r1, _0803F9AC @@ -5192,10 +5192,10 @@ sub_803F994: .align 2, 0 _0803F9A8: .4byte gDungeonGlobalData _0803F9AC: .4byte 0x000181e8 - thumb_func_end sub_803F994 + thumb_func_end GetCameraXPos - thumb_func_start sub_803F9B0 -sub_803F9B0: + thumb_func_start GetCameraYPos +GetCameraYPos: ldr r0, _0803F9C4 ldr r0, [r0] ldr r1, _0803F9C8 @@ -5208,7 +5208,7 @@ sub_803F9B0: .align 2, 0 _0803F9C4: .4byte gDungeonGlobalData _0803F9C8: .4byte 0x000181e8 - thumb_func_end sub_803F9B0 + thumb_func_end GetCameraYPos thumb_func_start sub_803F9CC sub_803F9CC: diff --git a/asm/code_8045A00.s b/asm/code_8045A00.s index 80e2a8278..4af790d29 100644 --- a/asm/code_8045A00.s +++ b/asm/code_8045A00.s @@ -5,317 +5,6 @@ .text - thumb_func_start CanSee_2 -CanSee_2: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08045A58 - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08045A58 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08045A58 - ldr r0, [r4] - cmp r0, 0x1 - bne _08045A5C - ldr r0, [r5] - cmp r0, 0x1 - bne _08045A4E - adds r0, r5, 0 - bl CanSeeInvisible - lsls r0, 24 - cmp r0, 0 - bne _08045A48 - ldr r0, [r4, 0x70] - adds r0, 0xE4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08045A58 -_08045A48: - ldr r0, [r5, 0x70] - adds r0, 0xE8 - b _08045A52 -_08045A4E: - ldr r0, [r4, 0x70] - adds r0, 0xE4 -_08045A52: - ldrb r0, [r0] - cmp r0, 0x1 - bne _08045A5C -_08045A58: - movs r0, 0 - b _08045A68 -_08045A5C: - adds r0, r5, 0x4 - adds r1, r4, 0x4 - bl InSameRoom_3 - lsls r0, 24 - lsrs r0, 24 -_08045A68: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end CanSee_2 - - thumb_func_start sub_8045A70 -sub_8045A70: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08045AA4 - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08045AA4 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08045AA4 - adds r0, r5, 0x4 - adds r1, r4, 0x4 - bl InSameRoom_2 - lsls r0, 24 - lsrs r0, 24 - b _08045AA6 -_08045AA4: - movs r0, 0 -_08045AA6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8045A70 - - thumb_func_start sub_8045AAC -sub_8045AAC: - push {lr} - adds r0, 0x4 - bl InSameRoom_2 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8045AAC - - thumb_func_start InSameRoom -InSameRoom: - push {lr} - adds r0, 0x4 - bl InSameRoom_3 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end InSameRoom - - thumb_func_start sub_8045ACC -sub_8045ACC: - push {r4-r7,lr} - movs r6, 0 - movs r5, 0 - ldr r7, _08045B50 -_08045AD4: - ldr r0, [r7] - lsls r1, r5, 2 - ldr r2, _08045B54 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08045AFA - ldr r0, [r7] - lsls r1, r6, 2 - ldr r2, _08045B58 - adds r0, r2 - adds r0, r1 - str r4, [r0] - adds r6, 0x1 -_08045AFA: - adds r5, 0x1 - cmp r5, 0x3 - ble _08045AD4 - movs r5, 0 - ldr r7, _08045B50 -_08045B04: - ldr r0, [r7] - lsls r1, r5, 2 - ldr r2, _08045B5C - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08045B2A - ldr r0, [r7] - lsls r1, r6, 2 - ldr r2, _08045B58 - adds r0, r2 - adds r0, r1 - str r4, [r0] - adds r6, 0x1 -_08045B2A: - adds r5, 0x1 - cmp r5, 0xF - ble _08045B04 - cmp r6, 0x13 - bgt _08045B4A - ldr r4, _08045B50 - ldr r3, _08045B58 - movs r2, 0 -_08045B3A: - ldr r0, [r4] - lsls r1, r6, 2 - adds r0, r3 - adds r0, r1 - str r2, [r0] - adds r6, 0x1 - cmp r6, 0x13 - ble _08045B3A -_08045B4A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08045B50: .4byte gDungeonGlobalData -_08045B54: .4byte 0x0001357c -_08045B58: .4byte 0x000135cc -_08045B5C: .4byte 0x0001358c - thumb_func_end sub_8045ACC - - thumb_func_start sub_8045B60 -sub_8045B60: - push {r4,lr} - adds r3, r0, 0 - movs r2, 0 - ldr r0, _08045B78 - ldr r0, [r0] - ldr r4, _08045B7C - adds r1, r0, r4 -_08045B6E: - ldr r0, [r1] - cmp r3, r0 - bne _08045B80 - adds r0, r2, 0 - b _08045B8C - .align 2, 0 -_08045B78: .4byte gDungeonGlobalData -_08045B7C: .4byte 0x0001357c -_08045B80: - adds r1, 0x4 - adds r2, 0x1 - cmp r2, 0x3 - ble _08045B6E - movs r0, 0x1 - negs r0, r0 -_08045B8C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8045B60 - - thumb_func_start SetMessageArgument -SetMessageArgument: - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - adds r0, r4, 0 - bl GetEntityType - cmp r0, 0x2 - beq _08045BD2 - cmp r0, 0x2 - bhi _08045BB0 - cmp r0, 0x1 - beq _08045BB6 - b _08045BE2 -_08045BB0: - cmp r0, 0x3 - beq _08045BC2 - b _08045BE2 -_08045BB6: - ldr r1, [r4, 0x70] - adds r0, r5, 0 - adds r2, r6, 0 - bl SetMessageArgument_2 - b _08045BEC -_08045BC2: - adds r0, r4, 0 - bl sub_8045110 - adds r1, r0, 0 - adds r0, r5, 0 - bl sub_8045BF8 - b _08045BEC -_08045BD2: - adds r0, r4, 0 - bl sub_804510C - ldrb r1, [r0] - adds r0, r5, 0 - bl GetTrapName - b _08045BEC -_08045BE2: - ldr r0, _08045BF4 - ldr r1, [r0] - adds r0, r5, 0 - bl strcpy -_08045BEC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08045BF4: .4byte gUnknown_80FE6F4 - thumb_func_end SetMessageArgument - - thumb_func_start sub_8045BF8 -sub_8045BF8: - push {lr} - ldr r2, _08045C04 - bl sub_8090E14 - pop {r0} - bx r0 - .align 2, 0 -_08045C04: .4byte gUnknown_80F699C - thumb_func_end sub_8045BF8 - - thumb_func_start sub_8045C08 -sub_8045C08: - push {lr} - ldr r2, _08045C14 - bl sub_8090E14 - pop {r0} - bx r0 - .align 2, 0 -_08045C14: .4byte gUnknown_80F69A8 - thumb_func_end sub_8045C08 - - thumb_func_start sub_8045C18 -sub_8045C18: - push {lr} - ldr r2, _08045C24 - bl sub_8090E14 - pop {r0} - bx r0 - .align 2, 0 -_08045C24: .4byte gUnknown_80F6990 - thumb_func_end sub_8045C18 - thumb_func_start sub_8045C28 sub_8045C28: push {r4-r7,lr} @@ -2427,4 +2116,4 @@ _08046CA8: .4byte 0x0000052c _08046CAC: .4byte 0x0000048c thumb_func_end sub_804687C - .align 2, 0 \ No newline at end of file + .align 2, 0 diff --git a/asm/code_8046CE4.s b/asm/code_8046CE4.s index b8ff1f9f4..713c3a3dd 100644 --- a/asm/code_8046CE4.s +++ b/asm/code_8046CE4.s @@ -5,582 +5,6 @@ .text - thumb_func_start sub_8046CE4 -sub_8046CE4: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r0, 0x64 - bl DungeonRandomCapped - adds r1, r0, 0 - movs r2, 0 - ldr r3, _08046D04 -_08046CF6: - lsls r0, r1, 2 - adds r0, r3 - ldr r0, [r0] - cmp r0, r5 - bgt _08046D08 - strb r1, [r4, 0x1] - b _08046D18 - .align 2, 0 -_08046D04: .4byte gUnknown_810A3F0 -_08046D08: - lsrs r0, r1, 31 - adds r0, r1, r0 - asrs r1, r0, 1 - adds r2, 0x1 - cmp r2, 0xC7 - ble _08046CF6 - movs r0, 0x1 - strb r0, [r4, 0x1] -_08046D18: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8046CE4 - - thumb_func_start sub_8046D20 -sub_8046D20: - push {r4,r5,lr} - ldr r4, _08046D5C - ldr r0, [r4] - ldrb r5, [r0, 0x8] - bl sub_8046D70 - ldr r1, [r4] - strb r0, [r1, 0x8] - ldr r0, [r4] - ldrb r0, [r0, 0x8] - cmp r0, 0x1 - bne _08046D64 - cmp r5, 0 - bne _08046D64 - ldr r0, _08046D60 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl sub_8052B8C - adds r1, r0, 0 - cmp r1, 0x1 - bne _08046D64 - ldr r0, [r4] - strb r1, [r0, 0x4] - ldr r1, [r4] - movs r0, 0x2 - strb r0, [r1, 0x11] - b _08046D68 - .align 2, 0 -_08046D5C: .4byte gDungeonGlobalData -_08046D60: .4byte gUnknown_80FA408 -_08046D64: - bl sub_8046D8C -_08046D68: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8046D20 - - thumb_func_start sub_8046D70 -sub_8046D70: - push {lr} - ldr r0, _08046D84 - ldr r0, [r0] - ldr r1, _08046D88 - adds r0, r1 - ldrb r0, [r0] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08046D84: .4byte gDungeonGlobalData -_08046D88: .4byte 0x0000068a - thumb_func_end sub_8046D70 - - thumb_func_start sub_8046D8C -sub_8046D8C: - push {r4-r7,lr} - sub sp, 0xC - movs r6, 0 - ldr r5, _08046EDC - movs r4, 0 -_08046D96: - movs r7, 0 - movs r0, 0x1 - negs r0, r0 - str r0, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r3, 0 - ldr r2, [r5] -_08046DA6: - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08046DC8 - ldrb r0, [r2, 0x2] - cmp r0, 0x79 - bne _08046DB8 - str r3, [sp] -_08046DB8: - ldrb r0, [r2, 0x2] - cmp r0, 0x77 - bne _08046DC0 - str r3, [sp, 0x4] -_08046DC0: - ldrb r0, [r2, 0x2] - cmp r0, 0x78 - bne _08046DC8 - str r3, [sp, 0x8] -_08046DC8: - adds r2, 0x4 - adds r3, 0x1 - cmp r3, 0x13 - ble _08046DA6 - ldr r1, [sp] - cmp r1, 0 - blt _08046E1E - ldr r0, [sp, 0x4] - cmp r0, 0 - blt _08046E1E - ldr r0, [sp, 0x8] - cmp r0, 0 - blt _08046E1E - movs r7, 0x1 - movs r6, 0x1 - lsls r1, 2 - ldr r0, [r5] - adds r1, r0 - strb r4, [r1, 0x2] - strb r4, [r1, 0x1] - strb r4, [r1] - ldr r0, [sp, 0x4] - lsls r0, 2 - ldr r1, [r5] - adds r0, r1 - strb r4, [r0, 0x2] - strb r4, [r0, 0x1] - strb r4, [r0] - ldr r0, [sp, 0x8] - lsls r0, 2 - ldr r1, [r5] - adds r0, r1 - strb r4, [r0, 0x2] - strb r4, [r0, 0x1] - strb r4, [r0] - ldr r1, [sp] - lsls r1, 2 - ldr r0, [r5] - adds r0, r1 - movs r1, 0x7A - movs r2, 0 - bl xxx_init_itemslot_8090A8C -_08046E1E: - cmp r7, 0 - bne _08046D96 - bl FillInventoryGaps - cmp r6, 0 - beq _08046ED4 - bl GetLeaderEntity - adds r4, r0, 0 - ldr r0, _08046EE0 - bl sub_80855E4 - ldr r6, _08046EE4 - ldr r0, [r6] - ldr r5, _08046EE8 - adds r0, r5 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _08046EEC - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - movs r0, 0x3C - movs r1, 0x41 - bl sub_803E708 - ldr r0, _08046EF0 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - adds r0, r4, 0 - movs r1, 0x4 - movs r2, 0xA - movs r3, 0 - bl sub_80869E4 - adds r0, r4, 0 - adds r0, 0xC - movs r1, 0x86 - lsls r1, 1 - movs r2, 0 - bl sub_80416E0 - adds r0, r4, 0 - movs r1, 0xD7 - bl sub_80421C0 - movs r0, 0x3C - movs r1, 0x41 - bl sub_803E708 - ldr r0, _08046EF4 - adds r1, r4, 0 - movs r2, 0 - bl SetMessageArgument - ldr r0, _08046EF8 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - movs r0, 0xA - movs r1, 0x41 - bl sub_803E708 - movs r0, 0xD4 - bl PlaySoundEffect - ldr r0, _08046EFC - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage - movs r0, 0xA - movs r1, 0x41 - bl sub_803E708 - movs r0, 0x1 - bl sub_804178C - ldr r0, [r6] - adds r0, r5 - strb r7, [r0] - bl sub_8040A84 -_08046ED4: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08046EDC: .4byte gTeamInventory_203B460 -_08046EE0: .4byte sub_80861A8 -_08046EE4: .4byte gDungeonGlobalData -_08046EE8: .4byte 0x0001356c -_08046EEC: .4byte gUnknown_810531C -_08046EF0: .4byte gUnknown_8105360 -_08046EF4: .4byte gAvailablePokemonNames -_08046EF8: .4byte gUnknown_81053A8 -_08046EFC: .4byte gUnknown_8105434 - thumb_func_end sub_8046D8C - - thumb_func_start sub_8046F00 -sub_8046F00: - push {r4-r7,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x2] - bl GetItemType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _08046F7C - ldrb r0, [r4, 0x2] - bl GetItemMove - lsls r0, 16 - lsrs r7, r0, 16 - ldrb r0, [r4, 0x2] - bl IsHMItem - lsls r0, 24 - cmp r0, 0 - bne _08046F6E - movs r6, 0 -_08046F2A: - ldr r0, _08046F74 - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _08046F78 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08046F68 - ldr r0, [r4, 0x70] - movs r2, 0x2 - ldrsh r1, [r0, r2] - adds r0, r7, 0 - bl CanMonLearnMove - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - movs r1, 0 - bl CannotMove - lsls r0, 24 - cmp r0, 0 - beq _08046F64 - movs r5, 0 -_08046F64: - cmp r5, 0 - bne _08046F7C -_08046F68: - adds r6, 0x1 - cmp r6, 0x3 - ble _08046F2A -_08046F6E: - movs r0, 0 - b _08046F7E - .align 2, 0 -_08046F74: .4byte gDungeonGlobalData -_08046F78: .4byte 0x0001357c -_08046F7C: - movs r0, 0x1 -_08046F7E: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8046F00 - - thumb_func_start sub_8046F84 -sub_8046F84: - push {r4-r7,lr} - adds r7, r0, 0 - movs r5, 0 - ldr r4, _08047000 - movs r6, 0x1 - movs r3, 0 -_08046F90: - lsls r1, r5, 2 - ldr r0, [r4] - adds r2, r0, r1 - ldrb r1, [r2] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08046FAE - ldrb r0, [r2] - ands r0, r7 - cmp r0, 0 - beq _08046FAE - strb r3, [r2, 0x2] - strb r3, [r2, 0x1] - strb r3, [r2] -_08046FAE: - adds r5, 0x1 - cmp r5, 0x13 - ble _08046F90 - bl FillInventoryGaps - movs r5, 0 - movs r6, 0 -_08046FBC: - ldr r0, _08047004 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _08047008 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _08046FF4 - ldr r0, [r4, 0x70] - adds r2, r0, 0 - adds r2, 0x60 - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08046FF4 - ldrb r0, [r2] - ands r0, r7 - cmp r0, 0 - beq _08046FF4 - strb r6, [r2, 0x2] - strb r6, [r2, 0x1] - strb r6, [r2] -_08046FF4: - adds r5, 0x1 - cmp r5, 0x3 - ble _08046FBC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08047000: .4byte gTeamInventory_203B460 -_08047004: .4byte gDungeonGlobalData -_08047008: .4byte 0x0001357c - thumb_func_end sub_8046F84 - - thumb_func_start sub_804700C -sub_804700C: - push {r4,r5,lr} - movs r5, 0 - ldr r4, _08047078 -_08047012: - lsls r1, r5, 2 - ldr r0, [r4] - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804702C - adds r0, r2, 0 - movs r1, 0x46 - movs r2, 0 - bl xxx_init_itemslot_8090A8C -_0804702C: - adds r5, 0x1 - cmp r5, 0x13 - ble _08047012 - bl FillInventoryGaps - movs r5, 0 -_08047038: - ldr r0, _0804707C - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _08047080 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0804706C - ldr r0, [r4, 0x70] - adds r2, r0, 0 - adds r2, 0x60 - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0804706C - adds r0, r2, 0 - movs r1, 0x46 - movs r2, 0 - bl xxx_init_itemslot_8090A8C -_0804706C: - adds r5, 0x1 - cmp r5, 0x3 - ble _08047038 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08047078: .4byte gTeamInventory_203B460 -_0804707C: .4byte gDungeonGlobalData -_08047080: .4byte 0x0001357c - thumb_func_end sub_804700C - - thumb_func_start sub_8047084 -sub_8047084: - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - ldr r0, _080470E8 - ldr r2, [r0] - movs r3, 0x1 -_08047090: - ldrb r1, [r2] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080470A2 - ldrb r0, [r2] - ands r0, r6 - cmp r0, 0 - bne _080470E2 -_080470A2: - adds r2, 0x4 - adds r5, 0x1 - cmp r5, 0x13 - ble _08047090 - bl FillInventoryGaps - movs r5, 0 -_080470B0: - ldr r0, _080470EC - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _080470F0 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _080470F4 - ldr r0, [r4, 0x70] - adds r2, r0, 0 - adds r2, 0x60 - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080470F4 - ldrb r0, [r2] - ands r0, r6 - cmp r0, 0 - beq _080470F4 -_080470E2: - movs r0, 0x1 - b _080470FC - .align 2, 0 -_080470E8: .4byte gTeamInventory_203B460 -_080470EC: .4byte gDungeonGlobalData -_080470F0: .4byte 0x0001357c -_080470F4: - adds r5, 0x1 - cmp r5, 0x3 - ble _080470B0 - movs r0, 0 -_080470FC: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8047084 - - thumb_func_start sub_8047104 -sub_8047104: - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 -_0804710A: - ldr r0, _08047154 - lsls r1, r6, 2 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08047142 - ldrb r0, [r4, 0x2] - cmp r0, 0x69 - bne _08047132 - adds r0, r4, 0 - bl GetMoneyValue - bl AddToTeamMoney - strb r5, [r4, 0x2] - strb r5, [r4, 0x1] - strb r5, [r4] -_08047132: - ldrb r1, [r4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08047142 - strb r5, [r4, 0x2] - strb r5, [r4, 0x1] - strb r5, [r4] -_08047142: - adds r6, 0x1 - cmp r6, 0x13 - ble _0804710A - bl FillInventoryGaps - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08047154: .4byte gTeamInventory_203B460 - thumb_func_end sub_8047104 - thumb_func_start sub_8047158 sub_8047158: push {r4-r6,lr} diff --git a/asm/code_804AFAC.s b/asm/code_804AFAC.s index ccfc75d20..bf34f1eba 100644 --- a/asm/code_804AFAC.s +++ b/asm/code_804AFAC.s @@ -206,7 +206,7 @@ _0804B16A: beq _0804B17E movs r0, 0x2 movs r1, 0x9 - bl sub_808411C + bl DungeonRandomRange adds r5, r0, 0 movs r0, 0x2 movs r1, 0x8 @@ -214,12 +214,12 @@ _0804B16A: _0804B17E: movs r0, 0x2 movs r1, 0x5 - bl sub_808411C + bl DungeonRandomRange adds r5, r0, 0 movs r0, 0x2 movs r1, 0x4 _0804B18C: - bl sub_808411C + bl DungeonRandomRange adds r4, r0, 0 cmp r5, 0x6 bgt _0804B19A @@ -1145,11 +1145,11 @@ _0804B8B4: subs r5, 0x3 movs r0, 0x5 adds r1, r4, 0 - bl sub_808411C + bl DungeonRandomRange mov r8, r0 movs r0, 0x4 adds r1, r5, 0 - bl sub_808411C + bl DungeonRandomRange adds r6, r0, 0 mov r2, r8 subs r4, r2 @@ -1279,12 +1279,12 @@ _0804B9F4: subs r4, r3 subs r4, 0x3 adds r1, r0, r1 - bl sub_808411C + bl DungeonRandomRange adds r5, r0, 0 adds r4, r6, r4 adds r0, r6, 0 adds r1, r4, 0 - bl sub_808411C + bl DungeonRandomRange adds r4, r0, 0 strh r5, [r7] adds r0, r5, 0x1 @@ -1756,11 +1756,11 @@ _0804BDD8: subs r5, 0x3 movs r0, 0x5 adds r1, r4, 0 - bl sub_808411C + bl DungeonRandomRange mov r8, r0 movs r0, 0x4 adds r1, r5, 0 - bl sub_808411C + bl DungeonRandomRange adds r6, r0, 0 mov r0, r8 subs r4, r0 @@ -1887,12 +1887,12 @@ _0804BF00: subs r4, r3 subs r4, 0x3 adds r1, r0, r1 - bl sub_808411C + bl DungeonRandomRange adds r5, r0, 0 add r4, r8 mov r0, r8 adds r1, r4, 0 - bl sub_808411C + bl DungeonRandomRange adds r4, r0, 0 strh r5, [r7] adds r0, r5, 0x1 @@ -3308,11 +3308,11 @@ _0804CA3C: subs r5, 0x3 movs r0, 0xA adds r1, r4, 0 - bl sub_808411C + bl DungeonRandomRange mov r8, r0 movs r0, 0x10 adds r1, r5, 0 - bl sub_808411C + bl DungeonRandomRange adds r6, r0, 0 mov r0, r8 subs r4, r0 @@ -3528,13 +3528,13 @@ _0804CC52: ldrsh r0, [r4, r1] movs r2, 0x4 ldrsh r1, [r4, r2] - bl sub_808411C + bl DungeonRandomRange adds r7, r0, 0 movs r3, 0x2 ldrsh r0, [r4, r3] movs r2, 0x6 ldrsh r1, [r4, r2] - bl sub_808411C + bl DungeonRandomRange adds r6, r0, 0 movs r0, 0x4 bl DungeonRandomCapped @@ -4474,11 +4474,11 @@ _0804D352: _0804D35A: movs r0, 0x5 adds r1, r4, 0 - bl sub_808411C + bl DungeonRandomRange adds r6, r0, 0 movs r0, 0x4 mov r1, r8 - bl sub_808411C + bl DungeonRandomRange adds r5, r0, 0 movs r1, 0x1 adds r0, r6, 0 @@ -4663,14 +4663,14 @@ _0804D4BA: adds r1, r5, r4 subs r1, r3 str r2, [sp, 0x30] - bl sub_808411C + bl DungeonRandomRange adds r5, r0, 0 ldr r1, [sp, 0x18] adds r0, r1, r6 add r1, r8 ldr r2, [sp, 0x30] subs r1, r2 - bl sub_808411C + bl DungeonRandomRange adds r4, r0, 0 strh r5, [r7] adds r0, r5, 0x1 @@ -5398,7 +5398,7 @@ _0804D9E0: movs r3, 0x4 ldrsh r1, [r4, r3] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange mov r9, r0 movs r1, 0x2 ldrsh r0, [r4, r1] @@ -5406,7 +5406,7 @@ _0804D9E0: movs r2, 0x6 ldrsh r1, [r4, r2] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange adds r4, r0, 0 b _0804DA1A .align 2, 0 @@ -5433,7 +5433,7 @@ _0804DA1A: movs r3, 0x4 ldrsh r1, [r6, r3] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange adds r2, r0, 0 b _0804DA44 _0804DA40: @@ -5481,7 +5481,7 @@ _0804DA74: movs r2, 0x24 ldrsh r1, [r5, r2] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange adds r2, r0, 0 b _0804DAA0 _0804DA9C: @@ -5530,7 +5530,7 @@ _0804DAD4: movs r2, 0x6 ldrsh r1, [r7, r2] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange adds r3, r0, 0 b _0804DAFE _0804DAFA: @@ -5578,7 +5578,7 @@ _0804DB2E: movs r3, 0x6 ldrsh r1, [r1, r3] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange adds r3, r0, 0 b _0804DB5C _0804DB56: @@ -7121,7 +7121,7 @@ _0804E63C: movs r2, 0x4 ldrsh r1, [r4, r2] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange str r0, [sp, 0x24] movs r3, 0x2 ldrsh r0, [r4, r3] @@ -7129,7 +7129,7 @@ _0804E63C: movs r5, 0x6 ldrsh r1, [r4, r5] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange adds r5, r0, 0 ldr r0, [sp, 0x20] cmp r0, 0 @@ -7153,7 +7153,7 @@ _0804E63C: movs r2, 0x4 ldrsh r1, [r4, r2] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange adds r5, r0, 0 movs r3, 0x2 ldrsh r0, [r4, r3] @@ -7161,7 +7161,7 @@ _0804E63C: movs r2, 0x6 ldrsh r1, [r4, r2] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange b _0804E6AC .align 2, 0 _0804E6A4: .4byte 0xfffffe20 @@ -7217,7 +7217,7 @@ _0804E6DC: movs r4, 0x24 ldrsh r1, [r6, r4] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange adds r5, r0, 0 movs r1, 0x22 ldrsh r0, [r6, r1] @@ -7225,7 +7225,7 @@ _0804E6DC: movs r2, 0x26 ldrsh r1, [r6, r2] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange b _0804E728 _0804E724: movs r3, 0x20 @@ -7276,14 +7276,14 @@ _0804E758: movs r2, 0x4 ldrsh r1, [r7, r2] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange movs r3, 0x2 ldrsh r0, [r7, r3] adds r0, 0x1 movs r4, 0x6 ldrsh r1, [r7, r4] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange adds r3, r0, 0 b _0804E79E _0804E79A: @@ -7335,7 +7335,7 @@ _0804E7C8: movs r4, 0x4 ldrsh r1, [r2, r4] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange mov r1, r8 movs r2, 0x2 ldrsh r0, [r1, r2] @@ -7343,7 +7343,7 @@ _0804E7C8: movs r3, 0x6 ldrsh r1, [r1, r3] subs r1, 0x1 - bl sub_808411C + bl DungeonRandomRange adds r3, r0, 0 b _0804E818 _0804E812: @@ -9728,7 +9728,7 @@ _0804F9EC: _0804F9FC: adds r0, r2, 0x2 subs r1, r3, 0x3 - bl sub_808411C + bl DungeonRandomRange adds r4, r0, 0 movs r5, 0x2 ldrsh r0, [r7, r5] @@ -9736,7 +9736,7 @@ _0804F9FC: movs r2, 0x6 ldrsh r1, [r7, r2] subs r1, 0x3 - bl sub_808411C + bl DungeonRandomRange mov r10, r0 movs r3, 0 ldrsh r0, [r7, r3] @@ -9744,7 +9744,7 @@ _0804F9FC: movs r5, 0x4 ldrsh r1, [r7, r5] subs r1, 0x3 - bl sub_808411C + bl DungeonRandomRange mov r9, r0 movs r1, 0x2 ldrsh r0, [r7, r1] @@ -9752,7 +9752,7 @@ _0804F9FC: movs r2, 0x6 ldrsh r1, [r7, r2] subs r1, 0x3 - bl sub_808411C + bl DungeonRandomRange adds r6, r0, 0 ldr r1, _0804FA94 ldr r0, [r1] @@ -10631,7 +10631,7 @@ _08050092: beq _080500FA subs r0, r4, 0x2 adds r1, r4, 0x2 - bl sub_808411C + bl DungeonRandomRange adds r4, r0, 0 cmp r4, 0 bgt _080500BC @@ -10708,7 +10708,7 @@ _08050128: beq _0805018E subs r0, r4, 0x2 adds r1, r4, 0x2 - bl sub_808411C + bl DungeonRandomRange adds r4, r0, 0 cmp r4, 0 ble _0805018E @@ -10800,7 +10800,7 @@ _080501E4: bl __divsi3 adds r1, r0, 0 adds r0, r4, 0 - bl sub_808411C + bl DungeonRandomRange adds r4, r0, 0 cmp r4, 0x5 bgt _08050208 @@ -10933,7 +10933,7 @@ _080502F0: mov r2, r10 ldrb r1, [r2, 0x10] lsrs r0, r1, 1 - bl sub_808411C + bl DungeonRandomRange adds r4, r0, 0 cmp r4, 0 ble _08050356 @@ -11107,7 +11107,7 @@ sub_8050438: cmp r1, 0 ble _08050478 lsrs r0, r1, 1 - bl sub_808411C + bl DungeonRandomRange adds r7, r0, 0 cmp r7, 0 bgt _0805047A @@ -11346,7 +11346,7 @@ _08050608: bl __divsi3 adds r1, r0, 0 adds r0, r5, 0 - bl sub_808411C + bl DungeonRandomRange adds r7, r0, 0 cmp r7, 0 bne _0805063E @@ -11495,7 +11495,7 @@ _08050746: str r0, [sp, 0x78] movs r0, 0x2 movs r1, 0x36 - bl sub_808411C + bl DungeonRandomRange mov r9, r0 movs r2, 0 str r2, [sp, 0x6C] @@ -11934,11 +11934,11 @@ _08050A98: bgt _08050AC2 movs r0, 0 movs r1, 0x38 - bl sub_808411C + bl DungeonRandomRange mov r9, r0 movs r0, 0 movs r1, 0x20 - bl sub_808411C + bl DungeonRandomRange mov r8, r0 mov r0, r9 subs r0, 0x1 @@ -12689,11 +12689,11 @@ _08051020: beq _0805108C adds r0, r3, 0 adds r1, r4, 0 - bl sub_808411C + bl DungeonRandomRange adds r6, r0, 0 adds r0, r5, 0 adds r1, r7, 0 - bl sub_808411C + bl DungeonRandomRange adds r5, r0, 0 movs r1, 0x1 adds r0, r6, 0 @@ -12858,7 +12858,7 @@ _08051162: adds r1, r5, r4 subs r1, r3 str r2, [sp, 0x34] - bl sub_808411C + bl DungeonRandomRange adds r5, r0, 0 ldr r2, [sp, 0x34] mov r1, r10 @@ -12866,7 +12866,7 @@ _08051162: adds r1, r7 mov r2, r8 subs r1, r2 - bl sub_808411C + bl DungeonRandomRange adds r4, r0, 0 strh r5, [r6] adds r0, r5, 0x1 @@ -13512,7 +13512,7 @@ sub_8051654: subs r1, r0 subs r1, 0x2 movs r0, 0x3 - bl sub_808411C + bl DungeonRandomRange mov r8, r0 cmp r0, 0x2 bgt _0805167C @@ -13524,7 +13524,7 @@ _0805167C: subs r1, r0 subs r1, 0x2 movs r0, 0x3 - bl sub_808411C + bl DungeonRandomRange mov r9, r0 cmp r0, 0x2 bgt _08051694 @@ -13533,7 +13533,7 @@ _0805167C: _08051694: movs r0, 0x2 movs r1, 0x4 - bl sub_808411C + bl DungeonRandomRange mov r10, r0 movs r5, 0 cmp r5, r10 diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s index df0170286..393cfe850 100644 --- a/asm/code_80521D0.s +++ b/asm/code_80521D0.s @@ -4259,7 +4259,7 @@ _08054968: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl sub_8057A0C + bl PainSplitMoveAction bl _080554BA _08054978: adds r0, r7, 0 @@ -5694,7 +5694,7 @@ _080554E6: b _08055530 _08055510: mov r0, r8 - bl sub_8057088 + bl MoveCausesPaused lsls r0, 24 cmp r0, 0 beq _08055530 @@ -9149,41 +9149,4 @@ _08057060: _0805706C: .4byte gUnknown_203B438 thumb_func_end sub_8056F80 - thumb_func_start sub_8057070 -sub_8057070: - push {lr} - bl GetMoveHitCount - cmp r0, 0 - bne _08057082 - movs r0, 0x2 - movs r1, 0x6 - bl sub_808411C -_08057082: - pop {r1} - bx r1 - thumb_func_end sub_8057070 - - thumb_func_start sub_8057088 -sub_8057088: - push {lr} - ldrh r1, [r0, 0x2] - cmp r1, 0xEE - beq _080570A4 - cmp r1, 0xEF - beq _080570A4 - cmp r1, 0xF2 - beq _080570A4 - movs r0, 0x88 - lsls r0, 1 - cmp r1, r0 - beq _080570A4 - movs r0, 0 - b _080570A6 -_080570A4: - movs r0, 0x1 -_080570A6: - pop {r1} - bx r1 - thumb_func_end sub_8057088 - - .align 2, 0 \ No newline at end of file + .align 2, 0 diff --git a/asm/code_8057144.s b/asm/code_8057144.s index cf86611dc..65182e664 100644 --- a/asm/code_8057144.s +++ b/asm/code_8057144.s @@ -248,41 +248,4 @@ _08057302: bx r1 thumb_func_end sub_805727C - thumb_func_start sub_8057308 -sub_8057308: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0805731C - movs r0, 0 - b _08057340 -_0805731C: - cmp r4, 0 - bne _08057324 - movs r0, 0x1 - b _08057340 -_08057324: - adds r0, r5, 0 - movs r1, 0x26 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - bne _08057336 - adds r0, r4, 0 - b _08057338 -_08057336: - lsls r0, r4, 1 -_08057338: - bl RollPercentChance_2 - lsls r0, 24 - lsrs r0, 24 -_08057340: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8057308 - - .align 2, 0 \ No newline at end of file + .align 2, 0 diff --git a/asm/code_8057824.s b/asm/code_8057824.s index 0cdad21ee..3fd73d05b 100644 --- a/asm/code_8057824.s +++ b/asm/code_8057824.s @@ -5,482 +5,6 @@ .text - thumb_func_start sub_8057A0C -sub_8057A0C: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r2, [r5, 0x70] - mov r8, r2 - ldr r0, [r6, 0x70] - adds r3, r0, 0 - movs r1, 0xE - ldrsh r0, [r2, r1] - movs r4, 0xE - ldrsh r1, [r3, r4] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - strh r0, [r2, 0xE] - strh r0, [r3, 0xE] - movs r7, 0xE - ldrsh r1, [r2, r7] - ldrh r4, [r2, 0x10] - movs r7, 0x10 - ldrsh r0, [r2, r7] - cmp r1, r0 - ble _08057A42 - strh r4, [r2, 0xE] -_08057A42: - movs r0, 0xE - ldrsh r1, [r3, r0] - ldrh r2, [r3, 0x10] - movs r4, 0x10 - ldrsh r0, [r3, r4] - cmp r1, r0 - ble _08057A52 - strh r2, [r3, 0xE] -_08057A52: - ldr r4, _08057A90 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl SetMessageArgument - adds r4, 0x50 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - bl SetMessageArgument - mov r1, r8 - adds r1, 0xFB - ldrb r0, [r1] - cmp r0, 0 - bne _08057A78 - movs r0, 0x1 - strb r0, [r1] -_08057A78: - ldr r0, _08057A94 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80522F4 - movs r0, 0x1 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08057A90: .4byte gAvailablePokemonNames -_08057A94: .4byte gUnknown_80FC7EC - thumb_func_end sub_8057A0C - - thumb_func_start TormentMoveAction -TormentMoveAction: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - mov r10, r0 - mov r8, r1 - ldr r0, [r1, 0x70] - str r0, [sp, 0x8] - movs r1, 0 - str r1, [sp, 0xC] - movs r1, 0x8C - lsls r1, 1 - adds r4, r0, r1 - adds r5, r4, 0 - movs r0, 0x10 - mov r9, r0 - movs r7, 0x3 -_08057ABE: - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08057B12 - movs r6, 0x20 - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08057B04 - mov r0, r9 - ands r0, r1 - cmp r0, 0 - beq _08057B12 - ldr r0, _08057AFC - adds r1, r5, 0 - movs r2, 0 - bl sub_80928C0 - ldr r0, _08057B00 - ldr r2, [r0] - mov r0, r10 - mov r1, r8 - bl sub_80522F4 - ldrb r0, [r4] - orrs r0, r6 - strb r0, [r4] - movs r1, 0x1 - str r1, [sp, 0xC] - b _08057B12 - .align 2, 0 -_08057AFC: .4byte gUnknown_202DE58 -_08057B00: .4byte gUnknown_80FCFBC -_08057B04: - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _08057B12 - movs r0, 0xDF - ands r0, r1 - strb r0, [r4] -_08057B12: - adds r4, 0x8 - adds r5, 0x8 - subs r7, 0x1 - cmp r7, 0 - bge _08057ABE - ldr r0, [sp, 0x8] - movs r1, 0x9C - lsls r1, 1 - adds r4, r0, r1 - ldrb r1, [r4] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08057B6C - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08057B7A - movs r1, 0xB0 - lsls r1, 1 - mov r0, sp - bl InitPokemonMove - ldrb r1, [r4] - movs r0, 0x20 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x1 - str r0, [sp, 0xC] - ldr r0, _08057B64 - mov r1, sp - movs r2, 0 - bl sub_80928C0 - ldr r0, _08057B68 - ldr r2, [r0] - mov r0, r10 - mov r1, r8 - bl sub_80522F4 - b _08057B7A - .align 2, 0 -_08057B64: .4byte gUnknown_202DE58 -_08057B68: .4byte gUnknown_80FCFBC -_08057B6C: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08057B7A - movs r0, 0xDF - ands r0, r1 - strb r0, [r4] -_08057B7A: - ldr r1, [sp, 0xC] - cmp r1, 0 - beq _08057B90 - ldr r1, [sp, 0x8] - adds r1, 0xC0 - ldrb r0, [r1] - cmp r0, 0x1 - bne _08057B9C - movs r0, 0 - strb r0, [r1] - b _08057B9C -_08057B90: - ldr r0, _08057BB0 - ldr r2, [r0] - mov r0, r10 - mov r1, r8 - bl sub_80522F4 -_08057B9C: - ldr r0, [sp, 0xC] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08057BB0: .4byte gUnknown_80FCFE4 - thumb_func_end TormentMoveAction - - thumb_func_start sub_8057BB4 -sub_8057BB4: - push {lr} - movs r2, 0x1 - movs r3, 0x1 - bl sub_80779F0 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8057BB4 - - thumb_func_start sub_8057BC4 -sub_8057BC4: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - movs r2, 0x1 - bl sub_8077AE4 - ldr r0, _08057BE8 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x2 - bl sub_8077084 - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08057BE8: .4byte gUnknown_8106A4C - thumb_func_end sub_8057BC4 - - thumb_func_start sub_8057BEC -sub_8057BEC: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - adds r7, r2, 0 - adds r6, r3, 0 - movs r0, 0 - mov r8, r0 - adds r0, r4, 0 - bl IsSleeping - lsls r0, 24 - cmp r0, 0 - beq _08057C48 - movs r3, 0x80 - lsls r3, 1 - str r6, [sp] - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r7, 0 - bl sub_8055640 - cmp r0, 0 - beq _08057C54 - movs r1, 0x1 - mov r8, r1 - ldr r0, _08057C44 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _08057C54 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl sub_80776C0 - b _08057C54 - .align 2, 0 -_08057C44: .4byte gUnknown_80F4E0A -_08057C48: - ldr r0, _08057C64 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_80522F4 -_08057C54: - mov r0, r8 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08057C64: .4byte gUnknown_80FC734 - thumb_func_end sub_8057BEC - - thumb_func_start sub_8057C68 -sub_8057C68: - push {lr} - sub sp, 0x4 - ldr r2, _08057C84 - ldr r2, [r2] - movs r3, 0x1 - str r3, [sp] - movs r3, 0x40 - bl sub_8077434 - movs r0, 0x1 - add sp, 0x4 - pop {r1} - bx r1 - .align 2, 0 -_08057C84: .4byte gUnknown_8106A4C - thumb_func_end sub_8057C68 - - thumb_func_start sub_8057C88 -sub_8057C88: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - movs r7, 0 - movs r4, 0x80 - lsls r4, 1 - str r3, [sp] - adds r3, r4, 0 - bl sub_8055640 - cmp r0, 0 - beq _08057CC2 - movs r7, 0x1 - ldr r0, _08057CCC - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _08057CC2 - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0 - bl sub_80776C0 -_08057CC2: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08057CCC: .4byte gUnknown_80F4DF6 - thumb_func_end sub_8057C88 - - thumb_func_start sub_8057CD0 -sub_8057CD0: - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - adds r4, r0, 0 - adds r6, r1, 0 - mov r8, r2 - adds r5, r3, 0 - bl GetWeather - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08057D18 - adds r1, r0, r1 - ldrb r2, [r1] - ldr r1, _08057D1C - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [sp] - str r5, [sp, 0x4] - adds r0, r4, 0 - adds r1, r6, 0 - mov r3, r8 - bl sub_80556BC - cmp r0, 0 - beq _08057D0A - movs r0, 0x1 -_08057D0A: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08057D18: .4byte gUnknown_80F51E4 -_08057D1C: .4byte gUnknown_80F51EC - thumb_func_end sub_8057CD0 - - thumb_func_start sub_8057D20 -sub_8057D20: - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r4, r1, 0 - movs r7, 0 - ldr r0, [r4, 0x70] - adds r0, 0xC0 - ldrb r0, [r0] - movs r6, 0x80 - lsls r6, 1 - cmp r0, 0x9 - bne _08057D3C - movs r6, 0x80 - lsls r6, 2 -_08057D3C: - str r3, [sp] - adds r0, r5, 0 - adds r1, r4, 0 - adds r3, r6, 0 - bl sub_8055640 - cmp r0, 0 - beq _08057D6E - movs r7, 0x1 - ldr r0, _08057D78 - movs r1, 0 - ldrsh r2, [r0, r1] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_805727C - lsls r0, 24 - cmp r0, 0 - beq _08057D6E - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x3B - movs r3, 0 - bl sub_80768DC -_08057D6E: - adds r0, r7, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08057D78: .4byte gUnknown_80F4E08 - thumb_func_end sub_8057D20 - - thumb_func_start sub_8057D7C -sub_8057D7C: - push {lr} - sub sp, 0x8 - ldr r2, _08057D98 - ldr r2, [r2] - movs r3, 0x1 - str r3, [sp] - str r3, [sp, 0x4] - movs r3, 0x2 - bl sub_8076F80 - movs r0, 0x1 - add sp, 0x8 - pop {r1} - bx r1 - .align 2, 0 -_08057D98: .4byte gUnknown_8106A50 - thumb_func_end sub_8057D7C - thumb_func_start sub_8057D9C sub_8057D9C: push {r4-r7,lr} @@ -2467,7 +1991,7 @@ sub_8058C48: movs r1, 0xC0 lsls r1, 1 movs r0, 0x80 - bl sub_808411C + bl DungeonRandomRange adds r3, r0, 0 ldr r0, [r4, 0x70] ldrb r0, [r0, 0x9] @@ -9599,378 +9123,4 @@ sub_805C1BC: _0805C1E0: .4byte gUnknown_80F4F80 thumb_func_end sub_805C1BC - thumb_func_start sub_805C1E4 -sub_805C1E4: - push {lr} - ldr r2, _0805C1F4 - ldr r2, [r2] - bl sub_80522F4 - movs r0, 0 - pop {r1} - bx r1 .align 2, 0 -_0805C1F4: .4byte gUnknown_80FD454 - thumb_func_end sub_805C1E4 - - thumb_func_start sub_805C1F8 -sub_805C1F8: - push {lr} - movs r2, 0x1 - bl sub_8077BB4 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805C1F8 - - thumb_func_start sub_805C208 -sub_805C208: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r7, r0, 0 - mov r9, r1 - adds r6, r2, 0 - mov r8, r3 - movs r5, 0 - add r0, sp, 0x18 - strb r5, [r0] - ldr r0, [r1, 0x70] - movs r1, 0x4 - ldrsh r0, [r0, r1] - bl GetSizeOrbDmg - mov r10, r0 - adds r0, r6, 0 - bl GetMoveType - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - mov r1, r8 - bl sub_8057600 - lsls r0, 16 - asrs r0, 16 - add r1, sp, 0x18 - str r1, [sp] - str r4, [sp, 0x4] - str r0, [sp, 0x8] - str r5, [sp, 0xC] - movs r0, 0x1 - str r0, [sp, 0x10] - str r5, [sp, 0x14] - adds r0, r7, 0 - mov r1, r9 - mov r2, r10 - movs r3, 0x1 - bl sub_806F370 - add r1, sp, 0x18 - movs r2, 0 - adds r0, r1, 0 - ldrb r0, [r0] - cmp r0, 0 - bne _0805C270 - movs r2, 0x1 -_0805C270: - strb r2, [r1] - add r0, sp, 0x18 - ldrb r0, [r0] - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_805C208 - - thumb_func_start sub_805C288 -sub_805C288: - push {lr} - ldr r2, _0805C29C - movs r3, 0 - ldrsh r2, [r2, r3] - movs r3, 0 - bl sub_8078A58 - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_0805C29C: .4byte gUnknown_80F4FC6 - thumb_func_end sub_805C288 - - thumb_func_start sub_805C2A0 -sub_805C2A0: - push {lr} - bl sub_807DC68 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805C2A0 - - thumb_func_start FillInOrbAction -FillInOrbAction: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - mov r8, r0 - adds r7, r1, 0 - movs r0, 0 - mov r9, r0 - ldr r5, [r7, 0x70] - bl IsBossBattle - lsls r0, 24 - cmp r0, 0 - beq _0805C2DC - ldr r0, _0805C2D8 - ldr r1, [r0] - mov r0, r8 - bl SendMessage - movs r0, 0 - b _0805C3CA - .align 2, 0 -_0805C2D8: .4byte gUnknown_80FD0B8 -_0805C2DC: - ldr r4, _0805C3A0 - adds r3, r5, 0 - adds r3, 0x46 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0] - ldrh r1, [r7, 0x4] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - ldr r2, _0805C3A4 - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - ldrb r0, [r3] - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x2] - ldrh r2, [r7, 0x6] - adds r0, r2 - lsls r0, 16 - ldr r2, _0805C3A8 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r4, sp - mov r0, sp - bl sub_8042A54 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl GetMapTile_2 - adds r2, r0, 0 - ldrh r1, [r2] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x2 - bne _0805C36C - ldr r0, _0805C3AC - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - movs r5, 0x1 - negs r5, r5 - mov r6, sp -_0805C344: - movs r4, 0x1 - negs r4, r4 -_0805C348: - movs r1, 0 - ldrsh r0, [r6, r1] - adds r0, r4 - movs r2, 0x2 - ldrsh r1, [r6, r2] - adds r1, r5 - bl sub_80498A8 - adds r4, 0x1 - cmp r4, 0x1 - ble _0805C348 - adds r5, 0x1 - cmp r5, 0x1 - ble _0805C344 - movs r0, 0x1 - mov r9, r0 - bl sub_806CF60 -_0805C36C: - movs r5, 0 -_0805C36E: - movs r4, 0 - adds r6, r5, 0x1 -_0805C372: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8049BB0 - adds r4, 0x1 - cmp r4, 0x37 - ble _0805C372 - adds r5, r6, 0 - cmp r5, 0x1F - ble _0805C36E - mov r1, r9 - cmp r1, 0 - beq _0805C3B4 - mov r0, sp - bl sub_8042A64 - ldr r0, _0805C3B0 - ldr r2, [r0] - mov r0, r8 - adds r1, r7, 0 - bl sub_80522F4 - b _0805C3C0 - .align 2, 0 -_0805C3A0: .4byte gAdjacentTileOffsets -_0805C3A4: .4byte 0xffff0000 -_0805C3A8: .4byte 0x0000ffff -_0805C3AC: .4byte 0x0000fffc -_0805C3B0: .4byte gUnknown_80FD0B4 -_0805C3B4: - ldr r0, _0805C3D8 - ldr r2, [r0] - mov r0, r8 - adds r1, r7, 0 - bl sub_80522F4 -_0805C3C0: - bl sub_8040A84 - bl sub_8049ED4 - mov r0, r9 -_0805C3CA: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0805C3D8: .4byte gUnknown_80FD0B8 - thumb_func_end FillInOrbAction - - thumb_func_start sub_805C3DC -sub_805C3DC: - push {lr} - ldr r0, [r1, 0x70] - ldrb r0, [r0, 0x6] - movs r2, 0x1 - cmp r0, 0 - beq _0805C3EA - movs r2, 0x2 -_0805C3EA: - adds r0, r1, 0x4 - movs r1, 0x14 - bl sub_807FC3C - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805C3DC - - thumb_func_start sub_805C3F8 -sub_805C3F8: - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, [r4, 0x4] - str r0, [sp, 0x4] - ldr r0, [r4, 0x70] - adds r0, 0xA4 - ldrb r1, [r0] - cmp r1, 0 - bne _0805C442 - adds r0, r4, 0 - adds r0, 0x20 - strb r1, [r0] - movs r0, 0 - bl sub_803D73C - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, sp - movs r2, 0 - bl sub_8045C28 - add r1, sp, 0x4 - adds r0, r5, 0 - mov r2, sp - bl sub_80464C8 - movs r1, 0x86 - lsls r1, 2 - adds r0, r4, 0 - adds r2, r5, 0 - bl sub_8068FE0 - movs r0, 0x1 - b _0805C450 -_0805C442: - ldr r0, _0805C458 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80522F4 - movs r0, 0 -_0805C450: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0805C458: .4byte gUnknown_80FF678 - thumb_func_end sub_805C3F8 - - thumb_func_start sub_805C45C -sub_805C45C: - push {lr} - bl sub_807F43C - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805C45C - - thumb_func_start sub_805C468 -sub_805C468: - push {lr} - bl sub_8078F50 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805C468 - - thumb_func_start sub_805C474 -sub_805C474: - push {lr} - bl sub_8077E4C - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805C474 - - thumb_func_start sub_805C480 -sub_805C480: - push {lr} - bl sub_8079570 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805C480 - - thumb_func_start sub_805C48C -sub_805C48C: - push {lr} - bl sub_80795C4 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_805C48C - - .align 2, 0 \ No newline at end of file diff --git a/asm/code_805D8C8.s b/asm/code_805D8C8.s index 2200fb934..bd1a38fdb 100644 --- a/asm/code_805D8C8.s +++ b/asm/code_805D8C8.s @@ -505,7 +505,7 @@ _0805DCCC: movs r1, 0x14 bl SetAction mov r0, r10 - bl sub_8045B60 + bl GetTeamMemberEntityIndex mov r1, r8 adds r1, 0x48 strb r0, [r1] @@ -11139,7 +11139,7 @@ _080632BC: beq _080632DE _080632CC: mov r0, r8 - bl sub_8045B60 + bl GetTeamMemberEntityIndex adds r2, r0, 0 adds r0, r7, 0 adds r1, r6, 0 @@ -11202,7 +11202,7 @@ _0806334A: cmp r0, 0 beq _08063384 mov r0, r8 - bl sub_8045B60 + bl GetTeamMemberEntityIndex adds r1, r0, 0 adds r0, r4, 0 bl sub_80637A4 @@ -24560,4 +24560,4 @@ _08069D6C: bx r0 thumb_func_end sub_8069D4C - .align 2, 0 \ No newline at end of file + .align 2, 0 diff --git a/asm/code_8071518.s b/asm/code_8071518.s deleted file mode 100644 index f33352f40..000000000 --- a/asm/code_8071518.s +++ /dev/null @@ -1,54 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start CheckRunAwayVisualFlag -CheckRunAwayVisualFlag: - push {r4-r7,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r4, [r5, 0x70] - adds r6, r4, 0 - ldrb r0, [r4, 0x7] - cmp r0, 0 - bne _08071590 - adds r0, r5, 0 - movs r1, 0x2B - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _08071590 - movs r2, 0 - movs r1, 0x10 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - movs r3, 0xE - ldrsh r1, [r4, r3] - asrs r0, 1 - cmp r1, r0 - bgt _08071576 - movs r2, 0x1 -_08071576: - adds r0, r6, 0 - movs r1, 0x4 - bl SetVisualFlags - lsls r0, 24 - lsrs r0, 24 - cmp r7, 0 - beq _08071590 - cmp r0, 0 - beq _08071590 - adds r0, r5, 0 - bl ShowVisualFlags -_08071590: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end CheckRunAwayVisualFlag - - .align 2, 0 \ No newline at end of file diff --git a/asm/code_807167C.s b/asm/code_807167C.s index ee3263149..ca8dda25a 100644 --- a/asm/code_807167C.s +++ b/asm/code_807167C.s @@ -5,72 +5,5 @@ .text - thumb_func_start sub_807167C -sub_807167C: - push {lr} - ldr r2, [r0, 0x70] - ldr r1, [r1, 0x70] - adds r0, r2, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080716D2 - adds r0, r2, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - beq _0807169A - cmp r0, 0x47 - bne _0807169E -_0807169A: - movs r0, 0x1 - b _080716A0 -_0807169E: - movs r0, 0 -_080716A0: - cmp r0, 0 - bne _080716D2 - ldrb r0, [r2, 0x8] - cmp r0, 0 - bne _080716D2 - adds r0, r1, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080716D2 - adds r0, r1, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - beq _080716C2 - cmp r0, 0x47 - bne _080716C6 -_080716C2: - movs r0, 0x1 - b _080716C8 -_080716C6: - movs r0, 0 -_080716C8: - cmp r0, 0 - bne _080716D2 - ldrb r0, [r1, 0x8] - cmp r0, 0 - beq _080716D6 -_080716D2: - movs r0, 0x2 - b _080716E4 -_080716D6: - ldrb r0, [r2, 0x6] - ldrb r1, [r1, 0x6] - cmp r0, r1 - bne _080716E2 - movs r0, 0 - b _080716E4 -_080716E2: - movs r0, 0x1 -_080716E4: - pop {r1} - bx r1 - thumb_func_end sub_807167C .align 2, 0 diff --git a/asm/code_8077274.s b/asm/code_8077274.s index bed653d2d..6edc5360f 100644 --- a/asm/code_8077274.s +++ b/asm/code_8077274.s @@ -7237,7 +7237,7 @@ _0807ACB4: ldr r1, _0807AD78 movs r4, 0 ldrsh r1, [r1, r4] - bl sub_808411C + bl DungeonRandomRange adds r7, r0, 0 cmp r7, r8 blt _0807ACCC @@ -7364,4 +7364,4 @@ _0807ADA6: bx r0 thumb_func_end sub_807AB38 - .align 2, 0 \ No newline at end of file + .align 2, 0 diff --git a/asm/code_807E5AC.s b/asm/code_807E5AC.s index 538ce0aed..56979bb93 100644 --- a/asm/code_807E5AC.s +++ b/asm/code_807E5AC.s @@ -4,120 +4,6 @@ .syntax unified .text - - thumb_func_start sub_807E5AC -sub_807E5AC: - push {lr} - ldr r0, _0807E5DC - ldr r0, [r0] - ldr r1, _0807E5E0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bne _0807E5C6 - movs r0, 0x8 - bl DungeonRandomCapped - lsls r0, 24 - lsrs r0, 24 -_0807E5C6: - bl sub_807E5E4 - bl TriggerWeatherAbilities - movs r0, 0 - movs r1, 0x1 - bl sub_807EAA0 - pop {r0} - bx r0 - .align 2, 0 -_0807E5DC: .4byte gDungeonGlobalData -_0807E5E0: .4byte 0x0001c578 - thumb_func_end sub_807E5AC - - thumb_func_start sub_807E5E4 -sub_807E5E4: - push {r4-r6,lr} - ldr r3, _0807E674 - ldr r1, [r3] - ldr r2, _0807E678 - adds r1, r2 - movs r4, 0 - strb r0, [r1] - ldr r0, [r3] - adds r2, r0, r2 - ldrb r1, [r2] - ldr r2, _0807E67C - adds r0, r2 - strb r1, [r0] - ldr r0, [r3] - ldr r1, _0807E680 - adds r0, r1 - strb r4, [r0] - movs r2, 0 - adds r4, r3, 0 - ldr r6, _0807E684 - movs r1, 0 - ldr r5, _0807E688 -_0807E610: - ldr r0, [r4] - adds r0, r6 - adds r0, r2 - strb r1, [r0] - ldr r0, [r4] - adds r0, r5 - adds r0, r2 - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x7 - ble _0807E610 - ldr r0, [r3] - ldr r2, _0807E68C - adds r0, r2 - movs r2, 0 - movs r1, 0x9 - strb r1, [r0] - ldr r0, [r3] - ldr r1, _0807E690 - adds r0, r1 - strb r2, [r0] - ldr r0, [r3] - adds r1, 0x1 - adds r0, r1 - strb r2, [r0] - movs r6, 0xBE - lsls r6, 1 - ldr r5, _0807E694 - movs r4, 0xBF - lsls r4, 1 -_0807E64C: - ldr r0, [r3] - lsls r1, r2, 2 - adds r0, r1 - adds r0, r6 - strb r2, [r0] - ldr r0, [r3] - adds r0, r1 - adds r0, r5 - strb r2, [r0] - ldr r0, [r3] - adds r0, r1 - adds r0, r4 - strb r2, [r0] - adds r2, 0x1 - cmp r2, 0xFF - ble _0807E64C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0807E674: .4byte gDungeonGlobalData -_0807E678: .4byte 0x0000e265 -_0807E67C: .4byte 0x0000e264 -_0807E680: .4byte 0x0000e279 -_0807E684: .4byte 0x0000e267 -_0807E688: .4byte 0x0000e26f -_0807E68C: .4byte 0x0000e266 -_0807E690: .4byte 0x0000e277 -_0807E694: .4byte 0x0000017d - thumb_func_end sub_807E5E4 thumb_func_start sub_807E698 sub_807E698: @@ -2118,7 +2004,7 @@ _0807F64E: _0807F654: ldr r0, [r4] ldr r1, [r4, 0x8] - bl sub_808411C + bl DungeonRandomRange lsls r0, 16 lsrs r0, 16 ldr r2, _0807F6A0 @@ -2128,7 +2014,7 @@ _0807F654: str r1, [r6] ldr r0, [r4, 0x4] ldr r1, [r4, 0xC] - bl sub_808411C + bl DungeonRandomRange lsls r0, 16 ldrh r1, [r6] orrs r1, r0 @@ -2851,39 +2737,4 @@ _0807FC34: .4byte 0x000001ff _0807FC38: .4byte 0x000181ea thumb_func_end sub_807FA9C - thumb_func_start sub_807FC3C -sub_807FC3C: - push {r4-r7,lr} - ldr r6, _0807FC70 - ldr r4, [r6] - ldrh r5, [r0] - ldr r7, _0807FC74 - adds r3, r4, r7 - strh r5, [r3] - ldrh r3, [r0, 0x2] - ldr r5, _0807FC78 - adds r0, r4, r5 - strh r3, [r0] - adds r7, 0x4 - adds r4, r7 - strb r1, [r4] - ldr r0, [r6] - ldr r1, _0807FC7C - adds r0, r1 - strb r2, [r0] - ldr r0, [r6] - subs r5, 0x6 - adds r0, r5 - movs r1, 0x1 - strb r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 .align 2, 0 -_0807FC70: .4byte gDungeonGlobalData -_0807FC74: .4byte 0x00013574 -_0807FC78: .4byte 0x00013576 -_0807FC7C: .4byte 0x00013579 - thumb_func_end sub_807FC3C - - .align 2, 0 \ No newline at end of file diff --git a/asm/code_808411C.s b/asm/code_808411C.s deleted file mode 100644 index cf6bc945b..000000000 --- a/asm/code_808411C.s +++ /dev/null @@ -1,31 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_808411C -sub_808411C: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - cmp r5, r4 - beq _0808413C - cmp r5, r4 - blt _08084134 - subs r0, r5, r4 - bl DungeonRandomCapped - adds r0, r4 - b _0808413C -_08084134: - subs r0, r4, r5 - bl DungeonRandomCapped - adds r0, r5 -_0808413C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_808411C - - .align 2, 0 \ No newline at end of file diff --git a/asm/code_808417C.s b/asm/code_808417C.s index 05c90bec9..8d0082f69 100644 --- a/asm/code_808417C.s +++ b/asm/code_808417C.s @@ -15,7 +15,7 @@ sub_808417C: ldrsh r0, [r1, r2] movs r2, 0x2 ldrsh r1, [r1, r2] - bl sub_808411C + bl DungeonRandomRange adds r4, r0, 0 adds r0, r5, 0 bl EntityExists diff --git a/asm/code_80848F0.s b/asm/code_80848F0.s index 01d27da17..4d405e727 100644 --- a/asm/code_80848F0.s +++ b/asm/code_80848F0.s @@ -309,7 +309,7 @@ _080854C0: cmp r5, 0x3 ble _08085490 movs r0, 0x2 - bl sub_8085680 + bl GetEntityFromClientType _080854CC: pop {r4,r5} pop {r1} @@ -550,8 +550,8 @@ _08085678: .4byte gDungeonGlobalData _0808567C: .4byte 0x0001358c thumb_func_end sub_808563C - thumb_func_start sub_8085680 -sub_8085680: + thumb_func_start GetEntityFromClientType +GetEntityFromClientType: push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 @@ -588,7 +588,7 @@ _080856C0: pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_8085680 + thumb_func_end GetEntityFromClientType thumb_func_start sub_80856C8 sub_80856C8: diff --git a/asm/code_8085B0C.s b/asm/code_8085B0C.s index fa3b3f500..4c96aaffc 100644 --- a/asm/code_8085B0C.s +++ b/asm/code_8085B0C.s @@ -5,40 +5,6 @@ .text - thumb_func_start sub_8085B0C -sub_8085B0C: - push {r4,r5,lr} - sub sp, 0x1C - adds r5, r0, 0 - ldr r1, _08085B48 - mov r0, sp - movs r2, 0x19 - bl memcpy - mov r0, sp - ldrb r0, [r0] - cmp r0, 0 - beq _08085B3E - mov r4, sp -_08085B26: - ldrb r1, [r4] - adds r0, r5, 0 - bl SetFacingDirection - movs r0, 0x6 - movs r1, 0x46 - bl sub_803E708 - adds r4, 0x1 - ldrb r0, [r4] - cmp r0, 0 - bne _08085B26 -_08085B3E: - add sp, 0x1C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08085B48: .4byte gUnknown_8107358 - thumb_func_end sub_8085B0C - thumb_func_start sub_8085B4C sub_8085B4C: push {r4-r6,lr} @@ -180,8 +146,8 @@ _08085C4C: .4byte gAdjacentTileOffsets _08085C50: .4byte gUnknown_202F3D8 thumb_func_end sub_8085B80 - thumb_func_start sub_8085C54 -sub_8085C54: + thumb_func_start SetDungeonBGColorRGB +SetDungeonBGColorRGB: push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -482,7 +448,7 @@ _08085E88: .4byte 0xffff0000 _08085E8C: .4byte gUnknown_202EE8C _08085E90: .4byte gUnknown_202ECA4 _08085E94: .4byte 0x000181e4 - thumb_func_end sub_8085C54 + thumb_func_end SetDungeonBGColorRGB thumb_func_start sub_8085E98 sub_8085E98: diff --git a/asm/code_8086A3C.s b/asm/code_8086A3C.s index 0d2aead54..f2ced58b9 100644 --- a/asm/code_8086A3C.s +++ b/asm/code_8086A3C.s @@ -108,18 +108,18 @@ TeamMeaniesPreFightDialogue: adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 - bl sub_80858AC + bl ShiftCameraToPosition pop {r4} pop {r0} bx r0 .align 2, 0 -_08087048: .4byte gUnknown_8100DB0 -_0808704C: .4byte gUnknown_8100E64 -_08087050: .4byte gUnknown_8100E88 -_08087054: .4byte gUnknown_8100F14 -_08087058: .4byte gUnknown_8101004 -_0808705C: .4byte gUnknown_8101050 -_08087060: .4byte gUnknown_81010D0 +_08087048: .4byte gTeamMeaniesPreFightDialogue_1 +_0808704C: .4byte gTeamMeaniesPreFightDialogue_2 +_08087050: .4byte gTeamMeaniesPreFightDialogue_3 +_08087054: .4byte gTeamMeaniesPreFightDialogue_4 +_08087058: .4byte gTeamMeaniesPreFightDialogue_5 +_0808705C: .4byte gTeamMeaniesPreFightDialogue_6 +_08087060: .4byte gTeamMeaniesPreFightDialogue_7 thumb_func_end TeamMeaniesPreFightDialogue thumb_func_start TeamMeaniesReFightDialogue @@ -186,17 +186,17 @@ TeamMeaniesReFightDialogue: adds r4, 0xC adds r0, r4, 0 movs r1, 0x10 - bl sub_80858AC + bl ShiftCameraToPosition pop {r4,r5} pop {r0} bx r0 .align 2, 0 -_08087118: .4byte gUnknown_8101164 -_0808711C: .4byte gUnknown_8100E64 -_08087120: .4byte gUnknown_8101240 -_08087124: .4byte gUnknown_8101310 -_08087128: .4byte gUnknown_810137C -_0808712C: .4byte gUnknown_8101408 +_08087118: .4byte gTeamMeaniesReFightDialogue_1 +_0808711C: .4byte gTeamMeaniesPreFightDialogue_2 +_08087120: .4byte gTeamMeaniesReFightDialogue_2 +_08087124: .4byte gTeamMeaniesReFightDialogue_3 +_08087128: .4byte gTeamMeaniesReFightDialogue_4 +_0808712C: .4byte gTeamMeaniesReFightDialogue_5 thumb_func_end TeamMeaniesReFightDialogue thumb_func_start sub_8087130 @@ -219,13 +219,13 @@ sub_8087144: push {r6,r7} sub sp, 0xF0 movs r0, 0x5 - bl sub_8085680 + bl GetEntityFromClientType adds r7, r0, 0 movs r0, 0x6 - bl sub_8085680 + bl GetEntityFromClientType mov r8, r0 movs r0, 0x7 - bl sub_8085680 + bl GetEntityFromClientType mov r9, r0 ldr r1, _080871E0 mov r0, sp @@ -324,7 +324,7 @@ sub_8087230: bl xxx_call_GetLeaderEntity adds r6, r0, 0 movs r0, 0x8 - bl sub_8085680 + bl GetEntityFromClientType adds r5, r0, 0 movs r0, 0x72 bl sub_8083E88 @@ -370,7 +370,7 @@ sub_808729C: bl xxx_call_GetLeaderEntity adds r5, r0, 0 movs r0, 0x8 - bl sub_8085680 + bl GetEntityFromClientType adds r4, r0, 0 bl sub_80854D4 movs r0, 0x4 @@ -471,7 +471,7 @@ ZapdosPreFightDialogue: bl GetPartnerEntity adds r6, r0, 0 movs r0, 0x8 - bl sub_8085680 + bl GetEntityFromClientType str r0, [sp, 0x68] bl sub_8086448 movs r0, 0xA @@ -513,7 +513,7 @@ ZapdosPreFightDialogue: movs r1, 0x46 bl sub_803E708 movs r0, 0x3 - bl sub_808775C + bl ZapdosScreenFlash bl sub_8083F14 movs r0, 0xED lsls r0, 1 @@ -660,21 +660,21 @@ _0808752A: movs r1, 0x46 bl sub_803E708 movs r0, 0x3 - bl sub_808775C + bl ZapdosScreenFlash ldr r0, _080875B4 bl DisplayDungeonDialogue movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x1 - bl sub_808775C + bl ZapdosScreenFlash ldr r0, _080875B8 bl DisplayDungeonDialogue movs r0, 0xA movs r1, 0x46 bl sub_803E708 movs r0, 0x2 - bl sub_808775C + bl ZapdosScreenFlash ldr r0, _080875BC bl DisplayDungeonDialogue movs r0, 0xA @@ -687,7 +687,7 @@ _0808752A: bl SetupBossFightHP adds r0, r4, 0 movs r1, 0x10 - bl sub_80858AC + bl ShiftCameraToPosition add sp, 0x70 pop {r3-r5} mov r8, r3 diff --git a/asm/jirachi_wish.s b/asm/jirachi_wish.s index ef24a1c11..053642398 100644 --- a/asm/jirachi_wish.s +++ b/asm/jirachi_wish.s @@ -14,7 +14,7 @@ JirachiWish: push {r5-r7} sub sp, 0x78 movs r0, 0x1A - bl sub_8085680 + bl GetEntityFromClientType adds r6, r0, 0 ldr r0, _0808B82C ldr r1, _0808B830 @@ -468,7 +468,7 @@ _0808B9F8: ldr r0, _0808BA70 bl DisplayDungeonDialogue adds r0, r6, 0 - bl sub_808BC20 + bl JirachiSpinEffect movs r0, 0xA movs r1, 0x46 bl sub_803E708 @@ -507,8 +507,8 @@ _0808BA70: .4byte gUnknown_81058E0 _0808BA74: .4byte gUnknown_810593C thumb_func_end JirachiWish - thumb_func_start JirachiPreFightDialogue1 -JirachiPreFightDialogue1: + thumb_func_start JirachiReFightDialogue +JirachiReFightDialogue: push {lr} ldr r0, _0808BA94 bl HasRecruitedMon @@ -521,16 +521,16 @@ JirachiPreFightDialogue1: b _0808BAA0 .align 2, 0 _0808BA94: .4byte 0x0000019d -_0808BA98: .4byte gUnknown_8105E14 +_0808BA98: .4byte gJirachiReFightDialogue_1 _0808BA9C: bl JirachiPreFightDialogue _0808BAA0: pop {r0} bx r0 - thumb_func_end JirachiPreFightDialogue1 + thumb_func_end JirachiReFightDialogue - thumb_func_start sub_808BAA4 -sub_808BAA4: + thumb_func_start JirachiWishGrantFlash +JirachiWishGrantFlash: push {r4,r5,lr} sub sp, 0x4 ldr r0, _0808BB34 @@ -546,7 +546,7 @@ _0808BAB8: adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 - bl sub_8085C54 + bl SetDungeonBGColorRGB movs r0, 0x46 bl sub_803E46C subs r4, 0xA @@ -563,7 +563,7 @@ _0808BADE: adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 - bl sub_8085C54 + bl SetDungeonBGColorRGB movs r0, 0x46 bl sub_803E46C subs r4, 0xA @@ -580,7 +580,7 @@ _0808BB04: adds r1, r4, 0 adds r2, r4, 0 movs r3, 0x1 - bl sub_8085C54 + bl SetDungeonBGColorRGB movs r0, 0x46 bl sub_803E46C subs r4, 0xA @@ -597,7 +597,7 @@ _0808BB04: .align 2, 0 _0808BB34: .4byte 0x000002c1 _0808BB38: .4byte gUnknown_202EDC8 - thumb_func_end sub_808BAA4 + thumb_func_end JirachiWishGrantFlash thumb_func_start sub_808BB3C sub_808BB3C: diff --git a/asm/kecleon_items.s b/asm/kecleon_items.s index 2d0fb026b..f508a9451 100644 --- a/asm/kecleon_items.s +++ b/asm/kecleon_items.s @@ -1026,29 +1026,4 @@ _080196FA: bx r0 thumb_func_end sub_8019660 - thumb_func_start sub_8019700 -sub_8019700: - ldr r0, _08019724 - ldr r1, [r0] - movs r3, 0 - ldr r0, _08019728 - ldr r0, [r0] - str r0, [r1, 0x34] - movs r0, 0x5 - str r0, [r1, 0x38] - movs r2, 0x1 - ldr r0, _0801972C - ldr r0, [r0] - str r0, [r1, 0x3C] - movs r0, 0x6 - str r0, [r1, 0x40] - str r3, [r1, 0x44] - str r2, [r1, 0x48] - bx lr - .align 2, 0 -_08019724: .4byte gUnknown_203B210 -_08019728: .4byte gUnknown_80D4920 -_0801972C: .4byte gUnknown_80D4928 - thumb_func_end sub_8019700 - .align 2,0 diff --git a/asm/wonder_mail_2.s b/asm/wonder_mail_2.s index 96e0130ca..4add06ee1 100644 --- a/asm/wonder_mail_2.s +++ b/asm/wonder_mail_2.s @@ -670,1560 +670,4 @@ _0802C452: _0802C470: .4byte gUnknown_203B2E0 thumb_func_end sub_802C39C - thumb_func_start sub_802C474 -sub_802C474: - push {r4,r5,lr} - movs r5, 0 - movs r4, 0 -_0802C47A: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_809658C - lsls r0, 24 - cmp r0, 0 - bne _0802C492 - ldr r0, _0802C4A0 - ldr r0, [r0] - adds r0, r5 - strb r4, [r0] - adds r5, 0x1 -_0802C492: - adds r4, 0x1 - cmp r4, 0x7 - ble _0802C47A - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0802C4A0: .4byte gUnknown_203B2E0 - thumb_func_end sub_802C474 - - thumb_func_start sub_802C4A4 -sub_802C4A4: - push {r4,lr} - movs r4, 0 -_0802C4A8: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_809658C - lsls r0, 24 - cmp r0, 0 - bne _0802C4BA - movs r0, 0 - b _0802C4C2 -_0802C4BA: - adds r4, 0x1 - cmp r4, 0x7 - ble _0802C4A8 - movs r0, 0x1 -_0802C4C2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_802C4A4 - - thumb_func_start sub_802C4C8 -sub_802C4C8: - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - mov r8, r2 - bl HasNoAcceptedJobs - lsls r0, 24 - cmp r0, 0 - beq _0802C4E2 - movs r0, 0 - b _0802C580 -_0802C4E2: - ldr r5, _0802C58C - movs r0, 0xA8 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r5] - str r6, [r0, 0x3C] - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 3 - adds r1, 0x44 - adds r1, r0, r1 - str r1, [r0, 0x40] - adds r0, 0x44 - bl sub_8006518 - ldr r1, [r5] - ldr r2, [r1, 0x3C] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x44 - ldr r0, _0802C590 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldr r2, [r5] - ldr r1, [r2, 0x40] - adds r0, r2, 0 - adds r0, 0xA4 - str r0, [r1, 0x14] - cmp r4, 0 - beq _0802C53A - ldr r1, [r2, 0x3C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r1, r2, 0 - adds r1, 0x4C - adds r1, r0 - ldr r0, [r4] - str r0, [r1] -_0802C53A: - ldr r0, [r5] - ldr r0, [r0, 0x40] - mov r1, r8 - bl sub_8012D34 - bl ResetUnusedInputStruct - ldr r0, [r5] - adds r0, 0x44 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r4, [r5] - adds r4, 0x8 - bl sub_802C80C - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r8 - adds r3, r6, 0 - bl sub_8013848 - ldr r0, [r5] - ldr r1, _0802C594 - ldrh r1, [r1] - strh r1, [r0, 0x20] - adds r0, 0x8 - bl sub_8013984 - bl sub_802C6DC - bl sub_802C750 - movs r0, 0x1 -_0802C580: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0802C58C: .4byte gUnknown_203B2E8 -_0802C590: .4byte gUnknown_80DFCFC -_0802C594: .4byte gUnknown_203B2EC - thumb_func_end sub_802C4C8 - - thumb_func_start sub_802C598 -sub_802C598: - push {lr} - lsls r0, 24 - cmp r0, 0 - bne _0802C5B4 - ldr r0, _0802C5B0 - ldr r0, [r0] - adds r0, 0x8 - bl sub_8013660 - movs r0, 0 - b _0802C61A - .align 2, 0 -_0802C5B0: .4byte gUnknown_203B2E8 -_0802C5B4: - ldr r0, _0802C5CC - ldr r0, [r0] - adds r0, 0x8 - bl GetKeyPress - cmp r0, 0x2 - beq _0802C5D6 - cmp r0, 0x2 - bgt _0802C5D0 - cmp r0, 0x1 - beq _0802C5E0 - b _0802C5F4 - .align 2, 0 -_0802C5CC: .4byte gUnknown_203B2E8 -_0802C5D0: - cmp r0, 0x4 - beq _0802C5EA - b _0802C5F4 -_0802C5D6: - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _0802C61A -_0802C5E0: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _0802C61A -_0802C5EA: - movs r0, 0x4 - bl PlayMenuSoundEffect - movs r0, 0x4 - b _0802C61A -_0802C5F4: - ldr r0, _0802C60C - ldr r0, [r0] - adds r0, 0x8 - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _0802C610 - movs r0, 0 - b _0802C61A - .align 2, 0 -_0802C60C: .4byte gUnknown_203B2E8 -_0802C610: - bl sub_802C6DC - bl sub_802C750 - movs r0, 0x1 -_0802C61A: - pop {r1} - bx r1 - thumb_func_end sub_802C598 - - thumb_func_start sub_802C620 -sub_802C620: - ldr r0, _0802C63C - ldr r1, [r0] - movs r0, 0x26 - ldrsh r2, [r1, r0] - movs r3, 0x24 - ldrsh r0, [r1, r3] - muls r0, r2 - movs r3, 0x20 - ldrsh r2, [r1, r3] - adds r0, r2 - adds r1, r0 - ldrb r0, [r1] - bx lr - .align 2, 0 -_0802C63C: .4byte gUnknown_203B2E8 - thumb_func_end sub_802C620 - - thumb_func_start sub_802C640 -sub_802C640: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ResetUnusedInputStruct - ldr r5, _0802C684 - ldr r0, [r5] - adds r0, 0x44 - movs r1, 0 - movs r2, 0 - bl sub_800641C - bl sub_802C80C - adds r1, r0, 0 - ldr r0, [r5] - strh r1, [r0, 0x2A] - adds r0, 0x8 - bl sub_8013984 - bl sub_802C6DC - bl sub_802C750 - cmp r4, 0 - beq _0802C67E - ldr r0, [r5] - adds r0, 0x8 - bl AddMenuCursorSprite -_0802C67E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802C684: .4byte gUnknown_203B2E8 - thumb_func_end sub_802C640 - - thumb_func_start sub_802C688 -sub_802C688: - push {r4,r5,lr} - ldr r4, _0802C6D0 - ldr r2, [r4] - cmp r2, 0 - beq _0802C6C8 - ldr r1, _0802C6D4 - ldrh r0, [r2, 0x20] - strh r0, [r1] - ldr r0, [r2, 0x3C] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x44 - ldr r0, _0802C6D8 - 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, 0x44 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802C6C8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802C6D0: .4byte gUnknown_203B2E8 -_0802C6D4: .4byte gUnknown_203B2EC -_0802C6D8: .4byte gUnknown_80DFCE4 - thumb_func_end sub_802C688 - - thumb_func_start sub_802C6DC -sub_802C6DC: - push {r4,lr} - ldr r4, _0802C74C - ldr r0, [r4] - ldrh r1, [r0, 0x28] - adds r0, 0xA4 - movs r2, 0 - strb r1, [r0] - ldr r0, [r4] - ldrh r1, [r0, 0x26] - adds r0, 0xA5 - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xA6 - movs r1, 0xC - strb r1, [r0] - ldr r0, [r4] - adds r0, 0xA7 - strb r2, [r0] - ldr r0, [r4] - movs r1, 0x22 - ldrsh r0, [r0, r1] - movs r1, 0x18 - bl sub_8009614 - adds r0, 0x2 - lsls r0, 16 - ldr r2, [r4] - ldr r3, [r2, 0x3C] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x52 - asrs r3, r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r1, [r2, 0x3C] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r3, 0x2 - adds r2, 0x54 - strh r3, [r2] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x44 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802C74C: .4byte gUnknown_203B2E8 - thumb_func_end sub_802C6DC - - thumb_func_start sub_802C750 -sub_802C750: - push {r4-r6,lr} - sub sp, 0x60 - ldr r6, _0802C7AC - ldr r0, [r6] - ldr r0, [r0, 0x3C] - bl sub_8008C54 - ldr r0, [r6] - ldr r0, [r0, 0x3C] - bl sub_80073B8 - ldr r0, [r6] - movs r1, 0x26 - ldrsh r4, [r0, r1] - lsls r4, 3 - adds r5, r4, 0 - adds r5, 0xA - ldr r2, _0802C7B0 - ldr r3, [r0, 0x3C] - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - bl xxx_call_draw_string - adds r4, 0x4 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0xA6 - ldrb r0, [r0] - lsls r0, 3 - adds r5, r4, r0 - movs r3, 0x26 - ldrsh r2, [r1, r3] - adds r2, 0x1 - movs r0, 0x7 - str r0, [sp] - ldr r0, [r1, 0x3C] - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r3, 0x2 - bl sub_8012BC4 - movs r5, 0 - b _0802C7EC - .align 2, 0 -_0802C7AC: .4byte gUnknown_203B2E8 -_0802C7B0: .4byte gUnknown_80DFD14 -_0802C7B4: - ldr r1, [r6] - movs r3, 0x26 - ldrsh r2, [r1, r3] - movs r3, 0x24 - ldrsh r0, [r1, r3] - muls r0, r2 - adds r0, r5 - adds r1, r0 - ldrb r0, [r1] - bl GetJobSlotInfo - adds r4, r0, 0 - ldr r0, [r6] - ldr r1, [r0, 0x3C] - str r1, [sp, 0x8] - adds r0, 0x8 - adds r1, r5, 0 - bl sub_8013800 - str r0, [sp, 0x50] - adds r0, r4, 0 - add r1, sp, 0x8 - bl sub_803B35C - add r0, sp, 0x8 - bl sub_803B6D4 - adds r5, 0x1 -_0802C7EC: - ldr r0, [r6] - movs r1, 0x22 - ldrsh r0, [r0, r1] - cmp r5, r0 - blt _0802C7B4 - ldr r0, _0802C808 - ldr r0, [r0] - ldr r0, [r0, 0x3C] - bl sub_80073E0 - add sp, 0x60 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802C808: .4byte gUnknown_203B2E8 - thumb_func_end sub_802C750 - - thumb_func_start sub_802C80C -sub_802C80C: - push {r4,r5,lr} - movs r5, 0 - movs r4, 0 -_0802C812: - lsls r0, r4, 24 - lsrs r0, 24 - bl IsJobSlotEmpty - lsls r0, 24 - cmp r0, 0 - bne _0802C82A - ldr r0, _0802C838 - ldr r0, [r0] - adds r0, r5 - strb r4, [r0] - adds r5, 0x1 -_0802C82A: - adds r4, 0x1 - cmp r4, 0x7 - ble _0802C812 - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0802C838: .4byte gUnknown_203B2E8 - thumb_func_end sub_802C80C - - thumb_func_start HasNoAcceptedJobs -HasNoAcceptedJobs: - push {r4,lr} - movs r4, 0 -_0802C840: - lsls r0, r4, 24 - lsrs r0, 24 - bl IsJobSlotEmpty - lsls r0, 24 - cmp r0, 0 - bne _0802C852 - movs r0, 0 - b _0802C85A -_0802C852: - adds r4, 0x1 - cmp r4, 0x7 - ble _0802C840 - movs r0, 0x1 -_0802C85A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end HasNoAcceptedJobs - - thumb_func_start sub_802C860 -sub_802C860: - push {r4-r6,lr} - adds r6, r0, 0 - bl HasNoAcceptedJobs - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0802C890 - ldr r4, _0802C88C - movs r0, 0xFE - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] - str r5, [r0, 0x68] - str r6, [r0] - movs r0, 0 - bl sub_802C910 - movs r0, 0x1 - b _0802C892 - .align 2, 0 -_0802C88C: .4byte gUnknown_203B2F0 -_0802C890: - movs r0, 0 -_0802C892: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_802C860 - - thumb_func_start sub_802C898 -sub_802C898: - push {lr} - ldr r0, _0802C8B0 - ldr r0, [r0] - ldr r0, [r0, 0x4] - cmp r0, 0x5 - bhi _0802C8E8 - lsls r0, 2 - ldr r1, _0802C8B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802C8B0: .4byte gUnknown_203B2F0 -_0802C8B4: .4byte _0802C8B8 - .align 2, 0 -_0802C8B8: - .4byte _0802C8D0 - .4byte _0802C8D0 - .4byte _0802C8D6 - .4byte _0802C8DC - .4byte _0802C8E2 - .4byte _0802C8E8 -_0802C8D0: - bl sub_802CC00 - b _0802C8EC -_0802C8D6: - bl sub_802CC70 - b _0802C8EC -_0802C8DC: - bl sub_802CD38 - b _0802C8EC -_0802C8E2: - bl sub_802CDB8 - b _0802C8EC -_0802C8E8: - movs r0, 0x3 - b _0802C8EE -_0802C8EC: - movs r0, 0 -_0802C8EE: - pop {r1} - bx r1 - thumb_func_end sub_802C898 - - thumb_func_start sub_802C8F4 -sub_802C8F4: - push {r4,lr} - ldr r4, _0802C90C - ldr r0, [r4] - cmp r0, 0 - beq _0802C906 - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802C906: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802C90C: .4byte gUnknown_203B2F0 - thumb_func_end sub_802C8F4 - - thumb_func_start sub_802C910 -sub_802C910: - push {lr} - ldr r1, _0802C924 - ldr r1, [r1] - str r0, [r1, 0x4] - bl sub_802C928 - bl sub_802C9D8 - pop {r0} - bx r0 - .align 2, 0 -_0802C924: .4byte gUnknown_203B2F0 - thumb_func_end sub_802C910 - - thumb_func_start sub_802C928 -sub_802C928: - push {r4-r7,lr} - ldr r4, _0802C94C - ldr r0, [r4] - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - bl sub_8006518 - ldr r1, [r4] - ldr r0, [r1, 0x4] - cmp r0, 0x2 - beq _0802C954 - cmp r0, 0x3 - beq _0802C980 - movs r2, 0 - ldr r3, _0802C950 - b _0802C998 - .align 2, 0 -_0802C94C: .4byte gUnknown_203B2F0 -_0802C950: .4byte gUnknown_80DFD28 -_0802C954: - bl sub_802CAA4 - ldr r2, [r4] - movs r0, 0xE6 - lsls r0, 1 - adds r2, r0 - ldr r1, _0802C97C - ldm r1!, {r3,r5,r6} - stm r2!, {r3,r5,r6} - ldm r1!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldr r1, [r4] - adds r0, r1, r0 - movs r6, 0x86 - lsls r6, 1 - adds r1, r6 - bl sub_8012CAC - b _0802C9B8 - .align 2, 0 -_0802C97C: .4byte gUnknown_80DFD40 -_0802C980: - movs r7, 0xF2 - lsls r7, 1 - adds r1, r7 - ldr r0, _0802C994 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - b _0802C9B8 - .align 2, 0 -_0802C994: .4byte gUnknown_80DFD58 -_0802C998: - ldr r0, [r4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r0, r1 - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - adds r1, r3, 0 - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - adds r2, 0x1 - cmp r2, 0x3 - ble _0802C998 -_0802C9B8: - bl ResetUnusedInputStruct - ldr r0, _0802C9D4 - ldr r0, [r0] - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802C9D4: .4byte gUnknown_203B2F0 - thumb_func_end sub_802C928 - - thumb_func_start sub_802C9D8 -sub_802C9D8: - push {r4,lr} - sub sp, 0x8 - ldr r1, _0802C9F4 - ldr r0, [r1] - ldr r0, [r0, 0x4] - adds r4, r1, 0 - cmp r0, 0x5 - bhi _0802CA9C - lsls r0, 2 - ldr r1, _0802C9F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802C9F4: .4byte gUnknown_203B2F0 -_0802C9F8: .4byte _0802C9FC - .align 2, 0 -_0802C9FC: - .4byte _0802CA14 - .4byte _0802CA20 - .4byte _0802CA28 - .4byte _0802CA48 - .4byte _0802CA80 - .4byte _0802CA9C -_0802CA14: - movs r0, 0 - movs r1, 0 - movs r2, 0x4 - bl sub_802C4C8 - b _0802CA9C -_0802CA20: - movs r0, 0x1 - bl sub_802C640 - b _0802CA9C -_0802CA28: - bl sub_802C750 - ldr r0, _0802CA44 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x6C - movs r3, 0x86 - lsls r3, 1 - adds r1, r2, r3 - ldr r2, [r2, 0x68] - str r2, [sp] - movs r2, 0x2 - b _0802CA6E - .align 2, 0 -_0802CA44: .4byte gUnknown_203B2F0 -_0802CA48: - bl sub_802CBAC - bl sub_802C750 - ldr r4, _0802CA7C - ldr r0, [r4] - adds r0, 0x6C - movs r1, 0 - bl sub_8012EA4 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0xBC - movs r2, 0xA6 - lsls r2, 1 - adds r1, r2 - movs r2, 0x6 - str r2, [sp] - movs r2, 0x3 -_0802CA6E: - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _0802CA9C - .align 2, 0 -_0802CA7C: .4byte gUnknown_203B2F0 -_0802CA80: - ldr r0, [r4] - ldrb r0, [r0, 0xC] - bl GetJobSlotInfo - ldr r1, [r4] - adds r1, 0x10 - bl sub_803B35C - ldr r0, [r4] - movs r1, 0x3 - str r1, [r0, 0x10] - adds r0, 0x10 - bl sub_802DE84 -_0802CA9C: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802C9D8 - - thumb_func_start sub_802CAA4 -sub_802CAA4: - push {r4-r7,lr} - movs r7, 0 - ldr r5, _0802CAC8 - ldr r0, [r5] - ldrb r0, [r0, 0xC] - bl GetJobSlotInfo - adds r4, r0, 0 - ldr r2, [r5] - ldr r0, [r2] - cmp r0, 0 - bne _0802CB26 - ldrb r0, [r4] - cmp r0, 0x5 - beq _0802CACC - cmp r0, 0x6 - beq _0802CB10 - b _0802CB26 - .align 2, 0 -_0802CAC8: .4byte gUnknown_203B2F0 -_0802CACC: - movs r0, 0x86 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, _0802CAFC - str r0, [r1] - adds r0, r4, 0 - bl sub_809693C - lsls r0, 24 - cmp r0, 0 - bne _0802CAEE - ldrb r0, [r4, 0x4] - bl sub_80A2824 - lsls r0, 24 - cmp r0, 0 - bne _0802CB00 -_0802CAEE: - ldr r0, [r5] - movs r1, 0x88 - lsls r1, 1 - adds r0, r1 - movs r1, 0x1 - negs r1, r1 - b _0802CB0A - .align 2, 0 -_0802CAFC: .4byte gUnknown_80DFD70 -_0802CB00: - ldr r0, [r5] - movs r1, 0x88 - lsls r1, 1 - adds r0, r1 - movs r1, 0x2 -_0802CB0A: - str r1, [r0] - adds r7, 0x1 - b _0802CB26 -_0802CB10: - movs r0, 0x86 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, _0802CB9C - str r0, [r1] - movs r0, 0x88 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0x3 - str r0, [r1] - movs r7, 0x1 -_0802CB26: - ldr r4, _0802CBA0 - ldr r6, [r4] - lsls r1, r7, 3 - movs r0, 0x86 - lsls r0, 1 - adds r3, r6, r0 - adds r2, r3, r1 - ldr r0, _0802CBA4 - ldr r0, [r0] - str r0, [r2] - movs r0, 0x88 - lsls r0, 1 - adds r5, r6, r0 - adds r1, r5, r1 - movs r0, 0x4 - str r0, [r1] - adds r7, 0x1 - lsls r1, r7, 3 - adds r2, r3, r1 - ldr r0, _0802CBA8 - ldr r0, [r0] - str r0, [r2] - adds r1, r5, r1 - movs r0, 0x7 - str r0, [r1] - adds r7, 0x1 - lsls r1, r7, 3 - adds r3, r1 - movs r0, 0 - str r0, [r3] - adds r1, r5, r1 - movs r0, 0x1 - str r0, [r1] - movs r3, 0 - mov r12, r4 - cmp r3, r7 - bge _0802CB8C - adds r4, r6, 0 - adds r1, r5, 0 - movs r5, 0x1 - negs r5, r5 -_0802CB78: - ldr r2, [r1] - cmp r2, r5 - beq _0802CB84 - ldr r0, [r4, 0x68] - cmp r2, r0 - beq _0802CB94 -_0802CB84: - adds r1, 0x8 - adds r3, 0x1 - cmp r3, r7 - blt _0802CB78 -_0802CB8C: - mov r0, r12 - ldr r1, [r0] - movs r0, 0x7 - str r0, [r1, 0x68] -_0802CB94: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802CB9C: .4byte gUnknown_80DFD7C -_0802CBA0: .4byte gUnknown_203B2F0 -_0802CBA4: .4byte gUnknown_80D494C -_0802CBA8: .4byte gUnknown_80D4970 - thumb_func_end sub_802CAA4 - - thumb_func_start sub_802CBAC -sub_802CBAC: - ldr r0, _0802CBF4 - ldr r0, [r0] - mov r12, r0 - movs r3, 0 - movs r1, 0xA6 - lsls r1, 1 - add r1, r12 - ldr r0, _0802CBF8 - ldr r0, [r0] - str r0, [r1] - movs r1, 0xA8 - lsls r1, 1 - add r1, r12 - movs r0, 0x5 - str r0, [r1] - movs r2, 0x1 - movs r1, 0xAA - lsls r1, 1 - add r1, r12 - ldr r0, _0802CBFC - ldr r0, [r0] - str r0, [r1] - movs r1, 0xAC - lsls r1, 1 - add r1, r12 - movs r0, 0x6 - str r0, [r1] - movs r0, 0xAE - lsls r0, 1 - add r0, r12 - str r3, [r0] - movs r0, 0xB0 - lsls r0, 1 - add r0, r12 - str r2, [r0] - bx lr - .align 2, 0 -_0802CBF4: .4byte gUnknown_203B2F0 -_0802CBF8: .4byte gUnknown_80D4920 -_0802CBFC: .4byte gUnknown_80D4928 - thumb_func_end sub_802CBAC - - thumb_func_start sub_802CC00 -sub_802CC00: - push {lr} - movs r0, 0x1 - bl sub_802C598 - cmp r0, 0x4 - bhi _0802CC6A - lsls r0, 2 - ldr r1, _0802CC18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802CC18: .4byte _0802CC1C - .align 2, 0 -_0802CC1C: - .4byte _0802CC6A - .4byte _0802CC6A - .4byte _0802CC60 - .4byte _0802CC30 - .4byte _0802CC48 -_0802CC30: - bl sub_802C620 - ldr r1, _0802CC44 - ldr r1, [r1] - strb r0, [r1, 0xC] - movs r0, 0x2 - bl sub_802C910 - b _0802CC6A - .align 2, 0 -_0802CC44: .4byte gUnknown_203B2F0 -_0802CC48: - bl sub_802C620 - ldr r1, _0802CC5C - ldr r1, [r1] - strb r0, [r1, 0xC] - movs r0, 0x4 - bl sub_802C910 - b _0802CC6A - .align 2, 0 -_0802CC5C: .4byte gUnknown_203B2F0 -_0802CC60: - bl sub_802C688 - movs r0, 0x5 - bl sub_802C910 -_0802CC6A: - pop {r0} - bx r0 - thumb_func_end sub_802CC00 - - thumb_func_start sub_802CC70 -sub_802CC70: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802C598 - ldr r4, _0802CCB4 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802CCA0 - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802CCA0 - ldr r0, [r4] - str r1, [r0, 0x68] -_0802CCA0: - ldr r0, [sp] - subs r0, 0x1 - cmp r0, 0x6 - bhi _0802CD2E - lsls r0, 2 - ldr r1, _0802CCB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802CCB4: .4byte gUnknown_203B2F0 -_0802CCB8: .4byte _0802CCBC - .align 2, 0 -_0802CCBC: - .4byte _0802CD28 - .4byte _0802CCD8 - .4byte _0802CCF4 - .4byte _0802CD18 - .4byte _0802CD2E - .4byte _0802CD2E - .4byte _0802CD20 -_0802CCD8: - ldr r0, _0802CCEC - bl PlaySound - ldr r0, _0802CCF0 - ldr r0, [r0] - ldrb r0, [r0, 0xC] - bl GetJobSlotInfo - movs r1, 0x6 - b _0802CD06 - .align 2, 0 -_0802CCEC: .4byte 0x00000133 -_0802CCF0: .4byte gUnknown_203B2F0 -_0802CCF4: - ldr r0, _0802CD10 - bl PlaySound - ldr r0, _0802CD14 - ldr r0, [r0] - ldrb r0, [r0, 0xC] - bl GetJobSlotInfo - movs r1, 0x5 -_0802CD06: - strb r1, [r0] - movs r0, 0x1 - bl sub_802C910 - b _0802CD2E - .align 2, 0 -_0802CD10: .4byte 0x00000133 -_0802CD14: .4byte gUnknown_203B2F0 -_0802CD18: - movs r0, 0x3 - bl sub_802C910 - b _0802CD2E -_0802CD20: - movs r0, 0x4 - bl sub_802C910 - b _0802CD2E -_0802CD28: - movs r0, 0x1 - bl sub_802C910 -_0802CD2E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802CC70 - - thumb_func_start sub_802CD38 -sub_802CD38: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802C598 - ldr r4, _0802CD78 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - ldr r0, [r4] - adds r0, 0xBC - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802CD66 - ldr r0, [r4] - adds r0, 0xBC - mov r1, sp - bl sub_8013114 -_0802CD66: - ldr r0, [sp] - cmp r0, 0x5 - beq _0802CD88 - cmp r0, 0x5 - bgt _0802CD7C - cmp r0, 0x1 - beq _0802CD80 - b _0802CDB0 - .align 2, 0 -_0802CD78: .4byte gUnknown_203B2F0 -_0802CD7C: - cmp r0, 0x6 - bne _0802CDB0 -_0802CD80: - movs r0, 0x1 - bl sub_802C910 - b _0802CDB0 -_0802CD88: - ldr r0, [r4] - ldrb r0, [r0, 0xC] - bl sub_8096C3C - bl sub_8096C80 - bl HasNoAcceptedJobs - lsls r0, 24 - cmp r0, 0 - beq _0802CDAA - bl sub_802C688 - movs r0, 0x5 - bl sub_802C910 - b _0802CDB0 -_0802CDAA: - movs r0, 0x1 - bl sub_802C910 -_0802CDB0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802CD38 - - thumb_func_start sub_802CDB8 -sub_802CDB8: - push {lr} - bl sub_802DEE0 - cmp r0, 0x1 - bls _0802CDD0 - cmp r0, 0x3 - bhi _0802CDD0 - bl sub_802DF24 - movs r0, 0x1 - bl sub_802C910 -_0802CDD0: - pop {r0} - bx r0 - thumb_func_end sub_802CDB8 - - thumb_func_start sub_802CDD4 -sub_802CDD4: - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _0802CE54 - ldr r0, [r4] - cmp r0, 0 - bne _0802CDEA - movs r0, 0xA0 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] -_0802CDEA: - ldr r0, [r4] - str r5, [r0, 0x34] - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 3 - adds r1, 0x3C - adds r1, r0, r1 - str r1, [r0, 0x38] - adds r0, 0x3C - bl sub_8006518 - ldr r1, [r4] - ldr r2, [r1, 0x34] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, 0x3C - ldr r0, _0802CE58 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldr r1, [r4] - ldr r0, [r1, 0x38] - adds r1, 0x9C - str r1, [r0, 0x14] - movs r1, 0x4 - bl sub_8012D34 - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x3C - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - movs r1, 0x5 - movs r2, 0x4 - adds r3, r5, 0 - bl sub_8013848 - bl sub_802CF5C - bl sub_802CFD0 - movs r0, 0x1 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0802CE54: .4byte gUnknown_203B2F4 -_0802CE58: .4byte gUnknown_80DFDA4 - thumb_func_end sub_802CDD4 - - thumb_func_start sub_802CE5C -sub_802CE5C: - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - bne _0802CE74 - ldr r0, _0802CE70 - ldr r0, [r0] - bl sub_8013660 - movs r0, 0 - b _0802CEB4 - .align 2, 0 -_0802CE70: .4byte gUnknown_203B2F4 -_0802CE74: - ldr r4, _0802CE90 - ldr r0, [r4] - bl GetKeyPress - cmp r0, 0x1 - beq _0802CE94 - cmp r0, 0x2 - bne _0802CE98 - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _0802CEB4 - .align 2, 0 -_0802CE90: .4byte gUnknown_203B2F4 -_0802CE94: - movs r0, 0x3 - b _0802CEB4 -_0802CE98: - ldr r0, [r4] - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _0802CEAA - movs r0, 0 - b _0802CEB4 -_0802CEAA: - bl sub_802CF5C - bl sub_802CFD0 - movs r0, 0x1 -_0802CEB4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_802CE5C - - thumb_func_start sub_802CEBC -sub_802CEBC: - ldr r0, _0802CED4 - ldr r1, [r0] - movs r0, 0x1E - ldrsh r2, [r1, r0] - movs r3, 0x1C - ldrsh r0, [r1, r3] - muls r0, r2 - ldrb r1, [r1, 0x18] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_0802CED4: .4byte gUnknown_203B2F4 - thumb_func_end sub_802CEBC - - thumb_func_start sub_802CED8 -sub_802CED8: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ResetUnusedInputStruct - ldr r5, _0802CF10 - ldr r0, [r5] - adds r0, 0x3C - movs r1, 0 - movs r2, 0 - bl sub_800641C - ldr r0, [r5] - bl sub_8013984 - bl sub_802CF5C - bl sub_802CFD0 - cmp r4, 0 - beq _0802CF0A - ldr r0, [r5] - bl AddMenuCursorSprite -_0802CF0A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802CF10: .4byte gUnknown_203B2F4 - thumb_func_end sub_802CED8 - - thumb_func_start sub_802CF14 -sub_802CF14: - push {r4,r5,lr} - ldr r4, _0802CF54 - ldr r2, [r4] - cmp r2, 0 - beq _0802CF4E - ldr r0, [r2, 0x34] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x3C - ldr r0, _0802CF58 - 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, 0x3C - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r0, [r4] - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0802CF4E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802CF54: .4byte gUnknown_203B2F4 -_0802CF58: .4byte gUnknown_80DFD8C - thumb_func_end sub_802CF14 - - thumb_func_start sub_802CF5C -sub_802CF5C: - push {r4,lr} - ldr r4, _0802CFCC - ldr r0, [r4] - ldrh r1, [r0, 0x20] - adds r0, 0x9C - movs r2, 0 - strb r1, [r0] - ldr r0, [r4] - ldrh r1, [r0, 0x1E] - adds r0, 0x9D - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x9E - movs r1, 0xC - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x9F - strb r2, [r0] - ldr r0, [r4] - movs r1, 0x1A - ldrsh r0, [r0, r1] - movs r1, 0x18 - bl sub_8009614 - adds r0, 0x2 - lsls r0, 16 - ldr r2, [r4] - ldr r3, [r2, 0x34] - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r1, r2, r1 - adds r1, 0x4A - asrs r3, r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r1, [r2, 0x34] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r2, r0 - adds r3, 0x2 - adds r2, 0x4C - strh r3, [r2] - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0x3C - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802CFCC: .4byte gUnknown_203B2F4 - thumb_func_end sub_802CF5C - - thumb_func_start sub_802CFD0 -sub_802CFD0: - push {r4-r6,lr} - sub sp, 0x60 - ldr r6, _0802D02C - ldr r0, [r6] - ldr r0, [r0, 0x34] - bl sub_8008C54 - ldr r0, [r6] - ldr r0, [r0, 0x34] - bl sub_80073B8 - ldr r0, [r6] - movs r1, 0x1E - ldrsh r4, [r0, r1] - lsls r4, 3 - adds r5, r4, 0 - adds r5, 0xA - ldr r2, _0802D030 - ldr r3, [r0, 0x34] - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - bl xxx_call_draw_string - adds r4, 0x4 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x9E - ldrb r0, [r0] - lsls r0, 3 - adds r5, r4, r0 - movs r0, 0x1E - ldrsh r2, [r1, r0] - adds r2, 0x1 - movs r0, 0x7 - str r0, [sp] - ldr r0, [r1, 0x34] - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r3, 0x2 - bl sub_8012BC4 - movs r5, 0 - b _0802D076 - .align 2, 0 -_0802D02C: .4byte gUnknown_203B2F4 -_0802D030: .4byte gUnknown_80DFDBC -_0802D034: - ldr r0, [r6] - movs r2, 0x1E - ldrsh r1, [r0, r2] - movs r2, 0x1C - ldrsh r0, [r0, r2] - muls r0, r1 - adds r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl sub_803B344 - adds r4, r0, 0 - ldr r0, [r6] - ldr r1, [r0, 0x34] - str r1, [sp, 0x8] - adds r1, r5, 0 - bl sub_8013800 - str r0, [sp, 0x50] - adds r0, r4, 0 - add r1, sp, 0x8 - bl sub_803B35C - mov r1, sp - adds r1, 0x4B - movs r0, 0x1 - strb r0, [r1] - ldr r0, [r4, 0x14] - str r0, [sp, 0x54] - add r0, sp, 0x8 - bl sub_803B6D4 - adds r5, 0x1 -_0802D076: - ldr r0, [r6] - movs r1, 0x1A - ldrsh r0, [r0, r1] - cmp r5, r0 - blt _0802D034 - ldr r0, _0802D094 - ldr r0, [r0] - ldr r0, [r0, 0x34] - bl sub_80073E0 - add sp, 0x60 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802D094: .4byte gUnknown_203B2F4 - thumb_func_end sub_802CFD0 - .align 2,0 diff --git a/asm/wonder_mail_802C860.s b/asm/wonder_mail_802C860.s new file mode 100644 index 000000000..33144d736 --- /dev/null +++ b/asm/wonder_mail_802C860.s @@ -0,0 +1,759 @@ + #include "asm/constants/gba_constants.inc" + #include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_802CAA4 +sub_802CAA4: + push {r4-r7,lr} + movs r7, 0 + ldr r5, _0802CAC8 + ldr r0, [r5] + ldrb r0, [r0, 0xC] + bl GetJobSlotInfo + adds r4, r0, 0 + ldr r2, [r5] + ldr r0, [r2] + cmp r0, 0 + bne _0802CB26 + ldrb r0, [r4] + cmp r0, 0x5 + beq _0802CACC + cmp r0, 0x6 + beq _0802CB10 + b _0802CB26 + .align 2, 0 +_0802CAC8: .4byte gUnknown_203B2F0 +_0802CACC: + movs r0, 0x86 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, _0802CAFC + str r0, [r1] + adds r0, r4, 0 + bl sub_809693C + lsls r0, 24 + cmp r0, 0 + bne _0802CAEE + ldrb r0, [r4, 0x4] + bl sub_80A2824 + lsls r0, 24 + cmp r0, 0 + bne _0802CB00 +_0802CAEE: + ldr r0, [r5] + movs r1, 0x88 + lsls r1, 1 + adds r0, r1 + movs r1, 0x1 + negs r1, r1 + b _0802CB0A + .align 2, 0 +_0802CAFC: .4byte gUnknown_80DFD70 +_0802CB00: + ldr r0, [r5] + movs r1, 0x88 + lsls r1, 1 + adds r0, r1 + movs r1, 0x2 +_0802CB0A: + str r1, [r0] + adds r7, 0x1 + b _0802CB26 +_0802CB10: + movs r0, 0x86 + lsls r0, 1 + adds r1, r2, r0 + ldr r0, _0802CB9C + str r0, [r1] + movs r0, 0x88 + lsls r0, 1 + adds r1, r2, r0 + movs r0, 0x3 + str r0, [r1] + movs r7, 0x1 +_0802CB26: + ldr r4, _0802CBA0 + ldr r6, [r4] + lsls r1, r7, 3 + movs r0, 0x86 + lsls r0, 1 + adds r3, r6, r0 + adds r2, r3, r1 + ldr r0, _0802CBA4 + ldr r0, [r0] + str r0, [r2] + movs r0, 0x88 + lsls r0, 1 + adds r5, r6, r0 + adds r1, r5, r1 + movs r0, 0x4 + str r0, [r1] + adds r7, 0x1 + lsls r1, r7, 3 + adds r2, r3, r1 + ldr r0, _0802CBA8 + ldr r0, [r0] + str r0, [r2] + adds r1, r5, r1 + movs r0, 0x7 + str r0, [r1] + adds r7, 0x1 + lsls r1, r7, 3 + adds r3, r1 + movs r0, 0 + str r0, [r3] + adds r1, r5, r1 + movs r0, 0x1 + str r0, [r1] + movs r3, 0 + mov r12, r4 + cmp r3, r7 + bge _0802CB8C + adds r4, r6, 0 + adds r1, r5, 0 + movs r5, 0x1 + negs r5, r5 +_0802CB78: + ldr r2, [r1] + cmp r2, r5 + beq _0802CB84 + ldr r0, [r4, 0x68] + cmp r2, r0 + beq _0802CB94 +_0802CB84: + adds r1, 0x8 + adds r3, 0x1 + cmp r3, r7 + blt _0802CB78 +_0802CB8C: + mov r0, r12 + ldr r1, [r0] + movs r0, 0x7 + str r0, [r1, 0x68] +_0802CB94: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802CB9C: .4byte gUnknown_80DFD7C +_0802CBA0: .4byte gUnknown_203B2F0 +_0802CBA4: .4byte gUnknown_80D494C +_0802CBA8: .4byte gUnknown_80D4970 + thumb_func_end sub_802CAA4 + + thumb_func_start sub_802CBAC +sub_802CBAC: + ldr r0, _0802CBF4 + ldr r0, [r0] + mov r12, r0 + movs r3, 0 + movs r1, 0xA6 + lsls r1, 1 + add r1, r12 + ldr r0, _0802CBF8 + ldr r0, [r0] + str r0, [r1] + movs r1, 0xA8 + lsls r1, 1 + add r1, r12 + movs r0, 0x5 + str r0, [r1] + movs r2, 0x1 + movs r1, 0xAA + lsls r1, 1 + add r1, r12 + ldr r0, _0802CBFC + ldr r0, [r0] + str r0, [r1] + movs r1, 0xAC + lsls r1, 1 + add r1, r12 + movs r0, 0x6 + str r0, [r1] + movs r0, 0xAE + lsls r0, 1 + add r0, r12 + str r3, [r0] + movs r0, 0xB0 + lsls r0, 1 + add r0, r12 + str r2, [r0] + bx lr + .align 2, 0 +_0802CBF4: .4byte gUnknown_203B2F0 +_0802CBF8: .4byte gUnknown_80D4920 +_0802CBFC: .4byte gUnknown_80D4928 + thumb_func_end sub_802CBAC + + thumb_func_start sub_802CC00 +sub_802CC00: + push {lr} + movs r0, 0x1 + bl sub_802C598 + cmp r0, 0x4 + bhi _0802CC6A + lsls r0, 2 + ldr r1, _0802CC18 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802CC18: .4byte _0802CC1C + .align 2, 0 +_0802CC1C: + .4byte _0802CC6A + .4byte _0802CC6A + .4byte _0802CC60 + .4byte _0802CC30 + .4byte _0802CC48 +_0802CC30: + bl sub_802C620 + ldr r1, _0802CC44 + ldr r1, [r1] + strb r0, [r1, 0xC] + movs r0, 0x2 + bl sub_802C910 + b _0802CC6A + .align 2, 0 +_0802CC44: .4byte gUnknown_203B2F0 +_0802CC48: + bl sub_802C620 + ldr r1, _0802CC5C + ldr r1, [r1] + strb r0, [r1, 0xC] + movs r0, 0x4 + bl sub_802C910 + b _0802CC6A + .align 2, 0 +_0802CC5C: .4byte gUnknown_203B2F0 +_0802CC60: + bl sub_802C688 + movs r0, 0x5 + bl sub_802C910 +_0802CC6A: + pop {r0} + bx r0 + thumb_func_end sub_802CC00 + + thumb_func_start sub_802CC70 +sub_802CC70: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl sub_802C598 + ldr r4, _0802CCB4 + ldr r0, [r4] + adds r0, 0x6C + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802CCA0 + ldr r0, [r4] + adds r0, 0x6C + mov r1, sp + bl sub_8013114 + ldr r1, [sp] + cmp r1, 0x1 + beq _0802CCA0 + ldr r0, [r4] + str r1, [r0, 0x68] +_0802CCA0: + ldr r0, [sp] + subs r0, 0x1 + cmp r0, 0x6 + bhi _0802CD2E + lsls r0, 2 + ldr r1, _0802CCB8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802CCB4: .4byte gUnknown_203B2F0 +_0802CCB8: .4byte _0802CCBC + .align 2, 0 +_0802CCBC: + .4byte _0802CD28 + .4byte _0802CCD8 + .4byte _0802CCF4 + .4byte _0802CD18 + .4byte _0802CD2E + .4byte _0802CD2E + .4byte _0802CD20 +_0802CCD8: + ldr r0, _0802CCEC + bl PlaySound + ldr r0, _0802CCF0 + ldr r0, [r0] + ldrb r0, [r0, 0xC] + bl GetJobSlotInfo + movs r1, 0x6 + b _0802CD06 + .align 2, 0 +_0802CCEC: .4byte 0x00000133 +_0802CCF0: .4byte gUnknown_203B2F0 +_0802CCF4: + ldr r0, _0802CD10 + bl PlaySound + ldr r0, _0802CD14 + ldr r0, [r0] + ldrb r0, [r0, 0xC] + bl GetJobSlotInfo + movs r1, 0x5 +_0802CD06: + strb r1, [r0] + movs r0, 0x1 + bl sub_802C910 + b _0802CD2E + .align 2, 0 +_0802CD10: .4byte 0x00000133 +_0802CD14: .4byte gUnknown_203B2F0 +_0802CD18: + movs r0, 0x3 + bl sub_802C910 + b _0802CD2E +_0802CD20: + movs r0, 0x4 + bl sub_802C910 + b _0802CD2E +_0802CD28: + movs r0, 0x1 + bl sub_802C910 +_0802CD2E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802CC70 + + thumb_func_start sub_802CD38 +sub_802CD38: + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl sub_802C598 + ldr r4, _0802CD78 + ldr r0, [r4] + adds r0, 0x6C + bl sub_8012FD8 + ldr r0, [r4] + adds r0, 0xBC + bl sub_8012FD8 + lsls r0, 24 + cmp r0, 0 + bne _0802CD66 + ldr r0, [r4] + adds r0, 0xBC + mov r1, sp + bl sub_8013114 +_0802CD66: + ldr r0, [sp] + cmp r0, 0x5 + beq _0802CD88 + cmp r0, 0x5 + bgt _0802CD7C + cmp r0, 0x1 + beq _0802CD80 + b _0802CDB0 + .align 2, 0 +_0802CD78: .4byte gUnknown_203B2F0 +_0802CD7C: + cmp r0, 0x6 + bne _0802CDB0 +_0802CD80: + movs r0, 0x1 + bl sub_802C910 + b _0802CDB0 +_0802CD88: + ldr r0, [r4] + ldrb r0, [r0, 0xC] + bl sub_8096C3C + bl sub_8096C80 + bl HasNoAcceptedJobs + lsls r0, 24 + cmp r0, 0 + beq _0802CDAA + bl sub_802C688 + movs r0, 0x5 + bl sub_802C910 + b _0802CDB0 +_0802CDAA: + movs r0, 0x1 + bl sub_802C910 +_0802CDB0: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_802CD38 + + thumb_func_start sub_802CDB8 +sub_802CDB8: + push {lr} + bl sub_802DEE0 + cmp r0, 0x1 + bls _0802CDD0 + cmp r0, 0x3 + bhi _0802CDD0 + bl sub_802DF24 + movs r0, 0x1 + bl sub_802C910 +_0802CDD0: + pop {r0} + bx r0 + thumb_func_end sub_802CDB8 + + thumb_func_start sub_802CDD4 +sub_802CDD4: + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _0802CE54 + ldr r0, [r4] + cmp r0, 0 + bne _0802CDEA + movs r0, 0xA0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] +_0802CDEA: + ldr r0, [r4] + str r5, [r0, 0x34] + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 3 + adds r1, 0x3C + adds r1, r0, r1 + str r1, [r0, 0x38] + adds r0, 0x3C + bl sub_8006518 + ldr r1, [r4] + ldr r2, [r1, 0x34] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x3C + ldr r0, _0802CE58 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldr r1, [r4] + ldr r0, [r1, 0x38] + adds r1, 0x9C + str r1, [r0, 0x14] + movs r1, 0x4 + bl sub_8012D34 + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + movs r1, 0x5 + movs r2, 0x4 + adds r3, r5, 0 + bl sub_8013848 + bl sub_802CF5C + bl sub_802CFD0 + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0802CE54: .4byte gUnknown_203B2F4 +_0802CE58: .4byte gUnknown_80DFDA4 + thumb_func_end sub_802CDD4 + + thumb_func_start sub_802CE5C +sub_802CE5C: + push {r4,lr} + lsls r0, 24 + cmp r0, 0 + bne _0802CE74 + ldr r0, _0802CE70 + ldr r0, [r0] + bl sub_8013660 + movs r0, 0 + b _0802CEB4 + .align 2, 0 +_0802CE70: .4byte gUnknown_203B2F4 +_0802CE74: + ldr r4, _0802CE90 + ldr r0, [r4] + bl GetKeyPress + cmp r0, 0x1 + beq _0802CE94 + cmp r0, 0x2 + bne _0802CE98 + movs r0, 0x1 + bl PlayMenuSoundEffect + movs r0, 0x2 + b _0802CEB4 + .align 2, 0 +_0802CE90: .4byte gUnknown_203B2F4 +_0802CE94: + movs r0, 0x3 + b _0802CEB4 +_0802CE98: + ldr r0, [r4] + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + bne _0802CEAA + movs r0, 0 + b _0802CEB4 +_0802CEAA: + bl sub_802CF5C + bl sub_802CFD0 + movs r0, 0x1 +_0802CEB4: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_802CE5C + + thumb_func_start sub_802CEBC +sub_802CEBC: + ldr r0, _0802CED4 + ldr r1, [r0] + movs r0, 0x1E + ldrsh r2, [r1, r0] + movs r3, 0x1C + ldrsh r0, [r1, r3] + muls r0, r2 + ldrb r1, [r1, 0x18] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + bx lr + .align 2, 0 +_0802CED4: .4byte gUnknown_203B2F4 + thumb_func_end sub_802CEBC + + thumb_func_start sub_802CED8 +sub_802CED8: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ResetUnusedInputStruct + ldr r5, _0802CF10 + ldr r0, [r5] + adds r0, 0x3C + movs r1, 0 + movs r2, 0 + bl sub_800641C + ldr r0, [r5] + bl sub_8013984 + bl sub_802CF5C + bl sub_802CFD0 + cmp r4, 0 + beq _0802CF0A + ldr r0, [r5] + bl AddMenuCursorSprite +_0802CF0A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802CF10: .4byte gUnknown_203B2F4 + thumb_func_end sub_802CED8 + + thumb_func_start sub_802CF14 +sub_802CF14: + push {r4,r5,lr} + ldr r4, _0802CF54 + ldr r2, [r4] + cmp r2, 0 + beq _0802CF4E + ldr r0, [r2, 0x34] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x3C + ldr r0, _0802CF58 + 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, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0802CF4E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802CF54: .4byte gUnknown_203B2F4 +_0802CF58: .4byte gUnknown_80DFD8C + thumb_func_end sub_802CF14 + + thumb_func_start sub_802CF5C +sub_802CF5C: + push {r4,lr} + ldr r4, _0802CFCC + ldr r0, [r4] + ldrh r1, [r0, 0x20] + adds r0, 0x9C + movs r2, 0 + strb r1, [r0] + ldr r0, [r4] + ldrh r1, [r0, 0x1E] + adds r0, 0x9D + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x9E + movs r1, 0xC + strb r1, [r0] + ldr r0, [r4] + adds r0, 0x9F + strb r2, [r0] + ldr r0, [r4] + movs r1, 0x1A + ldrsh r0, [r0, r1] + movs r1, 0x18 + bl sub_8009614 + adds r0, 0x2 + lsls r0, 16 + ldr r2, [r4] + ldr r3, [r2, 0x34] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x4A + asrs r3, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r2, 0x34] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r3, 0x2 + adds r2, 0x4C + strh r3, [r2] + bl ResetUnusedInputStruct + ldr r0, [r4] + adds r0, 0x3C + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802CFCC: .4byte gUnknown_203B2F4 + thumb_func_end sub_802CF5C + + thumb_func_start sub_802CFD0 +sub_802CFD0: + push {r4-r6,lr} + sub sp, 0x60 + ldr r6, _0802D02C + ldr r0, [r6] + ldr r0, [r0, 0x34] + bl sub_8008C54 + ldr r0, [r6] + ldr r0, [r0, 0x34] + bl sub_80073B8 + ldr r0, [r6] + movs r1, 0x1E + ldrsh r4, [r0, r1] + lsls r4, 3 + adds r5, r4, 0 + adds r5, 0xA + ldr r2, _0802D030 + ldr r3, [r0, 0x34] + movs r0, 0 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + bl xxx_call_draw_string + adds r4, 0x4 + ldr r1, [r6] + adds r0, r1, 0 + adds r0, 0x9E + ldrb r0, [r0] + lsls r0, 3 + adds r5, r4, r0 + movs r0, 0x1E + ldrsh r2, [r1, r0] + adds r2, 0x1 + movs r0, 0x7 + str r0, [sp] + ldr r0, [r1, 0x34] + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + movs r3, 0x2 + bl sub_8012BC4 + movs r5, 0 + b _0802D076 + .align 2, 0 +_0802D02C: .4byte gUnknown_203B2F4 +_0802D030: .4byte gUnknown_80DFDBC +_0802D034: + ldr r0, [r6] + movs r2, 0x1E + ldrsh r1, [r0, r2] + movs r2, 0x1C + ldrsh r0, [r0, r2] + muls r0, r1 + adds r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl sub_803B344 + adds r4, r0, 0 + ldr r0, [r6] + ldr r1, [r0, 0x34] + str r1, [sp, 0x8] + adds r1, r5, 0 + bl sub_8013800 + str r0, [sp, 0x50] + adds r0, r4, 0 + add r1, sp, 0x8 + bl sub_803B35C + mov r1, sp + adds r1, 0x4B + movs r0, 0x1 + strb r0, [r1] + ldr r0, [r4, 0x14] + str r0, [sp, 0x54] + add r0, sp, 0x8 + bl sub_803B6D4 + adds r5, 0x1 +_0802D076: + ldr r0, [r6] + movs r1, 0x1A + ldrsh r0, [r0, r1] + cmp r5, r0 + blt _0802D034 + ldr r0, _0802D094 + ldr r0, [r0] + ldr r0, [r0, 0x34] + bl sub_80073E0 + add sp, 0x60 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802D094: .4byte gUnknown_203B2F4 + thumb_func_end sub_802CFD0 + + .align 2,0 diff --git a/charmap.txt b/charmap.txt index 6bbd898a2..3b624cfd7 100644 --- a/charmap.txt +++ b/charmap.txt @@ -271,6 +271,7 @@ ARG_POKEMON_7 = 24 6D 37 @ $m7 ARG_POKEMON_8 = 24 6D 38 @ $m8 ARG_MOVE_ITEM_0 = 24 69 30 @ $i0 ARG_MOVE_ITEM_1 = 24 69 31 @ $i1 +ARG_FRIEND_AREA = 24 68 @ $h @ TEXT MACROS @ diff --git a/data/data_80D47B8.s b/data/data_80D47B8.s index b862a8a61..a94d41d02 100644 --- a/data/data_80D47B8.s +++ b/data/data_80D47B8.s @@ -1676,7 +1676,7 @@ gUnknown_80D7A44: .global gUnknown_80D7C94 gUnknown_80D7C94: .string " Sssnore...\n" - .string "{COLOR_1 GREEN}$h{END_COLOR_TEXT_1}...?\n" + .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...?\n" .string "I can{APOSTROPHE}t get that Friend Area...{EXTRA_MSG}" .string " Zzz... Zzz...\n" .string "Sorry...\0" @@ -1685,7 +1685,7 @@ gUnknown_80D7C94: .global gUnknown_80D7CE8 gUnknown_80D7CE8: .string " Zzz... Hunh...?\n" - .string "{COLOR_1 GREEN}$h{END_COLOR_TEXT_1}...?\n" + .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...?\n" .string "I don{APOSTROPHE}t know... I{APOSTROPHE}ll check...{EXTRA_MSG}" .string " Sssnore...\n" .string "I{APOSTROPHE}ll have it for sale...\n" @@ -1696,14 +1696,14 @@ gUnknown_80D7CE8: gUnknown_80D7D64: .string " Sssnore...\n" .string "You can already go...\n" - .string "Friend Area {COLOR_1 GREEN}$h{END_COLOR_TEXT_1}...\0" + .string "Friend Area {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...\0" .align 2, 0 .global gUnknown_80D7DA0 gUnknown_80D7DA0: .string " Dwee... Kwoo...\n" .string "{COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s Friend Area...\n" - .string "Zzz... {COLOR_1 GREEN}$h{END_COLOR_TEXT_1}...\0" + .string "Zzz... {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...\0" .align 2, 0 .global gUnknown_80D7DE0 @@ -1748,10 +1748,10 @@ gUnknown_80D7ED0: .global gUnknown_80D7F10 gUnknown_80D7F10: .string " Grats... Zzz...{WAIT_PRESS}\n" - .string "You can go to {COLOR_1 GREEN}$h{END_COLOR_TEXT_1}...{EXTRA_MSG}" + .string "You can go to {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...{EXTRA_MSG}" .string " Dwee... Sssnore...\n" .string "Make friends with Pokémon in...\n" - .string "{COLOR_1 GREEN}$h{END_COLOR_TEXT_1}...\0" + .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}...\0" .align 2, 0 .global gUnknown_80D7F7C @@ -1767,7 +1767,7 @@ gUnknown_80D7F7C: .global gUnknown_80D8000 gUnknown_80D8000: - .string " Kwoo? {COLOR_1 GREEN}$h{END_COLOR_TEXT_1}?\n" + .string " Kwoo? {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" .string "That{APOSTROPHE}s {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}...\n" .string "OK?\0" .align 2, 0 @@ -1836,14 +1836,14 @@ gUnknown_80D8104: .global gUnknown_80D8420 gUnknown_80D8420: - .string " {COLOR_1 GREEN}$h{END_COLOR_TEXT_1}?\n" + .string " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" .string "I can{APOSTROPHE}t get that Friend Area for you.{WAIT_PRESS}\n" .string "I{APOSTROPHE}m really sorry.\0" .align 2, 0 .global gUnknown_80D8468 gUnknown_80D8468: - .string " {COLOR_1 GREEN}$h{END_COLOR_TEXT_1}?\n" + .string " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" .string "I don{APOSTROPHE}t know much about it at all.{WAIT_PRESS}\n" .string "I{APOSTROPHE}ll check up on it.{EXTRA_MSG}" .string " I{APOSTROPHE}ll add it to the Friend\n" @@ -1853,13 +1853,13 @@ gUnknown_80D8468: .global gUnknown_80D84F8 gUnknown_80D84F8: .string " You can already go to the\n" - .string "Friend Area {COLOR_1 GREEN}$h{END_COLOR_TEXT_1}.\0" + .string "Friend Area {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" .align 2, 0 .global gUnknown_80D8528 gUnknown_80D8528: .string " {COLOR_1 CYAN}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s Friend Area\n" - .string "is {COLOR_1 GREEN}$h{END_COLOR_TEXT_1}.\0" + .string "is {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" .align 2, 0 .global gUnknown_80D8550 @@ -1903,10 +1903,10 @@ gUnknown_80D8644: .global gUnknown_80D8674 gUnknown_80D8674: .string " Congratulations!{WAIT_PRESS}\n" - .string "You can go to {COLOR_1 GREEN}$h{END_COLOR_TEXT_1} now!{EXTRA_MSG}" + .string "You can go to {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1} now!{EXTRA_MSG}" .string " You can recruit\n" .string "Pokémon that live in the Friend Area\n" - .string "{COLOR_1 GREEN}$h{END_COLOR_TEXT_1}.\0" + .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" .align 2, 0 .global gUnknown_80D86E4 @@ -1918,7 +1918,7 @@ gUnknown_80D86E4: .global gUnknown_80D8738 gUnknown_80D8738: - .string " {COLOR_1 GREEN}$h{END_COLOR_TEXT_1}?\n" + .string " {COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}?\n" .string "That will be {COLOR_1 CYAN}$d0{END_COLOR_TEXT_1} {POKE}.\n" .string "Is that OK?\0" .align 2, 0 diff --git a/data/data_80DED44.s b/data/data_80DED44.s index 2f6040a9d..bdc7012eb 100644 --- a/data/data_80DED44.s +++ b/data/data_80DED44.s @@ -1,141 +1,5 @@ .section .rodata - .global gUnknown_80DFCE4 -gUnknown_80DFCE4: @ 80DFCE4 - .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_80DFCFC -gUnknown_80DFCFC: @ 80DFCFC - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x18, 0x00, 0x0e, 0x00 - .byte 0x0e, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DFD14 -gUnknown_80DFD14: @ 80DFD14 - .string "Job List\0" - .align 2,0 - .string "pksdir0\0" - - .global gUnknown_80DFD28 -gUnknown_80DFD28: @ 80DFD28 - .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_80DFD40 -gUnknown_80DFD40: @ 80DFD40 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x06, 0x00 - .byte 0x07, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DFD58 -gUnknown_80DFD58: @ 80DFD58 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x0f, 0x00 - .byte 0x06, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DFD70 -gUnknown_80DFD70: @ 80DFD70 - .string "Take Job\0" - .align 2,0 - - .global gUnknown_80DFD7C -gUnknown_80DFD7C: @ 80DFD7C - .string "Suspend\0" - .string "pksdir0\0" - - .global gUnknown_80DFD8C -gUnknown_80DFD8C: @ 80DFD8C - .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_80DFDA4 -gUnknown_80DFDA4: @ 80DFDA4 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00 - .byte 0x18, 0x00, 0x0e, 0x00 - .byte 0x0e, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DFDBC -gUnknown_80DFDBC: @ 80DFDBC - .string "RESCUE EVENT\0" - .align 2,0 - .string "pksdir0\0" - - .global gUnknown_80DFDD4 -gUnknown_80DFDD4: @ 80DFDD4 - .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 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x03, 0x00 - .byte 0x07, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DFE04 -gUnknown_80DFE04: @ 80DFE04 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x06, 0x00 - .byte 0x07, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_80DFE1C -gUnknown_80DFE1C: @ 80DFE1C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x0f, 0x00 - .byte 0x07, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x0f, 0x00 - .byte 0x06, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - #include "text/wonder_mail_3.inc" - - .global gUnknown_80E016C -gUnknown_80E016C: @ 80E016C - .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 - - #include "text/wonder_mail_complete.inc" .global gUnknown_80E0248 gUnknown_80E0248: @ 80E0248 @@ -145,6 +9,9 @@ gUnknown_80E0248: @ 80E0248 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 + + .global UnkData_80E0260 + UnkData_80E0260: .byte 0x01, 0x00, 0x12, 0x00 .global gUnknown_80E0264 @@ -154,9 +21,9 @@ gUnknown_80E0264: @ 80E0264 .byte 0x02, 0x00, 0x02, 0x00 .byte 0x1a, 0x00, 0x10, 0x00 .byte 0x10, 0x00, 0x00, 0x00 - .byte 0x60, 0x02, 0x0e, 0x08 - .byte 0x70, 0x6b, 0x73, 0x64 - .byte 0x69, 0x72, 0x30, 0x00 + .4byte UnkData_80E0260 + + .string "pksdir0\0" .global gUnknown_80E0284 gUnknown_80E0284: @ 80E0284 @@ -351,32 +218,32 @@ gUnknown_80E0484: @ 80E0484 gUnknown_80E04B4: @ 80E04B4 .string " As your reward{COMMA} you can\n" .string "now go to the Friend Area\n" - .string "{COLOR_1 GREEN}$h{END_COLOR_TEXT_1}!\0" + .string "{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}!\0" .align 2,0 .global gUnknown_80E04F4 gUnknown_80E04F4: @ 80E04F4 - .string "#+...Oh~2c wait~2c sorry.#P" - .string "#+You already have the \n" - .string "#+#C4$h Friend Area#R.#P" - .string "#+I~27m sorry that my reward is\n" - .string "#+something you already have.#P" - .string "#+In its place~2c #CN$m0#R~2c\n" - .string "#+you can have #CG1~2c000#R {POKE}.\0" - .align 2, 0 + .string "{CENTER_ALIGN}...Oh{COMMA} wait{COMMA} sorry.{EXTRA_MSG}" + .string "{CENTER_ALIGN}You already have the \n" + .string "{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA} Friend Area{END_COLOR_TEXT_1}.{EXTRA_MSG}" + .string "{CENTER_ALIGN}I{APOSTROPHE}m sorry that my reward is\n" + .string "{CENTER_ALIGN}something you already have.{EXTRA_MSG}" + .string "{CENTER_ALIGN}In its place{COMMA} {COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{COMMA}\n" + .string "{CENTER_ALIGN}you can have {COLOR_1 LIGHT_BLUE_2}1{COMMA}000{END_COLOR_TEXT_1} {POKE}.\0" + .align 2, 0 .global gUnknown_80E05C0 gUnknown_80E05C0: @ 80E05C0 .string "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1} gained access\n" .string "{CENTER_ALIGN}to the Friend Area\n" - .string "{CENTER_ALIGN}{COLOR_1 GREEN}$h{END_COLOR_TEXT_1}.\0" + .string "{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" .align 2,0 .global gUnknown_80E05FC gUnknown_80E05FC: @ 80E05FC .string "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s team gained access\n" .string "{CENTER_ALIGN}to the Friend Area\n" - .string "{CENTER_ALIGN}{COLOR_1 GREEN}$h{END_COLOR_TEXT_1}.\0" + .string "{CENTER_ALIGN}{COLOR_1 GREEN}{ARG_FRIEND_AREA}{END_COLOR_TEXT_1}.\0" .align 2,0 .global gUnknown_80E0640 diff --git a/data/data_80F59C8.s b/data/data_80F59C8.s index 93158f6c0..0e04a6f1f 100644 --- a/data/data_80F59C8.s +++ b/data/data_80F59C8.s @@ -4650,8 +4650,8 @@ gPtrProtectSavedItMessage: @ 810075C @ Start of Boss Fight Dialogues? - .global gUnknown_8100768 -gUnknown_8100768: @ 8100768 + .global gSkarmoryPreFightDialogue_1 +gSkarmoryPreFightDialogue_1: @ 8100768 .byte 0x00, 0x00, 0x0C, 0x02, 0xAA, 0x01, 0x00, 0x00 .4byte gUnknown_8100774 @@ -4661,8 +4661,8 @@ gUnknown_8100774: @ 8100774 .string "{ARG_POKEMON_2}{APOSTROPHE}s over there!\0" .align 2, 0 - .global gUnknown_8100798 -gUnknown_8100798: @ 8100798 + .global gSkarmoryPreFightDialogue_2 +gSkarmoryPreFightDialogue_2: @ 8100798 .byte 0x00, 0x00, 0x04, 0x02, 0xAA, 0x01, 0x07, 0x00 .4byte gUnknown_81007E8 .byte 0x00, 0x00, 0x04, 0x02, 0xAA, 0x01, 0x00, 0x00 @@ -4680,8 +4680,8 @@ gUnknown_81007E8: @ 81007E8 .string "We{APOSTROPHE}re here to rescue you!\0" .align 2, 0 - .global gUnknown_8100820 -gUnknown_8100820: @ 8100820 + .global gSkarmoryPreFightDialogue_3 +gSkarmoryPreFightDialogue_3: @ 8100820 .byte 0x00, 0x00, 0x01, 0x0D, 0x32, 0x00, 0x00, 0x00 .4byte gUnknown_810082C @@ -4691,16 +4691,16 @@ gUnknown_810082C: @ 810082C .string "I{APOSTROPHE}m scared.\0" .align 2, 0 - .global gUnknown_8100844 -gUnknown_8100844: @ 8100844 + .global gSkarmoryPreFightDialogue_4 +gSkarmoryPreFightDialogue_4: @ 8100844 .incbin "baserom.gba", 0x100844, 0x3C - .global gUnknown_8100880 -gUnknown_8100880: @ 8100880 + .global gSkarmoryPreFightDialogue_5 +gSkarmoryPreFightDialogue_5: @ 8100880 .incbin "baserom.gba", 0x100880, 0xA8 - .global gUnknown_8100928 -gUnknown_8100928: @ 8100928 + .global gSkarmoryPreFightDialogue_6 +gSkarmoryPreFightDialogue_6: @ 8100928 .byte 0x00, 0x00, 0x00, 0x0D, 0xFC, 0x00, 0x00, 0x00 .4byte gUnknown_8100934 @@ -4716,22 +4716,22 @@ gUnknown_8100934: @ 8100934 .string "underground!\0" .align 2, 0 - .global gUnknown_8100A04 -gUnknown_8100A04: @ 8100A04 + .global gSkarmoryPreFightDialogue_7 +gSkarmoryPreFightDialogue_7: @ 8100A04 .incbin "baserom.gba", 0x100A04, 0x17C - .global gUnknown_8100B80 -gUnknown_8100B80: @ 8100B80 + .global gSkarmoryPreFightDialogue_8 +gSkarmoryPreFightDialogue_8: @ 8100B80 .incbin "baserom.gba", 0x100B80, 0x40 - .global gUnknown_8100BC0 -gUnknown_8100BC0: @ 8100BC0 + .global gSkarmoryPreFightDialogue_9 +gSkarmoryPreFightDialogue_9: @ 8100BC0 .incbin "baserom.gba", 0x100BC0, 0xD0 @ Skarmory Re-Fight? - .global gUnknown_8100C90 -gUnknown_8100C90: @ 8100C90 + .global gSkarmoryReFightDialogue_1 +gSkarmoryReFightDialogue_1: @ 8100C90 .byte 0x00, 0x00, 0x00, 0x0D .byte 0xFC, 0x00, 0x00, 0x00 .4byte _08100C9C @@ -4742,64 +4742,64 @@ gUnknown_8100C90: @ 8100C90 .asciz "Persistent pests!\0" .align 2,0 - .global gUnknown_8100CBC -gUnknown_8100CBC: @ 8100CBC + .global gSkarmoryReFightDialogue_2 +gSkarmoryReFightDialogue_2: @ 8100CBC .incbin "baserom.gba", 0x100CBC, 0x20 - .global gUnknown_8100CDC -gUnknown_8100CDC: @ 8100CDC + .global gSkarmoryReFightDialogue_3 +gSkarmoryReFightDialogue_3: @ 8100CDC .incbin "baserom.gba", 0x100CDC, 0x60 .global gUnknown_8100D3C gUnknown_8100D3C: @ 8100D3C .incbin "baserom.gba", 0x100D3C, 0x74 - .global gUnknown_8100DB0 -gUnknown_8100DB0: @ 8100DB0 + .global gTeamMeaniesPreFightDialogue_1 +gTeamMeaniesPreFightDialogue_1: @ 8100DB0 .incbin "baserom.gba", 0x100DB0, 0xB4 - .global gUnknown_8100E64 -gUnknown_8100E64: @ 8100E64 + .global gTeamMeaniesPreFightDialogue_2 +gTeamMeaniesPreFightDialogue_2: @ 8100E64 .incbin "baserom.gba", 0x100E64, 0x24 - .global gUnknown_8100E88 -gUnknown_8100E88: @ 8100E88 + .global gTeamMeaniesPreFightDialogue_3 +gTeamMeaniesPreFightDialogue_3: @ 8100E88 .incbin "baserom.gba", 0x100E88, 0x8C - .global gUnknown_8100F14 -gUnknown_8100F14: @ 8100F14 + .global gTeamMeaniesPreFightDialogue_4 +gTeamMeaniesPreFightDialogue_4: @ 8100F14 .incbin "baserom.gba", 0x100F14, 0xF0 - .global gUnknown_8101004 -gUnknown_8101004: @ 8101004 + .global gTeamMeaniesPreFightDialogue_5 +gTeamMeaniesPreFightDialogue_5: @ 8101004 .incbin "baserom.gba", 0x101004, 0x4C - .global gUnknown_8101050 -gUnknown_8101050: @ 8101050 + .global gTeamMeaniesPreFightDialogue_6 +gTeamMeaniesPreFightDialogue_6: @ 8101050 .incbin "baserom.gba", 0x101050, 0x80 - .global gUnknown_81010D0 -gUnknown_81010D0: @ 81010D0 + .global gTeamMeaniesPreFightDialogue_7 +gTeamMeaniesPreFightDialogue_7: @ 81010D0 .incbin "baserom.gba", 0x1010D0, 0x94 - .global gUnknown_8101164 -gUnknown_8101164: @ 8101164 + .global gTeamMeaniesReFightDialogue_1 +gTeamMeaniesReFightDialogue_1: @ 8101164 .incbin "baserom.gba", 0x101164, 0xDC - .global gUnknown_8101240 -gUnknown_8101240: @ 8101240 + .global gTeamMeaniesReFightDialogue_2 +gTeamMeaniesReFightDialogue_2: @ 8101240 .incbin "baserom.gba", 0x101240, 0xD0 - .global gUnknown_8101310 -gUnknown_8101310: @ 8101310 + .global gTeamMeaniesReFightDialogue_3 +gTeamMeaniesReFightDialogue_3: @ 8101310 .incbin "baserom.gba", 0x101310, 0x6C - .global gUnknown_810137C -gUnknown_810137C: @ 810137C + .global gTeamMeaniesReFightDialogue_4 +gTeamMeaniesReFightDialogue_4: @ 810137C .incbin "baserom.gba", 0x10137C, 0x8C - .global gUnknown_8101408 -gUnknown_8101408: @ 8101408 + .global gTeamMeaniesReFightDialogue_5 +gTeamMeaniesReFightDialogue_5: @ 8101408 .incbin "baserom.gba", 0x101408, 0x38 .global gUnknown_8101440 @@ -4846,212 +4846,241 @@ gUnknown_810178C: @ 810178C gUnknown_81017B4: @ 81017B4 .incbin "baserom.gba", 0x1017B4, 0x30 - .global gUnknown_81017E4 -gUnknown_81017E4: @ 81017E4 + .global gZapdosReFightDialogue_1 +gZapdosReFightDialogue_1: @ 81017E4 .incbin "baserom.gba", 0x1017E4, 0xB4 - .global gUnknown_8101898 -gUnknown_8101898: @ 8101898 + .global gZapdosReFightDialogue_2 +gZapdosReFightDialogue_2: @ 8101898 .incbin "baserom.gba", 0x101898, 0x54 - .global gUnknown_81018EC -gUnknown_81018EC: @ 81018EC + .global gZapdosReFightDialogue_3 +gZapdosReFightDialogue_3: @ 81018EC .incbin "baserom.gba", 0x1018EC, 0x2C - .global gUnknown_8101918 -gUnknown_8101918: @ 8101918 + .global gZapdosReFightDialogue_4 +gZapdosReFightDialogue_4: @ 8101918 .incbin "baserom.gba", 0x101918, 0x24 - .global gUnknown_810193C -gUnknown_810193C: @ 810193C + .global gZapdosPostStoryPreFightDialogue_1 +gZapdosPostStoryPreFightDialogue_1: @ 810193C .incbin "baserom.gba", 0x10193C, 0x34 - .global gUnknown_8101970 -gUnknown_8101970: @ 8101970 + .global gZapdosPostStoryPreFightDialogue_2 +gZapdosPostStoryPreFightDialogue_2: @ 8101970 .incbin "baserom.gba", 0x101970, 0x24 - .global gUnknown_8101994 -gUnknown_8101994: @ 8101994 + .global gZapdosPostStoryPreFightDialogue_3 +gZapdosPostStoryPreFightDialogue_3: @ 8101994 .incbin "baserom.gba", 0x101994, 0x50 - .global gUnknown_81019E4 -gUnknown_81019E4: @ 81019E4 + .global gZapdosPostStoryPreFightDialogue_4 +gZapdosPostStoryPreFightDialogue_4: @ 81019E4 .incbin "baserom.gba", 0x1019E4, 0x20 - .global gUnknown_8101A04 -gUnknown_8101A04: @ 8101A04 + .global gZapdosPostStoryPreFightDialogue_5 +gZapdosPostStoryPreFightDialogue_5: @ 8101A04 .incbin "baserom.gba", 0x101A04, 0x34 - .global gUnknown_8101A38 -gUnknown_8101A38: @ 8101A38 + .global gZapdosPostStoryPreFightDialogue_6 +gZapdosPostStoryPreFightDialogue_6: @ 8101A38 .incbin "baserom.gba", 0x101A38, 0x64 - .global gUnknown_8101A9C -gUnknown_8101A9C: @ 8101A9C + .global gMoltresPreFightDialogue_1 +gMoltresPreFightDialogue_1: @ 8101A9C .incbin "baserom.gba", 0x101A9C, 0x38 - .global gUnknown_8101AD4 -gUnknown_8101AD4: @ 8101AD4 + .global gMoltresPreFightDialogue_2 +gMoltresPreFightDialogue_2: @ 8101AD4 .incbin "baserom.gba", 0x101AD4, 0x15C - .global gUnknown_8101C30 -gUnknown_8101C30: @ 8101C30 + .global gMoltresPreFightDialogue_3 +gMoltresPreFightDialogue_3: @ 8101C30 .incbin "baserom.gba", 0x101C30, 0x8C - .global gUnknown_8101CBC -gUnknown_8101CBC: @ 8101CBC + .global gMoltresPreFightDialogue_4 +gMoltresPreFightDialogue_4: @ 8101CBC .incbin "baserom.gba", 0x101CBC, 0xD0 - .global gUnknown_8101D8C -gUnknown_8101D8C: @ 8101D8C + .global gMoltresPreFightDialogue_5 +gMoltresPreFightDialogue_5: @ 8101D8C .incbin "baserom.gba", 0x101D8C, 0x14 - .global gUnknown_8101DA0 -gUnknown_8101DA0: @ 8101DA0 + .global gMoltresPreFightDialogue_6 +gMoltresPreFightDialogue_6: @ 8101DA0 .incbin "baserom.gba", 0x101DA0, 0x7C - .global gUnknown_8101E1C -gUnknown_8101E1C: @ 8101E1C + .global gMoltresPreFightDialogue_7 +gMoltresPreFightDialogue_7: @ 8101E1C .incbin "baserom.gba", 0x101E1C, 0x90 - .global gUnknown_8101EAC -gUnknown_8101EAC: @ 8101EAC + .global gMoltresPreFightDialogue_8 +gMoltresPreFightDialogue_8: @ 8101EAC .incbin "baserom.gba", 0x101EAC, 0x1C4 - .global gUnknown_8102070 -gUnknown_8102070: @ 8102070 + .global gMoltresPreFightDialogue_9 +gMoltresPreFightDialogue_9: @ 8102070 .incbin "baserom.gba", 0x102070, 0x34 - .global gUnknown_81020A4 -gUnknown_81020A4: @ 81020A4 + .global gMoltresPreFightDialogue_10 +gMoltresPreFightDialogue_10: @ 81020A4 .incbin "baserom.gba", 0x1020A4, 0x30 - .global gUnknown_81020D4 -gUnknown_81020D4: @ 81020D4 + .global gMoltresPreFightDialogue_11 +gMoltresPreFightDialogue_11: @ 81020D4 .incbin "baserom.gba", 0x1020D4, 0x34 - .global gUnknown_8102108 -gUnknown_8102108: @ 8102108 + .global gMoltresPreFightDialogue_12 +gMoltresPreFightDialogue_12: @ 8102108 .incbin "baserom.gba", 0x102108, 0x50 - .global gUnknown_8102158 -gUnknown_8102158: @ 8102158 + .global gMoltresReFightDialogue_1 +gMoltresReFightDialogue_1: @ 8102158 .incbin "baserom.gba", 0x102158, 0x38 - .global gUnknown_8102190 -gUnknown_8102190: @ 8102190 + .global gMoltresReFightDialogue_2 +gMoltresReFightDialogue_2: @ 8102190 .incbin "baserom.gba", 0x102190, 0x70 - .global gUnknown_8102200 -gUnknown_8102200: @ 8102200 + .global gMoltresReFightDialogue_3 +gMoltresReFightDialogue_3: @ 8102200 .incbin "baserom.gba", 0x102200, 0x54 - .global gUnknown_8102254 -gUnknown_8102254: @ 8102254 + .global gMoltresReFightDialogue_4 +gMoltresReFightDialogue_4: @ 8102254 .incbin "baserom.gba", 0x102254, 0xA4 - .global gUnknown_81022F8 -gUnknown_81022F8: @ 81022F8 + .global gMoltresReFightDialogue_5 +gMoltresReFightDialogue_5: @ 81022F8 .incbin "baserom.gba", 0x1022F8, 0x34 - .global gUnknown_810232C -gUnknown_810232C: @ 810232C + .global gMoltresPostStoryPreFightDialogue_1 +gMoltresPostStoryPreFightDialogue_1: @ 810232C .incbin "baserom.gba", 0x10232C, 0x6C - .global gUnknown_8102398 -gUnknown_8102398: @ 8102398 + .global gMoltresPostStoryPreFightDialogue_2 +gMoltresPostStoryPreFightDialogue_2: @ 8102398 .incbin "baserom.gba", 0x102398, 0x2C - .global gUnknown_81023C4 -gUnknown_81023C4: @ 81023C4 + .global gMoltresPostStoryPreFightDialogue_3 +gMoltresPostStoryPreFightDialogue_3: @ 81023C4 .incbin "baserom.gba", 0x1023C4, 0x3C - .global gUnknown_8102400 -gUnknown_8102400: @ 8102400 + .global gMoltresPostStoryPreFightDialogue_4 +gMoltresPostStoryPreFightDialogue_4: @ 8102400 .incbin "baserom.gba", 0x102400, 0x54 - .global gUnknown_8102454 -gUnknown_8102454: @ 8102454 + .global gMoltresPostStoryPreFightDialogue_5 +gMoltresPostStoryPreFightDialogue_5: @ 8102454 .incbin "baserom.gba", 0x102454, 0x24 - .global gUnknown_8102478 -gUnknown_8102478: @ 8102478 + .global gArticunoPreFightDialogue_1 +gArticunoPreFightDialogue_1: @ 8102478 .incbin "baserom.gba", 0x102478, 0x13C - .global gUnknown_81025B4 -gUnknown_81025B4: @ 81025B4 + .global gArticunoPreFightDialogue_2 +gArticunoPreFightDialogue_2: @ 81025B4 .incbin "baserom.gba", 0x1025B4, 0x20 - .global gUnknown_81025D4 -gUnknown_81025D4: @ 81025D4 + .global gArticunoPreFightDialogue_3 +gArticunoPreFightDialogue_3: @ 81025D4 .incbin "baserom.gba", 0x1025D4, 0x3C - .global gUnknown_8102610 -gUnknown_8102610: @ 8102610 + .global gArticunoPreFightDialogue_4 +gArticunoPreFightDialogue_4: @ 8102610 .incbin "baserom.gba", 0x102610, 0xB4 - .global gUnknown_81026C4 -gUnknown_81026C4: @ 81026C4 + .global gArticunoPreFightDialogue_5 +gArticunoPreFightDialogue_5: @ 81026C4 .incbin "baserom.gba", 0x1026C4, 0x48 - .global gUnknown_810270C -gUnknown_810270C: @ 810270C + .global gArticunoPreFightDialogue_6 +gArticunoPreFightDialogue_6: @ 810270C .incbin "baserom.gba", 0x10270C, 0x20 - .global gUnknown_810272C -gUnknown_810272C: @ 810272C + .global gArticunoPreFightDialogue_7 +gArticunoPreFightDialogue_7: @ 810272C .incbin "baserom.gba", 0x10272C, 0x90 - .global gUnknown_81027BC -gUnknown_81027BC: @ 81027BC + .global gArticunoPreFightDialogue_8 +gArticunoPreFightDialogue_8: @ 81027BC .incbin "baserom.gba", 0x1027BC, 0x54 - .global gUnknown_8102810 -gUnknown_8102810: @ 8102810 + .global gArticunoPreFightDialogue_9 +gArticunoPreFightDialogue_9: @ 8102810 .incbin "baserom.gba", 0x102810, 0x30 - .global gUnknown_8102840 -gUnknown_8102840: @ 8102840 - .incbin "baserom.gba", 0x102840, 0x2C + .global gArticunoPreFightDialogue_10 +gArticunoPreFightDialogue_10: @ 8102840 + .4byte 0x0d000000 + .4byte 0x000001ab + .4byte gUnknown_810284C - .global gUnknown_810286C -gUnknown_810286C: @ 810286C - .incbin "baserom.gba", 0x10286C, 0x4C + .global gUnknown_810284C + gUnknown_810284C: + .string " I am {ARG_POKEMON_2}!{WAIT_PRESS}\n" + .string "The warder of ice!\0" - .global gUnknown_81028B8 -gUnknown_81028B8: @ 81028B8 - .incbin "baserom.gba", 0x1028B8, 0x1C + .global gArticunoPreFightDialogue_11 +gArticunoPreFightDialogue_11: @ 810286C +@ replacing .incbin "baserom.gba", 0x0010286c, 0x4c + .4byte 0x0d000000 + .4byte 0x00000090 + .4byte gUnknown_8102878 - .global gUnknown_81028D4 -gUnknown_81028D4: @ 81028D4 + .global gUnknown_8102878 + gUnknown_8102878: + .string " Those that enter the forest\n" + .string "I shall destroy with all my might!\0" + + .global gArticunoPreFightDialogue_12 +gArticunoPreFightDialogue_12: @ 81028B8 + .4byte 0x0d000000 + .4byte 0x00000090 + .4byte gUnknown_81028C4 + + .global gUnknown_81028C4 + gUnknown_81028C4: + .string " Let us begin!\0\0" + + .global gArticunoReFightDialogue_1 +gArticunoReFightDialogue_1: @ 81028D4 .incbin "baserom.gba", 0x1028D4, 0x44 - .global gUnknown_8102918 -gUnknown_8102918: @ 8102918 + .global gArticunoReFightDialogue_2 +gArticunoReFightDialogue_2: @ 8102918 .incbin "baserom.gba", 0x102918, 0x30 - .global gUnknown_8102948 -gUnknown_8102948: @ 8102948 + .global gArticunoReFightDialogue_3 +gArticunoReFightDialogue_3: @ 8102948 .incbin "baserom.gba", 0x102948, 0x3C - .global gUnknown_8102984 -gUnknown_8102984: @ 8102984 + .global gArticunoPostStoryPreFightDialogue_1 +gArticunoPostStoryPreFightDialogue_1: @ 8102984 .incbin "baserom.gba", 0x102984, 0x30 - .global gUnknown_81029B4 -gUnknown_81029B4: @ 81029B4 - .incbin "baserom.gba", 0x1029B4, 0x64 + .global gArticunoPostStoryPreFightDialogue_2 +gArticunoPostStoryPreFightDialogue_2: @ 81029B4 +@ replacing .incbin "baserom.gba", 0x001029b4, 0x64 + .4byte 0x0d000000 + .4byte 0x00000090 + .4byte gUnknown_81029C0 - .global gUnknown_8102A18 -gUnknown_8102A18: @ 8102A18 + .global gUnknown_81029C0 + gUnknown_81029C0: + .string " Your arrival in this frozen\n" + .string "forest means only one thing...{EXTRA_MSG} You mean to challenge me!\0" + + .global gArticunoPostStoryPreFightDialogue_3 +gArticunoPostStoryPreFightDialogue_3: @ 8102A18 .incbin "baserom.gba", 0x102A18, 0xC - .global gUnknown_8102A24 -gUnknown_8102A24: @ 8102A24 + .global gArticunoPostStoryPreFightDialogue_4 +gArticunoPostStoryPreFightDialogue_4: @ 8102A24 .incbin "baserom.gba", 0x102A24, 0x50 - .global gUnknown_8102A74 -gUnknown_8102A74: @ 8102A74 + .global gArticunoPostStoryPreFightDialogue_5 +gArticunoPostStoryPreFightDialogue_5: @ 8102A74 .incbin "baserom.gba", 0x102A74, 0x28 .global gUnknown_8102A9C @@ -5062,240 +5091,352 @@ gUnknown_8102A9C: @ 8102A9C gUnknown_8102B10: @ 8102B10 .incbin "baserom.gba", 0x102B10, 0xC - .global gUnknown_8102B1C -gUnknown_8102B1C: @ 8102B1C - .incbin "baserom.gba", 0x102B1C, 0x38 + .global MagmaCavernMidDialogue_1 +MagmaCavernMidDialogue_1: @ 8102B1C +@ replacing .incbin "baserom.gba", 0x00102b1c, 0x38 + .4byte 0x02040000 + .4byte 0x000001aa + .4byte gUnknown_8102B28 - .global gUnknown_8102B54 -gUnknown_8102B54: @ 8102B54 + .global gUnknown_8102B28 + gUnknown_8102B28: + .string " Let{APOSTROPHE}s see...{WAIT_PRESS}\n" + .string "...I wonder where we are?\0" + + .global MagmaCavernMidDialogue_2 +MagmaCavernMidDialogue_2: @ 8102B54 .incbin "baserom.gba", 0x102B54, 0x70 - .global gUnknown_8102BC4 -gUnknown_8102BC4: @ 8102BC4 + .global MagmaCavernMidDialogue_3 +MagmaCavernMidDialogue_3: @ 8102BC4 .incbin "baserom.gba", 0x102BC4, 0x20 - .global gUnknown_8102BE4 -gUnknown_8102BE4: @ 8102BE4 + .global MagmaCavernMidDialogue_4 +MagmaCavernMidDialogue_4: @ 8102BE4 .incbin "baserom.gba", 0x102BE4, 0x4C - .global gUnknown_8102C30 -gUnknown_8102C30: @ 8102C30 + .global MagmaCavernMidDialogue_5 +MagmaCavernMidDialogue_5: @ 8102C30 .incbin "baserom.gba", 0x102C30, 0x24 - .global gUnknown_8102C54 -gUnknown_8102C54: @ 8102C54 + .global MagmaCavernMidDialogue_6 +MagmaCavernMidDialogue_6: @ 8102C54 .incbin "baserom.gba", 0x102C54, 0x44 - .global gUnknown_8102C98 -gUnknown_8102C98: @ 8102C98 - .incbin "baserom.gba", 0x102C98, 0x18 + .global MagmaCavernMidDialogue_7 +MagmaCavernMidDialogue_7: @ 8102C98 +@ replacing .incbin "baserom.gba", 0x00102c98, 0x18 + .4byte 0x0e030000 + .4byte 0x00000006 + .4byte gUnknown_8102CA4 - .global gUnknown_8102CB0 -gUnknown_8102CB0: @ 8102CB0 + .global gUnknown_8102CA4 + gUnknown_8102CA4: + .string " Urrrrgh...\0" + + .global MagmaCavernMidDialogue_8 +MagmaCavernMidDialogue_8: @ 8102CB0 .incbin "baserom.gba", 0x102CB0, 0x48 - .global gUnknown_8102CF8 -gUnknown_8102CF8: @ 8102CF8 + .global MagmaCavernMidDialogue_9 +MagmaCavernMidDialogue_9: @ 8102CF8 .incbin "baserom.gba", 0x102CF8, 0x3C - .global gUnknown_8102D34 -gUnknown_8102D34: @ 8102D34 + .global MagmaCavernMidDialogue_10 +MagmaCavernMidDialogue_10: @ 8102D34 .incbin "baserom.gba", 0x102D34, 0x18 - .global gUnknown_8102D4C -gUnknown_8102D4C: @ 8102D4C + .global MagmaCavernMidDialogue_11 +MagmaCavernMidDialogue_11: @ 8102D4C .incbin "baserom.gba", 0x102D4C, 0x30 - .global gUnknown_8102D7C -gUnknown_8102D7C: @ 8102D7C + .global MagmaCavernMidDialogue_12 +MagmaCavernMidDialogue_12: @ 8102D7C .incbin "baserom.gba", 0x102D7C, 0x80 - .global gUnknown_8102DFC -gUnknown_8102DFC: @ 8102DFC + .global MagmaCavernMidDialogue_13 +MagmaCavernMidDialogue_13: @ 8102DFC .incbin "baserom.gba", 0x102DFC, 0x30 - .global gUnknown_8102E2C -gUnknown_8102E2C: @ 8102E2C - .incbin "baserom.gba", 0x102E2C, 0x28 + .global MagmaCavernMidDialogue_14 +MagmaCavernMidDialogue_14: @ 8102E2C +@ replacing .incbin "baserom.gba", 0x00102e2c, 0x28 + .4byte 0x020c0000 + .4byte 0x000001aa + .4byte gUnknown_8102E38 - .global gUnknown_8102E54 -gUnknown_8102E54: @ 8102E54 - .incbin "baserom.gba", 0x102E54, 0x1C + .global gUnknown_8102E38 + gUnknown_8102E38: + .string " {ARG_POKEMON_0}!\n" + .string "We{APOSTROPHE}ve got to hurry!\0" - .global gUnknown_8102E70 -gUnknown_8102E70: @ 8102E70 + .global MagmaCavernMidDialogue_15 +MagmaCavernMidDialogue_15: @ 8102E54 +@ replacing .incbin "baserom.gba", 0x00102e54, 0x1c + .4byte 0x0e030000 + .4byte 0x00000006 + .4byte gUnknown_8102E60 + + .global gUnknown_8102E60 + gUnknown_8102E60: + .string " ...Be careful!\0" + + .global GroudonPreFightDialogue_1 +GroudonPreFightDialogue_1: @ 8102E70 .incbin "baserom.gba", 0x102E70, 0x4C - .global gUnknown_8102EBC -gUnknown_8102EBC: @ 8102EBC + .global GroudonPreFightDialogue_2 +GroudonPreFightDialogue_2: @ 8102EBC .incbin "baserom.gba", 0x102EBC, 0x24 - .global gUnknown_8102EE0 -gUnknown_8102EE0: @ 8102EE0 - .incbin "baserom.gba", 0x102EE0, 0x18 + .global GroudonPreFightDialogue_3 +GroudonPreFightDialogue_3: @ 8102EE0 +@ replacing .incbin "baserom.gba", 0x00102ee0, 0x18 + .4byte 0x0f000000 + .4byte 0x00000041 + .4byte gUnknown_8102EEC - .global gUnknown_8102EF8 -gUnknown_8102EF8: @ 8102EF8 + .global gUnknown_8102EEC + gUnknown_8102EEC: + .string " Stay back!\0" + + .global GroudonPreFightDialogue_4 +GroudonPreFightDialogue_4: @ 8102EF8 .incbin "baserom.gba", 0x102EF8, 0x38 - .global gUnknown_8102F30 -gUnknown_8102F30: @ 8102F30 + .global GroudonPreFightDialogue_5 +GroudonPreFightDialogue_5: @ 8102F30 .incbin "baserom.gba", 0x102F30, 0x34 - .global gUnknown_8102F64 -gUnknown_8102F64: @ 8102F64 + .global GroudonPreFightDialogue_6 +GroudonPreFightDialogue_6: @ 8102F64 .incbin "baserom.gba", 0x102F64, 0x20 - .global gUnknown_8102F84 -gUnknown_8102F84: @ 8102F84 + .global GroudonPreFightDialogue_7 +GroudonPreFightDialogue_7: @ 8102F84 .incbin "baserom.gba", 0x102F84, 0x28 - .global gUnknown_8102FAC -gUnknown_8102FAC: @ 8102FAC - .incbin "baserom.gba", 0x102FAC, 0x18 + .global GroudonPreFightDialogue_8 +GroudonPreFightDialogue_8: @ 8102FAC +@ replacing .incbin "baserom.gba", 0x00102fac, 0x18 + .4byte 0x0f010000 + .4byte 0x00000041 + .4byte gUnknown_8102FB8 - .global gUnknown_8102FC4 -gUnknown_8102FC4: @ 8102FC4 - .incbin "baserom.gba", 0x102FC4, 0x14 + .global gUnknown_8102FB8 + gUnknown_8102FB8: + .string " Wraaaaaah!\0" - .global gUnknown_8102FD8 -gUnknown_8102FD8: @ 8102FD8 + .global GroudonPreFightDialogue_9 +GroudonPreFightDialogue_9: @ 8102FC4 + @ replacing .incbin "baserom.gba", 0x00102fc4, 0x14 + .4byte 0x020c0000 + .4byte 0x000001aa + .4byte gUnknown_8102FD0 + + .global gUnknown_8102FD0 + gUnknown_8102FD0: + .string " A-$m3!\0" + + .global GroudonPreFightDialogue_10 +GroudonPreFightDialogue_10: @ 8102FD8 .incbin "baserom.gba", 0x102FD8, 0x7C - .global gUnknown_8103054 -gUnknown_8103054: @ 8103054 - .incbin "baserom.gba", 0x103054, 0x84 + .global GroudonPreFightDialogue_11 +GroudonPreFightDialogue_11: @ 8103054 + .incbin "baserom.gba", 0x00103054, 0x84 - .global gUnknown_81030D8 -gUnknown_81030D8: @ 81030D8 + .global GroudonPreFightDialogue_12 +GroudonPreFightDialogue_12: @ 81030D8 .incbin "baserom.gba", 0x1030D8, 0x38 - .global gUnknown_8103110 -gUnknown_8103110: @ 8103110 + .global GroudonPreFightDialogue_13 +GroudonPreFightDialogue_13: @ 8103110 .incbin "baserom.gba", 0x103110, 0x30 - .global gUnknown_8103140 -gUnknown_8103140: @ 8103140 + .global GroudonPreFightDialogue_14 +GroudonPreFightDialogue_14: @ 8103140 .incbin "baserom.gba", 0x103140, 0x48 - .global gUnknown_8103188 -gUnknown_8103188: @ 8103188 + .global gGroudonReFightDialogue_1 +gGroudonReFightDialogue_1: @ 8103188 .incbin "baserom.gba", 0x103188, 0xA0 - .global gUnknown_8103228 -gUnknown_8103228: @ 8103228 - .incbin "baserom.gba", 0x103228, 0xE8 + .global gGroudonReFightDialogue_2 +gGroudonReFightDialogue_2: @ 8103228 + .incbin "baserom.gba", 0x00103228, 0xe8 - .global gUnknown_8103310 -gUnknown_8103310: @ 8103310 - .incbin "baserom.gba", 0x103310, 0x30 + .global gGroudonReFightDialogue_3 +gGroudonReFightDialogue_3: @ 8103310 +@ replacing .incbin "baserom.gba", 0x00103310, 0x30 + .4byte 0x00000005 + .4byte 0x00000000 + .4byte gUnknown_810331C - .global gUnknown_8103340 -gUnknown_8103340: @ 8103340 - .incbin "baserom.gba", 0x103340, 0x60 + .global gUnknown_810331C + gUnknown_810331C: + .string "Grgaaaaaaaah!\n" + .string " \0" - .global gUnknown_81033A0 -gUnknown_81033A0: @ 81033A0 + .global gGroudonReFightDialogue_4 +gGroudonReFightDialogue_4: @ 8103340 + .incbin "baserom.gba", 0x00103340, 0x60 + + .global gGroudonPostStoryPreFightDialogue_1 +gGroudonPostStoryPreFightDialogue_1: @ 81033A0 .incbin "baserom.gba", 0x1033A0, 0xC - .global gUnknown_81033AC -gUnknown_81033AC: @ 81033AC + .global gGroudonPostStoryPreFightDialogue_2 +gGroudonPostStoryPreFightDialogue_2: @ 81033AC .incbin "baserom.gba", 0x1033AC, 0x90 - .global gUnknown_810343C -gUnknown_810343C: @ 810343C - .incbin "baserom.gba", 0x10343C, 0x40 + .global gGroudonPostStoryPreFightDialogue_3 +gGroudonPostStoryPreFightDialogue_3: @ 810343C +@ replacing .incbin "baserom.gba", 0x0010343c, 0x40 + .4byte 0x0d000000 + .4byte 0x0000019b + .4byte gUnknown_8103448 - .global gUnknown_810347C -gUnknown_810347C: @ 810347C + .global gUnknown_8103448 + gUnknown_8103448: + .string " Those that disturb my\n" + .string "sleep...{WAIT_PRESS}\n" + .string "Shall be crushed!\0" + + .global gGroudonPostStoryPreFightDialogue_4 +gGroudonPostStoryPreFightDialogue_4: @ 810347C .incbin "baserom.gba", 0x10347C, 0xC .global gUnknown_8103488 gUnknown_8103488: @ 8103488 - .incbin "baserom.gba", 0x103488, 0x78 + @ replacing .incbin "baserom.gba", 0x00103488, 0x78 + .4byte 0x00000004 + .4byte 0x00000000 + .4byte gUnknown_8103494 - .global gUnknown_8103500 -gUnknown_8103500: @ 8103500 + .global gUnknown_8103494 + gUnknown_8103494: + .string "{CENTER_ALIGN}This appears to be the deepest level.{EXTRA_MSG}" + .string "{CENTER_ALIGN}It{APOSTROPHE}s impossible to go any farther.{WAIT_PRESS}\n" + .string "{CENTER_ALIGN}It{APOSTROPHE}s time to go back.\0" + + .global gRayquazaPreFightDialogue_1 +gRayquazaPreFightDialogue_1: @ 8103500 .incbin "baserom.gba", 0x103500, 0x2C - .global gUnknown_810352C -gUnknown_810352C: @ 810352C + .global gRayquazaPreFightDialogue_2 +gRayquazaPreFightDialogue_2: @ 810352C .incbin "baserom.gba", 0x10352C, 0x4C - .global gUnknown_8103578 -gUnknown_8103578: @ 8103578 + .global gRayquazaPreFightDialogue_3 +gRayquazaPreFightDialogue_3: @ 8103578 .incbin "baserom.gba", 0x103578, 0x5C - .global gUnknown_81035D4 -gUnknown_81035D4: @ 81035D4 - .incbin "baserom.gba", 0x1035D4, 0x44 + .global gRayquazaPreFightDialogue_4 +gRayquazaPreFightDialogue_4: @ 81035D4 + @ replacing .incbin "baserom.gba", 0x001035d4, 0x44 + .4byte 0x0d800000 + .4byte 0x0000019c + .4byte gUnknown_81035E0 - .global gUnknown_8103618 -gUnknown_8103618: @ 8103618 + .global gUnknown_81035E0 + gUnknown_81035E0: + .string " Indeed I am.{WAIT_PRESS}\n" + .string "The sky is my domain.{EXTRA_MSG} Depart at once!\0" + .align 2,0 + + .global gRayquazaPreFightDialogue_5 +gRayquazaPreFightDialogue_5: @ 8103618 .incbin "baserom.gba", 0x103618, 0x64 - .global gUnknown_810367C -gUnknown_810367C: @ 810367C - .incbin "baserom.gba", 0x10367C, 0x14 + .global gRayquazaPreFightDialogue_6 +gRayquazaPreFightDialogue_6: @ 810367C +@ replacing .incbin "baserom.gba", 0x0010367c, 0x14 + .4byte 0x0d800000 + .4byte 0x0000019c + .4byte gUnknown_8103688 - .global gUnknown_8103690 -gUnknown_8103690: @ 8103690 + .global gUnknown_8103688 + gUnknown_8103688: + .string " Never!\0" + .align 2,0 + + .global gRayquazaPreFightDialogue_7 +gRayquazaPreFightDialogue_7: @ 8103690 .incbin "baserom.gba", 0x103690, 0x38 - .global gUnknown_81036C8 -gUnknown_81036C8: @ 81036C8 + .global gRayquazaPreFightDialogue_8 +gRayquazaPreFightDialogue_8: @ 81036C8 .incbin "baserom.gba", 0x1036C8, 0xD8 - .global gUnknown_81037A0 -gUnknown_81037A0: @ 81037A0 - .incbin "baserom.gba", 0x1037A0, 0x34 + .global gRayquazaPreFightDialogue_9 +gRayquazaPreFightDialogue_9: @ 81037A0 +@ replacing .incbin "baserom.gba", 0x001037a0, 0x34 + .4byte 0x0d000000 + .4byte 0x0000019c + .4byte gUnknown_81037AC - .global gUnknown_81037D4 -gUnknown_81037D4: @ 81037D4 + .global gUnknown_81037AC + gUnknown_81037AC: + .string " And the opposite shall also\n" + .string "hold true!\0" + .align 2,0 + + .global gRayquazaPreFightDialogue_10 +gRayquazaPreFightDialogue_10: @ 81037D4 .incbin "baserom.gba", 0x1037D4, 0x4C - .global gUnknown_8103820 -gUnknown_8103820: @ 8103820 + .global gRayquazaPreFightDialogue_11 +gRayquazaPreFightDialogue_11: @ 8103820 .incbin "baserom.gba", 0x103820, 0x24 - .global gUnknown_8103844 -gUnknown_8103844: @ 8103844 + .global gRayquazaReFightDialogue_1 +gRayquazaReFightDialogue_1: @ 8103844 .incbin "baserom.gba", 0x103844, 0x30 - .global gUnknown_8103874 -gUnknown_8103874: @ 8103874 - .incbin "baserom.gba", 0x103874, 0x34 + .global gRayquazaReFightDialogue_2 +gRayquazaReFightDialogue_2: @ 8103874 +@ replacing .incbin "baserom.gba", 0x00103874, 0x34 + .4byte 0x0d000000 + .4byte 0x0000019c + .4byte gUnknown_8103880 - .global gUnknown_81038A8 -gUnknown_81038A8: @ 81038A8 + .global gUnknown_8103880 + gUnknown_8103880: + .string " This is no place for the\n" + .string "likes of you!\0" + .align 2,0 + + .global gRayquazaReFightDialogue_3 +gRayquazaReFightDialogue_3: @ 81038A8 .incbin "baserom.gba", 0x1038A8, 0x50 - .global gUnknown_81038F8 -gUnknown_81038F8: @ 81038F8 + .global gRayquazaReFightDialogue_4 +gRayquazaReFightDialogue_4: @ 81038F8 .incbin "baserom.gba", 0x1038F8, 0xC - .global gUnknown_8103904 -gUnknown_8103904: @ 8103904 + .global gRayquazaPostStoryPreFightDialogue_1 +gRayquazaPostStoryPreFightDialogue_1: @ 8103904 .incbin "baserom.gba", 0x103904, 0x34 - .global gUnknown_8103938 -gUnknown_8103938: @ 8103938 + .global gRayquazaPostStoryPreFightDialogue_2 +gRayquazaPostStoryPreFightDialogue_2: @ 8103938 .incbin "baserom.gba", 0x103938, 0x16C - .global gUnknown_8103AA4 -gUnknown_8103AA4: @ 8103AA4 + .global gRayquazaPostStoryPreFightDialogue_3 +gRayquazaPostStoryPreFightDialogue_3: @ 8103AA4 .incbin "baserom.gba", 0x103AA4, 0x40 - .global gUnknown_8103AE4 -gUnknown_8103AE4: @ 8103AE4 + .global gRayquazaPostStoryPreFightDialogue_4 +gRayquazaPostStoryPreFightDialogue_4: @ 8103AE4 .incbin "baserom.gba", 0x103AE4, 0x4C - .global gUnknown_8103B30 -gUnknown_8103B30: @ 8103B30 + .global gRayquazaPostStoryPreFightDialogue_5 +gRayquazaPostStoryPreFightDialogue_5: @ 8103B30 .incbin "baserom.gba", 0x103B30, 0x28 - .global gUnknown_8103B58 -gUnknown_8103B58: @ 8103B58 + .global gRayquazaPostStoryPreFightDialogue_6 +gRayquazaPostStoryPreFightDialogue_6: @ 8103B58 .incbin "baserom.gba", 0x103B58, 0x80 .global gUnknown_8103BD8 @@ -5355,292 +5496,292 @@ gUnknown_8103E40: @ 8103E40 .string "{CENTER_ALIGN}It{APOSTROPHE}s time to go back.\0" .align 2, 0 - .global gUnknown_8103EA4 -gUnknown_8103EA4: @ 8103EA4 + .global gMewtwoPreFightDialogue_1 +gMewtwoPreFightDialogue_1: @ 8103EA4 .incbin "baserom.gba", 0x103EA4, 0x68 - .global gUnknown_8103F0C -gUnknown_8103F0C: @ 8103F0C + .global gMewtwoPreFightDialogue_2 +gMewtwoPreFightDialogue_2: @ 8103F0C .incbin "baserom.gba", 0x103F0C, 0x40 - .global gUnknown_8103F4C -gUnknown_8103F4C: @ 8103F4C + .global gMewtwoPreFightDialogue_3 +gMewtwoPreFightDialogue_3: @ 8103F4C .incbin "baserom.gba", 0x103F4C, 0x80 - .global gUnknown_8103FCC -gUnknown_8103FCC: @ 8103FCC + .global gMewtwoPreFightDialogue_4 +gMewtwoPreFightDialogue_4: @ 8103FCC .incbin "baserom.gba", 0x103FCC, 0x3C - .global gUnknown_8104008 -gUnknown_8104008: @ 8104008 + .global gMewtwoPreFightDialogue_5 +gMewtwoPreFightDialogue_5: @ 8104008 .incbin "baserom.gba", 0x104008, 0x3C - .global gUnknown_8104044 -gUnknown_8104044: @ 8104044 + .global gMewtwoReFightDialogue_1 +gMewtwoReFightDialogue_1: @ 8104044 .incbin "baserom.gba", 0x104044, 0xC - .global gUnknown_8104050 -gUnknown_8104050: @ 8104050 + .global gMewtwoReFightDialogue_2 +gMewtwoReFightDialogue_2: @ 8104050 .incbin "baserom.gba", 0x104050, 0x7C - .global gUnknown_81040CC -gUnknown_81040CC: @ 81040CC + .global gMewtwoReFightDialogue_3 +gMewtwoReFightDialogue_3: @ 81040CC .incbin "baserom.gba", 0x1040CC, 0x48 - .global gUnknown_8104114 -gUnknown_8104114: @ 8104114 + .global gMewtwoReFightDialogue_4 +gMewtwoReFightDialogue_4: @ 8104114 .incbin "baserom.gba", 0x104114, 0x30 - .global gUnknown_8104144 -gUnknown_8104144: @ 8104144 + .global gMewtwoReFightDialogue_5 +gMewtwoReFightDialogue_5: @ 8104144 .incbin "baserom.gba", 0x104144, 0xC - .global gUnknown_8104150 -gUnknown_8104150: @ 8104150 + .global gEnteiPreFightDialogue_1 +gEnteiPreFightDialogue_1: @ 8104150 .incbin "baserom.gba", 0x104150, 0x5C - .global gUnknown_81041AC -gUnknown_81041AC: @ 81041AC + .global gEnteiPreFightDialogue_2 +gEnteiPreFightDialogue_2: @ 81041AC .incbin "baserom.gba", 0x1041AC, 0x4C - .global gUnknown_81041F8 -gUnknown_81041F8: @ 81041F8 + .global gEnteiPreFightDialogue_3 +gEnteiPreFightDialogue_3: @ 81041F8 .incbin "baserom.gba", 0x1041F8, 0x48 - .global gUnknown_8104240 -gUnknown_8104240: @ 8104240 + .global gEnteiReFightDialogue_1 +gEnteiReFightDialogue_1: @ 8104240 .incbin "baserom.gba", 0x104240, 0x6C - .global gUnknown_81042AC -gUnknown_81042AC: @ 81042AC + .global gEnteiReFightDialogue_2 +gEnteiReFightDialogue_2: @ 81042AC .incbin "baserom.gba", 0x1042AC, 0xC - .global gUnknown_81042B8 -gUnknown_81042B8: @ 81042B8 + .global gEnteiReFightDialogue_3 +gEnteiReFightDialogue_3: @ 81042B8 .incbin "baserom.gba", 0x1042B8, 0x58 - .global gUnknown_8104310 -gUnknown_8104310: @ 8104310 + .global gEnteiPostStoryPreFightDialogue_1 +gEnteiPostStoryPreFightDialogue_1: @ 8104310 .incbin "baserom.gba", 0x104310, 0x8C - .global gUnknown_810439C -gUnknown_810439C: @ 810439C + .global gEnteiPostStoryPreFightDialogue_2 +gEnteiPostStoryPreFightDialogue_2: @ 810439C .incbin "baserom.gba", 0x10439C, 0x24 - .global gUnknown_81043C0 -gUnknown_81043C0: @ 81043C0 + .global gEnteiPostStoryPreFightDialogue_3 +gEnteiPostStoryPreFightDialogue_3: @ 81043C0 .incbin "baserom.gba", 0x1043C0, 0x1C - .global gUnknown_81043DC -gUnknown_81043DC: @ 81043DC + .global gEnteiPostStoryPreFightDialogue_4 +gEnteiPostStoryPreFightDialogue_4: @ 81043DC .incbin "baserom.gba", 0x1043DC, 0x74 - .global gUnknown_8104450 -gUnknown_8104450: @ 8104450 + .global gRaikouPreFightDialogue_1 +gRaikouPreFightDialogue_1: @ 8104450 .incbin "baserom.gba", 0x104450, 0x64 - .global gUnknown_81044B4 -gUnknown_81044B4: @ 81044B4 + .global gRaikouPreFightDialogue_2 +gRaikouPreFightDialogue_2: @ 81044B4 .incbin "baserom.gba", 0x1044B4, 0x5C - .global gUnknown_8104510 -gUnknown_8104510: @ 8104510 + .global gRaikouPreFightDialogue_3 +gRaikouPreFightDialogue_3: @ 8104510 .incbin "baserom.gba", 0x104510, 0x2C - .global gUnknown_810453C -gUnknown_810453C: @ 810453C + .global gRaikouPreFightDialogue_4 +gRaikouPreFightDialogue_4: @ 810453C .incbin "baserom.gba", 0x10453C, 0x34 - .global gUnknown_8104570 -gUnknown_8104570: @ 8104570 + .global gRaikouPreFightDialogue_5 +gRaikouPreFightDialogue_5: @ 8104570 .incbin "baserom.gba", 0x104570, 0x40 - .global gUnknown_81045B0 -gUnknown_81045B0: @ 81045B0 + .global gRaikouPreFightDialogue_6 +gRaikouPreFightDialogue_6: @ 81045B0 .incbin "baserom.gba", 0x1045B0, 0x48 - .global gUnknown_81045F8 -gUnknown_81045F8: @ 81045F8 + .global gRaikouReFightDialogue_1 +gRaikouReFightDialogue_1: @ 81045F8 .incbin "baserom.gba", 0x1045F8, 0x7C - .global gUnknown_8104674 -gUnknown_8104674: @ 8104674 + .global gRaikouReFightDialogue_2 +gRaikouReFightDialogue_2: @ 8104674 .incbin "baserom.gba", 0x104674, 0x2C - .global gUnknown_81046A0 -gUnknown_81046A0: @ 81046A0 + .global gRaikouReFightDialogue_3 +gRaikouReFightDialogue_3: @ 81046A0 .incbin "baserom.gba", 0x1046A0, 0x2C - .global gUnknown_81046CC -gUnknown_81046CC: @ 81046CC + .global gRaikouPostStoryPreFightDialogue_1 +gRaikouPostStoryPreFightDialogue_1: @ 81046CC .incbin "baserom.gba", 0x1046CC, 0x78 - .global gUnknown_8104744 -gUnknown_8104744: @ 8104744 + .global gRaikouPostStoryPreFightDialogue_2 +gRaikouPostStoryPreFightDialogue_2: @ 8104744 .incbin "baserom.gba", 0x104744, 0x28 - .global gUnknown_810476C -gUnknown_810476C: @ 810476C + .global gRaikouPostStoryPreFightDialogue_3 +gRaikouPostStoryPreFightDialogue_3: @ 810476C .incbin "baserom.gba", 0x10476C, 0xC - .global gUnknown_8104778 -gUnknown_8104778: @ 8104778 + .global gRaikouPostStoryPreFightDialogue_4 +gRaikouPostStoryPreFightDialogue_4: @ 8104778 .incbin "baserom.gba", 0x104778, 0xC - .global gUnknown_8104784 -gUnknown_8104784: @ 8104784 + .global gSuicunePreFightDialogue_1 +gSuicunePreFightDialogue_1: @ 8104784 .incbin "baserom.gba", 0x104784, 0xC - .global gUnknown_8104790 -gUnknown_8104790: @ 8104790 + .global gSuicunePreFightDialogue_2 +gSuicunePreFightDialogue_2: @ 8104790 .incbin "baserom.gba", 0x104790, 0x20 - .global gUnknown_81047B0 -gUnknown_81047B0: @ 81047B0 + .global gSuicunePreFightDialogue_3 +gSuicunePreFightDialogue_3: @ 81047B0 .incbin "baserom.gba", 0x1047B0, 0x9C - .global gUnknown_810484C -gUnknown_810484C: @ 810484C + .global gSuicunePreFightDialogue_4 +gSuicunePreFightDialogue_4: @ 810484C .incbin "baserom.gba", 0x10484C, 0x3C - .global gUnknown_8104888 -gUnknown_8104888: @ 8104888 + .global gSuicunePreFightDialogue_5 +gSuicunePreFightDialogue_5: @ 8104888 .incbin "baserom.gba", 0x104888, 0x40 - .global gUnknown_81048C8 -gUnknown_81048C8: @ 81048C8 + .global gSuicunePreFightDialogue_6 +gSuicunePreFightDialogue_6: @ 81048C8 .incbin "baserom.gba", 0x1048C8, 0x4C - .global gUnknown_8104914 -gUnknown_8104914: @ 8104914 + .global gSuicunePreFightDialogue_7 +gSuicunePreFightDialogue_7: @ 8104914 .incbin "baserom.gba", 0x104914, 0x1C - .global gUnknown_8104930 -gUnknown_8104930: @ 8104930 + .global gSuicuneReFightDialogue_1 +gSuicuneReFightDialogue_1: @ 8104930 .incbin "baserom.gba", 0x104930, 0x50 - .global gUnknown_8104980 -gUnknown_8104980: @ 8104980 + .global gSuicuneReFightDialogue_2 +gSuicuneReFightDialogue_2: @ 8104980 .incbin "baserom.gba", 0x104980, 0x18 - .global gUnknown_8104998 -gUnknown_8104998: @ 8104998 + .global gSuicuneReFightDialogue_3 +gSuicuneReFightDialogue_3: @ 8104998 .incbin "baserom.gba", 0x104998, 0x3C - .global gUnknown_81049D4 -gUnknown_81049D4: @ 81049D4 + .global gSuicunePostStoryPreFightDialogue_1 +gSuicunePostStoryPreFightDialogue_1: @ 81049D4 .incbin "baserom.gba", 0x1049D4, 0xAC - .global gUnknown_8104A80 -gUnknown_8104A80: @ 8104A80 + .global gSuicunePostStoryPreFightDialogue_2 +gSuicunePostStoryPreFightDialogue_2: @ 8104A80 .incbin "baserom.gba", 0x104A80, 0x1C - .global gUnknown_8104A9C -gUnknown_8104A9C: @ 8104A9C + .global gSuicunePostStoryPreFightDialogue_3 +gSuicunePostStoryPreFightDialogue_3: @ 8104A9C .incbin "baserom.gba", 0x104A9C, 0x2C - .global gUnknown_8104AC8 -gUnknown_8104AC8: @ 8104AC8 + .global gSuicunePostStoryPreFightDialogue_4 +gSuicunePostStoryPreFightDialogue_4: @ 8104AC8 .incbin "baserom.gba", 0x104AC8, 0xC - .global gUnknown_8104AD4 -gUnknown_8104AD4: @ 8104AD4 + .global gHoOhPreFightDialogue_1 +gHoOhPreFightDialogue_1: @ 8104AD4 .incbin "baserom.gba", 0x104AD4, 0x118 - .global gUnknown_8104BEC -gUnknown_8104BEC: @ 8104BEC + .global gHoOhPreFightDialogue_2 +gHoOhPreFightDialogue_2: @ 8104BEC .incbin "baserom.gba", 0x104BEC, 0x24 - .global gUnknown_8104C10 -gUnknown_8104C10: @ 8104C10 + .global gHoOhPreFightDialogue_3 +gHoOhPreFightDialogue_3: @ 8104C10 .incbin "baserom.gba", 0x104C10, 0x44 - .global gUnknown_8104C54 -gUnknown_8104C54: @ 8104C54 + .global gHoOhPreFightDialogue_4 +gHoOhPreFightDialogue_4: @ 8104C54 .incbin "baserom.gba", 0x104C54, 0x60 - .global gUnknown_8104CB4 -gUnknown_8104CB4: @ 8104CB4 + .global gHoOhPreFightDialogue_5 +gHoOhPreFightDialogue_5: @ 8104CB4 .incbin "baserom.gba", 0x104CB4, 0x2C - .global gUnknown_8104CE0 -gUnknown_8104CE0: @ 8104CE0 + .global gHoOhPreFightDialogue_6 +gHoOhPreFightDialogue_6: @ 8104CE0 .incbin "baserom.gba", 0x104CE0, 0xC - .global gUnknown_8104CEC -gUnknown_8104CEC: @ 8104CEC + .global HoOhReFightDialogue_1 +HoOhReFightDialogue_1: @ 8104CEC .incbin "baserom.gba", 0x104CEC, 0x74 - .global gUnknown_8104D60 -gUnknown_8104D60: @ 8104D60 + .global HoOhReFightDialogue_2 +HoOhReFightDialogue_2: @ 8104D60 .incbin "baserom.gba", 0x104D60, 0x7C - .global gUnknown_8104DDC -gUnknown_8104DDC: @ 8104DDC + .global HoOhReFightDialogue_3 +HoOhReFightDialogue_3: @ 8104DDC .incbin "baserom.gba", 0x104DDC, 0x30 - .global gUnknown_8104E0C -gUnknown_8104E0C: @ 8104E0C + .global HoOhReFightDialogue_4 +HoOhReFightDialogue_4: @ 8104E0C .incbin "baserom.gba", 0x104E0C, 0x48 - .global gUnknown_8104E54 -gUnknown_8104E54: @ 8104E54 + .global HoOhReFightDialogue_5 +HoOhReFightDialogue_5: @ 8104E54 .incbin "baserom.gba", 0x104E54, 0xC - .global gUnknown_8104E60 -gUnknown_8104E60: @ 8104E60 + .global gLatiosPreFightDialogue_1 +gLatiosPreFightDialogue_1: @ 8104E60 .incbin "baserom.gba", 0x104E60, 0x9C - .global gUnknown_8104EFC -gUnknown_8104EFC: @ 8104EFC + .global gLatiosPreFightDialogue_2 +gLatiosPreFightDialogue_2: @ 8104EFC .incbin "baserom.gba", 0x104EFC, 0x34 - .global gUnknown_8104F30 -gUnknown_8104F30: @ 8104F30 + .global gLatiosPreFightDialogue_3 +gLatiosPreFightDialogue_3: @ 8104F30 .incbin "baserom.gba", 0x104F30, 0x34 - .global gUnknown_8104F64 -gUnknown_8104F64: @ 8104F64 + .global gLatiosReFightDialogue_1 +gLatiosReFightDialogue_1: @ 8104F64 .incbin "baserom.gba", 0x104F64, 0x64 .global gUnknown_8104FC8 gUnknown_8104FC8: @ 8104FC8 .incbin "baserom.gba", 0x104FC8, 0xC - .global gUnknown_8104FD4 -gUnknown_8104FD4: @ 8104FD4 + .global gRegirockPreFightDialogue_1 +gRegirockPreFightDialogue_1: @ 8104FD4 .incbin "baserom.gba", 0x104FD4, 0x54 - .global gUnknown_8105028 -gUnknown_8105028: @ 8105028 + .global gRegicePreFightDialogue_1 +gRegicePreFightDialogue_1: @ 8105028 .incbin "baserom.gba", 0x105028, 0xC - .global gUnknown_8105034 -gUnknown_8105034: @ 8105034 + .global gRegisteelPreFightDialogue_1 +gRegisteelPreFightDialogue_1: @ 8105034 .incbin "baserom.gba", 0x105034, 0xC - .global gUnknown_8105040 -gUnknown_8105040: @ 8105040 + .global gRegirockPostFightDialogue_1 +gRegirockPostFightDialogue_1: @ 8105040 .incbin "baserom.gba", 0x105040, 0x74 - .global gUnknown_81050B4 -gUnknown_81050B4: @ 81050B4 + .global gRegirockPostFightDialogue_2 +gRegirockPostFightDialogue_2: @ 81050B4 .incbin "baserom.gba", 0x1050B4, 0x58 - .global gUnknown_810510C -gUnknown_810510C: @ 810510C + .global gRegicePostFightDialogue_1 +gRegicePostFightDialogue_1: @ 810510C .incbin "baserom.gba", 0x10510C, 0x70 - .global gUnknown_810517C -gUnknown_810517C: @ 810517C + .global gRegicePostFightDialogue_2 +gRegicePostFightDialogue_2: @ 810517C .incbin "baserom.gba", 0x10517C, 0x54 - .global gUnknown_81051D0 -gUnknown_81051D0: @ 81051D0 + .global gRegisteelPostFightDialogue_1 +gRegisteelPostFightDialogue_1: @ 81051D0 .incbin "baserom.gba", 0x1051D0, 0x74 - .global gUnknown_8105244 -gUnknown_8105244: @ 8105244 + .global gRegisteelPostFightDialogue_2 +gRegisteelPostFightDialogue_2: @ 8105244 .incbin "baserom.gba", 0x105244, 0xD8 .global gUnknown_810531C @@ -5659,20 +5800,20 @@ gUnknown_81053A8: @ 81053A8 gUnknown_8105434: @ 8105434 .incbin "baserom.gba", 0x105434, 0x4 - .global gUnknown_8105438 -gUnknown_8105438: @ 8105438 + .global gJirachiPreFightDialogue_1 +gJirachiPreFightDialogue_1: @ 8105438 .incbin "baserom.gba", 0x105438, 0x68 - .global gUnknown_81054A0 -gUnknown_81054A0: @ 81054A0 + .global gJirachiPreFightDialogue_2 +gJirachiPreFightDialogue_2: @ 81054A0 .incbin "baserom.gba", 0x1054A0, 0x44 - .global gUnknown_81054E4 -gUnknown_81054E4: @ 81054E4 + .global gJirachiPreFightDialogue_3 +gJirachiPreFightDialogue_3: @ 81054E4 .incbin "baserom.gba", 0x1054E4, 0x28 - .global gUnknown_810550C -gUnknown_810550C: @ 810550C + .global gJirachiPreFightDialogue_4 +gJirachiPreFightDialogue_4: @ 810550C .incbin "baserom.gba", 0x10550C, 0x40 .global gUnknown_810554C @@ -5771,104 +5912,104 @@ gUnknown_8105D80: @ 8105D80 gUnknown_8105D9C: @ 8105D9C .incbin "baserom.gba", 0x105D9C, 0x78 - .global gUnknown_8105E14 -gUnknown_8105E14: @ 8105E14 + .global gJirachiReFightDialogue_1 +gJirachiReFightDialogue_1: @ 8105E14 .incbin "baserom.gba", 0x105E14, 0x74 @ Lugia Fight Dialogue - .global gUnknown_8105E88 -gUnknown_8105E88: @ 8105E88 + .global gLugiaPreFightDialogue_1 +gLugiaPreFightDialogue_1: @ 8105E88 .incbin "baserom.gba", 0x105E88, 0x70 - .global gUnknown_8105EF8 -gUnknown_8105EF8: @ 8105EF8 + .global gLugiaPreFightDialogue_2 +gLugiaPreFightDialogue_2: @ 8105EF8 .incbin "baserom.gba", 0x105EF8, 0x40 - .global gUnknown_8105F38 -gUnknown_8105F38: @ 8105F38 + .global gLugiaPreFightDialogue_3 +gLugiaPreFightDialogue_3: @ 8105F38 .incbin "baserom.gba", 0x105F38, 0x3C - .global gUnknown_8105F74 -gUnknown_8105F74: @ 8105F74 + .global gLugiaPreFightDialogue_4 +gLugiaPreFightDialogue_4: @ 8105F74 .incbin "baserom.gba", 0x105F74, 0x2C - .global gUnknown_8105FA0 -gUnknown_8105FA0: @ 8105FA0 + .global gLugiaPreFightDialogue_5 +gLugiaPreFightDialogue_5: @ 8105FA0 .incbin "baserom.gba", 0x105FA0, 0x38 - .global gUnknown_8105FD8 -gUnknown_8105FD8: @ 8105FD8 + .global gLugiaPreFightDialogue_6 +gLugiaPreFightDialogue_6: @ 8105FD8 .incbin "baserom.gba", 0x105FD8, 0x4C - .global gUnknown_8106024 -gUnknown_8106024: @ 8106024 + .global gLugiaPreFightDialogue_7 +gLugiaPreFightDialogue_7: @ 8106024 .incbin "baserom.gba", 0x106024, 0x44 + .global gLugiaPreFightDialogue_8 +gLugiaPreFightDialogue_8: @ 8106068 + .incbin "baserom.gba", 0x106068, 0xC + @ Kyogre Fight Dialogue - .global gUnknown_8106068 -gUnknown_8106068: @ 8106068 - .incbin "baserom.gba", 0x106068, 0xC - - .global gUnknown_8106074 -gUnknown_8106074: @ 8106074 + .global gKyogrePreFightDialogue_1 +gKyogrePreFightDialogue_1: @ 8106074 .incbin "baserom.gba", 0x106074, 0x48 - .global gUnknown_81060BC -gUnknown_81060BC: @ 81060BC + .global gKyogrePreFightDialogue_2 +gKyogrePreFightDialogue_2: @ 81060BC .incbin "baserom.gba", 0x1060BC, 0x48 - .global gUnknown_8106104 -gUnknown_8106104: @ 8106104 + .global gKyogrePreFightDialogue_3 +gKyogrePreFightDialogue_3: @ 8106104 .incbin "baserom.gba", 0x106104, 0x3C - .global gUnknown_8106140 -gUnknown_8106140: @ 8106140 + .global gKyogrePreFightDialogue_4 +gKyogrePreFightDialogue_4: @ 8106140 .incbin "baserom.gba", 0x106140, 0xD4 - .global gUnknown_8106214 -gUnknown_8106214: @ 8106214 + .global gKyogrePreFightDialogue_5 +gKyogrePreFightDialogue_5: @ 8106214 .incbin "baserom.gba", 0x106214, 0x30 - .global gUnknown_8106244 -gUnknown_8106244: @ 8106244 + .global gKyogrePreFightDialogue_6 +gKyogrePreFightDialogue_6: @ 8106244 .incbin "baserom.gba", 0x106244, 0x38 - .global gUnknown_810627C -gUnknown_810627C: @ 810627C + .global gKyogrePreFightDialogue_7 +gKyogrePreFightDialogue_7: @ 810627C .incbin "baserom.gba", 0x10627C, 0x2C - .global gUnknown_81062A8 -gUnknown_81062A8: @ 81062A8 + .global gKyogrePreFightDialogue_8 +gKyogrePreFightDialogue_8: @ 81062A8 .incbin "baserom.gba", 0x1062A8, 0xC - .global gUnknown_81062B4 -gUnknown_81062B4: @ 81062B4 + .global gDeoxysPreFightDialogue_1 +gDeoxysPreFightDialogue_1: @ 81062B4 .incbin "baserom.gba", 0x1062B4, 0x34 - .global gUnknown_81062E8 -gUnknown_81062E8: @ 81062E8 + .global gDeoxysPreFightDialogue_2 +gDeoxysPreFightDialogue_2: @ 81062E8 .incbin "baserom.gba", 0x1062E8, 0x80 - .global gUnknown_8106368 -gUnknown_8106368: @ 8106368 + .global gDeoxysPreFightDialogue_3 +gDeoxysPreFightDialogue_3: @ 8106368 .incbin "baserom.gba", 0x106368, 0x28 - .global gUnknown_8106390 -gUnknown_8106390: @ 8106390 + .global gDeoxysPreFightDialogue_4 +gDeoxysPreFightDialogue_4: @ 8106390 .incbin "baserom.gba", 0x106390, 0x34 - .global gUnknown_81063C4 -gUnknown_81063C4: @ 81063C4 + .global gDeoxysPreFightDialogue_5 +gDeoxysPreFightDialogue_5: @ 81063C4 .byte 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte gUnknown_8103E40 @ Dialogue for Purity Forest - .global gUnknown_81063D0 -gUnknown_81063D0: @ 81063D0 + .global gCelebiJoinDialogue_1 +gCelebiJoinDialogue_1: @ 81063D0 .byte 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte gPurityForestSomeoneThereText @@ -5879,8 +6020,8 @@ gPurityForestSomeoneThereText: @ 81063DC .string "{CENTER_ALIGN}There{APOSTROPHE}s someone there.\0" .align 2, 0 - .global gUnknown_8106400 -gUnknown_8106400: @ 8106400 + .global gCelebiJoinDialogue_2 +gCelebiJoinDialogue_2: @ 8106400 .byte 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte gPurityForestCelebiIntroText @@ -5891,8 +6032,8 @@ gPurityForestCelebiIntroText: @ 810640C .string "{CENTER_ALIGN}The Time Travel Pokémon {ARG_POKEMON_2}!\0" .align 2, 0 - .global gUnknown_810643C -gUnknown_810643C: @ 810643C + .global gCelebiJoinDialogue_3 +gCelebiJoinDialogue_3: @ 810643C .byte 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte gPurityForestCelebiWantsToJoinText @@ -5902,8 +6043,8 @@ gPurityForestCelebiWantsToJoinText: @ 8106448 .string "{CENTER_ALIGN}{ARG_POKEMON_2} wants to join the team.\0" .align 2, 0 - .global gUnknown_8106468 -gUnknown_8106468: @ 8106468 + .global gCelebiJoinDialogue_4 +gCelebiJoinDialogue_4: @ 8106468 .byte 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte gPurityForestCelebiJoinedText @@ -5913,8 +6054,8 @@ gPurityForestCelebiJoinedText: @ 8106474 .string "{CENTER_ALIGN}{ARG_POKEMON_2} joined the team! \0" .align 2, 0 - .global gUnknown_810648C -gUnknown_810648C: @ 810648C + .global gCelebiJoinDialogue_5 +gCelebiJoinDialogue_5: @ 810648C .byte 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte gPurityForestCelebiVeryHappyText @@ -5925,8 +6066,8 @@ gPurityForestCelebiVeryHappyText: @ 8106498 .string "{CENTER_ALIGN}be very happy!\0" .align 2, 0 - .global gUnknown_81064BC -gUnknown_81064BC: @ 81064BC + .global gCelebiJoinDialogue_6 +gCelebiJoinDialogue_6: @ 81064BC .byte 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte gPurityForestCelebiDelightedToJoinText @@ -5937,8 +6078,8 @@ gPurityForestCelebiDelightedToJoinText: @ 81064C8 .string "{CENTER_ALIGN}joined the rescue team!\0" .align 2, 0 - .global gUnknown_8106500 -gUnknown_8106500: @ 8106500 + .global gCelebiJoinDialogue_7 +gCelebiJoinDialogue_7: @ 8106500 .byte 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte gPurityForestTurnedDownOfferText @@ -5949,8 +6090,8 @@ gPurityForestTurnedDownOfferText: @ 810650C .string "{CENTER_ALIGN}the offer to join.\0" .align 2, 0 - .global gUnknown_8106534 -gUnknown_8106534: @ 8106534 + .global gCelebiJoinDialogue_8 +gCelebiJoinDialogue_8: @ 8106534 .byte 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte gPurityForestCelebiDisappointedText @@ -5960,8 +6101,8 @@ gPurityForestCelebiDisappointedText: @ 8106540 .string "{CENTER_ALIGN}Celebi is very disappointed.\0" .align 2, 0 - .global gUnknown_8106560 -gUnknown_8106560: @ 8106560 + .global gCelebiJoinDialogue_9 +gCelebiJoinDialogue_9: @ 8106560 .byte 0x04, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte gPurityForestCelebiLeftDejectedlyText @@ -6030,8 +6171,8 @@ gPurityForestRefuseCelebiReconsiderText: @ 8106630 .string "Reconsider.\0" .align 2, 0 - .global gUnknown_810663C -gUnknown_810663C: @ 810663C + .global gCelebiJoinDialogue_10 +gCelebiJoinDialogue_10: @ 810663C .incbin "baserom.gba", 0x10663C, 0x20 .global gUnknown_810665C @@ -6058,36 +6199,36 @@ gUnknown_810671C: @ 810671C gUnknown_8106720: @ 8106720 .incbin "baserom.gba", 0x106720, 0x58 - .global gUnknown_8106778 -gUnknown_8106778: @ 8106778 + .global gMedichamRescueDialogue_1 +gMedichamRescueDialogue_1: @ 8106778 .incbin "baserom.gba", 0x106778, 0x44 - .global gUnknown_81067BC -gUnknown_81067BC: @ 81067BC + .global gMedichamRescueDialogue_2 +gMedichamRescueDialogue_2: @ 81067BC .incbin "baserom.gba", 0x1067BC, 0x24 - .global gUnknown_81067E0 -gUnknown_81067E0: @ 81067E0 + .global gMedichamRescueDialogue_3 +gMedichamRescueDialogue_3: @ 81067E0 .incbin "baserom.gba", 0x1067E0, 0x54 - .global gUnknown_8106834 -gUnknown_8106834: @ 8106834 + .global gMedichamRescueDialogue_4 +gMedichamRescueDialogue_4: @ 8106834 .incbin "baserom.gba", 0x106834, 0x58 - .global gUnknown_810688C -gUnknown_810688C: @ 810688C + .global gSmeargleRescueDialogue_1 +gSmeargleRescueDialogue_1: @ 810688C .incbin "baserom.gba", 0x10688C, 0x44 - .global gUnknown_81068D0 -gUnknown_81068D0: @ 81068D0 + .global gSmeargleRescueDialogue_2 +gSmeargleRescueDialogue_2: @ 81068D0 .incbin "baserom.gba", 0x1068D0, 0x48 - .global gUnknown_8106918 -gUnknown_8106918: @ 8106918 + .global gSmeargleRescueDialogue_3 +gSmeargleRescueDialogue_3: @ 8106918 .incbin "baserom.gba", 0x106918, 0x1C - .global gUnknown_8106934 -gUnknown_8106934: @ 8106934 + .global gSmeargleRescueDialogue_4 +gSmeargleRescueDialogue_4: @ 8106934 .incbin "baserom.gba", 0x106934, 0x48 .global gUnknown_810697C diff --git a/data/text/wonder_mail_3.inc b/data/text/wonder_mail_3.inc deleted file mode 100644 index f3076e52a..000000000 --- a/data/text/wonder_mail_3.inc +++ /dev/null @@ -1,57 +0,0 @@ -gUnknown_80DFE4C:: @ 80DFE4C - .string "Are you sure you want to replace the\n" - .string "old {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1} with the new one?\0" - .align 2, 0 - -gUnknown_80DFE9C:: @ 80DFE9C - .string "This {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1} has already been\n" - .string "received.\0" - .align 2, 0 - -gUnknown_80DFED0:: @ 80DFED0 - .string "This {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1} has already been\n" - .string "received.\n" - .string "You may not receive the same one again.\0" - .align 2, 0 - -gUnknown_80DFF2C:: @ 80DFF2C - .string "Only {COLOR_1 LIGHT_BLUE_2}one piece{END_COLOR_TEXT_1} of {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1} can be held.\n" - .string "Please receive it after completing any\n" - .string "rescue mission in progress.\0" - .align 2, 0 - -gUnknown_80DFFA4:: @ 80DFFA4 - .string "The rescue team has quicksaved in\n" - .string "a dungeon with a mission in progress.\n" - .string "Please complete the mission first.\0" - .align 2, 0 - -gUnknown_80E0010:: @ 80E0010 - .string "The rescue team has quicksaved in\n" - .string "a dungeon with a mission in progress.\n" - .string "Mail cannot be deleted now.\0" -gUnknown_80E0074:: @ 80E0074 - .string "Received the {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1}!\0" - .align 2, 0 - -gUnknown_80E0094:: @ 80E0094 - .string "Only {COLOR_1 LIGHT_BLUE_2}one piece{END_COLOR_TEXT_1} of {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1} can be held.\n" - .string "Is it OK to replace the old {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1}\n" - .string "with the new one?\0" - .align 2, 0 - -gUnknown_80E0108:: @ 80E0108 - .string "Your {COLOR_1 LIGHT_BLUE_2}Job List{END_COLOR_TEXT_1} is full.\n" - .string "Please select and delete unwanted mail.\0" - .align 2, 0 - -gUnknown_80E014C:: @ 80E014C - .string "New Mail\0" - .align 2, 0 - -gUnknown_80E0158:: @ 80E0158 - .string "Old Mail\0" - .align 2, 0 - - .string "pksdir0\0" - .align 2, 0 diff --git a/data/text/wonder_mail_complete.inc b/data/text/wonder_mail_complete.inc deleted file mode 100644 index ea8f9c937..000000000 --- a/data/text/wonder_mail_complete.inc +++ /dev/null @@ -1,26 +0,0 @@ -gWonderMailClientThanksForRescuingMe:: @ 80E0184 - .string " Thank you for rescuing me!\0" - .align 2, 0 - -gWonderMailClientThanksForRescuingThem:: @ 80E01A0 - .string " Thank you for rescuing\n" - .string "{COLOR_1 CYAN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!\0" - .align 2, 0 - -gWonderMailClientEscorted:: @ 80E01C4 - .string " Thank you for escorting me\n" - .string "to {COLOR_1 CYAN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}! \0" - .align 2, 0 - -gWonderMailClientItemDelivered1:: @ 80E01F0 - .string " Thank you for delivering\n" - .string "the {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}!\0" - .align 2, 0 - -gWonderMailClientItemDelivered2:: @ 80E0218 - .string " Thank you for getting me\n" - .string "the {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}!\0" - .align 2, 0 - - .string "pksdir0\0" - .align 2, 0 diff --git a/include/dungeon_ai_targeting.h b/include/dungeon_ai_targeting.h index 8d6d9a319..a466743e9 100644 --- a/include/dungeon_ai_targeting.h +++ b/include/dungeon_ai_targeting.h @@ -5,5 +5,12 @@ bool8 CanAttackInFront(struct DungeonEntity *pokemon, s32 direction); bool8 CanMoveForward(struct DungeonEntity *pokemon, s32 facingDir, bool8 *pokemonInFront); +bool8 IsAtJunction(struct DungeonEntity *pokemon); +bool8 ShouldAvoidFirstHit(struct DungeonEntity *pokemon, bool8 forceAvoid); +bool8 ShouldAvoidEnemies(struct DungeonEntity *pokemon); +bool8 ShouldAvoidEnemiesAndShowEffect(struct DungeonEntity *pokemon, bool8 showRunAwayEffect); +void CheckRunAwayVisualFlag(struct DungeonEntity *pokemon, bool8 showRunAwayEffect); +u8 CanTarget(struct DungeonEntity *pokemon, struct DungeonEntity *targetPokemon, bool8 ignoreInvisible, bool8 checkPetrified); +u8 sub_807167C(struct DungeonEntity * pokemon, struct DungeonEntity * target); #endif diff --git a/include/dungeon_ai_targeting_1.h b/include/dungeon_ai_targeting_1.h deleted file mode 100644 index d59a0ee98..000000000 --- a/include/dungeon_ai_targeting_1.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef GUARD_DUNGEON_AI_TARGETING_1_H -#define GUARD_DUNGEON_AI_TARGETING_1_H - -#include "dungeon_entity.h" - -bool8 ShouldAvoidEnemies(struct DungeonEntity *pokemon); -bool8 ShouldAvoidEnemiesAndShowEffect(struct DungeonEntity *pokemon, bool8 showRunAwayEffect); - -#endif diff --git a/include/dungeon_ai_targeting_2.h b/include/dungeon_ai_targeting_2.h deleted file mode 100644 index 5fe43a313..000000000 --- a/include/dungeon_ai_targeting_2.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef GUARD_DUNGEON_AI_TARGETING_2_H -#define GUARD_DUNGEON_AI_TARGETING_2_H - -#include "dungeon_entity.h" - -u8 CanTarget(struct DungeonEntity *pokemon, struct DungeonEntity *targetPokemon, bool8 ignoreInvisible, bool8 checkPetrified); - -#endif diff --git a/include/dungeon_entity.h b/include/dungeon_entity.h index 76e0feac7..cc2b79d4a 100644 --- a/include/dungeon_entity.h +++ b/include/dungeon_entity.h @@ -217,7 +217,7 @@ struct DungeonEntityData u8 fill1F5; /* 0x1F6 */ bool8 notMoving; u8 fill1F7[0x1FA - 0x1F7]; - /* 0x1FA */ u8 mobileTurnTimer; // When a Pokémon can pass through walls in a hallway, this counts up to 200 before the Pokémon turns in a random direction. + /* 0x1FA */ s16 mobileTurnTimer; // When a Pokémon can pass through walls in a hallway, this counts up to 200 before the Pokémon turns in a random direction. /* 0x1FC */ u16 expGainedInTurn; // Used to accumulate experience when multiple enemies are defeated in one turn. /* 0x200 */ u32 statusSprites; u32 unk204; diff --git a/include/dungeon_global_data.h b/include/dungeon_global_data.h index 77dce074e..5ca6f4d2d 100644 --- a/include/dungeon_global_data.h +++ b/include/dungeon_global_data.h @@ -14,6 +14,13 @@ extern struct DungeonGlobalData *gDungeonGlobalData; +struct DungeonGlobalData_sub +{ + u8 unk0; + u8 unk1; + u8 unk2; +}; + struct DungeonGlobalData { u8 unk0; @@ -23,7 +30,8 @@ struct DungeonGlobalData u8 unk4; u8 fill5[0x7 - 0x5]; u8 unk7; - u8 fill8[0xF - 0x8]; + u8 unk8; + u8 fill9[0xF - 0x9]; /* 0xF */ bool8 inputAllowed; // Whether the game is currently accepting input. Set to false while action animations play. u8 fill10; u8 unk11; @@ -31,7 +39,9 @@ struct DungeonGlobalData u8 unk16D; u8 fill16E[0x179 - 0x16E]; /* 0x179 */ bool8 pokemonExposed; // True if a Pokémon on the floor has the Exposed status. - u8 fill17A[0x645 - 0x17A]; + u8 fill17A[0x17C - 0x17A]; + struct DungeonGlobalData_sub unk17C[0x100]; + /* 0x57C */ u8 fill57C[0x645 - 0x57c]; /* 0x645 */ u8 floorNumber; u8 fill646[0x65C - 0x646]; u8 unk65C; @@ -44,7 +54,9 @@ struct DungeonGlobalData u8 fill66C[0x671 - 0x66C]; /* 0x671 */ bool8 monsterHouseActive; /* 0x672 */ u8 unk672; - u8 fill673[0x363C - 0x673]; + u8 fill673[0x68A - 0x673]; + /* 0x68A */ u8 unk68A; + u8 fill68B[0x363C - 0x68B]; /* 0x363C */ u8 expYieldRankings[NUM_SPECIES]; u8 fill37E3[0x37FC - 0x37D9]; /* 0x37FC */ bool8 decoyActive; @@ -59,17 +71,17 @@ struct DungeonGlobalData s16 unkE23E; u8 fillE240[0xE264 - 0xE240]; /* 0xE264 */ u8 weather; // Uses the weather constants in weather.h. - u8 unkE265; + u8 unkE265; // Uses the weather constants in weather.h /* 0xE266 */ u8 weatherDamageTimer; // Timer for applying sandstorm/hail damage periodically. - u8 fillE266[0xE26B - 0xE267]; + u8 unkE267[0xE26B - 0xE267]; u8 unkE26B; u8 weatherTurnsLeft; - u8 fillE26D[0xE270 - 0xE26D]; - /* 0xE270 */ u8 startingWeather; // The weather at the start of the floor. If the weather changes, then expires, revert back to the starting weather. - u8 fillE271[0xE277 - 0xE271]; + u8 fillE26D[0xE26F - 0xE26D]; + /* 0xE26F */ u8 startingWeather[8]; // The weather at the start of the floor. If the weather changes, then expires, revert back to the starting weather. /* 0xE277 */ u8 mudSportTurnsLeft; /* 0xE278 */ u8 waterSportTurnsLeft; - u8 fillE279[0xE8C0 - 0xE279]; + /* 0xE279 */ u8 unkE279; + u8 fillE27A[0xE8C0 - 0xE27A]; /* 0xE8C0 */ struct MapTile* mapTilePointers[DUNGEON_MAX_SIZE_Y][DUNGEON_MAX_SIZE_X]; u8 fill104C0[0x104C4 - 0x104C0]; /* 0x104C4 */ struct MapRoom roomData[MAX_ROOM_COUNT]; @@ -79,7 +91,14 @@ struct DungeonGlobalData /* 0x10884 */ struct Position roomExits[MAX_ROOM_COUNT][32]; // Arrays of room exits for each room. u8 fill11444[0x1356C - 0x11484]; u8 unk1356C; - u8 fill1356D[0x1357C - 0x1356D]; + u8 fill1356D[0x13570 - 0x1356D]; + /* 0x13570 */ u8 unk13570; + u8 fill13571[0x13574 - 0x13571]; + /* 0x13574 */ u16 unk13574; + /* 0x13576 */ u16 unk13576; + /* 0x13578 */ u8 unk13578; + /* 0x13579 */ u8 unk13579; + u8 fill1357A[0x1357C - 0x1357A]; /* 0x1357C */ struct DungeonEntity *teamPokemon[MAX_TEAM_MEMBERS]; /* 0x1358C */ struct DungeonEntity *wildPokemon[DUNGEON_MAX_WILD_POKEMON]; /* 0x135CC */ struct DungeonEntity *allPokemon[DUNGEON_MAX_POKEMON]; // Contains both team and wild Pokémon @@ -101,6 +120,8 @@ struct DungeonGlobalData /* 0x18210 */ bool8 displayCrossEyed; // Displays Substitute and flower sprites when the player has the Cross-Eyed status. u8 fill18211[0x18217 - 0x18211]; u8 unk18217; + u8 fill18218[0x1C578 - 0x18218]; + u8 unk1C578; }; #endif diff --git a/include/dungeon_random.h b/include/dungeon_random.h index b53b4bb87..96cad979f 100644 --- a/include/dungeon_random.h +++ b/include/dungeon_random.h @@ -3,5 +3,7 @@ s32 DungeonRandom(void); s32 DungeonRandomCapped(s32 cap); - +s32 DungeonRandomRange(s32 low, s32 high); +bool8 RollPercentChance(s32 percentChance); +bool8 RollPercentChance_2(s32 percentChance); #endif diff --git a/include/dungeon_random_1.h b/include/dungeon_random_1.h deleted file mode 100644 index c863a7ea0..000000000 --- a/include/dungeon_random_1.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef GUARD_DUNGEON_RANDOM_1_H -#define GUARD_DUNGEON_RANDOM_1_H - -bool8 RollPercentChance(s32 percentChance); - -#endif diff --git a/include/dungeon_util.h b/include/dungeon_util.h index 49156050f..95ad43112 100644 --- a/include/dungeon_util.h +++ b/include/dungeon_util.h @@ -13,5 +13,6 @@ u8 GetEntityRoomIndex(struct DungeonEntity *entity); struct DungeonEntityData *GetTrapData(struct DungeonEntity *entity); struct ItemSlot *GetItemData(struct DungeonEntity *entity); struct MapTile *GetMapTileForDungeonEntity_2(struct DungeonEntity *entity); +struct ItemSlot *GetItemData_1(struct DungeonEntity *entity); #endif diff --git a/include/dungeon_util_1.h b/include/dungeon_util_1.h index 070e6d882..f964fc0d6 100644 --- a/include/dungeon_util_1.h +++ b/include/dungeon_util_1.h @@ -4,5 +4,6 @@ #include "dungeon_entity.h" bool8 IsMovingClient(struct DungeonEntity *entity); +void ShiftCameraToPosition(struct Position32 *posStruct, s32 cameraSteps); #endif diff --git a/include/dungeon_visibility.h b/include/dungeon_visibility.h index 62e716313..f493c3d1a 100644 --- a/include/dungeon_visibility.h +++ b/include/dungeon_visibility.h @@ -4,5 +4,9 @@ #include "dungeon_entity.h" bool8 CanSee(struct DungeonEntity *entity, struct DungeonEntity *targetEntity); +bool8 CanSee_2(struct DungeonEntity *entity, struct DungeonEntity *targetEntity); +bool8 sub_8045A70(struct DungeonEntity *entity, struct DungeonEntity *targetEntity); +bool8 sub_8045AAC(struct DungeonEntity *entity, struct Position *pos); +bool8 InSameRoom(struct DungeonEntity *entity, struct Position *pos); #endif diff --git a/include/item.h b/include/item.h index 6ac68478f..d9a9de60c 100644 --- a/include/item.h +++ b/include/item.h @@ -117,6 +117,7 @@ void FillInventoryGaps(); bool8 AddHeldItemToInventory(struct HeldItem* slot); bool8 IsNotMoneyOrUsedTMItem(u8 id); s32 FindItemInInventory(u8 itemIndex); +bool8 IsHMItem(u8 id); void RestoreHeldItem(struct unkStruct_8094924*, struct HeldItem*); diff --git a/include/moves.h b/include/moves.h index 24b524927..12e6f4771 100644 --- a/include/moves.h +++ b/include/moves.h @@ -12,7 +12,7 @@ void InitZeroedPPPokemonMove(struct PokemonMove *move, u16 moveID); s16 GetMoveTargetingFlags(struct PokemonMove *move, u32 isAI); u8 GetMoveType(struct PokemonMove *move); u8 GetMoveWeight(struct PokemonMove *move); -u8 GetMoveHitCount(struct PokemonMove *move); +u32 GetMoveHitCount(struct PokemonMove *move); s32 GetMovePower(struct PokemonMove *move); s32 GetMoveAccuracy(struct PokemonMove *move, u32 accuracyType); u32 GetMoveMaxPP(struct PokemonMove *move); diff --git a/include/pokemon.h b/include/pokemon.h index 6b514c829..c3135b7ca 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -193,6 +193,7 @@ void PrintColoredPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon, s32 void PeekPokemonItem(s16 index_, struct HeldItem* item); void GivePokemonItem(s16 index_, struct HeldItem* item); bool8 IsPokemonRenamed(struct PokemonStruct* pokemon); +bool8 CanMonLearnMove(u16 moveID, s16 _species); u8 *GetCategoryString(s16 index); u8 GetPokemonSize(s16 index); @@ -204,7 +205,7 @@ u8 GetUnk1B(s16 index); bool8 GetIsMoving(s16 index); u8 GetUnk1D(s16 index); u16 GetLowKickDmg(s16 index); -u16 GetSizeOrbDmg(s16 index); +u32 GetSizeOrbDmg(s16 index); u8 GetFriendArea(s16 index); u16 GetBaseHP(s16 index); bool8 IsToolboxEnabled(s16 index); diff --git a/ld_script.txt b/ld_script.txt index b847ddcff..0068dbbe0 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -126,6 +126,8 @@ SECTIONS { src/thank_you_wonder_mail.o(.text); src/wonder_mail_2.o(.text); asm/wonder_mail_2.o(.text); + src/wonder_mail_2_1.o(.text); + asm/wonder_mail_802C860.o(.text); src/wonder_mail_3.o(.text); asm/wonder_mail_3.o(.text); src/wonder_mail_802DF88.o(.text); @@ -193,6 +195,7 @@ SECTIONS { src/dungeon_util.o(.text); asm/code_80450F8.o(.text); src/dungeon_visibility.o(.text); + src/code_8045A00.o(.text); asm/code_8045A00.o(.text); src/dungeon_items.o(.text); asm/code_8046CE4.o(.text); @@ -230,11 +233,6 @@ SECTIONS { src/dungeon_capabilities_1.o(.text); asm/code_8070E3C.o(.text); src/dungeon_ai_targeting.o(.text); - asm/code_807138C.o(.text); - src/dungeon_ai_targeting_1.o(.text); - asm/code_8071518.o(.text); - src/dungeon_ai_targeting_2.o(.text); - asm/code_807167C.o(.text); src/dungeon_pokemon_attributes.o(.text); asm/code_80718D8.o(.text); src/dungeon_ai_items.o(.text); @@ -254,14 +252,13 @@ SECTIONS { asm/code_807CD9C.o(.text); src/weather.o(.text); asm/code_807E5AC.o(.text); + src/code_807E5AC.o(.text); src/trap.o(.text); asm/code_807FCD4.o(.text); src/code_8083288.o(.text); src/dungeon_range.o(.text); asm/code_808333C.o(.text); src/dungeon_random.o(.text); - asm/code_808411C.o(.text); - src/dungeon_random_1.o(.text); asm/code_808417C.o(.text); src/code_80848F0.o(.text); asm/code_80848F0.o(.text); @@ -417,6 +414,9 @@ SECTIONS { src/wonder_mail.o(.rodata); src/thank_you_wonder_mail.o(.rodata); src/wonder_mail_2.o(.rodata); + src/wonder_mail_2_1.o(.rodata); + src/wonder_mail_3.o(.rodata); + src/wonder_mail_802DF88.o(.rodata); data/data_80DED44.o(.rodata); src/post_office_guide.o(.rodata); data/data_80E1F30.o(.rodata); @@ -453,7 +453,6 @@ SECTIONS { src/dungeon_capabilities_1.o(.rodata); data/data_8106FB5.o(.rodata); src/dungeon_ai_targeting.o(.rodata); - src/dungeon_ai_targeting_2.o(.rodata); data/data_8107010.o(.rodata); src/friend_area.o(.rodata); data/data_810AC60.o(.rodata); diff --git a/src/adventure_log.c b/src/adventure_log.c index bf0424be9..9e919e068 100644 --- a/src/adventure_log.c +++ b/src/adventure_log.c @@ -62,7 +62,14 @@ extern s16 sub_8097838(); extern s16 sub_8097870(); extern s32 sub_80977B8(); extern s32 sub_80977F8(); -extern void xxx_call_draw_string(s32, u32, u8 *, u32, u32); +extern void xxx_call_draw_string(s32, u32, const u8 *, u32, u32); +extern void sub_8008C54(u32); +extern void sub_80073B8(u32); +extern void sub_80073E0(u32); +extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32); +extern void xxx_format_and_draw(u32, u32, const char *, u32, u32); +const u8 *GetAdventureLogLine(u8 index); +extern s32 sub_8013800(void *, s32); extern u32 gUnknown_202DE30; u32 CreateAdventureLogScreen(u32 param_1) @@ -202,14 +209,13 @@ void sub_8032084(void) } #endif -// Mostly matches except around the switch -#ifdef NONMATCHING void DisplayAdventureLog(void) { s32 counter; s32 r4; // r4 s32 r6; // r6 u8 temp; + s32 v1, v2, v3, v4, v5, v6; sub_8008C54(gAdventureLog->unk34); sub_80073B8(gAdventureLog->unk34); @@ -229,27 +235,38 @@ void DisplayAdventureLog(void) if(sub_8097710(temp)){ switch(temp) { case 0xc: - gUnknown_202DE30 = sub_80978B8(); + v1 = sub_80978B8(); + gUnknown_202DE30 = (s16)v1; + xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0); break; case 7: - gUnknown_202DE30 = sub_8097880(); + v2 = sub_8097880(); + gUnknown_202DE30 = (s16)v2; + xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0); break; case 0xb: - gUnknown_202DE30 = sub_8097838(); + v3 = sub_8097838(); + gUnknown_202DE30 = (s16)v3; + xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0); break; case 8: - gUnknown_202DE30 = sub_80977B8(); + v4 = sub_80977B8(); + gUnknown_202DE30 = v4; + xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0); break; case 9: - gUnknown_202DE30 = sub_80977F8(); + v5 = sub_80977F8(); + gUnknown_202DE30 = v5; + xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0); break; case 10: - gUnknown_202DE30 = sub_8097870(); - break; + v6 = sub_8097870(); + gUnknown_202DE30 = (s16)v6; + // fallthrough default: + xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0); break; } - xxx_format_and_draw(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(temp), gAdventureLog->unk34, 0); } else { @@ -259,171 +276,3 @@ void DisplayAdventureLog(void) } sub_80073E0(gAdventureLog->unk34); } -#else -NAKED -void DisplayAdventureLog(void) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tsub sp, 0x8\n" - "\tldr r5, _08032158\n" - "\tldr r0, [r5]\n" - "\tldr r0, [r0, 0x34]\n" - "\tbl sub_8008C54\n" - "\tldr r0, [r5]\n" - "\tldr r0, [r0, 0x34]\n" - "\tbl sub_80073B8\n" - "\tldr r0, [r5]\n" - "\tmovs r1, 0x1E\n" - "\tldrsh r4, [r0, r1]\n" - "\tlsls r4, 3\n" - "\tadds r6, r4, 0\n" - "\tadds r6, 0xA\n" - "\tldr r2, _0803215C\n" - "\tldr r3, [r0, 0x34]\n" - "\tmovs r0, 0\n" - "\tstr r0, [sp]\n" - "\tadds r0, r6, 0\n" - "\tmovs r1, 0\n" - "\tbl xxx_call_draw_string\n" - "\tadds r4, 0x4\n" - "\tldr r1, [r5]\n" - "\tadds r0, r1, 0\n" - "\tadds r0, 0x9E\n" - "\tldrb r0, [r0]\n" - "\tlsls r0, 3\n" - "\tadds r6, r4, r0\n" - "\tmovs r0, 0x1E\n" - "\tldrsh r2, [r1, r0]\n" - "\tadds r2, 0x1\n" - "\tmovs r0, 0x7\n" - "\tstr r0, [sp]\n" - "\tldr r0, [r1, 0x34]\n" - "\tstr r0, [sp, 0x4]\n" - "\tadds r0, r6, 0\n" - "\tmovs r1, 0\n" - "\tmovs r3, 0x1\n" - "\tbl sub_8012BC4\n" - "\tmovs r7, 0\n" - "\tldr r0, [r5]\n" - "\tb _0803223A\n" - "\t.align 2, 0\n" -"_08032158: .4byte gAdventureLog\n" -"_0803215C: .4byte gAdventureLogHeaderText\n" -"_08032160:\n" - "\tldr r5, _08032194\n" - "\tldr r0, [r5]\n" - "\tmovs r2, 0x1E\n" - "\tldrsh r1, [r0, r2]\n" - "\tmovs r2, 0x1C\n" - "\tldrsh r0, [r0, r2]\n" - "\tmuls r0, r1\n" - "\tadds r0, r7\n" - "\tlsls r0, 24\n" - "\tlsrs r6, r0, 24\n" - "\tadds r0, r6, 0\n" - "\tbl sub_8097710\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tcmp r4, 0\n" - "\tbeq _0803221C\n" - "\tsubs r0, r6, 0x7\n" - "\tcmp r0, 0x5\n" - "\tbhi _080321EC\n" - "\tlsls r0, 2\n" - "\tldr r1, _08032198\n" - "\tadds r0, r1\n" - "\tldr r0, [r0]\n" - "\tmov pc, r0\n" - "\t.align 2, 0\n" -"_08032194: .4byte gAdventureLog\n" -"_08032198: .4byte _0803219C\n" - "\t.align 2, 0\n" -"_0803219C:\n" - "\t.4byte _080321BA\n" - "\t.4byte _080321C6\n" - "\t.4byte _080321D4\n" - "\t.4byte _080321E0\n" - "\t.4byte _080321C0\n" - "\t.4byte _080321B4\n" -"_080321B4:\n" - "\tbl sub_80978B8\n" - "\tb _080321E4\n" -"_080321BA:\n" - "\tbl sub_8097880\n" - "\tb _080321E4\n" -"_080321C0:\n" - "\tbl sub_8097838\n" - "\tb _080321E4\n" -"_080321C6:\n" - "\tbl sub_80977B8\n" - "\tldr r1, _080321D0\n" - "\tb _080321EA\n" - "\t.align 2, 0\n" -"_080321D0: .4byte gUnknown_202DE30\n" -"_080321D4:\n" - "\tbl sub_80977F8\n" - "\tldr r1, _080321DC\n" - "\tb _080321EA\n" - "\t.align 2, 0\n" -"_080321DC: .4byte gUnknown_202DE30\n" -"_080321E0:\n" - "\tbl sub_8097870\n" -"_080321E4:\n" - "\tldr r1, _08032214\n" - "\tlsls r0, 16\n" - "\tasrs r0, 16\n" -"_080321EA:\n" - "\tstr r0, [r1]\n" -"_080321EC:\n" - "\tldr r4, _08032218\n" - "\tldr r0, [r4]\n" - "\tadds r1, r7, 0\n" - "\tbl sub_8013800\n" - "\tadds r5, r0, 0\n" - "\tadds r0, r6, 0\n" - "\tbl GetAdventureLogLine\n" - "\tadds r2, r0, 0\n" - "\tldr r0, [r4]\n" - "\tldr r3, [r0, 0x34]\n" - "\tmovs r0, 0\n" - "\tstr r0, [sp]\n" - "\tmovs r0, 0x8\n" - "\tadds r1, r5, 0\n" - "\tbl xxx_format_and_draw\n" - "\tb _08032234\n" - "\t.align 2, 0\n" -"_08032214: .4byte gUnknown_202DE30\n" -"_08032218: .4byte gAdventureLog\n" -"_0803221C:\n" - "\tldr r0, [r5]\n" - "\tadds r1, r7, 0\n" - "\tbl sub_8013800\n" - "\tadds r1, r0, 0\n" - "\tldr r2, _08032254\n" - "\tldr r0, [r5]\n" - "\tldr r3, [r0, 0x34]\n" - "\tstr r4, [sp]\n" - "\tmovs r0, 0x8\n" - "\tbl xxx_call_draw_string\n" -"_08032234:\n" - "\tadds r7, 0x1\n" - "\tldr r0, _08032258\n" - "\tldr r0, [r0]\n" -"_0803223A:\n" - "\tmovs r1, 0x1A\n" - "\tldrsh r0, [r0, r1]\n" - "\tcmp r7, r0\n" - "\tblt _08032160\n" - "\tldr r0, _08032258\n" - "\tldr r0, [r0]\n" - "\tldr r0, [r0, 0x34]\n" - "\tbl sub_80073E0\n" - "\tadd sp, 0x8\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_08032254: .4byte gUnknown_80E2030\n" -"_08032258: .4byte gAdventureLog"); -} -#endif diff --git a/src/charge_move.c b/src/charge_move.c index c0d09fc2d..2ec20a256 100644 --- a/src/charge_move.c +++ b/src/charge_move.c @@ -3,7 +3,9 @@ #include "constants/move_id.h" #include "constants/status.h" +#include "dungeon_random.h" #include "dungeon_util.h" +#include "moves.h" struct MultiTurnChargeMove { @@ -39,6 +41,26 @@ const u32 gMultiTurnChargingStatuses[10] = { ALIGNED(4) const char chargingStatusFill[] = "pksdir0"; +u32 sub_8057070(struct PokemonMove *move) +{ + u32 hitCount; + hitCount = GetMoveHitCount(move); + if(hitCount == 0) + return DungeonRandomRange(2, 6); + else + return hitCount; +} + +bool8 MoveCausesPaused(struct PokemonMove *move) +{ + if(move->moveID == MOVE_FRENZY_PLANT) return TRUE; + if(move->moveID == MOVE_HYDRO_CANNON) return TRUE; + if(move->moveID == MOVE_HYPER_BEAM) return TRUE; + if(move->moveID == MOVE_BLAST_BURN) return TRUE; + + return FALSE; +} + bool8 MoveMatchesChargingStatus(struct DungeonEntity *pokemon, struct PokemonMove *move) { if (!EntityExists(pokemon)) @@ -99,4 +121,4 @@ bool8 IsCharging(struct DungeonEntity *pokemon, bool8 checkCharge) } return FALSE; } -} \ No newline at end of file +} diff --git a/src/code_801C620.c b/src/code_801C620.c index 97764875b..1e02c268c 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -24,12 +24,46 @@ struct unkStruct_203B240 u32 unk90; }; +struct unkStruct_203B244 +{ + // size: 0x554 + u32 unk0; + u8 fill4[0x4B4 - 0x4]; + u32 unk4B4; + u8 fill4B8[0x4CC - 0x4B8]; + u16 unk4CC; + u16 unk4CE; + u16 unk4D0; + u16 unk4D2; + u8 fill4D4[0x4E8 - 0x4D4]; + u32 unk4E8; + struct UnkTextStruct2 * unk4EC; + struct UnkTextStruct2 unk4F0[4]; + u8 unk550[4]; +}; + +extern const struct UnkTextStruct2 gUnknown_80DBE54; + +extern struct unkStruct_203B244 *gUnknown_203B244; extern struct unkStruct_203B240 *gUnknown_203B240; +extern u32 gUnknown_203B248; +extern u16 gUnknown_203B24C; +extern u16 gUnknown_203B24E; + extern char gUnknown_80DBE2C[]; // {ARG_MOVE_ITEM_0} extern char gUnknown_80DBE30[]; // {ARG_POKEMON_0} extern u8 gUnknown_202DE58[0x58]; extern u8 gAvailablePokemonNames[0x58]; +extern bool8 sub_801CF14(u32); +extern void sub_8012D08(struct UnkTextStruct2 *, u32); +extern void sub_8013818(u32 *, u32, u32, u32); +extern u32 sub_801CE58(void); +extern void sub_8013984(void *); +extern void sub_801CC38(void); +extern void sub_801CCD8(void); +extern void sub_801CF94(void); + extern void ResetSprites(u32); extern void sub_801317C(u32 *); @@ -204,3 +238,38 @@ void sub_801C848(void) break; } } + +bool8 sub_801C8C4(s32 param_1, s32 param_2, struct UnkTextStruct2_sub *param_3, u32 param_4) +{ + if (sub_801CF14(param_1)) { + return FALSE; + } + else + { + if (gUnknown_203B244 == NULL) { + gUnknown_203B244 = MemoryAlloc(sizeof(struct unkStruct_203B244), 8); + } + gUnknown_203B244->unk0 = param_1; + sub_801CF94(); + gUnknown_203B244->unk4E8 = param_2; + gUnknown_203B244->unk4EC = &gUnknown_203B244->unk4F0[param_2]; + sub_8006518(gUnknown_203B244->unk4F0); + gUnknown_203B244->unk4F0[gUnknown_203B244->unk4E8] = gUnknown_80DBE54; + gUnknown_203B244->unk4EC->unk14 = gUnknown_203B244->unk550; + if (param_3 != NULL) { + gUnknown_203B244->unk4F0[gUnknown_203B244->unk4E8].unk08 = *param_3; + } + sub_8012D08(gUnknown_203B244->unk4EC, param_4); + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B244->unk4F0,1,1); + sub_8013818(&gUnknown_203B244->unk4B4, sub_801CE58(), param_4, param_2); + if (gUnknown_203B248 == gUnknown_203B244->unk0) { + gUnknown_203B244->unk4CC = gUnknown_203B24C; + gUnknown_203B244->unk4D2 = gUnknown_203B24E; + sub_8013984(&gUnknown_203B244->unk4B4); + } + sub_801CC38(); + sub_801CCD8(); + return TRUE; + } +} diff --git a/src/code_801D760.c b/src/code_801D760.c index a84aba53e..c2014eab0 100644 --- a/src/code_801D760.c +++ b/src/code_801D760.c @@ -15,7 +15,13 @@ struct unkStruct_203B258 // size: 0xA0 u8 fill0[0x14]; u32 unk14; - u8 fill18[0x34 - 0x18]; + u16 unk18; + u16 unk1A; + u16 unk1C; + u16 unk1E; + u16 unk20; + u16 unk22; + u8 unk24[0x34 - 0x24]; u32 unk34; struct UnkTextStruct2 *unk38; struct UnkTextStruct2 unk3C[4]; @@ -24,6 +30,7 @@ struct unkStruct_203B258 extern struct unkStruct_203B258 *gUnknown_203B258; extern struct UnkTextStruct2 gUnknown_80DBF88; +extern struct UnkTextStruct2 gUnknown_80DBF70; extern void sub_8013818(void *, u32, u32, u32); extern void sub_8013878(void *, s32); @@ -32,6 +39,8 @@ extern u32 GetKeyPress(void *); extern void PlayMenuSoundEffect(u32); extern void sub_801DB54(); extern void sub_801DBD4(); +extern void sub_8013984(void *); +extern void AddMenuCursorSprite(void *); extern u32 sub_801BF48(void); extern void sub_801BF98(void); @@ -403,3 +412,33 @@ u32 sub_801DA78(void) } } } + +s16 sub_801DAC0(void) +{ + return (gUnknown_203B258->unk1E * gUnknown_203B258->unk1C) + gUnknown_203B258->unk18; +} + +void sub_801DADC(u32 r0) +{ + u8 r0_u8; + r0_u8 = r0; + + gUnknown_203B258->unk22 = 0xE5; + sub_8013984(gUnknown_203B258); + sub_801DB54(); + sub_801DBD4(); + if(r0_u8) + AddMenuCursorSprite(gUnknown_203B258); +} + +void sub_801DB0C(void) +{ + if(gUnknown_203B258 != NULL) + { + gUnknown_203B258->unk3C[gUnknown_203B258->unk34] = gUnknown_80DBF70; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B258->unk3C, 1, 1); + MemoryFree(gUnknown_203B258); + gUnknown_203B258 = NULL; + } +} diff --git a/src/code_8045A00.c b/src/code_8045A00.c new file mode 100644 index 000000000..68fcd8e30 --- /dev/null +++ b/src/code_8045A00.c @@ -0,0 +1,92 @@ +#include "global.h" +#include "dungeon_global_data.h" +#include "dungeon_util.h" + +extern u8 *gUnknown_80FE6F4[]; +extern struct unkStruct_8090F58 gUnknown_80F699C; +extern struct unkStruct_8090F58 gUnknown_80F69A8; +extern struct unkStruct_8090F58 gUnknown_80F6990; + +extern struct DungeonEntityData* GetTrapData_1(struct DungeonEntity *entity); +extern void SetMessageArgument_2(u8 *, struct DungeonEntityData *, u32); +extern void GetTrapName(u8 *, u8); + +void sub_8045BF8(u8 *, struct ItemSlot *); + +void sub_8045ACC(void) +{ + struct DungeonEntity *uVar2; + s32 index; + s32 pokeCount; + + pokeCount = 0; + + for(index = 0; index < MAX_TEAM_MEMBERS; index++) + { + uVar2 = gDungeonGlobalData->teamPokemon[index]; + if (EntityExists(uVar2)) { + gDungeonGlobalData->allPokemon[pokeCount] = uVar2; + pokeCount++; + } + } + + for(index = 0; index < DUNGEON_MAX_WILD_POKEMON; index++) + { + uVar2 = gDungeonGlobalData->wildPokemon[index]; + if (EntityExists(uVar2)) { + gDungeonGlobalData->allPokemon[pokeCount] = uVar2; + pokeCount++; + } + } + for (; pokeCount < DUNGEON_MAX_POKEMON; pokeCount++) { + gDungeonGlobalData->allPokemon[pokeCount] = NULL; + } +} + +s32 GetTeamMemberEntityIndex(struct DungeonEntity *entity) +{ + struct DungeonEntity *uVar2; + s32 index; + + for(index = 0; index < MAX_TEAM_MEMBERS; index++) + { + uVar2 = gDungeonGlobalData->teamPokemon[index]; + if (entity == uVar2) + return index; + } + return -1; +} + +void SetMessageArgument(char *buffer, struct DungeonEntity *entity, u32 param_3) +{ + switch(GetEntityType(entity)) + { + case ENTITY_POKEMON: + SetMessageArgument_2(buffer, entity->entityData, param_3); + break; + case ENTITY_ITEM: + sub_8045BF8(buffer, GetItemData_1(entity)); + break; + case ENTITY_TRAP: + GetTrapName(buffer, *((u8 *)GetTrapData_1(entity))); + break; + default: + strcpy(buffer, *gUnknown_80FE6F4); + break; + } +} + +void sub_8045BF8(u8 *buffer, struct ItemSlot *item) +{ + sub_8090E14(buffer, item, &gUnknown_80F699C); +} + +void sub_8045C08(u8 *buffer, struct ItemSlot *item) +{ + sub_8090E14(buffer, item, &gUnknown_80F69A8); +} + +void sub_8045C18(u8 *buffer, struct ItemSlot *item) +{ + sub_8090E14(buffer, item, &gUnknown_80F6990); +} diff --git a/src/code_80521D0_1.c b/src/code_80521D0_1.c index 53f5586e7..f4257ad7b 100644 --- a/src/code_80521D0_1.c +++ b/src/code_80521D0_1.c @@ -6,68 +6,69 @@ #include "dungeon_map_access.h" #include "dungeon_random.h" #include "dungeon_util.h" +#include "dungeon_util_1.h" #include "friend_area.h" #include "map.h" #include "pokemon.h" extern struct DungeonEntity *xxx_call_GetLeaderEntity(void); -extern struct DungeonEntity *sub_8085680(u32); +extern struct DungeonEntity *GetEntityFromClientType(u32); extern char gUnknown_202E038[0x50]; extern u32 gUnknown_202EDC8; -extern u32 gUnknown_81062A8; -extern u32 gUnknown_8106074; -extern u32 gUnknown_81060BC; -extern u32 gUnknown_8106104; -extern u32 gUnknown_8106140; -extern u32 gUnknown_8106214; -extern u32 gUnknown_8106244; -extern u32 gUnknown_810627C; +extern u32 gKyogrePreFightDialogue_8; +extern u32 gKyogrePreFightDialogue_1; +extern u32 gKyogrePreFightDialogue_2; +extern u32 gKyogrePreFightDialogue_3; +extern u32 gKyogrePreFightDialogue_4; +extern u32 gKyogrePreFightDialogue_5; +extern u32 gKyogrePreFightDialogue_6; +extern u32 gKyogrePreFightDialogue_7; extern u32 gUnknown_810697C; extern u64 gUnknown_8107544[]; -extern u32 gUnknown_8106778; -extern u32 gUnknown_81067BC; -extern u32 gUnknown_81067E0; -extern u32 gUnknown_8106834; -extern u32 gUnknown_810688C; -extern u32 gUnknown_81068D0; -extern u32 gUnknown_8106918; -extern u32 gUnknown_8106934; +extern u32 gMedichamRescueDialogue_1; +extern u32 gMedichamRescueDialogue_2; +extern u32 gMedichamRescueDialogue_3; +extern u32 gMedichamRescueDialogue_4; +extern u32 gSmeargleRescueDialogue_1; +extern u32 gSmeargleRescueDialogue_2; +extern u32 gSmeargleRescueDialogue_3; +extern u32 gSmeargleRescueDialogue_4; extern u32 gUnknown_8106720; -extern u32 gUnknown_810663C; -extern u32 gUnknown_81063D0; -extern u32 gUnknown_8106400; -extern u32 gUnknown_810643C; -extern u32 gUnknown_8106468; -extern u32 gUnknown_810648C; -extern u32 gUnknown_81064BC; -extern u32 gUnknown_8106500; -extern u32 gUnknown_8106534; -extern u32 gUnknown_8106560; +extern u32 gCelebiJoinDialogue_10; +extern u32 gCelebiJoinDialogue_1; +extern u32 gCelebiJoinDialogue_2; +extern u32 gCelebiJoinDialogue_3; +extern u32 gCelebiJoinDialogue_4; +extern u32 gCelebiJoinDialogue_5; +extern u32 gCelebiJoinDialogue_6; +extern u32 gCelebiJoinDialogue_7; +extern u32 gCelebiJoinDialogue_8; +extern u32 gCelebiJoinDialogue_9; extern u32 *gPtrPurityForestAllowCelebiToJoinText; extern u32 gPurityForestAllowCelebiToJoinPrompt; extern u32 *gPtrPurityForestRefuseCelebiConfirmText; extern u32 gPurityForestRefuseCelebiConfirmPrompt; -extern u32 gUnknown_81062B4; -extern u32 gUnknown_81062E8; -extern u32 gUnknown_8106368; -extern u32 gUnknown_8106390; -extern u32 gUnknown_81063C4; -extern u32 gUnknown_8106068; -extern u32 gUnknown_8105E88; -extern u32 gUnknown_8105EF8; -extern u32 gUnknown_8105F38; -extern u32 gUnknown_8105F74; -extern u32 gUnknown_8105FA0; -extern u32 gUnknown_8105FD8; -extern u32 gUnknown_8106024; +extern u32 gDeoxysPreFightDialogue_1; +extern u32 gDeoxysPreFightDialogue_2; +extern u32 gDeoxysPreFightDialogue_3; +extern u32 gDeoxysPreFightDialogue_4; +extern u32 gDeoxysPreFightDialogue_5; +extern u32 gLugiaPreFightDialogue_8; +extern u32 gLugiaPreFightDialogue_1; +extern u32 gLugiaPreFightDialogue_2; +extern u32 gLugiaPreFightDialogue_3; +extern u32 gLugiaPreFightDialogue_4; +extern u32 gLugiaPreFightDialogue_5; +extern u32 gLugiaPreFightDialogue_6; +extern u32 gLugiaPreFightDialogue_7; extern u32 gUnknown_81058C4; extern u32 gUnknown_81058A8; extern u8 sub_800E9A8(u32); extern void sub_800DC14(u32); -extern void sub_808BAA4(); +extern void JirachiWishGrantFlash(); extern void sub_8086A3C(struct DungeonEntity *r0); extern void sub_8083E88(u32); @@ -105,16 +106,15 @@ extern void sub_80861D4(struct DungeonEntity *, u32, u32); extern void sub_806FDF4(struct DungeonEntity *, struct DungeonEntity *, struct DungeonEntity **); extern u32 sub_80861F8(u32, struct DungeonEntity *, u32); extern void sub_8083ED8(u32); -extern u32 sub_803F994(); -extern s32 sub_803F9B0(); +extern s32 GetCameraXPos(); +extern s32 GetCameraYPos(); extern void sub_803F878(u32, s32); extern void SetupBossFightHP(struct DungeonEntity *, u32, u32); -extern void sub_8085C54(u32, u32, u32, u32, u32); +extern void SetDungeonBGColorRGB(u32, u32, u32, u32, u32); extern void sub_803E9D0(void); extern void DeoxysScreenFlash(void); extern void sub_8085EB0(); extern void sub_808563C(void *); -extern void sub_80858AC(u32 *, u32); void SetupDeoxysFightHP(struct DungeonEntity *r0); void sub_808C550(void); @@ -126,8 +126,8 @@ void sub_808C360(void); void KyogreScreenFlash(); void sub_808C0CC(); -void sub_808BFA0(); -void sub_808C02C(); +void LugiaScreenFlash(); +void LugiaScreenFlash2(); extern void sub_80861B8(struct DungeonEntity *, u32, u32); void nullsub_99(); @@ -146,14 +146,14 @@ void sub_808BBA8(struct DungeonEntity *param_1) sub_806BFC0(param_1->entityData,0); } -void sub_808BBB8(struct DungeonEntity *param_1) +void JirachiDropInEffect(struct DungeonEntity *jirachiEntity) { s32 iVar1; s32 iVar2; - sub_80861F8(0x1b,param_1,0); - sub_8086A54(param_1); - sub_80861B8(param_1,0xe,0); + sub_80861F8(0x1b,jirachiEntity,0); + sub_8086A54(jirachiEntity); + sub_80861B8(jirachiEntity,0xe,0); iVar1 = 0xa000; iVar2 = 0x200; PlaySoundEffect(0x1f8); @@ -163,44 +163,44 @@ void sub_808BBB8(struct DungeonEntity *param_1) iVar2 = 0x100; } if (iVar1 < 0) break; - param_1->entityData->unk174 = iVar1; + jirachiEntity->entityData->unk174 = iVar1; sub_803E46C(0x46); } - param_1->entityData->unk174 = 0; + jirachiEntity->entityData->unk174 = 0; } -void sub_808BC20(struct DungeonEntity * param_1) +void JirachiSpinEffect(struct DungeonEntity * jirachiEntity) { s32 uVar1; PlaySoundEffect(0x298); - for(uVar1 = 0; uVar1 < 0x19; uVar1++){ - SetFacingDirection(param_1,uVar1 & DIRECTION_MASK); + for(uVar1 = 0; uVar1 < 25; uVar1++){ + SetFacingDirection(jirachiEntity, uVar1 & DIRECTION_MASK); sub_803E708(3,0x46); } - param_1->entityData->unk15E = 1; + jirachiEntity->entityData->unk15E = 1; PlaySoundEffect(0x27f); - sub_80861F8(99,param_1,1); + sub_80861F8(99,jirachiEntity,1); } -void JirachiWishGrantDialogue(struct DungeonEntity *param_1) +void JirachiWishGrantDialogue(struct DungeonEntity *jirachiEntity) { u32 uVar2; - param_1->entityData->unk15D = 1; + jirachiEntity->entityData->unk15D = 1; // Nnnnnnnnnn! DisplayDungeonDialogue(&gUnknown_81058A8); PlaySoundEffect(0x375); - sub_80861F8(0x67,param_1,1); + sub_80861F8(0x67,jirachiEntity,1); PlaySoundEffect(0x2a8); - uVar2 = sub_80861F8(0x68,param_1,0); + uVar2 = sub_80861F8(0x68,jirachiEntity,0); // Taaaaaaaah! DisplayDungeonDialogue(&gUnknown_81058C4); if (sub_800E9A8(uVar2) != 0) { sub_800DC14(uVar2); } sub_803E708(10,0x46); - sub_808BAA4(); + JirachiWishGrantFlash(); } void sub_808BCE4(void) @@ -272,7 +272,7 @@ void sub_808BDEC(void) struct DungeonEntity * LugiaEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - LugiaEntity = sub_8085680(0x1b); + LugiaEntity = GetEntityFromClientType(0x1b); sub_8083F14(); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -303,89 +303,89 @@ void LugiaPreFightDialogue(void) struct DungeonEntity * LugiaEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - LugiaEntity = sub_8085680(0x1b); + LugiaEntity = GetEntityFromClientType(0x1b); if (HasRecruitedMon(SPECIES_LUGIA)) { sub_8086448(); - sub_80866C4(&gUnknown_8106068); + sub_80866C4(&gLugiaPreFightDialogue_8); } else { sub_8083F14(); sub_8086448(); - DisplayDungeonDialogue(&gUnknown_8105E88); + DisplayDungeonDialogue(&gLugiaPreFightDialogue_1); sub_8083EA8(0x23,0x3c); sub_808C0CC(); - DisplayDungeonDialogue(&gUnknown_8105EF8); - sub_808BFA0(); - DisplayDungeonDialogue(&gUnknown_8105F38); + DisplayDungeonDialogue(&gLugiaPreFightDialogue_2); + LugiaScreenFlash(); + DisplayDungeonDialogue(&gLugiaPreFightDialogue_3); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8105F74); + DisplayDungeonDialogue(&gLugiaPreFightDialogue_4); PlaySoundEffect(0x1f8); sub_80861D4(LugiaEntity,0xd,0); sub_803E708(0x2b,0x46); sub_80861B8(LugiaEntity,0,0); - DisplayDungeonDialogue(&gUnknown_8105FA0); - sub_808BFA0(); - DisplayDungeonDialogue(&gUnknown_8105FD8); - sub_808C02C(); - sub_8085C54(0xffffff06,0xffffff06,0xffffff06,1,0); + DisplayDungeonDialogue(&gLugiaPreFightDialogue_5); + LugiaScreenFlash(); + DisplayDungeonDialogue(&gLugiaPreFightDialogue_6); + LugiaScreenFlash2(); + SetDungeonBGColorRGB(0xffffff06,0xffffff06,0xffffff06,1,0); sub_8083F14(); sub_80861D4(LugiaEntity,7,0); - DisplayDungeonDialogue(&gUnknown_8106024); - sub_808BFA0(); + DisplayDungeonDialogue(&gLugiaPreFightDialogue_7); + LugiaScreenFlash(); SetupBossFightHP(LugiaEntity,800,0x20); sub_8083E88(0x23); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } } -void sub_808BFA0(void) +void LugiaScreenFlash(void) { s32 iVar1; PlaySoundEffect(0x1f6); for(iVar1 = 250; iVar1 > 149; iVar1 -= 10){ - sub_8085C54(0,0,iVar1,1,1); + SetDungeonBGColorRGB(0,0,iVar1,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); for(iVar1 = 250; iVar1 > 199; iVar1 -= 10){ - sub_8085C54(0,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(0,iVar1,iVar1,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10){ - sub_8085C54(0,0,iVar1,1,1); + SetDungeonBGColorRGB(0,0,iVar1,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); sub_8085EB0(); } -void sub_808C02C(void) +void LugiaScreenFlash2(void) { s32 iVar1; PlaySoundEffect(0x1f6); for(iVar1 = 0; iVar1 < 200; iVar1 += 100){ - sub_8085C54(iVar1,iVar1,iVar1,1,0); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,0); sub_803E46C(0x46); } for(iVar1 = 200; iVar1 >= 0; iVar1 -= 100){ - sub_8085C54(iVar1,iVar1,iVar1,1,0); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,0); sub_803E46C(0x46); } sub_803E708(4,0x46); for(iVar1 = 0; iVar1 < 200; iVar1 += 100){ - sub_8085C54(iVar1,iVar1,iVar1,1,0); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,0); sub_803E46C(0x46); } for(iVar1 = 200; iVar1 >= 0; iVar1 -= 100){ - sub_8085C54(iVar1,iVar1,iVar1,1,0); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,0); sub_803E46C(0x46); } @@ -396,11 +396,11 @@ void sub_808C02C(void) void sub_808C0CC(void) { gUnknown_202EDC8 = 0x1f; - sub_8085C54(0,0,0,1,1); + SetDungeonBGColorRGB(0,0,0,1,1); sub_803E9D0(); sub_803E46C(0x46); gDungeonGlobalData->unk7 = 0; - sub_808BFA0(); + LugiaScreenFlash(); } void sub_808C10C(void) @@ -412,7 +412,7 @@ void sub_808C10C(void) s32 iVar2; LeaderEntity = xxx_call_GetLeaderEntity(); - KyogreEntity = sub_8085680(0x1c); + KyogreEntity = GetEntityFromClientType(0x1c); sub_8083F14(); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -424,8 +424,8 @@ void sub_808C10C(void) SetFacingDirection(KyogreEntity, DIRECTION_SOUTH); } sub_8085860(LeaderEntity->posWorld.x,LeaderEntity->posWorld.y); - uVar3 = sub_803F994(); - iVar2 = sub_803F9B0(); + uVar3 = GetCameraXPos(); + iVar2 = GetCameraYPos(); sub_803F878(uVar3,iVar2 + -0x1000); CopySpeciesNametoBuffer(gUnknown_202E038,SPECIES_KYOGRE); // TODO: gUnknown_202E088 doesn't match but gUnknown_202E038 + 0x50 does @@ -446,45 +446,45 @@ void KyogrePreFightDialogue(void) struct DungeonEntity *KyogreEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - KyogreEntity = sub_8085680(0x1c); + KyogreEntity = GetEntityFromClientType(0x1c); sub_8083F14(); if (HasRecruitedMon(SPECIES_KYOGRE)) { sub_8083EA8(0x23,0x3c); SpriteLookAroundEffect(LeaderEntity); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_81062A8); + DisplayDungeonDialogue(&gKyogrePreFightDialogue_8); sub_803E708(10,0x46); gDungeonGlobalData->unk2 = 1; } else { - DisplayDungeonDialogue(&gUnknown_8106074); + DisplayDungeonDialogue(&gKyogrePreFightDialogue_1); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_81060BC); + DisplayDungeonDialogue(&gKyogrePreFightDialogue_2); sub_803E708(10,0x46); nullsub_99(); sub_803E708(10,0x46); // Gwwwwwooooooooh - DisplayDungeonDialogue(&gUnknown_8106104); + DisplayDungeonDialogue(&gKyogrePreFightDialogue_3); sub_803E708(10,0x46); sub_8083EA8(0x23,0x3c); sub_808C360(); // My duels against {ARG_POKEMON_3} (Groudon) left us both exhausted - DisplayDungeonDialogue(&gUnknown_8106140); + DisplayDungeonDialogue(&gKyogrePreFightDialogue_4); KyogreScreenFlash(); // I am {ARG_POKEMON_2} (Kyogre)! // The lord of the sea! - DisplayDungeonDialogue(&gUnknown_8106214); + DisplayDungeonDialogue(&gKyogrePreFightDialogue_5); KyogreScreenFlash(); // Witness the destructive force of my waves! - DisplayDungeonDialogue(&gUnknown_8106244); + DisplayDungeonDialogue(&gKyogrePreFightDialogue_6); KyogreScreenFlash(); // Marvel at my awesome // power! - DisplayDungeonDialogue(&gUnknown_810627C); + DisplayDungeonDialogue(&gKyogrePreFightDialogue_7); sub_803E708(10,0x46); SetupBossFightHP(KyogreEntity,600,0xb); sub_8083E88(0x23); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } } @@ -498,17 +498,17 @@ void KyogreScreenFlash(void) PlaySoundEffect(0x1f8); for(iVar1 = 250; iVar1 > 149; iVar1 -= 10){ - sub_8085C54(0,0,iVar1,1,1); + SetDungeonBGColorRGB(0,0,iVar1,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); for(iVar1 = 250; iVar1 > 199; iVar1 -= 10){ - sub_8085C54(0,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(0,iVar1,iVar1,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10){ - sub_8085C54(0,0,iVar1,1,1); + SetDungeonBGColorRGB(0,0,iVar1,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); @@ -518,7 +518,7 @@ void KyogreScreenFlash(void) void sub_808C360(void) { gUnknown_202EDC8 = 0x1f; - sub_8085C54(0,0,0,1,1); + SetDungeonBGColorRGB(0,0,0,1,1); sub_803E9D0(); sub_803E46C(0x46); gDungeonGlobalData->unk7 = 0; @@ -562,20 +562,20 @@ void DeoxysPreFightDialogue(void) if (HasRecruitedMon(SPECIES_DEOXYS_NORMAL)) { // There appears to be no one here. // It's impossible to go any further - sub_80866C4(&gUnknown_81063C4); + sub_80866C4(&gDeoxysPreFightDialogue_5); } else { - DisplayDungeonDialogue(&gUnknown_81062B4); + DisplayDungeonDialogue(&gDeoxysPreFightDialogue_1); sub_8083EA8(0x1a,0x3c); sub_808C550(); - DisplayDungeonDialogue(&gUnknown_81062E8); + DisplayDungeonDialogue(&gDeoxysPreFightDialogue_2); DeoxysScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8106368); + DisplayDungeonDialogue(&gDeoxysPreFightDialogue_3); DeoxysScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8106390); + DisplayDungeonDialogue(&gDeoxysPreFightDialogue_4); sub_803E708(10,0x46); sub_808563C(SetupDeoxysFightHP); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } } @@ -585,17 +585,17 @@ void DeoxysScreenFlash(void) PlaySoundEffect(0x2c1); for(iVar1 = 250; iVar1 > 149; iVar1 -= 10){ - sub_8085C54(iVar1,0,0,1,1); + SetDungeonBGColorRGB(iVar1,0,0,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); for(iVar1 = 250; iVar1 > 199; iVar1 -= 10){ - sub_8085C54(iVar1,iVar1,0,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,0,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10){ - sub_8085C54(iVar1,0,0,1,1); + SetDungeonBGColorRGB(iVar1,0,0,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); @@ -605,7 +605,7 @@ void DeoxysScreenFlash(void) void sub_808C550(void) { gUnknown_202EDC8 = 0x1f; - sub_8085C54(0,0,0,1,1); + SetDungeonBGColorRGB(0,0,0,1,1); sub_803E9D0(); sub_803E46C(0x46); gDungeonGlobalData->unk7 = 0; @@ -636,14 +636,14 @@ void sub_808C5C0(void) s32 iVar2; LeaderEntity = xxx_call_GetLeaderEntity(); - CelebiEntity = sub_8085680(0x1e); + CelebiEntity = GetEntityFromClientType(0x1e); sub_8083E88(0x7f); sub_80854D4(); sub_8085930(DIRECTION_NORTH); SetFacingDirection(CelebiEntity, DIRECTION_SOUTH); sub_8085860(LeaderEntity->posWorld.x,LeaderEntity->posWorld.y); - uVar3 = sub_803F994(); - iVar2 = sub_803F9B0(); + uVar3 = GetCameraXPos(); + iVar2 = GetCameraYPos(); sub_803F878(uVar3,iVar2 + 0xfffff000); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_CELEBI); } @@ -662,14 +662,14 @@ void CelebiJoinDialogue(void) struct DungeonEntity *CelebiEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - CelebiEntity = sub_8085680(0x1e); + CelebiEntity = GetEntityFromClientType(0x1e); if ((HasRecruitedMon(SPECIES_CELEBI)) || (sub_806FD18(CelebiEntity) == '\0')) { sub_8068FE0(local_1c,0x21c,0); SpriteLookAroundEffect(LeaderEntity); sub_803E708(10,0x46); // ......... - DisplayDungeonDialogue(&gUnknown_810663C); + DisplayDungeonDialogue(&gCelebiJoinDialogue_10); } else { @@ -678,14 +678,14 @@ void CelebiJoinDialogue(void) sub_80862BC(LeaderEntity); sub_803E708(10,0x46); // Oh? There's someone there. - DisplayDungeonDialogue(&gUnknown_81063D0); + DisplayDungeonDialogue(&gCelebiJoinDialogue_1); sub_803E708(10,0x46); sub_8086598(); sub_8086598(); sub_8086598(); sub_8086598(); // The Time-Traveling Pokemon {ARG_POKEMON_2} (Celebi)! - DisplayDungeonDialogue(&gUnknown_8106400); + DisplayDungeonDialogue(&gCelebiJoinDialogue_2); PlaySoundEffect(0x1c7); sub_806CDD4(CelebiEntity,10,DIRECTION_SOUTH); sub_803E708(0x14,0x46); @@ -693,7 +693,7 @@ void CelebiJoinDialogue(void) sub_803E708(4,0x46); PlaySoundEffect(0x1c7); sub_806CDD4(CelebiEntity,10,DIRECTION_SOUTH); - DisplayDungeonDialogue(&gUnknown_810643C); + DisplayDungeonDialogue(&gCelebiJoinDialogue_3); sub_803E708(10,0x46); state = 0; do { @@ -721,11 +721,11 @@ void CelebiJoinDialogue(void) sub_803E708(0x1a,0x46); PlaySoundEffect(0x1d5); sub_803E708(0x1c,0x46); - DisplayDungeonDialogue(&gUnknown_8106468); + DisplayDungeonDialogue(&gCelebiJoinDialogue_4); sub_803E708(10,0x46); sub_806FDF4(LeaderEntity,CelebiEntity,&CelebiEntity); sub_8083E88(0x7f); - DisplayDungeonDialogue(&gUnknown_810648C); + DisplayDungeonDialogue(&gCelebiJoinDialogue_5); sub_803E708(10,0x46); PlaySoundEffect(0x1c7); sub_80861D4(CelebiEntity,0xd,0); @@ -734,7 +734,7 @@ void CelebiJoinDialogue(void) sub_803E708(0x1a,0x46); PlaySoundEffect(0x1d5); sub_803E708(0x1b,0x46); - DisplayDungeonDialogue(&gUnknown_81064BC); + DisplayDungeonDialogue(&gCelebiJoinDialogue_6); sub_803E708(10,0x46); state = 2; } @@ -754,15 +754,15 @@ void CelebiJoinDialogue(void) else { sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8106500); + DisplayDungeonDialogue(&gCelebiJoinDialogue_7); sub_80861F8(0x3e,CelebiEntity,1); sub_803E708(0x18,0x46); sub_80861F8(0x3e,CelebiEntity,1); sub_803E708(0xe,0x46); - DisplayDungeonDialogue(&gUnknown_8106534); + DisplayDungeonDialogue(&gCelebiJoinDialogue_8); sub_803E708(10,0x46); sub_808C8E0(CelebiEntity); - DisplayDungeonDialogue(&gUnknown_8106560); + DisplayDungeonDialogue(&gCelebiJoinDialogue_9); sub_803E708(10,0x46); state = 2; } @@ -786,7 +786,7 @@ void CelebiJoinDialogue(void) "\tbl xxx_call_GetLeaderEntity\n" "\tadds r7, r0, 0\n" "\tmovs r0, 0x1E\n" - "\tbl sub_8085680\n" + "\tbl GetEntityFromClientType\n" "\tstr r0, [sp]\n" "\tmovs r0, 0x8A\n" "\tlsls r0, 1\n" @@ -814,7 +814,7 @@ void CelebiJoinDialogue(void) "\tbl DisplayDungeonDialogue\n" "\tb _0808C8AC\n" "\t.align 2, 0\n" -"_0808C67C: .4byte gUnknown_810663C\n" +"_0808C67C: .4byte gCelebiJoinDialogue_10\n" "_0808C680:\n" "\tadds r0, r7, 0\n" "\tbl SpriteLookAroundEffect\n" @@ -876,10 +876,10 @@ void CelebiJoinDialogue(void) "_0808C718:\n" "\tb _0808C8A6\n" "\t.align 2, 0\n" -"_0808C71C: .4byte gUnknown_81063D0\n" -"_0808C720: .4byte gUnknown_8106400\n" +"_0808C71C: .4byte gCelebiJoinDialogue_1\n" +"_0808C720: .4byte gCelebiJoinDialogue_2\n" "_0808C724: .4byte 0x000001c7\n" -"_0808C728: .4byte gUnknown_810643C\n" +"_0808C728: .4byte gCelebiJoinDialogue_3\n" "_0808C72C: .4byte 0x000001d5\n" "_0808C730:\n" "\tldr r5, _0808C75C\n" @@ -973,9 +973,9 @@ void CelebiJoinDialogue(void) "\tldr r0, _0808C820\n" "\tb _0808C898\n" "\t.align 2, 0\n" -"_0808C818: .4byte gUnknown_8106468\n" -"_0808C81C: .4byte gUnknown_810648C\n" -"_0808C820: .4byte gUnknown_81064BC\n" +"_0808C818: .4byte gCelebiJoinDialogue_4\n" +"_0808C81C: .4byte gCelebiJoinDialogue_5\n" +"_0808C820: .4byte gCelebiJoinDialogue_6\n" "_0808C824:\n" "movs r0, 0x1\n" "b _0808C8A6\n" @@ -1053,9 +1053,9 @@ void CelebiJoinDialogue(void) "\tpop {r0}\n" "\tbx r0\n" "\t.align 2, 0\n" -"_0808C8D0: .4byte gUnknown_8106500\n" -"_0808C8D4: .4byte gUnknown_8106534\n" -"_0808C8D8: .4byte gUnknown_8106560\n" +"_0808C8D0: .4byte gCelebiJoinDialogue_7\n" +"_0808C8D4: .4byte gCelebiJoinDialogue_8\n" +"_0808C8D8: .4byte gCelebiJoinDialogue_9\n" "_0808C8DC: .4byte gDungeonGlobalData"); } #endif @@ -1123,7 +1123,7 @@ void sub_808C9C4(void) struct DungeonEntity *MedichamEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - MedichamEntity = sub_8085680(7); + MedichamEntity = GetEntityFromClientType(7); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -1139,16 +1139,16 @@ void MedichamRescueDialogue(void) struct DungeonEntity *MedichamEntity; s32 counter; - MedichamEntity = sub_8085680(7); + MedichamEntity = GetEntityFromClientType(7); SpriteLookAroundEffect(MedichamEntity); sub_803E708(0xA, 0x46); // Oh my I can't seem to find a way out... - DisplayDungeonDialogue(&gUnknown_8106778); + DisplayDungeonDialogue(&gMedichamRescueDialogue_1); sub_803E708(0xA, 0x46); sub_80869E4(MedichamEntity, 4, 2, 4); sub_803E708(0xA, 0x46); // What am I to do...? - DisplayDungeonDialogue(&gUnknown_81067BC); + DisplayDungeonDialogue(&gMedichamRescueDialogue_2); sub_803E708(0xA, 0x46); sub_8086448(); sub_8086598(); @@ -1156,7 +1156,7 @@ void MedichamRescueDialogue(void) sub_80862BC(MedichamEntity); sub_803E708(0x20, 0x46); sub_80869E4(MedichamEntity, 4, 2, 0); - DisplayDungeonDialogue(&gUnknown_81067E0); + DisplayDungeonDialogue(&gMedichamRescueDialogue_3); sub_803E708(0xA, 0x46); PlaySoundEffect(0x1c7); sub_806CDD4(MedichamEntity, 0xA, DIRECTION_SOUTH); @@ -1170,7 +1170,7 @@ void MedichamRescueDialogue(void) // I am so lucky // // There appears to be no one here - DisplayDungeonDialogue(&gUnknown_8106834); + DisplayDungeonDialogue(&gMedichamRescueDialogue_4); sub_803E708(0xA, 0x46); sub_806CDD4(MedichamEntity, 0, DIRECTION_SOUTH); for(counter = 0x17; counter >= 0; counter--) @@ -1192,7 +1192,7 @@ void sub_808CB5C(void) struct DungeonEntity *MedichamEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - MedichamEntity = sub_8085680(7); + MedichamEntity = GetEntityFromClientType(7); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -1211,7 +1211,7 @@ void sub_808CBB0(void) struct DungeonEntity *SmeargleEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - SmeargleEntity = sub_8085680(0x1F); + SmeargleEntity = GetEntityFromClientType(0x1F); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -1227,19 +1227,19 @@ void SmeargleRescueDialogue(void) struct DungeonEntity *SmeargleEntity; s32 counter; - SmeargleEntity = sub_8085680(0x1F); + SmeargleEntity = GetEntityFromClientType(0x1F); SpriteLookAroundEffect(SmeargleEntity); sub_803E708(0xA, 0x46); // Ohhh... // I've lost my bearings - DisplayDungeonDialogue(&gUnknown_810688C); + DisplayDungeonDialogue(&gSmeargleRescueDialogue_1); sub_803E708(0xA, 0x46); sub_80869E4(SmeargleEntity, 4, 2, 4); sub_803E708(0xA, 0x46); // I can't get out... // I'm hungry... // I'm in trouble - DisplayDungeonDialogue(&gUnknown_81068D0); + DisplayDungeonDialogue(&gSmeargleRescueDialogue_2); sub_803E708(0xA, 0x46); sub_8086448(); sub_8086598(); @@ -1248,7 +1248,7 @@ void SmeargleRescueDialogue(void) sub_803E708(0x20, 0x46); sub_80869E4(SmeargleEntity, 4, 2, 0); // Oh! You are? - DisplayDungeonDialogue(&gUnknown_8106918); + DisplayDungeonDialogue(&gSmeargleRescueDialogue_3); sub_803E708(0xA, 0x46); PlaySoundEffect(0x1c7); sub_806CDD4(SmeargleEntity, 0xA, DIRECTION_SOUTH); @@ -1260,7 +1260,7 @@ void SmeargleRescueDialogue(void) sub_803E708(0x14, 0x46); // Did you maybe come to rescue me? // Am I glad to see you - DisplayDungeonDialogue(&gUnknown_8106934); + DisplayDungeonDialogue(&gSmeargleRescueDialogue_4); sub_803E708(0xA, 0x46); sub_806CDD4(SmeargleEntity, 0, DIRECTION_SOUTH); for(counter = 0x17; counter >= 0; counter--) @@ -1283,7 +1283,7 @@ void sub_808CD44(void) struct DungeonEntity *SmeargleEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - SmeargleEntity = sub_8085680(0x1F); + SmeargleEntity = GetEntityFromClientType(0x1F); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); diff --git a/src/code_8057824.c b/src/code_8057824.c index e43cef5b2..cc950883a 100644 --- a/src/code_8057824.c +++ b/src/code_8057824.c @@ -1,66 +1,97 @@ #include "global.h" +#include "constants/status.h" #include "dungeon_global_data.h" #include "dungeon_entity.h" #include "moves.h" +#include "status_checks_1.h" +#include "weather.h" -extern u32 gUnknown_80FCF74; -extern u32 gUnknown_80FCF80; -extern u16 gUnknown_80F4F42; +extern u8 gUnknown_202DE58[]; +extern u8 gAvailablePokemonNames[]; -extern u32 gUnknown_8106A50; -extern u32 gUnknown_8106A4C; extern s16 gUnknown_80F4DB6; +extern u16 gUnknown_80F4F42; extern u32 gUnknown_80FAC88; +extern u8 *gUnknown_80FD018[]; +extern u8 *gUnknown_80FCFBC[]; +extern u8 *gUnknown_80FCFE4[]; +extern u32 gUnknown_8106A4C; +extern s16 gUnknown_80F4DF6; +extern s16 gUnknown_80F4E0A; +extern u8 gUnknown_80F51E4[]; +extern u32 gUnknown_80F51EC[]; +extern u8 *gUnknown_80FC734[]; +extern u8 *gUnknown_80FC7EC[]; +extern u8 *gUnknown_80FCF74[]; +extern u8 *gUnknown_80FCF80[]; +extern u32 gUnknown_8106A50; +extern s16 gUnknown_80F4E08; + +struct unkStruct_80928C0 +{ + u32 unk0; + s32 unk4; + u8 unk8; + u8 unk9; +}; + +void sub_80928C0(u8 *buffer, struct PokemonMove *move, struct unkStruct_80928C0 *param_3); extern void sub_80775DC(struct DungeonEntity *r0, struct DungeonEntity *r1, u32, u32); +extern void sub_80768DC(struct DungeonEntity *, struct DungeonEntity *, u32, u32); extern void sub_80772C0(struct DungeonEntity *r0, struct DungeonEntity *r1, u32, u32, u32); extern u8 sub_807EAA0(u32, u32); -extern void sub_80522F4(struct DungeonEntity *r1, struct DungeonEntity *r2, u32); +extern void sub_80522F4(struct DungeonEntity *r1, struct DungeonEntity *r2, const char[]); extern void sub_8079F20(struct DungeonEntity *r0, struct DungeonEntity *r1, u32, u32); - +extern void sub_8077434(struct DungeonEntity *r0, struct DungeonEntity *r1, u32 , u32, u32); +extern s32 sub_80556BC(struct DungeonEntity *, struct DungeonEntity *, u8, u32, u32, u32); extern u8 sub_805727C(struct DungeonEntity *, struct DungeonEntity *, s16); extern u32 sub_8055640(struct DungeonEntity *, struct DungeonEntity *, u32, u32, u32); extern void sub_80779F0(struct DungeonEntity *, struct DungeonEntity *, u32, u32); extern void sub_8078968(struct DungeonEntity *r0, struct DungeonEntity *r1); extern void sub_8079618(struct DungeonEntity *r0, struct DungeonEntity *r1, u32, u32, u32); +extern void sub_8077AE4(struct DungeonEntity *pokemon, struct DungeonEntity *target, u32); +extern void sub_8077084(struct DungeonEntity *pokemon, struct DungeonEntity *target, u32, u32); +extern u8 sub_80776C0(struct DungeonEntity *, struct DungeonEntity *, u8); + +extern void sub_8076F80(struct DungeonEntity *, struct DungeonEntity *, u32, u32, u32, u32); extern void sub_806F370(struct DungeonEntity *r0, struct DungeonEntity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32); +extern void SetMessageArgument(char[], struct DungeonEntity*, u32); - -extern u32 gUnknown_80FD018; extern s16 sub_8057600(void*, u32); -bool32 sub_8057824(struct DungeonEntity *param_1, struct DungeonEntity *param_2) +bool32 sub_8057824(struct DungeonEntity *pokemon, struct DungeonEntity *target) { // Lower evasion? - sub_80775DC(param_1,param_2,gUnknown_8106A50,1); + sub_80775DC(pokemon,target,gUnknown_8106A50,1); return TRUE; } -bool32 sub_805783C(struct DungeonEntity *param_1, struct DungeonEntity *param_2) +bool32 sub_805783C(struct DungeonEntity *pokemon, struct DungeonEntity *target) { // Lower attack? - sub_80772C0(param_1,param_2,gUnknown_8106A4C,0x80,1); + sub_80772C0(pokemon,target,gUnknown_8106A4C,0x80,1); return TRUE; } -bool32 sub_805785C(struct DungeonEntity *param_1, struct DungeonEntity *param_2) +bool32 sub_805785C(struct DungeonEntity *pokemon, struct DungeonEntity *target) { gDungeonGlobalData->unkE26B = gUnknown_80F4F42; - if (sub_807EAA0(1,0) == '\0') { + if (sub_807EAA0(1,0) == 0) { // The weather remains unchanged - sub_80522F4(param_1,param_2,gUnknown_80FCF74); + sub_80522F4(pokemon,target,*gUnknown_80FCF74); } return TRUE; } -bool32 sub_80578A4(struct DungeonEntity *param_1, struct DungeonEntity *param_2) +bool32 sub_80578A4(struct DungeonEntity *pokemon, struct DungeonEntity *target) { gDungeonGlobalData->weatherTurnsLeft = gUnknown_80F4F42; - if (sub_807EAA0(1,0) == '\0') { + if (sub_807EAA0(1,0) == 0) { // The weather remains unchanged - sub_80522F4(param_1,param_2,gUnknown_80FCF80); + sub_80522F4(pokemon,target,*gUnknown_80FCF80); } return TRUE; } @@ -71,48 +102,231 @@ bool32 sub_80578EC(struct DungeonEntity *r0, struct DungeonEntity *r1) return TRUE; } -bool32 sub_80578FC(struct DungeonEntity *param_1, struct DungeonEntity *param_2, u32 param_3, u32 param_4) +bool32 sub_80578FC(struct DungeonEntity *pokemon, struct DungeonEntity *target, u32 param_3, u32 param_4) { bool32 uVar3; - uVar3 = 0; - if (sub_8055640(param_1, param_2, param_3, 0x80 << 1, param_4) != 0) { + uVar3 = FALSE; + if (sub_8055640(pokemon, target, param_3, 0x100, param_4) != 0) { uVar3 = TRUE; - if (sub_805727C(param_1,param_2, gUnknown_80F4DB6) != '\0') { - sub_80779F0(param_1, param_2, 1, 0); + if (sub_805727C(pokemon,target, gUnknown_80F4DB6) != 0) { + sub_80779F0(pokemon, target, 1, 0); } } return uVar3; } -bool32 sub_8057948(struct DungeonEntity *param_1, struct DungeonEntity *param_2) +bool32 sub_8057948(struct DungeonEntity *pokemon, struct DungeonEntity *target) { - sub_8078968(param_1, param_2); + sub_8078968(pokemon, target); return TRUE; } -bool32 sub_8057954(struct DungeonEntity *param_1, struct DungeonEntity *param_2, u32 param_3) +bool32 sub_8057954(struct DungeonEntity *pokemon, struct DungeonEntity *target, u32 param_3) { // {ARG_POKEMON_0} is enraged - sub_8079618(param_1,param_2,0xc,param_3,gUnknown_80FAC88); + sub_8079618(pokemon,target,0xc,param_3,gUnknown_80FAC88); return TRUE; } -bool32 sub_8057974(struct DungeonEntity *param_1, struct DungeonEntity *param_2, struct PokemonMove *param_3, u32 param_4) +bool32 sub_8057974(struct DungeonEntity *pokemon, struct DungeonEntity *target, struct PokemonMove *param_3, u32 param_4) { s32 newHP; - u8 local_24; + bool8 local_24; - newHP = param_2->entityData->HP / 2; - local_24 = 0; + newHP = target->entityData->HP / 2; + local_24 = FALSE; if (newHP != 0) { - sub_806F370(param_1,param_2,newHP,1,&local_24,GetMoveType(param_3),sub_8057600(param_3,param_4),0,1,0); + sub_806F370(pokemon,target,newHP,1,&local_24,GetMoveType(param_3),sub_8057600(param_3,param_4),0,1,0); local_24 = local_24 == 0; } else { // The target's HP can't be halved anymore - sub_80522F4(param_1,param_2,gUnknown_80FD018); + sub_80522F4(pokemon,target,*gUnknown_80FD018); } return local_24; } + +bool8 PainSplitMoveAction(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + s32 newHP; + struct DungeonEntityData *iVar2; + struct DungeonEntityData *iVar3; + struct DungeonEntityData *iVar4; + struct DungeonEntityData *iVar5; + + // Need copies for some reason to match.. + iVar3 = (pokemon->entityData); + iVar4 = iVar3; + iVar2 = (target->entityData); + iVar5 = iVar2; + + newHP = ((iVar3->HP + iVar2->HP) / 2); + iVar3->HP = newHP; + iVar5->HP = newHP; + if (iVar3->HP > iVar3->maxHP) { + iVar3->HP = iVar3->maxHP; + } + if (iVar5->HP > iVar5->maxHP) { + iVar5->HP = iVar5->maxHP; + } + SetMessageArgument(gAvailablePokemonNames,pokemon,0); + SetMessageArgument(gAvailablePokemonNames + 0x50,target,0); + if (iVar4->unkFB == 0) { + iVar4->unkFB = 1; + } + // $m0 and $m1 shared their HP + sub_80522F4(pokemon,target,*gUnknown_80FC7EC); + return TRUE; +} + +bool8 TormentMoveAction(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + struct PokemonMove *movePtr; + s32 iVar4; + struct PokemonMove struggleMove; + struct DungeonEntityData *entityData; + bool8 isTormented; + + entityData = target->entityData; + isTormented = FALSE; + + for(iVar4 = 0; iVar4 < MAX_MON_MOVES; iVar4++) + { + movePtr = &entityData->moves[iVar4]; + if ((movePtr->moveFlags & MOVE_FLAG_EXISTS) != 0) { + if ((movePtr->moveFlags & MOVE_FLAG_DISABLED) == 0) { + if ((movePtr->moveFlags & MOVE_FLAG_LAST_USED) != 0) { + sub_80928C0(gUnknown_202DE58,movePtr,0); + // $i0 was tormented + sub_80522F4(pokemon,target,*gUnknown_80FCFBC); + movePtr->moveFlags |= MOVE_FLAG_DISABLED; + isTormented = TRUE; + } + } + else if ((movePtr->moveFlags & MOVE_FLAG_LAST_USED) == 0) { + movePtr->moveFlags &= ~(MOVE_FLAG_DISABLED); + } + } + }; + + if ((entityData->struggleMoveFlags & MOVE_FLAG_DISABLED) == 0) { + if ((entityData->struggleMoveFlags & MOVE_FLAG_LAST_USED) != 0) { + InitPokemonMove(&struggleMove, MOVE_STRUGGLE); + entityData->struggleMoveFlags |= MOVE_FLAG_DISABLED; + isTormented = TRUE; + sub_80928C0(gUnknown_202DE58,&struggleMove,0); + // $i0 was tormented + sub_80522F4(pokemon,target,*gUnknown_80FCFBC); + } + } + else if ((entityData->struggleMoveFlags & MOVE_FLAG_LAST_USED) == 0) { + entityData->struggleMoveFlags &= ~(MOVE_FLAG_DISABLED); + } + if (isTormented) + { + if(entityData->chargingStatus == CHARGING_STATUS_BIDE) { + entityData->chargingStatus = CHARGING_STATUS_NONE; + } + } + else + { + // The target couldn't be tormented + sub_80522F4(pokemon,target,*gUnknown_80FCFE4); + } + return isTormented; +} + +bool8 sub_8057BB4(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + sub_80779F0(pokemon, target, 1, 1); + return TRUE; +} + +bool8 sub_8057BC4(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + sub_8077AE4(pokemon, target, 1); + sub_8077084(pokemon, target, gUnknown_8106A4C, 2); + return TRUE; +} + +bool8 sub_8057BEC(struct DungeonEntity *pokemon, struct DungeonEntity *target, u32 param_3, u32 param_4) +{ + bool8 uVar3; + + uVar3 = FALSE; + if (IsSleeping(pokemon)) { + if (sub_8055640(pokemon,target,param_3,0x100,param_4) != 0) { + uVar3 = TRUE; + if (sub_805727C(pokemon,target,gUnknown_80F4E0A) != 0) { + sub_80776C0(pokemon,target,0); + } + } + } + else { + sub_80522F4(pokemon,target,*gUnknown_80FC734); + } + return uVar3; +} + +bool8 sub_8057C68(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + sub_8077434(pokemon, target, gUnknown_8106A4C, 0x40, 1); + return TRUE; +} + +bool8 sub_8057C88(struct DungeonEntity *pokemon, struct DungeonEntity *target, u32 param_3, u32 param_4) +{ + u8 uVar3; + + uVar3 = FALSE; + if (sub_8055640(pokemon, target, param_3, 0x100, param_4) != 0) { + uVar3 = TRUE; + if (sub_805727C(pokemon,target,gUnknown_80F4DF6) != 0) { + sub_80776C0(pokemon,target,0); + } + } + return uVar3; +} + +s32 sub_8057CD0(struct DungeonEntity * pokemon, struct DungeonEntity * target, u32 param_3, u32 param_4) +{ + u32 uVar1; + s32 iVar2; + + uVar1 = GetWeather(pokemon); + iVar2 = sub_80556BC(pokemon,target,gUnknown_80F51E4[uVar1],param_3, + gUnknown_80F51EC[uVar1],param_4); + if (iVar2 != 0) { + iVar2 = 1; + } + return iVar2; +} + +bool8 sub_8057D20(struct DungeonEntity * pokemon, struct DungeonEntity * target, u32 param_3, u32 param_4) +{ + u32 uVar3; + bool8 uVar4; + u8 chargeStatus; + + uVar4 = FALSE; + chargeStatus = target->entityData->chargingStatus; + uVar3 = 0x100; + if (chargeStatus == CHARGING_STATUS_DIVE) { + uVar3 = 0x200; + } + if (sub_8055640(pokemon,target,param_3,uVar3,param_4) != 0) { + uVar4 = TRUE; + if (sub_805727C(pokemon,target,gUnknown_80F4E08) != 0) { + sub_80768DC(pokemon,target,0x3b,0); + } + } + return uVar4; +} + +bool8 sub_8057D7C(struct DungeonEntity * param_1, struct DungeonEntity * param_2) +{ + sub_8076F80(param_1, param_2, gUnknown_8106A50, 2, 1, 1); + return TRUE; +} diff --git a/src/code_8057824_1.c b/src/code_8057824_1.c index 0d48f7125..ccaab4b05 100644 --- a/src/code_8057824_1.c +++ b/src/code_8057824_1.c @@ -1,8 +1,10 @@ #include "global.h" #include "constants/direction.h" +#include "constants/weather.h" #include "dungeon_global_data.h" #include "dungeon_entity.h" #include "dungeon_util.h" +#include "dungeon_util_1.h" #include "item.h" #include "pokemon.h" @@ -26,200 +28,200 @@ extern u32 gUnknown_8103C74; extern u32 gUnknown_8103CC4; extern u32 gUnknown_8103D0C; extern u32 gUnknown_8103D50; -extern u32 gUnknown_8103B58; -extern u32 gUnknown_8103904; -extern u32 gUnknown_8103938; -extern u32 gUnknown_8103AA4; -extern u32 gUnknown_8103AE4; -extern u32 gUnknown_8103B30; -extern u32 gUnknown_8103690; -extern u32 gUnknown_8103844; -extern u32 gUnknown_8103874; -extern u32 gUnknown_81038A8; -extern u32 gUnknown_81038F8; -extern u32 gUnknown_8103500; -extern u32 gUnknown_810352C; -extern u32 gUnknown_8103578; -extern u32 gUnknown_81035D4; -extern u32 gUnknown_8103618; -extern u32 gUnknown_810367C; -extern u32 gUnknown_8103690; -extern u32 gUnknown_81036C8; -extern u32 gUnknown_81037A0; -extern u32 gUnknown_81037D4; -extern u32 gUnknown_8103820; -extern u32 gUnknown_8102C30; -extern u32 gUnknown_8102C54; -extern u32 gUnknown_8102C98; -extern u32 gUnknown_8102CB0; -extern u32 gUnknown_8102CF8; -extern u32 gUnknown_8102D34; -extern u32 gUnknown_8102D4C; -extern u32 gUnknown_8102D7C; -extern u32 gUnknown_8102DFC; -extern u32 gUnknown_8102E2C; -extern u32 gUnknown_8102E54; -extern u32 gUnknown_8102BE4; -extern u32 gUnknown_8102BC4; -extern u32 gUnknown_8102B54; -extern u32 gUnknown_8102B1C; +extern u32 gRayquazaPostStoryPreFightDialogue_6; +extern u32 gRayquazaPostStoryPreFightDialogue_1; +extern u32 gRayquazaPostStoryPreFightDialogue_2; +extern u32 gRayquazaPostStoryPreFightDialogue_3; +extern u32 gRayquazaPostStoryPreFightDialogue_4; +extern u32 gRayquazaPostStoryPreFightDialogue_5; +extern u32 gRayquazaPreFightDialogue_7; +extern u32 gRayquazaReFightDialogue_1; +extern u32 gRayquazaReFightDialogue_2; +extern u32 gRayquazaReFightDialogue_3; +extern u32 gRayquazaReFightDialogue_4; +extern u32 gRayquazaPreFightDialogue_1; +extern u32 gRayquazaPreFightDialogue_2; +extern u32 gRayquazaPreFightDialogue_3; +extern u32 gRayquazaPreFightDialogue_4; +extern u32 gRayquazaPreFightDialogue_5; +extern u32 gRayquazaPreFightDialogue_6; +extern u32 gRayquazaPreFightDialogue_7; +extern u32 gRayquazaPreFightDialogue_8; +extern u32 gRayquazaPreFightDialogue_9; +extern u32 gRayquazaPreFightDialogue_10; +extern u32 gRayquazaPreFightDialogue_11; +extern u32 MagmaCavernMidDialogue_5; +extern u32 MagmaCavernMidDialogue_6; +extern u32 MagmaCavernMidDialogue_7; +extern u32 MagmaCavernMidDialogue_8; +extern u32 MagmaCavernMidDialogue_9; +extern u32 MagmaCavernMidDialogue_10; +extern u32 MagmaCavernMidDialogue_11; +extern u32 MagmaCavernMidDialogue_12; +extern u32 MagmaCavernMidDialogue_13; +extern u32 MagmaCavernMidDialogue_14; +extern u32 MagmaCavernMidDialogue_15; +extern u32 MagmaCavernMidDialogue_4; +extern u32 MagmaCavernMidDialogue_3; +extern u32 MagmaCavernMidDialogue_2; +extern u32 MagmaCavernMidDialogue_1; extern u32 gUnknown_8103488; -extern u32 gUnknown_81033A0; -extern u32 gUnknown_81033AC; -extern u32 gUnknown_810343C; -extern u32 gUnknown_810347C; -extern u32 gUnknown_8103188; -extern u32 gUnknown_8103228; -extern u32 gUnknown_8103310; -extern u32 gUnknown_8103340; -extern u32 gUnknown_8102E70; -extern u32 gUnknown_8102EBC; -extern u32 gUnknown_8102EE0; -extern u32 gUnknown_8102EF8; -extern u32 gUnknown_8102F30; -extern u32 gUnknown_8102F64; -extern u32 gUnknown_8102F84; -extern u32 gUnknown_8102FAC; -extern u32 gUnknown_8102FC4; -extern u32 gUnknown_8102FD8; -extern u32 gUnknown_8103054; -extern u32 gUnknown_81030D8; -extern u32 gUnknown_8103110; -extern u32 gUnknown_8103140; +extern u32 gGroudonPostStoryPreFightDialogue_1; +extern u32 gGroudonPostStoryPreFightDialogue_2; +extern u32 gGroudonPostStoryPreFightDialogue_3; +extern u32 gGroudonPostStoryPreFightDialogue_4; +extern u32 gGroudonReFightDialogue_1; +extern u32 gGroudonReFightDialogue_2; +extern u32 gGroudonReFightDialogue_3; +extern u32 gGroudonReFightDialogue_4; +extern u32 GroudonPreFightDialogue_1; +extern u32 GroudonPreFightDialogue_2; +extern u32 GroudonPreFightDialogue_3; +extern u32 GroudonPreFightDialogue_4; +extern u32 GroudonPreFightDialogue_5; +extern u32 GroudonPreFightDialogue_6; +extern u32 GroudonPreFightDialogue_7; +extern u32 GroudonPreFightDialogue_8; +extern u32 GroudonPreFightDialogue_9; +extern u32 GroudonPreFightDialogue_10; +extern u32 GroudonPreFightDialogue_11; +extern u32 GroudonPreFightDialogue_12; +extern u32 GroudonPreFightDialogue_13; +extern u32 GroudonPreFightDialogue_14; extern u32 gUnknown_8102B10; -extern u32 gUnknown_8105244; -extern u32 gUnknown_810517C; -extern u32 gUnknown_81050B4; -extern u32 gUnknown_81051D0; -extern u32 gUnknown_810510C; -extern u32 gUnknown_8105040; +extern u32 gRegisteelPostFightDialogue_2; +extern u32 gRegicePostFightDialogue_2; +extern u32 gRegirockPostFightDialogue_2; +extern u32 gRegisteelPostFightDialogue_1; +extern u32 gRegicePostFightDialogue_1; +extern u32 gRegirockPostFightDialogue_1; extern u32 gUnknown_810554C; extern u32 gUnknown_8105558; extern u32 gUnknown_81055F4; -extern u32 gUnknown_8105028; -extern u32 gUnknown_8104FD4; -extern u32 gUnknown_8104930; -extern u32 gUnknown_8104980; -extern u32 gUnknown_8104998; -extern u32 gUnknown_8105034; -extern u32 gUnknown_8105438; -extern u32 gUnknown_81054A0; -extern u32 gUnknown_81054E4; -extern u32 gUnknown_810550C; -extern u32 gUnknown_8104F64; -extern u32 gUnknown_8104EFC; -extern u32 gUnknown_8104F30; -extern u32 gUnknown_8104E60; -extern u32 gUnknown_8104CEC; -extern u32 gUnknown_8104D60; -extern u32 gUnknown_8104DDC; -extern u32 gUnknown_8104E0C; -extern u32 gUnknown_8104E54; -extern u32 gUnknown_8104AD4; -extern u32 gUnknown_8104BEC; -extern u32 gUnknown_8104C10; -extern u32 gUnknown_8104C54; -extern u32 gUnknown_8104CB4; -extern u32 gUnknown_8104CE0; -extern u32 gUnknown_8104AC8; -extern u32 gUnknown_81049D4; -extern u32 gUnknown_8104A80; -extern u32 gUnknown_8104A9C; -extern u32 gUnknown_8104784; -extern u32 gUnknown_8104790; -extern u32 gUnknown_81047B0; -extern u32 gUnknown_810484C; -extern u32 gUnknown_8104888; -extern u32 gUnknown_81048C8; -extern u32 gUnknown_8104914; -extern u32 gUnknown_810476C; -extern u32 gUnknown_8104778; -extern u32 gUnknown_81046CC; -extern u32 gUnknown_8104744; -extern u32 gUnknown_81045F8; -extern u32 gUnknown_8104674; -extern u32 gUnknown_81046A0; -extern u32 gUnknown_8104450; -extern u32 gUnknown_81044B4; -extern u32 gUnknown_8104510; -extern u32 gUnknown_810453C; -extern u32 gUnknown_8104570; -extern u32 gUnknown_81045B0; -extern u32 gUnknown_81043DC; -extern u32 gUnknown_8104310; -extern u32 gUnknown_810439C; -extern u32 gUnknown_81043C0; -extern u32 gUnknown_8104240; -extern u32 gUnknown_81042AC; -extern u32 gUnknown_81042B8; +extern u32 gRegicePreFightDialogue_1; +extern u32 gRegirockPreFightDialogue_1; +extern u32 gSuicuneReFightDialogue_1; +extern u32 gSuicuneReFightDialogue_2; +extern u32 gSuicuneReFightDialogue_3; +extern u32 gRegisteelPreFightDialogue_1; +extern u32 gJirachiPreFightDialogue_1; +extern u32 gJirachiPreFightDialogue_2; +extern u32 gJirachiPreFightDialogue_3; +extern u32 gJirachiPreFightDialogue_4; +extern u32 gLatiosReFightDialogue_1; +extern u32 gLatiosPreFightDialogue_2; +extern u32 gLatiosPreFightDialogue_3; +extern u32 gLatiosPreFightDialogue_1; +extern u32 HoOhReFightDialogue_1; +extern u32 HoOhReFightDialogue_2; +extern u32 HoOhReFightDialogue_3; +extern u32 HoOhReFightDialogue_4; +extern u32 HoOhReFightDialogue_5; +extern u32 gHoOhPreFightDialogue_1; +extern u32 gHoOhPreFightDialogue_2; +extern u32 gHoOhPreFightDialogue_3; +extern u32 gHoOhPreFightDialogue_4; +extern u32 gHoOhPreFightDialogue_5; +extern u32 gHoOhPreFightDialogue_6; +extern u32 gSuicunePostStoryPreFightDialogue_4; +extern u32 gSuicunePostStoryPreFightDialogue_1; +extern u32 gSuicunePostStoryPreFightDialogue_2; +extern u32 gSuicunePostStoryPreFightDialogue_3; +extern u32 gSuicunePreFightDialogue_1; +extern u32 gSuicunePreFightDialogue_2; +extern u32 gSuicunePreFightDialogue_3; +extern u32 gSuicunePreFightDialogue_4; +extern u32 gSuicunePreFightDialogue_5; +extern u32 gSuicunePreFightDialogue_6; +extern u32 gSuicunePreFightDialogue_7; +extern u32 gRaikouPostStoryPreFightDialogue_3; +extern u32 gRaikouPostStoryPreFightDialogue_4; +extern u32 gRaikouPostStoryPreFightDialogue_1; +extern u32 gRaikouPostStoryPreFightDialogue_2; +extern u32 gRaikouReFightDialogue_1; +extern u32 gRaikouReFightDialogue_2; +extern u32 gRaikouReFightDialogue_3; +extern u32 gRaikouPreFightDialogue_1; +extern u32 gRaikouPreFightDialogue_2; +extern u32 gRaikouPreFightDialogue_3; +extern u32 gRaikouPreFightDialogue_4; +extern u32 gRaikouPreFightDialogue_5; +extern u32 gRaikouPreFightDialogue_6; +extern u32 gEnteiPostStoryPreFightDialogue_4; +extern u32 gEnteiPostStoryPreFightDialogue_1; +extern u32 gEnteiPostStoryPreFightDialogue_2; +extern u32 gEnteiPostStoryPreFightDialogue_3; +extern u32 gEnteiReFightDialogue_1; +extern u32 gEnteiReFightDialogue_2; +extern u32 gEnteiReFightDialogue_3; extern u32 gUnknown_8104FC8; -extern u32 gUnknown_8104150; -extern u32 gUnknown_81041AC; -extern u32 gUnknown_81041F8; -extern u32 gUnknown_8104144; -extern u32 gUnknown_8104114; -extern u32 gUnknown_81040CC; -extern u32 gUnknown_8104050; -extern u32 gUnknown_8104044; -extern u32 gUnknown_8104008; -extern u32 gUnknown_8103EA4; -extern u32 gUnknown_8103F0C; -extern u32 gUnknown_8103F4C; -extern u32 gUnknown_8103FCC; +extern u32 gEnteiPreFightDialogue_1; +extern u32 gEnteiPreFightDialogue_2; +extern u32 gEnteiPreFightDialogue_3; +extern u32 gMewtwoReFightDialogue_5; +extern u32 gMewtwoReFightDialogue_4; +extern u32 gMewtwoReFightDialogue_3; +extern u32 gMewtwoReFightDialogue_2; +extern u32 gMewtwoReFightDialogue_1; +extern u32 gMewtwoPreFightDialogue_5; +extern u32 gMewtwoPreFightDialogue_1; +extern u32 gMewtwoPreFightDialogue_2; +extern u32 gMewtwoPreFightDialogue_3; +extern u32 gMewtwoPreFightDialogue_4; extern u32 gUnknown_8103E34; extern u32 gUnknown_8102A9C; -extern u32 gUnknown_8102984; -extern u32 gUnknown_81029B4; -extern u32 gUnknown_8102A18; -extern u32 gUnknown_8102A24; -extern u32 gUnknown_8102A74; -extern u32 gUnknown_81028D4; -extern u32 gUnknown_8102918; -extern u32 gUnknown_8102948; -extern u32 gUnknown_8102478; -extern u32 gUnknown_81025B4; -extern u32 gUnknown_81025D4; -extern u32 gUnknown_8102610; -extern u32 gUnknown_81026C4; -extern u32 gUnknown_810270C; -extern u32 gUnknown_810272C; -extern u32 gUnknown_81027BC; -extern u32 gUnknown_8102810; -extern u32 gUnknown_8102840; -extern u32 gUnknown_810286C; -extern u32 gUnknown_81028B8; -extern u32 gUnknown_810232C; -extern u32 gUnknown_8102398; -extern u32 gUnknown_81023C4; -extern u32 gUnknown_8102400; -extern u32 gUnknown_8102454; +extern u32 gArticunoPostStoryPreFightDialogue_1; +extern u32 gArticunoPostStoryPreFightDialogue_2; +extern u32 gArticunoPostStoryPreFightDialogue_3; +extern u32 gArticunoPostStoryPreFightDialogue_4; +extern u32 gArticunoPostStoryPreFightDialogue_5; +extern u32 gArticunoReFightDialogue_1; +extern u32 gArticunoReFightDialogue_2; +extern u32 gArticunoReFightDialogue_3; +extern u32 gArticunoPreFightDialogue_1; +extern u32 gArticunoPreFightDialogue_2; +extern u32 gArticunoPreFightDialogue_3; +extern u32 gArticunoPreFightDialogue_4; +extern u32 gArticunoPreFightDialogue_5; +extern u32 gArticunoPreFightDialogue_6; +extern u32 gArticunoPreFightDialogue_7; +extern u32 gArticunoPreFightDialogue_8; +extern u32 gArticunoPreFightDialogue_9; +extern u32 gArticunoPreFightDialogue_10; +extern u32 gArticunoPreFightDialogue_11; +extern u32 gArticunoPreFightDialogue_12; +extern u32 gMoltresPostStoryPreFightDialogue_1; +extern u32 gMoltresPostStoryPreFightDialogue_2; +extern u32 gMoltresPostStoryPreFightDialogue_3; +extern u32 gMoltresPostStoryPreFightDialogue_4; +extern u32 gMoltresPostStoryPreFightDialogue_5; extern u32 gUnknown_8100D3C; -extern u32 gUnknown_8102158; -extern u32 gUnknown_8102190; -extern u32 gUnknown_8102200; -extern u32 gUnknown_8102254; -extern u32 gUnknown_81022F8; -extern u32 gUnknown_8101A9C; -extern u32 gUnknown_8101AD4; -extern u32 gUnknown_8101C30; -extern u32 gUnknown_8101CBC; -extern u32 gUnknown_8101D8C; -extern u32 gUnknown_8101DA0; -extern u32 gUnknown_8101E1C; -extern u32 gUnknown_8101EAC; -extern u32 gUnknown_8102070; -extern u32 gUnknown_81020A4; -extern u32 gUnknown_81020D4; -extern u32 gUnknown_8102108; -extern u32 gUnknown_810193C; -extern u32 gUnknown_8101970; -extern u32 gUnknown_8101994; -extern u32 gUnknown_81019E4; -extern u32 gUnknown_8101A04; -extern u32 gUnknown_8101A38; +extern u32 gMoltresReFightDialogue_1; +extern u32 gMoltresReFightDialogue_2; +extern u32 gMoltresReFightDialogue_3; +extern u32 gMoltresReFightDialogue_4; +extern u32 gMoltresReFightDialogue_5; +extern u32 gMoltresPreFightDialogue_1; +extern u32 gMoltresPreFightDialogue_2; +extern u32 gMoltresPreFightDialogue_3; +extern u32 gMoltresPreFightDialogue_4; +extern u32 gMoltresPreFightDialogue_5; +extern u32 gMoltresPreFightDialogue_6; +extern u32 gMoltresPreFightDialogue_7; +extern u32 gMoltresPreFightDialogue_8; +extern u32 gMoltresPreFightDialogue_9; +extern u32 gMoltresPreFightDialogue_10; +extern u32 gMoltresPreFightDialogue_11; +extern u32 gMoltresPreFightDialogue_12; +extern u32 gZapdosPostStoryPreFightDialogue_1; +extern u32 gZapdosPostStoryPreFightDialogue_2; +extern u32 gZapdosPostStoryPreFightDialogue_3; +extern u32 gZapdosPostStoryPreFightDialogue_4; +extern u32 gZapdosPostStoryPreFightDialogue_5; +extern u32 gZapdosPostStoryPreFightDialogue_6; extern struct DungeonEntity *xxx_call_GetLeaderEntity(void); -extern struct DungeonEntity *sub_8085680(u32); +extern struct DungeonEntity *GetEntityFromClientType(u32); extern void sub_808BBA8(struct DungeonEntity * ); extern void sub_80855E4(void *); extern void sub_8041888(u32); @@ -228,14 +230,13 @@ extern void sub_8083ED8(u32); extern void sub_803E708(u32, u32); extern void DisplayDungeonDialogue(u32 *r0); extern void sub_8083E88(u32); -extern void sub_808BC20(struct DungeonEntity *); +extern void JirachiSpinEffect(struct DungeonEntity *); extern void sub_80862BC(struct DungeonEntity *); extern void sub_8086448(); extern void SpriteLookAroundEffect(struct DungeonEntity *); extern u32 sub_80861F8(u32, struct DungeonEntity *, u32); extern void SetupBossFightHP(struct DungeonEntity *, u32, u32); -extern void sub_80858AC(u32 *, u32); extern void sub_8097FA8(u32); extern void JirachiWish(); @@ -261,7 +262,7 @@ extern void sub_808B1CC(u8); extern void sub_80464C8(struct DungeonEntity *, u32 *, struct ItemSlot *); extern void sub_8098044(u32); extern void PlaySoundEffect(u32); -extern void sub_8085C54(u32, u32, u32, u32, u32); +extern void SetDungeonBGColorRGB(u32, u32, u32, u32, u32); extern void sub_803E46C(u32); extern void sub_8085EB0(); extern void sub_80866C4(u32 *); @@ -281,7 +282,7 @@ extern void sub_807EAA0(u32, u32); extern void sub_808563C(void *); extern void sub_808BCE4(void); -extern void sub_808BBB8(struct DungeonEntity *param_1); +extern void JirachiDropInEffect(struct DungeonEntity *param_1); extern u8 sub_8098100(u32); extern void sub_8086794(); @@ -330,8 +331,8 @@ extern void sub_8086738(); extern void sub_8086A54(struct DungeonEntity *); extern void sub_8086764(); -extern u32 sub_803F994(); -extern s32 sub_803F9B0(); +extern s32 GetCameraXPos(); +extern s32 GetCameraYPos(); extern void sub_803F878(u32,s32); void SceneGroudonMovement(struct DungeonEntity * param_1); @@ -340,10 +341,10 @@ void ArticunoScreenFlash(void); void sub_8088484(struct DungeonEntity *param_1); void sub_8088574(void); -void sub_8087D30(struct DungeonEntity * param_1); -void sub_8087D80(s32 r0, s32 r1); -void sub_8087DE8(s32 r0, s32 r1); -void sub_8087EB0(void); +void MoltresDropInEffect(struct DungeonEntity * param_1); +void MoltresScreenFlash1(s32 r0, s32 r1); +void MoltresScreenFlash2(s32 r0, s32 r1); +void MoltresScreenFlash3(void); void sub_808654C(void); extern void sub_8086598(); @@ -352,16 +353,16 @@ extern void sub_80865E8(); extern void sub_8086500(void); extern void sub_8086690(void); -void sub_8087F24(void); +void MoltresScreenDarken(void); extern void sub_808663C(void); void sub_8087704(struct DungeonEntity *param_1); -void sub_808775C(int param_1); +void ZapdosScreenFlash(int param_1); -extern u32 gUnknown_81017E4; +extern u32 gZapdosReFightDialogue_1; extern u32 gUnknown_81015A0; -extern u32 gUnknown_8101898; -extern u32 gUnknown_81018EC; -extern u32 gUnknown_8101918; +extern u32 gZapdosReFightDialogue_2; +extern u32 gZapdosReFightDialogue_3; +extern u32 gZapdosReFightDialogue_4; void ZapdosReFightDialogue(void) @@ -370,23 +371,23 @@ void ZapdosReFightDialogue(void) struct DungeonEntity *ZapdosEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - ZapdosEntity = sub_8085680(8); + ZapdosEntity = GetEntityFromClientType(8); sub_8086448(); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_81017E4); + DisplayDungeonDialogue(&gZapdosReFightDialogue_1); sub_803E708(10,0x46); PlaySoundEffect(0x1da); DisplayDungeonDialogue(&gUnknown_81015A0); sub_803E708(10,0x46); sub_8087704(ZapdosEntity); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8101898); - sub_808775C(1); - DisplayDungeonDialogue(&gUnknown_81018EC); - sub_808775C(2); - DisplayDungeonDialogue(&gUnknown_8101918); + DisplayDungeonDialogue(&gZapdosReFightDialogue_2); + ZapdosScreenFlash(1); + DisplayDungeonDialogue(&gZapdosReFightDialogue_3); + ZapdosScreenFlash(2); + DisplayDungeonDialogue(&gZapdosReFightDialogue_4); SetupBossFightHP(ZapdosEntity,300,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void ZapdosPostStoryPreFightDialogue(void) @@ -395,26 +396,26 @@ void ZapdosPostStoryPreFightDialogue(void) struct DungeonEntity * ZapdosEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - ZapdosEntity = sub_8085680(8); + ZapdosEntity = GetEntityFromClientType(8); sub_8086448(); if (sub_8086AE4(SPECIES_ZAPDOS)) { - sub_80866C4(&gUnknown_8101A38); + sub_80866C4(&gZapdosPostStoryPreFightDialogue_6); } else { - sub_808775C(1); + ZapdosScreenFlash(1); PlaySoundEffect(0x1da); - DisplayDungeonDialogue(&gUnknown_810193C); + DisplayDungeonDialogue(&gZapdosPostStoryPreFightDialogue_1); sub_8087704(ZapdosEntity); - DisplayDungeonDialogue(&gUnknown_8101970); - sub_808775C(1); - DisplayDungeonDialogue(&gUnknown_8101994); - sub_808775C(2); - DisplayDungeonDialogue(&gUnknown_81019E4); - sub_808775C(2); - DisplayDungeonDialogue(&gUnknown_8101A04); + DisplayDungeonDialogue(&gZapdosPostStoryPreFightDialogue_2); + ZapdosScreenFlash(1); + DisplayDungeonDialogue(&gZapdosPostStoryPreFightDialogue_3); + ZapdosScreenFlash(2); + DisplayDungeonDialogue(&gZapdosPostStoryPreFightDialogue_4); + ZapdosScreenFlash(2); + DisplayDungeonDialogue(&gZapdosPostStoryPreFightDialogue_5); sub_803E708(10,0x46); SetupBossFightHP(ZapdosEntity,300,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } } @@ -435,23 +436,23 @@ void sub_8087704(struct DungeonEntity *param_1) sub_803E708(0x1e,0x46); } -void sub_808775C(int param_1) +void ZapdosScreenFlash(s32 param_1) { - int iVar1; - int iVar2; + s32 iVar1; + s32 iVar2; PlaySoundEffect(0x1f6); if (2 < param_1) { for(iVar2 = 250; iVar2 > 199; iVar2 -= 10) { - sub_8085C54(iVar2,iVar2,iVar2 / 2,1,1); + SetDungeonBGColorRGB(iVar2,iVar2,iVar2 / 2,1,1); sub_803E46C(0x46); } } if (1 < param_1) { for(iVar2 = 250; iVar2 > 199; iVar2 -= 10) { - sub_8085C54(iVar2,iVar2,iVar2 / 2,1,1); + SetDungeonBGColorRGB(iVar2,iVar2,iVar2 / 2,1,1); sub_803E46C(0x46); } } @@ -461,7 +462,7 @@ void sub_808775C(int param_1) if (iVar2 < 0) { iVar1 = iVar2 + 3; } - sub_8085C54(iVar2,iVar2,iVar1 >> 2,1,1); + SetDungeonBGColorRGB(iVar2,iVar2,iVar1 >> 2,1,1); sub_803E46C(0x46); } sub_8085EB0(); @@ -475,7 +476,7 @@ void sub_80877E8(void) struct DungeonEntity * MoltresEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - MoltresEntity = sub_8085680(9); + MoltresEntity = GetEntityFromClientType(9); sub_8083E88(0x26); sub_8085374(); sub_80854D4(); @@ -496,7 +497,7 @@ void sub_8087848(void) s32 iVar3; LeaderEntity = xxx_call_GetLeaderEntity(); - MoltresEntity = sub_8085680(9); + MoltresEntity = GetEntityFromClientType(9); sub_8083E88(0x26); sub_80854D4(); sub_8085930(DIRECTION_WEST); @@ -510,8 +511,8 @@ void sub_8087848(void) sub_8086A3C(MoltresEntity); } sub_8085860(LeaderEntity->posWorld.x - 5, LeaderEntity->posWorld.y); - uVar4 = sub_803F994(); - iVar3 = sub_803F9B0(); + uVar4 = GetCameraXPos(); + iVar3 = GetCameraYPos(); sub_803F878(uVar4,iVar3 + -0x1000); CopySpeciesNametoBuffer(gUnknown_202E038,SPECIES_MOLTRES); } @@ -534,65 +535,65 @@ void MoltresPreFightDialogue(void) LeaderEntity = xxx_call_GetLeaderEntity(); PartnerEntity = GetPartnerEntity(); - MoltresEntity = sub_8085680(9); - sub_8087D80(0xc,5); + MoltresEntity = GetEntityFromClientType(9); + MoltresScreenFlash1(0xc,5); sub_8086500(); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8101A9C); + DisplayDungeonDialogue(&gMoltresPreFightDialogue_1); sub_803E708(10,0x46); sub_80869E4(PartnerEntity,4,1,5); sub_803E708(4,0x46); SpriteLookAroundEffect(PartnerEntity); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8101AD4); + DisplayDungeonDialogue(&gMoltresPreFightDialogue_2); sub_803E708(10,0x46); - sub_8087D80(0xc,5); - sub_8087DE8(9,5); - DisplayDungeonDialogue(&gUnknown_8101C30); + MoltresScreenFlash1(0xc,5); + MoltresScreenFlash2(9,5); + DisplayDungeonDialogue(&gMoltresPreFightDialogue_3); sub_803E708(10,0x46); sub_80869E4(PartnerEntity,4,1,2); sub_80869E4(LeaderEntity,4,2,6); - DisplayDungeonDialogue(&gUnknown_8101CBC); + DisplayDungeonDialogue(&gMoltresPreFightDialogue_4); sub_803E708(10,0x46); sub_80869E4(PartnerEntity,4,2,6); sub_8086690(); - DisplayDungeonDialogue(&gUnknown_8101D8C); + DisplayDungeonDialogue(&gMoltresPreFightDialogue_5); sub_803E708(10,0x46); sub_8085930(DIRECTION_NORTHWEST); sub_803E708(4,0x46); sub_8085930(DIRECTION_NORTH); PlaySoundEffect(0x2f2); sub_8083F14(); - sub_8087F24(); - DisplayDungeonDialogue(&gUnknown_8101DA0); + MoltresScreenDarken(); + DisplayDungeonDialogue(&gMoltresPreFightDialogue_6); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8101E1C); + DisplayDungeonDialogue(&gMoltresPreFightDialogue_7); sub_803E708(10,0x46); PlaySoundEffect(0x1cf); sub_80856E0(PartnerEntity,4); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8101EAC); + DisplayDungeonDialogue(&gMoltresPreFightDialogue_8); sub_803E708(10,0x46); - sub_8087EB0(); + MoltresScreenFlash3(); PlaySoundEffect(0x1da); - DisplayDungeonDialogue(&gUnknown_8102070); + DisplayDungeonDialogue(&gMoltresPreFightDialogue_9); sub_803E708(10,0x46); - sub_8087D80(9,5); - sub_8087DE8(0xb,5); - DisplayDungeonDialogue(&gUnknown_81020A4); + MoltresScreenFlash1(9,5); + MoltresScreenFlash2(0xb,5); + DisplayDungeonDialogue(&gMoltresPreFightDialogue_10); sub_803E708(10,0x46); - sub_8087D80(0xc,5); - sub_8087DE8(9,5); - sub_8087D30(MoltresEntity); + MoltresScreenFlash1(0xc,5); + MoltresScreenFlash2(9,5); + MoltresDropInEffect(MoltresEntity); sub_808663C(); - sub_8087EB0(); - DisplayDungeonDialogue(&gUnknown_81020D4); + MoltresScreenFlash3(); + DisplayDungeonDialogue(&gMoltresPreFightDialogue_11); sub_803E708(10,0x46); - sub_8087DE8(0xb,6); - DisplayDungeonDialogue(&gUnknown_8102108); + MoltresScreenFlash2(0xb,6); + DisplayDungeonDialogue(&gMoltresPreFightDialogue_12); sub_803E708(10,0x46); SetupBossFightHP(MoltresEntity,400,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } @@ -604,38 +605,38 @@ void MoltresReFightDialogue(void) LeaderEntity = xxx_call_GetLeaderEntity(); PartnerEntity = GetPartnerEntity(); - MoltresEntity = sub_8085680(9); - sub_8087D80(10,5); + MoltresEntity = GetEntityFromClientType(9); + MoltresScreenFlash1(10,5); sub_8086500(); sub_803E708(10,0x46); SpriteLookAroundEffect(PartnerEntity); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8102158); + DisplayDungeonDialogue(&gMoltresReFightDialogue_1); sub_803E708(10,0x46); sub_80869E4(PartnerEntity,4,1,2); sub_80869E4(LeaderEntity,4,2,6); - DisplayDungeonDialogue(&gUnknown_8102190); + DisplayDungeonDialogue(&gMoltresReFightDialogue_2); sub_803E708(10,0x46); sub_80869E4(PartnerEntity,4,2,6); sub_80869E4(LeaderEntity,4,2,6); sub_8086690(); - sub_8087F24(); + MoltresScreenDarken(); sub_803E708(10,0x46); sub_8085930(DIRECTION_NORTHWEST); sub_803E708(4,0x46); sub_8085930(DIRECTION_NORTH); - sub_8087D30(MoltresEntity); + MoltresDropInEffect(MoltresEntity); sub_808663C(); - sub_8087EB0(); - DisplayDungeonDialogue(&gUnknown_8102200); + MoltresScreenFlash3(); + DisplayDungeonDialogue(&gMoltresReFightDialogue_3); sub_803E708(10,0x46); - sub_8087DE8(0xb,6); - DisplayDungeonDialogue(&gUnknown_8102254); + MoltresScreenFlash2(0xb,6); + DisplayDungeonDialogue(&gMoltresReFightDialogue_4); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_81022F8); + DisplayDungeonDialogue(&gMoltresReFightDialogue_5); sub_803E708(10,0x46); SetupBossFightHP(MoltresEntity,400,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void MoltresPostStoryPreFightDialogue(void) @@ -644,8 +645,8 @@ void MoltresPostStoryPreFightDialogue(void) struct DungeonEntity * MoltresEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - MoltresEntity = sub_8085680(9); - sub_8087D80(0xc,5); + MoltresEntity = GetEntityFromClientType(9); + MoltresScreenFlash1(0xc,5); sub_808654C(); if (sub_8086AE4(SPECIES_MOLTRES)) { sub_8085930(DIRECTION_NORTHWEST); @@ -658,26 +659,26 @@ void MoltresPostStoryPreFightDialogue(void) gDungeonGlobalData->unk2 = 1; } else { - DisplayDungeonDialogue(&gUnknown_810232C); + DisplayDungeonDialogue(&gMoltresPostStoryPreFightDialogue_1); sub_8085930(DIRECTION_NORTHWEST); sub_803E708(4,0x46); sub_8085930(DIRECTION_NORTH); - sub_8087D30(MoltresEntity); - DisplayDungeonDialogue(&gUnknown_8102398); - sub_8087D80(0xc,5); - sub_8087DE8(9,5); - DisplayDungeonDialogue(&gUnknown_81023C4); - sub_8087EB0(); - DisplayDungeonDialogue(&gUnknown_8102400); - sub_8087DE8(0xb,6); - DisplayDungeonDialogue(&gUnknown_8102454); + MoltresDropInEffect(MoltresEntity); + DisplayDungeonDialogue(&gMoltresPostStoryPreFightDialogue_2); + MoltresScreenFlash1(0xc,5); + MoltresScreenFlash2(9,5); + DisplayDungeonDialogue(&gMoltresPostStoryPreFightDialogue_3); + MoltresScreenFlash3(); + DisplayDungeonDialogue(&gMoltresPostStoryPreFightDialogue_4); + MoltresScreenFlash2(0xb,6); + DisplayDungeonDialogue(&gMoltresPostStoryPreFightDialogue_5); sub_803E708(10,0x46); SetupBossFightHP(MoltresEntity,400,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } } -void sub_8087D30(struct DungeonEntity * param_1) +void MoltresDropInEffect(struct DungeonEntity * param_1) { s32 iVar1; @@ -685,7 +686,6 @@ void sub_8087D30(struct DungeonEntity * param_1) param_1->entityData->unk15E = 0; param_1->entityData->unk174 = 0xc800; PlaySoundEffect(0x1f8); - iVar1 = 200; for(iVar1 = 200; iVar1 >= 0; iVar1 -= 5) { param_1->entityData->unk174 = iVar1 * 256; @@ -694,7 +694,7 @@ void sub_8087D30(struct DungeonEntity * param_1) } NAKED -void sub_8087D80(s32 r0, s32 r1) +void MoltresScreenFlash1(s32 r0, s32 r1) { asm_unified("\tpush {lr}\n" "\tsub sp, 0x8\n" @@ -750,7 +750,7 @@ void sub_8087D80(s32 r0, s32 r1) } NAKED -void sub_8087DE8(s32 r0, s32 r1) +void MoltresScreenFlash2(s32 r0, s32 r1) { asm_unified("\tpush {r4-r6,lr}\n" "\tsub sp, 0x8\n" @@ -809,7 +809,7 @@ void sub_8087DE8(s32 r0, s32 r1) "\tmovs r1, 0\n" "\tmovs r2, 0\n" "\tmovs r3, 0x1\n" - "\tbl sub_8085C54\n" + "\tbl SetDungeonBGColorRGB\n" "\tmovs r0, 0x46\n" "\tbl sub_803E46C\n" "\tsubs r4, 0xA\n" @@ -826,7 +826,7 @@ void sub_8087DE8(s32 r0, s32 r1) "\tmovs r1, 0\n" "\tmovs r2, 0\n" "\tmovs r3, 0x1\n" - "\tbl sub_8085C54\n" + "\tbl SetDungeonBGColorRGB\n" "\tmovs r0, 0x46\n" "\tbl sub_803E46C\n" "\tsubs r4, 0xA\n" @@ -847,7 +847,7 @@ void sub_8087DE8(s32 r0, s32 r1) "_08087EAC: .4byte 0x0000ffff"); } -void sub_8087EB0(void) +void MoltresScreenFlash3(void) { int iVar1; @@ -855,27 +855,27 @@ void sub_8087EB0(void) iVar1 = 0xfa; for(iVar1 = 250; iVar1 > 9; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1 / 2,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1 / 2,1,1); sub_803E46C(0x46); } sub_803E708(0x1e,0x46); PlaySoundEffect(0x1ed); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1 / 2,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1 / 2,1,1); sub_803E46C(0x46); } sub_803E708(0x1e,0x46); sub_8085EB0(); } -void sub_8087F24(void) +void MoltresScreenDarken(void) { s32 iVar1; for(iVar1 = 0; iVar1 >= -80; iVar1 -= 8) { - sub_8085C54(iVar1,iVar1,iVar1,0,0); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,0,0); sub_803E46C(0x46); } } @@ -887,7 +887,7 @@ void sub_8087F54(void) struct DungeonEntity *ArticunoEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - ArticunoEntity = sub_8085680(0xd); + ArticunoEntity = GetEntityFromClientType(0xd); sub_8083E88(0x72); sub_8085374(); sub_80854D4(); @@ -903,7 +903,7 @@ void sub_8087FB4(void) { struct DungeonEntity *ArticunoEntity; - ArticunoEntity = sub_8085680(0xd); + ArticunoEntity = GetEntityFromClientType(0xd); sub_8083E88(0x72); sub_8085374(); sub_80854D4(); @@ -919,7 +919,7 @@ void sub_8087FF8(void) struct DungeonEntity *ArticunoEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - ArticunoEntity = sub_8085680(0xd); + ArticunoEntity = GetEntityFromClientType(0xd); sub_8085374(); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -954,18 +954,18 @@ void ArticunoPreFightDialogue(void) LeaderEntity = xxx_call_GetLeaderEntity(); PartnerEntity = GetPartnerEntity(); - ArticunoEntity = sub_8085680(0xd); + ArticunoEntity = GetEntityFromClientType(0xd); sub_8086448(); SpriteLookAroundEffect(PartnerEntity); - DisplayDungeonDialogue(&gUnknown_8102478); + DisplayDungeonDialogue(&gArticunoPreFightDialogue_1); sub_803E708(10,0x46); sub_8086598(); sub_8083F14(); - DisplayDungeonDialogue(&gUnknown_81025B4); + DisplayDungeonDialogue(&gArticunoPreFightDialogue_2); sub_803E708(10,0x46); sub_80869E4(PartnerEntity,4,1,2); sub_80869E4(LeaderEntity,4,2,6); - DisplayDungeonDialogue(&gUnknown_81025D4); + DisplayDungeonDialogue(&gArticunoPreFightDialogue_3); sub_803E708(10,0x46); SetFacingDirection(LeaderEntity, DIRECTION_WEST); sub_803E708(4,0x46); @@ -981,9 +981,9 @@ void ArticunoPreFightDialogue(void) sub_803E708(4,0x46); SetFacingDirection(LeaderEntity, DIRECTION_WEST); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8102610); + DisplayDungeonDialogue(&gArticunoPreFightDialogue_4); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_81026C4); + DisplayDungeonDialogue(&gArticunoPreFightDialogue_5); sub_803E708(10,0x46); sub_80869E4(LeaderEntity,4,1,4); sub_80869E4(PartnerEntity,4,2,4); @@ -991,37 +991,37 @@ void ArticunoPreFightDialogue(void) SpriteLookAroundEffect(PartnerEntity); PlaySoundEffect(0x1d5); SpriteLookAroundEffect(LeaderEntity); - DisplayDungeonDialogue(&gUnknown_810270C); + DisplayDungeonDialogue(&gArticunoPreFightDialogue_6); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_810272C); + DisplayDungeonDialogue(&gArticunoPreFightDialogue_7); sub_803E708(10,0x46); PlaySoundEffect(0); // snow flurry - gDungeonGlobalData->unkE265 = 7; + gDungeonGlobalData->unkE265 = WEATHER_SNOW; sub_807EAA0(0,1); PlaySoundEffect(0x1ee); // flash effect? sub_8088574(); - DisplayDungeonDialogue(&gUnknown_81027BC); + DisplayDungeonDialogue(&gArticunoPreFightDialogue_8); sub_803E708(10,0x46); ArticunoScreenFlash(); sub_8086738(); PlaySoundEffect(0x1da); - DisplayDungeonDialogue(&gUnknown_8102810); + DisplayDungeonDialogue(&gArticunoPreFightDialogue_9); sub_803E708(10,0x46); PlaySoundEffect(0x1ea); sub_8088484(ArticunoEntity); sub_80865E8(); ArticunoScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8102840); + DisplayDungeonDialogue(&gArticunoPreFightDialogue_10); sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH); ArticunoScreenFlash(); - DisplayDungeonDialogue(&gUnknown_810286C); + DisplayDungeonDialogue(&gArticunoPreFightDialogue_11); sub_806CDD4(ArticunoEntity,0x10,DIRECTION_SOUTH); ArticunoScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81028B8); + DisplayDungeonDialogue(&gArticunoPreFightDialogue_12); sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH); sub_803E708(0x10,0x46); SetupBossFightHP(ArticunoEntity,0x1c2,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void ArticunoReFightDialogue(void) @@ -1030,20 +1030,20 @@ void ArticunoReFightDialogue(void) struct DungeonEntity *ArticunoEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - ArticunoEntity = sub_8085680(0xd); - gDungeonGlobalData->unkE265 = 7; + ArticunoEntity = GetEntityFromClientType(0xd); + gDungeonGlobalData->unkE265 = WEATHER_SNOW; sub_807EAA0(0,1); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_81028D4); + DisplayDungeonDialogue(&gArticunoReFightDialogue_1); sub_806CDD4(ArticunoEntity,0x10,DIRECTION_SOUTH); ArticunoScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8102918); + DisplayDungeonDialogue(&gArticunoReFightDialogue_2); ArticunoScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8102948); + DisplayDungeonDialogue(&gArticunoReFightDialogue_3); sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH); sub_803E708(0x28,0x46); SetupBossFightHP(ArticunoEntity,0x1c2,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void ArticunoPostStoryPreFightDialogue(void) @@ -1052,34 +1052,34 @@ void ArticunoPostStoryPreFightDialogue(void) struct DungeonEntity *ArticunoEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - ArticunoEntity = sub_8085680(0xd); + ArticunoEntity = GetEntityFromClientType(0xd); sub_8086448(); if (sub_8086AE4(SPECIES_ARTICUNO)) { sub_80866C4(&gUnknown_8102A9C); } else { - gDungeonGlobalData->unkE265 = 7; + gDungeonGlobalData->unkE265 = WEATHER_SNOW; sub_807EAA0(0,1); ArticunoScreenFlash(); sub_8086738(); PlaySoundEffect(0x1da); - DisplayDungeonDialogue(&gUnknown_8102984); + DisplayDungeonDialogue(&gArticunoPostStoryPreFightDialogue_1); sub_803E708(10,0x46); sub_8088484(ArticunoEntity); ArticunoScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81029B4); + DisplayDungeonDialogue(&gArticunoPostStoryPreFightDialogue_2); sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH); ArticunoScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8102A18); + DisplayDungeonDialogue(&gArticunoPostStoryPreFightDialogue_3); sub_806CDD4(ArticunoEntity,0x10,DIRECTION_SOUTH); ArticunoScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8102A24); + DisplayDungeonDialogue(&gArticunoPostStoryPreFightDialogue_4); ArticunoScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8102A74); + DisplayDungeonDialogue(&gArticunoPostStoryPreFightDialogue_5); sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH); sub_803E708(0x28,0x46); SetupBossFightHP(ArticunoEntity,0x1c2,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } } @@ -1093,7 +1093,7 @@ void sub_8088484(struct DungeonEntity *param_1) for(iVar1 = 250; iVar1 >= 0; iVar1 -= 5) { param_1->entityData->unk174 = iVar1 * 256; - sub_8085C54(iVar1,iVar1,iVar1 / 2,1,0); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1 / 2,1,0); sub_803E46C(0x46); } } @@ -1105,19 +1105,19 @@ void ArticunoScreenFlash(void) PlaySoundEffect(0x2ad); for(iVar1 = 250; iVar1 > 0x95; iVar1 -= 10) { - sub_8085C54(iVar1 / 2,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1 / 2,iVar1,iVar1,1,1); sub_803E46C(0x46); } sub_803E708(4,0x46); for(iVar1 = 250; iVar1 > 199; iVar1 -= 10) { - sub_8085C54(0,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(0,iVar1,iVar1,1,1); sub_803E46C(0x46); } sub_803E708(4,0x46); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10) { - sub_8085C54(iVar1 / 2,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1 / 2,iVar1,iVar1,1,1); sub_803E46C(0x46); } sub_803E708(4,0x46); @@ -1130,7 +1130,7 @@ void sub_8088574(void) for(iVar1 = 0; iVar1 <= 80; iVar1 += 8) { - sub_8085C54(iVar1,iVar1,iVar1,0,0); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,0,0); sub_803E46C(0x46); } } @@ -1178,8 +1178,8 @@ void sub_808862C(void) struct DungeonEntity * GroudonEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - AlakazamEntity = sub_8085680(10); - GroudonEntity = sub_8085680(0xe); + AlakazamEntity = GetEntityFromClientType(10); + GroudonEntity = GetEntityFromClientType(0xe); sub_8083E88(0x72); sub_80867F4(); sub_8085374(); @@ -1205,8 +1205,8 @@ void sub_80886C4(void) s32 iVar2; LeaderEntity = xxx_call_GetLeaderEntity(); - AlakazamEntity = sub_8085680(10); - GroudonEntity = sub_8085680(0xe); + AlakazamEntity = GetEntityFromClientType(10); + GroudonEntity = GetEntityFromClientType(0xe); PlaySoundEffect(0x3e5); sub_80867F4(); sub_8085374(); @@ -1216,8 +1216,8 @@ void sub_80886C4(void) SetFacingDirection(GroudonEntity, DIRECTION_SOUTH); sub_8086A3C(GroudonEntity); sub_8085860(LeaderEntity->posWorld.x,LeaderEntity->posWorld.y); - uVar4 = sub_803F994(); - iVar2 = sub_803F9B0(); + uVar4 = GetCameraXPos(); + iVar2 = GetCameraYPos(); sub_803F878(uVar4,iVar2 + -0x1000); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_GROUDON); CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_ALAKAZAM); @@ -1230,8 +1230,8 @@ void sub_808875C(void) struct DungeonEntity * GroudonEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - AlakazamEntity = sub_8085680(10); - GroudonEntity = sub_8085680(0xe); + AlakazamEntity = GetEntityFromClientType(10); + GroudonEntity = GetEntityFromClientType(0xe); sub_80867F4(); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -1272,34 +1272,34 @@ void GroudonPreFightDialogue(void) LeaderEntity = xxx_call_GetLeaderEntity(); PartnerEntity = GetPartnerEntity(); - AlakazamEntity = sub_8085680(10); - GroudonEntity = sub_8085680(0xe); + AlakazamEntity = GetEntityFromClientType(10); + GroudonEntity = GetEntityFromClientType(0xe); sub_8086448(); - DisplayDungeonDialogue(&gUnknown_8102E70); + DisplayDungeonDialogue(&GroudonPreFightDialogue_1); sub_803E708(10,0x46); sub_803E708(0x3c,0x46); - DisplayDungeonDialogue(&gUnknown_8102EBC); + DisplayDungeonDialogue(&GroudonPreFightDialogue_2); sub_803E708(10,0x46); sub_8086838(1,1,1); sub_808680C(); sub_803E708(0x3c,0x46); sub_808682C(); sub_803E708(0x1e,0x46); - DisplayDungeonDialogue(&gUnknown_8102EE0); + DisplayDungeonDialogue(&GroudonPreFightDialogue_3); sub_803E708(10,0x46); sub_8086838(1,1,1); sub_808680C(); sub_803E708(0x3c,0x46); - DisplayDungeonDialogue(&gUnknown_8102EF8); + DisplayDungeonDialogue(&GroudonPreFightDialogue_4); sub_803E708(10,0x46); GroudonScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8102F30); + DisplayDungeonDialogue(&GroudonPreFightDialogue_5); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8102F64); + DisplayDungeonDialogue(&GroudonPreFightDialogue_6); sub_803E708(10,0x46); PlaySoundEffect(0x1d5); SpriteLookAroundEffect(PartnerEntity); - DisplayDungeonDialogue(&gUnknown_8102F84); + DisplayDungeonDialogue(&GroudonPreFightDialogue_7); sub_803E708(10,0x46); sub_808682C(); sub_803E708(0x3c,0x46); @@ -1307,28 +1307,28 @@ void GroudonPreFightDialogue(void) PlaySoundEffect(0x205); sub_8086738(); sub_8068FE0(AlakazamEntity,0x21c,0); - DisplayDungeonDialogue(&gUnknown_8102FAC); + DisplayDungeonDialogue(&GroudonPreFightDialogue_8); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8102FC4); + DisplayDungeonDialogue(&GroudonPreFightDialogue_9); sub_803E708(10,0x46); sub_8085930(DIRECTION_NORTH); sub_8086764(); sub_803E708(0x28,0x46); PlaySoundEffect(0x1d5); SpriteLookAroundEffect(PartnerEntity); - DisplayDungeonDialogue(&gUnknown_8102FD8); + DisplayDungeonDialogue(&GroudonPreFightDialogue_10); sub_803E708(10,0x46); sub_8086838(1,1,1); sub_808680C(); sub_803E708(0x3c,0x46); - DisplayDungeonDialogue(&gUnknown_8103054); + DisplayDungeonDialogue(&GroudonPreFightDialogue_11); sub_803E708(10,0x46); sub_8083F14(); GroudonScreenFlash2(); sub_803E708(0x1e,0x46); - DisplayDungeonDialogue(&gUnknown_81030D8); + DisplayDungeonDialogue(&GroudonPreFightDialogue_12); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8103110); + DisplayDungeonDialogue(&GroudonPreFightDialogue_13); sub_803E708(10,0x46); sub_803E708(0x1e,0x46); sub_808682C(); @@ -1336,13 +1336,13 @@ void GroudonPreFightDialogue(void) PlaySoundEffect(0x1fa); sub_8086738(); sub_8085930(DIRECTION_NORTH); - DisplayDungeonDialogue(&gUnknown_8103140); + DisplayDungeonDialogue(&GroudonPreFightDialogue_14); sub_803E708(10,0x46); sub_8086A54(GroudonEntity); sub_8085930(DIRECTION_NORTH); sub_8086764(); SetupBossFightHP(GroudonEntity,500,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void GroudonReFightDialogue(void) @@ -1351,30 +1351,30 @@ void GroudonReFightDialogue(void) struct DungeonEntity * GroudonEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - GroudonEntity = sub_8085680(0xe); + GroudonEntity = GetEntityFromClientType(0xe); sub_8086838(1,1,1); sub_808680C(); sub_803E708(0x3c,0x46); - DisplayDungeonDialogue(&gUnknown_8103188); + DisplayDungeonDialogue(&gGroudonReFightDialogue_1); sub_803E708(10,0x46); GroudonScreenFlash(); sub_803E708(0x1e,0x46); - DisplayDungeonDialogue(&gUnknown_8103228); + DisplayDungeonDialogue(&gGroudonReFightDialogue_2); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8103310); + DisplayDungeonDialogue(&gGroudonReFightDialogue_3); sub_803E708(10,0x46); sub_808682C(); sub_803E708(0x3c,0x46); sub_8083F14(); PlaySoundEffect(0x1fa); sub_8086738(); - DisplayDungeonDialogue(&gUnknown_8103340); + DisplayDungeonDialogue(&gGroudonReFightDialogue_4); sub_803E708(10,0x46); sub_8086A54(GroudonEntity); sub_8085930(DIRECTION_NORTH); sub_8086764(); SetupBossFightHP(GroudonEntity,500,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void GroudonPostStoryPreFightDialogue(void) @@ -1383,26 +1383,26 @@ void GroudonPostStoryPreFightDialogue(void) struct DungeonEntity * GroudonEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - GroudonEntity = sub_8085680(0xe); + GroudonEntity = GetEntityFromClientType(0xe); sub_8086448(); if (sub_8086AE4(SPECIES_GROUDON)) { sub_80866C4(&gUnknown_8103488); } else{ - DisplayDungeonDialogue(&gUnknown_81033A0); + DisplayDungeonDialogue(&gGroudonPostStoryPreFightDialogue_1); sub_803E708(10,0x46); SceneGroudonMovement(GroudonEntity); SceneGroudonMovement(GroudonEntity); - DisplayDungeonDialogue(&gUnknown_81033AC); + DisplayDungeonDialogue(&gGroudonPostStoryPreFightDialogue_2); PlaySoundEffect(0x1f6); GroudonScreenFlash(); - DisplayDungeonDialogue(&gUnknown_810343C); + DisplayDungeonDialogue(&gGroudonPostStoryPreFightDialogue_3); PlaySoundEffect(0x1f6); GroudonScreenFlash(); - DisplayDungeonDialogue(&gUnknown_810347C); + DisplayDungeonDialogue(&gGroudonPostStoryPreFightDialogue_4); sub_803E708(10,0x46); SetupBossFightHP(GroudonEntity,500,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } } @@ -1439,21 +1439,21 @@ void GroudonScreenFlash(void) for(iVar1 = 250; iVar1 > 0x95; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1 / 2,iVar1 / 2,1,1); + SetDungeonBGColorRGB(iVar1,iVar1 / 2,iVar1 / 2,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); for(iVar1 = 250; iVar1 > 199; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1 / 2,0,1,1); + SetDungeonBGColorRGB(iVar1,iVar1 / 2,0,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1 / 2,iVar1 / 2,1,1); + SetDungeonBGColorRGB(iVar1,iVar1 / 2,iVar1 / 2,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); @@ -1466,21 +1466,21 @@ void GroudonScreenFlash2(void) for(iVar1 = 250; iVar1 > 0x95; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1 / 2,iVar1 / 2,1,1); + SetDungeonBGColorRGB(iVar1,iVar1 / 2,iVar1 / 2,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); for(iVar1 = 250; iVar1 > 199; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1 / 2,0,1,1); + SetDungeonBGColorRGB(iVar1,iVar1 / 2,0,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1 / 2,iVar1 / 2,1,1); + SetDungeonBGColorRGB(iVar1,iVar1 / 2,iVar1 / 2,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); @@ -1495,8 +1495,8 @@ void sub_8088DC0(void) struct DungeonEntity * uVar3; LeaderEntity = xxx_call_GetLeaderEntity(); - uVar2 = sub_8085680(0xb); - uVar3 = sub_8085680(0xc); + uVar2 = GetEntityFromClientType(0xb); + uVar3 = GetEntityFromClientType(0xc); sub_80867F4(); sub_8086838(0,1,0); sub_8085374(); @@ -1519,8 +1519,8 @@ void sub_8088E5C(void) struct DungeonEntity * uVar3; LeaderEntity = xxx_call_GetLeaderEntity(); - uVar2 = sub_8085680(0xb); - uVar3 = sub_8085680(0xc); + uVar2 = GetEntityFromClientType(0xb); + uVar3 = GetEntityFromClientType(0xc); sub_80867F4(); sub_8086838(0,1,0); sub_80854D4(); @@ -1546,18 +1546,18 @@ void MagmaCavernMidDialogue(void) struct DungeonEntity * iVar3; struct DungeonEntity * iVar4; u8 auStack36 [4]; - s32 local_20[2]; + struct Position32 local_20; LeaderEntity = xxx_call_GetLeaderEntity(); PartnerEntity = GetPartnerEntity(); - iVar3 = sub_8085680(0xb); - iVar4 = sub_8085680(0xc); + iVar3 = GetEntityFromClientType(0xb); + iVar4 = GetEntityFromClientType(0xc); sub_8052D44(auStack36,LeaderEntity,PartnerEntity); sub_8086448(); SpriteLookAroundEffect(PartnerEntity); // Let's see.. // I wonder where we are? - DisplayDungeonDialogue(&gUnknown_8102B1C); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_1); sub_803E708(10,0x46); sub_80869E4(PartnerEntity,4,1,2); sub_80869E4(LeaderEntity,4,2,6); @@ -1566,7 +1566,7 @@ void MagmaCavernMidDialogue(void) // // I'm certain we've come quite // far already.. - DisplayDungeonDialogue(&gUnknown_8102B54); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_2); sub_803E708(10,0x46); sub_8083F14(); sub_80855E4(sub_80868F4); @@ -1575,7 +1575,7 @@ void MagmaCavernMidDialogue(void) sub_803E708(0x28,0x46); // Waaah! // Qu-quake! - DisplayDungeonDialogue(&gUnknown_8102BC4); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_3); sub_803E708(0x78,0x46); sub_8083E58(0x1c5); sub_808682C(); @@ -1588,7 +1588,7 @@ void MagmaCavernMidDialogue(void) // // Whew // It's over. - DisplayDungeonDialogue(&gUnknown_8102BE4); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_4); sub_803E708(10,0x46); PlaySoundEffect(0x1d5); SpriteLookAroundEffect(PartnerEntity); @@ -1596,12 +1596,12 @@ void MagmaCavernMidDialogue(void) sub_80856E0(PartnerEntity,4); // Hey! {ARG_POKEMON_0}! // Over there! - DisplayDungeonDialogue(&gUnknown_8102C30); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_5); iVar3->entityData->unk15E = 0; iVar4->entityData->unk15E =0; - local_20[0] = (iVar3->posPixel.x + iVar4->posPixel.x) / 2; - local_20[1] = (iVar3->posPixel.y + iVar4->posPixel.y) / 2 + 0x800; - sub_80858AC(local_20,0x20); + local_20.x = (iVar3->posPixel.x + iVar4->posPixel.x) / 2; + local_20.y = (iVar3->posPixel.y + iVar4->posPixel.y) / 2 + 0x800; + ShiftCameraToPosition(&local_20,0x20); sub_803E708(0x3c,0x46); sub_80891F0(); // Hey! @@ -1609,29 +1609,29 @@ void MagmaCavernMidDialogue(void) // // Hey! // Snap out of it! - DisplayDungeonDialogue(&gUnknown_8102C54); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_6); sub_803E708(10,0x46); // Urrrrgh... - DisplayDungeonDialogue(&gUnknown_8102C98); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_7); sub_803E708(10,0x46); sub_80869E4(LeaderEntity,4,2,5); // What happened to you? // // What happened here? - DisplayDungeonDialogue(&gUnknown_8102CB0); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_8); sub_803E708(10,0x46); // We challenged.. // {ARG_POKEMON_2}... // And wiped out.. - DisplayDungeonDialogue(&gUnknown_8102CF8); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_9); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8102D34); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_10); sub_803E708(10,0x46); sub_80869E4(LeaderEntity,4,1,3); sub_80869E4(PartnerEntity,4,1,3); // Grrgh.. // We... It crushed us - DisplayDungeonDialogue(&gUnknown_8102D4C); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_11); sub_803E708(10,0x46); PlaySoundEffect(0x1d5); SpriteLookAroundEffect(PartnerEntity); @@ -1642,20 +1642,20 @@ void MagmaCavernMidDialogue(void) // Wait... // What about {ARG_POKEMON_3}? // Where did {ARG_POKEMON_3} go? - DisplayDungeonDialogue(&gUnknown_8102D7C); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_12); sub_803E708(0x1e,0x46); // {ARG_POKEMON_3} is... // Still battling {ARG_POKEMON_2}... - DisplayDungeonDialogue(&gUnknown_8102DFC); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_13); sub_803E708(10,0x46); sub_80869E4(PartnerEntity,4,1,2); sub_80869E4(LeaderEntity,4,2,6); // {ARG_POKEMON_0}! // We've got to hurry! - DisplayDungeonDialogue(&gUnknown_8102E2C); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_14); sub_8089294(); // Be careful! - DisplayDungeonDialogue(&gUnknown_8102E54); + DisplayDungeonDialogue(&MagmaCavernMidDialogue_15); sub_803E708(10,0x46); gDungeonGlobalData->unk2 = 1; } @@ -1669,7 +1669,7 @@ void sub_8089168(void) sub_803E708(10,0x46); SpriteLookAroundEffect(LeaderEntity); sub_803E708(10,0x46); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void sub_808919C(struct DungeonEntity *r0) @@ -1764,7 +1764,7 @@ void sub_80892C8(void) struct DungeonEntity * RayquazaEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - RayquazaEntity = sub_8085680(0xf); + RayquazaEntity = GetEntityFromClientType(0xf); sub_8083E88(0x1a); sub_8085374(); sub_80854D4(); @@ -1782,7 +1782,7 @@ void sub_8089328(void) struct DungeonEntity * RayquazaEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - RayquazaEntity = sub_8085680(0xf); + RayquazaEntity = GetEntityFromClientType(0xf); sub_8083E88(0x1a); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -1814,37 +1814,37 @@ void RayquazaPreFightDialogue(void) LeaderEntity = xxx_call_GetLeaderEntity(); PartnerEntity = GetPartnerEntity(); - RayquazaEntity = sub_8085680(0xf); + RayquazaEntity = GetEntityFromClientType(0xf); sub_8086448(); - DisplayDungeonDialogue(&gUnknown_8103500); + DisplayDungeonDialogue(&gRayquazaPreFightDialogue_1); RayquazaScreenFlash(); - DisplayDungeonDialogue(&gUnknown_810352C); + DisplayDungeonDialogue(&gRayquazaPreFightDialogue_2); sub_80856E0(PartnerEntity,4); SpriteLookAroundEffect(PartnerEntity); sub_803E708(10,0x46); sub_80869E4(PartnerEntity,4,1,2); sub_80869E4(LeaderEntity,4,2,6); - DisplayDungeonDialogue(&gUnknown_8103578); + DisplayDungeonDialogue(&gRayquazaPreFightDialogue_3); sub_80869E4(PartnerEntity,4,2,4); sub_80869E4(LeaderEntity,4,1,4); - DisplayDungeonDialogue(&gUnknown_81035D4); + DisplayDungeonDialogue(&gRayquazaPreFightDialogue_4); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8103618); + DisplayDungeonDialogue(&gRayquazaPreFightDialogue_5); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_810367C); + DisplayDungeonDialogue(&gRayquazaPreFightDialogue_6); RayquazaScreenFlash(); PlaySoundEffect(0x1da); // Rayquaza Cry - DisplayDungeonDialogue(&gUnknown_8103690); + DisplayDungeonDialogue(&gRayquazaPreFightDialogue_7); sub_8089620(RayquazaEntity); - DisplayDungeonDialogue(&gUnknown_81036C8); + DisplayDungeonDialogue(&gRayquazaPreFightDialogue_8); RayquazaScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81037A0); + DisplayDungeonDialogue(&gRayquazaPreFightDialogue_9); RayquazaScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81037D4); + DisplayDungeonDialogue(&gRayquazaPreFightDialogue_10); RayquazaScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8103820); + DisplayDungeonDialogue(&gRayquazaPreFightDialogue_11); SetupBossFightHP(RayquazaEntity,600,0x20); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void RayquazaReFightDialogue(void) @@ -1853,22 +1853,22 @@ void RayquazaReFightDialogue(void) struct DungeonEntity *RayquazaEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - RayquazaEntity = sub_8085680(0xf); + RayquazaEntity = GetEntityFromClientType(0xf); sub_8086448(); RayquazaScreenFlash(); PlaySoundEffect(0x1da); // Rayquaza Cry - DisplayDungeonDialogue(&gUnknown_8103690); + DisplayDungeonDialogue(&gRayquazaPreFightDialogue_7); sub_803E708(10,0x46); sub_8089620(RayquazaEntity); - DisplayDungeonDialogue(&gUnknown_8103844); + DisplayDungeonDialogue(&gRayquazaReFightDialogue_1); RayquazaScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8103874); + DisplayDungeonDialogue(&gRayquazaReFightDialogue_2); RayquazaScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81038A8); + DisplayDungeonDialogue(&gRayquazaReFightDialogue_3); RayquazaScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81038F8); + DisplayDungeonDialogue(&gRayquazaReFightDialogue_4); SetupBossFightHP(RayquazaEntity,600,0x20); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void RayquazaPostStoryPreFightDialogue(void) @@ -1877,24 +1877,24 @@ void RayquazaPostStoryPreFightDialogue(void) struct DungeonEntity *RayquazaEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - RayquazaEntity = sub_8085680(0xf); + RayquazaEntity = GetEntityFromClientType(0xf); sub_8086448(); if (sub_8086AE4(SPECIES_RAYQUAZA)) { - sub_80866C4(&gUnknown_8103B58); + sub_80866C4(&gRayquazaPostStoryPreFightDialogue_6); } else { PlaySoundEffect(0x1da); // Rayquaza Cry - DisplayDungeonDialogue(&gUnknown_8103904); + DisplayDungeonDialogue(&gRayquazaPostStoryPreFightDialogue_1); sub_8089620(RayquazaEntity); - DisplayDungeonDialogue(&gUnknown_8103938); + DisplayDungeonDialogue(&gRayquazaPostStoryPreFightDialogue_2); RayquazaScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8103AA4); + DisplayDungeonDialogue(&gRayquazaPostStoryPreFightDialogue_3); RayquazaScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8103AE4); + DisplayDungeonDialogue(&gRayquazaPostStoryPreFightDialogue_4); RayquazaScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8103B30); + DisplayDungeonDialogue(&gRayquazaPostStoryPreFightDialogue_5); SetupBossFightHP(RayquazaEntity,600,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } } @@ -1927,19 +1927,19 @@ void RayquazaScreenFlash(void) PlaySoundEffect(0x1f6); for(iVar1 = 250; iVar1 > 149; iVar1 -= 10) { - sub_8085C54(iVar1 / 2, iVar1, iVar1 / 2, 1, 1); + SetDungeonBGColorRGB(iVar1 / 2, iVar1, iVar1 / 2, 1, 1); sub_803E46C(70); } sub_803E708(10,70); for(iVar1 = 250; iVar1 > 199; iVar1 -= 10) { - sub_8085C54(iVar1 / 2, iVar1, 0, 1, 1); + SetDungeonBGColorRGB(iVar1 / 2, iVar1, 0, 1, 1); sub_803E46C(70); } sub_803E708(10,70); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10) { - sub_8085C54(iVar1 / 2, iVar1, iVar1 / 2, 1, 1); + SetDungeonBGColorRGB(iVar1 / 2, iVar1, iVar1 / 2, 1, 1); sub_803E46C(70); } sub_803E708(10,70); @@ -2028,7 +2028,7 @@ void sub_80897F0(void) // Get 'em! It's frenzy time! DisplayDungeonDialogue(&gUnknown_8103D50); sub_803E708(10,0x46); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } @@ -2048,7 +2048,7 @@ void sub_8089878(void) DisplayDungeonDialogue(&gUnknown_8103DD8); DisplayDungeonDialogue(&gUnknown_8103E28); sub_803E708(10,0x46); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void sub_80898E4(void) @@ -2073,7 +2073,7 @@ void sub_8089914(void) struct DungeonEntity *MewtwoEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - MewtwoEntity = sub_8085680(0x11); + MewtwoEntity = GetEntityFromClientType(0x11); sub_8083F14(); gDungeonGlobalData->unk7 = 1; sub_80854D4(); @@ -2091,7 +2091,7 @@ void sub_8089978(void) struct DungeonEntity *MewtwoEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - MewtwoEntity = sub_8085680(0x11); + MewtwoEntity = GetEntityFromClientType(0x11); sub_8083F14(); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -2123,51 +2123,51 @@ void MewtwoPreFightDialogue(void) struct DungeonEntity *MewtwoEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - MewtwoEntity = sub_8085680(0x11); + MewtwoEntity = GetEntityFromClientType(0x11); sub_8086448(); - DisplayDungeonDialogue(&gUnknown_8103EA4); + DisplayDungeonDialogue(&gMewtwoPreFightDialogue_1); sub_803E708(10,0x46); sub_8083E88(0x23); sub_8086794(); sub_803E708(0x1e,0x46); sub_8089B64(MewtwoEntity); sub_803E708(0x3c,0x46); - DisplayDungeonDialogue(&gUnknown_8103F0C); - DisplayDungeonDialogue(&gUnknown_8103F4C); + DisplayDungeonDialogue(&gMewtwoPreFightDialogue_2); + DisplayDungeonDialogue(&gMewtwoPreFightDialogue_3); sub_803E708(10,0x46); MewtwoScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8103FCC); + DisplayDungeonDialogue(&gMewtwoPreFightDialogue_4); MewtwoScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104008); + DisplayDungeonDialogue(&gMewtwoPreFightDialogue_5); sub_803E708(10,0x46); SetupBossFightHP(MewtwoEntity,900,0x20); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } -void MewtwoPreFightDialogue1(void) +void MewtwoReFightDialogue(void) { struct DungeonEntity *LeaderEntity; struct DungeonEntity *MewtwoEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - MewtwoEntity = sub_8085680(0x11); + MewtwoEntity = GetEntityFromClientType(0x11); sub_8086448(); if(HasRecruitedMon(SPECIES_MEWTWO)) { - sub_80866C4(&gUnknown_8104144); + sub_80866C4(&gMewtwoReFightDialogue_5); } else { - DisplayDungeonDialogue(&gUnknown_8104044); + DisplayDungeonDialogue(&gMewtwoReFightDialogue_1); sub_8083E88(0x23); sub_8086794(); sub_8089B64(MewtwoEntity); sub_803E708(0x3c,0x46); - DisplayDungeonDialogue(&gUnknown_8104050); + DisplayDungeonDialogue(&gMewtwoReFightDialogue_2); MewtwoScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81040CC); + DisplayDungeonDialogue(&gMewtwoReFightDialogue_3); MewtwoScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104114); + DisplayDungeonDialogue(&gMewtwoReFightDialogue_4); SetupBossFightHP(MewtwoEntity,900,0x20); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } } @@ -2200,19 +2200,19 @@ void MewtwoScreenFlash(void) PlaySoundEffect(0x1f6); for(iVar1 = 250; iVar1 > 149; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); for(iVar1 = 250; iVar1 > 199; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,0,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,0,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,1); sub_803E46C(0x46); } sub_803E708(10,0x46); @@ -2225,7 +2225,7 @@ void sub_8089C44(void) struct DungeonEntity * EnteiEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - EnteiEntity = sub_8085680(0x12); + EnteiEntity = GetEntityFromClientType(0x12); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -2241,7 +2241,7 @@ void sub_8089C90(void) struct DungeonEntity * EnteiEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - EnteiEntity = sub_8085680(0x12); + EnteiEntity = GetEntityFromClientType(0x12); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -2271,56 +2271,56 @@ void EnteiPreFightDialogue(void) struct DungeonEntity * EnteiEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - EnteiEntity = sub_8085680(0x12); + EnteiEntity = GetEntityFromClientType(0x12); EnteiScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104150); + DisplayDungeonDialogue(&gEnteiPreFightDialogue_1); EnteiScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81041AC); + DisplayDungeonDialogue(&gEnteiPreFightDialogue_2); EnteiScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81041F8); + DisplayDungeonDialogue(&gEnteiPreFightDialogue_3); sub_803E708(10,70); SetupBossFightHP(EnteiEntity,600,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } -void EnteiPreFightDialogue1(void) +void EnteiReFightDialogue(void) { struct DungeonEntity * LeaderEntity; struct DungeonEntity * EnteiEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - EnteiEntity = sub_8085680(0x12); + EnteiEntity = GetEntityFromClientType(0x12); EnteiScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104240); + DisplayDungeonDialogue(&gEnteiReFightDialogue_1); EnteiScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81042AC); + DisplayDungeonDialogue(&gEnteiReFightDialogue_2); EnteiScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81042B8); + DisplayDungeonDialogue(&gEnteiReFightDialogue_3); sub_803E708(10,70); SetupBossFightHP(EnteiEntity,600,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } -void EnteiPreFightDialogue2(void) +void EnteiPostStoryPreFightDialogue(void) { struct DungeonEntity * LeaderEntity; struct DungeonEntity * EnteiEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - EnteiEntity = sub_8085680(0x12); + EnteiEntity = GetEntityFromClientType(0x12); if (HasRecruitedMon(SPECIES_ENTEI)) { - sub_80866C4(&gUnknown_81043DC); + sub_80866C4(&gEnteiPostStoryPreFightDialogue_4); } else { EnteiScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104310); + DisplayDungeonDialogue(&gEnteiPostStoryPreFightDialogue_1); EnteiScreenFlash(); - DisplayDungeonDialogue(&gUnknown_810439C); + DisplayDungeonDialogue(&gEnteiPostStoryPreFightDialogue_2); EnteiScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81043C0); + DisplayDungeonDialogue(&gEnteiPostStoryPreFightDialogue_3); sub_803E708(10,70); SetupBossFightHP(EnteiEntity,600,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } } @@ -2331,19 +2331,19 @@ void EnteiScreenFlash(void) PlaySoundEffect(0x1ed); for(iVar1 = 250; iVar1 > 149; iVar1 -= 10) { - sub_8085C54(iVar1, iVar1 / 2, iVar1 / 2, 1, 1); + SetDungeonBGColorRGB(iVar1, iVar1 / 2, iVar1 / 2, 1, 1); sub_803E46C(70); } sub_803E708(10,70); for(iVar1 = 250; iVar1 > 199; iVar1 -= 10) { - sub_8085C54(iVar1, 0, 0, 1, 1); + SetDungeonBGColorRGB(iVar1, 0, 0, 1, 1); sub_803E46C(70); } sub_803E708(10,70); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10) { - sub_8085C54(iVar1, iVar1 / 2, iVar1 / 2, 1, 1); + SetDungeonBGColorRGB(iVar1, iVar1 / 2, iVar1 / 2, 1, 1); sub_803E46C(70); } sub_803E708(10,70); @@ -2356,7 +2356,7 @@ void sub_8089EFC(void) struct DungeonEntity * RaikouEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - RaikouEntity = sub_8085680(0x13); + RaikouEntity = GetEntityFromClientType(0x13); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -2372,7 +2372,7 @@ void sub_8089F44(void) struct DungeonEntity * RaikouEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - RaikouEntity = sub_8085680(0x13); + RaikouEntity = GetEntityFromClientType(0x13); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -2388,7 +2388,7 @@ void sub_8089F8C(void) struct DungeonEntity * RaikouEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - RaikouEntity = sub_8085680(0x13); + RaikouEntity = GetEntityFromClientType(0x13); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -2417,66 +2417,66 @@ void RaikouPreFightDialogue(void) struct DungeonEntity * RaikouEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - RaikouEntity = sub_8085680(0x13); - DisplayDungeonDialogue(&gUnknown_8104450); + RaikouEntity = GetEntityFromClientType(0x13); + DisplayDungeonDialogue(&gRaikouPreFightDialogue_1); RaikouScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81044B4); - gDungeonGlobalData->unkE265 = 4; + DisplayDungeonDialogue(&gRaikouPreFightDialogue_2); + gDungeonGlobalData->unkE265 = WEATHER_RAIN; sub_807EAA0(0,1); sub_803E708(10,70); - DisplayDungeonDialogue(&gUnknown_8104510); + DisplayDungeonDialogue(&gRaikouPreFightDialogue_3); RaikouScreenFlash(); - DisplayDungeonDialogue(&gUnknown_810453C); + DisplayDungeonDialogue(&gRaikouPreFightDialogue_4); RaikouScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104570); + DisplayDungeonDialogue(&gRaikouPreFightDialogue_5); RaikouScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81045B0); + DisplayDungeonDialogue(&gRaikouPreFightDialogue_6); sub_803E708(10,70); SetupBossFightHP(RaikouEntity,0x28a,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } -void RaikouPreFightDialogue1(void) +void RaikouReFightDialogue(void) { struct DungeonEntity * LeaderEntity; struct DungeonEntity * RaikouEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - RaikouEntity = sub_8085680(0x13); - gDungeonGlobalData->unkE265 = 4; + RaikouEntity = GetEntityFromClientType(0x13); + gDungeonGlobalData->unkE265 = WEATHER_RAIN; sub_807EAA0(0,1); RaikouScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81045F8); + DisplayDungeonDialogue(&gRaikouReFightDialogue_1); RaikouScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104674); + DisplayDungeonDialogue(&gRaikouReFightDialogue_2); RaikouScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81046A0); + DisplayDungeonDialogue(&gRaikouReFightDialogue_3); sub_803E708(10,70); SetupBossFightHP(RaikouEntity,0x28a,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } -void RaikouPreFightDialogue2(void) +void RaikouPostStoryPreFightDialogue(void) { struct DungeonEntity * LeaderEntity; struct DungeonEntity * RaikouEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - RaikouEntity = sub_8085680(0x13); + RaikouEntity = GetEntityFromClientType(0x13); if (HasRecruitedMon(SPECIES_RAIKOU)) { - sub_80866C4(&gUnknown_8104778); + sub_80866C4(&gRaikouPostStoryPreFightDialogue_4); } else { - gDungeonGlobalData->unkE265 = 4; + gDungeonGlobalData->unkE265 = WEATHER_RAIN; sub_807EAA0(0,1); - DisplayDungeonDialogue(&gUnknown_81046CC); + DisplayDungeonDialogue(&gRaikouPostStoryPreFightDialogue_1); RaikouScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104744); + DisplayDungeonDialogue(&gRaikouPostStoryPreFightDialogue_2); RaikouScreenFlash(); - DisplayDungeonDialogue(&gUnknown_810476C); + DisplayDungeonDialogue(&gRaikouPostStoryPreFightDialogue_3); sub_803E708(10,70); SetupBossFightHP(RaikouEntity,0x28a,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } } @@ -2487,19 +2487,19 @@ void RaikouScreenFlash(void) PlaySoundEffect(0x1f6); for(iVar1 = 250; iVar1 > 149; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,1); sub_803E46C(70); } sub_803E708(10,70); for(iVar1 = 250; iVar1 > 199; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,1); sub_803E46C(70); } sub_803E708(10,70); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,1); sub_803E46C(70); } sub_803E708(10,70); @@ -2512,7 +2512,7 @@ void sub_808A264(void) struct DungeonEntity * SuicuneEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - SuicuneEntity = sub_8085680(0x14); + SuicuneEntity = GetEntityFromClientType(0x14); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -2529,7 +2529,7 @@ void sub_808A2C0(void) struct DungeonEntity * SuicuneEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - SuicuneEntity = sub_8085680(0x14); + SuicuneEntity = GetEntityFromClientType(0x14); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -2544,7 +2544,7 @@ void sub_808A308(void) struct DungeonEntity * SuicuneEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - SuicuneEntity = sub_8085680(0x14); + SuicuneEntity = GetEntityFromClientType(0x14); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -2572,64 +2572,64 @@ void SuicunePreFightDialogue(void) struct DungeonEntity * SuicuneEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - SuicuneEntity = sub_8085680(0x14); + SuicuneEntity = GetEntityFromClientType(0x14); sub_8086448(); - DisplayDungeonDialogue(&gUnknown_8104784); + DisplayDungeonDialogue(&gSuicunePreFightDialogue_1); sub_803E708(10,70); - DisplayDungeonDialogue(&gUnknown_8104790); + DisplayDungeonDialogue(&gSuicunePreFightDialogue_2); sub_803E708(10,70); sub_80426C8(1,2); sub_803E708(0x3c,70); - DisplayDungeonDialogue(&gUnknown_81047B0); + DisplayDungeonDialogue(&gSuicunePreFightDialogue_3); sub_803E708(10,70); sub_808A528(SuicuneEntity); - DisplayDungeonDialogue(&gUnknown_810484C); - DisplayDungeonDialogue(&gUnknown_8104888); + DisplayDungeonDialogue(&gSuicunePreFightDialogue_4); + DisplayDungeonDialogue(&gSuicunePreFightDialogue_5); SuicuneScreenFlash(); - DisplayDungeonDialogue(&gUnknown_81048C8); + DisplayDungeonDialogue(&gSuicunePreFightDialogue_6); SuicuneScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104914); + DisplayDungeonDialogue(&gSuicunePreFightDialogue_7); sub_803E708(10,70); SetupBossFightHP(SuicuneEntity,0x28a,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } -void SuicunePreFightDialogue1(void) +void SuicuneReFightDialogue(void) { struct DungeonEntity * LeaderEntity; struct DungeonEntity * SuicuneEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - SuicuneEntity = sub_8085680(0x14); - DisplayDungeonDialogue(&gUnknown_8104930); + SuicuneEntity = GetEntityFromClientType(0x14); + DisplayDungeonDialogue(&gSuicuneReFightDialogue_1); SuicuneScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104980); + DisplayDungeonDialogue(&gSuicuneReFightDialogue_2); SuicuneScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104998); + DisplayDungeonDialogue(&gSuicuneReFightDialogue_3); sub_803E708(10,70); SetupBossFightHP(SuicuneEntity,0x28a,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } -void SuicunePreFightDialogue2(void) +void SuicunePostStoryPreFightDialogue(void) { struct DungeonEntity * LeaderEntity; struct DungeonEntity * SuicuneEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - SuicuneEntity = sub_8085680(0x14); + SuicuneEntity = GetEntityFromClientType(0x14); if (HasRecruitedMon(SPECIES_SUICUNE)) { - sub_80866C4(&gUnknown_8104AC8); + sub_80866C4(&gSuicunePostStoryPreFightDialogue_4); } else { - DisplayDungeonDialogue(&gUnknown_81049D4); + DisplayDungeonDialogue(&gSuicunePostStoryPreFightDialogue_1); SuicuneScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104A80); + DisplayDungeonDialogue(&gSuicunePostStoryPreFightDialogue_2); SuicuneScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104A9C); + DisplayDungeonDialogue(&gSuicunePostStoryPreFightDialogue_3); sub_803E708(10,70); SetupBossFightHP(SuicuneEntity,0x28a,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } } @@ -2662,19 +2662,19 @@ void SuicuneScreenFlash(void) PlaySoundEffect(0x1ee); for(iVar1 = 250; iVar1 > 149; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,1); sub_803E46C(70); } sub_803E708(10,70); for(iVar1 = 250; iVar1 > 199; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,1); sub_803E46C(70); } sub_803E708(10,70); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,1); sub_803E46C(70); } sub_803E708(10,70); @@ -2687,7 +2687,7 @@ void sub_808A608(void) struct DungeonEntity * HoOhEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - HoOhEntity = sub_8085680(0x15); + HoOhEntity = GetEntityFromClientType(0x15); sub_8083E88(0x1c); sub_80867F4(); sub_8086838(0,0,0); @@ -2705,7 +2705,7 @@ void sub_808A668(void) struct DungeonEntity * HoOhEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - HoOhEntity = sub_8085680(0x15); + HoOhEntity = GetEntityFromClientType(0x15); sub_8083E88(0x1c); sub_80867F4(); sub_8086838(0,0,0); @@ -2740,18 +2740,18 @@ void HoOhPreFightDialogue(void) { struct DungeonEntity * LeaderEntity; struct DungeonEntity * HoOhEntity; - int local_14[2]; + struct Position32 local_14; LeaderEntity = xxx_call_GetLeaderEntity(); - HoOhEntity = sub_8085680(0x15); - local_14[0] = LeaderEntity->posPixel.x; - local_14[1] = LeaderEntity->posPixel.y + -0x1000; - sub_80858AC(local_14,0x88); + HoOhEntity = GetEntityFromClientType(0x15); + local_14.x = LeaderEntity->posPixel.x; + local_14.y = LeaderEntity->posPixel.y + -0x1000; + ShiftCameraToPosition(&local_14,0x88); sub_803E708(0x40,70); - DisplayDungeonDialogue(&gUnknown_8104AD4); + DisplayDungeonDialogue(&gHoOhPreFightDialogue_1); sub_803E708(10,70); HoOhScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104BEC); + DisplayDungeonDialogue(&gHoOhPreFightDialogue_2); sub_803E708(10,70); sub_80855E4(sub_80868F4); sub_808680C(); @@ -2762,37 +2762,37 @@ void HoOhPreFightDialogue(void) sub_808682C(); sub_80855E4(sub_8086910); sub_8085930(DIRECTION_NORTH); - DisplayDungeonDialogue(&gUnknown_8104C10); - DisplayDungeonDialogue(&gUnknown_8104C54); + DisplayDungeonDialogue(&gHoOhPreFightDialogue_3); + DisplayDungeonDialogue(&gHoOhPreFightDialogue_4); sub_803E708(0x1e,70); sub_803E708(0x1e,70); HoOhScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104CB4); + DisplayDungeonDialogue(&gHoOhPreFightDialogue_5); HoOhScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104CE0); + DisplayDungeonDialogue(&gHoOhPreFightDialogue_6); sub_803E708(10,70); SetupBossFightHP(HoOhEntity,800,0x20); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } -void HoOhPreFightDialogue1(void) +void HoOhReFightDialogue(void) { struct DungeonEntity * LeaderEntity; struct DungeonEntity * HoOhEntity; - u32 local_14[2]; + struct Position32 local_14; LeaderEntity = xxx_call_GetLeaderEntity(); - HoOhEntity = sub_8085680(0x15); + HoOhEntity = GetEntityFromClientType(0x15); - local_14[0] = LeaderEntity->posPixel.x; - local_14[1] = LeaderEntity->posPixel.y + -0x1000; - sub_80858AC(local_14,0x88); + local_14.x = LeaderEntity->posPixel.x; + local_14.y = LeaderEntity->posPixel.y + -0x1000; + ShiftCameraToPosition(&local_14,0x88); sub_803E708(0x40,70); if (HasRecruitedMon(SPECIES_HO_OH)) { - sub_80866C4(&gUnknown_8104E54); + sub_80866C4(&HoOhReFightDialogue_5); } else { - DisplayDungeonDialogue(&gUnknown_8104CEC); + DisplayDungeonDialogue(&HoOhReFightDialogue_1); HoOhScreenFlash(); sub_80855E4(sub_80868F4); sub_808680C(); @@ -2801,14 +2801,14 @@ void HoOhPreFightDialogue1(void) sub_808682C(); sub_80855E4(sub_8086910); sub_8085930(DIRECTION_NORTH); - DisplayDungeonDialogue(&gUnknown_8104D60); + DisplayDungeonDialogue(&HoOhReFightDialogue_2); HoOhScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104DDC); + DisplayDungeonDialogue(&HoOhReFightDialogue_3); HoOhScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104E0C); + DisplayDungeonDialogue(&HoOhReFightDialogue_4); sub_803E708(10,70); SetupBossFightHP(HoOhEntity,800,0x20); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } } @@ -2841,19 +2841,19 @@ void HoOhScreenFlash(void) PlaySoundEffect(0x1ed); for(iVar1 = 250; iVar1 > 149; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,1); sub_803E46C(70); } sub_803E708(10,70); for(iVar1 = 250; iVar1 > 199; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,1); sub_803E46C(70); } sub_803E708(10,70); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,1); sub_803E46C(70); } sub_803E708(10,70); @@ -2866,7 +2866,7 @@ void sub_808A9E4(void) struct DungeonEntity * LatiosEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - LatiosEntity = sub_8085680(0x16); + LatiosEntity = GetEntityFromClientType(0x16); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -2882,7 +2882,7 @@ void sub_808AA3C(void) struct DungeonEntity * LatiosEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - LatiosEntity = sub_8085680(0x16); + LatiosEntity = GetEntityFromClientType(0x16); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -2898,7 +2898,7 @@ void sub_808AA94(void) struct DungeonEntity * LatiosEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - LatiosEntity = sub_8085680(0x16); + LatiosEntity = GetEntityFromClientType(0x16); sub_8083E88(0x72); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -2920,31 +2920,32 @@ void LatiosPreFightDialogue(void) { struct DungeonEntity * LeaderEntity; struct DungeonEntity * LatiosEntity; - u32 local_18[3]; + struct Position32 local_18; + u32 local_19; LeaderEntity = xxx_call_GetLeaderEntity(); - LatiosEntity = sub_8085680(0x16); + LatiosEntity = GetEntityFromClientType(0x16); - local_18[0] = LatiosEntity->posPixel.x; - local_18[1] = LatiosEntity->posPixel.y + (0x80 << 6); - local_18[2] = 0x7000fc; - sub_8085EC8(0x1bd,0,0,&local_18[2],1); + local_18.x = LatiosEntity->posPixel.x; + local_18.y = LatiosEntity->posPixel.y + (0x80 << 6); + local_19 = 0x7000fc; + sub_8085EC8(0x1bd,0,0,&local_19,1); sub_803E708(0x1e,70); sub_8086448(); - sub_80858AC(local_18,0x18); + ShiftCameraToPosition(&local_18,0x18); sub_803E708(2,70); sub_80862BC(LatiosEntity); sub_803E708(0x20,70); sub_808692C(); - DisplayDungeonDialogue(&gUnknown_8104E60); + DisplayDungeonDialogue(&gLatiosPreFightDialogue_1); LatiosScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104EFC); + DisplayDungeonDialogue(&gLatiosPreFightDialogue_2); LatiosScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104F30); + DisplayDungeonDialogue(&gLatiosPreFightDialogue_3); sub_803E708(10,70); SetupBossFightHP(LatiosEntity,600,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void LatiosReFightDialogue(void) @@ -2953,17 +2954,17 @@ void LatiosReFightDialogue(void) struct DungeonEntity * LatiosEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - LatiosEntity = sub_8085680(0x16); + LatiosEntity = GetEntityFromClientType(0x16); sub_8086448(); sub_808692C(); - DisplayDungeonDialogue(&gUnknown_8104F64); + DisplayDungeonDialogue(&gLatiosReFightDialogue_1); LatiosScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104EFC); + DisplayDungeonDialogue(&gLatiosPreFightDialogue_2); LatiosScreenFlash(); - DisplayDungeonDialogue(&gUnknown_8104F30); + DisplayDungeonDialogue(&gLatiosPreFightDialogue_3); sub_803E708(10,70); SetupBossFightHP(LatiosEntity,600,0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void sub_808AC3C(void) @@ -2981,13 +2982,13 @@ void LatiosScreenFlash(void) gUnknown_202EDC8 = 0x1f; for(iVar1 = 250; iVar1 > 149; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,1); sub_803E46C(70); } sub_803E708(10,70); for(iVar1 = 250; iVar1 >= 0; iVar1 -= 10) { - sub_8085C54(iVar1,iVar1,iVar1,1,1); + SetDungeonBGColorRGB(iVar1,iVar1,iVar1,1,1); sub_803E46C(70); } sub_803E708(10,70); @@ -2999,30 +3000,25 @@ void sub_808ACC0(void) struct DungeonEntity * uVar2; if (HasRecruitedMon(SPECIES_REGIROCK)) { - uVar2 = sub_8085680(0x17); + uVar2 = GetEntityFromClientType(0x17); sub_8068FE0(uVar2,0x21c,0); sub_8097FA8(0x22); sub_8097FA8(0x1d); sub_808B1CC(ITEM_ID_ROCK_PART); } + else if (sub_80860A8(ITEM_ID_ROCK_PART) != 0) { + sub_8098044(0x22); + sub_8097FA8(0x1d); + } + else if (sub_80860A8(ITEM_ID_MUSIC_BOX) != 0) { + sub_8098044(0x22); + sub_8097FA8(0x1d); + } else { - if (sub_80860A8(ITEM_ID_ROCK_PART) != 0) { - sub_8098044(0x22); - sub_8097FA8(0x1d); - } - else - { - if (sub_80860A8(ITEM_ID_MUSIC_BOX) != 0) { - sub_8098044(0x22); - sub_8097FA8(0x1d); - } - else { sub_8098044(0x22); sub_8098044(0x1d); sub_80855E4(SetupRegiFacingDirection); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_REGIROCK); - } - } } } @@ -3031,30 +3027,25 @@ void sub_808AD48(void) struct DungeonEntity * uVar2; if (HasRecruitedMon(SPECIES_REGICE)) { - uVar2 = sub_8085680(0x18); + uVar2 = GetEntityFromClientType(0x18); sub_8068FE0(uVar2,0x21c,0); sub_8097FA8(0x22); sub_8097FA8(0x1d); sub_808B1CC(ITEM_ID_ICE_PART); } + else if (sub_80860A8(ITEM_ID_ICE_PART) != 0) { + sub_8098044(0x22); + sub_8097FA8(0x1d); + } + else if (sub_80860A8(ITEM_ID_MUSIC_BOX) != 0) { + sub_8098044(0x22); + sub_8097FA8(0x1d); + } else { - if (sub_80860A8(ITEM_ID_ICE_PART) != 0) { - sub_8098044(0x22); - sub_8097FA8(0x1d); - } - else - { - if (sub_80860A8(ITEM_ID_MUSIC_BOX) != 0) { - sub_8098044(0x22); - sub_8097FA8(0x1d); - } - else { sub_8098044(0x22); sub_8098044(0x1d); sub_80855E4(SetupRegiFacingDirection); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_REGICE); - } - } } } @@ -3064,30 +3055,25 @@ void sub_808ADCC(void) struct DungeonEntity * uVar2; if (HasRecruitedMon(SPECIES_REGISTEEL)) { - uVar2 = sub_8085680(0x19); + uVar2 = GetEntityFromClientType(0x19); sub_8068FE0(uVar2,0x21c,0); sub_8097FA8(0x22); sub_8097FA8(0x1d); sub_808B1CC(ITEM_ID_STEEL_PART); } + else if (sub_80860A8(ITEM_ID_STEEL_PART) != 0) { + sub_8098044(0x22); + sub_8097FA8(0x1d); + } + else if (sub_80860A8(ITEM_ID_MUSIC_BOX) != 0) { + sub_8098044(0x22); + sub_8097FA8(0x1d); + } else { - if (sub_80860A8(ITEM_ID_STEEL_PART) != 0) { - sub_8098044(0x22); - sub_8097FA8(0x1d); - } - else - { - if (sub_80860A8(ITEM_ID_MUSIC_BOX) != 0) { - sub_8098044(0x22); - sub_8097FA8(0x1d); - } - else { sub_8098044(0x22); sub_8098044(0x1d); sub_80855E4(SetupRegiFacingDirection); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_REGISTEEL); - } - } } } @@ -3108,7 +3094,7 @@ void sub_808AE54(char param_1,char param_2,u32 *param_3) sub_8083E88(0x72); // Something fell from Regirock's body // Regirock was apparently guarding this item - DisplayDungeonDialogue(&gUnknown_8105040); + DisplayDungeonDialogue(&gRegirockPostFightDialogue_1); } } } @@ -3131,7 +3117,7 @@ void sub_808AEC8(char param_1,char param_2,u32 *param_3) sub_8083E88(0x72); // Something fell from Regice's body // Regice was apparently guarding this item - DisplayDungeonDialogue(&gUnknown_810510C); + DisplayDungeonDialogue(&gRegicePostFightDialogue_1); } } } @@ -3153,7 +3139,7 @@ void sub_808AF3C(char param_1,char param_2,u32 *param_3) sub_8083E88(0x72); // Something fell from Registeel's body // Registeel was apparently guarding this item - DisplayDungeonDialogue(&gUnknown_81051D0); + DisplayDungeonDialogue(&gRegisteelPostFightDialogue_1); } } } @@ -3169,7 +3155,7 @@ void sub_808AFB0(char param_1) sub_8097FD0(0x1d); SetMessageArgument(gAvailablePokemonNames,GetLeaderEntity(),0); // {ARG_POKEMON_0} obtained the Rock Part that Regirock was guarding - DisplayDungeonDialogue(&gUnknown_81050B4); + DisplayDungeonDialogue(&gRegirockPostFightDialogue_2); sub_80421C0(0,0xd4); sub_803E708(10,70); sub_8046D20(); @@ -3187,7 +3173,7 @@ void sub_808B030(char param_1) sub_8097FD0(0x1d); SetMessageArgument(gAvailablePokemonNames,GetLeaderEntity(),0); // {ARG_POKEMON_0} obtained the Ice Part that Regice was guarding - DisplayDungeonDialogue(&gUnknown_810517C); + DisplayDungeonDialogue(&gRegicePostFightDialogue_2); sub_80421C0(0,0xd4); sub_803E708(10,70); sub_8046D20(); @@ -3205,7 +3191,7 @@ void sub_808B0B0(char param_1) sub_8097FD0(0x1d); SetMessageArgument(gAvailablePokemonNames, GetLeaderEntity(), 0); // {ARG_POKEMON_0} obtained the Steel Part that Registeel was guarding - DisplayDungeonDialogue(&gUnknown_8105244); + DisplayDungeonDialogue(&gRegisteelPostFightDialogue_2); sub_80421C0(0,0xd4); sub_803E708(10,70); sub_8046D20(); @@ -3218,7 +3204,7 @@ void RegirockPreFightDialogue(void) sub_8085930(DIRECTION_NORTH); // INTRUDER ALERT // EXTERMINATE - DisplayDungeonDialogue(&gUnknown_8104FD4); + DisplayDungeonDialogue(&gRegirockPreFightDialogue_1); sub_803E708(10,70); sub_808563C(SetupRegirockFightHP); } @@ -3230,7 +3216,7 @@ void RegicePreFightDialogue(void) sub_8085930(DIRECTION_NORTH); // INTRUDER ALERT // EXTERMINATE - DisplayDungeonDialogue(&gUnknown_8105028); + DisplayDungeonDialogue(&gRegicePreFightDialogue_1); sub_803E708(10,70); sub_808563C(SetupRegiceFightHP); } @@ -3242,7 +3228,7 @@ void RegisteelPreFightDialogue(void) sub_8085930(DIRECTION_NORTH); // INTRUDER ALERT // EXTERMINATE - DisplayDungeonDialogue(&gUnknown_8105034); + DisplayDungeonDialogue(&gRegisteelPreFightDialogue_1); sub_803E708(10,70); sub_808563C(SetupRegisteelFightHP); } @@ -3369,19 +3355,19 @@ void SetupRegiFacingDirection(struct DungeonEntity *r0) void SetupRegirockFightHP(struct DungeonEntity *r0) { - SetupBossFightHP(r0, 0xE1 << 1, 0xB); + SetupBossFightHP(r0, 450, 0xB); } void SetupRegiceFightHP(struct DungeonEntity *r0) { - SetupBossFightHP(r0, 0xE1 << 1, 0xB); + SetupBossFightHP(r0, 450, 0xB); } void SetupRegisteelFightHP(struct DungeonEntity *r0) { - SetupBossFightHP(r0, 0xE1 << 1, 0xB); + SetupBossFightHP(r0, 450, 0xB); } void sub_808B2F4(void) @@ -3390,7 +3376,7 @@ void sub_808B2F4(void) struct DungeonEntity * JirachiEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - JirachiEntity = sub_8085680(0x1a); + JirachiEntity = GetEntityFromClientType(0x1a); sub_8083E88(0x79); sub_808BCE4(); sub_8049ED4(); @@ -3409,7 +3395,7 @@ void sub_808B35C(void) struct DungeonEntity * JirachiEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - JirachiEntity = sub_8085680(0x1a); + JirachiEntity = GetEntityFromClientType(0x1a); sub_8083E88(0x79); sub_80854D4(); sub_8085930(DIRECTION_NORTH); @@ -3523,32 +3509,32 @@ void JirachiPreFightDialogue(void) struct DungeonEntity * JirachiEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - JirachiEntity = sub_8085680(0x1a); + JirachiEntity = GetEntityFromClientType(0x1a); sub_8086448(); sub_803E708(0x40,70); - DisplayDungeonDialogue(&gUnknown_8105438); + DisplayDungeonDialogue(&gJirachiPreFightDialogue_1); sub_803E708(10,70); SpriteLookAroundEffect(LeaderEntity); sub_803E708(10,70); - DisplayDungeonDialogue(&gUnknown_81054A0); + DisplayDungeonDialogue(&gJirachiPreFightDialogue_2); sub_80861F8(0x37,JirachiEntity,1); sub_80855E4(sub_80862BC); sub_803E708(0x3c,70); - sub_808BBB8(JirachiEntity); + JirachiDropInEffect(JirachiEntity); sub_803E708(0x5a,70); - DisplayDungeonDialogue(&gUnknown_81054E4); + DisplayDungeonDialogue(&gJirachiPreFightDialogue_3); sub_803E708(10,70); - DisplayDungeonDialogue(&gUnknown_810550C); + DisplayDungeonDialogue(&gJirachiPreFightDialogue_4); sub_803E708(10,70); SetupBossFightHP(JirachiEntity,0x15e,0x20); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void sub_808B50C(void) { struct DungeonEntity * JirachiEntity; - JirachiEntity = sub_8085680(0x1a); + JirachiEntity = GetEntityFromClientType(0x1a); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_JIRACHI); sub_80855E4(sub_808BBA8); sub_808BBA8(JirachiEntity); @@ -3566,7 +3552,7 @@ void sub_808B50C(void) // I'm sleepy so I'm going back to sleep. DisplayDungeonDialogue(&gUnknown_8105558); sub_803E708(10,70); - sub_808BC20(JirachiEntity); + JirachiSpinEffect(JirachiEntity); DisplayDungeonDialogue(&gUnknown_81055F4); sub_803E708(10,70); gDungeonGlobalData->unk2 = 1; diff --git a/src/code_807E5AC.c b/src/code_807E5AC.c new file mode 100644 index 000000000..c244bc0c7 --- /dev/null +++ b/src/code_807E5AC.c @@ -0,0 +1,11 @@ +#include "global.h" +#include "dungeon_global_data.h" + +void sub_807FC3C(struct Position *param_1, u32 param_2, u32 param_3) +{ + gDungeonGlobalData->unk13574 = param_1->x; + gDungeonGlobalData->unk13576 = param_1->y; + gDungeonGlobalData->unk13578 = param_2; + gDungeonGlobalData->unk13579 = param_3; + gDungeonGlobalData->unk13570 = 1; +} diff --git a/src/code_80848F0.c b/src/code_80848F0.c index a5cb17a2f..43c23efe8 100644 --- a/src/code_80848F0.c +++ b/src/code_80848F0.c @@ -30,18 +30,18 @@ extern void sub_80897F0(); extern void sub_8089878(); extern void sub_80898E4(); extern void MewtwoPreFightDialogue(); -extern void MewtwoPreFightDialogue1(); +extern void MewtwoReFightDialogue(); extern void EnteiPreFightDialogue(); -extern void EnteiPreFightDialogue1(); -extern void EnteiPreFightDialogue2(); +extern void EnteiReFightDialogue(); +extern void EnteiPostStoryPreFightDialogue(); extern void RaikouPreFightDialogue(); -extern void RaikouPreFightDialogue1(); -extern void RaikouPreFightDialogue2(); +extern void RaikouReFightDialogue(); +extern void RaikouPostStoryPreFightDialogue(); extern void SuicunePreFightDialogue(); -extern void SuicunePreFightDialogue1(); -extern void SuicunePreFightDialogue2(); +extern void SuicuneReFightDialogue(); +extern void SuicunePostStoryPreFightDialogue(); extern void HoOhPreFightDialogue(); -extern void HoOhPreFightDialogue1(); +extern void HoOhReFightDialogue(); extern void LatiosPreFightDialogue(); extern void LatiosReFightDialogue(); extern void sub_808AC3C(); @@ -49,7 +49,7 @@ extern void RegirockPreFightDialogue(); extern void RegicePreFightDialogue(); extern void RegisteelPreFightDialogue(); extern void JirachiPreFightDialogue(); -extern void JirachiPreFightDialogue1(); +extern void JirachiReFightDialogue(); extern void LugiaPreFightDialogue(); extern void KyogrePreFightDialogue(); extern void DeoxysPreFightDialogue(); @@ -418,40 +418,40 @@ void DisplayPreFightDialogue(void) MewtwoPreFightDialogue(); break; case 0x1f: - MewtwoPreFightDialogue1(); + MewtwoReFightDialogue(); break; case 0x20: EnteiPreFightDialogue(); break; case 0x21: - EnteiPreFightDialogue1(); + EnteiReFightDialogue(); break; case 0x22: - EnteiPreFightDialogue2(); + EnteiPostStoryPreFightDialogue(); break; case 0x23: RaikouPreFightDialogue(); break; case 0x24: - RaikouPreFightDialogue1(); + RaikouReFightDialogue(); break; case 0x25: - RaikouPreFightDialogue2(); + RaikouPostStoryPreFightDialogue(); break; case 0x26: SuicunePreFightDialogue(); break; case 0x27: - SuicunePreFightDialogue1(); + SuicuneReFightDialogue(); break; case 0x28: - SuicunePreFightDialogue2(); + SuicunePostStoryPreFightDialogue(); break; case 0x29: HoOhPreFightDialogue(); break; case 0x2a: - HoOhPreFightDialogue1(); + HoOhReFightDialogue(); break; case 0x2b: LatiosPreFightDialogue(); @@ -475,7 +475,7 @@ void DisplayPreFightDialogue(void) JirachiPreFightDialogue(); break; case 0x32: - JirachiPreFightDialogue1(); + JirachiReFightDialogue(); break; case 0x33: LugiaPreFightDialogue(); diff --git a/src/code_80869E4.c b/src/code_80869E4.c index bdcfd6d56..1d24061d9 100644 --- a/src/code_80869E4.c +++ b/src/code_80869E4.c @@ -22,7 +22,7 @@ void sub_80869E4(struct DungeonEntity *r0, u32, u8, s8); extern void sub_80859F0(u32); extern void sub_803E46C(u32); extern void sub_803E9D0(void); -extern void sub_8085C54(u32, u32, u32, u32, u32); +extern void SetDungeonBGColorRGB(u32, u32, u32, u32, u32); extern void PlaySoundEffect(u32); extern struct DungeonEntity *xxx_call_GetLeaderEntity(void); void SpriteLookAroundEffect(struct DungeonEntity *r0); @@ -36,8 +36,8 @@ extern u32 gUnknown_202EDC8; extern void sub_8085EB0(void); extern void sub_803E748(void); extern void sub_80855E4(void *); -extern u32 sub_803F994(void); -extern u32 sub_803F9B0(void); +extern s32 GetCameraXPos(void); +extern s32 GetCameraYPos(void); extern void sub_803F878(u32, u32); extern void sub_8086384(struct DungeonEntity *r0); extern void sub_8085930(u32); @@ -156,8 +156,8 @@ void sub_8086448(void) for(iVar1 = 0; iVar1 < 0x38; iVar1++) { - retVar = sub_803F994(); - retVar2 = sub_803F9B0(); + retVar = GetCameraXPos(); + retVar2 = GetCameraYPos(); retVar2 += (0x80 << 1); sub_803F878(retVar, retVar2); sub_80855E4(sub_8086410); @@ -201,9 +201,9 @@ void sub_8086500(void) for(iVar1 = 0; iVar1 < 0x48; iVar1++) { - retVar = sub_803F994(); + retVar = GetCameraXPos(); retVar += (0x80 << 1); - retVar2 = sub_803F9B0(); + retVar2 = GetCameraYPos(); sub_803F878(retVar, retVar2); sub_80855E4(sub_8086434); sub_803E46C(0x46); @@ -221,9 +221,9 @@ void sub_808654C(void) for(iVar1 = 0; iVar1 < 0x78; iVar1++) { - retVar = sub_803F994(); + retVar = GetCameraXPos(); retVar += (0x80 << 1); - retVar2 = sub_803F9B0(); + retVar2 = GetCameraYPos(); sub_803F878(retVar, retVar2); sub_80855E4(sub_8086434); sub_803E46C(0x46); @@ -241,8 +241,8 @@ void sub_8086598(void) for(iVar1 = 0; iVar1 < 0x18; iVar1++) { - retVar = sub_803F994(); - retVar2 = sub_803F9B0(); + retVar = GetCameraXPos(); + retVar2 = GetCameraYPos(); sub_803F878(retVar, retVar2 + (0xffffff00)); sub_80855E4(sub_8086410); sub_803E46C(0x46); @@ -260,8 +260,8 @@ void sub_80865E8(void) for(iVar1 = 0; iVar1 < 0xC; iVar1++) { - retVar = sub_803F994(); - retVar2 = sub_803F9B0(); + retVar = GetCameraXPos(); + retVar2 = GetCameraYPos(); sub_803F878(retVar, retVar2 + (0x80 << 2)); sub_80855E4(sub_8086424); sub_80855E4(sub_8086424); @@ -280,8 +280,8 @@ void sub_808663C(void) for(iVar1 = 0; iVar1 < 0x10; iVar1++) { - retVar = sub_803F994(); - retVar2 = sub_803F9B0(); + retVar = GetCameraXPos(); + retVar2 = GetCameraYPos(); sub_803F878(retVar, retVar2 + (0x80 << 2)); sub_80855E4(sub_8086424); sub_80855E4(sub_8086424); @@ -323,7 +323,7 @@ void sub_80866FC(void) for(iVar1 = 0; iVar1 >= -0xFA; iVar1 -= 0xA) { - sub_8085C54(iVar1, iVar1, iVar1, 1, 0); + SetDungeonBGColorRGB(iVar1, iVar1, iVar1, 1, 0); sub_803E46C(0x46); } } @@ -339,7 +339,7 @@ void sub_8086738(void) for(iVar1 = 0; iVar1 < 0xFA; iVar1 += 0xA) { - sub_8085C54(iVar1, iVar1, iVar1, 1, 0); + SetDungeonBGColorRGB(iVar1, iVar1, iVar1, 1, 0); sub_803E46C(0x46); } } @@ -350,7 +350,7 @@ void sub_8086764(void) for(iVar1 = 0xFA; iVar1 >= 0; iVar1 -= 5) { - sub_8085C54(iVar1, iVar1, iVar1, 1, 0); + SetDungeonBGColorRGB(iVar1, iVar1, iVar1, 1, 0); sub_803E46C(0x46); } sub_8085EB0(); @@ -364,7 +364,7 @@ void sub_8086794(void) for(iVar1 = 0; iVar1 < 0xC8; iVar1++) { - sub_8085C54(0, 0, 0, 1, 0); + SetDungeonBGColorRGB(0, 0, 0, 1, 0); sub_803E9D0(); sub_803E46C(0x46); if((iVar1 & 3) == 0) diff --git a/src/code_8086A3C.c b/src/code_8086A3C.c index 1c15056bb..b07656118 100644 --- a/src/code_8086A3C.c +++ b/src/code_8086A3C.c @@ -3,11 +3,12 @@ #include "dungeon_entity.h" #include "dungeon_global_data.h" #include "pokemon.h" +#include "dungeon_util_1.h" extern void LoadIQSkills(struct DungeonEntity *); extern struct DungeonEntity *GetPartnerEntity(); extern struct DungeonEntity *xxx_call_GetLeaderEntity(void); -extern struct DungeonEntity *sub_8085680(u32); +extern struct DungeonEntity *GetEntityFromClientType(u32); extern void SetDefaultIQSkills(u8 *param_1, u8 param_2); extern void sub_8097FF8(void); extern u8 sub_8044B28(void); @@ -21,7 +22,6 @@ extern void sub_80855E4(void *); extern void sub_8085860(s32 r0, u32 r1); extern void sub_8068FE0(struct DungeonEntity *, u32, u32); extern void sub_8097FA8(u32); -extern void sub_80858AC(void *, u32); extern void DisplayDungeonDialogue(u8 *); extern void sub_806CDD4(struct DungeonEntity *, u32, u32); extern void sub_80869E4(struct DungeonEntity *, u32, u32, u32); @@ -35,25 +35,18 @@ extern void sub_8086A54(struct DungeonEntity *); extern void PlaySoundEffect(u32); extern void sub_808563C(void *); -// X / Y Coords?? -struct subStruct_Skarmory -{ - int x; - int y; -}; - -extern u8 gUnknown_8100768; -extern u8 gUnknown_8100798; -extern u8 gUnknown_8100820; -extern u8 gUnknown_8100844; -extern u8 gUnknown_8100880; -extern u8 gUnknown_8100928; -extern u8 gUnknown_8100A04; -extern u8 gUnknown_8100B80; -extern u8 gUnknown_8100BC0; -extern u8 gUnknown_8100C90; -extern u8 gUnknown_8100CBC; -extern u8 gUnknown_8100CDC; +extern u8 gSkarmoryPreFightDialogue_1; +extern u8 gSkarmoryPreFightDialogue_2; +extern u8 gSkarmoryPreFightDialogue_3; +extern u8 gSkarmoryPreFightDialogue_4; +extern u8 gSkarmoryPreFightDialogue_5; +extern u8 gSkarmoryPreFightDialogue_6; +extern u8 gSkarmoryPreFightDialogue_7; +extern u8 gSkarmoryPreFightDialogue_8; +extern u8 gSkarmoryPreFightDialogue_9; +extern u8 gSkarmoryReFightDialogue_1; +extern u8 gSkarmoryReFightDialogue_2; +extern u8 gSkarmoryReFightDialogue_3; extern u8 gUnknown_8100D3C; void sub_8086A3C(struct DungeonEntity *param_1) @@ -119,8 +112,8 @@ void sub_8086B14(void) struct DungeonEntity * SkarmoryEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - DiglettEntity = sub_8085680(4); - SkarmoryEntity = sub_8085680(3); + DiglettEntity = GetEntityFromClientType(4); + SkarmoryEntity = GetEntityFromClientType(3); sub_8083E88(0x72); sub_8085374(); sub_80854D4(); @@ -140,8 +133,8 @@ void sub_8086B94(void) struct DungeonEntity * SkarmoryEntity; LeaderEntity = xxx_call_GetLeaderEntity(); - DiglettEntity = sub_8085680(4); - SkarmoryEntity = sub_8085680(3); + DiglettEntity = GetEntityFromClientType(4); + SkarmoryEntity = GetEntityFromClientType(3); sub_8068FE0(SkarmoryEntity,0x21c,0); sub_8068FE0(DiglettEntity,0x21c,0); @@ -165,13 +158,13 @@ void SkarmoryPreFightDialogue(void) struct DungeonEntity * DiglettEntity; struct DungeonEntity * SkarmoryEntity; - struct subStruct_Skarmory local_1c; - struct subStruct_Skarmory local_20; + struct Position32 local_1c; + struct Position32 local_20; LeaderEntity = xxx_call_GetLeaderEntity(); // Player PartnerEntity = GetPartnerEntity(); // Partner - DiglettEntity = sub_8085680(4); // Diglett - SkarmoryEntity = sub_8085680(3); // Skarmory + DiglettEntity = GetEntityFromClientType(4); // Diglett + SkarmoryEntity = GetEntityFromClientType(3); // Skarmory local_1c.x = DiglettEntity->posPixel.x; local_1c.y = DiglettEntity->posPixel.y + 0x3000; @@ -184,62 +177,62 @@ void SkarmoryPreFightDialogue(void) sub_80862BC(PartnerEntity); sub_803E708(0x20,0x46); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8100768); - sub_80858AC(&local_1c,0x40); + DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_1); + ShiftCameraToPosition(&local_1c,0x40); sub_803E708(0x40,0x46); - sub_80858AC(&local_20,0x30); - DisplayDungeonDialogue(&gUnknown_8100798); + ShiftCameraToPosition(&local_20,0x30); + DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_2); sub_803E708(10,0x46); DiglettEntity->entityData->unk15D = 1; - sub_80858AC(&local_1c,0x30); - DisplayDungeonDialogue(&gUnknown_8100820); // Diglett: ...I...\nI'm scared. + ShiftCameraToPosition(&local_1c,0x30); + DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_3); // Diglett: ...I...\nI'm scared. sub_803E708(10,0x46); - sub_80858AC(&local_20,0x20); + ShiftCameraToPosition(&local_20,0x20); sub_803E708(0x20,0x46); sub_8086E74(SkarmoryEntity); - DisplayDungeonDialogue(&gUnknown_8100844); // Skarmory: You!\nWhat do you think you're doing here?! + DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_4); // Skarmory: You!\nWhat do you think you're doing here?! sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8100880); + DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_5); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8100928); + DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_6); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8100A04); + DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_7); sub_803E708(10,0x46); sub_806CDD4(SkarmoryEntity,0xd,0); - DisplayDungeonDialogue(&gUnknown_8100B80); + DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_8); sub_803E708(10,0x46); sub_80869E4(PartnerEntity,4,1,2); sub_80869E4(LeaderEntity,4,2,6); - DisplayDungeonDialogue(&gUnknown_8100BC0); + DisplayDungeonDialogue(&gSkarmoryPreFightDialogue_9); sub_80869E4(PartnerEntity,4,2,4); sub_80869E4(LeaderEntity,4,1,4); sub_803E708(10,0x46); sub_8083E88(0xb); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); } void SkarmoryReFightDialogue(void) { struct DungeonEntity * LeaderEntity; struct DungeonEntity * SkarmoryEntity; - struct subStruct_Skarmory local_14; + struct Position32 local_14; LeaderEntity = xxx_call_GetLeaderEntity(); - SkarmoryEntity = sub_8085680(3); + SkarmoryEntity = GetEntityFromClientType(3); local_14.x = SkarmoryEntity->posPixel.x; local_14.y = SkarmoryEntity->posPixel.y + 0x2000; sub_8086448(); sub_803E708(10,0x46); sub_8086E74(SkarmoryEntity); - sub_80858AC(&local_14,0x10); - DisplayDungeonDialogue(&gUnknown_8100C90); + ShiftCameraToPosition(&local_14,0x10); + DisplayDungeonDialogue(&gSkarmoryReFightDialogue_1); sub_803E708(10,0x46); - DisplayDungeonDialogue(&gUnknown_8100CBC); + DisplayDungeonDialogue(&gSkarmoryReFightDialogue_2); sub_803E708(10,0x46); sub_806CDD4(SkarmoryEntity,0xd,0); - DisplayDungeonDialogue(&gUnknown_8100CDC); + DisplayDungeonDialogue(&gSkarmoryReFightDialogue_3); sub_803E708(10,0x46); - sub_80858AC(&LeaderEntity->posPixel.x,0x10); + ShiftCameraToPosition(&LeaderEntity->posPixel,0x10); sub_8083E88(0xb); } diff --git a/src/dungeon_ai_attack.c b/src/dungeon_ai_attack.c index 6dce35f0a..37998f13e 100644 --- a/src/dungeon_ai_attack.c +++ b/src/dungeon_ai_attack.c @@ -12,14 +12,12 @@ #include "charge_move.h" #include "dungeon_action.h" #include "dungeon_ai_targeting.h" -#include "dungeon_ai_targeting_1.h" -#include "dungeon_ai_targeting_2.h" +#include "dungeon_ai_targeting.h" #include "dungeon_capabilities_1.h" #include "dungeon_global_data.h" #include "dungeon_map_access.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_random.h" -#include "dungeon_random_1.h" #include "dungeon_util.h" #include "dungeon_visibility.h" #include "move_util.h" diff --git a/src/dungeon_ai_item_weight.c b/src/dungeon_ai_item_weight.c index ce79ad467..597056b85 100644 --- a/src/dungeon_ai_item_weight.c +++ b/src/dungeon_ai_item_weight.c @@ -3,7 +3,7 @@ #include "constants/status.h" #include "constants/targeting.h" -#include "dungeon_ai_targeting_2.h" +#include "dungeon_ai_targeting.h" #include "dungeon_map_access.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_util.h" diff --git a/src/dungeon_ai_items.c b/src/dungeon_ai_items.c index eb7f1a838..80632dca9 100644 --- a/src/dungeon_ai_items.c +++ b/src/dungeon_ai_items.c @@ -9,7 +9,7 @@ #include "dungeon_ai_attack.h" #include "dungeon_ai_item_weight.h" #include "dungeon_ai_items.h" -#include "dungeon_ai_targeting_2.h" +#include "dungeon_ai_targeting.h" #include "dungeon_capabilities.h" #include "dungeon_capabilities_1.h" #include "dungeon_entity.h" @@ -17,7 +17,6 @@ #include "dungeon_map_access.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_random.h" -#include "dungeon_random_1.h" #include "dungeon_util.h" #include "dungeon_visibility.h" #include "item.h" diff --git a/src/dungeon_ai_movement.c b/src/dungeon_ai_movement.c index 88874bcbe..a9f7a2f0b 100644 --- a/src/dungeon_ai_movement.c +++ b/src/dungeon_ai_movement.c @@ -8,7 +8,7 @@ #include "dungeon_pokemon_attributes.h" #include "dungeon_random.h" #include "dungeon_ai_movement_1.h" -#include "dungeon_ai_targeting_1.h" +#include "dungeon_ai_targeting.h" #include "number_util.h" extern bool8 CanTakeItem(struct DungeonEntity *pokemon); diff --git a/src/dungeon_ai_movement_1.c b/src/dungeon_ai_movement_1.c index 7664ab3a0..988d3a4e4 100644 --- a/src/dungeon_ai_movement_1.c +++ b/src/dungeon_ai_movement_1.c @@ -3,7 +3,6 @@ #include "constants/targeting.h" #include "dungeon_ai_targeting.h" -#include "dungeon_ai_targeting_2.h" #include "dungeon_global_data.h" #include "dungeon_map_access.h" #include "dungeon_random.h" diff --git a/src/dungeon_ai_targeting.c b/src/dungeon_ai_targeting.c index 7269160e7..42d9c14c0 100644 --- a/src/dungeon_ai_targeting.c +++ b/src/dungeon_ai_targeting.c @@ -1,22 +1,64 @@ #include "global.h" #include "dungeon_ai_targeting.h" +#include "constants/ability.h" +#include "constants/dungeon.h" #include "constants/iq_skill.h" #include "constants/item.h" #include "constants/status.h" +#include "constants/tactic.h" +#include "constants/targeting.h" + #include "dungeon_engine.h" #include "dungeon_global_data.h" #include "dungeon_items.h" #include "dungeon_map_access.h" #include "dungeon_movement.h" #include "dungeon_pokemon_attributes.h" +#include "dungeon_random.h" #include "dungeon_util.h" #include "map.h" #include "tile_types.h" +extern bool8 SetVisualFlags(struct DungeonEntityData *, u32, bool8); +extern void ShowVisualFlags(struct DungeonEntity *r0); + const u8 gDirectionBitMasks_2[] = {0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80}; const u8 gDirectionBitMasks_3[] = {0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80}; +const u8 gTargetingData[3][2][2][2] = { + { + { + {TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}, + {TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET} + }, + { + {TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}, + {TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET} + } + }, + { + { + {TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}, + {TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET} + }, + { + {TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET}, + {TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET} + } + }, + { + { + {TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET}, + {TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET} + }, + { + {TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}, + {TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET} + } + } +}; + bool8 CanAttackInFront(struct DungeonEntity *pokemon, s32 direction) { u8 crossableTerrain = GetCrossableTerrain(pokemon->entityData->entityID); @@ -133,3 +175,222 @@ bool8 CanMoveForward(struct DungeonEntity *pokemon, s32 direction, bool8 *pokemo } return FALSE; } + +bool8 IsAtJunction(struct DungeonEntity *pokemon) +{ + char cVar2; + u32 crossableTerrain; + struct MapTile *mapTile; + struct DungeonEntityData *iVar7; + + crossableTerrain = GetCrossableTerrain(pokemon->entityData->entityID); + if (!IsFixedDungeon()) { + if ((pokemon->entityData->transformStatus == TRANSFORM_STATUS_MOBILE) || (HasItem(pokemon, ITEM_ID_MOBILE_SCARF))) { + crossableTerrain = CROSSABLE_TERRAIN_WALL; + } + else if (HasIQSkill(pokemon, IQ_SKILL_ALL_TERRAIN_HIKER)) { + crossableTerrain = CROSSABLE_TERRAIN_CREVICE; + } + else if (HasIQSkill(pokemon, IQ_SKILL_SUPER_MOBILE)) { + crossableTerrain = CROSSABLE_TERRAIN_WALL; + } + } + if (crossableTerrain == CROSSABLE_TERRAIN_WALL) { + iVar7 = pokemon->entityData; + iVar7->mobileTurnTimer += DungeonRandomCapped(100); + if (iVar7->mobileTurnTimer < 200) { + return FALSE; + } + else + iVar7->mobileTurnTimer = 0; + } + else { + if ((gDungeonWaterType[gDungeonGlobalData->tileset] == DUNGEON_WATER_TYPE_LAVA) + && (crossableTerrain == CROSSABLE_TERRAIN_LIQUID) + && (HasIQSkill(pokemon, IQ_SKILL_LAVA_EVADER))) { + crossableTerrain = CROSSABLE_TERRAIN_REGULAR; + } + mapTile = GetMapTile_1(pokemon->posWorld.x, pokemon->posWorld.y); + cVar2 = mapTile->canMoveAdjacent[crossableTerrain]; + if ((cVar2 != 0x54) && (cVar2 != 0x51) && (cVar2 != 0x45) && (cVar2 != 0x15) && (cVar2 != 0x55)) return FALSE; + } + return TRUE; +} + +bool8 ShouldAvoidFirstHit(struct DungeonEntity *pokemon, bool8 forceAvoid) +{ + if (!HasTactic(pokemon, TACTIC_AVOID_THE_FIRST_HIT)) + return FALSE; + if (!forceAvoid) + return FALSE; + return TRUE; +} + +bool8 ShouldAvoidEnemies(struct DungeonEntity *pokemon) +{ + if (!EntityExists(pokemon)) + { + return FALSE; + } + else + { + struct DungeonEntityData *pokemonData = pokemon->entityData; + if (pokemonData->terrifiedTurnsLeft != 0) + { + return TRUE; + } + if (pokemonData->isLeader) + { + return FALSE; + } + if (HasAbility(pokemon, ABILITY_RUN_AWAY)) + { + bool8 runAwayActive = pokemonData->HP < pokemonData->maxHP / 2; + if (runAwayActive) + { + return TRUE; + } + } + if (HasTactic(pokemon, TACTIC_GET_AWAY) || + (HasTactic(pokemon, TACTIC_AVOID_TROUBLE) && pokemonData->HP <= pokemonData->maxHP / 2)) + { + return TRUE; + } + return FALSE; + } +} + +bool8 ShouldAvoidEnemiesAndShowEffect(struct DungeonEntity *pokemon, bool8 showRunAwayEffect) +{ + if (ShouldAvoidEnemies(pokemon)) + { + CheckRunAwayVisualFlag(pokemon, showRunAwayEffect); + return TRUE; + } + return FALSE; +} + +void CheckRunAwayVisualFlag(struct DungeonEntity *pokemon, bool8 showRunAwayEffect) +{ + bool8 cVar1; + struct DungeonEntityData *iVar2; + struct DungeonEntityData *iVar3; + + iVar2 = pokemon->entityData; + iVar3 = iVar2; + + if (((!iVar2->isLeader) && HasAbility(pokemon,ABILITY_RUN_AWAY) && + (cVar1 = SetVisualFlags(iVar3,4,iVar2->HP <= iVar2->maxHP / 2), showRunAwayEffect)) && + (cVar1)) { + ShowVisualFlags(pokemon); + } +} + +u8 CanTarget(struct DungeonEntity *pokemon, struct DungeonEntity *targetPokemon, bool8 ignoreInvisible, bool8 checkPetrified) +{ + struct DungeonEntityData *pokemonData = pokemon->entityData; + struct DungeonEntityData *targetData = targetPokemon->entityData; + u8 targetingDecoy; + u8 pokemonTargetingDecoy; + bool8 pokemonIsEnemy; + bool8 targetIsEnemy; + bool8 targetIsDecoy; + if (pokemon == targetPokemon) + { + return TARGET_CAPABILITY_CANNOT_ATTACK; + } + if (pokemonData->shopkeeperMode == SHOPKEEPER_FRIENDLY || + targetData->shopkeeperMode == SHOPKEEPER_FRIENDLY || + pokemonData->clientType == CLIENT_TYPE_DONT_MOVE || + targetData->clientType == CLIENT_TYPE_DONT_MOVE || + pokemonData->clientType == CLIENT_TYPE_CLIENT || + targetData->clientType == CLIENT_TYPE_CLIENT || + (checkPetrified && !pokemonData->isEnemy && targetData->immobilizeStatus == IMMOBILIZE_STATUS_PETRIFIED) || + (!ignoreInvisible && targetData->transformStatus == TRANSFORM_STATUS_INVISIBLE && !CanSeeInvisible(pokemon))) + { + return TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET; + } + pokemonTargetingDecoy = pokemonData->targetingDecoy; + targetingDecoy = TARGETING_DECOY_NONE; + if (pokemonTargetingDecoy != TARGETING_DECOY_NONE) + { + targetingDecoy = TARGETING_DECOY_WILD; + if (pokemonTargetingDecoy == TARGETING_DECOY_TEAM) + { + targetingDecoy = TARGETING_DECOY_TEAM; + } + } + if (pokemonData->shopkeeperMode != SHOPKEEPER_NONE) + { + pokemonIsEnemy = FALSE; + if (pokemonData->shopkeeperMode == SHOPKEEPER_AGGRESSIVE_TO_PLAYER) + { + pokemonIsEnemy = TRUE; + } + } + else + { + pokemonIsEnemy = pokemonData->isEnemy ? TRUE : FALSE; + } + if (targetData->shopkeeperMode != SHOPKEEPER_NONE) + { + targetIsEnemy = FALSE; + if (targetData->shopkeeperMode == SHOPKEEPER_AGGRESSIVE_TO_PLAYER) + { + targetIsEnemy = TRUE; + } + } + else + { + targetIsEnemy = targetData->isEnemy ? TRUE : FALSE; + } + targetIsDecoy = FALSE; + if (targetData->waitingStatus == WAITING_STATUS_DECOY) + { + targetIsDecoy = TRUE; + } + return gTargetingData[targetingDecoy][pokemonIsEnemy][targetIsEnemy][targetIsDecoy]; +} + +static inline bool8 JoinLocationCannotUseItems_1(struct DungeonEntityData *pokemonData) +{ + if (pokemonData->joinLocation == DUNGEON_JOIN_LOCATION_CLIENT_POKEMON) + { + return TRUE; + } + if (pokemonData->joinLocation == DUNGEON_RESCUE_TEAM_BASE) + { + return TRUE; + } + return FALSE; +} + +u8 sub_807167C(struct DungeonEntity * pokemon, struct DungeonEntity * target) +{ + bool8 bVar1; + struct DungeonEntityData * iVar3; + struct DungeonEntityData * iVar4; + + iVar4 = pokemon->entityData; + iVar3 = target->entityData; + if (iVar4->clientType != CLIENT_TYPE_CLIENT) { + bVar1 = JoinLocationCannotUseItems_1(iVar4); + if (!bVar1 && (iVar4->shopkeeperMode == SHOPKEEPER_NONE) && (iVar3->clientType != CLIENT_TYPE_CLIENT)) { + bVar1 = JoinLocationCannotUseItems_1(iVar3); + if (bVar1 || (iVar3->shopkeeperMode != SHOPKEEPER_NONE)) { +error: + return TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET; + } + else + { + if ((iVar4->isEnemy) != (iVar3->isEnemy)) { + return TARGET_CAPABILITY_CAN_TARGET; + } + else { + return TARGET_CAPABILITY_CANNOT_ATTACK; + } + } + } + } + goto error; +} diff --git a/src/dungeon_ai_targeting_1.c b/src/dungeon_ai_targeting_1.c deleted file mode 100644 index 5ff76b06e..000000000 --- a/src/dungeon_ai_targeting_1.c +++ /dev/null @@ -1,62 +0,0 @@ -#include "global.h" -#include "dungeon_ai_targeting_1.h" - -#include "constants/ability.h" -#include "constants/tactic.h" -#include "dungeon_pokemon_attributes.h" -#include "dungeon_util.h" - -extern void CheckRunAwayVisualFlag(struct DungeonEntity *, bool8 showRunAwayEffect); - -bool8 ShouldAvoidFirstHit(struct DungeonEntity *pokemon, bool8 forceAvoid) -{ - if (!HasTactic(pokemon, TACTIC_AVOID_THE_FIRST_HIT)) - return FALSE; - if (!forceAvoid) - return FALSE; - return TRUE; -} - -bool8 ShouldAvoidEnemies(struct DungeonEntity *pokemon) -{ - if (!EntityExists(pokemon)) - { - return FALSE; - } - else - { - struct DungeonEntityData *pokemonData = pokemon->entityData; - if (pokemonData->terrifiedTurnsLeft != 0) - { - return TRUE; - } - if (pokemonData->isLeader) - { - return FALSE; - } - if (HasAbility(pokemon, ABILITY_RUN_AWAY)) - { - bool8 runAwayActive = pokemonData->HP < pokemonData->maxHP / 2; - if (runAwayActive) - { - return TRUE; - } - } - if (HasTactic(pokemon, TACTIC_GET_AWAY) || - (HasTactic(pokemon, TACTIC_AVOID_TROUBLE) && pokemonData->HP <= pokemonData->maxHP / 2)) - { - return TRUE; - } - return FALSE; - } -} - -bool8 ShouldAvoidEnemiesAndShowEffect(struct DungeonEntity *pokemon, bool8 showRunAwayEffect) -{ - if (ShouldAvoidEnemies(pokemon)) - { - CheckRunAwayVisualFlag(pokemon, showRunAwayEffect); - return TRUE; - } - return FALSE; -} diff --git a/src/dungeon_ai_targeting_2.c b/src/dungeon_ai_targeting_2.c deleted file mode 100644 index 83319e15d..000000000 --- a/src/dungeon_ai_targeting_2.c +++ /dev/null @@ -1,105 +0,0 @@ -#include "global.h" -#include "dungeon_ai_targeting_2.h" - -#include "constants/status.h" -#include "constants/targeting.h" -#include "dungeon_pokemon_attributes.h" - -const u8 gTargetingData[3][2][2][2] = { - { - { - {TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}, - {TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET} - }, - { - {TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}, - {TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET} - } - }, - { - { - {TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}, - {TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET} - }, - { - {TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET}, - {TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET} - } - }, - { - { - {TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET}, - {TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET} - }, - { - {TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}, - {TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET} - } - } -}; - -u8 CanTarget(struct DungeonEntity *pokemon, struct DungeonEntity *targetPokemon, bool8 ignoreInvisible, bool8 checkPetrified) -{ - struct DungeonEntityData *pokemonData = pokemon->entityData; - struct DungeonEntityData *targetData = targetPokemon->entityData; - u8 targetingDecoy; - u8 pokemonTargetingDecoy; - bool8 pokemonIsEnemy; - bool8 targetIsEnemy; - bool8 targetIsDecoy; - if (pokemon == targetPokemon) - { - return TARGET_CAPABILITY_CANNOT_ATTACK; - } - if (pokemonData->shopkeeperMode == SHOPKEEPER_FRIENDLY || - targetData->shopkeeperMode == SHOPKEEPER_FRIENDLY || - pokemonData->clientType == CLIENT_TYPE_DONT_MOVE || - targetData->clientType == CLIENT_TYPE_DONT_MOVE || - pokemonData->clientType == CLIENT_TYPE_CLIENT || - targetData->clientType == CLIENT_TYPE_CLIENT || - (checkPetrified && !pokemonData->isEnemy && targetData->immobilizeStatus == IMMOBILIZE_STATUS_PETRIFIED) || - (!ignoreInvisible && targetData->transformStatus == TRANSFORM_STATUS_INVISIBLE && !CanSeeInvisible(pokemon))) - { - return TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET; - } - pokemonTargetingDecoy = pokemonData->targetingDecoy; - targetingDecoy = TARGETING_DECOY_NONE; - if (pokemonTargetingDecoy != TARGETING_DECOY_NONE) - { - targetingDecoy = TARGETING_DECOY_WILD; - if (pokemonTargetingDecoy == TARGETING_DECOY_TEAM) - { - targetingDecoy = TARGETING_DECOY_TEAM; - } - } - if (pokemonData->shopkeeperMode != SHOPKEEPER_NONE) - { - pokemonIsEnemy = FALSE; - if (pokemonData->shopkeeperMode == SHOPKEEPER_AGGRESSIVE_TO_PLAYER) - { - pokemonIsEnemy = TRUE; - } - } - else - { - pokemonIsEnemy = pokemonData->isEnemy ? TRUE : FALSE; - } - if (targetData->shopkeeperMode != SHOPKEEPER_NONE) - { - targetIsEnemy = FALSE; - if (targetData->shopkeeperMode == SHOPKEEPER_AGGRESSIVE_TO_PLAYER) - { - targetIsEnemy = TRUE; - } - } - else - { - targetIsEnemy = targetData->isEnemy ? TRUE : FALSE; - } - targetIsDecoy = FALSE; - if (targetData->waitingStatus == WAITING_STATUS_DECOY) - { - targetIsDecoy = TRUE; - } - return gTargetingData[targetingDecoy][pokemonIsEnemy][targetIsEnemy][targetIsDecoy]; -} diff --git a/src/dungeon_capabilities_1.c b/src/dungeon_capabilities_1.c index ef566fe7a..79671f322 100644 --- a/src/dungeon_capabilities_1.c +++ b/src/dungeon_capabilities_1.c @@ -5,7 +5,7 @@ #include "constants/iq_skill.h" #include "constants/status.h" #include "charge_move.h" -#include "dungeon_ai_targeting_1.h" +#include "dungeon_ai_targeting.h" #include "dungeon_capabilities.h" #include "dungeon_engine.h" #include "dungeon_items.h" diff --git a/src/dungeon_items.c b/src/dungeon_items.c index bfaab5368..7e8366857 100644 --- a/src/dungeon_items.c +++ b/src/dungeon_items.c @@ -1,6 +1,38 @@ #include "global.h" #include "dungeon_items.h" +#include "dungeon_capabilities.h" +#include "dungeon_random.h" +#include "dungeon_global_data.h" +#include "dungeon_util.h" +#include "team_inventory.h" +#include "pokemon.h" + +extern u8 gAvailablePokemonNames[]; +extern s32 gUnknown_810A3F0[]; +extern u8 *gUnknown_80FA408[]; +extern u8 *gUnknown_810531C[]; +extern u8 *gUnknown_8105360[]; +extern u8 *gUnknown_81053A8[]; +extern u8 *gUnknown_8105434[]; + +extern u8 sub_8046D70(void); +extern s32 sub_8052B8C(u32, u8 *, u32); +extern struct DungeonEntity *GetLeaderEntity(void); +extern void sub_80861A8(void); +extern void PrintFieldMessage(u32, u8 *, u32); +extern void sub_803E708(u32, u32); +extern void sub_80869E4(struct DungeonEntity *, u32, u32, u32); +extern void sub_80416E0(struct Position32 *r0, u32, u32); +extern void SetMessageArgument(u8 *r0, struct DungeonEntity *r1, u32); +extern void sub_80421C0(struct DungeonEntity *, u32); +extern void sub_80855E4(void *); +extern void PlaySoundEffect(u32); +extern void sub_804178C(u32); +extern void sub_8040A84(void); + +void MusicBoxCreation(void); + bool8 HasItem(struct DungeonEntity *pokemon, u8 itemIndex) { // Weird assignment to fix a regswap. @@ -19,3 +51,459 @@ bool8 HasItem(struct DungeonEntity *pokemon, u8 itemIndex) } return TRUE; } + +void sub_8046CE4(u8 *param_1,s32 param_2) +{ + s32 iVar1; + s32 iVar2; + + iVar1 = DungeonRandomCapped(100); + for(iVar2 = 0; iVar2 < 200; iVar2++) + { + if (gUnknown_810A3F0[iVar1] <= param_2) { + param_1[1] = iVar1; + return; + } + iVar1 = iVar1 / 2; + } + param_1[1] = 1; +} + +void sub_8046D20(void) +{ + u8 cVar1; + + cVar1 = gDungeonGlobalData->unk8; + gDungeonGlobalData->unk8 = sub_8046D70(); + if (((gDungeonGlobalData->unk8 == 1) && (cVar1 == 0)) && + (sub_8052B8C(0, *gUnknown_80FA408, 1) == 1)) { + gDungeonGlobalData->unk4 = 1; + gDungeonGlobalData->unk11 = 2; + } + else { + MusicBoxCreation(); + } +} + +u8 sub_8046D70(void) +{ + if(gDungeonGlobalData->unk68A) + return 0; + else + return 0; +} + +#ifdef NONMATCHING +void MusicBoxCreation(void) +{ + bool8 musicBoxOnce; + bool8 createMusicBox; + struct ItemSlot *pbVar3; // r2 + s32 iVar4; + struct DungeonEntity *entity; + + s32 indexes[3]; + + createMusicBox = FALSE; + do { + musicBoxOnce = FALSE; + indexes[0] = -1; + indexes[1] = -1; + indexes[2] = -1; + + for(iVar4 = 0, pbVar3 = &gTeamInventory_203B460->teamItems[iVar4]; iVar4 < 20; pbVar3++, iVar4++) + { + if (pbVar3->itemFlags & ITEM_FLAG_EXISTS) { + if (pbVar3->itemIndex == ITEM_ID_ROCK_PART) { + indexes[0] = iVar4; + } + if (pbVar3->itemIndex == ITEM_ID_ICE_PART) { + indexes[1] = iVar4; + } + if (pbVar3->itemIndex == ITEM_ID_STEEL_PART) { + indexes[2] = iVar4; + } + } + } + + if ((indexes[0] >= 0) && (indexes[1] >= 0) && (indexes[2] >= 0)) { + + // NOTE: doesn't match here.. tried to register pin but still not perfect + register struct ItemSlot *pbVar4 asm("r1"); + register struct ItemSlot *pbVar5 asm("r0"); + + musicBoxOnce = TRUE; + createMusicBox = TRUE; + + // clear out each of the parts + pbVar4 = &gTeamInventory_203B460->teamItems[indexes[0]]; + pbVar4->itemIndex = 0; + pbVar4->numItems = 0; + pbVar4->itemFlags = 0; + + pbVar5 = &gTeamInventory_203B460->teamItems[indexes[1]]; + pbVar5->itemIndex = 0; + pbVar5->numItems = 0; + pbVar5->itemFlags = 0; + + pbVar5 = &gTeamInventory_203B460->teamItems[indexes[2]]; + pbVar5->itemIndex = 0; + pbVar5->numItems = 0; + pbVar5->itemFlags = 0; + + // init the music box + xxx_init_itemslot_8090A8C(&gTeamInventory_203B460->teamItems[indexes[0]], ITEM_ID_MUSIC_BOX, 0); + } + } while (musicBoxOnce); + + FillInventoryGaps(); + + if (createMusicBox) { + entity = GetLeaderEntity(); + sub_80855E4(sub_80861A8); + gDungeonGlobalData->unk1356C = 1; + PrintFieldMessage(0,*gUnknown_810531C,1); + sub_803E708(0x3c,0x41); + PrintFieldMessage(0,*gUnknown_8105360,1); + sub_80869E4(entity,4,10,0); + sub_80416E0(&entity->posPixel,0x10c,0); + sub_80421C0(entity,0xd7); + sub_803E708(0x3c,0x41); + SetMessageArgument(gAvailablePokemonNames,entity,0); + PrintFieldMessage(0,*gUnknown_81053A8,1); + sub_803E708(10,0x41); + PlaySoundEffect(0xd4); + PrintFieldMessage(0,*gUnknown_8105434,1); + sub_803E708(10,0x41); + sub_804178C(1); + gDungeonGlobalData->unk1356C = 0; + sub_8040A84(); + } +} +#else +NAKED +void MusicBoxCreation(void) +{ + asm_unified( + "\tpush {r4-r7,lr}\n" + "\tsub sp, 0xC\n" + "\tmovs r6, 0\n" + "\tldr r5, _08046EDC\n" + "\tmovs r4, 0\n" +"_08046D96:\n" + "\tmovs r7, 0\n" + "\tmovs r0, 0x1\n" + "\tnegs r0, r0\n" + "\tstr r0, [sp]\n" + "\tstr r0, [sp, 0x4]\n" + "\tstr r0, [sp, 0x8]\n" + "\tmovs r3, 0\n" + "\tldr r2, [r5]\n" +"_08046DA6:\n" + "\tldrb r1, [r2]\n" + "\tmovs r0, 0x1\n" + "\tands r0, r1\n" + "\tcmp r0, 0\n" + "\tbeq _08046DC8\n" + "\tldrb r0, [r2, 0x2]\n" + "\tcmp r0, 0x79\n" + "\tbne _08046DB8\n" + "\tstr r3, [sp]\n" +"_08046DB8:\n" + "\tldrb r0, [r2, 0x2]\n" + "\tcmp r0, 0x77\n" + "\tbne _08046DC0\n" + "\tstr r3, [sp, 0x4]\n" +"_08046DC0:\n" + "\tldrb r0, [r2, 0x2]\n" + "\tcmp r0, 0x78\n" + "\tbne _08046DC8\n" + "\tstr r3, [sp, 0x8]\n" +"_08046DC8:\n" + "\tadds r2, 0x4\n" + "\tadds r3, 0x1\n" + "\tcmp r3, 0x13\n" + "\tble _08046DA6\n" + "\tldr r1, [sp]\n" + "\tcmp r1, 0\n" + "\tblt _08046E1E\n" + "\tldr r0, [sp, 0x4]\n" + "\tcmp r0, 0\n" + "\tblt _08046E1E\n" + "\tldr r0, [sp, 0x8]\n" + "\tcmp r0, 0\n" + "\tblt _08046E1E\n" + "\tmovs r7, 0x1\n" + "\tmovs r6, 0x1\n" + "\tlsls r1, 2\n" + "\tldr r0, [r5]\n" + "\tadds r1, r0\n" + "\tstrb r4, [r1, 0x2]\n" + "\tstrb r4, [r1, 0x1]\n" + "\tstrb r4, [r1]\n" + "\tldr r0, [sp, 0x4]\n" + "\tlsls r0, 2\n" + "\tldr r1, [r5]\n" + "\tadds r0, r1\n" + "\tstrb r4, [r0, 0x2]\n" + "\tstrb r4, [r0, 0x1]\n" + "\tstrb r4, [r0]\n" + "\tldr r0, [sp, 0x8]\n" + "\tlsls r0, 2\n" + "\tldr r1, [r5]\n" + "\tadds r0, r1\n" + "\tstrb r4, [r0, 0x2]\n" + "\tstrb r4, [r0, 0x1]\n" + "\tstrb r4, [r0]\n" + "\tldr r1, [sp]\n" + "\tlsls r1, 2\n" + "\tldr r0, [r5]\n" + "\tadds r0, r1\n" + "\tmovs r1, 0x7A\n" + "\tmovs r2, 0\n" + "\tbl xxx_init_itemslot_8090A8C\n" +"_08046E1E:\n" + "\tcmp r7, 0\n" + "\tbne _08046D96\n" + "\tbl FillInventoryGaps\n" + "\tcmp r6, 0\n" + "\tbeq _08046ED4\n" + "\tbl GetLeaderEntity\n" + "\tadds r4, r0, 0\n" + "\tldr r0, _08046EE0\n" + "\tbl sub_80855E4\n" + "\tldr r6, _08046EE4\n" + "\tldr r0, [r6]\n" + "\tldr r5, _08046EE8\n" + "\tadds r0, r5\n" + "\tmovs r1, 0x1\n" + "\tstrb r1, [r0]\n" + "\tldr r0, _08046EEC\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0\n" + "\tmovs r2, 0x1\n" + "\tbl PrintFieldMessage\n" + "\tmovs r0, 0x3C\n" + "\tmovs r1, 0x41\n" + "\tbl sub_803E708\n" + "\tldr r0, _08046EF0\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0\n" + "\tmovs r2, 0x1\n" + "\tbl PrintFieldMessage\n" + "\tadds r0, r4, 0\n" + "\tmovs r1, 0x4\n" + "\tmovs r2, 0xA\n" + "\tmovs r3, 0\n" + "\tbl sub_80869E4\n" + "\tadds r0, r4, 0\n" + "\tadds r0, 0xC\n" + "\tmovs r1, 0x86\n" + "\tlsls r1, 1\n" + "\tmovs r2, 0\n" + "\tbl sub_80416E0\n" + "\tadds r0, r4, 0\n" + "\tmovs r1, 0xD7\n" + "\tbl sub_80421C0\n" + "\tmovs r0, 0x3C\n" + "\tmovs r1, 0x41\n" + "\tbl sub_803E708\n" + "\tldr r0, _08046EF4\n" + "\tadds r1, r4, 0\n" + "\tmovs r2, 0\n" + "\tbl SetMessageArgument\n" + "\tldr r0, _08046EF8\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0\n" + "\tmovs r2, 0x1\n" + "\tbl PrintFieldMessage\n" + "\tmovs r0, 0xA\n" + "\tmovs r1, 0x41\n" + "\tbl sub_803E708\n" + "\tmovs r0, 0xD4\n" + "\tbl PlaySoundEffect\n" + "\tldr r0, _08046EFC\n" + "\tldr r1, [r0]\n" + "\tmovs r0, 0\n" + "\tmovs r2, 0x1\n" + "\tbl PrintFieldMessage\n" + "\tmovs r0, 0xA\n" + "\tmovs r1, 0x41\n" + "\tbl sub_803E708\n" + "\tmovs r0, 0x1\n" + "\tbl sub_804178C\n" + "\tldr r0, [r6]\n" + "\tadds r0, r5\n" + "\tstrb r7, [r0]\n" + "\tbl sub_8040A84\n" +"_08046ED4:\n" + "\tadd sp, 0xC\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_08046EDC: .4byte gTeamInventory_203B460\n" +"_08046EE0: .4byte sub_80861A8\n" +"_08046EE4: .4byte gDungeonGlobalData\n" +"_08046EE8: .4byte 0x0001356c\n" +"_08046EEC: .4byte gUnknown_810531C\n" +"_08046EF0: .4byte gUnknown_8105360\n" +"_08046EF4: .4byte gAvailablePokemonNames\n" +"_08046EF8: .4byte gUnknown_81053A8\n" +"_08046EFC: .4byte gUnknown_8105434" + ); +} +#endif + +bool8 sub_8046F00(struct ItemSlot *item) +{ + bool8 canLearnMove; + bool8 cannotMove; + u16 moveID; + struct DungeonEntity *entity; + s32 index; + + if (GetItemType(item->itemIndex) == ITEM_TYPE_TM) { + moveID = GetItemMove(item->itemIndex); + if (!IsHMItem(item->itemIndex)) { + for(index = 0; index < MAX_TEAM_MEMBERS; index++) + { + entity = gDungeonGlobalData->teamPokemon[index]; + if (EntityExists(entity)) { + canLearnMove = CanMonLearnMove(moveID, entity->entityData->entityID); + cannotMove = CannotMove(entity, FALSE); + if (cannotMove) { + canLearnMove = FALSE; + } + if (canLearnMove) return TRUE; + } + } + } + return FALSE; + } + else + return TRUE; +} + +void sub_8046F84(s32 itemFlag) +{ + struct ItemSlot *item; + struct DungeonEntity *entity; + struct DungeonEntityData *entityData; + s32 index; + + for(index = 0; index < INVENTORY_SIZE; index++) + { + item = &gTeamInventory_203B460->teamItems[index]; + if ((item->itemFlags & ITEM_FLAG_EXISTS) && (item->itemFlags & itemFlag)) { + item->itemIndex = 0; + item->numItems = 0; + item->itemFlags = 0; + } + } + FillInventoryGaps(); + + for(index = 0; index < 4; index++) + { + entity = gDungeonGlobalData->teamPokemon[index]; + if (EntityExists(entity)) { + entityData = entity->entityData; + item = &entityData->heldItem; + if ((item->itemFlags & ITEM_FLAG_EXISTS) && (item->itemFlags & itemFlag)) { + item->itemIndex = 0; + item->numItems = 0; + item->itemFlags = 0; + } + } + } +} + +void sub_804700C(void) +{ + struct ItemSlot *item; + struct DungeonEntity *entity; + struct DungeonEntityData *entityData; + s32 index; + + for(index = 0; index < INVENTORY_SIZE; index++) + { + item = &gTeamInventory_203B460->teamItems[index]; + if ((item->itemFlags & ITEM_FLAG_EXISTS)) { + xxx_init_itemslot_8090A8C(item, ITEM_ID_PLAIN_SEED, 0); + } + } + FillInventoryGaps(); + + for(index = 0; index < MAX_TEAM_MEMBERS; index++) + { + entity = gDungeonGlobalData->teamPokemon[index]; + if (EntityExists(entity)) { + entityData = entity->entityData; + item = &entityData->heldItem; + if ((item->itemFlags & ITEM_FLAG_EXISTS)) { + xxx_init_itemslot_8090A8C(item, ITEM_ID_PLAIN_SEED, 0); + } + } + } +} + +bool8 sub_8047084(s32 itemFlag) +{ + struct ItemSlot *item; + struct DungeonEntity *entity; + struct DungeonEntityData *entityData; + s32 index; + + // NEED THIS ORDERING TO MATCH + index = 0; + item = &gTeamInventory_203B460->teamItems[index]; + + for(index = 0; index < INVENTORY_SIZE; item++, index++) + { + if ((item->itemFlags & ITEM_FLAG_EXISTS) && (item->itemFlags & itemFlag)) { + return TRUE; + } + } + FillInventoryGaps(); + + for(index = 0; index < MAX_TEAM_MEMBERS; index++) + { + entity = gDungeonGlobalData->teamPokemon[index]; + if (EntityExists(entity)) { + entityData = entity->entityData; + item = &entityData->heldItem; + if ((item->itemFlags & ITEM_FLAG_EXISTS) && (item->itemFlags & itemFlag)) { + return TRUE; + } + } + } + return FALSE; +} + +void sub_8047104(void) +{ + struct ItemSlot *item; + s32 index; + + for(index = 0; index < INVENTORY_SIZE; index++) + { + item = &gTeamInventory_203B460->teamItems[index]; + if (item->itemFlags & ITEM_FLAG_EXISTS) + { + if(item->itemIndex == ITEM_ID_POKE) + { + AddToTeamMoney(GetMoneyValue(item)); + item->itemIndex = 0; + item->numItems = 0; + item->itemFlags = 0; + } + if(item->itemFlags & ITEM_FLAG_FOR_SALE) + { + item->itemIndex = 0; + item->numItems = 0; + item->itemFlags = 0; + } + } + } + FillInventoryGaps(); +} diff --git a/src/dungeon_random.c b/src/dungeon_random.c index 6f180d31a..240c8d5c9 100644 --- a/src/dungeon_random.c +++ b/src/dungeon_random.c @@ -18,3 +18,36 @@ s32 DungeonRandomCapped(s32 cap) { return (((DungeonRandom() & 0xFFFF) * cap) >> 16) & 0xFFFF; } + +s32 DungeonRandomRange(s32 low, s32 high) +{ + if(low == high) + return low; + else if(low < high) + { + return (DungeonRandomCapped(high - low) + low); + } + else + { + return (DungeonRandomCapped(low - high) + high); + } +} + +bool8 RollPercentChance(s32 percentChance) +{ + if (DungeonRandomCapped(100) < percentChance) + { + return TRUE; + } + return FALSE; +} + +bool8 RollPercentChance_2(s32 percentChance) +{ + if (DungeonRandomCapped(100) < percentChance) + { + return TRUE; + } + return FALSE; +} + diff --git a/src/dungeon_random_1.c b/src/dungeon_random_1.c deleted file mode 100644 index 418a51c65..000000000 --- a/src/dungeon_random_1.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "global.h" -#include "dungeon_random_1.h" - -#include "dungeon_random.h" - -bool8 RollPercentChance(s32 percentChance) -{ - if (DungeonRandomCapped(100) < percentChance) - { - return TRUE; - } - return FALSE; -} - -bool8 RollPercentChance_2(s32 percentChance) -{ - if (DungeonRandomCapped(100) < percentChance) - { - return TRUE; - } - return FALSE; -} diff --git a/src/dungeon_util.c b/src/dungeon_util.c index 1d443c0a6..0a5f2b2cc 100644 --- a/src/dungeon_util.c +++ b/src/dungeon_util.c @@ -43,14 +43,14 @@ struct ItemSlot* GetItemData(struct DungeonEntity *entity) return (struct ItemSlot *)entity->entityData; } -struct DungeonEntityData* sub_804510C(struct DungeonEntity *entity) +struct DungeonEntityData* GetTrapData_1(struct DungeonEntity *entity) { return entity->entityData; } -struct DungeonEntityData* sub_8045110(struct DungeonEntity *entity) +struct ItemSlot* GetItemData_1(struct DungeonEntity *entity) { - return entity->entityData; + return (struct ItemSlot*)entity->entityData; } struct MapTile* GetMapTileForDungeonEntity_1(struct DungeonEntity *entity) diff --git a/src/dungeon_util_1.c b/src/dungeon_util_1.c index 564cd1253..cdaa9b878 100644 --- a/src/dungeon_util_1.c +++ b/src/dungeon_util_1.c @@ -6,13 +6,16 @@ #include "dungeon_util.h" #include "random.h" +extern const u8 gUnknown_8107358[25]; + extern void sub_806CE68(struct DungeonEntity *, s32); -extern s32 sub_803F994(void); -extern s32 sub_803F9B0(void); +extern s32 GetCameraXPos(void); +extern s32 GetCameraYPos(void); extern void sub_803F4A0(u32); extern void sub_803F878(s32, s32); extern void sub_803E46C(u32); +extern void sub_803E708(u32, u32); void sub_8085860(s32 x, s32 y) { @@ -27,28 +30,28 @@ void sub_8085890(s32 x, s32 y) sub_803F878(x, y); } -void sub_80858AC(s32 *param_1, s32 param_2) +void ShiftCameraToPosition(struct Position32 *posStruct, s32 cameraSteps) { - s32 iVar1; - s32 iVar2; - s32 iVar3; - s32 iVar4; + s32 XPos; + s32 YPos; + s32 XIncrement; + s32 YIncrement; - iVar1 = sub_803F994(); - iVar2 = sub_803F9B0(); - iVar3 = (param_1[0] - iVar1) / param_2; - iVar4 = (param_1[1] - iVar2) / param_2; + XPos = GetCameraXPos(); + YPos = GetCameraYPos(); + XIncrement = (posStruct->x - XPos) / cameraSteps; + YIncrement = (posStruct->y - YPos) / cameraSteps; sub_803F4A0(0); - if (0 < param_2) { + if (0 < cameraSteps) { do { - iVar1 += iVar3; - iVar2 += iVar4; - sub_803F878(iVar1,iVar2); + XPos += XIncrement; + YPos += YIncrement; + sub_803F878(XPos,YPos); sub_803E46C(0x46); - param_2--; - } while (param_2 != 0); + cameraSteps--; + } while (cameraSteps != 0); } - sub_803F878(param_1[0],param_1[1]); + sub_803F878(posStruct->x,posStruct->y); sub_803E46C(0x46); } @@ -168,3 +171,18 @@ bool8 IsMovingClient(struct DungeonEntity *pokemon) return FALSE; } } + +void sub_8085B0C(struct DungeonEntity *pokemon) +{ + s32 index; + u8 local_28 [25]; + + index = 0; + + memcpy(local_28, gUnknown_8107358, 25); + while (local_28[index] != 0) { + SetFacingDirection(pokemon, local_28[index]); + sub_803E708(6,0x46); + index++; + } +} diff --git a/src/dungeon_visibility.c b/src/dungeon_visibility.c index 4a76b69f1..477e5f45c 100644 --- a/src/dungeon_visibility.c +++ b/src/dungeon_visibility.c @@ -6,6 +6,8 @@ #include "dungeon_range.h" #include "dungeon_util.h" +extern bool8 InSameRoom_3(struct Position *pos1, struct Position *pos2); + bool8 CanSee(struct DungeonEntity *entity, struct DungeonEntity *targetEntity) { if (!EntityExists(entity) || !EntityExists(targetEntity) || !targetEntity->visible) @@ -32,3 +34,50 @@ bool8 CanSee(struct DungeonEntity *entity, struct DungeonEntity *targetEntity) } return InSameRoom_2(&entity->posWorld, &targetEntity->posWorld); } + +bool8 CanSee_2(struct DungeonEntity *entity, struct DungeonEntity *targetEntity) +{ + if (!EntityExists(entity) || !EntityExists(targetEntity) || !targetEntity->visible) + { + return FALSE; + } + if (targetEntity->entityType == ENTITY_POKEMON) + { + if (entity->entityType == ENTITY_POKEMON) + { + if (!CanSeeInvisible(entity) && targetEntity->entityData->transformStatus == TRANSFORM_STATUS_INVISIBLE) + { + return FALSE; + } + if (entity->entityData->eyesightStatus == EYESIGHT_STATUS_BLINKER) + { + return FALSE; + } + } + else if (targetEntity->entityData->transformStatus == TRANSFORM_STATUS_INVISIBLE) + { + return FALSE; + } + } + return InSameRoom_3(&entity->posWorld, &targetEntity->posWorld); +} + +bool8 sub_8045A70(struct DungeonEntity *entity, struct DungeonEntity *targetEntity) +{ + if (EntityExists(entity) && EntityExists(targetEntity) && targetEntity->visible) + { + return InSameRoom_2(&entity->posWorld, &targetEntity->posWorld); + } + return FALSE; +} + +bool8 sub_8045AAC(struct DungeonEntity *entity, struct Position *pos) +{ + return InSameRoom_2(&entity->posWorld, pos); +} + +bool8 InSameRoom(struct DungeonEntity *entity, struct Position *pos) +{ + return InSameRoom_3(&entity->posWorld, pos); +} + diff --git a/src/kangaskhan_storage_2.c b/src/kangaskhan_storage_2.c index 16f71bbba..603a4eed8 100644 --- a/src/kangaskhan_storage_2.c +++ b/src/kangaskhan_storage_2.c @@ -175,11 +175,10 @@ void sub_8017C7C(void) sub_8099690(0); if(!IsNotMoneyOrUsedTMItem(gUnknown_203B208->unkC.itemIndex)) UpdateKangaskhanStorageState(9); + else if(!sub_801ADA0(gUnknown_203B208->unk10)) + UpdateKangaskhanStorageState(0xA); else - if(!sub_801ADA0(gUnknown_203B208->unk10)) - UpdateKangaskhanStorageState(0xA); - else - UpdateKangaskhanStorageState(0x11); + UpdateKangaskhanStorageState(0x11); break; case 6: sub_8099690(0); @@ -209,13 +208,10 @@ void sub_8017D24(void) sub_801CBB8(); UpdateKangaskhanStorageState(6); } + else if(IsThrowableItem(gUnknown_203B208->unkC.itemIndex)) + UpdateKangaskhanStorageState(0x18); else - { - if(IsThrowableItem(gUnknown_203B208->unkC.itemIndex)) - UpdateKangaskhanStorageState(0x18); - else - UpdateKangaskhanStorageState(0x1B); - } + UpdateKangaskhanStorageState(0x1B); break; case 6: UpdateKangaskhanStorageState(0x1A); diff --git a/src/kecleon_items_1.c b/src/kecleon_items_1.c index c3e90b69c..f49c10208 100644 --- a/src/kecleon_items_1.c +++ b/src/kecleon_items_1.c @@ -9,10 +9,16 @@ #include "code_800D090.h" extern struct unkStruct_203B210 *gUnknown_203B210; +extern u16 gUnknown_203B218; +extern u16 gUnknown_203B220; +extern u16 gUnknown_203B228; +extern u16 gUnknown_203B22A; extern u8 gUnknown_80DB8E4[]; extern u8 gUnknown_80DB8EC[]; extern u8 gUnknown_80DB92C[]; extern u8 gUnknown_80DB934[]; +extern u8 *gUnknown_80D4920[]; +extern u8 *gUnknown_80D4928[]; extern s32 sub_80144A4(s32 *); void UpdateKecleonStoreState(u32); @@ -90,9 +96,8 @@ extern struct UnkTextStruct2 gUnknown_80DB8CC; extern struct UnkTextStruct2 gUnknown_80DB8B4; extern struct UnkTextStruct2 gUnknown_80DB8FC; extern struct UnkTextStruct2 gUnknown_80DB944; +extern struct UnkTextStruct2 gUnknown_80DB95C; extern const struct UnkTextStruct2 gUnknown_80DB914; -extern u16 gUnknown_203B218; -extern u16 gUnknown_203B220; extern void sub_801A430(void); extern void sub_801A4A4(void); extern void sub_8013984(u8 *); @@ -100,9 +105,6 @@ extern void sub_801A064(void); extern void sub_801A0D8(void); extern void AddMenuCursorSprite(void *); extern u8 sub_801A37C(void); -extern u16 gUnknown_203B228; -extern u16 gUnknown_203B22A; -extern struct UnkTextStruct2 gUnknown_80DB95C; extern void sub_801A010(void); extern void sub_801A3DC(void); @@ -114,6 +116,23 @@ extern void xxx_fill_inv_unk250_gaps_8091AA8(void); u32 sub_8019D8C(void); +void sub_8019700(void) +{ + u32 menuAction; + struct unkStruct_203B210 *preload; + u8 *nullText; + + preload = gUnknown_203B210; + nullText = NULL; + preload->unk34[0].text = *gUnknown_80D4920; + preload->unk34[0].menuAction = 5; + menuAction = 1; + preload->unk34[1].text = *gUnknown_80D4928; + preload->unk34[1].menuAction = 6; + preload->unk34[2].text = nullText; + preload->unk34[2].menuAction = menuAction; +} + void sub_8019730(void) { s32 local_8; diff --git a/src/move_util.c b/src/move_util.c index 4487862af..cf4f630f4 100644 --- a/src/move_util.c +++ b/src/move_util.c @@ -1,9 +1,25 @@ #include "global.h" #include "move_util.h" +#include "constants/ability.h" #include "constants/move_id.h" #include "constants/status.h" #include "moves.h" +#include "dungeon_util.h" +#include "dungeon_pokemon_attributes.h" +#include "dungeon_random.h" + +bool8 sub_8057308(struct DungeonEntity *pokemon, s32 chance) +{ + if(!EntityExists(pokemon)) + return FALSE; + if(chance == 0) + return TRUE; + if(HasAbility(pokemon, ABILITY_SERENE_GRACE)) + return RollPercentChance_2(chance * 2); + else + return RollPercentChance_2(chance); +} bool8 IsMoveIndexUsable(struct DungeonEntity *pokemon, s32 moveIndex, bool8 hasPPChecker) { diff --git a/src/moves.c b/src/moves.c index 3c3e8a9f2..db325abf8 100644 --- a/src/moves.c +++ b/src/moves.c @@ -240,7 +240,7 @@ u8 GetMoveWeight(struct PokemonMove *move) return gMovesData[move->moveID].weight; } -u8 GetMoveHitCount(struct PokemonMove *move) +u32 GetMoveHitCount(struct PokemonMove *move) { return gMovesData[move->moveID].hitCount; } diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c index 11e387ed4..bc4004c54 100644 --- a/src/pokemon_mid.c +++ b/src/pokemon_mid.c @@ -373,7 +373,7 @@ u16 GetLowKickDmg(s16 index) return gMonsterParameters[index].lowkick_dmg; } -u16 GetSizeOrbDmg(s16 index) +u32 GetSizeOrbDmg(s16 index) { return gMonsterParameters[index].sizeorb_dmg; } diff --git a/src/status_checker.c b/src/status_checker.c index 0aaeddffe..040d73440 100644 --- a/src/status_checker.c +++ b/src/status_checker.c @@ -1,23 +1,66 @@ #include "global.h" #include "status_checker.h" +#include "code_80521D0.h" #include "constants/move_id.h" #include "constants/status.h" #include "constants/type.h" #include "constants/weather.h" #include "dungeon_engine.h" #include "dungeon_global_data.h" +#include "dungeon_map_access.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_util.h" #include "dungeon_visibility.h" #include "map.h" #include "moves.h" #include "number_util.h" +#include "pokemon.h" #include "status_checks_1.h" #include "tile_types.h" #include "trap.h" #include "weather.h" +extern void sub_807F43C(struct DungeonEntity *, struct DungeonEntity *); +extern void sub_8078F50(struct DungeonEntity *, struct DungeonEntity *); +extern void sub_8077E4C(struct DungeonEntity *, struct DungeonEntity *); +extern void sub_8079570(struct DungeonEntity *, struct DungeonEntity *); +extern void sub_80795C4(struct DungeonEntity *, struct DungeonEntity *); +extern void sub_807DC68(struct DungeonEntity *, struct DungeonEntity *); +extern void sub_8077BB4(struct DungeonEntity *, struct DungeonEntity *, u8); +extern void sub_8078A58(struct DungeonEntity *, struct DungeonEntity *, s16, u32); + +extern u32 sub_803D73C(u32); +extern void sub_8045C28(struct ItemSlot *, u8 , u8 *); +extern void sub_80464C8(struct DungeonEntity *, struct Position *, struct ItemSlot *); +extern void sub_8068FE0(struct DungeonEntity *, u32, struct DungeonEntity *r2); +extern void sub_80522F4(struct DungeonEntity *r1, struct DungeonEntity *r2, const char []); +extern void sub_806F370(struct DungeonEntity *r0, struct DungeonEntity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32); +extern void sub_807FC3C(struct Position *, u32, u32); +extern void sub_8042A64(struct Position *); +extern void sub_8040A84(void); +extern void sub_8049ED4(void); +extern void sub_80498A8(s32, s32); +extern void sub_806CF60(); +extern void sub_8042A54(struct Position *); +extern void sub_8049BB0(s32, s32); +extern s16 sub_8057600(void*, u32); + +extern u8 *gUnknown_80FF678[]; +extern u8 *gUnknown_80FD0B8[]; +extern u8 *gUnknown_80FD0B4[]; +extern u8 *gUnknown_80FD454[]; +extern s16 gUnknown_80F4FC6; + +struct Position_Alt +{ + union PositionAlt + { + struct Position norm; + u32 full_bits; + } temp; +}; + // Array indices correspond to the current dungeon tileset. const u8 gDungeonCamouflageTypes[76] = { TYPE_WATER, @@ -98,6 +141,156 @@ const u8 gDungeonCamouflageTypes[76] = { TYPE_ROCK }; +bool8 sub_805C1E4(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + sub_80522F4(pokemon, target, *gUnknown_80FD454); + return FALSE; +} + +bool8 sub_805C1F8(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + sub_8077BB4(pokemon, target, 1); + return TRUE; +} + +bool8 sub_805C208(struct DungeonEntity *param_1,struct DungeonEntity *param_2,struct PokemonMove *param_3,u32 param_4) +{ + u32 uVar3; + u8 local_24; + + local_24 = 0; + uVar3 = GetSizeOrbDmg(param_2->entityData->transformSpecies); + sub_806F370(param_1,param_2,uVar3,1,&local_24,GetMoveType(param_3),sub_8057600(param_3,param_4),0,1,0); + + local_24 = local_24 == 0; + return local_24; +} + +bool8 sub_805C288(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + sub_8078A58(pokemon, target, gUnknown_80F4FC6, 0); + return TRUE; +} + +bool8 sub_805C2A0(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + sub_807DC68(pokemon, target); + return TRUE; +} + +bool8 FillInOrbAction(struct DungeonEntity *pokemon,struct DungeonEntity *target) +{ + struct MapTile *tileToFill; + struct DungeonEntityData *iVar5; + int y; + bool8 filledInTile; + int x; + u16 cast_x; + u32 cast_y; + struct Position_Alt tileCoords; + + filledInTile = FALSE; + iVar5 = target->entityData; + if (IsBossBattle()) { + SendMessage(pokemon,*gUnknown_80FD0B8); + return FALSE; + } + else + { + // Calculate the coordinates of the tile in front of the user + cast_x = target->posWorld.x + gAdjacentTileOffsets[iVar5->action.facingDir].x; + tileCoords.temp.full_bits = (tileCoords.temp.full_bits & 0xffff0000) | cast_x; + + cast_y = ((u16)(target->posWorld.y + gAdjacentTileOffsets[iVar5->action.facingDir].y)) << 0x10; + tileCoords.temp.full_bits = (tileCoords.temp.full_bits & 0x0000ffff) | cast_y; + + sub_8042A54((struct Position *)&tileCoords); + tileToFill = GetMapTile_2(tileCoords.temp.norm.x,tileCoords.temp.norm.y); + if ((tileToFill->tileType & (TILE_TYPE_FLOOR | TILE_TYPE_LIQUID)) == TILE_TYPE_LIQUID) { + tileToFill->tileType = (tileToFill->tileType & ~(TILE_TYPE_FLOOR | TILE_TYPE_LIQUID)) | TILE_TYPE_FLOOR; + + for(y = -1; y < 2; y++) + for(x = -1; x < 2; x++) + sub_80498A8(tileCoords.temp.norm.x + x, tileCoords.temp.norm.y + y); + filledInTile = TRUE; + sub_806CF60(); + } + + for(y = 0; y < DUNGEON_MAX_SIZE_Y; y++) + for(x = 0; x < DUNGEON_MAX_SIZE_X; x++) + sub_8049BB0(x,y); + + if (filledInTile) { + sub_8042A64((struct Position *)&tileCoords); + sub_80522F4(pokemon,target,*gUnknown_80FD0B4); + } + else { + sub_80522F4(pokemon,target,*gUnknown_80FD0B8); + } + sub_8040A84(); + sub_8049ED4(); + return filledInTile; + } +} + +bool8 sub_805C3DC(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + u32 var; + var = (target->entityData->isEnemy ? 2 : 1); + sub_807FC3C(&target->posWorld, 0x14, var); + return TRUE; +} + +bool8 sub_805C3F8(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + struct ItemSlot stack; + struct Position posStruct = target->posWorld; + + if(target->entityData->clientType != CLIENT_TYPE_NONE) + { + sub_80522F4(pokemon, target, *gUnknown_80FF678); + return FALSE; + } + else + { + target->visible = FALSE; + sub_8045C28(&stack, sub_803D73C(0), 0); + sub_80464C8(pokemon, &posStruct, &stack); + sub_8068FE0(target, 0x218, pokemon); + return TRUE; + } +} + +bool8 sub_805C45C(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + sub_807F43C(pokemon, target); + return TRUE; +} + +bool8 sub_805C468(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + sub_8078F50(pokemon, target); + return TRUE; +} + +bool8 sub_805C474(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + sub_8077E4C(pokemon, target); + return TRUE; +} + +bool8 sub_805C480(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + sub_8079570(pokemon, target); + return TRUE; +} + +bool8 sub_805C48C(struct DungeonEntity *pokemon, struct DungeonEntity *target) +{ + sub_80795C4(pokemon, target); + return TRUE; +} + bool8 CanUseOnSelfWithStatusChecker(struct DungeonEntity *pokemon, struct PokemonMove *move) { struct DungeonEntityData *pokemonData = pokemon->entityData; diff --git a/src/weather.c b/src/weather.c index 3989790f0..fb951a008 100644 --- a/src/weather.c +++ b/src/weather.c @@ -5,6 +5,11 @@ #include "constants/weather.h" #include "dungeon_global_data.h" #include "dungeon_items.h" +#include "dungeon_random.h" + +extern void TriggerWeatherAbilities(void); +extern void sub_807EAA0(u32, u32); +void sub_807E5E4(u8); u8 GetWeather(struct DungeonEntity* pokemon) { @@ -14,3 +19,39 @@ u8 GetWeather(struct DungeonEntity* pokemon) } return gDungeonGlobalData->weather; } + +void sub_807E5AC(void) +{ + u8 weather; + weather = gDungeonGlobalData->unk1C578; + if(weather == WEATHER_RANDOM) + weather = DungeonRandomCapped(WEATHER_RANDOM); + sub_807E5E4(weather); + TriggerWeatherAbilities(); + sub_807EAA0(0, 1); +} + +void sub_807E5E4(u8 weather) +{ + int index; + u8 *preload; + + gDungeonGlobalData->unkE265 = weather; + gDungeonGlobalData->weather = gDungeonGlobalData->unkE265; + gDungeonGlobalData->unkE279 = 0; + for(index = 0; index < 8; index++) { + gDungeonGlobalData->unkE267[index] = 0; + gDungeonGlobalData->startingWeather[index] = 0; + } + preload = &gDungeonGlobalData->weatherDamageTimer; + index = 0; + *preload = 9; + gDungeonGlobalData->mudSportTurnsLeft = 0; + gDungeonGlobalData->waterSportTurnsLeft = 0; + for(index = 0; index < 0x100; index++) + { + gDungeonGlobalData->unk17C[index].unk0 = index; + gDungeonGlobalData->unk17C[index].unk1 = index; + gDungeonGlobalData->unk17C[index].unk2 = index; + } +} diff --git a/src/wonder_mail_2_1.c b/src/wonder_mail_2_1.c new file mode 100644 index 000000000..0fc0ea174 --- /dev/null +++ b/src/wonder_mail_2_1.c @@ -0,0 +1,523 @@ +#include "global.h" +#include "constants/mailbox.h" +#include "input.h" +#include "memory.h" +#include "text.h" +#include "menu.h" + + +struct unkStruct_203B2E8 +{ + // size: 0xA8 + u8 unk0[MAX_ACCEPTED_JOBS]; + u32 unk8; + u8 fillC[0x20 - 0xC]; + s16 unk20; + s16 unk22; + s16 unk24; + s16 unk26; + u16 unk28; + u16 unk2A; + u16 unk2C; + u8 fill2E[0x3C - 0x2E]; + u32 unk3C; + struct UnkTextStruct2 *unk40; + struct UnkTextStruct2 unk44[4]; + u8 unkA4[4]; +}; + +struct unkStruct_203B2F0 +{ + // size: 0x1FC + u32 unk0; + u32 state; + u8 unk8[0xC - 0x8]; + u8 unkC; + u8 fillD[0x10 - 0xD]; + u32 unk10; + u8 fill14[0x68 - 0x14]; + u32 unk68; + u8 fill6C[0xBC - 0x6C]; + u8 unkBC[0x10C - 0xBC]; + struct MenuItem unk10C[8]; + struct MenuItem unk14C[8]; + u8 fill18C[0x19C - 0x18C]; + struct UnkTextStruct2 unk19C[4]; +}; + +extern struct unkStruct_203B2F0 *gUnknown_203B2F0; +extern struct unkStruct_203B2E8* gUnknown_203B2E8; +extern struct unkStruct_203B2E8* gUnknown_203B2E0; + +u16 gUnknown_203B2EC; + +const struct UnkTextStruct2 gUnknown_80DFCE4 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +const struct UnkTextStruct2 gUnknown_80DFCFC = +{ + 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x18, 0x0E, + 0x0E, 0x00, + NULL +}; + +const u8 gUnknown_80DFD14[] = "Job List"; +static const u8 wonder_mail_fill[] = "pksdir0"; + +const struct UnkTextStruct2 gUnknown_80DFD28 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +const struct UnkTextStruct2 gUnknown_80DFD40 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x06, 0x00, + 0x07, 0x03, + 0x03, 0x00, + NULL +}; + +const struct UnkTextStruct2 gUnknown_80DFD58 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x0f, 0x00, + 0x06, 0x03, + 0x03, 0x00, + NULL +}; + +const u8 gUnknown_80DFD70[] = "Take Job"; +const u8 gUnknown_80DFD7C[] = "Suspend"; +static const u8 wonder_mail_fill0[] = "pksdir0"; + +const struct UnkTextStruct2 gUnknown_80DFD8C = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +const struct UnkTextStruct2 gUnknown_80DFDA4 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, + 0x18, 0x0e, + 0x0e, 0x00, + NULL +}; + +const u8 gUnknown_80DFDBC[] = "RESCUE EVENT"; +static const u8 wonder_mail_fill1[] = "pksdir0"; + +extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *); +extern void sub_802CAA4(void); +extern u8 IsJobSlotEmpty(u8); +extern void sub_8008C54(u32); +extern void sub_80073B8(u32); +extern void sub_8013C68(u32 *); +extern void sub_80073E0(u32); +extern struct WonderMail* GetJobSlotInfo(u8); +extern s32 sub_8013800(void *, u32); +extern void sub_803B35C(void *, u32 *); +extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32); +extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32); +extern void sub_803B6D4(u32 *); + +extern void sub_8013984(u32 *); +extern void sub_802C6DC(void); +extern void sub_802C750(void); +extern void AddMenuCursorSprite(u32 *); +extern u8 sub_80138B8(void *, u32); +extern s32 GetKeyPress(void *); +extern void PlayMenuSoundEffect(u32); +extern void sub_8013660(void *); +extern void sub_8013848(u32 *, s32, u32, u32); +extern void sub_8012D34(struct UnkTextStruct2 *, u32); +extern bool8 sub_809658C(u8); +extern void sub_802C910(u32); +extern void sub_802CC00(void); +extern void sub_802CC70(void); +extern void sub_802CD38(void); +extern void sub_802CDB8(void); +extern void sub_802C928(void); +extern void sub_802C9D8(void); +extern void sub_8012D60(u8 *, struct MenuItem *, u32, u16 *, u32, u32); +extern void sub_802DE84(u32 *); +extern void sub_8012EA4(u8 *, u32); +extern void sub_802CBAC(void); + +s32 CountAcceptedJobs(void); +bool8 HasNoAcceptedJobs(void); + +s32 sub_802C474(void) +{ + s32 index; + s32 counter = 0; + for(index = 0; index < MAX_ACCEPTED_JOBS; index++) + { + if(!sub_809658C(index)) + { + gUnknown_203B2E0->unk0[counter] = index; + counter++; + } + } + return counter; +} + +bool8 sub_802C4A4(void) +{ + s32 index; + for(index = 0; index < MAX_ACCEPTED_JOBS; index++) + { + if(!sub_809658C(index)) + return FALSE; + } + return TRUE; +} + +u32 sub_802C4C8(int param_1,struct UnkTextStruct2_sub *param_2,u32 param_3) +{ + if (HasNoAcceptedJobs()) { + return 0; + } + else + { + gUnknown_203B2E8 = MemoryAlloc(sizeof(struct unkStruct_203B2E8),8); + gUnknown_203B2E8->unk3C = param_1; + gUnknown_203B2E8->unk40 = &gUnknown_203B2E8->unk44[param_1]; + sub_8006518(gUnknown_203B2E8->unk44); + + gUnknown_203B2E8->unk44[gUnknown_203B2E8->unk3C] = gUnknown_80DFCFC; + + gUnknown_203B2E8->unk40->unk14 = gUnknown_203B2E8->unkA4; + if (param_2 != NULL) { + gUnknown_203B2E8->unk44[gUnknown_203B2E8->unk3C].unk08 = *param_2; + } + sub_8012D34(gUnknown_203B2E8->unk40,param_3); + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B2E8->unk44,1,1); + sub_8013848(&gUnknown_203B2E8->unk8,CountAcceptedJobs(),param_3,param_1); + gUnknown_203B2E8->unk20 = gUnknown_203B2EC; + sub_8013984(&gUnknown_203B2E8->unk8); + sub_802C6DC(); + sub_802C750(); + return 1; + } +} + +u32 sub_802C598(u8 param_1) +{ + if (param_1 == '\0') { + sub_8013660(&gUnknown_203B2E8->unk8); + return 0; + } + else { + switch(GetKeyPress(&gUnknown_203B2E8->unk8)) + { + case 2: + PlayMenuSoundEffect(1); + return 2; + case 1: + PlayMenuSoundEffect(0); + return 3; + case 4: + PlayMenuSoundEffect(4); + return 4; + break; + } + if (sub_80138B8(&gUnknown_203B2E8->unk8, 1) != '\0') { + sub_802C6DC(); + sub_802C750(); + return 1; + } + else { + return 0; + } + } +} + +u8 sub_802C620(void) +{ + return gUnknown_203B2E8->unk0[gUnknown_203B2E8->unk26 * gUnknown_203B2E8->unk24 + gUnknown_203B2E8->unk20]; +} + +void sub_802C640(u32 r0) +{ + u8 r0_u8; + r0_u8 = r0; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B2E8->unk44, 0, 0); + gUnknown_203B2E8->unk2A = CountAcceptedJobs(); + sub_8013984(&gUnknown_203B2E8->unk8); + sub_802C6DC(); + sub_802C750(); + if(r0_u8) + AddMenuCursorSprite(&gUnknown_203B2E8->unk8); +} + +void sub_802C688(void) +{ + if(gUnknown_203B2E8 != NULL) + { + gUnknown_203B2EC = gUnknown_203B2E8->unk20; + gUnknown_203B2E8->unk44[gUnknown_203B2E8->unk3C] = gUnknown_80DFCE4; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B2E8->unk44, 1, 1); + MemoryFree(gUnknown_203B2E8); + gUnknown_203B2E8 = NULL; + } +} + +NAKED +void sub_802C6DC(void) +{ + asm_unified("\tpush {r4,lr}\n" + "\tldr r4, _0802C74C\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x28]\n" + "\tadds r0, 0xA4\n" + "\tmovs r2, 0\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x26]\n" + "\tadds r0, 0xA5\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xA6\n" + "\tmovs r1, 0xC\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xA7\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0x22\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0x18\n" + "\tbl sub_8009614\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r2, [r4]\n" + "\tldr r3, [r2, 0x3C]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x52\n" + "\tasrs r3, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r2, 0x3C]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r2, r0\n" + "\tadds r3, 0x2\n" + "\tadds r2, 0x54\n" + "\tstrh r3, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x44\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0802C74C: .4byte gUnknown_203B2E8"); + +} + +void sub_802C750(void) +{ + struct WonderMail *uVar1; + int iVar2; + s32 r4; + s32 r5; + u32 auStack104 [18]; + u32 uStack32[4]; + + sub_8008C54(gUnknown_203B2E8->unk3C); + sub_80073B8(gUnknown_203B2E8->unk3C); + r4 = gUnknown_203B2E8->unk26 * 8; + r5 = r4; + r5 += 10; + xxx_call_draw_string(r5,0,gUnknown_80DFD14,gUnknown_203B2E8->unk3C,0); // "Job List" + r4 += 4; + r5 = r4 + gUnknown_203B2E8->unkA4[2] * 8; + sub_8012BC4(r5,0,gUnknown_203B2E8->unk26 + 1,2,7,gUnknown_203B2E8->unk3C); + iVar2 = 0; + + if(( iVar2 < gUnknown_203B2E8->unk22)) + do + { + uVar1 = GetJobSlotInfo(gUnknown_203B2E8->unk0[gUnknown_203B2E8->unk26 * gUnknown_203B2E8->unk24 + iVar2]); + auStack104[0] = gUnknown_203B2E8->unk3C; + uStack32[0] = sub_8013800(&gUnknown_203B2E8->unk8,iVar2); + sub_803B35C(uVar1,auStack104); + sub_803B6D4(auStack104); + iVar2++; + } while( iVar2 < gUnknown_203B2E8->unk22); + sub_80073E0(gUnknown_203B2E8->unk3C); +} + +s32 CountAcceptedJobs(void) +{ + s32 index; + s32 counter = 0; + for(index = 0; index < MAX_ACCEPTED_JOBS; index++) + { + if(!IsJobSlotEmpty(index)) + { + gUnknown_203B2E8->unk0[counter] = index; + counter++; + } + } + return counter; +} + +bool8 HasNoAcceptedJobs(void) +{ + s32 index; + for(index = 0; index < MAX_ACCEPTED_JOBS; index++) + { + if(!IsJobSlotEmpty(index)) + return 0; + } + return 1; +} + +u32 sub_802C860(u32 r0) +{ + if(HasNoAcceptedJobs()) + { + return 0; + } + else + { + gUnknown_203B2F0 = MemoryAlloc(sizeof(struct unkStruct_203B2F0), 0x8); + gUnknown_203B2F0->unk68 = 0; + gUnknown_203B2F0->unk0 = r0; + sub_802C910(0); + return 1; + } +} + +u32 sub_802C898(void) +{ + switch(gUnknown_203B2F0->state) + { + case 0: + case 1: + sub_802CC00(); + break; + case 2: + sub_802CC70(); + break; + case 3: + sub_802CD38(); + break; + case 4: + sub_802CDB8(); + break; + case 5: + default: + return 3; + } + return 0; +} + +void sub_802C8F4(void) +{ + if(gUnknown_203B2F0 != NULL) + { + MemoryFree(gUnknown_203B2F0); + gUnknown_203B2F0 = NULL; + } +} + +void sub_802C910(u32 newState) +{ + gUnknown_203B2F0->state = newState; + sub_802C928(); + sub_802C9D8(); +} + +void sub_802C928(void) +{ + s32 index; + sub_8006518(gUnknown_203B2F0->unk19C); + switch(gUnknown_203B2F0->state) + { + case 2: + sub_802CAA4(); + gUnknown_203B2F0->unk19C[2] = gUnknown_80DFD40; + sub_8012CAC(&gUnknown_203B2F0->unk19C[2], gUnknown_203B2F0->unk10C); + break; + case 3: + gUnknown_203B2F0->unk19C[3] = gUnknown_80DFD58; + break; + default: + for(index = 0; index < 4; index++) + { + gUnknown_203B2F0->unk19C[index] = gUnknown_80DFD28; + } + break; + } + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B2F0->unk19C, 1, 1); +} + +void sub_802C9D8(void) +{ + switch(gUnknown_203B2F0->state) + { + case 0: + sub_802C4C8(0, 0, 4); + break; + case 1: + sub_802C640(1); + break; + case 2: + sub_802C750(); + sub_8012D60(gUnknown_203B2F0->fill6C, gUnknown_203B2F0->unk10C, 0, 0, gUnknown_203B2F0->unk68, 2); + break; + case 3: + sub_802CBAC(); + sub_802C750(); + sub_8012EA4(gUnknown_203B2F0->fill6C, 0); + sub_8012D60(gUnknown_203B2F0->unkBC, gUnknown_203B2F0->unk14C, 0, 0, 6, 3); + break; + case 4: + sub_803B35C(GetJobSlotInfo(gUnknown_203B2F0->unkC), &gUnknown_203B2F0->unk10); + gUnknown_203B2F0->unk10 = 3; + sub_802DE84(&gUnknown_203B2F0->unk10); + break; + case 5: + default: + break; + } +} + diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index 4cc2e0e77..d85b2cbc8 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -45,9 +45,103 @@ struct unkStruct_203B2F8 u32 unk1E4; }; extern struct unkStruct_203B2F8 *gUnknown_203B2F8; -extern struct UnkTextStruct2 gUnknown_80DFE04; -extern struct UnkTextStruct2 gUnknown_80DFE1C; -extern struct UnkTextStruct2 gUnknown_80DFDD4; + +const struct UnkTextStruct2 gUnknown_80DFDD4 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +// Unused +const struct UnkTextStruct2 gUnknown_80DFDEC = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x03, 0x00, + 0x07, 0x03, + 0x03, 0x00, + NULL +}; + +const struct UnkTextStruct2 gUnknown_80DFE04 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x06, 0x00, + 0x07, 0x03, + 0x03, 0x00, + NULL +}; +const struct UnkTextStruct2 gUnknown_80DFE1C = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x0f, 0x00, + 0x07, 0x03, + 0x03, 0x00, + NULL +}; + +// Unused +const struct UnkTextStruct2 gUnknown_80DFE34 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x15, 0x00, 0x0f, 0x00, + 0x06, 0x03, + 0x03, 0x00, + NULL +}; + +ALIGNED(4) const u8 gUnknown_80DFE4C[] = _( + "Are you sure you want to replace the\n" + "old {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1} with the new one?"); + +ALIGNED(4) const u8 gUnknown_80DFE9C[] = _( + "This {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1} has already been\n" + "received."); + +ALIGNED(4) const u8 gUnknown_80DFED0[] = _( + "This {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1} has already been\n" + "received.\n" + "You may not receive the same one again."); + +ALIGNED(4) const u8 gUnknown_80DFF2C[] = _( + "Only {COLOR_1 LIGHT_BLUE_2}one piece{END_COLOR_TEXT_1} of {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1} can be held.\n" + "Please receive it after completing any\n" + "rescue mission in progress."); + +ALIGNED(4) const u8 gUnknown_80DFFA4[] = + "The rescue team has quicksaved in\n" + "a dungeon with a mission in progress.\n" + "Please complete the mission first."; + +ALIGNED(4) const u8 gUnknown_80E0010[] = + "The rescue team has quicksaved in\n" + "a dungeon with a mission in progress.\n" + "Mail cannot be deleted now."; + +ALIGNED(4) const u8 gUnknown_80E0074[] = _( + "Received the {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1}!"); + +ALIGNED(4) const u8 gUnknown_80E0094[] = _( + "Only {COLOR_1 LIGHT_BLUE_2}one piece{END_COLOR_TEXT_1} of {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1} can be held.\n" + "Is it OK to replace the old {COLOR_1 LIGHT_BLUE_2}Wonder Mail{END_COLOR_TEXT_1}\n" + "with the new one?"); + +ALIGNED(4) const u8 gUnknown_80E0108[] = _( + "Your {COLOR_1 LIGHT_BLUE_2}Job List{END_COLOR_TEXT_1} is full.\n" + "Please select and delete unwanted mail."); + +ALIGNED(4) const u8 gUnknown_80E014C[] = "New Mail"; +ALIGNED(4) const u8 gUnknown_80E0158[] = "Old Mail"; +static const u8 wonder_mail_3_fill[] = "pksdir0"; + + extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *); extern void sub_802D63C(void); extern void sub_802D5A4(void); @@ -66,15 +160,6 @@ extern void sub_802DA84(); extern void sub_802D1B8(); extern void sub_802D2A8(); -extern u8 gUnknown_80E0010[]; -extern u8 gUnknown_80DFFA4[]; -extern u8 gUnknown_80DFF2C[]; -extern u8 gUnknown_80DFED0[]; -extern u8 gUnknown_80DFE9C[]; -extern u8 gUnknown_80DFE4C[]; -extern u8 gUnknown_80E0108[]; -extern u8 gUnknown_80E0094[]; -extern u8 gUnknown_80E0074[]; extern u8 sub_80968B0(void *); extern u8 sub_8096F50(void *); @@ -95,7 +180,7 @@ extern void sub_8097418(u32, u32); extern void sub_802D690(void); extern void sub_8096C80(void); extern void sub_8096D24(void); -extern void sub_80141B4(u8 *, u32, u32, u32); +extern void sub_80141B4(const u8 *, u32, u32, u32); extern void sub_8012D60(u8 *, struct MenuItem *, u32, u16 *, u32, u32); extern u8 *sub_8096DE8(void); extern void sub_8096A78(struct unkSubStruct_203B2F8 *); @@ -208,128 +293,119 @@ void sub_802D2A8(void) { switch(gUnknown_203B2F8->state) { - case 0: - if (sub_80968B0(gUnknown_203B2F8->unkC) != 0) { - sub_802D1A0(3); - } - else - { - if (sub_8096F50(gUnknown_203B2F8->unkC) != 0) { - sub_802D1A0(4); - } - else - { - if ((gUnknown_203B2F8->unkC->wonderMail.unk2 == 4) && (sub_8096C08(&gUnknown_203B2F8->unk10) != 0)) { - if (sub_802DAA8() != 0) { - sub_802D1A0(9); - } - else { - sub_802D1A0(5); - } + case 0: + if (sub_80968B0(gUnknown_203B2F8->unkC) != 0) { + sub_802D1A0(3); } - else { - if (GetNumAcceptedJobs() >= MAX_ACCEPTED_JOBS) { + else if (sub_8096F50(gUnknown_203B2F8->unkC) != 0) { + sub_802D1A0(4); + } + else if ((gUnknown_203B2F8->unkC->wonderMail.unk2 == 4) && (sub_8096C08(&gUnknown_203B2F8->unk10) != 0)) { + if (sub_802DAA8() != 0) { + sub_802D1A0(9); + } + else { + sub_802D1A0(5); + } + } + else if (GetNumAcceptedJobs() >= MAX_ACCEPTED_JOBS) { if (sub_802DADC() != 0) { sub_802D1A0(10); } else { - sub_802D1A0(6); + sub_802D1A0(6); } - } - else - { - sub_802D1A0(8); - } } - } - } - break; - case 1: - sub_802D73C(); - sub_8014248(gUnknown_80DFE4C,0,gUnknown_203B2F8->unk70,gUnknown_203B2F8->unk158,0,4,0,0,0); - break; - case 3: - gUnknown_203B2F8->unk4 = 2; - sub_80141B4(gUnknown_80DFE9C,0,0,0x101); - break; - case 4: - gUnknown_203B2F8->unk4 = 2; - sub_80141B4(gUnknown_80DFED0,0,0,0x101); - break; - case 5: - gUnknown_203B2F8->unk4 = 2; - sub_80141B4(gUnknown_80DFF2C,0,0,0x101); - break; - case 6: - gUnknown_203B2F8->unk4 = 2; - sub_80141B4(gUnknown_80DFFA4,0,0,0x101); - break; - case 7: - gUnknown_203B2F8->unk4 = 0xc; - sub_80141B4(gUnknown_80E0010,0,0,0x101); - break; - case 8: - gUnknown_203B2F8->unk8 = 1; - sub_8096A78(gUnknown_203B2F8->unkC); - sub_8096C80(); - sub_8096D24(); - if (gUnknown_203B2F8->unkC->wonderMail.unk2 == 4) { - MemoryCopy8(sub_8096DD8(),gUnknown_203B2F8->unkC->unk14,0x28); - MemoryCopy8(sub_8096DE8(),gUnknown_203B2F8->unkC->unk18,0x78); - } - switch(gUnknown_203B2F8->unkC->wonderMail.dungeon) - { - // NOTE: subtract 1 from each of the case as the input?? - case DUNGEON_ODDITY_CAVE: // 0x2B - sub_8097418(0x2A, 1); - break; - case DUNGEON_REMAINS_ISLAND: - sub_8097418(0x2B, 1); - break; - case DUNGEON_MARVELOUS_SEA: - sub_8097418(0x2C, 1); - break; - case DUNGEON_FANTASY_STRAIT: // 0x2E - sub_8097418(0x2D, 1); - break; - } - gUnknown_203B2F8->unk4 = 2; - sub_80141B4(gUnknown_80E0074,0,0,0x101); - break; - case 9: - sub_802D690(); - sub_8014248(gUnknown_80E0094,0,gUnknown_203B2F8->unk74,gUnknown_203B2F8->unk158,0,4,0,0,0); - break; - case 10: - gUnknown_203B2F8->unk4 = 0xb; - sub_80141B4(gUnknown_80E0108,0,0,0x101); - break; - case 0xb: - sub_802C4C8(0,0,4); - break; - case 0xc: - sub_802C640(1); - break; - case 0xd: - sub_802C750(); - sub_8012D60(gUnknown_203B2F8->unk78,gUnknown_203B2F8->unk118,0,gUnknown_203B2F8->unk198, - gUnknown_203B2F8->unk6C,2); - break; - case 0xe: - sub_802C750(); - sub_8012EA4(gUnknown_203B2F8->unk78,0); - sub_8012D60(gUnknown_203B2F8->unkC8,gUnknown_203B2F8->unk158,0,0,4,3); - break; - case 0xf: - sub_803B35C(GetJobSlotInfo(gUnknown_203B2F8->unk10),&gUnknown_203B2F8->unk14); - gUnknown_203B2F8->unk14 = 3; - sub_802DE84(&gUnknown_203B2F8->unk14); - break; - case 0x10: - sub_803B35C(gUnknown_203B2F8->unkC,&gUnknown_203B2F8->unk14); - gUnknown_203B2F8->unk14 = 3; - gUnknown_203B2F8->unk58 = 0; - gUnknown_203B2F8->unk64 = gUnknown_203B2F8->unkC->unk18; - sub_802DE84(&gUnknown_203B2F8->unk14); + else + sub_802D1A0(8); + break; + case 1: + sub_802D73C(); + sub_8014248(gUnknown_80DFE4C,0,gUnknown_203B2F8->unk70,gUnknown_203B2F8->unk158,0,4,0,0,0); + break; + case 3: + gUnknown_203B2F8->unk4 = 2; + sub_80141B4(gUnknown_80DFE9C,0,0,0x101); + break; + case 4: + gUnknown_203B2F8->unk4 = 2; + sub_80141B4(gUnknown_80DFED0,0,0,0x101); + break; + case 5: + gUnknown_203B2F8->unk4 = 2; + sub_80141B4(gUnknown_80DFF2C,0,0,0x101); + break; + case 6: + gUnknown_203B2F8->unk4 = 2; + sub_80141B4(gUnknown_80DFFA4,0,0,0x101); + break; + case 7: + gUnknown_203B2F8->unk4 = 0xc; + sub_80141B4(gUnknown_80E0010,0,0,0x101); + break; + case 8: + gUnknown_203B2F8->unk8 = 1; + sub_8096A78(gUnknown_203B2F8->unkC); + sub_8096C80(); + sub_8096D24(); + if (gUnknown_203B2F8->unkC->wonderMail.unk2 == 4) { + MemoryCopy8(sub_8096DD8(),gUnknown_203B2F8->unkC->unk14,0x28); + MemoryCopy8(sub_8096DE8(),gUnknown_203B2F8->unkC->unk18,0x78); + } + switch(gUnknown_203B2F8->unkC->wonderMail.dungeon) + { + // NOTE: subtract 1 from each of the case as the input?? + case DUNGEON_ODDITY_CAVE: // 0x2B + sub_8097418(0x2A, 1); + break; + case DUNGEON_REMAINS_ISLAND: + sub_8097418(0x2B, 1); + break; + case DUNGEON_MARVELOUS_SEA: + sub_8097418(0x2C, 1); + break; + case DUNGEON_FANTASY_STRAIT: // 0x2E + sub_8097418(0x2D, 1); + break; + } + gUnknown_203B2F8->unk4 = 2; + sub_80141B4(gUnknown_80E0074,0,0,0x101); + break; + case 9: + sub_802D690(); + sub_8014248(gUnknown_80E0094,0,gUnknown_203B2F8->unk74,gUnknown_203B2F8->unk158,0,4,0,0,0); + break; + case 10: + gUnknown_203B2F8->unk4 = 0xb; + sub_80141B4(gUnknown_80E0108,0,0,0x101); + break; + case 0xb: + sub_802C4C8(0,0,4); + break; + case 0xc: + sub_802C640(1); + break; + case 0xd: + sub_802C750(); + sub_8012D60(gUnknown_203B2F8->unk78,gUnknown_203B2F8->unk118,0,gUnknown_203B2F8->unk198, + gUnknown_203B2F8->unk6C,2); + break; + case 0xe: + sub_802C750(); + sub_8012EA4(gUnknown_203B2F8->unk78,0); + sub_8012D60(gUnknown_203B2F8->unkC8,gUnknown_203B2F8->unk158,0,0,4,3); + break; + case 0xf: + sub_803B35C(GetJobSlotInfo(gUnknown_203B2F8->unk10),&gUnknown_203B2F8->unk14); + gUnknown_203B2F8->unk14 = 3; + sub_802DE84(&gUnknown_203B2F8->unk14); + break; + case 0x10: + sub_803B35C(gUnknown_203B2F8->unkC,&gUnknown_203B2F8->unk14); + gUnknown_203B2F8->unk14 = 3; + gUnknown_203B2F8->unk58 = 0; + gUnknown_203B2F8->unk64 = gUnknown_203B2F8->unkC->unk18; + sub_802DE84(&gUnknown_203B2F8->unk14); + break; } } diff --git a/src/wonder_mail_802DF88.c b/src/wonder_mail_802DF88.c index ffac5a88a..010a3efe2 100644 --- a/src/wonder_mail_802DF88.c +++ b/src/wonder_mail_802DF88.c @@ -43,43 +43,68 @@ struct unkStruct_203B300 }; extern struct unkStruct_203B300 *gUnknown_203B300; +extern u8 gUnknown_202E5D8[]; +extern u8 gUnknown_202E1C8[]; +extern u8 gUnknown_202DE58[]; + +const struct UnkTextStruct2 gUnknown_80E016C = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; extern struct UnkTextStruct2 gUnknown_80E0248; extern struct UnkTextStruct2 gUnknown_80E0264; -extern struct UnkTextStruct2 gUnknown_80E016C; + +ALIGNED(4) const u8 gWonderMailClientThanksForRescuingMe[] = " Thank you for rescuing me!"; + +ALIGNED(4) const u8 gWonderMailClientThanksForRescuingThem[] = _( + " Thank you for rescuing\n" + "{COLOR_1 CYAN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}!"); + +ALIGNED(4) const u8 gWonderMailClientEscorted[] = _( + " Thank you for escorting me\n" + "to {COLOR_1 CYAN}{ARG_POKEMON_1}{END_COLOR_TEXT_1}! "); + +ALIGNED(4) const u8 gWonderMailClientItemDelivered1[] = _( + " Thank you for delivering\n" + "the {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}!"); + +ALIGNED(4) const u8 gWonderMailClientItemDelivered2[] = _( + " Thank you for getting me\n" + "the {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}!"); + +static const u8 wonder_mail_802DF88_fill[] = "pksdir0"; + extern void sub_80073B8(u32); extern void sub_80073E0(u32); extern void CreateRescueDescription(u32 *); extern void PlayMenuSoundEffect(u32); extern s32 sub_8012A64(void *, u32); -void sub_802DF6C(void); -void sub_802DF88(void); -void sub_802DF14(void); -void sub_801317C(void); extern s32 sub_80144A4(s32 *); extern void sub_802DC28(u32); extern void sub_802F2C0(void); extern void sub_802DC28(u32); extern u32 sub_802F298(void); -extern u8 gUnknown_202E5D8[]; -extern u8 gUnknown_202E1C8[]; -extern u8 gUnknown_202DE58[]; - -extern u8 gWonderMailClientThanksForRescuingMe[]; -extern u8 gWonderMailClientThanksForRescuingThem[]; -extern u8 gWonderMailClientEscorted[]; -extern u8 gWonderMailClientItemDelivered1[]; -extern u8 gWonderMailClientItemDelivered2[]; extern void sub_802F204(u32 *, u32); -extern void sub_80141B4(u8 *r0, u32, struct OpenedFile **r1, u32); +extern void sub_80141B4(const u8 *r0, u32, struct OpenedFile **r1, u32); extern void sub_802DC40(void); extern void sub_802DC9C(void); -void sub_802DE44(void); -void sub_802DE60(void); struct WonderMail *GetJobSlotInfo(u8); extern void sub_8096AF8(u8 *, u32, u32); extern void sub_8096EEC(void); extern void sub_803C21C(struct WonderMail *, u32 *); +void sub_802DE44(void); +void sub_802DE60(void); +void sub_802DF6C(void); +void sub_802DF88(void); +void sub_802DF14(void); +void sub_801317C(void); + u32 sub_802DB28(u8 jobSlot, u8 param_2) { char local_18 [8];