diff --git a/asm/manager1.s b/asm/manager1.s deleted file mode 100644 index a6bc4f1f..00000000 --- a/asm/manager1.s +++ /dev/null @@ -1,485 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08057174 -sub_08057174: @ 0x08057174 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl GetCurrentRoomProperty - adds r3, r0, #0 - ldrb r0, [r3] - cmp r0, #0xff - bne _08057188 - b _0805728A -_08057188: - ldr r1, _080571E8 @ =gPlayerEntity - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #0 - bge _08057194 - adds r0, #0xf -_08057194: - asrs r6, r0, #4 - movs r7, #0x32 - ldrsh r0, [r1, r7] - cmp r0, #0 - bge _080571A0 - adds r0, #0xf -_080571A0: - asrs r5, r0, #4 - movs r0, #0x21 - adds r0, r0, r4 - mov ip, r0 -_080571A8: - ldrb r0, [r3] - mov r1, ip - ldrb r1, [r1] - cmp r0, r1 - beq _08057282 - ldr r1, _080571EC @ =gRoomControls - ldrh r0, [r1, #6] - lsrs r0, r0, #4 - ldrb r7, [r3, #1] - adds r2, r0, r7 - ldrh r0, [r1, #8] - lsrs r0, r0, #4 - ldrb r1, [r3, #2] - adds r0, r0, r1 - subs r0, r5, r0 - ldrb r7, [r3, #4] - cmp r0, r7 - bhs _08057282 - subs r0, r6, r2 - ldrb r1, [r3, #3] - cmp r0, r1 - bhs _08057282 - ldrb r0, [r3] - subs r0, #1 - cmp r0, #5 - bhi _08057268 - lsls r0, r0, #2 - ldr r1, _080571F0 @ =_080571F4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080571E8: .4byte gPlayerEntity -_080571EC: .4byte gRoomControls -_080571F0: .4byte _080571F4 -_080571F4: @ jump table - .4byte _0805720C @ case 0 - .4byte _08057220 @ case 1 - .4byte _08057258 @ case 2 - .4byte _08057246 @ case 3 - .4byte _08057216 @ case 4 - .4byte _08057236 @ case 5 -_0805720C: - mov r2, ip - ldrb r0, [r2] - cmp r0, #2 - bne _08057268 - b _08057260 -_08057216: - mov r7, ip - ldrb r0, [r7] - cmp r0, #6 - bne _08057268 - b _08057260 -_08057220: - mov r0, ip - ldrb r1, [r0] - cmp r1, #0 - bne _08057268 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x20 - strb r1, [r0] - b _08057268 -_08057236: - mov r2, ip - ldrb r1, [r2] - cmp r1, #0 - bne _08057268 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - b _08057268 -_08057246: - mov r7, ip - ldrb r1, [r7] - cmp r1, #0 - bne _08057268 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - str r1, [r4, #0x34] - b _08057268 -_08057258: - mov r1, ip - ldrb r0, [r1] - cmp r0, #4 - bne _08057268 -_08057260: - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #9 - strb r0, [r4, #0xe] -_08057268: - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08057282 - movs r0, #8 - strb r0, [r4, #0xf] - ldrb r0, [r3] - mov r2, ip - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #1 - strb r0, [r1] - b _0805728A -_08057282: - adds r3, #5 - ldrb r0, [r3] - cmp r0, #0xff - bne _080571A8 -_0805728A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805728C -sub_0805728C: @ 0x0805728C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080572CA - movs r0, #8 - strb r0, [r4, #0xf] - ldr r2, _080572CC @ =gScreen - ldr r3, _080572D0 @ =gUnk_08107C1C - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r3 - ldrh r0, [r0] - adds r2, #0x68 - strh r0, [r2] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0xa - bne _080572CA - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #0 - strb r0, [r1] -_080572CA: - pop {r4, pc} - .align 2, 0 -_080572CC: .4byte gScreen -_080572D0: .4byte gUnk_08107C1C - - thumb_func_start sub_080572D4 -sub_080572D4: @ 0x080572D4 - push {r4, r5, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xf] - subs r0, #1 - strb r0, [r3, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08057320 - movs r0, #8 - strb r0, [r3, #0xf] - ldr r5, _08057324 @ =gScreen - ldr r2, _08057328 @ =gUnk_08107C1C - ldrb r0, [r3, #0xe] - adds r1, r0, #0 - adds r1, #0xff - strb r1, [r3, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r2 - ldrh r2, [r0] - adds r0, r5, #0 - adds r0, #0x68 - movs r4, #0 - strh r2, [r0] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0xff - bne _08057320 - movs r0, #1 - strb r0, [r3, #0xc] - adds r0, r3, #0 - adds r0, #0x22 - strb r4, [r0] - subs r0, #1 - strb r4, [r0] - adds r0, r5, #0 - adds r0, #0x6c - strb r4, [r0] -_08057320: - pop {r4, r5, pc} - .align 2, 0 -_08057324: .4byte gScreen -_08057328: .4byte gUnk_08107C1C - - thumb_func_start sub_0805732C -sub_0805732C: @ 0x0805732C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - adds r5, r1, #0 - ldr r2, _08057390 @ =gUnk_03003DE4 - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _08057394 @ =gUnk_02017AA0 - adds r4, r0, r1 - movs r3, #0 - mov ip, r2 - mov r8, r1 - ldr r0, _08057398 @ =gSineTable - mov sb, r0 - movs r2, #0xff - ldr r1, _0805739C @ =gScreen -_08057354: - adds r0, r5, r3 - ands r0, r2 - lsls r0, r0, #1 - add r0, sb - movs r7, #0 - ldrsh r0, [r0, r7] - muls r0, r6, r0 - lsrs r0, r0, #8 - ldrh r7, [r1, #0x2e] - adds r0, r0, r7 - strh r0, [r4] - adds r4, #2 - adds r3, #1 - cmp r3, #0x9f - bls _08057354 - mov r0, ip - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - add r0, r8 - ldr r1, _080573A0 @ =0x0400001C - ldr r2, _080573A4 @ =0xA2600001 - bl sub_0805622C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08057390: .4byte gUnk_03003DE4 -_08057394: .4byte gUnk_02017AA0 -_08057398: .4byte gSineTable -_0805739C: .4byte gScreen -_080573A0: .4byte 0x0400001C -_080573A4: .4byte 0xA2600001 - - thumb_func_start nullsub_494 -nullsub_494: @ 0x080573A8 - bx lr - .align 2, 0 - - thumb_func_start sub_080573AC -sub_080573AC: @ 0x080573AC - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r2, _08057434 @ =gRoomControls - ldr r0, [r2, #0x28] - ldr r1, _08057438 @ =0xFFFFE000 - adds r0, r0, r1 - str r0, [r2, #0x28] - ldr r0, [r2, #0x2c] - ldr r1, _0805743C @ =0xFFFFF000 - adds r0, r0, r1 - str r0, [r2, #0x2c] - ldr r5, _08057440 @ =gScreen - movs r1, #0xa - ldrsh r0, [r2, r1] - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #1 - ldrh r1, [r2, #0x2a] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - movs r1, #0xc - ldrsh r0, [r2, r1] - ldrh r1, [r2, #8] - subs r0, r0, r1 - asrs r0, r0, #1 - ldrh r2, [r2, #0x2e] - adds r0, r0, r2 - strh r0, [r5, #0x30] - ldr r2, _08057444 @ =gSineTable - ldr r4, _08057448 @ =gScreenTransition - ldr r1, [r4] - ldrb r0, [r4] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - asrs r0, r0, #5 - adds r0, #0x10 - bl sub_0805732C - adds r0, r6, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #0 - bne _08057430 - ldr r0, [r4] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _08057430 - adds r2, r6, #0 - adds r2, #0x24 - ldrb r0, [r2] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r2] - ldr r1, _0805744C @ =gUnk_08107C30 - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r5, #0 - adds r0, #0x68 - strh r1, [r0] -_08057430: - pop {r4, r5, r6, pc} - .align 2, 0 -_08057434: .4byte gRoomControls -_08057438: .4byte 0xFFFFE000 -_0805743C: .4byte 0xFFFFF000 -_08057440: .4byte gScreen -_08057444: .4byte gSineTable -_08057448: .4byte gScreenTransition -_0805744C: .4byte gUnk_08107C30 - - thumb_func_start sub_08057450 -sub_08057450: @ 0x08057450 - push {r4, r5, r6, lr} - adds r3, r0, #0 - ldr r4, _08057504 @ =gScreen - movs r0, #0x10 - strh r0, [r4, #0x2e] - ldr r0, _08057508 @ =gRoomControls - movs r2, #0xc - ldrsh r1, [r0, r2] - ldrh r0, [r0, #8] - subs r1, r1, r0 - asrs r1, r1, #2 - movs r2, #0x3f - adds r0, r1, #0 - ands r0, r2 - strh r0, [r4, #0x30] - cmp r1, #0 - bge _08057474 - adds r1, #0x3f -_08057474: - asrs r0, r1, #6 - lsls r0, r0, #9 - ldr r1, _0805750C @ =gBG3Buffer - adds r1, r0, r1 - str r1, [r4, #0x34] - ldr r0, [r3, #0x34] - cmp r0, r1 - beq _0805748A - str r1, [r3, #0x34] - movs r0, #1 - strh r0, [r4, #0x32] -_0805748A: - adds r0, r3, #0 - adds r0, #0x22 - ldrb r0, [r0] - ldr r5, _08057510 @ =gScreenTransition - cmp r0, #0 - bne _080574BE - ldr r0, [r5] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _080574BE - adds r2, r3, #0 - adds r2, #0x24 - ldrb r0, [r2] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r2] - ldr r1, _08057514 @ =gUnk_08107C30 - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] -_080574BE: - ldr r0, [r5] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08057502 - adds r0, r3, #0 - adds r0, #0x23 - ldrb r1, [r0] - lsls r1, r1, #5 - ldr r2, _08057518 @ =gUnk_085B4180 - adds r1, r1, r2 - movs r5, #0 - adds r6, r0, #0 - adds r4, r1, #0 - adds r4, #0xe -_080574DC: - adds r0, r5, #0 - adds r0, #0x87 - ldrh r1, [r4] - bl sub_0801D79C - adds r0, r5, #0 - adds r0, #0x8c - ldrh r1, [r4, #0xa] - bl sub_0801D79C - adds r4, #2 - adds r5, #1 - cmp r5, #3 - bls _080574DC - ldrb r0, [r6] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r6] -_08057502: - pop {r4, r5, r6, pc} - .align 2, 0 -_08057504: .4byte gScreen -_08057508: .4byte gRoomControls -_0805750C: .4byte gBG3Buffer -_08057510: .4byte gScreenTransition -_08057514: .4byte gUnk_08107C30 -_08057518: .4byte gUnk_085B4180 diff --git a/asm/manager10.s b/asm/manager10.s deleted file mode 100644 index f0d19df0..00000000 --- a/asm/manager10.s +++ /dev/null @@ -1,560 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08059570 -sub_08059570: @ 0x08059570 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _080595C8 - movs r6, #1 - strb r6, [r4, #0xc] - adds r0, #0x21 - strb r5, [r0] - adds r0, #2 - strb r5, [r0] - bl sub_0805986C - cmp r0, #0 - beq _080595A8 - adds r0, r4, #0 - adds r0, #0x20 - strb r6, [r0] - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #2 - strb r0, [r1] - ldr r0, _080595A4 @ =gUnk_0200B650 - str r5, [r0] - b _080595B8 - .align 2, 0 -_080595A4: .4byte gUnk_0200B650 -_080595A8: - adds r0, r4, #0 - adds r0, #0x20 - movs r1, #0x1f - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #5 - strb r0, [r1] -_080595B8: - ldr r0, _080595DC @ =gRoomVars - movs r1, #0xff - strb r1, [r0, #0x10] - ldr r1, _080595E0 @ =sub_080595E4 - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 -_080595C8: - adds r0, r4, #0 - bl sub_08059608 - adds r0, r4, #0 - bl sub_08059690 - adds r0, r4, #0 - bl sub_080596E0 - pop {r4, r5, r6, pc} - .align 2, 0 -_080595DC: .4byte gRoomVars -_080595E0: .4byte sub_080595E4 - - thumb_func_start sub_080595E4 -sub_080595E4: @ 0x080595E4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08059604 @ =gRoomVars - movs r0, #0xff - strb r0, [r1, #0x10] - adds r0, r4, #0 - bl sub_08059690 - adds r0, r4, #0 - bl sub_080596E0 - movs r0, #0 - bl sub_0805B4D0 - pop {r4, pc} - .align 2, 0 -_08059604: .4byte gRoomVars - - thumb_func_start sub_08059608 -sub_08059608: @ 0x08059608 - push {r4, lr} - adds r4, r0, #0 - adds r4, #0x23 - ldrb r0, [r4] - cmp r0, #0 - beq _08059638 - subs r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08059682 - ldr r0, _08059634 @ =gArea - movs r2, #0x86 - lsls r2, r2, #4 - adds r1, r0, r2 - adds r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - bl SoundReq - b _08059682 - .align 2, 0 -_08059634: .4byte gArea -_08059638: - bl sub_0805986C - cmp r0, #0 - beq _08059668 - ldr r0, _0805965C @ =gArea - ldr r2, _08059660 @ =0x00000864 - adds r1, r0, r2 - ldr r0, [r1] - cmp r0, #0x1e - beq _08059682 - movs r0, #0x1e - str r0, [r1] - movs r0, #0x78 - strb r0, [r4] - ldr r0, _08059664 @ =0x800D0000 - bl SoundReq - b _08059682 - .align 2, 0 -_0805965C: .4byte gArea -_08059660: .4byte 0x00000864 -_08059664: .4byte 0x800D0000 -_08059668: - ldr r0, _08059684 @ =gArea - ldr r2, _08059688 @ =0x00000864 - adds r1, r0, r2 - ldr r0, [r1] - cmp r0, #0x37 - beq _08059682 - movs r0, #0x37 - str r0, [r1] - movs r0, #0x78 - strb r0, [r4] - ldr r0, _0805968C @ =0x800D0000 - bl SoundReq -_08059682: - pop {r4, pc} - .align 2, 0 -_08059684: .4byte gArea -_08059688: .4byte 0x00000864 -_0805968C: .4byte 0x800D0000 - - thumb_func_start sub_08059690 -sub_08059690: @ 0x08059690 - push {r4, lr} - adds r4, r0, #0 - bl sub_08059844 - cmp r0, #0 - beq _080596BC - adds r4, #0x20 - ldrb r0, [r4] - cmp r0, #0 - beq _080596D8 - ldr r0, _080596B8 @ =gUnk_085A7320 - movs r2, #0xd0 - lsls r2, r2, #1 - adds r1, r0, r2 - ldrb r2, [r4] - bl sub_08059894 - ldrb r0, [r4] - subs r0, #1 - b _080596D6 - .align 2, 0 -_080596B8: .4byte gUnk_085A7320 -_080596BC: - adds r4, #0x20 - ldrb r0, [r4] - cmp r0, #0x1f - bhi _080596D8 - ldr r0, _080596DC @ =gUnk_085A7320 - movs r2, #0xd0 - lsls r2, r2, #1 - adds r1, r0, r2 - ldrb r2, [r4] - bl sub_08059894 - ldrb r0, [r4] - adds r0, #1 -_080596D6: - strb r0, [r4] -_080596D8: - pop {r4, pc} - .align 2, 0 -_080596DC: .4byte gUnk_085A7320 - - thumb_func_start sub_080596E0 -sub_080596E0: @ 0x080596E0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, _08059730 @ =gScreenTransition - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _080596FC - ldr r0, _08059734 @ =gScreen - ldrh r1, [r0, #0x16] - adds r1, #8 - movs r2, #0x1f - ands r1, r2 - strh r1, [r0, #0x16] -_080596FC: - bl sub_0805986C - cmp r0, #0 - beq _08059740 - adds r0, r4, #0 - adds r0, #0x21 - ldrb r1, [r0] - adds r5, r0, #0 - adds r2, r4, #0 - adds r2, #0x22 - cmp r1, #0 - bne _08059764 - ldrb r0, [r2] - cmp r0, #2 - beq _08059764 - movs r0, #1 - strb r0, [r5] - movs r0, #3 - strb r0, [r2] - ldr r0, _08059738 @ =gUnk_08108390 - ldrb r0, [r0, #3] - strb r0, [r4, #0xe] - ldr r0, _0805973C @ =gUnk_0200B650 - str r1, [r0] - b _08059764 - .align 2, 0 -_08059730: .4byte gScreenTransition -_08059734: .4byte gScreen -_08059738: .4byte gUnk_08108390 -_0805973C: .4byte gUnk_0200B650 -_08059740: - adds r0, r4, #0 - adds r0, #0x21 - ldrb r1, [r0] - adds r5, r0, #0 - adds r2, r4, #0 - adds r2, #0x22 - cmp r1, #0 - bne _08059764 - ldrb r0, [r2] - cmp r0, #5 - beq _08059764 - movs r0, #2 - strb r0, [r5] - ldr r1, _08059774 @ =gUnk_08108390 - ldrb r0, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] -_08059764: - adds r6, r5, #0 - ldrb r0, [r6] - cmp r0, #1 - beq _08059778 - cmp r0, #2 - beq _080597A8 - b _080597D0 - .align 2, 0 -_08059774: .4byte gUnk_08108390 -_08059778: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _080597D0 - ldr r1, _080597A4 @ =gUnk_08108390 - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - ands r0, r3 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] - ldrb r0, [r2] - cmp r0, #2 - bne _080597D0 - strb r5, [r6] - b _080597D0 - .align 2, 0 -_080597A4: .4byte gUnk_08108390 -_080597A8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _080597D0 - ldr r1, _080597EC @ =gUnk_08108390 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ands r0, r3 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] - ldrb r0, [r2] - cmp r0, #5 - bne _080597D0 - strb r6, [r5] -_080597D0: - ldr r3, _080597F0 @ =gRoomVars - ldrb r1, [r2] - ldrb r0, [r3, #0x10] - cmp r0, r1 - beq _08059838 - strb r1, [r3, #0x10] - ldrb r0, [r2] - cmp r0, #4 - beq _08059800 - cmp r0, #4 - ble _080597F4 - cmp r0, #5 - beq _08059824 - b _08059838 - .align 2, 0 -_080597EC: .4byte gUnk_08108390 -_080597F0: .4byte gRoomVars -_080597F4: - cmp r0, #0 - blt _08059838 - adds r0, #0x2b - bl LoadGfxGroup - b _08059838 -_08059800: - ldr r4, _0805981C @ =gBG3Buffer - movs r5, #0x80 - lsls r5, r5, #4 - adds r0, r4, #0 - adds r1, r5, #0 - bl MemClear - ldr r1, _08059820 @ =0x0600E800 - adds r0, r4, #0 - adds r2, r5, #0 - bl LoadResourceAsync - b _08059838 - .align 2, 0 -_0805981C: .4byte gBG3Buffer -_08059820: .4byte 0x0600E800 -_08059824: - ldr r0, _0805983C @ =gUnk_0200B650 - ldr r1, _08059840 @ =gBG1Settings - str r1, [r0] - subs r1, #0x14 - ldrh r2, [r1] - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - orrs r0, r2 - strh r0, [r1] -_08059838: - pop {r4, r5, r6, pc} - .align 2, 0 -_0805983C: .4byte gUnk_0200B650 -_08059840: .4byte gBG1Settings - - thumb_func_start sub_08059844 -sub_08059844: @ 0x08059844 - push {lr} - movs r3, #0 - ldr r0, _08059864 @ =gPlayerEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r2, _08059868 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - ldrh r0, [r2, #0x1e] - lsrs r0, r0, #1 - cmp r1, r0 - ble _0805985E - movs r3, #1 -_0805985E: - adds r0, r3, #0 - pop {pc} - .align 2, 0 -_08059864: .4byte gPlayerEntity -_08059868: .4byte gRoomControls - - thumb_func_start sub_0805986C -sub_0805986C: @ 0x0805986C - push {lr} - movs r2, #0 - ldr r0, _0805988C @ =gPlayerEntity - movs r3, #0x2e - ldrsh r1, [r0, r3] - ldr r0, _08059890 @ =gRoomControls - ldrh r0, [r0, #6] - subs r1, r1, r0 - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - ble _08059886 - movs r2, #1 -_08059886: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_0805988C: .4byte gPlayerEntity -_08059890: .4byte gRoomControls - - thumb_func_start sub_08059894 -sub_08059894: @ 0x08059894 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r4, r1, #0 - ldr r0, _080598E8 @ =gUnk_020176E0 - mov sb, r0 - movs r6, #0 - lsls r2, r2, #0x18 - mov r8, r2 -_080598AA: - adds r0, r5, #0 - adds r1, r4, #0 - mov r2, sb - mov r7, r8 - lsrs r3, r7, #0x18 - bl sub_08059960 - adds r5, #0x20 - adds r4, #0x20 - movs r0, #0x20 - add sb, r0 - adds r6, #1 - cmp r6, #0xc - bls _080598AA - ldr r0, _080598EC @ =gUnk_02017700 - movs r2, #0x90 - lsls r2, r2, #2 - adds r1, r0, r2 - movs r2, #0x20 - bl MemCopy - ldr r2, _080598F0 @ =gUsedPalettes - ldr r0, [r2] - ldr r1, _080598F4 @ =0x00207FFC - orrs r0, r1 - str r0, [r2] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080598E8: .4byte gUnk_020176E0 -_080598EC: .4byte gUnk_02017700 -_080598F0: .4byte gUsedPalettes -_080598F4: .4byte 0x00207FFC - - thumb_func_start sub_080598F8 -sub_080598F8: @ 0x080598F8 - push {r4, r5, r6, r7, lr} - movs r4, #0x1f - adds r3, r0, #0 - ands r3, r4 - lsls r6, r3, #8 - adds r3, r6, #0 - muls r3, r2, r3 - lsrs r6, r3, #5 - adds r3, r1, #0 - ands r3, r4 - lsls r3, r3, #8 - movs r4, #0x20 - subs r4, r4, r2 - muls r3, r4, r3 - lsrs r3, r3, #5 - adds r3, r6, r3 - lsrs r6, r3, #8 - movs r5, #0xf8 - lsls r5, r5, #2 - adds r3, r0, #0 - ands r3, r5 - lsls r7, r3, #3 - adds r3, r7, #0 - muls r3, r2, r3 - lsrs r7, r3, #5 - adds r3, r1, #0 - ands r3, r5 - lsls r3, r3, #3 - muls r3, r4, r3 - lsrs r3, r3, #5 - adds r3, r7, r3 - lsrs r7, r3, #8 - movs r3, #0xf8 - lsls r3, r3, #7 - ands r0, r3 - lsrs r5, r0, #2 - adds r0, r5, #0 - muls r0, r2, r0 - lsrs r5, r0, #5 - ands r1, r3 - lsrs r0, r1, #2 - muls r0, r4, r0 - lsrs r0, r0, #5 - adds r0, r5, r0 - lsrs r5, r0, #8 - lsls r0, r7, #5 - orrs r6, r0 - lsls r0, r5, #0xa - orrs r6, r0 - adds r0, r6, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08059960 -sub_08059960: @ 0x08059960 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r5, r1, #0 - adds r4, r2, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - mov r8, r3 - movs r7, #0 -_08059974: - ldrh r0, [r6] - adds r6, #2 - ldrh r1, [r5] - adds r5, #2 - mov r2, r8 - bl sub_080598F8 - strh r0, [r4] - adds r4, #2 - adds r7, #1 - cmp r7, #0xf - bls _08059974 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08059994 -sub_08059994: @ 0x08059994 - push {lr} - bl sub_0805986C - cmp r0, #0 - beq _080599AE - movs r0, #0x5b - bl LoadPaletteGroup - ldr r0, _080599B0 @ =gArea - ldr r1, _080599B4 @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x1e - str r1, [r0] -_080599AE: - pop {pc} - .align 2, 0 -_080599B0: .4byte gArea -_080599B4: .4byte 0x00000864 diff --git a/asm/manager12.s b/asm/manager12.s deleted file mode 100644 index 5ead9b73..00000000 --- a/asm/manager12.s +++ /dev/null @@ -1,462 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_080599EC -sub_080599EC: @ 0x080599EC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08059A20 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #0xff - strb r0, [r1] - subs r1, #1 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - ldr r1, _08059A28 @ =sub_08059A2C - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 -_08059A20: - adds r0, r4, #0 - bl sub_08059A58 - pop {r4, pc} - .align 2, 0 -_08059A28: .4byte sub_08059A2C - - thumb_func_start sub_08059A2C -sub_08059A2C: @ 0x08059A2C - push {lr} - adds r2, r0, #0 - ldr r1, _08059A54 @ =gRoomVars - movs r0, #0xff - strb r0, [r1, #0x12] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1, #0x11] - strb r0, [r1, #0x10] - adds r1, r2, #0 - adds r1, #0x22 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - adds r0, r2, #0 - bl sub_08059A58 - pop {pc} - .align 2, 0 -_08059A54: .4byte gRoomVars - - thumb_func_start sub_08059A58 -sub_08059A58: @ 0x08059A58 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _08059AC4 @ =gRoomControls - ldrb r0, [r0, #4] - cmp r0, #0x15 - beq _08059AD4 - adds r4, r5, #0 - adds r4, #0x20 - ldr r3, _08059AC8 @ =gUnk_08108398 - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_08059C8C - cmp r0, #0 - beq _08059A80 - ldrb r1, [r4] - movs r0, #0 - bl sub_08059CC0 -_08059A80: - adds r4, r5, #0 - adds r4, #0x21 - ldr r3, _08059ACC @ =gUnk_081083AE - adds r0, r5, #0 - movs r1, #1 - adds r2, r4, #0 - bl sub_08059C8C - cmp r0, #0 - beq _08059AA6 - ldrb r1, [r4] - movs r0, #1 - bl sub_08059CC0 - ldrb r0, [r4] - cmp r0, #2 - bne _08059AA6 - bl sub_08059B18 -_08059AA6: - adds r4, r5, #0 - adds r4, #0x22 - ldr r3, _08059AD0 @ =gUnk_081083C4 - adds r0, r5, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_08059C8C - cmp r0, #0 - beq _08059B0C - ldrb r1, [r4] - movs r0, #2 - bl sub_08059CC0 - b _08059B0C - .align 2, 0 -_08059AC4: .4byte gRoomControls -_08059AC8: .4byte gUnk_08108398 -_08059ACC: .4byte gUnk_081083AE -_08059AD0: .4byte gUnk_081083C4 -_08059AD4: - adds r4, r5, #0 - adds r4, #0x20 - ldr r3, _08059B10 @ =gUnk_081083DA - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_08059C8C - cmp r0, #0 - beq _08059AF0 - ldrb r1, [r4] - movs r0, #0 - bl sub_08059CC0 -_08059AF0: - adds r4, r5, #0 - adds r4, #0x22 - ldr r3, _08059B14 @ =gUnk_081083F2 - adds r0, r5, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_08059C8C - cmp r0, #0 - beq _08059B0C - ldrb r1, [r4] - movs r0, #2 - bl sub_08059CC0 -_08059B0C: - pop {r4, r5, pc} - .align 2, 0 -_08059B10: .4byte gUnk_081083DA -_08059B14: .4byte gUnk_081083F2 - - thumb_func_start sub_08059B18 -sub_08059B18: @ 0x08059B18 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - movs r0, #0x18 - bl CheckGlobalFlag - cmp r0, #0 - beq _08059BEC - movs r6, #0 - movs r0, #0x3f - mov sb, r0 - movs r2, #0xc4 - lsls r2, r2, #1 - mov r8, r2 -_08059B38: - movs r5, #0 - lsls r1, r6, #4 - mov r2, r8 - lsrs r0, r2, #4 - mov r2, sb - ands r0, r2 - lsls r3, r0, #6 - movs r7, #0x28 - ldr r0, _08059BD8 @ =0x000004AB - adds r4, r1, r0 -_08059B4C: - lsrs r1, r7, #4 - mov r2, sb - ands r1, r2 - orrs r1, r3 - adds r0, r4, #0 - movs r2, #1 - str r3, [sp] - bl sub_0807B9B8 - adds r7, #0x10 - adds r4, #1 - adds r5, #1 - ldr r3, [sp] - cmp r5, #3 - bls _08059B4C - movs r0, #0x10 - add r8, r0 - adds r6, #1 - cmp r6, #3 - bls _08059B38 - movs r6, #0 - movs r3, #0x3f -_08059B78: - movs r5, #0 - lsls r1, r6, #4 - adds r6, #1 - mov r8, r6 - movs r2, #0xc4 - lsls r2, r2, #1 - adds r0, r1, r2 - lsrs r0, r0, #4 - ands r0, r3 - lsls r7, r0, #6 - movs r6, #0x28 - movs r0, #0x88 - lsls r0, r0, #3 - adds r4, r1, r0 -_08059B94: - lsrs r1, r6, #4 - ands r1, r3 - orrs r1, r7 - adds r0, r4, #0 - movs r2, #2 - str r3, [sp] - bl sub_0807B9B8 - adds r6, #0x10 - adds r4, #1 - adds r5, #1 - ldr r3, [sp] - cmp r5, #3 - bls _08059B94 - mov r6, r8 - cmp r6, #2 - bls _08059B78 - ldr r1, _08059BDC @ =0x000005C2 - movs r0, #0xd6 - movs r2, #2 - bl sub_0807B9B8 - ldr r1, _08059BE0 @ =0x000005C3 - movs r0, #0xd7 - movs r2, #2 - bl sub_0807B9B8 - ldr r0, _08059BE4 @ =gUnk_086E8460 - ldr r1, _08059BE8 @ =0x06001800 - movs r2, #0x80 - lsls r2, r2, #4 - bl LoadResourceAsync - b _08059C5E - .align 2, 0 -_08059BD8: .4byte 0x000004AB -_08059BDC: .4byte 0x000005C2 -_08059BE0: .4byte 0x000005C3 -_08059BE4: .4byte gUnk_086E8460 -_08059BE8: .4byte 0x06001800 -_08059BEC: - movs r0, #0x19 - bl CheckGlobalFlag - cmp r0, #0 - beq _08059C5E - movs r6, #0 - movs r3, #0x3f -_08059BFA: - movs r5, #0 - lsls r1, r6, #4 - adds r6, #1 - mov r8, r6 - movs r2, #0xc4 - lsls r2, r2, #1 - adds r0, r1, r2 - lsrs r0, r0, #4 - ands r0, r3 - lsls r7, r0, #6 - movs r6, #0x28 - ldr r0, _08059C68 @ =0x000004A6 - adds r4, r1, r0 -_08059C14: - lsrs r1, r6, #4 - ands r1, r3 - orrs r1, r7 - adds r0, r4, #0 - movs r2, #1 - str r3, [sp] - bl sub_0807B9B8 - adds r6, #0x10 - adds r4, #1 - adds r5, #1 - ldr r3, [sp] - cmp r5, #3 - bls _08059C14 - mov r6, r8 - cmp r6, #4 - bls _08059BFA - ldr r0, _08059C6C @ =0x00000444 - ldr r1, _08059C70 @ =0x00000602 - movs r2, #2 - bl sub_0807B9B8 - ldr r0, _08059C74 @ =0x00000445 - ldr r1, _08059C78 @ =0x00000605 - movs r2, #2 - bl sub_0807B9B8 - ldr r0, _08059C7C @ =0x00000454 - ldr r1, _08059C80 @ =0x00000642 - movs r2, #2 - bl sub_0807B9B8 - ldr r0, _08059C84 @ =0x00000455 - ldr r1, _08059C88 @ =0x00000645 - movs r2, #2 - bl sub_0807B9B8 -_08059C5E: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08059C68: .4byte 0x000004A6 -_08059C6C: .4byte 0x00000444 -_08059C70: .4byte 0x00000602 -_08059C74: .4byte 0x00000445 -_08059C78: .4byte 0x00000605 -_08059C7C: .4byte 0x00000454 -_08059C80: .4byte 0x00000642 -_08059C84: .4byte 0x00000455 -_08059C88: .4byte 0x00000645 - - thumb_func_start sub_08059C8C -sub_08059C8C: @ 0x08059C8C - push {r4, r5, lr} - adds r5, r1, #0 - adds r4, r2, #0 - adds r0, r3, #0 - bl sub_08056300 - adds r2, r0, #0 - strb r2, [r4] - lsls r0, r2, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0xff - beq _08059CBC - ldr r0, _08059CB8 @ =gRoomVars - adds r0, #0x10 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, r3 - beq _08059CBC - strb r2, [r1] - movs r0, #1 - b _08059CBE - .align 2, 0 -_08059CB8: .4byte gRoomVars -_08059CBC: - movs r0, #0 -_08059CBE: - pop {r4, r5, pc} - - thumb_func_start sub_08059CC0 -sub_08059CC0: @ 0x08059CC0 - push {r4, r5, r6, lr} - adds r2, r1, #0 - ldr r1, _08059CDC @ =gRoomVars - adds r1, #0x10 - adds r0, r0, r1 - strb r2, [r0] - ldr r0, _08059CE0 @ =gRoomControls - ldrb r0, [r0, #4] - cmp r0, #0x15 - beq _08059CE8 - lsls r1, r2, #4 - ldr r0, _08059CE4 @ =gUnk_08108408 - b _08059CEC - .align 2, 0 -_08059CDC: .4byte gRoomVars -_08059CE0: .4byte gRoomControls -_08059CE4: .4byte gUnk_08108408 -_08059CE8: - lsls r1, r2, #4 - ldr r0, _08059D10 @ =gUnk_08108468 -_08059CEC: - adds r6, r1, r0 - ldr r0, [r6] - ldr r4, _08059D14 @ =gGlobalGfxAndPalettes - adds r0, r0, r4 - ldr r1, [r6, #4] - movs r5, #0x80 - lsls r5, r5, #5 - adds r2, r5, #0 - bl LoadResourceAsync - ldr r0, [r6, #8] - adds r0, r0, r4 - ldr r1, [r6, #0xc] - adds r2, r5, #0 - bl LoadResourceAsync - pop {r4, r5, r6, pc} - .align 2, 0 -_08059D10: .4byte gUnk_08108468 -_08059D14: .4byte gGlobalGfxAndPalettes - - thumb_func_start TryLoadPrologueHyruleTown -TryLoadPrologueHyruleTown: @ 0x08059D18 - push {r4, lr} - ldr r0, _08059D68 @ =gRoomControls - ldrb r0, [r0, #4] - cmp r0, #0x15 - beq _08059D78 - ldr r0, _08059D6C @ =gUnk_08108398 - bl sub_08056300 - adds r4, r0, #0 - cmp r4, #0xff - beq _08059D36 - movs r0, #0 - adds r1, r4, #0 - bl sub_08059CC0 -_08059D36: - ldr r0, _08059D70 @ =gUnk_081083AE - bl sub_08056300 - adds r4, r0, #0 - cmp r4, #0xff - beq _08059D52 - movs r0, #1 - adds r1, r4, #0 - bl sub_08059CC0 - cmp r4, #2 - bne _08059D52 - bl sub_08059B18 -_08059D52: - ldr r0, _08059D74 @ =gUnk_081083C4 - bl sub_08056300 - adds r4, r0, #0 - cmp r4, #0xff - beq _08059DA0 - movs r0, #2 - adds r1, r4, #0 - bl sub_08059CC0 - b _08059DA0 - .align 2, 0 -_08059D68: .4byte gRoomControls -_08059D6C: .4byte gUnk_08108398 -_08059D70: .4byte gUnk_081083AE -_08059D74: .4byte gUnk_081083C4 -_08059D78: - ldr r0, _08059DA4 @ =gUnk_081083DA - bl sub_08056300 - adds r4, r0, #0 - cmp r4, #0xff - beq _08059D8C - movs r0, #0 - adds r1, r4, #0 - bl sub_08059CC0 -_08059D8C: - ldr r0, _08059DA8 @ =gUnk_081083F2 - bl sub_08056300 - adds r4, r0, #0 - cmp r4, #0xff - beq _08059DA0 - movs r0, #2 - adds r1, r4, #0 - bl sub_08059CC0 -_08059DA0: - pop {r4, pc} - .align 2, 0 -_08059DA4: .4byte gUnk_081083DA -_08059DA8: .4byte gUnk_081083F2 diff --git a/asm/manager13.s b/asm/manager13.s deleted file mode 100644 index 4b2d0fd6..00000000 --- a/asm/manager13.s +++ /dev/null @@ -1,97 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08059DAC -sub_08059DAC: @ 0x08059DAC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08059DBE - movs r0, #1 - strb r0, [r5, #0xc] -_08059DBE: - ldr r1, _08059E4C @ =gRoomControls - ldrb r0, [r1, #4] - ldr r4, _08059E50 @ =gUnk_081084C8 - cmp r0, #0x15 - bne _08059DCA - ldr r4, _08059E54 @ =gUnk_08108530 -_08059DCA: - movs r7, #0 - ldrh r0, [r4] - cmp r0, #0 - beq _08059E46 - mov r8, r1 -_08059DD4: - movs r6, #1 - lsls r6, r7 - ldr r0, [r5, #0x20] - ands r0, r6 - cmp r0, #0 - bne _08059E38 - ldrh r0, [r4] - ldrh r1, [r4, #2] - movs r2, #0x10 - movs r3, #0x10 - bl CheckRectOnScreen - cmp r0, #0 - beq _08059E38 - ldrb r1, [r4, #4] - movs r0, #0x1c - adds r2, r7, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08059E38 - ldrb r0, [r4, #5] - strb r0, [r2, #0x1e] - ldrh r0, [r4] - mov r1, r8 - ldrh r1, [r1, #6] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - ldrh r0, [r4, #2] - mov r3, r8 - ldrh r3, [r3, #8] - adds r0, r0, r3 - strh r0, [r2, #0x32] - str r5, [r2, #0x50] - ldrh r1, [r4] - adds r0, r2, #0 - adds r0, #0x80 - strh r1, [r0] - ldrh r0, [r4, #2] - adds r1, r2, #0 - adds r1, #0x82 - strh r0, [r1] - ldrb r1, [r4, #6] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r0, [r5, #0x20] - orrs r0, r6 - str r0, [r5, #0x20] -_08059E38: - adds r4, #8 - adds r7, #1 - ldrh r0, [r4] - cmp r0, #0 - beq _08059E46 - cmp r7, #0x1f - bls _08059DD4 -_08059E46: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08059E4C: .4byte gRoomControls -_08059E50: .4byte gUnk_081084C8 -_08059E54: .4byte gUnk_08108530 diff --git a/asm/manager14.s b/asm/manager14.s deleted file mode 100644 index cae54bf4..00000000 --- a/asm/manager14.s +++ /dev/null @@ -1,519 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08059E58 -sub_08059E58: @ 0x08059E58 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - adds r0, #1 - strh r0, [r4, #0x20] - ldr r1, _08059E7C @ =gUnk_081085A4 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0805A1D8 - pop {r4, pc} - .align 2, 0 -_08059E7C: .4byte gUnk_081085A4 - - thumb_func_start sub_08059E80 -sub_08059E80: @ 0x08059E80 - push {r4, r5, lr} - adds r4, r0, #0 - bl EntityHasDuplicateID - cmp r0, #0 - beq _08059E90 - bl DeleteThisEntity -_08059E90: - adds r1, r4, #0 - adds r1, #0x22 - movs r2, #0 - movs r0, #1 - strb r0, [r1] - movs r0, #0 - strh r2, [r4, #0x20] - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0xf] - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r3, _08059EE4 @ =gScreen - ldr r0, _08059EE8 @ =0x00001E04 - strh r0, [r3, #0x2c] - ldrh r0, [r3] - movs r5, #0x80 - lsls r5, r5, #4 - adds r1, r5, #0 - orrs r0, r1 - strh r0, [r3] - adds r1, r3, #0 - adds r1, #0x66 - ldr r0, _08059EEC @ =0x00003E48 - strh r0, [r1] - adds r1, #2 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - movs r0, #0x80 - strh r0, [r3, #0x2e] - strh r2, [r3, #0x30] - ldr r1, _08059EF0 @ =nullsub_495 - ldr r2, _08059EF4 @ =sub_0805A25C - adds r0, r4, #0 - bl sub_08052D74 - pop {r4, r5, pc} - .align 2, 0 -_08059EE4: .4byte gScreen -_08059EE8: .4byte 0x00001E04 -_08059EEC: .4byte 0x00003E48 -_08059EF0: .4byte nullsub_495 -_08059EF4: .4byte sub_0805A25C - - thumb_func_start sub_08059EF8 -sub_08059EF8: @ 0x08059EF8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r6, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08059F90 - movs r0, #4 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08059F9C - cmp r0, #0 - beq _08059F64 - ldr r2, _08059F50 @ =gUnk_08108588 - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - ldr r0, _08059F54 @ =0x00000808 - cmp r1, r0 - beq _08059F5C - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x24 - strb r5, [r0] - ldr r1, _08059F58 @ =gScreen - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - ands r0, r6 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, #0x68 - strh r0, [r1] - b _08059F90 - .align 2, 0 -_08059F50: .4byte gUnk_08108588 -_08059F54: .4byte 0x00000808 -_08059F58: .4byte gScreen -_08059F5C: - adds r0, r4, #0 - adds r0, #0x22 - strb r5, [r0] - b _08059F90 -_08059F64: - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #1 - strb r0, [r1] - ldr r3, _08059F94 @ =gUnk_08108588 - ldrb r2, [r4, #0xe] - lsls r0, r2, #1 - adds r0, r0, r3 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #5 - cmp r1, r0 - beq _08059F90 - ldr r0, _08059F98 @ =gScreen - subs r1, r2, #1 - strb r1, [r4, #0xe] - ands r1, r6 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r1, [r1] - adds r0, #0x68 - strh r1, [r0] -_08059F90: - pop {r4, r5, r6, pc} - .align 2, 0 -_08059F94: .4byte gUnk_08108588 -_08059F98: .4byte gScreen - - thumb_func_start sub_08059F9C -sub_08059F9C: @ 0x08059F9C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08059FB4 @ =gRoomControls - ldrb r0, [r0, #5] - cmp r0, #0x17 - bhi _0805A03A - lsls r0, r0, #2 - ldr r1, _08059FB8 @ =_08059FBC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08059FB4: .4byte gRoomControls -_08059FB8: .4byte _08059FBC -_08059FBC: @ jump table - .4byte _0805A036 @ case 0 - .4byte _0805A01C @ case 1 - .4byte _0805A03A @ case 2 - .4byte _0805A03A @ case 3 - .4byte _0805A03A @ case 4 - .4byte _0805A03A @ case 5 - .4byte _0805A03A @ case 6 - .4byte _0805A02A @ case 7 - .4byte _0805A036 @ case 8 - .4byte _0805A036 @ case 9 - .4byte _0805A03A @ case 10 - .4byte _0805A03A @ case 11 - .4byte _0805A03A @ case 12 - .4byte _0805A03A @ case 13 - .4byte _0805A03A @ case 14 - .4byte _0805A03A @ case 15 - .4byte _0805A03A @ case 16 - .4byte _0805A03A @ case 17 - .4byte _0805A03A @ case 18 - .4byte _0805A03A @ case 19 - .4byte _0805A03A @ case 20 - .4byte _0805A03A @ case 21 - .4byte _0805A03A @ case 22 - .4byte _0805A036 @ case 23 -_0805A01C: - movs r0, #0x16 - bl CheckLocalFlag - cmp r0, #0 - beq _0805A02A - movs r0, #0 - b _0805A03C -_0805A02A: - adds r0, r4, #0 - bl sub_0805A25C - bl DeleteThisEntity - b _0805A03C -_0805A036: - movs r0, #1 - b _0805A03C -_0805A03A: - movs r0, #0 -_0805A03C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805A040 -sub_0805A040: @ 0x0805A040 - push {lr} - bl sub_0805A098 - pop {pc} - - thumb_func_start sub_0805A048 -sub_0805A048: @ 0x0805A048 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805A086 - movs r0, #4 - strb r0, [r4, #0xf] - ldr r2, _0805A090 @ =gScreen - ldr r3, _0805A094 @ =gUnk_08108588 - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r3 - ldrh r0, [r0] - adds r2, #0x68 - strh r0, [r2] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #9 - bne _0805A086 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x22 - movs r0, #0 - strb r0, [r1] -_0805A086: - adds r0, r4, #0 - bl sub_0805A098 - pop {r4, pc} - .align 2, 0 -_0805A090: .4byte gScreen -_0805A094: .4byte gUnk_08108588 - - thumb_func_start sub_0805A098 -sub_0805A098: @ 0x0805A098 - push {lr} - adds r1, r0, #0 - ldr r0, _0805A0B0 @ =gRoomControls - ldrb r0, [r0, #5] - cmp r0, #9 - bgt _0805A0B4 - cmp r0, #8 - bge _0805A0BC - cmp r0, #0 - beq _0805A0BC - b _0805A0B8 - .align 2, 0 -_0805A0B0: .4byte gRoomControls -_0805A0B4: - cmp r0, #0x17 - beq _0805A0BC -_0805A0B8: - movs r0, #3 - strb r0, [r1, #0xc] -_0805A0BC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805A0C0 -sub_0805A0C0: @ 0x0805A0C0 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xf] - subs r0, #1 - strb r0, [r3, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805A106 - movs r0, #4 - strb r0, [r3, #0xf] - ldr r4, _0805A108 @ =gScreen - ldr r2, _0805A10C @ =gUnk_08108588 - ldrb r0, [r3, #0xe] - adds r1, r0, #0 - adds r1, #0xff - strb r1, [r3, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r0, r0, r2 - ldrh r2, [r0] - adds r0, r4, #0 - adds r0, #0x68 - strh r2, [r0] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0xff - bne _0805A106 - ldrh r1, [r4] - ldr r0, _0805A110 @ =0x0000F7FF - ands r0, r1 - strh r0, [r4] - bl sub_08056250 - bl DeleteThisEntity -_0805A106: - pop {r4, pc} - .align 2, 0 -_0805A108: .4byte gScreen -_0805A10C: .4byte gUnk_08108588 -_0805A110: .4byte 0x0000F7FF - - thumb_func_start sub_0805A114 -sub_0805A114: @ 0x0805A114 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r6, r1, #0 - ldr r2, _0805A154 @ =gUnk_03003DE4 - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _0805A158 @ =gUnk_02017AA0 - adds r4, r0, r1 - movs r5, #0 - mov r8, r2 - mov sb, r1 - ldr r2, _0805A15C @ =gScreen - ldr r0, _0805A160 @ =gSineTable - mov ip, r0 -_0805A13A: - movs r1, #0x30 - ldrsh r0, [r2, r1] - adds r3, r5, r0 - asrs r1, r3, #3 - movs r0, #7 - ands r1, r0 - cmp r1, #7 - bhi _0805A190 - lsls r0, r1, #2 - ldr r1, _0805A164 @ =_0805A168 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805A154: .4byte gUnk_03003DE4 -_0805A158: .4byte gUnk_02017AA0 -_0805A15C: .4byte gScreen -_0805A160: .4byte gSineTable -_0805A164: .4byte _0805A168 -_0805A168: @ jump table - .4byte _0805A190 @ case 0 - .4byte _0805A18C @ case 1 - .4byte _0805A190 @ case 2 - .4byte _0805A190 @ case 3 - .4byte _0805A188 @ case 4 - .4byte _0805A190 @ case 5 - .4byte _0805A190 @ case 6 - .4byte _0805A18C @ case 7 -_0805A188: - subs r3, #8 - b _0805A190 -_0805A18C: - movs r0, #0xf0 - b _0805A192 -_0805A190: - movs r0, #0xf8 -_0805A192: - ands r3, r0 - adds r0, r6, r3 - movs r1, #0xff - ands r0, r1 - lsls r0, r0, #1 - add r0, ip - movs r1, #0 - ldrsh r0, [r0, r1] - muls r0, r7, r0 - lsrs r0, r0, #8 - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r4] - adds r4, #2 - adds r5, #1 - cmp r5, #0x9f - ble _0805A13A - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - add r0, sb - ldr r1, _0805A1D0 @ =0x0400001C - ldr r2, _0805A1D4 @ =0xA2600001 - bl sub_0805622C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805A1D0: .4byte 0x0400001C -_0805A1D4: .4byte 0xA2600001 - - thumb_func_start sub_0805A1D8 -sub_0805A1D8: @ 0x0805A1D8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _0805A244 @ =gRoomControls - ldr r0, [r1, #0x28] - ldr r2, _0805A248 @ =0xFFFFF000 - adds r0, r0, r2 - str r0, [r1, #0x28] - ldr r5, _0805A24C @ =gScreen - ldrh r0, [r1, #0x2a] - strh r0, [r5, #0x2e] - ldr r0, [r1, #0x2c] - adds r0, r0, r2 - str r0, [r1, #0x2c] - ldrh r0, [r1, #0x2e] - strh r0, [r5, #0x30] - ldrh r1, [r5] - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0805A240 - ldrh r1, [r4, #0x20] - lsrs r1, r1, #1 - movs r0, #6 - bl sub_0805A114 - adds r0, r4, #0 - adds r0, #0x22 - ldrb r0, [r0] - cmp r0, #0 - bne _0805A240 - ldr r0, _0805A250 @ =gMain - ldrh r1, [r0, #0xc] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0805A240 - adds r2, r4, #0 - adds r2, #0x24 - ldrb r0, [r2] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r2] - ldr r1, _0805A254 @ =gUnk_0810859A - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r5, #0 - adds r0, #0x68 - strh r1, [r0] -_0805A240: - pop {r4, r5, pc} - .align 2, 0 -_0805A244: .4byte gRoomControls -_0805A248: .4byte 0xFFFFF000 -_0805A24C: .4byte gScreen -_0805A250: .4byte gMain -_0805A254: .4byte gUnk_0810859A - - thumb_func_start nullsub_495 -nullsub_495: @ 0x0805A258 - bx lr - .align 2, 0 - - thumb_func_start sub_0805A25C -sub_0805A25C: @ 0x0805A25C - push {lr} - ldr r1, _0805A278 @ =gScreen - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0 - strh r0, [r2] - ldrh r2, [r1] - ldr r0, _0805A27C @ =0x0000F7FF - ands r0, r2 - strh r0, [r1] - bl sub_08056250 - pop {pc} - .align 2, 0 -_0805A278: .4byte gScreen -_0805A27C: .4byte 0x0000F7FF diff --git a/asm/manager17.s b/asm/manager17.s deleted file mode 100644 index 2117e76b..00000000 --- a/asm/manager17.s +++ /dev/null @@ -1,82 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805AD48 -sub_0805AD48: @ 0x0805AD48 - push {lr} - ldr r2, _0805AD5C @ =gUnk_08108654 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805AD5C: .4byte gUnk_08108654 - - thumb_func_start sub_0805AD60 -sub_0805AD60: @ 0x0805AD60 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3c] - bl CheckFlags - cmp r0, #0 - beq _0805AD76 - bl DeleteThisEntity -_0805AD76: - adds r0, r4, #0 - bl sub_0805AD80 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805AD80 -sub_0805AD80: @ 0x0805AD80 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805ADD0 - ldrb r1, [r4, #0xa] - ldrb r2, [r4, #0xb] - movs r0, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805ADCC - adds r0, r4, #0 - adds r0, #0x35 - ldrb r0, [r0] - strb r0, [r2, #0xe] - adds r0, r4, #0 - adds r0, #0x36 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r1, _0805ADD4 @ =gRoomControls - ldrh r0, [r1, #6] - ldrh r3, [r4, #0x38] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #8] - ldrh r1, [r4, #0x3a] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldrh r1, [r4, #0x3c] - adds r0, r2, #0 - adds r0, #0x86 - strh r1, [r0] -_0805ADCC: - bl DeleteThisEntity -_0805ADD0: - pop {r4, pc} - .align 2, 0 -_0805ADD4: .4byte gRoomControls diff --git a/asm/manager18.s b/asm/manager18.s deleted file mode 100644 index 23d1b9b6..00000000 --- a/asm/manager18.s +++ /dev/null @@ -1,195 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805ADD8 -sub_0805ADD8: @ 0x0805ADD8 - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - bne _0805AE04 - ldr r0, _0805ADF8 @ =gArea - ldr r1, _0805ADFC @ =0x0000088C - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0805AE00 @ =sub_0805AEDC - cmp r0, r1 - beq _0805AEC4 - movs r0, #0 - bl _call_via_r1 - b _0805AEC4 - .align 2, 0 -_0805ADF8: .4byte gArea -_0805ADFC: .4byte 0x0000088C -_0805AE00: .4byte sub_0805AEDC -_0805AE04: - ldrb r2, [r4, #0xc] - cmp r2, #0 - bne _0805AE5E - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - strb r2, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - ldr r0, _0805AE44 @ =gUnk_0810865C - ldrh r0, [r0] - strh r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldr r0, _0805AE48 @ =gArea - ldr r2, _0805AE4C @ =0x0000088C - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, #0 - bne _0805AE58 - ldr r1, _0805AE50 @ =sub_0805AEDC - ldr r2, _0805AE54 @ =sub_0805AF3C - adds r0, r4, #0 - bl sub_08052D74 - b _0805AEC4 - .align 2, 0 -_0805AE44: .4byte gUnk_0810865C -_0805AE48: .4byte gArea -_0805AE4C: .4byte 0x0000088C -_0805AE50: .4byte sub_0805AEDC -_0805AE54: .4byte sub_0805AF3C -_0805AE58: - bl DeleteThisEntity - b _0805AEC4 -_0805AE5E: - ldr r2, _0805AEC8 @ =gUnk_0810865C - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - ldr r3, _0805AECC @ =gScreen - cmp r0, #0 - beq _0805AEA2 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805AEA2 - movs r0, #4 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r0, #0 - beq _0805AEA2 - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - strh r1, [r4, #0x20] - adds r0, r3, #0 - adds r0, #0x68 - strh r1, [r0] -_0805AEA2: - ldr r1, _0805AED0 @ =gRoomControls - ldr r0, [r1, #0x28] - ldr r2, _0805AED4 @ =0xFFFFE000 - adds r0, r0, r2 - str r0, [r1, #0x28] - ldr r0, [r1, #0x2c] - ldr r2, _0805AED8 @ =0xFFFFF000 - adds r0, r0, r2 - str r0, [r1, #0x2c] - ldrh r0, [r1, #0x2a] - ldrh r2, [r1, #0xa] - adds r0, r0, r2 - strh r0, [r3, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r3, #0x30] -_0805AEC4: - pop {r4, pc} - .align 2, 0 -_0805AEC8: .4byte gUnk_0810865C -_0805AECC: .4byte gScreen -_0805AED0: .4byte gRoomControls -_0805AED4: .4byte 0xFFFFE000 -_0805AED8: .4byte 0xFFFFF000 - - thumb_func_start sub_0805AEDC -sub_0805AEDC: @ 0x0805AEDC - push {r4, lr} - adds r3, r0, #0 - ldr r2, _0805AF2C @ =gScreen - ldr r0, _0805AF30 @ =0x00001E05 - strh r0, [r2, #0x2c] - ldrh r0, [r2] - movs r4, #0x80 - lsls r4, r4, #4 - adds r1, r4, #0 - orrs r0, r1 - strh r0, [r2] - adds r1, r2, #0 - adds r1, #0x66 - ldr r0, _0805AF34 @ =0x00003648 - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #5 - adds r1, r0, #0 - cmp r3, #0 - beq _0805AF06 - ldrh r1, [r3, #0x20] -_0805AF06: - adds r0, r2, #0 - adds r0, #0x68 - strh r1, [r0] - ldr r1, _0805AF38 @ =gRoomControls - ldrh r0, [r1, #0x2a] - ldrh r4, [r1, #0xa] - adds r0, r0, r4 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r2, #0x30] - cmp r3, #0 - beq _0805AF28 - adds r0, r3, #0 - bl sub_0805ADD8 -_0805AF28: - pop {r4, pc} - .align 2, 0 -_0805AF2C: .4byte gScreen -_0805AF30: .4byte 0x00001E05 -_0805AF34: .4byte 0x00003648 -_0805AF38: .4byte gRoomControls - - thumb_func_start sub_0805AF3C -sub_0805AF3C: @ 0x0805AF3C - ldrb r2, [r0, #0x10] - movs r1, #0xdf - ands r1, r2 - movs r3, #0 - strb r1, [r0, #0x10] - ldr r1, _0805AF58 @ =gScreen - ldrh r2, [r1] - ldr r0, _0805AF5C @ =0x0000F7FF - ands r0, r2 - strh r0, [r1] - adds r1, #0x66 - strh r3, [r1] - bx lr - .align 2, 0 -_0805AF58: .4byte gScreen -_0805AF5C: .4byte 0x0000F7FF diff --git a/asm/manager19.s b/asm/manager19.s deleted file mode 100644 index 62345d53..00000000 --- a/asm/manager19.s +++ /dev/null @@ -1,106 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805AF60 -sub_0805AF60: @ 0x0805AF60 - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - bne _0805AF8C - ldr r0, _0805AF80 @ =gArea - ldr r1, _0805AF84 @ =0x0000088C - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0805AF88 @ =sub_0805AFFC - cmp r0, r1 - beq _0805AFEE - movs r0, #0 - bl _call_via_r1 - b _0805AFEE - .align 2, 0 -_0805AF80: .4byte gArea -_0805AF84: .4byte 0x0000088C -_0805AF88: .4byte sub_0805AFFC -_0805AF8C: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805AFD2 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldr r0, _0805AFC0 @ =gArea - ldr r2, _0805AFC4 @ =0x0000088C - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, #0 - bne _0805AFCC - ldr r1, _0805AFC8 @ =sub_0805AFFC - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 - b _0805AFEE - .align 2, 0 -_0805AFC0: .4byte gArea -_0805AFC4: .4byte 0x0000088C -_0805AFC8: .4byte sub_0805AFFC -_0805AFCC: - bl DeleteThisEntity - b _0805AFEE -_0805AFD2: - ldr r1, _0805AFF0 @ =gRoomControls - ldr r0, [r1, #0x28] - ldr r3, _0805AFF4 @ =0xFFFFE000 - adds r0, r0, r3 - str r0, [r1, #0x28] - ldr r2, _0805AFF8 @ =gScreen - ldrh r0, [r1, #0x2a] - ldrh r3, [r1, #0xa] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r2, #0x30] -_0805AFEE: - pop {r4, pc} - .align 2, 0 -_0805AFF0: .4byte gRoomControls -_0805AFF4: .4byte 0xFFFFE000 -_0805AFF8: .4byte gScreen - - thumb_func_start sub_0805AFFC -sub_0805AFFC: @ 0x0805AFFC - ldr r2, _0805B024 @ =gScreen - ldr r0, _0805B028 @ =0x00001E03 - strh r0, [r2, #0x2c] - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _0805B02C @ =gRoomControls - ldrh r0, [r1, #0x2a] - ldrh r3, [r1, #0xa] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r2, #0x30] - bx lr - .align 2, 0 -_0805B024: .4byte gScreen -_0805B028: .4byte 0x00001E03 -_0805B02C: .4byte gRoomControls diff --git a/asm/manager1B.s b/asm/manager1B.s deleted file mode 100644 index 31e610bc..00000000 --- a/asm/manager1B.s +++ /dev/null @@ -1,203 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805B3B4 -sub_0805B3B4: @ 0x0805B3B4 - push {r4, r5, lr} - adds r4, r0, #0 - bl EntityHasDuplicateID - cmp r0, #0 - beq _0805B3C4 - bl DeleteThisEntity -_0805B3C4: - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - ldr r1, _0805B438 @ =gUnk_08108C28 - adds r5, r0, r1 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805B41E - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0805B3F6 - ldr r1, _0805B43C @ =sub_0805B4B4 - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 -_0805B3F6: - ldr r0, _0805B440 @ =gRoomControls - ldrh r1, [r0, #0x20] - movs r0, #0x80 - lsls r0, r0, #1 - subs r1, r0, r1 - cmp r1, #0 - bge _0805B406 - movs r1, #0 -_0805B406: - movs r0, #2 - ldrsb r0, [r5, r0] - adds r0, r1, r0 - str r0, [r4, #0x20] - ldr r1, _0805B444 @ =gUnk_08108C54 - ldrb r0, [r5, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 -_0805B41E: - ldr r0, _0805B440 @ =gRoomControls - ldrh r0, [r0] - cmp r0, #0 - bne _0805B436 - ldr r0, _0805B444 @ =gUnk_08108C54 - ldrb r1, [r5, #1] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0805B436: - pop {r4, r5, pc} - .align 2, 0 -_0805B438: .4byte gUnk_08108C28 -_0805B43C: .4byte sub_0805B4B4 -_0805B440: .4byte gRoomControls -_0805B444: .4byte gUnk_08108C54 - - thumb_func_start sub_0805B448 -sub_0805B448: @ 0x0805B448 - push {r4, lr} - ldr r4, _0805B46C @ =gScreen - ldr r3, _0805B470 @ =gRoomControls - movs r2, #0xa - ldrsh r1, [r3, r2] - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #2 - strh r1, [r4, #0x2e] - movs r2, #0xc - ldrsh r1, [r3, r2] - ldrh r2, [r3, #8] - subs r1, r1, r2 - asrs r1, r1, #1 - ldr r0, [r0, #0x20] - adds r0, r0, r1 - strh r0, [r4, #0x30] - pop {r4, pc} - .align 2, 0 -_0805B46C: .4byte gScreen -_0805B470: .4byte gRoomControls - - thumb_func_start sub_0805B474 -sub_0805B474: @ 0x0805B474 - push {r4, r5, lr} - ldr r5, _0805B4A8 @ =gRoomControls - movs r0, #0xc - ldrsh r1, [r5, r0] - ldrh r4, [r5, #8] - subs r1, r1, r4 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #5 - ldrh r1, [r5, #0x20] - subs r1, #0xa0 - bl __divsi3 - ldr r2, _0805B4AC @ =gScreen - adds r4, r4, r0 - strh r4, [r2, #0x30] - ldrh r0, [r5, #0x1e] - ldr r1, _0805B4B0 @ =0xFFFFFF00 - adds r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - ldrh r1, [r5, #0xa] - subs r1, r1, r0 - strh r1, [r2, #0x2e] - pop {r4, r5, pc} - .align 2, 0 -_0805B4A8: .4byte gRoomControls -_0805B4AC: .4byte gScreen -_0805B4B0: .4byte 0xFFFFFF00 - - thumb_func_start sub_0805B4B4 -sub_0805B4B4: @ 0x0805B4B4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - bl sub_0805B4D0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bne _0805B4C8 - bl sub_0806D0F8 -_0805B4C8: - adds r0, r4, #0 - bl sub_0805B3B4 - pop {r4, pc} - - thumb_func_start sub_0805B4D0 -sub_0805B4D0: @ 0x0805B4D0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0805B528 @ =gUnk_08108C5C - adds r0, r5, r0 - ldrb r0, [r0] - bl LoadGfxGroup - ldr r4, _0805B52C @ =gScreen - ldr r0, _0805B530 @ =0x00001E07 - strh r0, [r4, #0x2c] - ldrh r1, [r4] - movs r2, #0x80 - lsls r2, r2, #4 - adds r0, r2, #0 - orrs r0, r1 - strh r0, [r4] - ldr r2, _0805B534 @ =gRoomControls - movs r1, #0xa - ldrsh r0, [r2, r1] - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #2 - strh r0, [r4, #0x2e] - movs r1, #0xc - ldrsh r0, [r2, r1] - ldrh r1, [r2, #8] - subs r0, r0, r1 - asrs r3, r0, #1 - ldrh r1, [r2, #0x20] - movs r0, #0x80 - lsls r0, r0, #1 - subs r2, r0, r1 - cmp r2, #0 - bge _0805B516 - movs r2, #0 -_0805B516: - ldr r0, _0805B538 @ =gUnk_08108C44 - lsls r1, r5, #1 - adds r1, r1, r0 - adds r0, r3, r2 - ldrh r1, [r1] - adds r0, r0, r1 - strh r0, [r4, #0x30] - pop {r4, r5, pc} - .align 2, 0 -_0805B528: .4byte gUnk_08108C5C -_0805B52C: .4byte gScreen -_0805B530: .4byte 0x00001E07 -_0805B534: .4byte gRoomControls -_0805B538: .4byte gUnk_08108C44 diff --git a/asm/manager1C.s b/asm/manager1C.s deleted file mode 100644 index d56e0ad6..00000000 --- a/asm/manager1C.s +++ /dev/null @@ -1,78 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805B53C -sub_0805B53C: @ 0x0805B53C - push {lr} - ldr r2, _0805B550 @ =gUnk_08108C64 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805B550: .4byte gUnk_08108C64 - - thumb_func_start sub_0805B554 -sub_0805B554: @ 0x0805B554 - movs r1, #1 - strb r1, [r0, #0xc] - strb r1, [r0, #0xe] - bx lr - - thumb_func_start sub_0805B55C -sub_0805B55C: @ 0x0805B55C - push {r4, r5, lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805B5B4 - movs r0, #0xf - strb r0, [r1, #0xe] - movs r0, #0x19 - movs r1, #0 - bl CreateEnemy - adds r5, r0, #0 - cmp r5, #0 - beq _0805B5B4 - bl Random - ldr r4, _0805B5B8 @ =gRoomControls - ldr r2, _0805B5BC @ =gUnk_08108C6C - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - adds r0, #0x78 - ldrh r1, [r4, #0xa] - adds r0, r0, r1 - strh r0, [r5, #0x2e] - bl Random - ldr r2, _0805B5C0 @ =gUnk_08108C7C - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r0, #0x50 - ldrh r4, [r4, #0xc] - adds r0, r0, r4 - strh r0, [r5, #0x32] - ldr r0, _0805B5C4 @ =0x0000FF38 - strh r0, [r5, #0x36] -_0805B5B4: - pop {r4, r5, pc} - .align 2, 0 -_0805B5B8: .4byte gRoomControls -_0805B5BC: .4byte gUnk_08108C6C -_0805B5C0: .4byte gUnk_08108C7C -_0805B5C4: .4byte 0x0000FF38 diff --git a/asm/manager1D.s b/asm/manager1D.s deleted file mode 100644 index 3e89b4bb..00000000 --- a/asm/manager1D.s +++ /dev/null @@ -1,95 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805B5C8 -sub_0805B5C8: @ 0x0805B5C8 - push {lr} - ldr r2, _0805B5DC @ =gUnk_08108C80 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805B5DC: .4byte gUnk_08108C80 - - thumb_func_start sub_0805B5E0 -sub_0805B5E0: @ 0x0805B5E0 - push {r4, r5, lr} - movs r4, #0 - movs r1, #1 - strb r1, [r0, #0xc] - ldr r3, _0805B618 @ =gScreen - ldrh r2, [r3] - movs r5, #0x80 - lsls r5, r5, #4 - adds r1, r5, #0 - orrs r1, r2 - strh r1, [r3] - ldr r2, _0805B61C @ =gUnk_08108C88 - ldrb r1, [r0, #0xa] - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - strh r1, [r3, #0x2c] - ldr r1, _0805B620 @ =gRoomControls - str r4, [r1, #0x2c] - str r4, [r1, #0x28] - ldrb r0, [r0, #0xa] - cmp r0, #0 - beq _0805B612 - cmp r0, #1 - beq _0805B624 -_0805B612: - strh r4, [r3, #0x30] - strh r4, [r3, #0x2e] - b _0805B634 - .align 2, 0 -_0805B618: .4byte gScreen -_0805B61C: .4byte gUnk_08108C88 -_0805B620: .4byte gRoomControls -_0805B624: - ldrh r0, [r1, #0x2a] - ldrh r2, [r1, #0xa] - adds r0, r0, r2 - strh r0, [r3, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r3, #0x30] -_0805B634: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0805B638 -sub_0805B638: @ 0x0805B638 - push {lr} - ldrb r0, [r0, #0xa] - cmp r0, #1 - bne _0805B65E - ldr r1, _0805B660 @ =gRoomControls - ldr r0, [r1, #0x28] - movs r2, #0x80 - lsls r2, r2, #6 - adds r0, r0, r2 - str r0, [r1, #0x28] - ldr r2, _0805B664 @ =gScreen - ldrh r0, [r1, #0x2a] - ldrh r3, [r1, #0xa] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r2, #0x30] -_0805B65E: - pop {pc} - .align 2, 0 -_0805B660: .4byte gRoomControls -_0805B664: .4byte gScreen diff --git a/asm/manager1F.s b/asm/manager1F.s deleted file mode 100644 index 399282ad..00000000 --- a/asm/manager1F.s +++ /dev/null @@ -1,99 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805B6F4 -sub_0805B6F4: @ 0x0805B6F4 - push {lr} - ldr r2, _0805B708 @ =gUnk_08108C94 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805B708: .4byte gUnk_08108C94 - - thumb_func_start sub_0805B70C -sub_0805B70C: @ 0x0805B70C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805B71E - movs r0, #1 - strb r0, [r4, #0xb] -_0805B71E: - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r2, #0x3f - ands r1, r2 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4, #0x38] - adds r0, r4, #0 - bl sub_0805B778 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805B744 -sub_0805B744: @ 0x0805B744 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl CheckFlags - adds r1, r0, #0 - cmp r1, #0 - beq _0805B766 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0805B774 - movs r0, #1 - strb r0, [r4, #0xb] - adds r0, r4, #0 - bl sub_0805B778 - b _0805B774 -_0805B766: - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0805B774 - strb r1, [r4, #0xb] - adds r0, r4, #0 - bl sub_0805B778 -_0805B774: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805B778 -sub_0805B778: @ 0x0805B778 - push {lr} - ldr r2, _0805B79C @ =gUnk_08108C9C - ldrb r1, [r0, #0xa] - lsls r1, r1, #1 - ldrb r3, [r0, #0xb] - adds r1, r1, r3 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r3, [r1] - movs r2, #0x38 - ldrsh r1, [r0, r2] - adds r0, #0x36 - ldrb r2, [r0] - adds r0, r3, #0 - bl SetTileType - pop {pc} - .align 2, 0 -_0805B79C: .4byte gUnk_08108C9C diff --git a/asm/manager2.s b/asm/manager2.s deleted file mode 100644 index a1ffd36e..00000000 --- a/asm/manager2.s +++ /dev/null @@ -1,194 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805754C -sub_0805754C: @ 0x0805754C - push {r4, r5, r6, lr} - adds r2, r0, #0 - ldr r3, _080575BC @ =gRoomControls - movs r0, #0xc - ldrsh r1, [r3, r0] - ldrh r0, [r3, #8] - subs r1, r1, r0 - asrs r0, r1, #3 - adds r1, r1, r0 - ldr r4, _080575C0 @ =gScreen - movs r6, #0x3f - adds r0, r1, #0 - ands r0, r6 - strh r0, [r4, #0x30] - adds r0, r1, #0 - cmp r1, #0 - bge _08057570 - adds r0, #0x3f -_08057570: - asrs r0, r0, #6 - lsls r0, r0, #9 - ldr r5, _080575C4 @ =gMapDataTopSpecial - adds r1, r0, r5 - str r1, [r4, #0x34] - ldr r0, [r2, #0x38] - cmp r0, r1 - beq _08057586 - str r1, [r2, #0x38] - movs r0, #1 - strh r0, [r4, #0x32] -_08057586: - movs r0, #0xc - ldrsh r1, [r3, r0] - ldrh r0, [r3, #8] - subs r1, r1, r0 - asrs r0, r1, #2 - adds r1, r1, r0 - adds r0, r1, #0 - ands r0, r6 - strh r0, [r4, #0x18] - adds r0, r1, #0 - cmp r0, #0 - bge _080575A0 - adds r0, #0x3f -_080575A0: - asrs r0, r0, #6 - lsls r0, r0, #9 - movs r3, #0x80 - lsls r3, r3, #6 - adds r1, r5, r3 - adds r1, r0, r1 - str r1, [r4, #0x1c] - ldr r0, [r2, #0x3c] - cmp r0, r1 - beq _080575BA - str r1, [r2, #0x3c] - movs r0, #1 - strh r0, [r4, #0x1a] -_080575BA: - pop {r4, r5, r6, pc} - .align 2, 0 -_080575BC: .4byte gRoomControls -_080575C0: .4byte gScreen -_080575C4: .4byte gMapDataTopSpecial - - thumb_func_start sub_080575C8 -sub_080575C8: @ 0x080575C8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _08057664 @ =gUnk_0200B650 - movs r5, #0 - str r5, [r0] - movs r0, #0x80 - lsls r0, r0, #0x13 - strh r5, [r0] - adds r0, r4, #0 - bl LoadGfxGroup - ldr r0, _08057668 @ =gRoomVars - strb r4, [r0, #0x10] - ldr r3, _0805766C @ =gRoomControls - movs r0, #0xc - ldrsh r1, [r3, r0] - ldrh r0, [r3, #8] - subs r1, r1, r0 - asrs r0, r1, #3 - adds r1, r1, r0 - ldr r2, _08057670 @ =gScreen - movs r7, #0x3f - adds r0, r1, #0 - ands r0, r7 - strh r0, [r2, #0x30] - strh r5, [r2, #0x2e] - adds r0, r1, #0 - cmp r1, #0 - bge _08057604 - adds r0, #0x3f -_08057604: - asrs r0, r0, #6 - lsls r0, r0, #9 - ldr r4, _08057674 @ =gMapDataTopSpecial - adds r0, r0, r4 - str r0, [r2, #0x34] - ldr r0, _08057678 @ =0x00001D49 - strh r0, [r2, #0x2c] - movs r6, #1 - strh r6, [r2, #0x32] - movs r0, #0xc - ldrsh r1, [r3, r0] - ldrh r0, [r3, #8] - subs r1, r1, r0 - asrs r0, r1, #2 - adds r1, r1, r0 - adds r0, r1, #0 - ands r0, r7 - strh r0, [r2, #0x18] - strh r5, [r2, #0x16] - adds r0, r1, #0 - cmp r0, #0 - bge _08057632 - adds r0, #0x3f -_08057632: - asrs r0, r0, #6 - lsls r0, r0, #9 - movs r3, #0x80 - lsls r3, r3, #6 - adds r1, r4, r3 - adds r0, r0, r1 - str r0, [r2, #0x1c] - ldr r0, _0805767C @ =0x00001E49 - strh r0, [r2, #0x14] - strh r6, [r2, #0x1a] - adds r1, r2, #0 - adds r1, #0x66 - ldr r0, _08057680 @ =0x00003C48 - strh r0, [r1] - adds r1, #2 - ldr r0, _08057684 @ =0x00000609 - strh r0, [r1] - ldrh r0, [r2] - movs r3, #0xa0 - lsls r3, r3, #4 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08057664: .4byte gUnk_0200B650 -_08057668: .4byte gRoomVars -_0805766C: .4byte gRoomControls -_08057670: .4byte gScreen -_08057674: .4byte gMapDataTopSpecial -_08057678: .4byte 0x00001D49 -_0805767C: .4byte 0x00001E49 -_08057680: .4byte 0x00003C48 -_08057684: .4byte 0x00000609 - - thumb_func_start sub_08057688 -sub_08057688: @ 0x08057688 - ldr r0, _08057694 @ =gScreen - ldr r1, _08057698 @ =0x00001D48 - strh r1, [r0, #0x2c] - ldr r1, _0805769C @ =0x00001E48 - strh r1, [r0, #0x14] - bx lr - .align 2, 0 -_08057694: .4byte gScreen -_08057698: .4byte 0x00001D48 -_0805769C: .4byte 0x00001E48 - - thumb_func_start sub_080576A0 -sub_080576A0: @ 0x080576A0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080576BC @ =gRoomVars - ldrb r0, [r0, #0x10] - bl LoadGfxGroup - movs r0, #0 - str r0, [r4, #0x38] - str r0, [r4, #0x3c] - adds r0, r4, #0 - bl sub_0805754C - pop {r4, pc} - .align 2, 0 -_080576BC: .4byte gRoomVars diff --git a/asm/manager21.s b/asm/manager21.s deleted file mode 100644 index 8aa896bd..00000000 --- a/asm/manager21.s +++ /dev/null @@ -1,117 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805B820 -sub_0805B820: @ 0x0805B820 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r1, [r5, #0xc] - cmp r1, #0 - bne _0805B834 - movs r0, #1 - strb r0, [r5, #0xc] - str r1, [r5, #0x20] -_0805B834: - ldrb r0, [r5, #0xa] - bl GetCurrentRoomProperty - adds r4, r0, #0 - movs r7, #0 - ldrh r0, [r4] - cmp r0, #0 - beq _0805B8C4 - ldr r0, _0805B8A8 @ =gRoomControls - mov r8, r0 -_0805B848: - ldrh r0, [r4] - ldrh r1, [r4, #2] - movs r2, #4 - movs r3, #4 - bl CheckRectOnScreen - cmp r0, #0 - beq _0805B8AC - movs r6, #1 - lsls r6, r7 - ldr r0, [r5, #0x20] - ands r0, r6 - cmp r0, #0 - bne _0805B8B6 - ldrh r0, [r4, #4] - bl sub_0805B8CC - cmp r0, #0 - beq _0805B8B6 - movs r0, #0x4e - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0805B8B6 - ldrh r0, [r4, #6] - strb r0, [r1, #0xe] - strb r7, [r1, #0xf] - ldrh r0, [r4] - mov r2, r8 - ldrh r2, [r2, #6] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldrh r0, [r4, #2] - mov r3, r8 - ldrh r3, [r3, #8] - adds r0, r0, r3 - strh r0, [r1, #0x32] - str r5, [r1, #0x50] - adds r0, r1, #0 - bl sub_08016A30 - ldr r0, [r5, #0x20] - orrs r0, r6 - b _0805B8B4 - .align 2, 0 -_0805B8A8: .4byte gRoomControls -_0805B8AC: - movs r1, #1 - lsls r1, r7 - ldr r0, [r5, #0x20] - bics r0, r1 -_0805B8B4: - str r0, [r5, #0x20] -_0805B8B6: - adds r4, #8 - adds r7, #1 - ldrh r0, [r4] - cmp r0, #0 - beq _0805B8C4 - cmp r7, #0x1f - bls _0805B848 -_0805B8C4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0805B8CC -sub_0805B8CC: @ 0x0805B8CC - push {lr} - cmp r0, #4 - bne _0805B8DA - movs r0, #0x18 - bl CheckGlobalFlag - b _0805B8E8 -_0805B8DA: - cmp r0, #4 - bls _0805B8E6 - cmp r0, #6 - bhi _0805B8E6 - movs r0, #0 - b _0805B8E8 -_0805B8E6: - movs r0, #1 -_0805B8E8: - pop {pc} - .align 2, 0 diff --git a/asm/manager22.s b/asm/manager22.s deleted file mode 100644 index aae066dc..00000000 --- a/asm/manager22.s +++ /dev/null @@ -1,454 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805B8EC -sub_0805B8EC: @ 0x0805B8EC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _0805B964 @ =gArea - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805B90A - bl sub_0801E104 - ldr r2, _0805B968 @ =gScreen - ldrh r1, [r2] - ldr r0, _0805B96C @ =0x0000D7FF - ands r0, r1 - strh r0, [r2] - bl DeleteThisEntity -_0805B90A: - ldrb r2, [r5, #0xc] - cmp r2, #0 - bne _0805B934 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r5, #0x10] - movs r0, #0x11 - strb r0, [r5, #0xe] - str r2, [r5, #0x20] - adds r0, r5, #0 - movs r1, #6 - bl sub_0805E3A0 - bl sub_0801E120 - ldrb r0, [r5, #0xe] - bl sub_0801E154 -_0805B934: - ldr r0, _0805B970 @ =gMain - ldrb r0, [r0, #4] - cmp r0, #2 - bne _0805B952 - ldr r2, _0805B968 @ =gScreen - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - bl sub_0805BA78 - bl sub_0805BAD4 -_0805B952: - ldrb r0, [r4, #0xc] - cmp r0, #2 - bne _0805B978 - ldr r2, _0805B968 @ =gScreen - ldrh r1, [r2] - ldr r0, _0805B974 @ =0x0000DFFF - ands r0, r1 - strh r0, [r2] - b _0805BA6C - .align 2, 0 -_0805B964: .4byte gArea -_0805B968: .4byte gScreen -_0805B96C: .4byte 0x0000D7FF -_0805B970: .4byte gMain -_0805B974: .4byte 0x0000DFFF -_0805B978: - ldr r3, _0805B9A8 @ =gPlayerEntity - movs r4, #0x2e - ldrsh r0, [r3, r4] - ldr r2, _0805B9AC @ =gRoomControls - ldrh r1, [r2, #6] - subs r0, r0, r1 - movs r6, #0x32 - ldrsh r1, [r3, r6] - ldrh r2, [r2, #8] - subs r1, r1, r2 - movs r2, #0 - movs r3, #0 - bl CheckRectOnScreen - cmp r0, #0 - beq _0805B9B4 - ldr r2, _0805B9B0 @ =gScreen - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #6 - adds r0, r3, #0 - orrs r0, r1 - b _0805B9BC - .align 2, 0 -_0805B9A8: .4byte gPlayerEntity -_0805B9AC: .4byte gRoomControls -_0805B9B0: .4byte gScreen -_0805B9B4: - ldr r2, _0805B9E8 @ =gScreen - ldrh r1, [r2] - ldr r0, _0805B9EC @ =0x0000DFFF - ands r0, r1 -_0805B9BC: - strh r0, [r2] - ldrb r4, [r5, #0xe] - ldr r0, _0805B9F0 @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0805BA2C - ldr r0, _0805B9F4 @ =gArea - ldrb r0, [r0, #0xc] - cmp r0, #0 - beq _0805BA2C - cmp r4, #0x47 - bhi _0805B9F8 - adds r4, #4 - adds r0, r4, #0 - bl sub_0801E154 - movs r0, #0 - str r0, [r5, #0x20] - b _0805BA42 - .align 2, 0 -_0805B9E8: .4byte gScreen -_0805B9EC: .4byte 0x0000DFFF -_0805B9F0: .4byte gPlayerState -_0805B9F4: .4byte gArea -_0805B9F8: - ldr r0, _0805BA24 @ =gScreenTransition - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0805BA42 - ldrb r0, [r5, #0xf] - adds r0, #0x10 - strb r0, [r5, #0xf] - ldr r1, _0805BA28 @ =gSineTable - ldrb r0, [r5, #0xf] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r6, #0 - ldrsh r0, [r0, r6] - asrs r0, r0, #7 - str r0, [r5, #0x20] - adds r0, r4, r0 - bl sub_0801E154 - b _0805BA42 - .align 2, 0 -_0805BA24: .4byte gScreenTransition -_0805BA28: .4byte gSineTable -_0805BA2C: - movs r0, #0 - str r0, [r5, #0x20] - cmp r4, #0x11 - bls _0805BA42 - subs r4, #4 - cmp r4, #0x10 - bhi _0805BA3C - movs r4, #0x11 -_0805BA3C: - adds r0, r4, #0 - bl sub_0801E154 -_0805BA42: - strb r4, [r5, #0xe] - ldr r3, _0805BA70 @ =gPlayerEntity - movs r1, #0x2e - ldrsh r0, [r3, r1] - ldr r2, _0805BA74 @ =gRoomControls - movs r6, #0xa - ldrsh r1, [r2, r6] - subs r0, r0, r1 - movs r6, #0x32 - ldrsh r1, [r3, r6] - movs r6, #0xc - ldrsh r2, [r2, r6] - subs r1, r1, r2 - movs r6, #0x36 - ldrsh r2, [r3, r6] - subs r2, #9 - adds r1, r1, r2 - ldr r2, [r5, #0x20] - adds r2, r4, r2 - bl sub_0801E160 -_0805BA6C: - pop {r4, r5, r6, pc} - .align 2, 0 -_0805BA70: .4byte gPlayerEntity -_0805BA74: .4byte gRoomControls - - thumb_func_start sub_0805BA78 -sub_0805BA78: @ 0x0805BA78 - push {r4, lr} - ldr r1, _0805BAA8 @ =gArea - movs r0, #0xa - ldrsh r3, [r1, r0] - ldr r0, _0805BAAC @ =gRoomVars - movs r4, #0xc - ldrsh r2, [r0, r4] - cmp r2, #0 - bge _0805BA8C - movs r2, #0 -_0805BA8C: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r2, r0 - ble _0805BA96 - adds r2, r0, #0 -_0805BA96: - cmp r3, r2 - beq _0805BACE - subs r0, r2, r3 - cmp r0, #0 - blt _0805BAB0 - cmp r0, #4 - bls _0805BAB6 - b _0805BABA - .align 2, 0 -_0805BAA8: .4byte gArea -_0805BAAC: .4byte gRoomVars -_0805BAB0: - subs r0, r3, r2 - cmp r0, #4 - bhi _0805BABA -_0805BAB6: - adds r3, r2, #0 - b _0805BAC8 -_0805BABA: - cmp r2, r3 - bge _0805BAC2 - subs r3, #4 - b _0805BAC8 -_0805BAC2: - cmp r2, r3 - ble _0805BAC8 - adds r3, #4 -_0805BAC8: - strh r3, [r1, #0xa] - movs r0, #1 - b _0805BAD0 -_0805BACE: - movs r0, #0 -_0805BAD0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BAD4 -sub_0805BAD4: @ 0x0805BAD4 - push {lr} - ldr r3, _0805BAF4 @ =gArea - ldrb r0, [r3, #0xc] - cmp r0, #0 - beq _0805BAF2 - ldr r1, _0805BAF8 @ =gScreen - ldr r2, _0805BAFC @ =gUnk_08108CA8 - ldrh r0, [r3, #0xa] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, #0x68 - strh r0, [r1] -_0805BAF2: - pop {pc} - .align 2, 0 -_0805BAF4: .4byte gArea -_0805BAF8: .4byte gScreen -_0805BAFC: .4byte gUnk_08108CA8 - - thumb_func_start sub_0805BB00 -sub_0805BB00: @ 0x0805BB00 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _0805BB50 @ =gArea - ldrb r0, [r0, #0xc] - cmp r0, #0 - bne _0805BB28 - bl GetEmptyManager - adds r1, r0, #0 - cmp r1, #0 - beq _0805BB28 - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x22 - strb r0, [r1, #9] - adds r0, r1, #0 - movs r1, #0 - bl AppendEntityToList -_0805BB28: - ldr r1, _0805BB54 @ =0x0600F000 - movs r2, #0x80 - lsls r2, r2, #4 - movs r0, #0xf - bl MemFill16 - ldr r0, _0805BB58 @ =gScreen - ldr r1, _0805BB5C @ =0x00001E0C - strh r1, [r0, #0x2c] - adds r0, #0x66 - ldr r1, _0805BB60 @ =0x00003E48 - strh r1, [r0] - ldr r0, _0805BB64 @ =gRoomVars - strh r4, [r0, #0xc] - cmp r5, #0 - beq _0805BB68 - ldr r1, _0805BB50 @ =gArea - movs r0, #1 - b _0805BB6C - .align 2, 0 -_0805BB50: .4byte gArea -_0805BB54: .4byte 0x0600F000 -_0805BB58: .4byte gScreen -_0805BB5C: .4byte 0x00001E0C -_0805BB60: .4byte 0x00003E48 -_0805BB64: .4byte gRoomVars -_0805BB68: - ldr r1, _0805BB70 @ =gArea - movs r0, #2 -_0805BB6C: - strb r0, [r1, #0xc] - pop {r4, r5, pc} - .align 2, 0 -_0805BB70: .4byte gArea - - thumb_func_start sub_0805BB74 -sub_0805BB74: @ 0x0805BB74 - push {lr} - adds r1, r0, #0 - ldr r2, _0805BBB0 @ =gRoomVars - cmp r1, #0 - bge _0805BB82 - movs r0, #0xc - ldrsh r1, [r2, r0] -_0805BB82: - ldr r0, _0805BBB4 @ =gArea - strh r1, [r0, #0xa] - strh r1, [r2, #0xc] - movs r0, #9 - movs r1, #0x22 - bl DeepFindEntityByID - cmp r0, #0 - beq _0805BBAE - bl sub_0805B8EC - ldr r0, _0805BBB8 @ =gScreen - ldrh r1, [r0] - movs r3, #0x80 - lsls r3, r3, #4 - adds r2, r3, #0 - orrs r1, r2 - strh r1, [r0] - bl sub_0805BA78 - bl sub_0805BAD4 -_0805BBAE: - pop {pc} - .align 2, 0 -_0805BBB0: .4byte gRoomVars -_0805BBB4: .4byte gArea -_0805BBB8: .4byte gScreen - - thumb_func_start sub_0805BBBC -sub_0805BBBC: @ 0x0805BBBC - push {r4, lr} - movs r4, #0 - ldr r2, _0805BBF8 @ =gArea - ldrb r0, [r2, #0xc] - cmp r0, #0 - beq _0805BBF2 - ldr r0, _0805BBFC @ =gRoomVars - movs r3, #0xc - ldrsh r1, [r0, r3] - movs r3, #0xa - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _0805BBF2 - ldr r2, _0805BC00 @ =gScreen - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - bl sub_0805BA78 - adds r4, r0, #0 - cmp r4, #0 - beq _0805BBF2 - bl sub_0805BAD4 -_0805BBF2: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_0805BBF8: .4byte gArea -_0805BBFC: .4byte gRoomVars -_0805BC00: .4byte gScreen - - thumb_func_start sub_0805BC04 -sub_0805BC04: @ 0x0805BC04 - push {r4, lr} - movs r4, #0 - ldr r2, _0805BC40 @ =gArea - ldrb r0, [r2, #0xc] - cmp r0, #0 - beq _0805BC3A - ldr r0, _0805BC44 @ =gRoomVars - movs r3, #0xc - ldrsh r1, [r0, r3] - movs r3, #0xa - ldrsh r0, [r2, r3] - cmp r1, r0 - ble _0805BC3A - ldr r2, _0805BC48 @ =gScreen - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - bl sub_0805BA78 - adds r4, r0, #0 - cmp r4, #0 - beq _0805BC3A - bl sub_0805BAD4 -_0805BC3A: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_0805BC40: .4byte gArea -_0805BC44: .4byte gRoomVars -_0805BC48: .4byte gScreen - - thumb_func_start sub_0805BC4C -sub_0805BC4C: @ 0x0805BC4C - push {lr} - ldr r1, _0805BC68 @ =gArea - ldrb r0, [r1, #0xc] - cmp r0, #0 - beq _0805BC64 - movs r0, #0 - strb r0, [r1, #0xc] - ldr r2, _0805BC6C @ =gScreen - ldrh r1, [r2] - ldr r0, _0805BC70 @ =0x0000D7FF - ands r0, r1 - strh r0, [r2] -_0805BC64: - pop {pc} - .align 2, 0 -_0805BC68: .4byte gArea -_0805BC6C: .4byte gScreen -_0805BC70: .4byte 0x0000D7FF diff --git a/asm/manager23.s b/asm/manager23.s deleted file mode 100644 index c5387705..00000000 --- a/asm/manager23.s +++ /dev/null @@ -1,348 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805BC74 -sub_0805BC74: @ 0x0805BC74 - push {lr} - ldr r2, _0805BC88 @ =gUnk_08108CCC - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805BC88: .4byte gUnk_08108CCC - - thumb_func_start sub_0805BC8C -sub_0805BC8C: @ 0x0805BC8C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805BCAE - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xf] - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805BCAE - adds r0, r4, #0 - bl sub_0805BE94 -_0805BCAE: - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805BCD0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805BCD0 - adds r0, r4, #0 - bl sub_0805BEC4 - adds r0, r4, #0 - bl sub_0805BE94 -_0805BCD0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BCD4 -sub_0805BCD4: @ 0x0805BCD4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0805BD0E - cmp r0, #1 - bgt _0805BCE8 - cmp r0, #0 - beq _0805BCEE - b _0805BD5A -_0805BCE8: - cmp r0, #2 - beq _0805BD38 - b _0805BD5A -_0805BCEE: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xf] - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805BD5A - adds r0, r4, #0 - movs r1, #0x75 - bl sub_0805BE70 - movs r0, #2 - strb r0, [r4, #0xc] - b _0805BD5A -_0805BD0E: - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805BD5A - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805BD5A - movs r0, #0x1e - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0805BEC4 - adds r0, r4, #0 - movs r1, #0x76 - bl sub_0805BE70 - b _0805BD5A -_0805BD38: - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - bne _0805BD5A - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805BD5A - movs r0, #0x1e - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x75 - bl sub_0805BE70 -_0805BD5A: - pop {r4, pc} - - thumb_func_start sub_0805BD5C -sub_0805BD5C: @ 0x0805BD5C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805BD94 - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805BD76 - adds r0, r4, #0 - bl sub_0805BE94 -_0805BD76: - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r2, #0x3f - ands r1, r2 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4, #0x20] - movs r0, #1 - strb r0, [r4, #0xc] - b _0805BDB0 -_0805BD94: - ldrh r0, [r4, #0x20] - ldrb r1, [r4, #0xb] - bl GetTileType - cmp r0, #0x76 - bne _0805BDB0 - ldrh r0, [r4, #0x3e] - bl SetFlag - ldrb r0, [r4, #0xe] - bl sub_0805308C - bl DeleteThisEntity -_0805BDB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BDB4 -sub_0805BDB4: @ 0x0805BDB4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0805BDF4 - cmp r0, #1 - beq _0805BE2C - ldrh r0, [r4, #0x22] - subs r0, #1 - strh r0, [r4, #0x22] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0805BE58 - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r2, #0x3a - ldrsh r1, [r4, r2] - ldrb r2, [r4, #0xb] - bl CreateDustAt - ldrh r0, [r4, #0x3e] - bl ClearFlag - ldrh r0, [r4, #0x20] - ldrb r1, [r4, #0xb] - bl sub_0807BA8C - ldrb r0, [r4, #0xe] - rsbs r0, r0, #0 - bl sub_0805308C - b _0805BE26 -_0805BDF4: - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - bne _0805BE08 - ldrh r0, [r4, #0x3c] - bl CheckFlags - cmp r0, #0 - beq _0805BE0E -_0805BE08: - adds r0, r4, #0 - bl sub_0805BE94 -_0805BE0E: - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r2, #0x3f - ands r1, r2 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4, #0x20] -_0805BE26: - movs r0, #1 - strb r0, [r4, #0xc] - b _0805BE6C -_0805BE2C: - ldrh r0, [r4, #0x20] - ldrb r1, [r4, #0xb] - bl GetTileType - cmp r0, #0x76 - bne _0805BE6C - ldrh r0, [r4, #0x3e] - bl SetFlag - ldrb r0, [r4, #0xe] - bl sub_0805308C - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x36 - ldrb r1, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - strh r0, [r4, #0x22] - b _0805BE6C -_0805BE58: - ldrh r0, [r4, #0x3c] - bl CheckFlags - cmp r0, #0 - beq _0805BE6C - adds r0, r4, #0 - bl sub_0805BEC4 - bl DeleteThisEntity -_0805BE6C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BE70 -sub_0805BE70: @ 0x0805BE70 - push {r4, lr} - adds r4, r1, #0 - ldrh r1, [r0, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r3, #0x3f - ands r1, r3 - ldrh r2, [r0, #0x3a] - lsls r2, r2, #0x10 - asrs r2, r2, #0x14 - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r0, #0xb] - adds r0, r4, #0 - bl SetTileType - pop {r4, pc} - - thumb_func_start sub_0805BE94 -sub_0805BE94: @ 0x0805BE94 - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r2, #0x3f - ands r1, r2 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - ldrb r2, [r4, #0xb] - movs r0, #0x76 - bl SetTileType - ldrb r0, [r4, #0xe] - bl sub_0805308C - bl DeleteThisEntity - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BEC4 -sub_0805BEC4: @ 0x0805BEC4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2a - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805BF10 - ldrb r1, [r2, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #0x11] - ldr r1, _0805BF14 @ =gRoomControls - ldrh r0, [r1, #6] - ldrh r3, [r4, #0x38] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #8] - ldrh r1, [r4, #0x3a] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldrb r1, [r4, #0xb] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] -_0805BF10: - pop {r4, pc} - .align 2, 0 -_0805BF14: .4byte gRoomControls diff --git a/asm/manager24.s b/asm/manager24.s deleted file mode 100644 index 9d1d530e..00000000 --- a/asm/manager24.s +++ /dev/null @@ -1,876 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805BF18 -sub_0805BF18: @ 0x0805BF18 - push {lr} - ldr r2, _0805BF2C @ =gUnk_08108CDC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805BF2C: .4byte gUnk_08108CDC - - thumb_func_start sub_0805BF30 -sub_0805BF30: @ 0x0805BF30 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r1, [r4, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r2, #0x3f - ands r1, r2 - ldrh r0, [r4, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4, #0x3c] - ldrh r0, [r4, #0x3c] - adds r1, r4, #0 - adds r1, #0x35 - ldrb r1, [r1] - bl sub_0805BFC4 - strb r0, [r4, #0xa] - ldrh r0, [r4, #0x3e] - bl CheckLocalFlag - cmp r0, #0 - beq _0805BF74 - adds r0, r4, #0 - bl sub_0805C02C - adds r0, r4, #0 - bl DeleteManager -_0805BF74: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BF78 -sub_0805BF78: @ 0x0805BF78 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3c] - adds r1, r4, #0 - adds r1, #0x35 - ldrb r1, [r1] - bl sub_080002C8 - cmp r0, #0x2e - beq _0805BFA0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0805C02C - ldrh r0, [r4, #0x3e] - bl SetLocalFlag -_0805BFA0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BFA4 -sub_0805BFA4: @ 0x0805BFA4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805BFC0 - movs r0, #0x72 - bl SoundReq - adds r0, r4, #0 - bl DeleteManager -_0805BFC0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805BFC4 -sub_0805BFC4: @ 0x0805BFC4 - push {lr} - bl GetTileType - adds r1, r0, #0 - cmp r1, #0xec - beq _0805C018 - cmp r1, #0xec - bhi _0805BFEC - cmp r1, #0xbf - beq _0805C024 - cmp r1, #0xbf - bhi _0805BFE2 - cmp r1, #0xaf - beq _0805C014 - b _0805C028 -_0805BFE2: - cmp r1, #0xcc - beq _0805C01C - cmp r1, #0xdf - beq _0805C020 - b _0805C028 -_0805BFEC: - movs r0, #0x84 - lsls r0, r0, #1 - cmp r1, r0 - beq _0805C01C - cmp r1, r0 - bhi _0805C004 - cmp r1, #0xff - beq _0805C014 - subs r0, #3 - cmp r1, r0 - beq _0805C024 - b _0805C028 -_0805C004: - movs r0, #0x88 - lsls r0, r0, #1 - cmp r1, r0 - beq _0805C020 - adds r0, #5 - cmp r1, r0 - beq _0805C018 - b _0805C028 -_0805C014: - movs r0, #0 - b _0805C02A -_0805C018: - movs r0, #1 - b _0805C02A -_0805C01C: - movs r0, #2 - b _0805C02A -_0805C020: - movs r0, #3 - b _0805C02A -_0805C024: - movs r0, #4 - b _0805C02A -_0805C028: - movs r0, #0xff -_0805C02A: - pop {pc} - - thumb_func_start sub_0805C02C -sub_0805C02C: @ 0x0805C02C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0xff - beq _0805C04A - ldr r0, _0805C04C @ =gUnk_08108CE8 - ldrb r2, [r1, #0xa] - lsls r2, r2, #2 - adds r2, r2, r0 - ldrh r0, [r1, #0x3c] - adds r1, #0x35 - ldrb r1, [r1] - ldr r2, [r2] - bl _call_via_r2 -_0805C04A: - pop {pc} - .align 2, 0 -_0805C04C: .4byte gUnk_08108CE8 - - thumb_func_start sub_0805C050 -sub_0805C050: @ 0x0805C050 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r1, r5, #0 - subs r1, #0x41 - movs r0, #0xb1 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #0 - subs r1, #0x40 - movs r0, #0xb2 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #0 - subs r1, #0x3f - movs r0, #0xb3 - adds r2, r4, #0 - bl SetTileType - subs r1, r5, #1 - movs r0, #0xb4 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #1 - movs r0, #0xb7 - adds r2, r4, #0 - bl SetTileType - cmp r4, #1 - bne _0805C11C - bl sub_08052670 - cmp r0, #0 - beq _0805C0D8 - movs r0, #0x4f - movs r1, #0xe - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805C0E0 - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0805C0D0 @ =gRoomControls - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r3, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - ldr r1, _0805C0D4 @ =0x0000FFF8 - adds r0, r0, r1 - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r3, #0x32] - b _0805C0E0 - .align 2, 0 -_0805C0D0: .4byte gRoomControls -_0805C0D4: .4byte 0x0000FFF8 -_0805C0D8: - bl CheckIsDungeon - cmp r0, #0 - beq _0805C0EC -_0805C0E0: - movs r0, #0xb5 - adds r1, r5, #0 - movs r2, #1 - bl SetTileType - b _0805C0F6 -_0805C0EC: - movs r0, #0xb6 - adds r1, r5, #0 - movs r2, #1 - bl SetTileType -_0805C0F6: - adds r1, r5, #0 - subs r1, #0x41 - movs r0, #0xb8 - movs r2, #2 - bl SetTileType - adds r1, r5, #0 - subs r1, #0x40 - movs r0, #0xb9 - movs r2, #2 - bl SetTileType - adds r1, r5, #0 - subs r1, #0x3f - movs r0, #0xba - movs r2, #2 - bl SetTileType - b _0805C16E -_0805C11C: - movs r0, #0xb5 - adds r1, r5, #0 - movs r2, #2 - bl SetTileType - bl CheckIsDungeon - cmp r0, #0 - beq _0805C16E - bl sub_0805C608 - adds r1, r0, #0 - movs r0, #0x4f - movs r2, #6 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805C16E - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0805C170 @ =gRoomControls - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r3, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - ldr r1, _0805C174 @ =0x0000FFF0 - adds r0, r0, r1 - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r3, #0x32] - adds r1, r3, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] -_0805C16E: - pop {r4, r5, pc} - .align 2, 0 -_0805C170: .4byte gRoomControls -_0805C174: .4byte 0x0000FFF0 - - thumb_func_start sub_0805C178 -sub_0805C178: @ 0x0805C178 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r1, r5, #0 - subs r1, #0x40 - movs r0, #0xf1 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #0 - subs r1, #0x3f - movs r0, #0xf5 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #1 - movs r0, #0xf6 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0xf4 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #0 - adds r1, #0x41 - movs r0, #0xf7 - adds r2, r4, #0 - bl SetTileType - cmp r4, #1 - bne _0805C23E - bl sub_08052670 - cmp r0, #0 - beq _0805C1FC - movs r0, #0x4f - movs r1, #0xe - movs r2, #1 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805C204 - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - ldr r1, _0805C1F8 @ =gRoomControls - adds r0, #0x18 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #8 - ldrh r1, [r1, #8] - adds r1, r1, r0 - strh r1, [r2, #0x32] - b _0805C204 - .align 2, 0 -_0805C1F8: .4byte gRoomControls -_0805C1FC: - bl CheckIsDungeon - cmp r0, #0 - beq _0805C210 -_0805C204: - movs r0, #0xf2 - adds r1, r5, #0 - movs r2, #1 - bl SetTileType - b _0805C21A -_0805C210: - movs r0, #0xf3 - adds r1, r5, #0 - movs r2, #1 - bl SetTileType -_0805C21A: - adds r1, r5, #0 - subs r1, #0x3f - movs r0, #0xf8 - movs r2, #2 - bl SetTileType - adds r1, r5, #1 - movs r0, #0xf9 - movs r2, #2 - bl SetTileType - adds r1, r5, #0 - adds r1, #0x41 - movs r0, #0xfa - movs r2, #2 - bl SetTileType - b _0805C28E -_0805C23E: - movs r0, #0xf2 - adds r1, r5, #0 - movs r2, #2 - bl SetTileType - bl CheckIsDungeon - cmp r0, #0 - beq _0805C28E - bl sub_0805C608 - adds r1, r0, #0 - movs r0, #0x4f - movs r2, #7 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805C28E - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - ldr r1, _0805C290 @ =gRoomControls - adds r0, #0x20 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #8 - ldrh r1, [r1, #8] - adds r1, r1, r0 - strh r1, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] -_0805C28E: - pop {r4, r5, pc} - .align 2, 0 -_0805C290: .4byte gRoomControls - - thumb_func_start sub_0805C294 -sub_0805C294: @ 0x0805C294 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - subs r1, r5, #1 - movs r0, #0xd1 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #1 - movs r0, #0xd4 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xd5 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0xd6 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #0 - adds r1, #0x41 - movs r0, #0xd7 - adds r2, r4, #0 - bl SetTileType - cmp r4, #1 - bne _0805C35C - bl sub_08052670 - cmp r0, #0 - beq _0805C318 - movs r0, #0x4f - movs r1, #0xe - movs r2, #2 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805C320 - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0805C314 @ =gRoomControls - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r3, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #0x20 - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r3, #0x32] - b _0805C320 - .align 2, 0 -_0805C314: .4byte gRoomControls -_0805C318: - bl CheckIsDungeon - cmp r0, #0 - beq _0805C32C -_0805C320: - movs r0, #0xd2 - adds r1, r5, #0 - movs r2, #1 - bl SetTileType - b _0805C336 -_0805C32C: - movs r0, #0xd3 - adds r1, r5, #0 - movs r2, #1 - bl SetTileType -_0805C336: - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xd8 - movs r2, #2 - bl SetTileType - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0xd9 - movs r2, #2 - bl SetTileType - adds r1, r5, #0 - adds r1, #0x41 - movs r0, #0xda - movs r2, #2 - bl SetTileType - b _0805C3AC -_0805C35C: - movs r0, #0xd2 - adds r1, r5, #0 - movs r2, #2 - bl SetTileType - bl CheckIsDungeon - cmp r0, #0 - beq _0805C3AC - bl sub_0805C608 - adds r1, r0, #0 - movs r0, #0x4f - movs r2, #8 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805C3AC - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0805C3B0 @ =gRoomControls - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r3, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #0x20 - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r3, #0x32] - adds r1, r3, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] -_0805C3AC: - pop {r4, r5, pc} - .align 2, 0 -_0805C3B0: .4byte gRoomControls - - thumb_func_start sub_0805C3B4 -sub_0805C3B4: @ 0x0805C3B4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r1, r5, #0 - subs r1, #0x41 - movs r0, #0xe1 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #0 - subs r1, #0x40 - movs r0, #0xe4 - adds r2, r4, #0 - bl SetTileType - subs r1, r5, #1 - movs r0, #0xe2 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xe3 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0xe7 - adds r2, r4, #0 - bl SetTileType - cmp r4, #1 - bne _0805C482 - bl sub_08052670 - cmp r0, #0 - beq _0805C440 - movs r0, #0x4f - movs r1, #0xe - movs r2, #3 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805C448 - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - ldr r1, _0805C438 @ =gRoomControls - ldr r3, _0805C43C @ =0x0000FFF0 - adds r0, r0, r3 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #8 - ldrh r1, [r1, #8] - adds r1, r1, r0 - strh r1, [r2, #0x32] - b _0805C448 - .align 2, 0 -_0805C438: .4byte gRoomControls -_0805C43C: .4byte 0x0000FFF0 -_0805C440: - bl CheckIsDungeon - cmp r0, #0 - beq _0805C454 -_0805C448: - movs r0, #0xe5 - adds r1, r5, #0 - movs r2, #1 - bl SetTileType - b _0805C45E -_0805C454: - movs r0, #0xe6 - adds r1, r5, #0 - movs r2, #1 - bl SetTileType -_0805C45E: - adds r1, r5, #0 - subs r1, #0x41 - movs r0, #0xe8 - movs r2, #2 - bl SetTileType - subs r1, r5, #1 - movs r0, #0xe9 - movs r2, #2 - bl SetTileType - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xea - movs r2, #2 - bl SetTileType - b _0805C4D4 -_0805C482: - movs r0, #0xe5 - adds r1, r5, #0 - movs r2, #2 - bl SetTileType - bl CheckIsDungeon - cmp r0, #0 - beq _0805C4D4 - bl sub_0805C608 - adds r1, r0, #0 - movs r0, #0x4f - movs r2, #9 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805C4D4 - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - ldr r1, _0805C4D8 @ =gRoomControls - ldr r3, _0805C4DC @ =0x0000FFF0 - adds r0, r0, r3 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - adds r0, #8 - ldrh r1, [r1, #8] - adds r1, r1, r0 - strh r1, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] -_0805C4D4: - pop {r4, r5, pc} - .align 2, 0 -_0805C4D8: .4byte gRoomControls -_0805C4DC: .4byte 0x0000FFF0 - - thumb_func_start sub_0805C4E0 -sub_0805C4E0: @ 0x0805C4E0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r1, r5, #0 - subs r1, #0x41 - movs r0, #0xc1 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #0 - subs r1, #0x40 - movs r0, #0xc2 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #0 - subs r1, #0x3f - movs r0, #0xc3 - adds r2, r4, #0 - bl SetTileType - subs r1, r5, #1 - movs r0, #0xc4 - adds r2, r4, #0 - bl SetTileType - adds r1, r5, #1 - movs r0, #0xc7 - adds r2, r4, #0 - bl SetTileType - cmp r4, #1 - bne _0805C5AC - bl sub_08052670 - cmp r0, #0 - beq _0805C568 - movs r0, #0x4f - movs r1, #0xe - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805C570 - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0805C560 @ =gRoomControls - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r3, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - ldr r1, _0805C564 @ =0x0000FFF0 - adds r0, r0, r1 - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r3, #0x32] - b _0805C570 - .align 2, 0 -_0805C560: .4byte gRoomControls -_0805C564: .4byte 0x0000FFF0 -_0805C568: - bl CheckIsDungeon - cmp r0, #0 - beq _0805C57C -_0805C570: - movs r0, #0xc5 - adds r1, r5, #0 - movs r2, #1 - bl SetTileType - b _0805C586 -_0805C57C: - movs r0, #0xc6 - adds r1, r5, #0 - movs r2, #1 - bl SetTileType -_0805C586: - adds r1, r5, #0 - subs r1, #0x41 - movs r0, #0xc8 - movs r2, #2 - bl SetTileType - adds r1, r5, #0 - subs r1, #0x40 - movs r0, #0xc9 - movs r2, #2 - bl SetTileType - adds r1, r5, #0 - subs r1, #0x3f - movs r0, #0xca - movs r2, #2 - bl SetTileType - b _0805C5FE -_0805C5AC: - movs r0, #0xc5 - adds r1, r5, #0 - movs r2, #2 - bl SetTileType - bl CheckIsDungeon - cmp r0, #0 - beq _0805C5FE - bl sub_0805C608 - adds r1, r0, #0 - movs r0, #0x4f - movs r2, #6 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0805C5FE - movs r1, #0x3f - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #4 - adds r0, #8 - ldr r2, _0805C600 @ =gRoomControls - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r3, #0x2e] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r5 - lsrs r0, r0, #2 - ldr r1, _0805C604 @ =0x0000FFF0 - adds r0, r0, r1 - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r3, #0x32] - adds r1, r3, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] -_0805C5FE: - pop {r4, r5, pc} - .align 2, 0 -_0805C600: .4byte gRoomControls -_0805C604: .4byte 0x0000FFF0 - - thumb_func_start sub_0805C608 -sub_0805C608: @ 0x0805C608 - ldr r1, _0805C614 @ =gUnk_08108CFC - ldr r0, _0805C618 @ =gArea - ldrb r0, [r0, #3] - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0805C614: .4byte gUnk_08108CFC -_0805C618: .4byte gArea diff --git a/asm/manager25.s b/asm/manager25.s deleted file mode 100644 index 63a96de6..00000000 --- a/asm/manager25.s +++ /dev/null @@ -1,82 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805C61C -sub_0805C61C: @ 0x0805C61C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805C674 - movs r0, #0x38 - ldrsh r1, [r4, r0] - ldr r2, _0805C668 @ =gRoomControls - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x3a - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r4, #0x38] - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #2 - bl GetTileType - cmp r0, #0x75 - bne _0805C670 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0805C66C @ =0x0000406A - movs r2, #0x38 - ldrsh r1, [r4, r2] - movs r2, #1 - bl SetTile - b _0805C674 - .align 2, 0 -_0805C668: .4byte gRoomControls -_0805C66C: .4byte 0x0000406A -_0805C670: - bl DeleteThisEntity -_0805C674: - movs r5, #0x38 - ldrsh r0, [r4, r5] - movs r1, #1 - bl GetTileType - ldr r5, _0805C6B4 @ =0x0000406B - cmp r0, r5 - bne _0805C694 - movs r0, #0x38 - ldrsh r1, [r4, r0] - movs r0, #0x76 - movs r2, #2 - bl sub_0807B7D8 - bl DeleteThisEntity -_0805C694: - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #2 - bl GetTileType - cmp r0, #0x76 - bne _0805C6B2 - movs r2, #0x38 - ldrsh r1, [r4, r2] - adds r0, r5, #0 - movs r2, #1 - bl SetTile - bl DeleteThisEntity -_0805C6B2: - pop {r4, r5, pc} - .align 2, 0 -_0805C6B4: .4byte 0x0000406B diff --git a/asm/manager2A.s b/asm/manager2A.s deleted file mode 100644 index 840ddffa..00000000 --- a/asm/manager2A.s +++ /dev/null @@ -1,56 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805CFC0 -sub_0805CFC0: @ 0x0805CFC0 - push {r4, lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _0805CFCE - adds r0, #1 - strb r0, [r1, #0xc] -_0805CFCE: - movs r0, #3 - bl GetCurrentRoomProperty - adds r4, r0, #0 - cmp r4, #0 - beq _0805CFEE - b _0805CFE8 -_0805CFDC: - cmp r0, #0xa - bne _0805CFE6 - adds r0, r4, #0 - bl sub_0805CFF0 -_0805CFE6: - adds r4, #8 -_0805CFE8: - ldrb r0, [r4] - cmp r0, #0 - bne _0805CFDC -_0805CFEE: - pop {r4, pc} - - thumb_func_start sub_0805CFF0 -sub_0805CFF0: @ 0x0805CFF0 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #2] - bl CheckLocalFlag - cmp r0, #0 - bne _0805D012 - ldrh r0, [r4, #4] - ldrb r1, [r4, #1] - bl GetTileType - ldrh r1, [r4, #6] - cmp r1, r0 - bne _0805D012 - ldrh r0, [r4, #2] - bl SetLocalFlag -_0805D012: - pop {r4, pc} diff --git a/asm/manager2B.s b/asm/manager2B.s deleted file mode 100644 index a3227878..00000000 --- a/asm/manager2B.s +++ /dev/null @@ -1,189 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805D014 -sub_0805D014: @ 0x0805D014 - push {lr} - ldr r2, _0805D028 @ =gUnk_08108D30 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805D028: .4byte gUnk_08108D30 - - thumb_func_start sub_0805D02C -sub_0805D02C: @ 0x0805D02C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - ldrh r0, [r6, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805D046 - bl DeleteThisEntity -_0805D046: - ldr r0, _0805D0BC @ =gEntCount - ldrb r0, [r0] - cmp r0, #0x43 - bhi _0805D0B0 - ldrb r0, [r6, #0xa] - bl GetCurrentRoomProperty - adds r5, r0, #0 - movs r7, #0 - movs r0, #0x36 - adds r0, r0, r6 - mov sl, r0 - ldr r1, _0805D0C0 @ =gRoomControls - mov r8, r1 - movs r0, #0x20 - adds r0, r0, r6 - mov sb, r0 -_0805D068: - ldrh r1, [r5, #4] - movs r0, #0xa0 - adds r2, r7, #0 - bl CreateObject - adds r4, r0, #0 - mov r1, r8 - ldrh r0, [r1, #6] - ldrh r1, [r5] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - mov r1, r8 - ldrh r0, [r1, #8] - ldrh r1, [r5, #2] - adds r0, r0, r1 - strh r0, [r4, #0x32] - str r6, [r4, #0x50] - adds r0, r4, #0 - bl sub_08016A30 - mov r0, sb - adds r0, #4 - mov sb, r0 - subs r0, #4 - stm r0!, {r4} - adds r7, #1 - adds r5, #6 - cmp r7, #3 - bls _0805D068 - movs r0, #0 - movs r1, #1 - strb r1, [r6, #0xc] - movs r1, #0x3c - strb r1, [r6, #0xf] - mov r1, sl - strb r0, [r1] -_0805D0B0: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805D0BC: .4byte gEntCount -_0805D0C0: .4byte gRoomControls - - thumb_func_start sub_0805D0C4 -sub_0805D0C4: @ 0x0805D0C4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D0D8 - movs r0, #0xb4 - strb r0, [r4, #0xf] -_0805D0D8: - adds r5, r4, #0 - adds r5, #0x36 - ldrb r0, [r5] - cmp r0, #0xf - bne _0805D0F6 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0x72 - bl SoundReq - adds r0, r4, #0 - bl sub_0805D11C -_0805D0F6: - movs r0, #0 - strb r0, [r5] - pop {r4, r5, pc} - - thumb_func_start sub_0805D0FC -sub_0805D0FC: @ 0x0805D0FC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D118 - ldrh r0, [r4, #0x3e] - bl SetFlag - adds r0, r4, #0 - bl DeleteManager -_0805D118: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805D11C -sub_0805D11C: @ 0x0805D11C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - movs r6, #0 - ldr r1, _0805D170 @ =gRoomControls - mov r8, r1 - movs r7, #0x3f - adds r5, r0, #0 - adds r5, #0x20 -_0805D12E: - ldr r4, [r5] - movs r0, #0 - stm r5!, {r0} - movs r2, #0x2e - ldrsh r0, [r4, r2] - mov r3, r8 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r7 - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r3, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r7 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - adds r0, r4, #0 - bl DeleteEntity - adds r6, #1 - cmp r6, #3 - bls _0805D12E - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805D170: .4byte gRoomControls diff --git a/asm/manager2C.s b/asm/manager2C.s deleted file mode 100644 index 123784c0..00000000 --- a/asm/manager2C.s +++ /dev/null @@ -1,76 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805D174 -sub_0805D174: @ 0x0805D174 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xc] - cmp r1, #0 - bne _0805D184 - movs r0, #1 - strb r0, [r5, #0xc] - strh r1, [r5, #0x3a] -_0805D184: - movs r1, #0x38 - ldrsh r0, [r5, r1] - movs r2, #0x3a - ldrsh r1, [r5, r2] - movs r2, #0x14 - movs r3, #0x40 - bl CheckPlayerInRegion - cmp r0, #0 - beq _0805D1EE - ldr r0, _0805D1F0 @ =gPlayerEntity - movs r4, #0x32 - ldrsh r1, [r0, r4] - ldr r3, _0805D1F4 @ =gRoomControls - ldrh r2, [r3, #8] - subs r1, r1, r2 - movs r4, #0x36 - ldrsh r0, [r0, r4] - adds r1, r1, r0 - cmp r1, #0 - bge _0805D1EE - movs r1, #0xc - ldrsh r0, [r3, r1] - cmp r0, r2 - bne _0805D1EE - ldr r4, _0805D1F8 @ =gUnk_030010AC - adds r0, r4, #0 - movs r1, #0x20 - bl MemClear - subs r4, #0xc - movs r1, #0 - movs r0, #1 - strb r0, [r4, #8] - strb r1, [r4, #9] - movs r0, #0xb - strb r0, [r4, #0xf] - ldrb r0, [r5, #0xb] - strb r0, [r4, #0xc] - ldrb r0, [r5, #0xe] - strb r0, [r4, #0xd] - adds r0, r5, #0 - adds r0, #0x37 - ldrb r0, [r0] - strb r0, [r4, #0xe] - ldrh r0, [r5, #0x3c] - strh r0, [r4, #0x10] - ldrh r0, [r5, #0x3e] - strh r0, [r4, #0x12] - adds r0, r5, #0 - adds r0, #0x36 - ldrb r0, [r0] - strb r0, [r4, #0x14] -_0805D1EE: - pop {r4, r5, pc} - .align 2, 0 -_0805D1F0: .4byte gPlayerEntity -_0805D1F4: .4byte gRoomControls -_0805D1F8: .4byte gUnk_030010AC diff --git a/asm/manager2D.s b/asm/manager2D.s deleted file mode 100644 index 5fd4ed29..00000000 --- a/asm/manager2D.s +++ /dev/null @@ -1,46 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805D1FC -sub_0805D1FC: @ 0x0805D1FC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0805D240 @ =0x00004014 - ldr r1, _0805D244 @ =0x000005C3 - movs r2, #1 - bl SetTile - ldr r3, _0805D248 @ =gRoomControls - ldrh r0, [r3, #8] - adds r0, #0xc8 - ldr r2, _0805D24C @ =gPlayerEntity - movs r5, #0x32 - ldrsh r1, [r2, r5] - cmp r0, r1 - bge _0805D236 - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldrh r1, [r3, #6] - subs r0, r0, r1 - subs r0, #0x30 - cmp r0, #0x10 - bhi _0805D236 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r2, #0 - bl UpdateSpriteForCollisionLayer -_0805D236: - adds r0, r4, #0 - bl DeleteManager - pop {r4, r5, pc} - .align 2, 0 -_0805D240: .4byte 0x00004014 -_0805D244: .4byte 0x000005C3 -_0805D248: .4byte gRoomControls -_0805D24C: .4byte gPlayerEntity diff --git a/asm/manager2E.s b/asm/manager2E.s deleted file mode 100644 index c5b8388b..00000000 --- a/asm/manager2E.s +++ /dev/null @@ -1,183 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805D280 -sub_0805D280: @ 0x0805D280 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3c] - bl CheckFlags - cmp r0, #0 - beq _0805D292 - bl DeleteThisEntity -_0805D292: - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805D2A6 - ldrh r0, [r4, #0x3c] - bl SetFlag - bl DeleteThisEntity -_0805D2A6: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0805D2B4 - movs r0, #0x1e - strb r0, [r4, #0xe] -_0805D2B4: - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805D2C0 -sub_0805D2C0: @ 0x0805D2C0 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805D2EE - ldr r0, _0805D2F0 @ =gUnk_03003DC0 - ldrh r0, [r0, #8] - cmp r0, #1 - bhi _0805D2EE - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #1 - bne _0805D2E6 - adds r0, r4, #0 - bl sub_0805D2F4 -_0805D2E6: - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - bl sub_0805E4E0 -_0805D2EE: - pop {r4, pc} - .align 2, 0 -_0805D2F0: .4byte gUnk_03003DC0 - - thumb_func_start sub_0805D2F4 -sub_0805D2F4: @ 0x0805D2F4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0805D310 @ =gUnk_03003DC0 - ldrh r0, [r0, #8] - cmp r0, #0 - bne _0805D328 - movs r1, #0x38 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0805D314 - bl SoundReq - b _0805D31A - .align 2, 0 -_0805D310: .4byte gUnk_03003DC0 -_0805D314: - movs r0, #0x72 - bl SoundReq -_0805D31A: - ldrh r0, [r4, #0x3c] - cmp r0, #0 - beq _0805D324 - bl SetFlag -_0805D324: - bl DeleteThisEntity -_0805D328: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805D32C -sub_0805D32C: @ 0x0805D32C - push {lr} - ldr r2, _0805D340 @ =gUnk_08108D50 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805D340: .4byte gUnk_08108D50 - - thumb_func_start sub_0805D344 -sub_0805D344: @ 0x0805D344 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl CheckFlags - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0805D35C - movs r0, #0x1e - strb r0, [r4, #0xe] -_0805D35C: - ldrb r0, [r4, #0xe] - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805D36C -sub_0805D36C: @ 0x0805D36C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805D382 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xf] - strb r0, [r4, #0xe] -_0805D382: - pop {r4, pc} - - thumb_func_start sub_0805D384 -sub_0805D384: @ 0x0805D384 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0805D3B2 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D3C6 - movs r1, #0x38 - ldrsh r0, [r4, r1] - movs r1, #0x72 - cmp r0, #0 - beq _0805D3A4 - adds r1, r0, #0 -_0805D3A4: - adds r0, r1, #0 - bl SoundReq - ldrh r0, [r4, #0x3c] - bl SetFlag - b _0805D3C6 -_0805D3B2: - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - bne _0805D3C6 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3c] - bl ClearFlag -_0805D3C6: - pop {r4, pc} diff --git a/asm/manager2F.s b/asm/manager2F.s deleted file mode 100644 index f85e6167..00000000 --- a/asm/manager2F.s +++ /dev/null @@ -1,114 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805D3C8 -sub_0805D3C8: @ 0x0805D3C8 - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - bne _0805D3F4 - ldr r0, _0805D3E8 @ =gArea - ldr r1, _0805D3EC @ =0x0000088C - adds r0, r0, r1 - ldr r0, [r0] - ldr r1, _0805D3F0 @ =sub_0805D470 - cmp r0, r1 - beq _0805D45E - movs r0, #0 - bl _call_via_r1 - b _0805D45E - .align 2, 0 -_0805D3E8: .4byte gArea -_0805D3EC: .4byte 0x0000088C -_0805D3F0: .4byte sub_0805D470 -_0805D3F4: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805D43A - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 - ldr r0, _0805D428 @ =gArea - ldr r2, _0805D42C @ =0x0000088C - adds r0, r0, r2 - ldr r0, [r0] - cmp r0, #0 - bne _0805D434 - ldr r1, _0805D430 @ =sub_0805D470 - adds r0, r4, #0 - movs r2, #0 - bl sub_08052D74 - b _0805D45E - .align 2, 0 -_0805D428: .4byte gArea -_0805D42C: .4byte 0x0000088C -_0805D430: .4byte sub_0805D470 -_0805D434: - bl DeleteThisEntity - b _0805D45E -_0805D43A: - ldr r1, _0805D460 @ =gRoomControls - ldr r0, [r1, #0x28] - ldr r3, _0805D464 @ =0xFFFFC000 - adds r0, r0, r3 - str r0, [r1, #0x28] - ldr r0, [r1, #0x2c] - ldr r2, _0805D468 @ =0xFFFFE000 - adds r0, r0, r2 - str r0, [r1, #0x2c] - ldr r2, _0805D46C @ =gScreen - ldrh r0, [r1, #0x2a] - ldrh r3, [r1, #0xa] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r2, #0x30] -_0805D45E: - pop {r4, pc} - .align 2, 0 -_0805D460: .4byte gRoomControls -_0805D464: .4byte 0xFFFFC000 -_0805D468: .4byte 0xFFFFE000 -_0805D46C: .4byte gScreen - - thumb_func_start sub_0805D470 -sub_0805D470: @ 0x0805D470 - push {lr} - movs r0, #0x4c - bl LoadGfxGroup - ldr r2, _0805D4A0 @ =gScreen - ldr r0, _0805D4A4 @ =0x00001E07 - strh r0, [r2, #0x2c] - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _0805D4A8 @ =gRoomControls - ldrh r0, [r1, #0x2a] - ldrh r3, [r1, #0xa] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x2e] - ldrh r1, [r1, #0xc] - adds r0, r0, r1 - strh r0, [r2, #0x30] - pop {pc} - .align 2, 0 -_0805D4A0: .4byte gScreen -_0805D4A4: .4byte 0x00001E07 -_0805D4A8: .4byte gRoomControls diff --git a/asm/manager31.s b/asm/manager31.s deleted file mode 100644 index 14dfde91..00000000 --- a/asm/manager31.s +++ /dev/null @@ -1,182 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805D630 -sub_0805D630: @ 0x0805D630 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - ldrb r0, [r6, #0xc] - cmp r0, #0 - beq _0805D642 - b _0805D768 -_0805D642: - adds r0, #1 - strb r0, [r6, #0xc] - movs r0, #0x42 - bl CheckGlobalFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x43 - bl CheckGlobalFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x44 - bl CheckGlobalFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x3e - bl CheckGlobalFlag - cmp r0, #0 - bne _0805D680 - movs r0, #2 - bl CheckGlobalFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x3e - bl SetGlobalFlag - b _0805D6D2 -_0805D680: - movs r0, #0x3f - bl CheckGlobalFlag - cmp r0, #0 - bne _0805D69C - movs r0, #3 - bl CheckGlobalFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x3f - bl SetGlobalFlag - b _0805D6D2 -_0805D69C: - movs r0, #0x40 - bl CheckGlobalFlag - cmp r0, #0 - bne _0805D6B8 - movs r0, #4 - bl CheckGlobalFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x40 - bl SetGlobalFlag - b _0805D6D2 -_0805D6B8: - movs r0, #0x41 - bl CheckGlobalFlag - cmp r0, #0 - bne _0805D6E4 - movs r0, #5 - bl CheckGlobalFlag - cmp r0, #0 - beq _0805D6E4 - movs r0, #0x41 - bl SetGlobalFlag -_0805D6D2: - movs r0, #0x42 - bl ClearGlobalFlag - movs r0, #0x43 - bl ClearGlobalFlag - movs r0, #0x44 - bl ClearGlobalFlag -_0805D6E4: - adds r1, r6, #0 - adds r1, #0x22 - movs r0, #0 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - ldr r4, _0805D79C @ =gUnk_08108D5C - movs r5, #0 - mov sb, r1 - movs r7, #1 - ldr r0, _0805D7A0 @ =gRoomControls - mov r8, r0 -_0805D700: - adds r0, r5, #0 - adds r0, #0x42 - bl CheckGlobalFlag - cmp r0, #0 - bne _0805D760 - bl Random - ldrh r1, [r4, #2] - bl __modsi3 - adds r2, r0, #0 - ldrh r0, [r4] - adds r2, r2, r0 - movs r0, #2 - movs r1, #0x5c - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805D760 - strb r7, [r2, #0xe] - strb r5, [r2, #0xf] - mov r1, r8 - ldrh r0, [r1, #6] - ldrh r1, [r4, #4] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - mov r1, r8 - ldrh r0, [r1, #8] - ldrh r1, [r4, #6] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldrh r1, [r4, #4] - adds r0, r2, #0 - adds r0, #0x80 - strh r1, [r0] - ldrh r0, [r4, #6] - adds r1, r2, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x38 - strb r7, [r0] - str r6, [r2, #0x50] - mov r1, sb - adds r0, r1, r5 - strb r7, [r0] -_0805D760: - adds r5, #1 - adds r4, #8 - cmp r5, #2 - ble _0805D700 -_0805D768: - movs r5, #0 -_0805D76A: - adds r4, r5, #0 - adds r4, #0x42 - adds r0, r4, #0 - bl CheckGlobalFlag - cmp r0, #0 - bne _0805D78E - adds r0, r6, #0 - adds r0, #0x20 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _0805D78E - adds r0, r4, #0 - bl SetGlobalFlag -_0805D78E: - adds r5, #1 - cmp r5, #2 - ble _0805D76A - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805D79C: .4byte gUnk_08108D5C -_0805D7A0: .4byte gRoomControls diff --git a/asm/manager32.s b/asm/manager32.s deleted file mode 100644 index 85883c5a..00000000 --- a/asm/manager32.s +++ /dev/null @@ -1,449 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805D7A4 -sub_0805D7A4: @ 0x0805D7A4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0805D7D4 @ =gUnk_08108D7C - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r0, _0805D7D8 @ =gScreenTransition - ldr r0, [r0] - lsls r0, r0, #4 - str r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0805D9D8 - ldr r0, [r4, #0x20] - ldr r1, [r4, #0x28] - ldr r2, [r4, #0x24] - bl sub_0805DA08 - pop {r4, pc} - .align 2, 0 -_0805D7D4: .4byte gUnk_08108D7C -_0805D7D8: .4byte gScreenTransition - - thumb_func_start sub_0805D7DC -sub_0805D7DC: @ 0x0805D7DC - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - movs r2, #2 - cmp r0, #0 - bne _0805D7EA - movs r2, #1 -_0805D7EA: - movs r0, #0 - strb r2, [r1, #0xc] - str r0, [r1, #0x20] - str r0, [r1, #0x24] - ldr r0, _0805D80C @ =gRoomControls - ldrb r0, [r0, #4] - cmp r0, #0x78 - beq _0805D83C - cmp r0, #0x78 - bgt _0805D816 - cmp r0, #7 - beq _0805D828 - cmp r0, #7 - bgt _0805D810 - cmp r0, #3 - beq _0805D82C - b _0805D828 - .align 2, 0 -_0805D80C: .4byte gRoomControls -_0805D810: - cmp r0, #0x38 - beq _0805D840 - b _0805D828 -_0805D816: - cmp r0, #0x81 - beq _0805D830 - cmp r0, #0x81 - bgt _0805D824 - cmp r0, #0x80 - beq _0805D834 - b _0805D828 -_0805D824: - cmp r0, #0x88 - beq _0805D838 -_0805D828: - movs r1, #0 - b _0805D842 -_0805D82C: - movs r1, #1 - b _0805D842 -_0805D830: - movs r1, #2 - b _0805D842 -_0805D834: - movs r1, #3 - b _0805D842 -_0805D838: - movs r1, #4 - b _0805D842 -_0805D83C: - movs r1, #5 - b _0805D842 -_0805D840: - movs r1, #6 -_0805D842: - ldr r0, _0805D854 @ =gUnk_08108D74 - adds r0, r1, r0 - ldrb r0, [r0] - bl LoadGfxGroup - ldr r1, _0805D858 @ =gScreen - ldr r0, _0805D85C @ =0x00001E04 - strh r0, [r1, #0x2c] - pop {pc} - .align 2, 0 -_0805D854: .4byte gUnk_08108D74 -_0805D858: .4byte gScreen -_0805D85C: .4byte 0x00001E04 - - thumb_func_start sub_0805D860 -sub_0805D860: @ 0x0805D860 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xd] - cmp r0, #1 - beq _0805D89C - cmp r0, #1 - bgt _0805D874 - cmp r0, #0 - beq _0805D87E - b _0805D8D6 -_0805D874: - cmp r0, #2 - beq _0805D8B0 - cmp r0, #3 - beq _0805D8C2 - b _0805D8D6 -_0805D87E: - movs r0, #1 - strb r0, [r1, #0xd] - movs r0, #0x80 - str r0, [r1, #0x20] - ldr r2, _0805D898 @ =gScreen - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - b _0805D8F4 - .align 2, 0 -_0805D898: .4byte gScreen -_0805D89C: - ldr r0, [r1, #0x20] - subs r0, #1 - str r0, [r1, #0x20] - cmp r0, #0x10 - bne _0805D8F4 - movs r0, #2 - strb r0, [r1, #0xd] - movs r0, #0x2d - strb r0, [r1, #0xe] - b _0805D8F4 -_0805D8B0: - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D8F4 - movs r0, #3 - strb r0, [r1, #0xd] - b _0805D8F4 -_0805D8C2: - ldr r0, [r1, #0x20] - subs r0, #1 - str r0, [r1, #0x20] - cmp r0, #0 - bne _0805D8F4 - movs r0, #4 - strb r0, [r1, #0xd] - movs r0, #0x3c - strb r0, [r1, #0xe] - b _0805D8F4 -_0805D8D6: - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D8F4 - bl sub_0801E104 - ldr r2, _0805D8F8 @ =gScreen - ldrh r1, [r2] - ldr r0, _0805D8FC @ =0x0000F7FF - ands r0, r1 - strh r0, [r2] - bl DeleteThisEntity -_0805D8F4: - pop {pc} - .align 2, 0 -_0805D8F8: .4byte gScreen -_0805D8FC: .4byte 0x0000F7FF - - thumb_func_start sub_0805D900 -sub_0805D900: @ 0x0805D900 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #1 - beq _0805D938 - cmp r0, #1 - bgt _0805D914 - cmp r0, #0 - beq _0805D91A - b _0805D966 -_0805D914: - cmp r0, #2 - beq _0805D94E - b _0805D966 -_0805D91A: - movs r1, #1 - strb r1, [r2, #0xd] - movs r0, #0x2d - strb r0, [r2, #0xe] - str r1, [r2, #0x20] - ldr r2, _0805D934 @ =gScreen - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - b _0805D982 - .align 2, 0 -_0805D934: .4byte gScreen -_0805D938: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D982 - movs r0, #2 - strb r0, [r2, #0xd] - movs r0, #0x14 - strb r0, [r2, #0xe] - b _0805D982 -_0805D94E: - ldr r0, [r2, #0x20] - adds r0, #1 - str r0, [r2, #0x20] - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805D982 - movs r0, #3 - strb r0, [r2, #0xd] - b _0805D982 -_0805D966: - ldr r0, [r2, #0x20] - adds r0, #4 - str r0, [r2, #0x20] - cmp r0, #0x80 - bls _0805D982 - bl sub_0801E104 - ldr r2, _0805D984 @ =gScreen - ldrh r1, [r2] - ldr r0, _0805D988 @ =0x0000F7FF - ands r0, r1 - strh r0, [r2] - bl DeleteThisEntity -_0805D982: - pop {pc} - .align 2, 0 -_0805D984: .4byte gScreen -_0805D988: .4byte 0x0000F7FF - - thumb_func_start sub_0805D98C -sub_0805D98C: @ 0x0805D98C - push {lr} - adds r2, r0, #0 - ldr r3, _0805D9D4 @ =gInput - ldrh r1, [r3] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0805D9A2 - ldr r0, [r2, #0x20] - subs r0, #1 - str r0, [r2, #0x20] -_0805D9A2: - ldrh r1, [r3] - movs r0, #0x80 - ands r0, r1 - adds r3, r1, #0 - cmp r0, #0 - beq _0805D9B4 - ldr r0, [r2, #0x20] - adds r0, #1 - str r0, [r2, #0x20] -_0805D9B4: - movs r0, #0x20 - ands r0, r3 - cmp r0, #0 - beq _0805D9C2 - ldr r0, [r2, #0x28] - subs r0, #1 - str r0, [r2, #0x28] -_0805D9C2: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0805D9D0 - ldr r0, [r2, #0x28] - adds r0, #1 - str r0, [r2, #0x28] -_0805D9D0: - pop {pc} - .align 2, 0 -_0805D9D4: .4byte gInput - - thumb_func_start sub_0805D9D8 -sub_0805D9D8: @ 0x0805D9D8 - push {r4, lr} - ldr r4, [r0, #0x14] - cmp r4, #0 - beq _0805D9FC - ldr r3, _0805DA00 @ =gScreen - ldr r2, _0805DA04 @ =gRoomControls - ldrh r1, [r4, #0x2e] - ldrh r0, [r2, #0xa] - subs r1, r1, r0 - movs r0, #0x80 - subs r0, r0, r1 - strh r0, [r3, #0x2e] - ldrh r1, [r4, #0x32] - ldrh r0, [r2, #0xc] - subs r1, r1, r0 - movs r0, #0x8c - subs r0, r0, r1 - strh r0, [r3, #0x30] -_0805D9FC: - pop {r4, pc} - .align 2, 0 -_0805DA00: .4byte gScreen -_0805DA04: .4byte gRoomControls - - thumb_func_start sub_0805DA08 -sub_0805DA08: @ 0x0805DA08 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sl, r0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r2, _0805DA78 @ =gUnk_03003DE4 - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _0805DA7C @ =gUnk_02017AA0 - adds r4, r0, r1 - movs r3, #0 - mov r8, r2 - mov sb, r1 - ldr r0, _0805DA80 @ =gSineTable - mov ip, r0 - movs r2, #0xff - ldr r1, _0805DA84 @ =gScreen -_0805DA34: - adds r0, r6, r3 - adds r0, r0, r5 - ands r0, r2 - lsls r0, r0, #1 - add r0, ip - movs r7, #0 - ldrsh r0, [r0, r7] - mov r7, sl - muls r7, r0, r7 - adds r0, r7, #0 - lsrs r0, r0, #8 - ldrh r7, [r1, #0x2e] - adds r0, r0, r7 - strh r0, [r4] - adds r4, #2 - adds r3, #1 - adds r5, #0x17 - cmp r3, #0x9f - bls _0805DA34 - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - add r0, sb - ldr r1, _0805DA88 @ =0x0400001C - ldr r2, _0805DA8C @ =0xA2600001 - bl sub_0805622C - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805DA78: .4byte gUnk_03003DE4 -_0805DA7C: .4byte gUnk_02017AA0 -_0805DA80: .4byte gSineTable -_0805DA84: .4byte gScreen -_0805DA88: .4byte 0x0400001C -_0805DA8C: .4byte 0xA2600001 - - thumb_func_start sub_0805DA90 -sub_0805DA90: @ 0x0805DA90 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl GetEmptyManager - adds r1, r0, #0 - cmp r1, #0 - beq _0805DAB4 - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x32 - strb r0, [r1, #9] - strb r4, [r1, #0xa] - str r5, [r1, #0x14] - adds r0, r1, #0 - movs r1, #8 - bl AppendEntityToList -_0805DAB4: - ldr r0, _0805DAD8 @ =gArea - ldr r1, _0805DADC @ =0x0000088C - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, #0 - beq _0805DAD4 - ldr r2, _0805DAE0 @ =gScreen - ldrh r1, [r2] - ldr r0, _0805DAE4 @ =0x0000F7FF - ands r0, r1 - strh r0, [r2] - bl sub_080528F0 - ldr r0, [r4] - bl DeleteManager -_0805DAD4: - pop {r4, r5, pc} - .align 2, 0 -_0805DAD8: .4byte gArea -_0805DADC: .4byte 0x0000088C -_0805DAE0: .4byte gScreen -_0805DAE4: .4byte 0x0000F7FF diff --git a/asm/manager33.s b/asm/manager33.s deleted file mode 100644 index e42eafd4..00000000 --- a/asm/manager33.s +++ /dev/null @@ -1,93 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805DAE8 -sub_0805DAE8: @ 0x0805DAE8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r2, r0, #0 - ldr r5, _0805DB4C @ =gRoomControls - ldrh r0, [r5, #6] - movs r1, #0xfc - lsls r1, r1, #1 - mov r8, r1 - add r0, r8 - ldr r3, _0805DB50 @ =gPlayerEntity - movs r4, #0x2e - ldrsh r1, [r3, r4] - subs r0, r0, r1 - adds r4, r0, #0 - adds r4, #0x10 - ldrh r0, [r5, #8] - movs r7, #0xa0 - lsls r7, r7, #1 - adds r0, r0, r7 - movs r6, #0x32 - ldrsh r1, [r3, r6] - subs r0, r0, r1 - adds r0, #0x10 - ldrb r6, [r2, #0xc] - cmp r6, #0 - bne _0805DB58 - cmp r4, #0x1f - bhi _0805DB88 - cmp r0, #0x1f - bhi _0805DB88 - movs r0, #0x36 - ldrsh r1, [r3, r0] - movs r0, #0x18 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0805DB88 - ldr r0, _0805DB54 @ =gPlayerState - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x14 - bne _0805DB88 - adds r0, r6, #1 - strb r0, [r2, #0xc] - movs r0, #0x5a - strb r0, [r2, #0xe] - adds r0, #0xb0 - bl SoundReq - b _0805DB88 - .align 2, 0 -_0805DB4C: .4byte gRoomControls -_0805DB50: .4byte gPlayerEntity -_0805DB54: .4byte gPlayerState -_0805DB58: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805DB88 - movs r0, #0x96 - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0805DB84 - ldrh r0, [r5, #6] - add r0, r8 - strh r0, [r1, #0x2e] - ldrh r0, [r5, #8] - adds r0, r0, r7 - strh r0, [r1, #0x32] - ldr r0, _0805DB90 @ =0x0000FFE8 - strh r0, [r1, #0x36] -_0805DB84: - bl DeleteThisEntity -_0805DB88: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805DB90: .4byte 0x0000FFE8 diff --git a/asm/manager34.s b/asm/manager34.s deleted file mode 100644 index c7cb0680..00000000 --- a/asm/manager34.s +++ /dev/null @@ -1,143 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805DB94 -sub_0805DB94: @ 0x0805DB94 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0805DBB0 @ =gUnk_08108D8C - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0805DBF0 - pop {r4, pc} - .align 2, 0 -_0805DBB0: .4byte gUnk_08108D8C - - thumb_func_start sub_0805DBB4 -sub_0805DBB4: @ 0x0805DBB4 - movs r1, #1 - strb r1, [r0, #0xc] - ldr r1, _0805DBC8 @ =gScreenTransition - adds r1, #0x3d - ldrb r2, [r1] - lsls r1, r2, #4 - subs r1, r1, r2 - lsls r1, r1, #2 - strh r1, [r0, #0x20] - bx lr - .align 2, 0 -_0805DBC8: .4byte gScreenTransition - - thumb_func_start sub_0805DBCC -sub_0805DBCC: @ 0x0805DBCC - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x14] - ldr r0, [r0, #4] - cmp r0, #0 - bne _0805DBE6 - movs r0, #2 - strb r0, [r1, #0xc] - ldrh r0, [r1, #0x20] - ldr r2, _0805DBE8 @ =0x0000012D - cmp r0, r2 - bls _0805DBE6 - strh r2, [r1, #0x20] -_0805DBE6: - pop {pc} - .align 2, 0 -_0805DBE8: .4byte 0x0000012D - - thumb_func_start nullsub_498 -nullsub_498: @ 0x0805DBEC - bx lr - .align 2, 0 - - thumb_func_start sub_0805DBF0 -sub_0805DBF0: @ 0x0805DBF0 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x20] - subs r1, r0, #1 - strh r1, [r4, #0x20] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _0805DC06 - bl sub_0805DC70 - b _0805DC6C -_0805DC06: - lsls r0, r1, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x78 - bne _0805DC18 - movs r0, #0x78 - movs r1, #2 - bl sub_08080964 - b _0805DC36 -_0805DC18: - cmp r1, #0xd2 - bne _0805DC26 - movs r0, #0x5a - movs r1, #1 - bl sub_08080964 - b _0805DC36 -_0805DC26: - movs r0, #0x96 - lsls r0, r0, #1 - cmp r1, r0 - bne _0805DC36 - movs r0, #0x5a - movs r1, #0 - bl sub_08080964 -_0805DC36: - ldrh r1, [r4, #0x20] - adds r0, r1, #0 - cmp r0, #0x77 - bhi _0805DC42 - movs r0, #0xf - b _0805DC48 -_0805DC42: - cmp r0, #0xd1 - bhi _0805DC58 - movs r0, #0x1f -_0805DC48: - ands r0, r1 - cmp r0, #0 - bne _0805DC6C - movs r0, #0x93 - lsls r0, r0, #1 - bl SoundReq - b _0805DC6C -_0805DC58: - cmp r0, #0xc7 - bhi _0805DC6C - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _0805DC6C - movs r0, #0x93 - lsls r0, r0, #1 - bl SoundReq -_0805DC6C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805DC70 -sub_0805DC70: @ 0x0805DC70 - push {lr} - bl sub_0805E5A8 - ldr r0, _0805DC80 @ =gUnk_0813AC48 - bl DoExitTransition - pop {pc} - .align 2, 0 -_0805DC80: .4byte gUnk_0813AC48 diff --git a/asm/manager35.s b/asm/manager35.s deleted file mode 100644 index 0cd47948..00000000 --- a/asm/manager35.s +++ /dev/null @@ -1,166 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805DC84 -sub_0805DC84: @ 0x0805DC84 - push {lr} - ldr r2, _0805DC98 @ =gUnk_08108D98 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805DC98: .4byte gUnk_08108D98 - - thumb_func_start sub_0805DC9C -sub_0805DC9C: @ 0x0805DC9C - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3c] - bl CheckFlags - cmp r0, #0 - beq _0805DCAE - bl DeleteThisEntity -_0805DCAE: - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805DCC2 - ldrh r0, [r4, #0x3c] - bl SetFlag - bl DeleteThisEntity -_0805DCC2: - movs r0, #1 - strb r0, [r4, #0xc] - pop {r4, pc} - - thumb_func_start sub_0805DCC8 -sub_0805DCC8: @ 0x0805DCC8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805DD1E - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x35 - ldrb r0, [r0] - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805DCEC - movs r0, #0x1e - strb r0, [r4, #0xe] -_0805DCEC: - ldr r5, _0805DD20 @ =gRoomControls - ldr r0, [r5, #0x30] - str r0, [r4, #0x14] - movs r0, #0x69 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0805DD1E - ldrh r0, [r5, #6] - ldrh r2, [r4, #0x38] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldrh r0, [r5, #8] - ldrh r2, [r4, #0x3a] - adds r0, r0, r2 - strh r0, [r1, #0x32] - str r1, [r4, #0x18] - str r1, [r5, #0x30] - adds r0, r1, #0 - movs r1, #0x1e - bl sub_0805E4E0 -_0805DD1E: - pop {r4, r5, pc} - .align 2, 0 -_0805DD20: .4byte gRoomControls - - thumb_func_start sub_0805DD24 -sub_0805DD24: @ 0x0805DD24 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - movs r1, #8 - bl sub_0805E4E0 - ldr r0, _0805DD64 @ =gRoomControls - ldrb r1, [r0, #0xf] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0805DD60 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805DD60 - movs r0, #3 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3c] - bl SetFlag - adds r1, r4, #0 - adds r1, #0x36 - ldrb r0, [r1] - cmp r0, #0 - bne _0805DD60 - movs r0, #1 - strb r0, [r1] -_0805DD60: - pop {r4, pc} - .align 2, 0 -_0805DD64: .4byte gRoomControls - - thumb_func_start sub_0805DD68 -sub_0805DD68: @ 0x0805DD68 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - movs r1, #8 - bl sub_0805E4E0 - adds r1, r4, #0 - adds r1, #0x36 - ldrb r0, [r1] - cmp r0, #0 - beq _0805DD94 - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805DDAE - ldr r1, _0805DD90 @ =gRoomControls - ldr r0, [r4, #0x14] - str r0, [r1, #0x30] - b _0805DDAE - .align 2, 0 -_0805DD90: .4byte gRoomControls -_0805DD94: - ldr r0, _0805DDB0 @ =gRoomControls - ldrb r1, [r0, #0xf] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0805DDAE - ldr r0, [r4, #0x18] - cmp r0, #0 - beq _0805DDAA - bl DeleteEntity -_0805DDAA: - bl DeleteThisEntity -_0805DDAE: - pop {r4, pc} - .align 2, 0 -_0805DDB0: .4byte gRoomControls diff --git a/asm/manager36.s b/asm/manager36.s deleted file mode 100644 index e4fae5aa..00000000 --- a/asm/manager36.s +++ /dev/null @@ -1,81 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805DDB4 -sub_0805DDB4: @ 0x0805DDB4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - lsls r0, r0, #2 - ldr r1, _0805DDE0 @ =gUnk_08108DA8 - adds r3, r0, r1 - ldrb r0, [r2, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _0805DDCE - adds r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0xe] -_0805DDCE: - ldrb r0, [r2, #0xe] - cmp r0, #0 - bne _0805DDE4 - ldrh r0, [r3] - strb r0, [r2, #0xe] - ldrh r0, [r3, #2] - bl SoundReq - b _0805DDE8 - .align 2, 0 -_0805DDE0: .4byte gUnk_08108DA8 -_0805DDE4: - subs r0, #1 - strb r0, [r2, #0xe] -_0805DDE8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805DDEC -sub_0805DDEC: @ 0x0805DDEC - push {r4, r5, lr} - adds r5, r1, #0 - bl GetEmptyManager - adds r4, r0, #0 - cmp r4, #0 - beq _0805DE16 - movs r0, #9 - strb r0, [r4, #8] - movs r0, #0x36 - strb r0, [r4, #9] - ldr r0, [r5, #4] - strb r0, [r4, #0xa] - adds r0, r4, #0 - movs r1, #6 - bl AppendEntityToList - adds r0, r4, #0 - movs r1, #6 - bl sub_0805E3A0 -_0805DE16: - pop {r4, r5, pc} - - thumb_func_start sub_0805DE18 -sub_0805DE18: @ 0x0805DE18 - push {lr} - sub sp, #4 - ldr r3, [r1, #4] - movs r0, #0 - str r0, [sp] - movs r0, #9 - movs r1, #0x36 - movs r2, #6 - bl FindEntity - cmp r0, #0 - beq _0805DE34 - bl DeleteEntityAny -_0805DE34: - add sp, #4 - pop {pc} diff --git a/asm/manager37.s b/asm/manager37.s deleted file mode 100644 index 35b69824..00000000 --- a/asm/manager37.s +++ /dev/null @@ -1,390 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805DE38 -sub_0805DE38: @ 0x0805DE38 - push {lr} - ldr r2, _0805DE4C @ =gUnk_08108DBC - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805DE4C: .4byte gUnk_08108DBC - - thumb_func_start sub_0805DE50 -sub_0805DE50: @ 0x0805DE50 - push {lr} - ldr r2, _0805DE64 @ =gUnk_08108DC4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805DE64: .4byte gUnk_08108DC4 - - thumb_func_start sub_0805DE68 -sub_0805DE68: @ 0x0805DE68 -.ifdef JP - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x7b - bl CheckLocalFlag - cmp r0, #0 - bne _0805DCCE - bl DeleteThisEntity -_0805DCCE: - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _0805DCF4 @ =0x030010A0 - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x39 - movs r0, #0xf - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x3a - movs r1, #0x20 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - pop {r4, pc} - .align 2, 0 -_0805DCF4: .4byte gScreenTransition -.else -.ifdef EU - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x7b - bl CheckLocalFlag - cmp r0, #0 - bne _0805D916 - bl DeleteThisEntity -_0805D916: - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _0805D93C @ =gScreenTransition - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x39 - movs r0, #0xf - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x3a - movs r1, #0x20 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - pop {r4, pc} - .align 2, 0 -_0805D93C: .4byte gScreenTransition - -.else - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x7b - bl CheckLocalFlag - cmp r0, #0 - bne _0805DE7A - bl DeleteThisEntity -_0805DE7A: - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _0805DEAC @ =gScreenTransition - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x39 - movs r0, #0xf - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x3a - movs r1, #0x20 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - ldr r0, _0805DEB0 @ =gSave - movs r1, #0x93 - lsls r1, r1, #3 - adds r0, r0, r1 - ldr r1, _0805DEB4 @ =0x00001194 - str r1, [r0] - pop {r4, pc} - .align 2, 0 -_0805DEAC: .4byte gScreenTransition -_0805DEB0: .4byte gSave -_0805DEB4: .4byte 0x00001194 -.endif -.endif - - thumb_func_start sub_0805DEB8 -sub_0805DEB8: @ 0x0805DEB8 - push {r4, r5, lr} - adds r3, r0, #0 - ldr r5, _0805DF44 @ =gPlayerEntity - movs r0, #0x2e - ldrsh r2, [r5, r0] - subs r2, #0x88 - ldr r4, _0805DF48 @ =gRoomControls - ldrh r0, [r4, #6] - subs r2, r2, r0 - movs r1, #0x32 - ldrsh r0, [r5, r1] - subs r0, #0x40 - ldrh r1, [r4, #8] - subs r0, r0, r1 - adds r1, r2, #0 - muls r1, r2, r1 - adds r2, r0, #0 - muls r2, r0, r2 - adds r0, r2, #0 - adds r1, r1, r0 - movs r0, #0x90 - lsls r0, r0, #4 - cmp r1, r0 - bgt _0805DF42 - movs r0, #0 - movs r1, #2 - strb r1, [r3, #0xc] - strb r0, [r3, #0xd] - movs r0, #0x78 - strb r0, [r3, #0xe] - movs r0, #2 - bl sub_08078A90 - bl sub_08078B48 - movs r0, #0x64 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805DF1A - ldrh r0, [r4, #6] - adds r0, #0x88 - strh r0, [r2, #0x2e] - ldrh r0, [r4, #8] - adds r0, #0x48 - strh r0, [r2, #0x32] -_0805DF1A: - movs r2, #0x10 - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #8 - bl CreateSpeechBubbleExclamationMark - adds r2, r0, #0 - cmp r2, #0 - beq _0805DF3C - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] -_0805DF3C: - movs r0, #0x32 - bl SoundReq -_0805DF42: - pop {r4, r5, pc} - .align 2, 0 -_0805DF44: .4byte gPlayerEntity -_0805DF48: .4byte gRoomControls - - thumb_func_start sub_0805DF4C -sub_0805DF4C: @ 0x0805DF4C - push {lr} - adds r1, r0, #0 - ldr r2, _0805DF70 @ =gPlayerEntity - movs r0, #0 - strb r0, [r2, #0x14] - movs r3, #0x36 - ldrsh r0, [r2, r3] - cmp r0, #0 - beq _0805DF78 - movs r1, #0x32 - ldrsh r0, [r2, r1] - ldr r1, _0805DF74 @ =gRoomControls - ldrh r1, [r1, #8] - adds r1, #0x48 - cmp r0, r1 - bge _0805DF92 - strh r1, [r2, #0x32] - b _0805DF92 - .align 2, 0 -_0805DF70: .4byte gPlayerEntity -_0805DF74: .4byte gRoomControls -_0805DF78: - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0805DF92 - movs r0, #3 - strb r0, [r1, #0xc] - movs r0, #0x1e - strb r0, [r1, #0xe] - ldr r0, _0805DF94 @ =0x0000164F - bl TextboxNoOverlapFollow -_0805DF92: - pop {pc} - .align 2, 0 -_0805DF94: .4byte 0x0000164F - - thumb_func_start sub_0805DF98 -sub_0805DF98: @ 0x0805DF98 - push {lr} - adds r2, r0, #0 - ldr r0, _0805DFB4 @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0805DFCA - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _0805DFB8 - subs r0, #1 - strb r0, [r2, #0xe] - b _0805DFCA - .align 2, 0 -_0805DFB4: .4byte gTextBox -_0805DFB8: - movs r0, #4 - strb r0, [r2, #0xc] - movs r0, #7 - movs r1, #4 - bl DoFade - movs r0, #0xf6 - bl SoundReq -_0805DFCA: - pop {pc} - - thumb_func_start sub_0805DFCC -sub_0805DFCC: @ 0x0805DFCC - push {lr} - ldr r0, _0805DFE4 @ =gFadeControl - ldrb r0, [r0] - cmp r0, #0 - bne _0805DFE0 - movs r0, #0x1c - bl ClearGlobalFlag - bl sub_0805E094 -_0805DFE0: - pop {pc} - .align 2, 0 -_0805DFE4: .4byte gFadeControl - - thumb_func_start sub_0805DFE8 -sub_0805DFE8: @ 0x0805DFE8 - push {lr} - ldr r2, _0805DFFC @ =gUnk_08108DD8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805DFFC: .4byte gUnk_08108DD8 - - thumb_func_start sub_0805E000 -sub_0805E000: @ 0x0805E000 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0x51 - movs r1, #0 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0805E062 - ldr r1, _0805E064 @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, #0xb0 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #8] - adds r0, #0x48 - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x38 - movs r5, #1 - strb r5, [r0] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer - ldr r0, _0805E068 @ =gScreenTransition - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0805E040 - bl DeleteThisEntity -_0805E040: - str r4, [r6, #0x18] - strb r5, [r6, #0xc] - movs r0, #3 - bl sub_08078A90 - ldr r0, _0805E06C @ =gArea - ldr r1, _0805E070 @ =0x00000864 - adds r0, r0, r1 - ldr r1, _0805E074 @ =0x80010000 - str r1, [r0] - movs r0, #6 - movs r1, #4 - bl DoFade - movs r0, #0xf7 - bl SoundReq -_0805E062: - pop {r4, r5, r6, pc} - .align 2, 0 -_0805E064: .4byte gRoomControls -_0805E068: .4byte gScreenTransition -_0805E06C: .4byte gArea -_0805E070: .4byte 0x00000864 -_0805E074: .4byte 0x80010000 - - thumb_func_start sub_0805E078 -sub_0805E078: @ 0x0805E078 - push {lr} - adds r1, r0, #0 - ldr r0, _0805E090 @ =gFadeControl - ldrb r0, [r0] - cmp r0, #0 - bne _0805E08E - ldr r1, [r1, #0x18] - movs r0, #1 - strb r0, [r1, #0xd] - bl DeleteThisEntity -_0805E08E: - pop {pc} - .align 2, 0 -_0805E090: .4byte gFadeControl - - thumb_func_start sub_0805E094 -sub_0805E094: @ 0x0805E094 - push {lr} - bl sub_0805E5A8 - ldr r0, _0805E0A4 @ =gUnk_0813AC34 - movs r1, #7 - bl sub_0808091C - pop {pc} - .align 2, 0 -_0805E0A4: .4byte gUnk_0813AC34 diff --git a/asm/manager38.s b/asm/manager38.s deleted file mode 100644 index a98b99d8..00000000 --- a/asm/manager38.s +++ /dev/null @@ -1,55 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_0805E0A8 -sub_0805E0A8: @ 0x0805E0A8 - push {lr} - ldr r2, _0805E0BC @ =gUnk_08108DE0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805E0BC: .4byte gUnk_08108DE0 - - thumb_func_start sub_0805E0C0 -sub_0805E0C0: @ 0x0805E0C0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0 - movs r1, #1 - strb r1, [r5, #0xc] - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xa] - bl GetCurrentRoomProperty - adds r4, r0, #0 - cmp r4, #0 - bne _0805E0EC - bl DeleteThisEntity - b _0805E0EC -_0805E0DE: - adds r0, r4, #0 - adds r4, #0x10 - bl LoadRoomEntity - str r5, [r0, #0x50] - movs r1, #0xff - strb r1, [r0, #0xe] -_0805E0EC: - ldrb r0, [r4] - cmp r0, #0xff - bne _0805E0DE - pop {r4, r5, pc} - - thumb_func_start sub_0805E0F4 -sub_0805E0F4: @ 0x0805E0F4 - movs r1, #0 - strb r1, [r0, #0xe] - bx lr - .align 2, 0 diff --git a/asm/managerD.s b/asm/managerD.s deleted file mode 100644 index 77df8bf6..00000000 --- a/asm/managerD.s +++ /dev/null @@ -1,87 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08058DD0 -sub_08058DD0: @ 0x08058DD0 - push {lr} - ldr r2, _08058DE4 @ =gUnk_08108308 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08058DE4: .4byte gUnk_08108308 - - thumb_func_start sub_08058DE8 -sub_08058DE8: @ 0x08058DE8 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _08058DFC - bl DeleteThisEntity - b _08058E14 -_08058DFC: - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r0, [r4, #0x3a] - bl GetLayerByIndex - ldrh r1, [r4, #0x38] - lsls r1, r1, #1 - adds r1, #4 - adds r0, r0, r1 - str r0, [r4, #0x30] - ldrh r0, [r0] - strh r0, [r4, #0x28] -_08058E14: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08058E18 -sub_08058E18: @ 0x08058E18 - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x30] - ldrh r0, [r2, #0x28] - ldrh r1, [r1] - cmp r0, r1 - beq _08058E30 - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - movs r0, #0xf - strb r0, [r2, #0xe] -_08058E30: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08058E34 -sub_08058E34: @ 0x08058E34 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08058E5E - ldrh r0, [r4, #0x3e] - bl SetFlag - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08058E58 - bl GetCurrentRoomProperty - bl LoadRoomEntityList -_08058E58: - adds r0, r4, #0 - bl DeleteManager -_08058E5E: - pop {r4, pc} diff --git a/asm/non_matching/eu/sub_0801B4C8.inc b/asm/non_matching/eu/sub_0801B4C8.inc index 33416c34..53ee5df6 100644 --- a/asm/non_matching/eu/sub_0801B4C8.inc +++ b/asm/non_matching/eu/sub_0801B4C8.inc @@ -100,4 +100,4 @@ _0801B5A4: adds r0, r4, #0 bl sub_0801B584 pop {r4, r5, pc} - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/eu/sub_08075338.inc b/asm/non_matching/eu/sub_08075338.inc index 1ab34548..384a2137 100644 --- a/asm/non_matching/eu/sub_08075338.inc +++ b/asm/non_matching/eu/sub_08075338.inc @@ -177,4 +177,4 @@ _08074EE2: pop {r4, r5, r6, r7, pc} .align 2, 0 _08074EE4: .4byte gPlayerEntity - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/eu/sub_08075ADC.inc b/asm/non_matching/eu/sub_08075ADC.inc index 5ebc348f..e9bdb235 100644 --- a/asm/non_matching/eu/sub_08075ADC.inc +++ b/asm/non_matching/eu/sub_08075ADC.inc @@ -55,4 +55,4 @@ _08075578: bl UpdateItemAnim _0807557E: pop {r4, r5, pc} - .syntax divided \ No newline at end of file + .syntax divided diff --git a/asm/non_matching/manager1/nullsub_494.inc b/asm/non_matching/manager1/nullsub_494.inc new file mode 100644 index 00000000..807ea5e0 --- /dev/null +++ b/asm/non_matching/manager1/nullsub_494.inc @@ -0,0 +1,4 @@ + .syntax unified + bx lr + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/manager1/sub_08057174.inc b/asm/non_matching/manager1/sub_08057174.inc new file mode 100644 index 00000000..b718dfab --- /dev/null +++ b/asm/non_matching/manager1/sub_08057174.inc @@ -0,0 +1,147 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl GetCurrentRoomProperty + adds r3, r0, #0 + ldrb r0, [r3] + cmp r0, #0xff + bne _08057188 + b _0805728A +_08057188: + ldr r1, _080571E8 @ =gPlayerEntity + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #0 + bge _08057194 + adds r0, #0xf +_08057194: + asrs r6, r0, #4 + movs r7, #0x32 + ldrsh r0, [r1, r7] + cmp r0, #0 + bge _080571A0 + adds r0, #0xf +_080571A0: + asrs r5, r0, #4 + movs r0, #0x21 + adds r0, r0, r4 + mov ip, r0 +_080571A8: + ldrb r0, [r3] + mov r1, ip + ldrb r1, [r1] + cmp r0, r1 + beq _08057282 + ldr r1, _080571EC @ =gRoomControls + ldrh r0, [r1, #6] + lsrs r0, r0, #4 + ldrb r7, [r3, #1] + adds r2, r0, r7 + ldrh r0, [r1, #8] + lsrs r0, r0, #4 + ldrb r1, [r3, #2] + adds r0, r0, r1 + subs r0, r5, r0 + ldrb r7, [r3, #4] + cmp r0, r7 + bhs _08057282 + subs r0, r6, r2 + ldrb r1, [r3, #3] + cmp r0, r1 + bhs _08057282 + ldrb r0, [r3] + subs r0, #1 + cmp r0, #5 + bhi _08057268 + lsls r0, r0, #2 + ldr r1, _080571F0 @ =_080571F4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080571E8: .4byte gPlayerEntity +_080571EC: .4byte gRoomControls +_080571F0: .4byte _080571F4 +_080571F4: @ jump table + .4byte _0805720C @ case 0 + .4byte _08057220 @ case 1 + .4byte _08057258 @ case 2 + .4byte _08057246 @ case 3 + .4byte _08057216 @ case 4 + .4byte _08057236 @ case 5 +_0805720C: + mov r2, ip + ldrb r0, [r2] + cmp r0, #2 + bne _08057268 + b _08057260 +_08057216: + mov r7, ip + ldrb r0, [r7] + cmp r0, #6 + bne _08057268 + b _08057260 +_08057220: + mov r0, ip + ldrb r1, [r0] + cmp r1, #0 + bne _08057268 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x20 + strb r1, [r0] + b _08057268 +_08057236: + mov r2, ip + ldrb r1, [r2] + cmp r1, #0 + bne _08057268 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + b _08057268 +_08057246: + mov r7, ip + ldrb r1, [r7] + cmp r1, #0 + bne _08057268 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + str r1, [r4, #0x34] + b _08057268 +_08057258: + mov r1, ip + ldrb r0, [r1] + cmp r0, #4 + bne _08057268 +_08057260: + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #9 + strb r0, [r4, #0xe] +_08057268: + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08057282 + movs r0, #8 + strb r0, [r4, #0xf] + ldrb r0, [r3] + mov r2, ip + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #1 + strb r0, [r1] + b _0805728A +_08057282: + adds r3, #5 + ldrb r0, [r3] + cmp r0, #0xff + bne _080571A8 +_0805728A: + pop {r4, r5, r6, r7, pc} + .syntax divided diff --git a/asm/non_matching/manager1/sub_0805728C.inc b/asm/non_matching/manager1/sub_0805728C.inc new file mode 100644 index 00000000..1a5ee0e7 --- /dev/null +++ b/asm/non_matching/manager1/sub_0805728C.inc @@ -0,0 +1,38 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080572CA + movs r0, #8 + strb r0, [r4, #0xf] + ldr r2, _080572CC @ =gScreen + ldr r3, _080572D0 @ =gUnk_08107C1C + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r3 + ldrh r0, [r0] + adds r2, #0x68 + strh r0, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xa + bne _080572CA + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #0 + strb r0, [r1] +_080572CA: + pop {r4, pc} + .align 2, 0 +_080572CC: .4byte gScreen +_080572D0: .4byte gUnk_08107C1C + .syntax divided diff --git a/asm/non_matching/manager1/sub_080572D4.inc b/asm/non_matching/manager1/sub_080572D4.inc new file mode 100644 index 00000000..e752ae35 --- /dev/null +++ b/asm/non_matching/manager1/sub_080572D4.inc @@ -0,0 +1,45 @@ + .syntax unified + push {r4, r5, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xf] + subs r0, #1 + strb r0, [r3, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08057320 + movs r0, #8 + strb r0, [r3, #0xf] + ldr r5, _08057324 @ =gScreen + ldr r2, _08057328 @ =gUnk_08107C1C + ldrb r0, [r3, #0xe] + adds r1, r0, #0 + adds r1, #0xff + strb r1, [r3, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r5, #0 + adds r0, #0x68 + movs r4, #0 + strh r2, [r0] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xff + bne _08057320 + movs r0, #1 + strb r0, [r3, #0xc] + adds r0, r3, #0 + adds r0, #0x22 + strb r4, [r0] + subs r0, #1 + strb r4, [r0] + adds r0, r5, #0 + adds r0, #0x6c + strb r4, [r0] +_08057320: + pop {r4, r5, pc} + .align 2, 0 +_08057324: .4byte gScreen +_08057328: .4byte gUnk_08107C1C + .syntax divided diff --git a/asm/non_matching/manager1/sub_0805732C.inc b/asm/non_matching/manager1/sub_0805732C.inc new file mode 100644 index 00000000..c7b02ff7 --- /dev/null +++ b/asm/non_matching/manager1/sub_0805732C.inc @@ -0,0 +1,58 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + adds r5, r1, #0 + ldr r2, _08057390 @ =gUnk_03003DE4 + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _08057394 @ =gUnk_02017AA0 + adds r4, r0, r1 + movs r3, #0 + mov ip, r2 + mov r8, r1 + ldr r0, _08057398 @ =gSineTable + mov sb, r0 + movs r2, #0xff + ldr r1, _0805739C @ =gScreen +_08057354: + adds r0, r5, r3 + ands r0, r2 + lsls r0, r0, #1 + add r0, sb + movs r7, #0 + ldrsh r0, [r0, r7] + muls r0, r6, r0 + lsrs r0, r0, #8 + ldrh r7, [r1, #0x2e] + adds r0, r0, r7 + strh r0, [r4] + adds r4, #2 + adds r3, #1 + cmp r3, #0x9f + bls _08057354 + mov r0, ip + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + add r0, r8 + ldr r1, _080573A0 @ =0x0400001C + ldr r2, _080573A4 @ =0xA2600001 + bl sub_0805622C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08057390: .4byte gUnk_03003DE4 +_08057394: .4byte gUnk_02017AA0 +_08057398: .4byte gSineTable +_0805739C: .4byte gScreen +_080573A0: .4byte 0x0400001C +_080573A4: .4byte 0xA2600001 + .syntax divided diff --git a/asm/non_matching/manager1/sub_080573AC.inc b/asm/non_matching/manager1/sub_080573AC.inc new file mode 100644 index 00000000..e38472fe --- /dev/null +++ b/asm/non_matching/manager1/sub_080573AC.inc @@ -0,0 +1,77 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r2, _08057434 @ =gRoomControls + ldr r0, [r2, #0x28] + ldr r1, _08057438 @ =0xFFFFE000 + adds r0, r0, r1 + str r0, [r2, #0x28] + ldr r0, [r2, #0x2c] + ldr r1, _0805743C @ =0xFFFFF000 + adds r0, r0, r1 + str r0, [r2, #0x2c] + ldr r5, _08057440 @ =gScreen + movs r1, #0xa + ldrsh r0, [r2, r1] + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #1 + ldrh r1, [r2, #0x2a] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + movs r1, #0xc + ldrsh r0, [r2, r1] + ldrh r1, [r2, #8] + subs r0, r0, r1 + asrs r0, r0, #1 + ldrh r2, [r2, #0x2e] + adds r0, r0, r2 + strh r0, [r5, #0x30] + ldr r2, _08057444 @ =gSineTable + ldr r4, _08057448 @ =gScreenTransition + ldr r1, [r4] + ldrb r0, [r4] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + asrs r0, r0, #5 + adds r0, #0x10 + bl sub_0805732C + adds r0, r6, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #0 + bne _08057430 + ldr r0, [r4] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _08057430 + adds r2, r6, #0 + adds r2, #0x24 + ldrb r0, [r2] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r2] + ldr r1, _0805744C @ =gUnk_08107C30 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r5, #0 + adds r0, #0x68 + strh r1, [r0] +_08057430: + pop {r4, r5, r6, pc} + .align 2, 0 +_08057434: .4byte gRoomControls +_08057438: .4byte 0xFFFFE000 +_0805743C: .4byte 0xFFFFF000 +_08057440: .4byte gScreen +_08057444: .4byte gSineTable +_08057448: .4byte gScreenTransition +_0805744C: .4byte gUnk_08107C30 + .syntax divided diff --git a/asm/non_matching/manager1/sub_08057450.inc b/asm/non_matching/manager1/sub_08057450.inc new file mode 100644 index 00000000..c1608a37 --- /dev/null +++ b/asm/non_matching/manager1/sub_08057450.inc @@ -0,0 +1,102 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r3, r0, #0 + ldr r4, _08057504 @ =gScreen + movs r0, #0x10 + strh r0, [r4, #0x2e] + ldr r0, _08057508 @ =gRoomControls + movs r2, #0xc + ldrsh r1, [r0, r2] + ldrh r0, [r0, #8] + subs r1, r1, r0 + asrs r1, r1, #2 + movs r2, #0x3f + adds r0, r1, #0 + ands r0, r2 + strh r0, [r4, #0x30] + cmp r1, #0 + bge _08057474 + adds r1, #0x3f +_08057474: + asrs r0, r1, #6 + lsls r0, r0, #9 + ldr r1, _0805750C @ =gBG3Buffer + adds r1, r0, r1 + str r1, [r4, #0x34] + ldr r0, [r3, #0x34] + cmp r0, r1 + beq _0805748A + str r1, [r3, #0x34] + movs r0, #1 + strh r0, [r4, #0x32] +_0805748A: + adds r0, r3, #0 + adds r0, #0x22 + ldrb r0, [r0] + ldr r5, _08057510 @ =gScreenTransition + cmp r0, #0 + bne _080574BE + ldr r0, [r5] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _080574BE + adds r2, r3, #0 + adds r2, #0x24 + ldrb r0, [r2] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r2] + ldr r1, _08057514 @ =gUnk_08107C30 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] +_080574BE: + ldr r0, [r5] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08057502 + adds r0, r3, #0 + adds r0, #0x23 + ldrb r1, [r0] + lsls r1, r1, #5 + ldr r2, _08057518 @ =gUnk_085B4180 + adds r1, r1, r2 + movs r5, #0 + adds r6, r0, #0 + adds r4, r1, #0 + adds r4, #0xe +_080574DC: + adds r0, r5, #0 + adds r0, #0x87 + ldrh r1, [r4] + bl sub_0801D79C + adds r0, r5, #0 + adds r0, #0x8c + ldrh r1, [r4, #0xa] + bl sub_0801D79C + adds r4, #2 + adds r5, #1 + cmp r5, #3 + bls _080574DC + ldrb r0, [r6] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r6] +_08057502: + pop {r4, r5, r6, pc} + .align 2, 0 +_08057504: .4byte gScreen +_08057508: .4byte gRoomControls +_0805750C: .4byte gBG3Buffer +_08057510: .4byte gScreenTransition +_08057514: .4byte gUnk_08107C30 +_08057518: .4byte gUnk_085B4180 + .syntax divided diff --git a/asm/non_matching/manager10/Manager10_Main.inc b/asm/non_matching/manager10/Manager10_Main.inc new file mode 100644 index 00000000..b352c800 --- /dev/null +++ b/asm/non_matching/manager10/Manager10_Main.inc @@ -0,0 +1,56 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _080595C8 + movs r6, #1 + strb r6, [r4, #0xc] + adds r0, #0x21 + strb r5, [r0] + adds r0, #2 + strb r5, [r0] + bl sub_0805986C + cmp r0, #0 + beq _080595A8 + adds r0, r4, #0 + adds r0, #0x20 + strb r6, [r0] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #2 + strb r0, [r1] + ldr r0, _080595A4 @ =gUnk_0200B650 + str r5, [r0] + b _080595B8 + .align 2, 0 +_080595A4: .4byte gUnk_0200B650 +_080595A8: + adds r0, r4, #0 + adds r0, #0x20 + movs r1, #0x1f + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #5 + strb r0, [r1] +_080595B8: + ldr r0, _080595DC @ =gRoomVars + movs r1, #0xff + strb r1, [r0, #0x10] + ldr r1, _080595E0 @ =sub_080595E4 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_080595C8: + adds r0, r4, #0 + bl sub_08059608 + adds r0, r4, #0 + bl sub_08059690 + adds r0, r4, #0 + bl sub_080596E0 + pop {r4, r5, r6, pc} + .align 2, 0 +_080595DC: .4byte gRoomVars +_080595E0: .4byte sub_080595E4 + .syntax divided diff --git a/asm/non_matching/manager10/sub_080595E4.inc b/asm/non_matching/manager10/sub_080595E4.inc new file mode 100644 index 00000000..21842a1e --- /dev/null +++ b/asm/non_matching/manager10/sub_080595E4.inc @@ -0,0 +1,16 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08059604 @ =gRoomVars + movs r0, #0xff + strb r0, [r1, #0x10] + adds r0, r4, #0 + bl sub_08059690 + adds r0, r4, #0 + bl sub_080596E0 + movs r0, #0 + bl sub_0805B4D0 + pop {r4, pc} + .align 2, 0 +_08059604: .4byte gRoomVars + .syntax divided diff --git a/asm/non_matching/manager10/sub_08059608.inc b/asm/non_matching/manager10/sub_08059608.inc new file mode 100644 index 00000000..93a1156a --- /dev/null +++ b/asm/non_matching/manager10/sub_08059608.inc @@ -0,0 +1,65 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + adds r4, #0x23 + ldrb r0, [r4] + cmp r0, #0 + beq _08059638 + subs r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08059682 + ldr r0, _08059634 @ =gArea + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + bl SoundReq + b _08059682 + .align 2, 0 +_08059634: .4byte gArea +_08059638: + bl sub_0805986C + cmp r0, #0 + beq _08059668 + ldr r0, _0805965C @ =gArea + ldr r2, _08059660 @ =0x00000864 + adds r1, r0, r2 + ldr r0, [r1] + cmp r0, #0x1e + beq _08059682 + movs r0, #0x1e + str r0, [r1] + movs r0, #0x78 + strb r0, [r4] + ldr r0, _08059664 @ =0x800D0000 + bl SoundReq + b _08059682 + .align 2, 0 +_0805965C: .4byte gArea +_08059660: .4byte 0x00000864 +_08059664: .4byte 0x800D0000 +_08059668: + ldr r0, _08059684 @ =gArea + ldr r2, _08059688 @ =0x00000864 + adds r1, r0, r2 + ldr r0, [r1] + cmp r0, #0x37 + beq _08059682 + movs r0, #0x37 + str r0, [r1] + movs r0, #0x78 + strb r0, [r4] + ldr r0, _0805968C @ =0x800D0000 + bl SoundReq +_08059682: + pop {r4, pc} + .align 2, 0 +_08059684: .4byte gArea +_08059688: .4byte 0x00000864 +_0805968C: .4byte 0x800D0000 + .syntax divided diff --git a/asm/non_matching/manager10/sub_08059690.inc b/asm/non_matching/manager10/sub_08059690.inc new file mode 100644 index 00000000..b2d66b45 --- /dev/null +++ b/asm/non_matching/manager10/sub_08059690.inc @@ -0,0 +1,41 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + bl sub_08059844 + cmp r0, #0 + beq _080596BC + adds r4, #0x20 + ldrb r0, [r4] + cmp r0, #0 + beq _080596D8 + ldr r0, _080596B8 @ =gUnk_085A7320 + movs r2, #0xd0 + lsls r2, r2, #1 + adds r1, r0, r2 + ldrb r2, [r4] + bl sub_08059894 + ldrb r0, [r4] + subs r0, #1 + b _080596D6 + .align 2, 0 +_080596B8: .4byte gUnk_085A7320 +_080596BC: + adds r4, #0x20 + ldrb r0, [r4] + cmp r0, #0x1f + bhi _080596D8 + ldr r0, _080596DC @ =gUnk_085A7320 + movs r2, #0xd0 + lsls r2, r2, #1 + adds r1, r0, r2 + ldrb r2, [r4] + bl sub_08059894 + ldrb r0, [r4] + adds r0, #1 +_080596D6: + strb r0, [r4] +_080596D8: + pop {r4, pc} + .align 2, 0 +_080596DC: .4byte gUnk_085A7320 + .syntax divided diff --git a/asm/non_matching/manager10/sub_080596E0.inc b/asm/non_matching/manager10/sub_080596E0.inc new file mode 100644 index 00000000..8198dbe6 --- /dev/null +++ b/asm/non_matching/manager10/sub_080596E0.inc @@ -0,0 +1,175 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _08059730 @ =gScreenTransition + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080596FC + ldr r0, _08059734 @ =gScreen + ldrh r1, [r0, #0x16] + adds r1, #8 + movs r2, #0x1f + ands r1, r2 + strh r1, [r0, #0x16] +_080596FC: + bl sub_0805986C + cmp r0, #0 + beq _08059740 + adds r0, r4, #0 + adds r0, #0x21 + ldrb r1, [r0] + adds r5, r0, #0 + adds r2, r4, #0 + adds r2, #0x22 + cmp r1, #0 + bne _08059764 + ldrb r0, [r2] + cmp r0, #2 + beq _08059764 + movs r0, #1 + strb r0, [r5] + movs r0, #3 + strb r0, [r2] + ldr r0, _08059738 @ =gUnk_08108390 + ldrb r0, [r0, #3] + strb r0, [r4, #0xe] + ldr r0, _0805973C @ =gUnk_0200B650 + str r1, [r0] + b _08059764 + .align 2, 0 +_08059730: .4byte gScreenTransition +_08059734: .4byte gScreen +_08059738: .4byte gUnk_08108390 +_0805973C: .4byte gUnk_0200B650 +_08059740: + adds r0, r4, #0 + adds r0, #0x21 + ldrb r1, [r0] + adds r5, r0, #0 + adds r2, r4, #0 + adds r2, #0x22 + cmp r1, #0 + bne _08059764 + ldrb r0, [r2] + cmp r0, #5 + beq _08059764 + movs r0, #2 + strb r0, [r5] + ldr r1, _08059774 @ =gUnk_08108390 + ldrb r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] +_08059764: + adds r6, r5, #0 + ldrb r0, [r6] + cmp r0, #1 + beq _08059778 + cmp r0, #2 + beq _080597A8 + b _080597D0 + .align 2, 0 +_08059774: .4byte gUnk_08108390 +_08059778: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080597D0 + ldr r1, _080597A4 @ =gUnk_08108390 + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + ands r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + ldrb r0, [r2] + cmp r0, #2 + bne _080597D0 + strb r5, [r6] + b _080597D0 + .align 2, 0 +_080597A4: .4byte gUnk_08108390 +_080597A8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _080597D0 + ldr r1, _080597EC @ =gUnk_08108390 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ands r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + ldrb r0, [r2] + cmp r0, #5 + bne _080597D0 + strb r6, [r5] +_080597D0: + ldr r3, _080597F0 @ =gRoomVars + ldrb r1, [r2] + ldrb r0, [r3, #0x10] + cmp r0, r1 + beq _08059838 + strb r1, [r3, #0x10] + ldrb r0, [r2] + cmp r0, #4 + beq _08059800 + cmp r0, #4 + ble _080597F4 + cmp r0, #5 + beq _08059824 + b _08059838 + .align 2, 0 +_080597EC: .4byte gUnk_08108390 +_080597F0: .4byte gRoomVars +_080597F4: + cmp r0, #0 + blt _08059838 + adds r0, #0x2b + bl LoadGfxGroup + b _08059838 +_08059800: + ldr r4, _0805981C @ =gBG3Buffer + movs r5, #0x80 + lsls r5, r5, #4 + adds r0, r4, #0 + adds r1, r5, #0 + bl MemClear + ldr r1, _08059820 @ =0x0600E800 + adds r0, r4, #0 + adds r2, r5, #0 + bl LoadResourceAsync + b _08059838 + .align 2, 0 +_0805981C: .4byte gBG3Buffer +_08059820: .4byte 0x0600E800 +_08059824: + ldr r0, _0805983C @ =gUnk_0200B650 + ldr r1, _08059840 @ =gBG1Settings + str r1, [r0] + subs r1, #0x14 + ldrh r2, [r1] + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] +_08059838: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805983C: .4byte gUnk_0200B650 +_08059840: .4byte gBG1Settings + .syntax divided diff --git a/asm/non_matching/manager10/sub_08059844.inc b/asm/non_matching/manager10/sub_08059844.inc new file mode 100644 index 00000000..f898b690 --- /dev/null +++ b/asm/non_matching/manager10/sub_08059844.inc @@ -0,0 +1,21 @@ + .syntax unified + push {lr} + movs r3, #0 + ldr r0, _08059864 @ =gPlayerEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r2, _08059868 @ =gRoomControls + ldrh r0, [r2, #6] + subs r1, r1, r0 + ldrh r0, [r2, #0x1e] + lsrs r0, r0, #1 + cmp r1, r0 + ble _0805985E + movs r3, #1 +_0805985E: + adds r0, r3, #0 + pop {pc} + .align 2, 0 +_08059864: .4byte gPlayerEntity +_08059868: .4byte gRoomControls + .syntax divided diff --git a/asm/non_matching/manager10/sub_0805986C.inc b/asm/non_matching/manager10/sub_0805986C.inc new file mode 100644 index 00000000..74fc9540 --- /dev/null +++ b/asm/non_matching/manager10/sub_0805986C.inc @@ -0,0 +1,21 @@ + .syntax unified + push {lr} + movs r2, #0 + ldr r0, _0805988C @ =gPlayerEntity + movs r3, #0x2e + ldrsh r1, [r0, r3] + ldr r0, _08059890 @ =gRoomControls + ldrh r0, [r0, #6] + subs r1, r1, r0 + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + ble _08059886 + movs r2, #1 +_08059886: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0805988C: .4byte gPlayerEntity +_08059890: .4byte gRoomControls + .syntax divided diff --git a/asm/non_matching/manager10/sub_08059894.inc b/asm/non_matching/manager10/sub_08059894.inc new file mode 100644 index 00000000..c41861f1 --- /dev/null +++ b/asm/non_matching/manager10/sub_08059894.inc @@ -0,0 +1,47 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r0, _080598E8 @ =gUnk_020176E0 + mov sb, r0 + movs r6, #0 + lsls r2, r2, #0x18 + mov r8, r2 +_080598AA: + adds r0, r5, #0 + adds r1, r4, #0 + mov r2, sb + mov r7, r8 + lsrs r3, r7, #0x18 + bl sub_08059960 + adds r5, #0x20 + adds r4, #0x20 + movs r0, #0x20 + add sb, r0 + adds r6, #1 + cmp r6, #0xc + bls _080598AA + ldr r0, _080598EC @ =gUnk_02017700 + movs r2, #0x90 + lsls r2, r2, #2 + adds r1, r0, r2 + movs r2, #0x20 + bl MemCopy + ldr r2, _080598F0 @ =gUsedPalettes + ldr r0, [r2] + ldr r1, _080598F4 @ =0x00207FFC + orrs r0, r1 + str r0, [r2] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080598E8: .4byte gUnk_020176E0 +_080598EC: .4byte gUnk_02017700 +_080598F0: .4byte gUsedPalettes +_080598F4: .4byte 0x00207FFC + .syntax divided diff --git a/asm/non_matching/manager10/sub_080598F8.inc b/asm/non_matching/manager10/sub_080598F8.inc new file mode 100644 index 00000000..ae4525ff --- /dev/null +++ b/asm/non_matching/manager10/sub_080598F8.inc @@ -0,0 +1,54 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + movs r4, #0x1f + adds r3, r0, #0 + ands r3, r4 + lsls r6, r3, #8 + adds r3, r6, #0 + muls r3, r2, r3 + lsrs r6, r3, #5 + adds r3, r1, #0 + ands r3, r4 + lsls r3, r3, #8 + movs r4, #0x20 + subs r4, r4, r2 + muls r3, r4, r3 + lsrs r3, r3, #5 + adds r3, r6, r3 + lsrs r6, r3, #8 + movs r5, #0xf8 + lsls r5, r5, #2 + adds r3, r0, #0 + ands r3, r5 + lsls r7, r3, #3 + adds r3, r7, #0 + muls r3, r2, r3 + lsrs r7, r3, #5 + adds r3, r1, #0 + ands r3, r5 + lsls r3, r3, #3 + muls r3, r4, r3 + lsrs r3, r3, #5 + adds r3, r7, r3 + lsrs r7, r3, #8 + movs r3, #0xf8 + lsls r3, r3, #7 + ands r0, r3 + lsrs r5, r0, #2 + adds r0, r5, #0 + muls r0, r2, r0 + lsrs r5, r0, #5 + ands r1, r3 + lsrs r0, r1, #2 + muls r0, r4, r0 + lsrs r0, r0, #5 + adds r0, r5, r0 + lsrs r5, r0, #8 + lsls r0, r7, #5 + orrs r6, r0 + lsls r0, r5, #0xa + orrs r6, r0 + adds r0, r6, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/manager10/sub_08059960.inc b/asm/non_matching/manager10/sub_08059960.inc new file mode 100644 index 00000000..49568522 --- /dev/null +++ b/asm/non_matching/manager10/sub_08059960.inc @@ -0,0 +1,28 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + movs r7, #0 +_08059974: + ldrh r0, [r6] + adds r6, #2 + ldrh r1, [r5] + adds r5, #2 + mov r2, r8 + bl sub_080598F8 + strh r0, [r4] + adds r4, #2 + adds r7, #1 + cmp r7, #0xf + bls _08059974 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/manager10/sub_08059994.inc b/asm/non_matching/manager10/sub_08059994.inc new file mode 100644 index 00000000..6021e9fe --- /dev/null +++ b/asm/non_matching/manager10/sub_08059994.inc @@ -0,0 +1,18 @@ + .syntax unified + push {lr} + bl sub_0805986C + cmp r0, #0 + beq _080599AE + movs r0, #0x5b + bl LoadPaletteGroup + ldr r0, _080599B0 @ =gArea + ldr r1, _080599B4 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x1e + str r1, [r0] +_080599AE: + pop {pc} + .align 2, 0 +_080599B0: .4byte gArea +_080599B4: .4byte 0x00000864 + .syntax divided diff --git a/asm/non_matching/manager12/sub_08059C8C.inc b/asm/non_matching/manager12/sub_08059C8C.inc new file mode 100644 index 00000000..3ac8da37 --- /dev/null +++ b/asm/non_matching/manager12/sub_08059C8C.inc @@ -0,0 +1,28 @@ + .syntax unified + push {r4, r5, lr} + adds r5, r1, #0 + adds r4, r2, #0 + adds r0, r3, #0 + bl sub_08056300 + adds r2, r0, #0 + strb r2, [r4] + lsls r0, r2, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xff + beq _08059CBC + ldr r0, _08059CB8 @ =gRoomVars + adds r0, #0x10 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, r3 + beq _08059CBC + strb r2, [r1] + movs r0, #1 + b _08059CBE + .align 2, 0 +_08059CB8: .4byte gRoomVars +_08059CBC: + movs r0, #0 +_08059CBE: + pop {r4, r5, pc} + .syntax divided diff --git a/asm/non_matching/manager14/Manager14_Main.inc b/asm/non_matching/manager14/Manager14_Main.inc new file mode 100644 index 00000000..da20afe1 --- /dev/null +++ b/asm/non_matching/manager14/Manager14_Main.inc @@ -0,0 +1,19 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + ldr r1, _08059E7C @ =gUnk_081085A4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0805A1D8 + pop {r4, pc} + .align 2, 0 +_08059E7C: .4byte gUnk_081085A4 + .syntax divided diff --git a/asm/non_matching/manager14/nullsub_495.inc b/asm/non_matching/manager14/nullsub_495.inc new file mode 100644 index 00000000..807ea5e0 --- /dev/null +++ b/asm/non_matching/manager14/nullsub_495.inc @@ -0,0 +1,4 @@ + .syntax unified + bx lr + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/manager14/sub_08059E80.inc b/asm/non_matching/manager14/sub_08059E80.inc new file mode 100644 index 00000000..1b598506 --- /dev/null +++ b/asm/non_matching/manager14/sub_08059E80.inc @@ -0,0 +1,55 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + bl EntityHasDuplicateID + cmp r0, #0 + beq _08059E90 + bl DeleteThisEntity +_08059E90: + adds r1, r4, #0 + adds r1, #0x22 + movs r2, #0 + movs r0, #1 + strb r0, [r1] + movs r0, #0 + strh r2, [r4, #0x20] + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xf] + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r3, _08059EE4 @ =gScreen + ldr r0, _08059EE8 @ =0x00001E04 + strh r0, [r3, #0x2c] + ldrh r0, [r3] + movs r5, #0x80 + lsls r5, r5, #4 + adds r1, r5, #0 + orrs r0, r1 + strh r0, [r3] + adds r1, r3, #0 + adds r1, #0x66 + ldr r0, _08059EEC @ =0x00003E48 + strh r0, [r1] + adds r1, #2 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + movs r0, #0x80 + strh r0, [r3, #0x2e] + strh r2, [r3, #0x30] + ldr r1, _08059EF0 @ =nullsub_495 + ldr r2, _08059EF4 @ =sub_0805A25C + adds r0, r4, #0 + bl sub_08052D74 + pop {r4, r5, pc} + .align 2, 0 +_08059EE4: .4byte gScreen +_08059EE8: .4byte 0x00001E04 +_08059EEC: .4byte 0x00003E48 +_08059EF0: .4byte nullsub_495 +_08059EF4: .4byte sub_0805A25C + .syntax divided diff --git a/asm/non_matching/manager14/sub_08059EF8.inc b/asm/non_matching/manager14/sub_08059EF8.inc new file mode 100644 index 00000000..08bcb5db --- /dev/null +++ b/asm/non_matching/manager14/sub_08059EF8.inc @@ -0,0 +1,81 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r6, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08059F90 + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08059F9C + cmp r0, #0 + beq _08059F64 + ldr r2, _08059F50 @ =gUnk_08108588 + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + ldr r0, _08059F54 @ =0x00000808 + cmp r1, r0 + beq _08059F5C + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x24 + strb r5, [r0] + ldr r1, _08059F58 @ =gScreen + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ands r0, r6 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, #0x68 + strh r0, [r1] + b _08059F90 + .align 2, 0 +_08059F50: .4byte gUnk_08108588 +_08059F54: .4byte 0x00000808 +_08059F58: .4byte gScreen +_08059F5C: + adds r0, r4, #0 + adds r0, #0x22 + strb r5, [r0] + b _08059F90 +_08059F64: + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #1 + strb r0, [r1] + ldr r3, _08059F94 @ =gUnk_08108588 + ldrb r2, [r4, #0xe] + lsls r0, r2, #1 + adds r0, r0, r3 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #5 + cmp r1, r0 + beq _08059F90 + ldr r0, _08059F98 @ =gScreen + subs r1, r2, #1 + strb r1, [r4, #0xe] + ands r1, r6 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r1, [r1] + adds r0, #0x68 + strh r1, [r0] +_08059F90: + pop {r4, r5, r6, pc} + .align 2, 0 +_08059F94: .4byte gUnk_08108588 +_08059F98: .4byte gScreen + .syntax divided diff --git a/asm/non_matching/manager14/sub_08059F9C.inc b/asm/non_matching/manager14/sub_08059F9C.inc new file mode 100644 index 00000000..55a7686f --- /dev/null +++ b/asm/non_matching/manager14/sub_08059F9C.inc @@ -0,0 +1,61 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08059FB4 @ =gRoomControls + ldrb r0, [r0, #5] + cmp r0, #0x17 + bhi _0805A03A + lsls r0, r0, #2 + ldr r1, _08059FB8 @ =_08059FBC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08059FB4: .4byte gRoomControls +_08059FB8: .4byte _08059FBC +_08059FBC: @ jump table + .4byte _0805A036 @ case 0 + .4byte _0805A01C @ case 1 + .4byte _0805A03A @ case 2 + .4byte _0805A03A @ case 3 + .4byte _0805A03A @ case 4 + .4byte _0805A03A @ case 5 + .4byte _0805A03A @ case 6 + .4byte _0805A02A @ case 7 + .4byte _0805A036 @ case 8 + .4byte _0805A036 @ case 9 + .4byte _0805A03A @ case 10 + .4byte _0805A03A @ case 11 + .4byte _0805A03A @ case 12 + .4byte _0805A03A @ case 13 + .4byte _0805A03A @ case 14 + .4byte _0805A03A @ case 15 + .4byte _0805A03A @ case 16 + .4byte _0805A03A @ case 17 + .4byte _0805A03A @ case 18 + .4byte _0805A03A @ case 19 + .4byte _0805A03A @ case 20 + .4byte _0805A03A @ case 21 + .4byte _0805A03A @ case 22 + .4byte _0805A036 @ case 23 +_0805A01C: + movs r0, #0x16 + bl CheckLocalFlag + cmp r0, #0 + beq _0805A02A + movs r0, #0 + b _0805A03C +_0805A02A: + adds r0, r4, #0 + bl sub_0805A25C + bl DeleteThisEntity + b _0805A03C +_0805A036: + movs r0, #1 + b _0805A03C +_0805A03A: + movs r0, #0 +_0805A03C: + pop {r4, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A040.inc b/asm/non_matching/manager14/sub_0805A040.inc new file mode 100644 index 00000000..b326f001 --- /dev/null +++ b/asm/non_matching/manager14/sub_0805A040.inc @@ -0,0 +1,5 @@ + .syntax unified + push {lr} + bl sub_0805A098 + pop {pc} + .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A048.inc b/asm/non_matching/manager14/sub_0805A048.inc new file mode 100644 index 00000000..1e744aea --- /dev/null +++ b/asm/non_matching/manager14/sub_0805A048.inc @@ -0,0 +1,40 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805A086 + movs r0, #4 + strb r0, [r4, #0xf] + ldr r2, _0805A090 @ =gScreen + ldr r3, _0805A094 @ =gUnk_08108588 + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r3 + ldrh r0, [r0] + adds r2, #0x68 + strh r0, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #9 + bne _0805A086 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #0 + strb r0, [r1] +_0805A086: + adds r0, r4, #0 + bl sub_0805A098 + pop {r4, pc} + .align 2, 0 +_0805A090: .4byte gScreen +_0805A094: .4byte gUnk_08108588 + .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A098.inc b/asm/non_matching/manager14/sub_0805A098.inc new file mode 100644 index 00000000..76e0471d --- /dev/null +++ b/asm/non_matching/manager14/sub_0805A098.inc @@ -0,0 +1,24 @@ + .syntax unified + push {lr} + adds r1, r0, #0 + ldr r0, _0805A0B0 @ =gRoomControls + ldrb r0, [r0, #5] + cmp r0, #9 + bgt _0805A0B4 + cmp r0, #8 + bge _0805A0BC + cmp r0, #0 + beq _0805A0BC + b _0805A0B8 + .align 2, 0 +_0805A0B0: .4byte gRoomControls +_0805A0B4: + cmp r0, #0x17 + beq _0805A0BC +_0805A0B8: + movs r0, #3 + strb r0, [r1, #0xc] +_0805A0BC: + pop {pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A0C0.inc b/asm/non_matching/manager14/sub_0805A0C0.inc new file mode 100644 index 00000000..0e67a842 --- /dev/null +++ b/asm/non_matching/manager14/sub_0805A0C0.inc @@ -0,0 +1,41 @@ + .syntax unified + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xf] + subs r0, #1 + strb r0, [r3, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805A106 + movs r0, #4 + strb r0, [r3, #0xf] + ldr r4, _0805A108 @ =gScreen + ldr r2, _0805A10C @ =gUnk_08108588 + ldrb r0, [r3, #0xe] + adds r1, r0, #0 + adds r1, #0xff + strb r1, [r3, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strh r2, [r0] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xff + bne _0805A106 + ldrh r1, [r4] + ldr r0, _0805A110 @ =0x0000F7FF + ands r0, r1 + strh r0, [r4] + bl sub_08056250 + bl DeleteThisEntity +_0805A106: + pop {r4, pc} + .align 2, 0 +_0805A108: .4byte gScreen +_0805A10C: .4byte gUnk_08108588 +_0805A110: .4byte 0x0000F7FF + .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A114.inc b/asm/non_matching/manager14/sub_0805A114.inc new file mode 100644 index 00000000..553675ce --- /dev/null +++ b/asm/non_matching/manager14/sub_0805A114.inc @@ -0,0 +1,92 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r6, r1, #0 + ldr r2, _0805A154 @ =gUnk_03003DE4 + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0805A158 @ =gUnk_02017AA0 + adds r4, r0, r1 + movs r5, #0 + mov r8, r2 + mov sb, r1 + ldr r2, _0805A15C @ =gScreen + ldr r0, _0805A160 @ =gSineTable + mov ip, r0 +_0805A13A: + movs r1, #0x30 + ldrsh r0, [r2, r1] + adds r3, r5, r0 + asrs r1, r3, #3 + movs r0, #7 + ands r1, r0 + cmp r1, #7 + bhi _0805A190 + lsls r0, r1, #2 + ldr r1, _0805A164 @ =_0805A168 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805A154: .4byte gUnk_03003DE4 +_0805A158: .4byte gUnk_02017AA0 +_0805A15C: .4byte gScreen +_0805A160: .4byte gSineTable +_0805A164: .4byte _0805A168 +_0805A168: @ jump table + .4byte _0805A190 @ case 0 + .4byte _0805A18C @ case 1 + .4byte _0805A190 @ case 2 + .4byte _0805A190 @ case 3 + .4byte _0805A188 @ case 4 + .4byte _0805A190 @ case 5 + .4byte _0805A190 @ case 6 + .4byte _0805A18C @ case 7 +_0805A188: + subs r3, #8 + b _0805A190 +_0805A18C: + movs r0, #0xf0 + b _0805A192 +_0805A190: + movs r0, #0xf8 +_0805A192: + ands r3, r0 + adds r0, r6, r3 + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #1 + add r0, ip + movs r1, #0 + ldrsh r0, [r0, r1] + muls r0, r7, r0 + lsrs r0, r0, #8 + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r4] + adds r4, #2 + adds r5, #1 + cmp r5, #0x9f + ble _0805A13A + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + add r0, sb + ldr r1, _0805A1D0 @ =0x0400001C + ldr r2, _0805A1D4 @ =0xA2600001 + bl sub_0805622C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805A1D0: .4byte 0x0400001C +_0805A1D4: .4byte 0xA2600001 + .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A1D8.inc b/asm/non_matching/manager14/sub_0805A1D8.inc new file mode 100644 index 00000000..a91affc4 --- /dev/null +++ b/asm/non_matching/manager14/sub_0805A1D8.inc @@ -0,0 +1,61 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0805A244 @ =gRoomControls + ldr r0, [r1, #0x28] + ldr r2, _0805A248 @ =0xFFFFF000 + adds r0, r0, r2 + str r0, [r1, #0x28] + ldr r5, _0805A24C @ =gScreen + ldrh r0, [r1, #0x2a] + strh r0, [r5, #0x2e] + ldr r0, [r1, #0x2c] + adds r0, r0, r2 + str r0, [r1, #0x2c] + ldrh r0, [r1, #0x2e] + strh r0, [r5, #0x30] + ldrh r1, [r5] + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0805A240 + ldrh r1, [r4, #0x20] + lsrs r1, r1, #1 + movs r0, #6 + bl sub_0805A114 + adds r0, r4, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #0 + bne _0805A240 + ldr r0, _0805A250 @ =gMain + ldrh r1, [r0, #0xc] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0805A240 + adds r2, r4, #0 + adds r2, #0x24 + ldrb r0, [r2] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r2] + ldr r1, _0805A254 @ =gUnk_0810859A + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r5, #0 + adds r0, #0x68 + strh r1, [r0] +_0805A240: + pop {r4, r5, pc} + .align 2, 0 +_0805A244: .4byte gRoomControls +_0805A248: .4byte 0xFFFFF000 +_0805A24C: .4byte gScreen +_0805A250: .4byte gMain +_0805A254: .4byte gUnk_0810859A + .syntax divided diff --git a/asm/non_matching/manager14/sub_0805A25C.inc b/asm/non_matching/manager14/sub_0805A25C.inc new file mode 100644 index 00000000..6a989185 --- /dev/null +++ b/asm/non_matching/manager14/sub_0805A25C.inc @@ -0,0 +1,17 @@ + .syntax unified + push {lr} + ldr r1, _0805A278 @ =gScreen + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0 + strh r0, [r2] + ldrh r2, [r1] + ldr r0, _0805A27C @ =0x0000F7FF + ands r0, r2 + strh r0, [r1] + bl sub_08056250 + pop {pc} + .align 2, 0 +_0805A278: .4byte gScreen +_0805A27C: .4byte 0x0000F7FF + .syntax divided diff --git a/asm/manager16.s b/asm/non_matching/manager16/Manager16_Main.inc similarity index 68% rename from asm/manager16.s rename to asm/non_matching/manager16/Manager16_Main.inc index f1f6c5d9..8c424e8d 100644 --- a/asm/manager16.s +++ b/asm/non_matching/manager16/Manager16_Main.inc @@ -1,13 +1,4 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - .syntax unified - - .text - - thumb_func_start sub_0805AB4C -sub_0805AB4C: @ 0x0805AB4C push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb @@ -190,76 +181,4 @@ _0805ACAA: pop {r4, r5, r6, r7, pc} .align 2, 0 _0805ACBC: .4byte gRoomControls - - thumb_func_start sub_0805ACC0 -sub_0805ACC0: @ 0x0805ACC0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - bne _0805ACF0 - b _0805AD32 -_0805ACD0: - ldrb r0, [r4, #0xb] - subs r0, r5, r0 - lsls r0, r0, #4 - adds r3, r3, r0 - ldrh r0, [r3, #4] - ldr r2, _0805ACEC @ =gRoomControls - ldrh r1, [r2, #6] - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldrh r1, [r3, #6] - orrs r0, r1 - ldrh r2, [r2, #8] - adds r0, r0, r2 - b _0805AD34 - .align 2, 0 -_0805ACEC: .4byte gRoomControls -_0805ACF0: - movs r0, #0x7f - ands r0, r1 - subs r5, r0, #1 - ldr r6, _0805AD3C @ =gUnk_03003DA0 - ldr r4, [r6, #4] - cmp r4, r6 - beq _0805AD32 - ldr r0, _0805AD40 @ =0x00001609 - mov r8, r0 - ldr r0, _0805AD44 @ =0x0000FFFF - adds r7, r0, #0 -_0805AD06: - ldrh r0, [r4, #8] - ands r0, r7 - cmp r0, r8 - bne _0805AD2C - ldrb r1, [r4, #0xb] - cmp r1, r5 - bgt _0805AD2C - adds r0, r4, #0 - adds r0, #0x21 - ldrb r0, [r0] - adds r0, r1, r0 - cmp r0, r5 - ble _0805AD2C - ldrb r0, [r4, #0xa] - bl GetCurrentRoomProperty - adds r3, r0, #0 - cmp r3, #0 - bne _0805ACD0 -_0805AD2C: - ldr r4, [r4, #4] - cmp r4, r6 - bne _0805AD06 -_0805AD32: - movs r0, #0 -_0805AD34: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805AD3C: .4byte gUnk_03003DA0 -_0805AD40: .4byte 0x00001609 -_0805AD44: .4byte 0x0000FFFF + .syntax divided diff --git a/asm/non_matching/manager16/sub_0805ACC0.inc b/asm/non_matching/manager16/sub_0805ACC0.inc new file mode 100644 index 00000000..df4f3ff6 --- /dev/null +++ b/asm/non_matching/manager16/sub_0805ACC0.inc @@ -0,0 +1,72 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _0805ACF0 + b _0805AD32 +_0805ACD0: + ldrb r0, [r4, #0xb] + subs r0, r5, r0 + lsls r0, r0, #4 + adds r3, r3, r0 + ldrh r0, [r3, #4] + ldr r2, _0805ACEC @ =gRoomControls + ldrh r1, [r2, #6] + adds r0, r0, r1 + lsls r0, r0, #0x10 + ldrh r1, [r3, #6] + orrs r0, r1 + ldrh r2, [r2, #8] + adds r0, r0, r2 + b _0805AD34 + .align 2, 0 +_0805ACEC: .4byte gRoomControls +_0805ACF0: + movs r0, #0x7f + ands r0, r1 + subs r5, r0, #1 + ldr r6, _0805AD3C @ =gUnk_03003DA0 + ldr r4, [r6, #4] + cmp r4, r6 + beq _0805AD32 + ldr r0, _0805AD40 @ =0x00001609 + mov r8, r0 + ldr r0, _0805AD44 @ =0x0000FFFF + adds r7, r0, #0 +_0805AD06: + ldrh r0, [r4, #8] + ands r0, r7 + cmp r0, r8 + bne _0805AD2C + ldrb r1, [r4, #0xb] + cmp r1, r5 + bgt _0805AD2C + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + adds r0, r1, r0 + cmp r0, r5 + ble _0805AD2C + ldrb r0, [r4, #0xa] + bl GetCurrentRoomProperty + adds r3, r0, #0 + cmp r3, #0 + bne _0805ACD0 +_0805AD2C: + ldr r4, [r4, #4] + cmp r4, r6 + bne _0805AD06 +_0805AD32: + movs r0, #0 +_0805AD34: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805AD3C: .4byte gUnk_03003DA0 +_0805AD40: .4byte 0x00001609 +_0805AD44: .4byte 0x0000FFFF + .syntax divided diff --git a/asm/non_matching/manager2/sub_080575C8.inc b/asm/non_matching/manager2/sub_080575C8.inc new file mode 100644 index 00000000..ed601e15 --- /dev/null +++ b/asm/non_matching/manager2/sub_080575C8.inc @@ -0,0 +1,90 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _08057664 @ =gUnk_0200B650 + movs r5, #0 + str r5, [r0] + movs r0, #0x80 + lsls r0, r0, #0x13 + strh r5, [r0] + adds r0, r4, #0 + bl LoadGfxGroup + ldr r0, _08057668 @ =gRoomVars + strb r4, [r0, #0x10] + ldr r3, _0805766C @ =gRoomControls + movs r0, #0xc + ldrsh r1, [r3, r0] + ldrh r0, [r3, #8] + subs r1, r1, r0 + asrs r0, r1, #3 + adds r1, r1, r0 + ldr r2, _08057670 @ =gScreen + movs r7, #0x3f + adds r0, r1, #0 + ands r0, r7 + strh r0, [r2, #0x30] + strh r5, [r2, #0x2e] + adds r0, r1, #0 + cmp r1, #0 + bge _08057604 + adds r0, #0x3f +_08057604: + asrs r0, r0, #6 + lsls r0, r0, #9 + ldr r4, _08057674 @ =gMapDataTopSpecial + adds r0, r0, r4 + str r0, [r2, #0x34] + ldr r0, _08057678 @ =0x00001D49 + strh r0, [r2, #0x2c] + movs r6, #1 + strh r6, [r2, #0x32] + movs r0, #0xc + ldrsh r1, [r3, r0] + ldrh r0, [r3, #8] + subs r1, r1, r0 + asrs r0, r1, #2 + adds r1, r1, r0 + adds r0, r1, #0 + ands r0, r7 + strh r0, [r2, #0x18] + strh r5, [r2, #0x16] + adds r0, r1, #0 + cmp r0, #0 + bge _08057632 + adds r0, #0x3f +_08057632: + asrs r0, r0, #6 + lsls r0, r0, #9 + movs r3, #0x80 + lsls r3, r3, #6 + adds r1, r4, r3 + adds r0, r0, r1 + str r0, [r2, #0x1c] + ldr r0, _0805767C @ =0x00001E49 + strh r0, [r2, #0x14] + strh r6, [r2, #0x1a] + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _08057680 @ =0x00003C48 + strh r0, [r1] + adds r1, #2 + ldr r0, _08057684 @ =0x00000609 + strh r0, [r1] + ldrh r0, [r2] + movs r3, #0xa0 + lsls r3, r3, #4 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08057664: .4byte gUnk_0200B650 +_08057668: .4byte gRoomVars +_0805766C: .4byte gRoomControls +_08057670: .4byte gScreen +_08057674: .4byte gMapDataTopSpecial +_08057678: .4byte 0x00001D49 +_0805767C: .4byte 0x00001E49 +_08057680: .4byte 0x00003C48 +_08057684: .4byte 0x00000609 + .syntax divided diff --git a/asm/non_matching/manager22/Manager22_Main.inc b/asm/non_matching/manager22/Manager22_Main.inc new file mode 100644 index 00000000..42e1a86e --- /dev/null +++ b/asm/non_matching/manager22/Manager22_Main.inc @@ -0,0 +1,185 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0805B964 @ =gArea + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805B90A + bl sub_0801E104 + ldr r2, _0805B968 @ =gScreen + ldrh r1, [r2] + ldr r0, _0805B96C @ =0x0000D7FF + ands r0, r1 + strh r0, [r2] + bl DeleteThisEntity +_0805B90A: + ldrb r2, [r5, #0xc] + cmp r2, #0 + bne _0805B934 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r5, #0x10] + movs r0, #0x11 + strb r0, [r5, #0xe] + str r2, [r5, #0x20] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + bl sub_0801E120 + ldrb r0, [r5, #0xe] + bl sub_0801E154 +_0805B934: + ldr r0, _0805B970 @ =gMain + ldrb r0, [r0, #4] + cmp r0, #2 + bne _0805B952 + ldr r2, _0805B968 @ =gScreen + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + bl sub_0805BA78 + bl sub_0805BAD4 +_0805B952: + ldrb r0, [r4, #0xc] + cmp r0, #2 + bne _0805B978 + ldr r2, _0805B968 @ =gScreen + ldrh r1, [r2] + ldr r0, _0805B974 @ =0x0000DFFF + ands r0, r1 + strh r0, [r2] + b _0805BA6C + .align 2, 0 +_0805B964: .4byte gArea +_0805B968: .4byte gScreen +_0805B96C: .4byte 0x0000D7FF +_0805B970: .4byte gMain +_0805B974: .4byte 0x0000DFFF +_0805B978: + ldr r3, _0805B9A8 @ =gPlayerEntity + movs r4, #0x2e + ldrsh r0, [r3, r4] + ldr r2, _0805B9AC @ =gRoomControls + ldrh r1, [r2, #6] + subs r0, r0, r1 + movs r6, #0x32 + ldrsh r1, [r3, r6] + ldrh r2, [r2, #8] + subs r1, r1, r2 + movs r2, #0 + movs r3, #0 + bl CheckRectOnScreen + cmp r0, #0 + beq _0805B9B4 + ldr r2, _0805B9B0 @ =gScreen + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #6 + adds r0, r3, #0 + orrs r0, r1 + b _0805B9BC + .align 2, 0 +_0805B9A8: .4byte gPlayerEntity +_0805B9AC: .4byte gRoomControls +_0805B9B0: .4byte gScreen +_0805B9B4: + ldr r2, _0805B9E8 @ =gScreen + ldrh r1, [r2] + ldr r0, _0805B9EC @ =0x0000DFFF + ands r0, r1 +_0805B9BC: + strh r0, [r2] + ldrb r4, [r5, #0xe] + ldr r0, _0805B9F0 @ =gPlayerState + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0805BA2C + ldr r0, _0805B9F4 @ =gArea + ldrb r0, [r0, #0xc] + cmp r0, #0 + beq _0805BA2C + cmp r4, #0x47 + bhi _0805B9F8 + adds r4, #4 + adds r0, r4, #0 + bl sub_0801E154 + movs r0, #0 + str r0, [r5, #0x20] + b _0805BA42 + .align 2, 0 +_0805B9E8: .4byte gScreen +_0805B9EC: .4byte 0x0000DFFF +_0805B9F0: .4byte gPlayerState +_0805B9F4: .4byte gArea +_0805B9F8: + ldr r0, _0805BA24 @ =gScreenTransition + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0805BA42 + ldrb r0, [r5, #0xf] + adds r0, #0x10 + strb r0, [r5, #0xf] + ldr r1, _0805BA28 @ =gSineTable + ldrb r0, [r5, #0xf] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r6, #0 + ldrsh r0, [r0, r6] + asrs r0, r0, #7 + str r0, [r5, #0x20] + adds r0, r4, r0 + bl sub_0801E154 + b _0805BA42 + .align 2, 0 +_0805BA24: .4byte gScreenTransition +_0805BA28: .4byte gSineTable +_0805BA2C: + movs r0, #0 + str r0, [r5, #0x20] + cmp r4, #0x11 + bls _0805BA42 + subs r4, #4 + cmp r4, #0x10 + bhi _0805BA3C + movs r4, #0x11 +_0805BA3C: + adds r0, r4, #0 + bl sub_0801E154 +_0805BA42: + strb r4, [r5, #0xe] + ldr r3, _0805BA70 @ =gPlayerEntity + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldr r2, _0805BA74 @ =gRoomControls + movs r6, #0xa + ldrsh r1, [r2, r6] + subs r0, r0, r1 + movs r6, #0x32 + ldrsh r1, [r3, r6] + movs r6, #0xc + ldrsh r2, [r2, r6] + subs r1, r1, r2 + movs r6, #0x36 + ldrsh r2, [r3, r6] + subs r2, #9 + adds r1, r1, r2 + ldr r2, [r5, #0x20] + adds r2, r4, r2 + bl sub_0801E160 +_0805BA6C: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805BA70: .4byte gPlayerEntity +_0805BA74: .4byte gRoomControls + .syntax divided diff --git a/asm/non_matching/manager22/sub_0805BA78.inc b/asm/non_matching/manager22/sub_0805BA78.inc new file mode 100644 index 00000000..394c19ef --- /dev/null +++ b/asm/non_matching/manager22/sub_0805BA78.inc @@ -0,0 +1,55 @@ + .syntax unified + push {r4, lr} + ldr r1, _0805BAA8 @ =gArea + movs r0, #0xa + ldrsh r3, [r1, r0] + ldr r0, _0805BAAC @ =gRoomVars + movs r4, #0xc + ldrsh r2, [r0, r4] + cmp r2, #0 + bge _0805BA8C + movs r2, #0 +_0805BA8C: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r2, r0 + ble _0805BA96 + adds r2, r0, #0 +_0805BA96: + cmp r3, r2 + beq _0805BACE + subs r0, r2, r3 + cmp r0, #0 + blt _0805BAB0 + cmp r0, #4 + bls _0805BAB6 + b _0805BABA + .align 2, 0 +_0805BAA8: .4byte gArea +_0805BAAC: .4byte gRoomVars +_0805BAB0: + subs r0, r3, r2 + cmp r0, #4 + bhi _0805BABA +_0805BAB6: + adds r3, r2, #0 + b _0805BAC8 +_0805BABA: + cmp r2, r3 + bge _0805BAC2 + subs r3, #4 + b _0805BAC8 +_0805BAC2: + cmp r2, r3 + ble _0805BAC8 + adds r3, #4 +_0805BAC8: + strh r3, [r1, #0xa] + movs r0, #1 + b _0805BAD0 +_0805BACE: + movs r0, #0 +_0805BAD0: + pop {r4, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/manager22/sub_0805BAD4.inc b/asm/non_matching/manager22/sub_0805BAD4.inc new file mode 100644 index 00000000..516edb52 --- /dev/null +++ b/asm/non_matching/manager22/sub_0805BAD4.inc @@ -0,0 +1,23 @@ + .syntax unified + push {lr} + ldr r3, _0805BAF4 @ =gArea + ldrb r0, [r3, #0xc] + cmp r0, #0 + beq _0805BAF2 + ldr r1, _0805BAF8 @ =gScreen + ldr r2, _0805BAFC @ =gUnk_08108CA8 + ldrh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, #0x68 + strh r0, [r1] +_0805BAF2: + pop {pc} + .align 2, 0 +_0805BAF4: .4byte gArea +_0805BAF8: .4byte gScreen +_0805BAFC: .4byte gUnk_08108CA8 + .syntax divided diff --git a/asm/non_matching/manager22/sub_0805BB00.inc b/asm/non_matching/manager22/sub_0805BB00.inc new file mode 100644 index 00000000..52849cd7 --- /dev/null +++ b/asm/non_matching/manager22/sub_0805BB00.inc @@ -0,0 +1,54 @@ + .syntax unified + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _0805BB50 @ =gArea + ldrb r0, [r0, #0xc] + cmp r0, #0 + bne _0805BB28 + bl GetEmptyManager + adds r1, r0, #0 + cmp r1, #0 + beq _0805BB28 + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x22 + strb r0, [r1, #9] + adds r0, r1, #0 + movs r1, #0 + bl AppendEntityToList +_0805BB28: + ldr r1, _0805BB54 @ =0x0600F000 + movs r2, #0x80 + lsls r2, r2, #4 + movs r0, #0xf + bl MemFill16 + ldr r0, _0805BB58 @ =gScreen + ldr r1, _0805BB5C @ =0x00001E0C + strh r1, [r0, #0x2c] + adds r0, #0x66 + ldr r1, _0805BB60 @ =0x00003E48 + strh r1, [r0] + ldr r0, _0805BB64 @ =gRoomVars + strh r4, [r0, #0xc] + cmp r5, #0 + beq _0805BB68 + ldr r1, _0805BB50 @ =gArea + movs r0, #1 + b _0805BB6C + .align 2, 0 +_0805BB50: .4byte gArea +_0805BB54: .4byte 0x0600F000 +_0805BB58: .4byte gScreen +_0805BB5C: .4byte 0x00001E0C +_0805BB60: .4byte 0x00003E48 +_0805BB64: .4byte gRoomVars +_0805BB68: + ldr r1, _0805BB70 @ =gArea + movs r0, #2 +_0805BB6C: + strb r0, [r1, #0xc] + pop {r4, r5, pc} + .align 2, 0 +_0805BB70: .4byte gArea + .syntax divided diff --git a/asm/non_matching/manager22/sub_0805BB74.inc b/asm/non_matching/manager22/sub_0805BB74.inc new file mode 100644 index 00000000..cd3b7362 --- /dev/null +++ b/asm/non_matching/manager22/sub_0805BB74.inc @@ -0,0 +1,34 @@ + .syntax unified + push {lr} + adds r1, r0, #0 + ldr r2, _0805BBB0 @ =gRoomVars + cmp r1, #0 + bge _0805BB82 + movs r0, #0xc + ldrsh r1, [r2, r0] +_0805BB82: + ldr r0, _0805BBB4 @ =gArea + strh r1, [r0, #0xa] + strh r1, [r2, #0xc] + movs r0, #9 + movs r1, #0x22 + bl DeepFindEntityByID + cmp r0, #0 + beq _0805BBAE + bl Manager22_Main + ldr r0, _0805BBB8 @ =gScreen + ldrh r1, [r0] + movs r3, #0x80 + lsls r3, r3, #4 + adds r2, r3, #0 + orrs r1, r2 + strh r1, [r0] + bl sub_0805BA78 + bl sub_0805BAD4 +_0805BBAE: + pop {pc} + .align 2, 0 +_0805BBB0: .4byte gRoomVars +_0805BBB4: .4byte gArea +_0805BBB8: .4byte gScreen + .syntax divided diff --git a/asm/non_matching/manager22/sub_0805BBBC.inc b/asm/non_matching/manager22/sub_0805BBBC.inc new file mode 100644 index 00000000..643afc33 --- /dev/null +++ b/asm/non_matching/manager22/sub_0805BBBC.inc @@ -0,0 +1,34 @@ + .syntax unified + push {r4, lr} + movs r4, #0 + ldr r2, _0805BBF8 @ =gArea + ldrb r0, [r2, #0xc] + cmp r0, #0 + beq _0805BBF2 + ldr r0, _0805BBFC @ =gRoomVars + movs r3, #0xc + ldrsh r1, [r0, r3] + movs r3, #0xa + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _0805BBF2 + ldr r2, _0805BC00 @ =gScreen + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + bl sub_0805BA78 + adds r4, r0, #0 + cmp r4, #0 + beq _0805BBF2 + bl sub_0805BAD4 +_0805BBF2: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0805BBF8: .4byte gArea +_0805BBFC: .4byte gRoomVars +_0805BC00: .4byte gScreen + .syntax divided diff --git a/asm/non_matching/manager22/sub_0805BC04.inc b/asm/non_matching/manager22/sub_0805BC04.inc new file mode 100644 index 00000000..f74987d1 --- /dev/null +++ b/asm/non_matching/manager22/sub_0805BC04.inc @@ -0,0 +1,34 @@ + .syntax unified + push {r4, lr} + movs r4, #0 + ldr r2, _0805BC40 @ =gArea + ldrb r0, [r2, #0xc] + cmp r0, #0 + beq _0805BC3A + ldr r0, _0805BC44 @ =gRoomVars + movs r3, #0xc + ldrsh r1, [r0, r3] + movs r3, #0xa + ldrsh r0, [r2, r3] + cmp r1, r0 + ble _0805BC3A + ldr r2, _0805BC48 @ =gScreen + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + bl sub_0805BA78 + adds r4, r0, #0 + cmp r4, #0 + beq _0805BC3A + bl sub_0805BAD4 +_0805BC3A: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0805BC40: .4byte gArea +_0805BC44: .4byte gRoomVars +_0805BC48: .4byte gScreen + .syntax divided diff --git a/asm/non_matching/manager22/sub_0805BC4C.inc b/asm/non_matching/manager22/sub_0805BC4C.inc new file mode 100644 index 00000000..8ff50b9c --- /dev/null +++ b/asm/non_matching/manager22/sub_0805BC4C.inc @@ -0,0 +1,20 @@ + .syntax unified + push {lr} + ldr r1, _0805BC68 @ =gArea + ldrb r0, [r1, #0xc] + cmp r0, #0 + beq _0805BC64 + movs r0, #0 + strb r0, [r1, #0xc] + ldr r2, _0805BC6C @ =gScreen + ldrh r1, [r2] + ldr r0, _0805BC70 @ =0x0000D7FF + ands r0, r1 + strh r0, [r2] +_0805BC64: + pop {pc} + .align 2, 0 +_0805BC68: .4byte gArea +_0805BC6C: .4byte gScreen +_0805BC70: .4byte 0x0000D7FF + .syntax divided diff --git a/asm/non_matching/manager29/Manager29_Main.inc b/asm/non_matching/manager29/Manager29_Main.inc new file mode 100644 index 00000000..a95f1469 --- /dev/null +++ b/asm/non_matching/manager29/Manager29_Main.inc @@ -0,0 +1,29 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805CBB8 + adds r0, r4, #0 + bl sub_0805CBD0 + ldrh r0, [r4, #0x3e] + bl CheckFlags + cmp r0, #0 + beq _0805CBCE + adds r0, r4, #0 + bl sub_0805CC3C + adds r0, r4, #0 + bl DeleteManager + b _0805CBCE +_0805CBB8: + adds r0, r4, #0 + bl sub_0805CF80 + cmp r0, #0 + beq _0805CBCE + ldrh r0, [r4, #0x3e] + bl SetFlag + adds r0, r4, #0 + bl DeleteManager +_0805CBCE: + pop {r4, pc} + .syntax divided diff --git a/asm/non_matching/manager29/sub_0805CBD0.inc b/asm/non_matching/manager29/sub_0805CBD0.inc new file mode 100644 index 00000000..ac48b7a1 --- /dev/null +++ b/asm/non_matching/manager29/sub_0805CBD0.inc @@ -0,0 +1,54 @@ + .syntax unified + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldrh r1, [r5, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r3, #0x3f + ands r1, r3 + ldrh r0, [r5, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r5, #0x38] + ldrh r2, [r5, #0x3c] + lsrs r2, r2, #4 + ands r2, r3 + adds r0, r5, #0 + adds r0, #0x36 + ldrb r1, [r0] + adds r0, #1 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r1, r1, r0 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r2, r1 + strh r2, [r5, #0x3a] + movs r1, #0x38 + ldrsh r0, [r5, r1] + adds r4, r5, #0 + adds r4, #0x34 + ldrb r1, [r4] + bl GetTileType + strh r0, [r5, #0x3c] + ldrb r0, [r4] + bl GetLayerByIndex + ldr r2, _0805CC38 @ =0x00005004 + adds r1, r0, r2 + str r1, [r5, #0x28] + movs r2, #0x3a + ldrsh r1, [r5, r2] + lsls r1, r1, #1 + adds r1, #4 + adds r0, r0, r1 + str r0, [r5, #0x2c] + pop {r4, r5, pc} + .align 2, 0 +_0805CC38: .4byte 0x00005004 + .syntax divided diff --git a/asm/manager29.s b/asm/non_matching/manager29/sub_0805CC3C.inc similarity index 73% rename from asm/manager29.s rename to asm/non_matching/manager29/sub_0805CC3C.inc index c87bd2dd..402b9d89 100644 --- a/asm/manager29.s +++ b/asm/non_matching/manager29/sub_0805CC3C.inc @@ -1,98 +1,4 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - .syntax unified - - .text - - thumb_func_start sub_0805CB90 -sub_0805CB90: @ 0x0805CB90 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805CBB8 - adds r0, r4, #0 - bl sub_0805CBD0 - ldrh r0, [r4, #0x3e] - bl CheckFlags - cmp r0, #0 - beq _0805CBCE - adds r0, r4, #0 - bl sub_0805CC3C - adds r0, r4, #0 - bl DeleteManager - b _0805CBCE -_0805CBB8: - adds r0, r4, #0 - bl sub_0805CF80 - cmp r0, #0 - beq _0805CBCE - ldrh r0, [r4, #0x3e] - bl SetFlag - adds r0, r4, #0 - bl DeleteManager -_0805CBCE: - pop {r4, pc} - - thumb_func_start sub_0805CBD0 -sub_0805CBD0: @ 0x0805CBD0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - ldrh r1, [r5, #0x38] - lsls r1, r1, #0x10 - asrs r1, r1, #0x14 - movs r3, #0x3f - ands r1, r3 - ldrh r0, [r5, #0x3a] - lsls r0, r0, #0x10 - asrs r0, r0, #0x14 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - strh r1, [r5, #0x38] - ldrh r2, [r5, #0x3c] - lsrs r2, r2, #4 - ands r2, r3 - adds r0, r5, #0 - adds r0, #0x36 - ldrb r1, [r0] - adds r0, #1 - ldrb r0, [r0] - lsls r0, r0, #8 - adds r1, r1, r0 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r2, r1 - strh r2, [r5, #0x3a] - movs r1, #0x38 - ldrsh r0, [r5, r1] - adds r4, r5, #0 - adds r4, #0x34 - ldrb r1, [r4] - bl GetTileType - strh r0, [r5, #0x3c] - ldrb r0, [r4] - bl GetLayerByIndex - ldr r2, _0805CC38 @ =0x00005004 - adds r1, r0, r2 - str r1, [r5, #0x28] - movs r2, #0x3a - ldrsh r1, [r5, r2] - lsls r1, r1, #1 - adds r1, #4 - adds r0, r0, r1 - str r0, [r5, #0x2c] - pop {r4, r5, pc} - .align 2, 0 -_0805CC38: .4byte 0x00005004 - - thumb_func_start sub_0805CC3C -sub_0805CC3C: @ 0x0805CC3C push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} @@ -448,39 +354,4 @@ _0805CF70: .4byte 0x00000372 _0805CF74: .4byte 0x0000036F _0805CF78: .4byte 0x00000375 _0805CF7C: .4byte 0x00000371 - - thumb_func_start sub_0805CF80 -sub_0805CF80: @ 0x0805CF80 - push {lr} - ldr r1, [r0, #0x2c] - ldrh r1, [r1] - ldr r0, [r0, #0x28] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r1, [r1] - movs r2, #0 - ldr r0, _0805CFBC @ =0x00000365 - cmp r1, r0 - beq _0805CFB4 - adds r0, #4 - cmp r1, r0 - beq _0805CFB4 - adds r0, #1 - cmp r1, r0 - beq _0805CFB4 - adds r0, #1 - cmp r1, r0 - beq _0805CFB4 - adds r0, #2 - cmp r1, r0 - beq _0805CFB4 - subs r0, #1 - cmp r1, r0 - bne _0805CFB6 -_0805CFB4: - movs r2, #1 -_0805CFB6: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_0805CFBC: .4byte 0x00000365 + .syntax divided diff --git a/asm/non_matching/manager29/sub_0805CF80.inc b/asm/non_matching/manager29/sub_0805CF80.inc new file mode 100644 index 00000000..6e7c0007 --- /dev/null +++ b/asm/non_matching/manager29/sub_0805CF80.inc @@ -0,0 +1,35 @@ + .syntax unified + push {lr} + ldr r1, [r0, #0x2c] + ldrh r1, [r1] + ldr r0, [r0, #0x28] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r1, [r1] + movs r2, #0 + ldr r0, _0805CFBC @ =0x00000365 + cmp r1, r0 + beq _0805CFB4 + adds r0, #4 + cmp r1, r0 + beq _0805CFB4 + adds r0, #1 + cmp r1, r0 + beq _0805CFB4 + adds r0, #1 + cmp r1, r0 + beq _0805CFB4 + adds r0, #2 + cmp r1, r0 + beq _0805CFB4 + subs r0, #1 + cmp r1, r0 + bne _0805CFB6 +_0805CFB4: + movs r2, #1 +_0805CFB6: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0805CFBC: .4byte 0x00000365 + .syntax divided diff --git a/asm/non_matching/manager2B/sub_0805D02C.inc b/asm/non_matching/manager2B/sub_0805D02C.inc new file mode 100644 index 00000000..fc30b11f --- /dev/null +++ b/asm/non_matching/manager2B/sub_0805D02C.inc @@ -0,0 +1,74 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + ldrh r0, [r6, #0x3e] + bl CheckFlags + cmp r0, #0 + beq _0805D046 + bl DeleteThisEntity +_0805D046: + ldr r0, _0805D0BC @ =gEntCount + ldrb r0, [r0] + cmp r0, #0x43 + bhi _0805D0B0 + ldrb r0, [r6, #0xa] + bl GetCurrentRoomProperty + adds r5, r0, #0 + movs r7, #0 + movs r0, #0x36 + adds r0, r0, r6 + mov sl, r0 + ldr r1, _0805D0C0 @ =gRoomControls + mov r8, r1 + movs r0, #0x20 + adds r0, r0, r6 + mov sb, r0 +_0805D068: + ldrh r1, [r5, #4] + movs r0, #0xa0 + adds r2, r7, #0 + bl CreateObject + adds r4, r0, #0 + mov r1, r8 + ldrh r0, [r1, #6] + ldrh r1, [r5] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + mov r1, r8 + ldrh r0, [r1, #8] + ldrh r1, [r5, #2] + adds r0, r0, r1 + strh r0, [r4, #0x32] + str r6, [r4, #0x50] + adds r0, r4, #0 + bl sub_08016A30 + mov r0, sb + adds r0, #4 + mov sb, r0 + subs r0, #4 + stm r0!, {r4} + adds r7, #1 + adds r5, #6 + cmp r7, #3 + bls _0805D068 + movs r0, #0 + movs r1, #1 + strb r1, [r6, #0xc] + movs r1, #0x3c + strb r1, [r6, #0xf] + mov r1, sl + strb r0, [r1] +_0805D0B0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805D0BC: .4byte gEntCount +_0805D0C0: .4byte gRoomControls + .syntax divided diff --git a/asm/non_matching/manager2B/sub_0805D11C.inc b/asm/non_matching/manager2B/sub_0805D11C.inc new file mode 100644 index 00000000..6f1e4f0e --- /dev/null +++ b/asm/non_matching/manager2B/sub_0805D11C.inc @@ -0,0 +1,44 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r6, #0 + ldr r1, _0805D170 @ =gRoomControls + mov r8, r1 + movs r7, #0x3f + adds r5, r0, #0 + adds r5, #0x20 +_0805D12E: + ldr r4, [r5] + movs r0, #0 + stm r5!, {r0} + movs r2, #0x2e + ldrsh r0, [r4, r2] + mov r3, r8 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r7 + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r3, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r7 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + adds r0, r4, #0 + bl DeleteEntity + adds r6, #1 + cmp r6, #3 + bls _0805D12E + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805D170: .4byte gRoomControls + .syntax divided diff --git a/asm/non_matching/managerF/sub_08058EE4.inc b/asm/non_matching/managerF/sub_08058EE4.inc new file mode 100644 index 00000000..0cea43d5 --- /dev/null +++ b/asm/non_matching/managerF/sub_08058EE4.inc @@ -0,0 +1,45 @@ + .syntax unified + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _08058EF2 + movs r0, #1 + strb r0, [r6, #0xc] +_08058EF2: + ldrb r0, [r6, #0xb] + bl CheckRoomFlag + cmp r0, #0 + beq _08058F40 + movs r5, #0x94 + lsls r5, r5, #1 + ldrb r2, [r6, #0xb] + adds r2, #1 + adds r0, r5, #0 + movs r1, #0x68 + bl sub_08058F44 + movs r4, #0xac + lsls r4, r4, #1 + ldrb r2, [r6, #0xb] + adds r2, #2 + adds r0, r4, #0 + movs r1, #0x68 + bl sub_08058F44 + ldrb r2, [r6, #0xb] + adds r2, #3 + adds r0, r5, #0 + movs r1, #0x98 + bl sub_08058F44 + ldrb r2, [r6, #0xb] + adds r2, #4 + adds r0, r4, #0 + movs r1, #0x98 + bl sub_08058F44 + movs r0, #0x92 + lsls r0, r0, #1 + bl SoundReq + bl DeleteThisEntity +_08058F40: + pop {r4, r5, r6, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/managerF/sub_08058FB0.inc b/asm/non_matching/managerF/sub_08058FB0.inc new file mode 100644 index 00000000..5e748b8b --- /dev/null +++ b/asm/non_matching/managerF/sub_08058FB0.inc @@ -0,0 +1,91 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08058FF6 + cmp r0, #1 + bgt _08058FC4 + cmp r0, #0 + beq _08058FCA + b _08059050 +_08058FC4: + cmp r0, #2 + beq _08059018 + b _08059050 +_08058FCA: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _08058FDC + movs r0, #7 + strb r0, [r4, #0xd] + movs r0, #6 + b _08058FE2 +_08058FDC: + movs r0, #8 + strb r0, [r4, #0xd] + movs r0, #2 +_08058FE2: + strb r0, [r4, #0xf] + ldrh r0, [r4, #0x3e] + bl CheckFlags + cmp r0, #0 + beq _08059060 + adds r0, r4, #0 + bl DeleteManager + b _08059060 +_08058FF6: + ldrh r0, [r4, #0x3e] + bl CheckFlags + cmp r0, #0 + beq _08059060 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0xf0 + bl sub_0805E4E0 + adds r0, r4, #0 + bl sub_08059064 + b _08059060 +_08059018: + ldrb r0, [r4, #0xe] + cmp r0, #0x5a + bne _08059028 + movs r0, #2 + bl sub_08078A90 + bl sub_08077B20 +_08059028: + ldrb r2, [r4, #0xe] + cmp r2, #0x3c + bne _08059034 + ldr r1, _0805904C @ =gPlayerEntity + ldrb r0, [r4, #0xf] + strb r0, [r1, #0x14] +_08059034: + subs r0, r2, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08059060 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xd] + movs r0, #5 + bl MenuFadeIn + b _08059060 + .align 2, 0 +_0805904C: .4byte gPlayerEntity +_08059050: + ldrh r0, [r4, #0x3e] + bl SetFlag + movs r0, #1 + bl sub_08078A90 + bl DeleteThisEntity +_08059060: + pop {r4, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/managerF/sub_08059124.inc b/asm/non_matching/managerF/sub_08059124.inc new file mode 100644 index 00000000..afd30258 --- /dev/null +++ b/asm/non_matching/managerF/sub_08059124.inc @@ -0,0 +1,80 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08059174 + cmp r0, #1 + beq _080591AC + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080591C8 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r2, #0x3a + ldrsh r1, [r4, r2] + ldrb r2, [r4, #0xb] + bl CreateDustAt + ldrh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + movs r2, #0x3f + ands r0, r2 + ldrh r1, [r4, #0x3a] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + ldrb r1, [r4, #0xb] + bl sub_0807BA8C + movs r0, #0xcd + bl SoundReq + bl DeleteThisEntity + b _080591C8 +_08059174: + ldrh r0, [r4, #0x3e] + bl CheckFlags + cmp r0, #0 + beq _08059182 + bl DeleteThisEntity +_08059182: + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080591A8 @ =0x00000365 + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r3, #0x3f + ands r1, r3 + ldrh r2, [r4, #0x3a] + lsls r2, r2, #0x10 + asrs r2, r2, #0x14 + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r4, #0xb] + bl SetTileType + b _080591C8 + .align 2, 0 +_080591A8: .4byte 0x00000365 +_080591AC: + ldrh r0, [r4, #0x3e] + bl CheckFlags + cmp r0, #0 + beq _080591C8 + adds r0, r4, #0 + movs r1, #0x4b + bl sub_0805E4E0 + movs r0, #0x2d + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_080591C8: + pop {r4, pc} + .align 2, 0 + .syntax divided diff --git a/asm/non_matching/managerF/sub_080591CC.inc b/asm/non_matching/managerF/sub_080591CC.inc new file mode 100644 index 00000000..37753968 --- /dev/null +++ b/asm/non_matching/managerF/sub_080591CC.inc @@ -0,0 +1,44 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080591F4 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3e] + bl CheckFlags + strb r0, [r4, #0xb] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08059214 + ldr r1, _080591F0 @ =gRoomVars + ldrh r0, [r4, #0x3a] + b _08059218 + .align 2, 0 +_080591F0: .4byte gRoomVars +_080591F4: + ldrh r0, [r4, #0x3e] + bl CheckFlags + adds r1, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, r1 + beq _0805921A + strb r1, [r4, #0xb] + cmp r1, #0 + beq _08059214 + ldr r1, _08059210 @ =gRoomVars + ldrh r0, [r4, #0x3a] + b _08059218 + .align 2, 0 +_08059210: .4byte gRoomVars +_08059214: + ldr r1, _0805921C @ =gRoomVars + ldrh r0, [r4, #0x38] +_08059218: + strh r0, [r1, #0xc] +_0805921A: + pop {r4, pc} + .align 2, 0 +_0805921C: .4byte gRoomVars + .syntax divided diff --git a/asm/non_matching/managerF/sub_08059220.inc b/asm/non_matching/managerF/sub_08059220.inc new file mode 100644 index 00000000..2538d3a3 --- /dev/null +++ b/asm/non_matching/managerF/sub_08059220.inc @@ -0,0 +1,46 @@ + .syntax unified + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r2, _08059268 @ =gRoomVars + movs r0, #0 + strh r0, [r2, #0xc] + ldr r4, _0805926C @ =gUnk_08108354 + ldrh r0, [r4] + ldr r1, _08059270 @ =0x0000FFFF + cmp r0, r1 + beq _08059254 + adds r7, r2, #0 + adds r6, r1, #0 +_08059238: + ldrh r0, [r4] + ldrh r1, [r4, #2] + ldrh r2, [r4, #4] + ldrh r3, [r4, #6] + bl CheckPlayerInRegion + cmp r0, #0 + beq _0805924C + ldrh r0, [r4, #8] + strh r0, [r7, #0xc] +_0805924C: + adds r4, #0xa + ldrh r0, [r4] + cmp r0, r6 + bne _08059238 +_08059254: + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08059266 + movs r0, #1 + strb r0, [r5, #0xc] + ldr r1, _08059274 @ =gArea + ldr r0, _08059268 @ =gRoomVars + ldrh r0, [r0, #0xc] + strh r0, [r1, #0xa] +_08059266: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08059268: .4byte gRoomVars +_0805926C: .4byte gUnk_08108354 +_08059270: .4byte 0x0000FFFF +_08059274: .4byte gArea + .syntax divided diff --git a/asm/non_matching/managerF/sub_080593CC.inc b/asm/non_matching/managerF/sub_080593CC.inc new file mode 100644 index 00000000..f8da8864 --- /dev/null +++ b/asm/non_matching/managerF/sub_080593CC.inc @@ -0,0 +1,45 @@ + .syntax unified + push {r4, lr} + adds r3, r0, #0 + ldr r2, _08059418 @ =gPlayerState + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08059420 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08059420 + ldr r4, _0805941C @ =gPlayerEntity + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08059420 + adds r0, r2, #0 + adds r0, #0x90 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #3 + cmp r0, r1 + bne _08059420 + movs r0, #0x38 + ldrsh r1, [r3, r0] + movs r0, #0x3a + ldrsh r2, [r3, r0] + adds r2, #0xc + adds r0, r4, #0 + movs r3, #6 + bl sub_0806FCB8 + b _08059422 + .align 2, 0 +_08059418: .4byte gPlayerState +_0805941C: .4byte gPlayerEntity +_08059420: + movs r0, #0 +_08059422: + pop {r4, pc} + .syntax divided diff --git a/asm/non_matching/managerF/sub_0805947C.inc b/asm/non_matching/managerF/sub_0805947C.inc new file mode 100644 index 00000000..3f061bc2 --- /dev/null +++ b/asm/non_matching/managerF/sub_0805947C.inc @@ -0,0 +1,44 @@ + .syntax unified + push {lr} + ldrh r0, [r0, #0x3e] + bl CheckFlags + cmp r0, #0 + bne _080594CE + movs r0, #3 + bl sub_08078A90 + ldr r1, _080594B0 @ =gRoomControls + ldrh r0, [r1] + cmp r0, #0 + bne _080594D2 + ldr r0, _080594B4 @ =gRoomVars + ldrb r0, [r0] + cmp r0, #0 + beq _080594BC + ldr r0, _080594B8 @ =gUnk_08108380 + ldrb r1, [r1, #0x10] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl StartPlayerScript + b _080594CE + .align 2, 0 +_080594B0: .4byte gRoomControls +_080594B4: .4byte gRoomVars +_080594B8: .4byte gUnk_08108380 +_080594BC: + ldr r1, _080594D4 @ =gUnk_08108380 + ldr r0, _080594D8 @ =gPlayerEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl StartPlayerScript +_080594CE: + bl DeleteThisEntity +_080594D2: + pop {pc} + .align 2, 0 +_080594D4: .4byte gUnk_08108380 +_080594D8: .4byte gPlayerEntity + .syntax divided diff --git a/asm/non_matching/managerF/sub_080594DC.inc b/asm/non_matching/managerF/sub_080594DC.inc new file mode 100644 index 00000000..0733df2a --- /dev/null +++ b/asm/non_matching/managerF/sub_080594DC.inc @@ -0,0 +1,51 @@ + .syntax unified + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080594F2 + cmp r0, #1 + bgt _0805951C + cmp r0, #0 + bne _0805951C + movs r0, #1 + strb r0, [r4, #0xc] +_080594F2: + movs r0, #6 + bl GetInventoryValue + cmp r0, #0 + beq _08059540 + movs r0, #0x8c + lsls r0, r0, #4 + movs r1, #0x85 + bl CheckLocalFlagByOffset + cmp r0, #0 + bne _08059540 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r0, _08059518 @ =0x00000B0F + bl sub_080186C0 + b _08059540 + .align 2, 0 +_08059518: .4byte 0x00000B0F +_0805951C: + ldr r0, _08059544 @ =gArea + adds r0, #0x28 + ldrb r0, [r0] + cmp r0, #0xff + beq _0805952A + bl DeleteThisEntity +_0805952A: + movs r0, #0x8c + lsls r0, r0, #4 + movs r1, #0x85 + bl CheckLocalFlagByOffset + cmp r0, #0 + beq _08059540 + bl sub_0801855C + bl DeleteThisEntity +_08059540: + pop {r4, pc} + .align 2, 0 +_08059544: .4byte gArea + .syntax divided diff --git a/asm/non_matching/managerF/sub_08059548.inc b/asm/non_matching/managerF/sub_08059548.inc new file mode 100644 index 00000000..a324756b --- /dev/null +++ b/asm/non_matching/managerF/sub_08059548.inc @@ -0,0 +1,43 @@ + .syntax unified +.ifdef USA + push {lr} + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _08059568 @ =gPlayerEntity + ldrb r0, [r0, #0xc] + cmp r0, #0x16 + bne _0805955C + bl DeleteThisEntity +_0805955C: + ldr r2, _0805956C @ =gInput + ldrh r1, [r2] + movs r0, #4 + orrs r0, r1 + strh r0, [r2] + pop {pc} + .align 2, 0 +_08059568: .4byte gPlayerEntity +_0805956C: .4byte gInput +.else +.ifdef DEMO @ TODO deduplicate + push {lr} + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _08059568 @ =gPlayerEntity + ldrb r0, [r0, #0xc] + cmp r0, #0x16 + bne _0805955C + bl DeleteThisEntity +_0805955C: + ldr r2, _0805956C @ =gInput + ldrh r1, [r2] + movs r0, #4 + orrs r0, r1 + strh r0, [r2] + pop {pc} + .align 2, 0 +_08059568: .4byte gPlayerEntity +_0805956C: .4byte gInput +.endif +.endif + .syntax divided diff --git a/asm/vaati.s b/asm/vaati.s index a9f5bf86..4fc88888 100644 --- a/asm/vaati.s +++ b/asm/vaati.s @@ -130,7 +130,7 @@ _08066B40: movs r0, #4 str r0, [r1, #4] adds r0, r4, #0 - bl sub_0805DDEC + bl CreateManager36 b _08066B66 _08066B52: adds r0, r4, #0 @@ -138,7 +138,7 @@ _08066B52: ldr r1, [r0] str r2, [r1, #4] adds r0, r4, #0 - bl sub_0805DE18 + bl DeleteManager36 ldr r0, _08066B70 @ =0x0000021D bl EnqueueSFX _08066B66: diff --git a/data/scripts/script_0800AB08.inc b/data/scripts/script_0800AB08.inc index d0cea700..3e39cd33 100644 --- a/data/scripts/script_0800AB08.inc +++ b/data/scripts/script_0800AB08.inc @@ -17,5 +17,5 @@ SCRIPT_START script_0800AB08 _0807EA94 TextboxNoOverlapFollowPos 0x165e, 0x000e _0807EA94 - CallWithArg sub_0805DDEC, 0x00000001 + CallWithArg CreateManager36, 0x00000001 _0807F0C8 0xffff, 0x0000 diff --git a/data/scripts/script_0800AB6E.inc b/data/scripts/script_0800AB6E.inc index 1f8e3217..93ddef40 100644 --- a/data/scripts/script_0800AB6E.inc +++ b/data/scripts/script_0800AB6E.inc @@ -8,7 +8,7 @@ SCRIPT_START script_0800AB6E SetEntityPosition 0x0000, 0xffe0 Call sub_0807F5C0 Wait 0x003c - CallWithArg sub_0805DE18, 0x00000001 + CallWithArg DeleteManager36, 0x00000001 _0807F0C8 0x0000, 0x0000 Wait 0x003c _0807E5F8 0x00000002 diff --git a/data/scripts/script_0800DB78.inc b/data/scripts/script_0800DB78.inc index 829bc9d0..03052307 100644 --- a/data/scripts/script_0800DB78.inc +++ b/data/scripts/script_0800DB78.inc @@ -42,5 +42,5 @@ script_0800DBCA: _0807E5F8 0x00000001 StopBgm Call sub_08094F98 - CallWithArg sub_0805DDEC, 0x00000001 + CallWithArg CreateManager36, 0x00000001 _0807F0C8 0xffff, 0x0000 diff --git a/data/scripts/script_0800DC4C.inc b/data/scripts/script_0800DC4C.inc index 1c84c162..c08bc36d 100644 --- a/data/scripts/script_0800DC4C.inc +++ b/data/scripts/script_0800DC4C.inc @@ -11,7 +11,7 @@ SCRIPT_START script_0800DC4C _0807E778 0x0004 _0807E80C 0x00000000 WaitFor_2 - CallWithArg sub_0805DE18, 0x00000001 + CallWithArg DeleteManager36, 0x00000001 _0807F0C8 0x0000, 0x0000 SetLocalFlag 0x0079 CallWithArg sub_0806DA1C, 0x00000002 diff --git a/data/scripts/script_08010BB4.inc b/data/scripts/script_08010BB4.inc index 9bd7cb7f..6e912cff 100644 --- a/data/scripts/script_08010BB4.inc +++ b/data/scripts/script_08010BB4.inc @@ -135,5 +135,5 @@ SCRIPT_START script_08010BEC _0807E5F8 0x08000000 _0807E5F8 0x00800000 WaitForSomething2 0x01000000 - CallWithArg sub_0805DDEC, 0x00000002 + CallWithArg CreateManager36, 0x00000002 _0807F0C8 0xffff, 0x0000 diff --git a/data/scripts/script_08010E5A.inc b/data/scripts/script_08010E5A.inc index 2804a046..2ebf3a9e 100644 --- a/data/scripts/script_08010E5A.inc +++ b/data/scripts/script_08010E5A.inc @@ -24,7 +24,7 @@ SCRIPT_START script_08010E5A _0807E778 0x0002 DoFade6 WaitFor_2 - CallWithArg sub_0805DE18, 0x00000002 + CallWithArg DeleteManager36, 0x00000002 _0807F0C8 0x0000, 0x0000 Call sub_0806DC3C Call sub_080791BC @@ -51,5 +51,5 @@ SCRIPT_START script_08010E5A _0807EA94 TextboxNoOverlapFollowPos 0x1046, 0x0000 _0807EA94 - CallWithArg sub_0805DDEC, 0x00000002 + CallWithArg CreateManager36, 0x00000002 _0807F0C8 0xffff, 0x0000 diff --git a/data/scripts/script_08010F84.inc b/data/scripts/script_08010F84.inc index d10ec983..54feb621 100644 --- a/data/scripts/script_08010F84.inc +++ b/data/scripts/script_08010F84.inc @@ -22,7 +22,7 @@ SCRIPT_START script_08010F84 Wait 0x000f PlaySound SFX_125 CallWithArg sub_0807FB28, 0x00000003 - CallWithArg sub_0805DE18, 0x00000002 + CallWithArg DeleteManager36, 0x00000002 _0807F0C8 0x0000, 0x0000 _0807E5F8 0x00000010 WaitForSomething2 0x00000020 diff --git a/data/scripts/script_080134DC.inc b/data/scripts/script_080134DC.inc index 9431e96d..bdf9d90e 100644 --- a/data/scripts/script_080134DC.inc +++ b/data/scripts/script_080134DC.inc @@ -34,7 +34,7 @@ script_080134F8: CallWithArg sub_08095D8C, script_08014118 EndBlock Wait 0x003c - CallWithArg sub_0805DDEC, 0x00000000 + CallWithArg CreateManager36, 0x00000000 _0807E5F8 0x00000200 WaitForSomething2 0x00002000 PlaySound SFX_1D2 @@ -44,7 +44,7 @@ script_080134F8: WaitForSomething2 0x00004000 Wait 0x0078 _0807E5F8 0x00000060 - CallWithArg sub_0805DE18, 0x00000000 + CallWithArg DeleteManager36, 0x00000000 Wait 0x0078 _0807E5F8 0x00000080 WaitForSomething2 0x00000100 @@ -69,5 +69,5 @@ script_080134F8: TextboxNoOverlapFollowPos 0x0503, 0x000c _0807EA94 _0807E5F8 0x00040000 - CallWithArg sub_0805DDEC, 0x00000001 + CallWithArg CreateManager36, 0x00000001 _0807F0C8 0xffff, 0x0000 diff --git a/data/scripts/script_08013650.inc b/data/scripts/script_08013650.inc index 0b142523..be9e61d7 100644 --- a/data/scripts/script_08013650.inc +++ b/data/scripts/script_08013650.inc @@ -7,7 +7,7 @@ SCRIPT_START script_08013650 Wait 0x003c _0807E5F8 0x00000004 Wait 0x0078 - CallWithArg sub_0805DE18, 0x00000001 + CallWithArg DeleteManager36, 0x00000001 _0807F0C8 0x0000, 0x0000 StartPlayerScript script_080136B4 WaitForSomething2 0x00000002 diff --git a/data/scripts/script_08013720.inc b/data/scripts/script_08013720.inc index b7718584..d669a6ce 100644 --- a/data/scripts/script_08013720.inc +++ b/data/scripts/script_08013720.inc @@ -35,7 +35,7 @@ script_0801373C: CallWithArg sub_08095D8C, script_08014154 EndBlock Wait 0x003c - CallWithArg sub_0805DDEC, 0x00000000 + CallWithArg CreateManager36, 0x00000000 _0807E5F8 0x00000200 WaitForSomething2 0x00002000 PlaySound SFX_1D2 @@ -47,7 +47,7 @@ script_0801373C: WaitForSomething2 0x00008000 Wait 0x0078 _0807E5F8 0x00000060 - CallWithArg sub_0805DE18, 0x00000000 + CallWithArg DeleteManager36, 0x00000000 Wait 0x0078 _0807E5F8 0x00000080 WaitForSomething2 0x00000100 diff --git a/data/scripts/script_080138B4.inc b/data/scripts/script_080138B4.inc index 206ac542..c2401d1d 100644 --- a/data/scripts/script_080138B4.inc +++ b/data/scripts/script_080138B4.inc @@ -37,7 +37,7 @@ script_080138D0: CallWithArg sub_08095D8C, script_08014198 EndBlock Wait 0x003c - CallWithArg sub_0805DDEC, 0x00000000 + CallWithArg CreateManager36, 0x00000000 _0807E5F8 0x00000200 WaitForSomething2 0x00002000 PlaySound SFX_1D2 @@ -51,7 +51,7 @@ script_080138D0: WaitForSomething2 0x00010000 Wait 0x0078 _0807E5F8 0x00000060 - CallWithArg sub_0805DE18, 0x00000000 + CallWithArg DeleteManager36, 0x00000000 Wait 0x0078 _0807E5F8 0x00000080 WaitForSomething2 0x00000100 @@ -93,5 +93,5 @@ script_08013A8E: CheckRoomFlag 0x0004 JumpIfNot script_08013A8E .endif - CallWithArg sub_0805DDEC, 0x00000001 + CallWithArg CreateManager36, 0x00000001 _0807F0C8 0xffff, 0x0000 diff --git a/data/scripts/script_08013AA6.inc b/data/scripts/script_08013AA6.inc index 37961ee2..704a94ee 100644 --- a/data/scripts/script_08013AA6.inc +++ b/data/scripts/script_08013AA6.inc @@ -9,7 +9,7 @@ SCRIPT_START script_08013AA6 .endif _0807E5F8 0x00000008 Wait 0x0078 - CallWithArg sub_0805DE18, 0x00000001 + CallWithArg DeleteManager36, 0x00000001 _0807F0C8 0x0000, 0x0000 Wait 0x003c _0807F0B4 0x0004 diff --git a/data/scripts/script_080153EC.inc b/data/scripts/script_080153EC.inc index 4b6215c6..e44e0e7a 100644 --- a/data/scripts/script_080153EC.inc +++ b/data/scripts/script_080153EC.inc @@ -32,5 +32,5 @@ SCRIPT_START script_080153EC _0807EA94 TextboxNoOverlapFollowPos 0x1310, 0x000c _0807EA94 - CallWithArg sub_0805DDEC, 0x00000001 + CallWithArg CreateManager36, 0x00000001 _0807F0C8 0xffff, 0x0000 diff --git a/data/scripts/script_0801548E.inc b/data/scripts/script_0801548E.inc index 4c3abbd4..28d145b7 100644 --- a/data/scripts/script_0801548E.inc +++ b/data/scripts/script_0801548E.inc @@ -11,7 +11,7 @@ SCRIPT_START script_0801548E WaitForSomething2 0x00010000 _0807E5F8 0x00048000 WaitForSomething2 0x00010000 - CallWithArg sub_0805DE18, 0x00000001 + CallWithArg DeleteManager36, 0x00000001 _0807F0C8 0x0000, 0x0000 TextboxNoOverlapFollowPos 0x1312, 0x000c _0807EA94 diff --git a/data/scripts/script_08015618.inc b/data/scripts/script_08015618.inc index 399b1b33..58bf24d6 100644 --- a/data/scripts/script_08015618.inc +++ b/data/scripts/script_08015618.inc @@ -5,13 +5,13 @@ SCRIPT_START script_08015618 Call sub_08094B80 EndBlock WaitForSomething2 0x00000080 - CallWithArg sub_0805DDEC, 0x00000003 + CallWithArg CreateManager36, 0x00000003 Call sub_08094B0C _0807EDD4 0x0078, 0x0068 _0807E5F8 0x00000100 WaitForSomething2 0x00000080 _0807EF3C 0xff80, 0x0000 - CallWithArg sub_0805DE18, 0x00000003 + CallWithArg DeleteManager36, 0x00000003 Wait 0x003c _0807E5F8 0x00000100 WaitForSomething2 0x00000080 diff --git a/include/entity.h b/include/entity.h index ca4bd10d..2109a212 100644 --- a/include/entity.h +++ b/include/entity.h @@ -265,4 +265,6 @@ Entity* FindNextDuplicateID(Entity* ent, int listIndex); */ Entity* FindEntity(u32 kind, u32 id, u32 listIndex, u32 type, u32 type2); +void DeleteEntityAny(Entity* ent); + #endif diff --git a/include/flags.h b/include/flags.h index c68be93e..81dbf5f2 100644 --- a/include/flags.h +++ b/include/flags.h @@ -28,7 +28,7 @@ void SetRoomFlag(u32); extern u32 gGlobalFlags; extern u32 gRoomFlags; -enum { +typedef enum { FLAG_NONE, /*0x01*/ LV0_CLEAR, /* */ /*0x02*/ LV1_CLEAR, /* */ @@ -130,6 +130,6 @@ enum { /*0x62*/ MAZE_CLEAR, /* Cleared Castle maze */ /*0x63*/ TINY_ENTRANCE, /* Ezlo described entrances */ /*0x64*/ CASTLE_BGM, /* Castle intro BGM */ -}; +} Flag; #endif diff --git a/include/functions.h b/include/functions.h index 44c47725..135d7b92 100644 --- a/include/functions.h +++ b/include/functions.h @@ -267,6 +267,7 @@ extern void sub_0805EEB4(u8*, u32); extern void sub_08056BDC(u32); extern void sub_08056F88(u32, u32); extern void sub_0805F8E4(u32 r0, WStruct* r1); +extern void DoExitTransition(ScreenTransitionData*); extern Entity* sub_08077C94(ItemBehavior*, u32); extern Entity* sub_08077C0C(ItemBehavior*, u32); diff --git a/include/manager.h b/include/manager.h index 1e5e8651..4253e3f1 100644 --- a/include/manager.h +++ b/include/manager.h @@ -149,63 +149,63 @@ typedef struct { u16 unk_06; } UnkManager26HelperStruct; -extern void Manager1(); -extern void Manager2(); -extern void sub_080576C0(); -extern void sub_08057854(); -extern void sub_08057AD0(); -extern void sub_08057CB4(); +extern void Manager1_Main(); +extern void Manager2_Main(); +extern void Manager3_Main(); +extern void Manager4_Main(); +extern void Manager5_Main(); +extern void Manager6_Main(); extern void Manager7_Main(); -extern void sub_08057ED0(); -extern void sub_080581D8(); -extern void sub_08058380(); -extern void sub_080585F0(); -extern void sub_0805884C(); -extern void sub_08058DD0(Entity*); -extern void sub_08058E60(); +extern void Manager8_Main(); +extern void Manager9_Main(); +extern void ManagerA_Main(); +extern void ManagerB_Main(); +extern void ManagerC_Main(); +extern void ManagerD_Main(); +extern void ManagerE_Main(); extern void sub_08058ECC(ManagerF*); -extern void sub_08059570(Entity*); -extern void sub_080599B8(Manager11*); -extern void sub_080599EC(Entity*); -extern void sub_08059DAC(Entity*); -extern void sub_08059E58(Entity*); -extern void sub_0805A280(); -extern void sub_0805AB4C(Entity*); -extern void sub_0805AD48(Entity*); -extern void sub_0805ADD8(); -extern void sub_0805AF60(Entity*); -extern void sub_0805B030(); -extern void sub_0805B3B4(Entity*); -extern void sub_0805B53C(Entity*); -extern void sub_0805B5C8(Entity*); -extern void Manager1E_Handler(); -extern void sub_0805B6F4(Entity*); -extern void sub_0805B7A0(); -extern void sub_0805B820(Entity*); -extern void sub_0805B8EC(Entity*); -extern void sub_0805BC74(Entity*); -extern void sub_0805BF18(Entity*); -extern void sub_0805C61C(Entity*); -extern void sub_0805C6B8(); -extern void Manager27(); -extern void Manager28_Entry(); -extern void sub_0805CB90(Entity*); -extern void sub_0805CFC0(Entity*); -extern void sub_0805D014(Entity*); -extern void sub_0805D174(Entity*); -extern void sub_0805D1FC(Entity*); -extern void sub_0805D250(); -extern void sub_0805D3C8(); +extern void Manager10_Main(); +extern void Manager11_Main(Manager11*); +extern void Manager12_Main(); +extern void Manager13_Main(); +extern void Manager14_Main(); +extern void Manager15_Main(); +extern void Manager16_Main(); +extern void Manager17_Main(); +extern void Manager18_Main(); +extern void Manager19_Main(); +extern void Manager1A_Main(); +extern void Manager1B_Main(); +extern void Manager1C_Main(Manager*); +extern void Manager1D_Main(); +extern void Manager1E_Main(); +extern void Manager1F_Main(); +extern void Manager20_Main(); +extern void Manager21_Main(); +extern void Manager22_Main(); +extern void Manager23_Main(); +extern void Manager24_Main(); +extern void Manager25_Main(); +extern void Manager26_Main(); +extern void Manager27_Main(); +extern void Manager28_Main(); +extern void Manager29_Main(); +extern void Manager2A_Main(Manager*); +extern void Manager2B_Main(); +extern void Manager2C_Main(); +extern void Manager2D_Main(Entity*); +extern void Manager2E_Main(); +extern void Manager2F_Main(); extern void Manager30_Main(); -extern void sub_0805D630(Entity*); -extern void sub_0805D7A4(Entity*); -extern void sub_0805DAE8(Entity*); -extern void sub_0805DB94(Entity*); -extern void sub_0805DC84(Entity*); -extern void sub_0805DDB4(Entity*); -extern void sub_0805DE38(Entity*); -extern void sub_0805E0A8(Entity*); -extern void sub_0805E0FC(); +extern void Manager31_Main(); +extern void Manager32_Main(); +extern void Manager33_Main(); +extern void Manager34_Main(); +extern void Manager35_Main(); +extern void Manager36_Main(Manager*); +extern void Manager37_Main(); +extern void Manager38_Main(Entity*); +extern void Manager39_Main(); extern void (*const gManagerFunctions[58])(); diff --git a/include/room.h b/include/room.h index 86ef0279..f34f7297 100644 --- a/include/room.h +++ b/include/room.h @@ -52,8 +52,7 @@ typedef struct { u8 filler2; u16 field_0xc; u8 filler3[2]; - u8 unk_10; - u8 filler6[3]; + u8 unk_10[4]; u32 roomFlags; u32 unk3; u8 filler4[48]; diff --git a/include/save.h b/include/save.h index 65258dee..dbb2b6b3 100644 --- a/include/save.h +++ b/include/save.h @@ -41,7 +41,8 @@ typedef struct { /*0x141*/ u8 unk141[0x34f]; /*0x490*/ u32 unk490; /*0x494*/ u32 unk494; - /*0x498*/ u8 filler498[0x1C]; + /*0x498*/ u32 unk498; + /*0x49C*/ u8 filler49C[0x18]; } SaveFile; extern SaveFile gSave; diff --git a/include/structures.h b/include/structures.h index 43455a79..20f83c3b 100644 --- a/include/structures.h +++ b/include/structures.h @@ -169,6 +169,9 @@ typedef struct { u8 unk3; u8 freezeTime; u8 unk9; + u8 unk_0xa; + u8 unk_0xb; + u16 unk_0xc; } EntityHandler; extern EntityHandler gUnk_03003DC0; diff --git a/linker.ld b/linker.ld index 037c3a5a..b64f44f2 100644 --- a/linker.ld +++ b/linker.ld @@ -500,9 +500,7 @@ SECTIONS { src/textbox.o(.text); asm/code_08056418.o(.text); src/manager/manager1.o(.text); - asm/manager1.o(.text); src/manager/manager2.o(.text); - asm/manager2.o(.text); src/manager/manager3.o(.text); src/manager/manager4.o(.text); src/manager/manager5.o(.text); @@ -513,51 +511,50 @@ SECTIONS { src/manager/managerA.o(.text); src/manager/managerB.o(.text); src/manager/managerC.o(.text); - asm/managerD.o(.text); + src/manager/managerD.o(.text); src/manager/managerE.o(.text); src/manager/managerF.o(.text); - asm/manager10.o(.text); + src/manager/manager10.o(.text); src/manager/manager11.o(.text); - asm/manager12.o(.text); - asm/manager13.o(.text); - asm/manager14.o(.text); + src/manager/manager12.o(.text); + src/manager/manager13.o(.text); + src/manager/manager14.o(.text); src/manager/manager15.o(.text); - asm/manager16.o(.text); - asm/manager17.o(.text); - asm/manager18.o(.text); - asm/manager19.o(.text); + src/manager/manager16.o(.text); + src/manager/manager17.o(.text); + src/manager/manager18.o(.text); + src/manager/manager19.o(.text); src/manager/manager1A.o(.text); - asm/manager1B.o(.text); - asm/manager1C.o(.text); - asm/manager1D.o(.text); + src/manager/manager1B.o(.text); + src/manager/manager1C.o(.text); + src/manager/manager1D.o(.text); src/manager/manager1E.o(.text); - asm/manager1F.o(.text); + src/manager/manager1F.o(.text); src/manager/manager20.o(.text); - asm/manager21.o(.text); - asm/manager22.o(.text); - asm/manager23.o(.text); - asm/manager24.o(.text); - asm/manager25.o(.text); + src/manager/manager21.o(.text); + src/manager/manager22.o(.text); + src/manager/manager23.o(.text); + src/manager/manager24.o(.text); + src/manager/manager25.o(.text); src/manager/manager26.o(.text); src/manager/manager27.o(.text); src/manager/manager28.o(.text); - asm/manager29.o(.text); - asm/manager2A.o(.text); - asm/manager2B.o(.text); - asm/manager2C.o(.text); - asm/manager2D.o(.text); + src/manager/manager29.o(.text); + src/manager/manager2A.o(.text); + src/manager/manager2B.o(.text); + src/manager/manager2C.o(.text); + src/manager/manager2D.o(.text); src/manager/manager2E.o(.text); - asm/manager2E.o(.text); - asm/manager2F.o(.text); + src/manager/manager2F.o(.text); src/manager/manager30.o(.text); - asm/manager31.o(.text); - asm/manager32.o(.text); - asm/manager33.o(.text); - asm/manager34.o(.text); - asm/manager35.o(.text); - asm/manager36.o(.text); - asm/manager37.o(.text); - asm/manager38.o(.text); + src/manager/manager31.o(.text); + src/manager/manager32.o(.text); + src/manager/manager33.o(.text); + src/manager/manager34.o(.text); + src/manager/manager35.o(.text); + src/manager/manager36.o(.text); + src/manager/manager37.o(.text); + src/manager/manager38.o(.text); src/manager/manager39.o(.text); asm/sub_0805E248.o(.text); src/sub_0805E374.o(.text); diff --git a/src/code_0808091C.c b/src/code_0808091C.c index 4f169f0d..9fc8718f 100644 --- a/src/code_0808091C.c +++ b/src/code_0808091C.c @@ -10,8 +10,6 @@ extern u32 gUnk_0200B650; extern u32 gUnk_02025EB0; extern u8 gUnk_02000070; -extern void DoExitTransition(ScreenTransitionData*); - void sub_080808D8(void) { gScreenTransition.transitionType = 0; } diff --git a/src/enemy/mazaalHead.c b/src/enemy/mazaalHead.c index 1139af36..1672b5c4 100644 --- a/src/enemy/mazaalHead.c +++ b/src/enemy/mazaalHead.c @@ -8,7 +8,6 @@ #include "functions.h" extern void UnloadOBJPalette(Entity*); -extern void DoExitTransition(ScreenTransitionData*); extern u8 gEntCount; diff --git a/src/enemy/mazaalMacro.c b/src/enemy/mazaalMacro.c index d3dbee34..0e32a810 100644 --- a/src/enemy/mazaalMacro.c +++ b/src/enemy/mazaalMacro.c @@ -6,7 +6,6 @@ #include "structures.h" #include "functions.h" -extern void DoExitTransition(ScreenTransitionData*); extern void sub_0807B600(u32); extern const u16 script_08012E20[]; diff --git a/src/enemy/wallMaster.c b/src/enemy/wallMaster.c index 394e8620..663c3612 100644 --- a/src/enemy/wallMaster.c +++ b/src/enemy/wallMaster.c @@ -6,9 +6,7 @@ extern void sub_08001328(Entity*); extern Entity* sub_08049DF4(u32); -extern void DoExitTransition(u32*); - -extern u32* gUnk_0813AB1C[]; +extern ScreenTransitionData* gUnk_0813AB1C[]; void sub_0802A78C(Entity*); void sub_0802A7D0(Entity*); diff --git a/src/enemy/wallMaster2.c b/src/enemy/wallMaster2.c index 7c488c30..a0c79d74 100644 --- a/src/enemy/wallMaster2.c +++ b/src/enemy/wallMaster2.c @@ -4,10 +4,9 @@ #include "functions.h" extern void sub_08001328(Entity*); -extern void DoExitTransition(u32*); extern Entity* gUnk_020000B0; -extern u32* gUnk_0813AB1C[]; +extern ScreenTransitionData* gUnk_0813AB1C[]; void sub_0802CF64(Entity*); void sub_0802CF8C(Entity*); diff --git a/src/entity.c b/src/entity.c index f3fd7ca3..02230491 100644 --- a/src/entity.c +++ b/src/entity.c @@ -49,7 +49,6 @@ typedef struct { extern struct_03003DD0 gUnk_03003DD0; extern u32 _call_via_r0(u32*); extern u32 _EntUpdate; -void DeleteEntityAny(Entity*); void DeleteThisEntity(void) { DeleteEntityAny(gUnk_03003DD0.field_0x8); diff --git a/src/manager.c b/src/manager.c index 27124146..1d8974cf 100644 --- a/src/manager.c +++ b/src/manager.c @@ -2,13 +2,13 @@ // TODO: change all manager arguments to be Entity* and cast to specific type later. void (*const gManagerFunctions[])() = { - NULL, Manager1, Manager2, sub_080576C0, sub_08057854, sub_08057AD0, sub_08057CB4, - Manager7_Main, sub_08057ED0, sub_080581D8, sub_08058380, sub_080585F0, sub_0805884C, sub_08058DD0, - sub_08058E60, sub_08058ECC, sub_08059570, sub_080599B8, sub_080599EC, sub_08059DAC, sub_08059E58, - sub_0805A280, sub_0805AB4C, sub_0805AD48, sub_0805ADD8, sub_0805AF60, sub_0805B030, sub_0805B3B4, - sub_0805B53C, sub_0805B5C8, Manager1E_Handler, sub_0805B6F4, sub_0805B7A0, sub_0805B820, sub_0805B8EC, - sub_0805BC74, sub_0805BF18, sub_0805C61C, sub_0805C6B8, Manager27, Manager28_Entry, sub_0805CB90, - sub_0805CFC0, sub_0805D014, sub_0805D174, sub_0805D1FC, sub_0805D250, sub_0805D3C8, Manager30_Main, - sub_0805D630, sub_0805D7A4, sub_0805DAE8, sub_0805DB94, sub_0805DC84, sub_0805DDB4, sub_0805DE38, - sub_0805E0A8, sub_0805E0FC + NULL, Manager1_Main, Manager2_Main, Manager3_Main, Manager4_Main, Manager5_Main, Manager6_Main, + Manager7_Main, Manager8_Main, Manager9_Main, ManagerA_Main, ManagerB_Main, ManagerC_Main, ManagerD_Main, + ManagerE_Main, sub_08058ECC, Manager10_Main, Manager11_Main, Manager12_Main, Manager13_Main, Manager14_Main, + Manager15_Main, Manager16_Main, Manager17_Main, Manager18_Main, Manager19_Main, Manager1A_Main, Manager1B_Main, + Manager1C_Main, Manager1D_Main, Manager1E_Main, Manager1F_Main, Manager20_Main, Manager21_Main, Manager22_Main, + Manager23_Main, Manager24_Main, Manager25_Main, Manager26_Main, Manager27_Main, Manager28_Main, Manager29_Main, + Manager2A_Main, Manager2B_Main, Manager2C_Main, Manager2D_Main, Manager2E_Main, Manager2F_Main, Manager30_Main, + Manager31_Main, Manager32_Main, Manager33_Main, Manager34_Main, Manager35_Main, Manager36_Main, Manager37_Main, + Manager38_Main, Manager39_Main }; diff --git a/src/manager/manager1.c b/src/manager/manager1.c index 45e1b000..200fc720 100644 --- a/src/manager/manager1.c +++ b/src/manager/manager1.c @@ -12,7 +12,7 @@ extern void (*const gUnk_08107C48[])(Entity*); extern u8 gUnk_08107C40[]; -void Manager1(Entity* this) { +void Manager1_Main(Entity* this) { u8 bVar1; u8* pbVar2; @@ -56,3 +56,17 @@ void sub_08057118(Entity* this) { gScreen.controls.alphaBlend = 0x1000; sub_08052D74(this, sub_080570B8, sub_080570F8); } + +ASM_FUNC("asm/non_matching/manager1/sub_08057174.inc", void sub_08057174()) + +ASM_FUNC("asm/non_matching/manager1/sub_0805728C.inc", void sub_0805728C()) + +ASM_FUNC("asm/non_matching/manager1/sub_080572D4.inc", void sub_080572D4()) + +ASM_FUNC("asm/non_matching/manager1/sub_0805732C.inc", void sub_0805732C()) + +ASM_FUNC("asm/non_matching/manager1/nullsub_494.inc", void nullsub_494()) + +ASM_FUNC("asm/non_matching/manager1/sub_080573AC.inc", void sub_080573AC()) + +ASM_FUNC("asm/non_matching/manager1/sub_08057450.inc", void sub_08057450()) diff --git a/src/manager/manager10.c b/src/manager/manager10.c new file mode 100644 index 00000000..e1b1b2a8 --- /dev/null +++ b/src/manager/manager10.c @@ -0,0 +1,23 @@ +#include "manager.h" + +ASM_FUNC("asm/non_matching/manager10/Manager10_Main.inc", void Manager10_Main()) + +ASM_FUNC("asm/non_matching/manager10/sub_080595E4.inc", void sub_080595E4()) + +ASM_FUNC("asm/non_matching/manager10/sub_08059608.inc", void sub_08059608()) + +ASM_FUNC("asm/non_matching/manager10/sub_08059690.inc", void sub_08059690()) + +ASM_FUNC("asm/non_matching/manager10/sub_080596E0.inc", void sub_080596E0()) + +ASM_FUNC("asm/non_matching/manager10/sub_08059844.inc", void sub_08059844()) + +ASM_FUNC("asm/non_matching/manager10/sub_0805986C.inc", void sub_0805986C()) + +ASM_FUNC("asm/non_matching/manager10/sub_08059894.inc", void sub_08059894()) + +ASM_FUNC("asm/non_matching/manager10/sub_080598F8.inc", void sub_080598F8()) + +ASM_FUNC("asm/non_matching/manager10/sub_08059960.inc", void sub_08059960()) + +ASM_FUNC("asm/non_matching/manager10/sub_08059994.inc", void sub_08059994()) diff --git a/src/manager/manager11.c b/src/manager/manager11.c index 841407fc..4a079333 100644 --- a/src/manager/manager11.c +++ b/src/manager/manager11.c @@ -2,7 +2,7 @@ #include "manager.h" #include "flags.h" -void sub_080599B8(Manager11* this) { +void Manager11_Main(Manager11* this) { if (!this->manager.action) { this->manager.action = 1; if (CheckFlags(this->unk_3c)) { diff --git a/src/manager/manager12.c b/src/manager/manager12.c new file mode 100644 index 00000000..7ab89be8 --- /dev/null +++ b/src/manager/manager12.c @@ -0,0 +1,178 @@ +#include "manager.h" +#include "room.h" +#include "functions.h" +#include "flags.h" + +typedef struct { + Manager manager; + u8 field_0x20; + u8 field_0x21; + u8 field_0x22; +} Manager12; + +void sub_08059A58(Manager12*); + +void sub_08059A2C(Manager12*); + +u32 sub_08056300(u16* arr); +extern u16 gUnk_081083DA; +extern u16 gUnk_081083F2; +extern u16 gUnk_08108398; +extern u16 gUnk_081083AE; +extern u16 gUnk_081083C4; + +void sub_08059CC0(u32, u32); +void sub_08059B18(); + +bool32 sub_08059C8C(Manager12*, u32, u8*, u16*); + +extern void sub_0807B9B8(s32, s32, s32); +extern u32 gUnk_086E8460; + +typedef struct { + u32 field_0x0; + u32 field_0x4; + u32 field_0x8; + u32 field_0xc; +} Unknown; + +extern Unknown gUnk_08108468[]; +extern Unknown gUnk_08108408[]; +extern const u8 gGlobalGfxAndPalettes[]; + +void Manager12_Main(Manager12* this) { + if (this->manager.action == 0) { + this->manager.action = 1; + this->field_0x22 = 0xff; + this->field_0x21 = 0xff; + this->field_0x20 = 0xff; + sub_08052D74(this, sub_08059A2C, NULL); + sub_0805E3A0(this, 6); + } + sub_08059A58(this); +} + +void sub_08059A2C(Manager12* this) { + gRoomVars.unk_10[2] = 0xff; + gRoomVars.unk_10[1] = 0xff; + gRoomVars.unk_10[0] = 0xff; + this->field_0x22 = 0xff; + this->field_0x21 = 0xff; + this->field_0x20 = 0xff; + sub_08059A58(this); +} + +void sub_08059A58(Manager12* this) { + if (gRoomControls.areaID != 0x15) { + if (sub_08059C8C(this, 0, &this->field_0x20, &gUnk_08108398) != 0) { + sub_08059CC0(0, (u32)this->field_0x20); + } + if (sub_08059C8C(this, 1, &this->field_0x21, &gUnk_081083AE) != 0) { + sub_08059CC0(1, this->field_0x21); + if (this->field_0x21 == 2) { + sub_08059B18(); + } + } + if (sub_08059C8C(this, 2, &this->field_0x22, &gUnk_081083C4) != 0) { + sub_08059CC0(2, (u32)this->field_0x22); + } + } else { + if (sub_08059C8C(this, 0, &this->field_0x20, &gUnk_081083DA) != 0) { + sub_08059CC0(0, (u32)this->field_0x20); + } + if (sub_08059C8C(this, 2, &this->field_0x22, &gUnk_081083F2) != 0) { + sub_08059CC0(2, (u32)this->field_0x22); + } + } +} + +#define COMMON(tmp2, tmp1) ((tmp2) >> 4 & 0x3f) | (((tmp1) + 0x188U) >> 4 & 0x3f) << 6 +void sub_08059B18(void) { + u32 loopVar; + u32 innerLoopVar; + + if (CheckGlobalFlag(TATEKAKE_HOUSE) != 0) { + for (loopVar = 0; loopVar < 4; ++loopVar) { + for (innerLoopVar = 0; innerLoopVar < 4; ++innerLoopVar) { + sub_0807B9B8(loopVar * 0x10 + 0x4ab + innerLoopVar, COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10), + 1); + } + } + + for (loopVar = 0; loopVar < 3; ++loopVar) { + for (innerLoopVar = 0; innerLoopVar < 4; ++innerLoopVar) { + sub_0807B9B8(loopVar * 0x10 + 0x440 + innerLoopVar, COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10), + 2); + } + } + sub_0807B9B8(0xd6, 0x5c2, 2); + sub_0807B9B8(0xd7, 0x5c3, 2); + LoadResourceAsync(&gUnk_086E8460, 0x6001800, 0x800); + } else { + if (CheckGlobalFlag(TATEKAKE_TOCHU) != 0) { + for (loopVar = 0; loopVar < 5; ++loopVar) { + for (innerLoopVar = 0; innerLoopVar < 4; ++innerLoopVar) { + sub_0807B9B8(loopVar * 0x10 + 0x4a6 + innerLoopVar, + COMMON(0x28 + 0x10 * innerLoopVar, loopVar * 0x10), 1); + } + } + sub_0807B9B8(0x444, 0x602, 2); + sub_0807B9B8(0x445, 0x605, 2); + sub_0807B9B8(0x454, 0x642, 2); + sub_0807B9B8(0x455, 0x645, 2); + } + } +} + +bool32 sub_08059C8C(Manager12* this, u32 param_2, u8* param_3, u16* param_4) { + bool32 bVar2; + + *param_3 = sub_08056300(param_4); + if ((*param_3 != 0xff) && (gRoomVars.unk_10[param_2] != *param_3)) { + gRoomVars.unk_10[param_2] = *param_3; + return TRUE; + } else { + return FALSE; + } +} + +void sub_08059CC0(u32 param_1, u32 param_2) { + Unknown* unknown; + + gRoomVars.unk_10[param_1] = param_2; + if (gRoomControls.areaID != 0x15) { + unknown = &gUnk_08108408[param_2]; + } else { + unknown = &gUnk_08108468[param_2]; + } + LoadResourceAsync((void*)&gGlobalGfxAndPalettes + unknown->field_0x0, unknown->field_0x4, 0x1000); + LoadResourceAsync((void*)&gGlobalGfxAndPalettes + unknown->field_0x8, unknown->field_0xc, 0x1000); +} + +void TryLoadPrologueHyruleTown(void) { + u32 tmp; + + if (gRoomControls.areaID != 0x15) { + tmp = sub_08056300(&gUnk_08108398); + if (tmp != 0xff) { + sub_08059CC0(0, tmp); + } + tmp = sub_08056300(&gUnk_081083AE); + if ((tmp != 0xff) && (sub_08059CC0(1, tmp), tmp == 2)) { + sub_08059B18(); + } + tmp = sub_08056300(&gUnk_081083C4); + if (tmp != 0xff) { + sub_08059CC0(2, tmp); + } + } else { + tmp = sub_08056300(&gUnk_081083DA); + if (tmp != 0xff) { + sub_08059CC0(0, tmp); + } + tmp = sub_08056300(&gUnk_081083F2); + if (tmp != 0xff) { + sub_08059CC0(2, tmp); + } + } +} diff --git a/src/manager/manager13.c b/src/manager/manager13.c new file mode 100644 index 00000000..36598b1e --- /dev/null +++ b/src/manager/manager13.c @@ -0,0 +1,60 @@ +#include "manager.h" +#include "room.h" +#include "object.h" + +typedef struct { + Manager manager; + u32 bitfield; +} Manager13; + +typedef struct { + u16 x; + u16 y; + u8 type; + u8 frameIndex; + u8 collisionLayer; + u8 _padding; +} SpawnData; + +extern SpawnData gUnk_081084C8[]; +extern SpawnData gUnk_08108530[]; + +extern u32 CheckRectOnScreen(u16, u16, u32, u32); + +/* +Keeps track in its bitfield of whether 0x10 x 0x10 rects at certain positions are on the screen. +Spawns OBJECT_1C objects that check this and unsets the value in the bitfield. +*/ +void Manager13_Main(Manager13* this) { + SpawnData* spawnData; + u32 type2; + + if (this->manager.action == 0) { + this->manager.action = 1; + } + if (gRoomControls.areaID == 0x15) { + spawnData = gUnk_08108530; + } else { + spawnData = gUnk_081084C8; + } + type2 = 0; + while ((spawnData->x != 0) && (type2 < 0x20)) { + u32 bitfieldFlag = 1 << type2; + if ((((this->bitfield & bitfieldFlag) == 0) && + (CheckRectOnScreen(spawnData->x, spawnData->y, 0x10, 0x10) != 0))) { + Entity* object = CreateObject(OBJECT_1C, spawnData->type, type2); + if (object != NULL) { + object->frameIndex = spawnData->frameIndex; + object->x.HALF.HI = gRoomControls.roomOriginX + spawnData->x; + object->y.HALF.HI = gRoomControls.roomOriginY + spawnData->y; + object->parent = (Entity*)this; + object->field_0x80.HWORD = spawnData->x; + object->field_0x82.HWORD = spawnData->y; + object->collisionLayer = spawnData->collisionLayer; + this->bitfield |= bitfieldFlag; + } + } + spawnData += 1; + type2 += 1; + } +} diff --git a/src/manager/manager14.c b/src/manager/manager14.c new file mode 100644 index 00000000..bb7388ef --- /dev/null +++ b/src/manager/manager14.c @@ -0,0 +1,25 @@ +#include "manager.h" + +ASM_FUNC("asm/non_matching/manager14/Manager14_Main.inc", void Manager14_Main()) + +ASM_FUNC("asm/non_matching/manager14/sub_08059E80.inc", void sub_08059E80()) + +ASM_FUNC("asm/non_matching/manager14/sub_08059EF8.inc", void sub_08059EF8()) + +ASM_FUNC("asm/non_matching/manager14/sub_08059F9C.inc", void sub_08059F9C()) + +ASM_FUNC("asm/non_matching/manager14/sub_0805A040.inc", void sub_0805A040()) + +ASM_FUNC("asm/non_matching/manager14/sub_0805A048.inc", void sub_0805A048()) + +ASM_FUNC("asm/non_matching/manager14/sub_0805A098.inc", void sub_0805A098()) + +ASM_FUNC("asm/non_matching/manager14/sub_0805A0C0.inc", void sub_0805A0C0()) + +ASM_FUNC("asm/non_matching/manager14/sub_0805A114.inc", void sub_0805A114()) + +ASM_FUNC("asm/non_matching/manager14/sub_0805A1D8.inc", void sub_0805A1D8()) + +ASM_FUNC("asm/non_matching/manager14/nullsub_495.inc", void nullsub_495()) + +ASM_FUNC("asm/non_matching/manager14/sub_0805A25C.inc", void sub_0805A25C()) diff --git a/src/manager/manager15.c b/src/manager/manager15.c index 313fa487..47a384ac 100644 --- a/src/manager/manager15.c +++ b/src/manager/manager15.c @@ -28,7 +28,7 @@ typedef struct { extern void (*const gUnk_081085D8[])(Manager*); -void sub_0805A280(Manager* this) { +void Manager15_Main(Manager* this) { gUnk_081085D8[this->unk_0a](this); } @@ -427,7 +427,7 @@ void sub_0805A94C(Manager15* this) { gScreen.controls.window1VerticalDimensions = (tmp1 << 8 | tmp2); } -NONMATCH("asm/non_matching/manager15/sub_0805A9CC.inc", void sub_0805A9CC(Manager15* this)) { +void sub_0805A9CC(Manager15* this) { int tmp1, tmp2; void* tmp3; gScreen.affine.bg3xOffset = gRoomControls.roomScrollX - this->unk_24 + this->unk_34; @@ -444,17 +444,14 @@ NONMATCH("asm/non_matching/manager15/sub_0805A9CC.inc", void sub_0805A9CC(Manage gScreen.controls.window1HorizontalDimensions = tmp1 << 8 | tmp2; tmp1 = gRoomControls.roomScrollY - this->unk_26 + this->unk_36; gScreen.affine.bg3yOffset = tmp1 & 0x3F; - if (tmp1 < 0) - tmp1 += 0x3F; - tmp3 = (&gBG3Buffer[(tmp1 >> 6 << 9)]); - gScreen.affine.bg2Tilemap = (u32*)tmp3; // TODO .unk5 + tmp3 = (&gBG3Buffer[((tmp1 / 0x40) << 8)]); + gScreen.affine.bg3Tilemap = (u32*)tmp3; gScreen.controls.window1VerticalDimensions = 0xa0; if (this->unk_28 == tmp3) return; this->unk_28 = tmp3; - gScreen.affine.bg2Updated = 1; // TODO .unk4 + gScreen.affine.bg3Updated = 1; } -END_NONMATCH extern struct { u8 unk_00[0x20]; } gUnk_085A97A0[]; extern u16 gUnk_081085B8[]; @@ -477,7 +474,7 @@ void sub_0805AA58(Manager15* this) { void sub_0805AAC8(Manager15* this) { sub_0805AAF0(this->unk_23); - sub_0805A280(&this->manager); + Manager15_Main(&this->manager); } extern u16 gUnk_08108648[]; diff --git a/src/manager/manager16.c b/src/manager/manager16.c new file mode 100644 index 00000000..23292b39 --- /dev/null +++ b/src/manager/manager16.c @@ -0,0 +1,6 @@ + +#include "manager.h" + +ASM_FUNC("asm/non_matching/manager16/Manager16_Main.inc", void Manager16_Main()) + +ASM_FUNC("asm/non_matching/manager16/sub_0805ACC0.inc", void sub_0805ACC0()) diff --git a/src/manager/manager17.c b/src/manager/manager17.c new file mode 100644 index 00000000..d19440b0 --- /dev/null +++ b/src/manager/manager17.c @@ -0,0 +1,45 @@ +#include "manager.h" +#include "flags.h" +#include "room.h" + +typedef struct { + Manager manager; + u8 field_0x20[0x15]; + u8 field_0x35; + u8 field_0x36; + u8 field_0x37; + s16 field_0x38; + s16 field_0x3a; + u16 field_0x3c; + u16 field_0x3e; +} Manager17; + +extern void (*const gUnk_08108654[])(Manager17*); + +void sub_0805AD80(Manager17*); + +void Manager17_Main(Manager17* manager) { + gUnk_08108654[manager->manager.action](manager); +} + +void sub_0805AD60(Manager17* manager) { + manager->manager.action = 1; + if (CheckFlags(manager->field_0x3c) != 0) { + DeleteThisEntity(); + } + sub_0805AD80(manager); +} + +void sub_0805AD80(Manager17* manager) { + if (CheckFlags(manager->field_0x3e) != 0) { + Entity* object = CreateObject(0, manager->manager.unk_0a, manager->manager.unk_0b); + if (object != NULL) { + object->actionDelay = manager->field_0x35; + object->collisionLayer = manager->field_0x36; + object->x.HALF.HI = manager->field_0x38 + gRoomControls.roomOriginX; + object->y.HALF.HI = manager->field_0x3a + gRoomControls.roomOriginY; + object->field_0x86.HWORD = manager->field_0x3c; + } + DeleteThisEntity(); + } +} diff --git a/src/manager/manager18.c b/src/manager/manager18.c new file mode 100644 index 00000000..cadd8885 --- /dev/null +++ b/src/manager/manager18.c @@ -0,0 +1,65 @@ +#include "manager.h" +#include "screen.h" +#include "area.h" +#include "functions.h" + +typedef struct { + Manager manager; + u16 field_0x20; +} Manager18; + +void sub_0805AEDC(Manager18*); +void sub_0805AF3C(Manager18*); +extern u16 gUnk_0810865C[]; + +void Manager18_Main(Manager18* this) { + if (this == NULL) { + if (gArea.unk3 != (u32)sub_0805AEDC) { + sub_0805AEDC(NULL); + } + } else { + if (this->manager.action == 0) { + this->manager.action = 1; + this->manager.unk_10 |= 0x20; + this->manager.unk_0e = 0; + this->manager.unk_0f = 8; + this->field_0x20 = gUnk_0810865C[0]; + sub_0805E3A0(this, 6); + if (gArea.unk3 == 0) { + sub_08052D74(this, sub_0805AEDC, sub_0805AF3C); + } else { + DeleteThisEntity(); + } + } else { + if ((gUnk_0810865C[this->manager.unk_0e] != 0) && (--this->manager.unk_0f == 0)) { + this->manager.unk_0f = 4; + if (gUnk_0810865C[++this->manager.unk_0e] != 0) { + this->field_0x20 = gUnk_0810865C[this->manager.unk_0e]; + gScreen.controls.alphaBlend = this->field_0x20; + } + } + gRoomControls.bg3OffsetX.WORD -= 0x2000; + gRoomControls.bg3OffsetY.WORD -= 0x1000; + gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + } + } +} + +void sub_0805AEDC(Manager18* this) { + gScreen.affine.bg3Control = 0x1e05; + gScreen.lcd.displayControl |= 0x800; + gScreen.controls.layerFXControl = 0x3648; + gScreen.controls.alphaBlend = (this != NULL) ? this->field_0x20 : 0x1000; + gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + if (this != NULL) { + Manager18_Main(this); + } +} + +void sub_0805AF3C(Manager18* this) { + this->manager.unk_10 &= 0xdf; + gScreen.lcd.displayControl &= 0xf7ff; + gScreen.controls.layerFXControl = 0; +} diff --git a/src/manager/manager19.c b/src/manager/manager19.c new file mode 100644 index 00000000..fa0f1912 --- /dev/null +++ b/src/manager/manager19.c @@ -0,0 +1,37 @@ +#include "manager.h" +#include "area.h" +#include "room.h" +#include "functions.h" +#include "screen.h" + +void sub_0805AFFC(Manager*); + +void Manager19_Main(Manager* this) { + if (this == NULL) { + if ((void*)gArea.unk3 != sub_0805AFFC) { + sub_0805AFFC(this); + } + } else { + if (this->action == 0) { + this->action = 1; + this->unk_10 |= 0x20; + sub_0805E3A0(this, 6); + if (gArea.unk3 == 0) { + sub_08052D74(this, sub_0805AFFC, NULL); + } else { + DeleteThisEntity(); + } + } else { + gRoomControls.bg3OffsetX.WORD = gRoomControls.bg3OffsetX.WORD - 0x2000; + gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + } + } +} + +void sub_0805AFFC(Manager* this) { + gScreen.affine.bg3Control = 0x1e03; + gScreen.lcd.displayControl |= 0x800; + gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; +} diff --git a/src/manager/manager1A.c b/src/manager/manager1A.c index 80c2975a..2b4027a2 100644 --- a/src/manager/manager1A.c +++ b/src/manager/manager1A.c @@ -27,7 +27,7 @@ extern void (*const gUnk_08108668[])(Manager1A*); extern u8 gGlobalGfxAndPalettes[]; -void sub_0805B030(Manager1A* this) { +void Manager1A_Main(Manager1A* this) { gUnk_08108668[this->manager.action](this); } diff --git a/src/manager/manager1B.c b/src/manager/manager1B.c new file mode 100644 index 00000000..3dd4f36f --- /dev/null +++ b/src/manager/manager1B.c @@ -0,0 +1,82 @@ + +#include "manager.h" +#include "functions.h" +#include "screen.h" + +typedef struct { + Manager manager; + u32 field_0x20; +} Manager1B; + +extern u8 gUnk_08108C28[]; +extern void (*const gUnk_08108C54[])(Manager1B*); + +void sub_0805B4B4(Manager1B*); + +void sub_0806D0F8(void); // in bigGoron? + +extern u8 gUnk_08108C5C[]; +extern u16 gUnk_08108C44[]; + +void Manager1B_Main(Manager1B* this) { + s32 iVar3; + u8* tmp; + + if (EntityHasDuplicateID((Entity*)this) != 0) { + DeleteThisEntity(); + } + tmp = gUnk_08108C28 + this->manager.unk_0a * 4; + if (this->manager.action == 0) { + this->manager.action = 1; + this->manager.unk_10 |= 0x20; + sub_0805E3A0(this, 6); + if (this->manager.unk_0a != 0) { + sub_08052D74(this, sub_0805B4B4, NULL); + } + iVar3 = 0x100 - (u32)gRoomControls.height; + if (iVar3 < 0) { + iVar3 = 0; + } + this->field_0x20 = iVar3 + (s8)tmp[2]; + gUnk_08108C54[tmp[1]](this); + } + if (gRoomControls.unk2 == 0) { + gUnk_08108C54[tmp[1]](this); + } +} + +void sub_0805B448(Manager1B* this) { + gScreen.affine.bg3xOffset = (gRoomControls.roomScrollX - gRoomControls.roomOriginX) >> 2; + gScreen.affine.bg3yOffset = ((gRoomControls.roomScrollY - gRoomControls.roomOriginY) >> 1) + this->field_0x20; +} + +void sub_0805B474(Manager1B* this) { + s32 tmp = ((gRoomControls.roomScrollY - gRoomControls.roomOriginY) * 0x60) / (gRoomControls.height - 0xa0); + gScreen.affine.bg3yOffset = gRoomControls.roomOriginY + tmp; + gScreen.affine.bg3xOffset = gRoomControls.roomScrollX - ((gRoomControls.width - 0x100) / 2); +} + +void sub_0805B4B4(Manager1B* this) { + sub_0805B4D0(this->manager.unk_0a); + if (this->manager.unk_0a == 2) { + sub_0806D0F8(); + } + Manager1B_Main(this); +} + +void sub_0805B4D0(u32 param_1) { + s32 iVar1; + u32 uVar2; + + LoadGfxGroup(gUnk_08108C5C[param_1]); + gScreen.affine.bg3Control = 0x1e07; + gScreen.lcd.displayControl |= 0x800; + gScreen.affine.bg3xOffset = (gRoomControls.roomScrollX - gRoomControls.roomOriginX) >> 2; + + uVar2 = (gRoomControls.roomScrollY - gRoomControls.roomOriginY) >> 1; + iVar1 = 0x100 - gRoomControls.height; + if (iVar1 < 0) { + iVar1 = 0; + } + gScreen.affine.bg3yOffset = uVar2 + iVar1 + gUnk_08108C44[param_1]; +} diff --git a/src/manager/manager1C.c b/src/manager/manager1C.c new file mode 100644 index 00000000..bb151f8f --- /dev/null +++ b/src/manager/manager1C.c @@ -0,0 +1,33 @@ +#include "manager.h" +#include "random.h" +#include "room.h" +#include "enemy.h" + +extern void (*const gUnk_08108C64[])(Manager*); + +extern u16 gUnk_08108C6C[]; +extern s8 gUnk_08108C7C[]; + +void Manager1C_Main(Manager* manager) { + gUnk_08108C64[manager->action](manager); +} + +// Initial setup +void sub_0805B554(Manager* manager) { + manager->action = 1; + manager->unk_0e = 1; +} + +// Spawn water drops every 0xf frames +void sub_0805B55C(Manager* manager) { + if (--manager->unk_0e == 0) { + Entity* waterDrop; + manager->unk_0e = 0xf; + waterDrop = CreateEnemy(WATER_DROP, 0); + if (waterDrop != NULL) { + waterDrop->x.HALF.HI = gRoomControls.roomScrollX + 0x78 + gUnk_08108C6C[Random() & 7]; + waterDrop->y.HALF.HI = gRoomControls.roomScrollY + 0x50 + gUnk_08108C7C[Random() & 3]; + waterDrop->height.HALF.HI = 0xff38; + } + } +} diff --git a/src/manager/manager1D.c b/src/manager/manager1D.c new file mode 100644 index 00000000..6d1a850b --- /dev/null +++ b/src/manager/manager1D.c @@ -0,0 +1,40 @@ +#include "manager.h" +#include "room.h" +#include "screen.h" + +extern void (*const gUnk_08108C80[])(Manager*); + +extern u16 gUnk_08108C88[]; + +void Manager1D_Main(Manager* this) { + gUnk_08108C80[this->action](this); +} + +void sub_0805B5E0(Manager* this) { + this->action = 1; + + gScreen.lcd.displayControl |= 0x800; + gScreen.affine.bg3Control = gUnk_08108C88[this->unk_0a]; + gRoomControls.bg3OffsetY.WORD = 0; + gRoomControls.bg3OffsetX.WORD = 0; + + switch (this->unk_0a) { + case 0: + default: + gScreen.affine.bg3yOffset = 0; + gScreen.affine.bg3xOffset = 0; + break; + case 1: + gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + break; + } +} + +void sub_0805B638(Manager* this) { + if (this->unk_0a == 1) { + gRoomControls.bg3OffsetX.WORD = gRoomControls.bg3OffsetX.WORD + 0x2000; + gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + } +} diff --git a/src/manager/manager1E.c b/src/manager/manager1E.c index fad34ef4..b928f10e 100644 --- a/src/manager/manager1E.c +++ b/src/manager/manager1E.c @@ -21,7 +21,7 @@ void Manager1E_ObserveRegion(Manager1E*); void (*const Manager1E_ActionFuncs[2])(Manager1E*) = { Manager1E_Init, Manager1E_ObserveRegion }; -void Manager1E_Handler(Manager1E* this) { +void Manager1E_Main(Manager1E* this) { Manager1E_ActionFuncs[this->manager.action](this); } diff --git a/src/manager/manager1F.c b/src/manager/manager1F.c new file mode 100644 index 00000000..1ad3135e --- /dev/null +++ b/src/manager/manager1F.c @@ -0,0 +1,51 @@ +#include "manager.h" +#include "flags.h" +#include "room.h" + +typedef struct { + Manager manager; + u8 field_0x20[0x16]; + u8 field_0x36; + u8 field_0x37; + s16 field_0x38; + u16 field_0x3a; + u8 field_0x3c; + u8 field_0x3d; + u16 field_0x3e; +} Manager1F; +extern void (*const gUnk_08108C94[])(Manager1F*); + +void sub_0805B778(Manager1F*); + +extern u16 gUnk_08108C9C[]; + +void Manager1F_Main(Manager1F* this) { + gUnk_08108C94[this->manager.action](this); +} + +void sub_0805B70C(Manager1F* this) { + if (CheckFlags(this->field_0x3e) != 0) { + this->manager.unk_0b = 1; + } + this->manager.action = 1; + this->field_0x38 = (this->field_0x38 >> 4 & 0x3fU) | (((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6); + sub_0805B778(this); +} + +void sub_0805B744(Manager1F* this) { + if (CheckFlags(this->field_0x3e) != 0) { + if (this->manager.unk_0b == 0) { + this->manager.unk_0b = 1; + sub_0805B778(this); + } + } else { + if (this->manager.unk_0b == 1) { + this->manager.unk_0b = 0; + sub_0805B778(this); + } + } +} + +void sub_0805B778(Manager1F* this) { + SetTileType(gUnk_08108C9C[this->manager.unk_0a * 2 + this->manager.unk_0b], this->field_0x38, this->field_0x36); +} diff --git a/src/manager/manager2.c b/src/manager/manager2.c index b6e0eef7..6f020f25 100644 --- a/src/manager/manager2.c +++ b/src/manager/manager2.c @@ -2,16 +2,89 @@ #include "entity.h" #include "screen.h" #include "functions.h" +#include "room.h" + +typedef struct { + Manager manager; + u32 field_0x20[0x6]; + void* field_0x38; + void* field_0x3c; +} Manager2; extern void sub_080576A0(); -extern void sub_0805754C(Entity*); +extern void sub_0805754C(Manager2*); -void Manager2(Entity* this) { - if (this->action == 0) { - this->action = 1; +extern u8 gMapDataTopSpecial[]; + +extern u32 gUnk_0200B650; + +void Manager2_Main(Manager2* this) { + if (this->manager.action == 0) { + this->manager.action = 1; gScreen.affine.bg3Updated = 0; gScreen.bg.bg1Updated = 0; sub_08052D74(this, sub_080576A0, 0); } sub_0805754C(this); } + +void sub_0805754C(Manager2* this) { + s32 bgOffset; + + bgOffset = (gRoomControls.roomScrollY - gRoomControls.roomOriginY); + bgOffset += bgOffset >> 3; + gScreen.affine.bg3yOffset = bgOffset & 0x3f; + gScreen.affine.bg3Tilemap = gMapDataTopSpecial + (bgOffset / 0x40) * 0x200; + if (this->field_0x38 != gScreen.affine.bg3Tilemap) { + this->field_0x38 = gScreen.affine.bg3Tilemap; + gScreen.affine.bg3Updated = 1; + } + bgOffset = (gRoomControls.roomScrollY - gRoomControls.roomOriginY); + bgOffset += bgOffset >> 2; + gScreen.bg.bg1yOffset = bgOffset & 0x3f; + gScreen.bg.bg1Tilemap = gMapDataTopSpecial + 0x2000 + (bgOffset / 0x40) * 0x200; + if (this->field_0x3c != gScreen.bg.bg1Tilemap) { + this->field_0x3c = gScreen.bg.bg1Tilemap; + gScreen.bg.bg1Updated = 1; + } +} + +void sub_080575C8(u32 param) { + s32 bgOffset; + + gUnk_0200B650 = 0; + *(u16*)0x4000000 = 0; + LoadGfxGroup(param); + gRoomVars.unk_10[0] = param; + + bgOffset = (gRoomControls.roomScrollY - gRoomControls.roomOriginY); + bgOffset += bgOffset >> 3; + gScreen.affine.bg3yOffset = bgOffset & 0x3f; + gScreen.affine.bg3xOffset = 0; + gScreen.affine.bg3Tilemap = &gMapDataTopSpecial[(bgOffset / 0x40) * 0x200]; + gScreen.affine.bg3Control = 0x1d49; + gScreen.affine.bg3Updated = 1; + + bgOffset = (gRoomControls.roomScrollY - gRoomControls.roomOriginY); + bgOffset += bgOffset >> 2; + gScreen.bg.bg1yOffset = bgOffset & 0x3f; + gScreen.bg.bg1xOffset = 0; + gScreen.bg.bg1Tilemap = &gMapDataTopSpecial[0x2000 + (bgOffset / 0x40) * 0x200]; + gScreen.bg.bg1Control = 0x1e49; + gScreen.bg.bg1Updated = 1; + gScreen.controls.layerFXControl = 0x3c48; + gScreen.controls.alphaBlend = 0x609; + gScreen.lcd.displayControl |= 0xa00; +} + +void sub_08057688(void) { + gScreen.affine.bg3Control = 0x1d48; + gScreen.bg.bg1Control = 0x1e48; +} + +void sub_080576A0(Manager2* this) { + LoadGfxGroup(gRoomVars.unk_10[0]); + this->field_0x38 = NULL; + this->field_0x3c = NULL; + sub_0805754C(this); +} diff --git a/src/manager/manager20.c b/src/manager/manager20.c index f7ca8a0b..4cf749dc 100644 --- a/src/manager/manager20.c +++ b/src/manager/manager20.c @@ -18,7 +18,7 @@ typedef struct { u16 unk_3e; } Manager20; -void sub_0805B7A0(Manager20* this) { +void Manager20_Main(Manager20* this) { Entity* tmp = CreateObject(this->manager.unk_0e, this->manager.unk_0a, this->manager.unk_0b); if (!tmp) return; diff --git a/src/manager/manager21.c b/src/manager/manager21.c new file mode 100644 index 00000000..f0cc377a --- /dev/null +++ b/src/manager/manager21.c @@ -0,0 +1,69 @@ + +#include "manager.h" +#include "room.h" +#include "object.h" +#include "functions.h" +#include "flags.h" + +extern bool32 CheckRectOnScreen(u16, u16, u32, u32); + +typedef struct { + Manager manager; + u32 field_0x20; +} Manager21; + +typedef struct { + u16 x; + u16 y; + u16 field_0x4; + u16 actionDelay; +} MinishEntranceSpawnData; + +bool32 sub_0805B8CC(u32); + +/* +Spawns MINISH_SIZED_ENTRANCE at the locations in the room property this->manager.unk_0a when they are visible on the +screen. +*/ +void Manager21_Main(Manager21* this) { + MinishEntranceSpawnData* spawnData; + u32 count; + if (this->manager.action == 0) { + this->manager.action = 1; + this->field_0x20 = 0; + } + spawnData = (MinishEntranceSpawnData*)GetCurrentRoomProperty(this->manager.unk_0a); + + for (count = 0; (spawnData->x != 0) && (count < 0x20); ++count) { + if (CheckRectOnScreen(spawnData->x, spawnData->y, 4, 4) != 0) { + if (((this->field_0x20 & (1 << count)) == 0) && (sub_0805B8CC(spawnData->field_0x4) != 0)) { + Entity* object = CreateObject(MINISH_SIZED_ENTRANCE, 1, 0); + if (object != NULL) { + object->actionDelay = spawnData->actionDelay; + object->field_0xf = count; + object->x.HALF.HI = gRoomControls.roomOriginX + spawnData->x; + object->y.HALF.HI = gRoomControls.roomOriginY + spawnData->y; + object->parent = (Entity*)this; + sub_08016A30(object); + this->field_0x20 |= 1 << count; + } + } + } else { + this->field_0x20 &= ~(1 << count); + } + spawnData += 1; + } +} + +bool32 sub_0805B8CC(u32 param_1) { + if (param_1 == 4) { + return CheckGlobalFlag(TATEKAKE_HOUSE); + } + if (param_1 < 5) { + return TRUE; + } + if (param_1 > 6) { + return TRUE; + } + return FALSE; +} diff --git a/src/manager/manager22.c b/src/manager/manager22.c new file mode 100644 index 00000000..ba174d0a --- /dev/null +++ b/src/manager/manager22.c @@ -0,0 +1,18 @@ + +#include "manager.h" + +ASM_FUNC("asm/non_matching/manager22/Manager22_Main.inc", void Manager22_Main()) + +ASM_FUNC("asm/non_matching/manager22/sub_0805BA78.inc", void sub_0805BA78()) + +ASM_FUNC("asm/non_matching/manager22/sub_0805BAD4.inc", void sub_0805BAD4()) + +ASM_FUNC("asm/non_matching/manager22/sub_0805BB00.inc", void sub_0805BB00()) + +ASM_FUNC("asm/non_matching/manager22/sub_0805BB74.inc", void sub_0805BB74()) + +ASM_FUNC("asm/non_matching/manager22/sub_0805BBBC.inc", void sub_0805BBBC()) + +ASM_FUNC("asm/non_matching/manager22/sub_0805BC04.inc", void sub_0805BC04()) + +ASM_FUNC("asm/non_matching/manager22/sub_0805BC4C.inc", void sub_0805BC4C()) diff --git a/src/manager/manager23.c b/src/manager/manager23.c new file mode 100644 index 00000000..1d895f30 --- /dev/null +++ b/src/manager/manager23.c @@ -0,0 +1,155 @@ + +#include "manager.h" +#include "room.h" +#include "functions.h" +#include "flags.h" +#include "object.h" + +extern void (*const gUnk_08108CCC[])(Manager*); + +typedef struct { + Manager manager; + u16 field_0x20; + u16 field_0x22; + u8 field_0x24[0x12]; + u8 field_0x36; + u8 field_0x37; + u16 field_0x38; + u16 field_0x3a; + u16 field_0x3c; + u16 field_0x3e; +} Manager23; + +void sub_0805BE94(Manager23*); +void sub_0805BEC4(Manager23*); + +void sub_0805BE70(Manager23*, u32); + +void Manager23_Main(Manager* this) { + gUnk_08108CCC[this->unk_0a](this); +} + +void sub_0805BC8C(Manager23* this) { + if (this->manager.action == 0) { + this->manager.action = 1; + this->manager.unk_0f = 0x1e; + if (CheckFlags(this->field_0x3e) != 0) { + sub_0805BE94(this); + } + } + if ((CheckFlags(this->field_0x3e) != 0) && (--this->manager.unk_0f == 0)) { + sub_0805BEC4(this); + sub_0805BE94(this); + } +} + +void sub_0805BCD4(Manager23* this) { + switch (this->manager.action) { + case 0: + this->manager.action = 1; + this->manager.unk_0f = 0x1e; + if (CheckFlags(this->field_0x3e) != 0) { + sub_0805BE70(this, 0x75); + this->manager.action = 2; + } + break; + case 1: + if (CheckFlags(this->field_0x3e) != 0 && --this->manager.unk_0f == 0) { + this->manager.unk_0f = 0x1e; + sub_0805BEC4(this); + sub_0805BE70(this, 0x76); + } + break; + case 2: + if (CheckFlags(this->field_0x3e) == 0 && --this->manager.unk_0f == 0) { + this->manager.unk_0f = 0x1e; + sub_0805BE70(this, 0x75); + } + break; + } +} + +void sub_0805BD5C(Manager23* this) { + if (this->manager.action == 0) { + if (CheckFlags(this->field_0x3e) != 0) { + sub_0805BE94(this); + } + this->field_0x20 = + ((s16)this->field_0x38 >> 4 & 0x3fU) | ((s32)((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6); + this->manager.action = 1; + } else { + if (GetTileType(this->field_0x20, this->manager.unk_0b) == 0x76) { + SetFlag(this->field_0x3e); + sub_0805308C(this->manager.unk_0e); + DeleteThisEntity(); + } + } +} + +void sub_0805BDB4(Manager23* this) { + u8 bVar1; + u16 uVar2; + u32 uVar3; + + switch (this->manager.action) { + case 0: + if (CheckFlags(this->field_0x3e) != 0 || CheckFlags(this->field_0x3c) != 0) { + sub_0805BE94(this); + } + this->field_0x20 = + ((s16)this->field_0x38 >> 4 & 0x3fU) | (((s32)(this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6); + this->manager.action = 1; + break; + + case 1: + if (GetTileType(this->field_0x20, this->manager.unk_0b) != 0x76) { + return; + } + SetFlag(this->field_0x3e); + sub_0805308C(this->manager.unk_0e); + this->manager.action = 2; + this->field_0x22 = this->field_0x36 * 0x3c; + return; + break; + + default: + if (--this->field_0x22 == 0) { + CreateDustAt(*(s16*)&this->field_0x38, *(s16*)&this->field_0x3a, this->manager.unk_0b); + ClearFlag(this->field_0x3e); + sub_0807BA8C(this->field_0x20, this->manager.unk_0b); + sub_0805308C(-this->manager.unk_0e); + this->manager.action = 1; + } else { + if (CheckFlags(this->field_0x3c) == 0) { + return; + } + sub_0805BEC4(this); + DeleteThisEntity(); + } + break; + } +} + +void sub_0805BE70(Manager23* this, u32 param_2) { + SetTileType(param_2, + ((this->field_0x38 << 0x10) >> 0x14 & 0x3fU) | ((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6, + this->manager.unk_0b); +} + +void sub_0805BE94(Manager23* this) { + SetTileType(0x76, ((this->field_0x38 << 0x10) >> 0x14 & 0x3fU) | ((this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6, + this->manager.unk_0b); + sub_0805308C(this->manager.unk_0e); + DeleteThisEntity(); +} + +void sub_0805BEC4(Manager23* this) { + Entity* object = CreateObject(OBJECT_2A, 1, 0); + if (object != NULL) { + *(s8*)(&object->flags + 1) = ((*(s8*)(&object->flags + 1)) & (-0x10)) | 3; + object->x.HALF.HI = this->field_0x38 + gRoomControls.roomOriginX; + object->y.HALF.HI = this->field_0x3a + gRoomControls.roomOriginY; + object->collisionLayer = this->manager.unk_0b; + object->spritePriority.b0 = 2; + } +} diff --git a/src/manager/manager24.c b/src/manager/manager24.c new file mode 100644 index 00000000..88a5a8e9 --- /dev/null +++ b/src/manager/manager24.c @@ -0,0 +1,310 @@ +#include "entity.h" +#include "functions.h" +#include "flags.h" +#include "audio.h" +#include "game.h" +#include "object.h" +#include "area.h" + +typedef struct { + Manager manager; + u8 field_0x20[0x15]; + u8 field_0x35; + u8 field_0x36; + u8 field_0x37; + s16 x; + u16 y; + u16 tile; + u16 field_0x3e; +} Manager24; + +extern void (*const gUnk_08108CDC[])(Manager24*); + +u32 sub_0805BFC4(u32, u32); +void sub_0805C02C(Manager24*); + +extern u32 sub_080002C8(u16, u8); + +extern void (*const gUnk_08108CE8[])(u32, u32); + +u32 sub_0805C608(void); +extern u32 sub_08052670(void); + +extern u8 gUnk_08108CFC[]; + +void Manager24_Main(Manager24* manager) { + gUnk_08108CDC[manager->manager.action](manager); +} + +void sub_0805BF30(Manager24* manager) { + manager->manager.action = 1; + manager->tile = (manager->x >> 4 & 0x3fU) | (((manager->y << 0x10) >> 0x14 & 0x3fU) << 6); + manager->manager.unk_0a = sub_0805BFC4(manager->tile, manager->field_0x35); + if (CheckLocalFlag(manager->field_0x3e) != 0) { + sub_0805C02C(manager); + DeleteManager((Manager*)manager); + } +} + +void sub_0805BF78(Manager24* this) { + if (sub_080002C8(this->tile, this->field_0x35) != 0x2e) { + this->manager.action = 2; + this->manager.unk_0e = 0x5a; + sub_0805C02C(this); + SetLocalFlag(this->field_0x3e); + } +} + +void sub_0805BFA4(Manager24* this) { + if (--this->manager.unk_0e == 0) { + SoundReq(SFX_SECRET); + DeleteManager((Manager*)this); + } +} + +u32 sub_0805BFC4(u32 pos, u32 layer) { + u32 tileType = GetTileType(pos, layer); + + switch (tileType) { + case 0xec: + return 1; + case 0xbf: + return 4; + case 0xaf: + return 0; + case 0xcc: + return 2; + case 0xdf: + return 3; + case 0xff: + return 0; + case 0x115: + return 1; + case 0x108: + return 2; + case 0x110: + return 3; + case 0x105: + return 4; + } + return 0xff; +} + +void sub_0805C02C(Manager24* this) { + if (this->manager.unk_0a != 0xff) { + gUnk_08108CE8[this->manager.unk_0a](this->tile, this->field_0x35); + } +} + +void sub_0805C050(u32 pos, u32 layer) { + SetTileType(0xb1, pos - 0x41, layer); + SetTileType(0xb2, pos - 0x40, layer); + SetTileType(0xb3, pos - 0x3f, layer); + SetTileType(0xb4, pos - 1, layer); + SetTileType(0xb7, pos + 1, layer); + if (layer == 1) { + if (sub_08052670() != 0) { + Entity* object = CreateObject(ARCHWAY, 0xe, 0); + if (object != NULL) { + object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) - 8 + gRoomControls.roomOriginY; + } + SetTileType(0xb5, pos, 1); + } else { + if (CheckIsDungeon() != 0) { + SetTileType(0xb5, pos, 1); + } else { + SetTileType(0xb6, pos, 1); + } + } + + SetTileType(0xb8, pos - 0x41, 2); + SetTileType(0xb9, pos - 0x40, 2); + SetTileType(0xba, pos - 0x3f, 2); + } else { + Entity* object; + SetTileType(0xb5, pos, 2); + if (CheckIsDungeon() == 0) { + return; + } + object = CreateObject(ARCHWAY, sub_0805C608(), 6); + if (object == NULL) { + return; + } + object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) - 0x10 + gRoomControls.roomOriginY; + object->collisionLayer = 2; + } +} + +void sub_0805C178(u32 pos, u32 layer) { + Entity* object; + + SetTileType(0xf1, pos - 0x40, layer); + SetTileType(0xf5, pos - 0x3f, layer); + SetTileType(0xf6, pos + 1, layer); + SetTileType(0xf4, pos + 0x40, layer); + SetTileType(0xf7, pos + 0x41, layer); + if (layer == 1) { + + if (sub_08052670() != 0) { + + object = CreateObject(ARCHWAY, 0xe, 1); + if (object != NULL) { + object->x.HALF.HI = ((pos & 0x3f) << 4) + 0x18 + gRoomControls.roomOriginX; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 8 + gRoomControls.roomOriginY; + } + SetTileType(0xf2, pos, 1); + } else { + if (CheckIsDungeon() != 0) { + SetTileType(0xf2, pos, 1); + } else { + SetTileType(0xf3, pos, 1); + } + } + SetTileType(0xf8, pos - 0x3f, 2); + SetTileType(0xf9, pos + 1, 2); + SetTileType(0xfa, pos + 0x41, 2); + } else { + SetTileType(0xf2, pos, 2); + if (CheckIsDungeon() == 0) { + return; + } + object = CreateObject(ARCHWAY, sub_0805C608(), 7); + if (object == NULL) { + return; + } + object->x.HALF.HI = ((pos & 0x3f) << 4) + 0x20 + gRoomControls.roomOriginX; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 8 + gRoomControls.roomOriginY; + object->collisionLayer = 2; + } +} + +void sub_0805C294(u32 pos, u32 layer) { + Entity* object; + + SetTileType(0xd1, pos - 1, layer); + SetTileType(0xd4, pos + 1, layer); + SetTileType(0xd5, pos + 0x3f, layer); + SetTileType(0xd6, pos + 0x40, layer); + SetTileType(0xd7, pos + 0x41, layer); + if (layer == 1) { + if (sub_08052670() != 0) { + object = CreateObject(0x4f, 0xe, 2); + if (object != NULL) { + object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 0x20 + gRoomControls.roomOriginY; + } + SetTileType(0xd2, pos, 1); + } else { + if (CheckIsDungeon() != 0) { + SetTileType(0xd2, pos, 1); + } else { + SetTileType(0xd3, pos, 1); + } + } + SetTileType(0xd8, pos + 0x3f, 2); + SetTileType(0xd9, pos + 0x40, 2); + SetTileType(0xda, pos + 0x41, 2); + } else { + SetTileType(0xd2, pos, 2); + if (CheckIsDungeon() == 0) { + return; + } + object = CreateObject(0x4f, sub_0805C608(), 8); + if (object == NULL) { + return; + } + object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 0x20 + gRoomControls.roomOriginY; + object->collisionLayer = 2; + } +} + +void sub_0805C3B4(u32 pos, u32 layer) { + Entity* object; + + SetTileType(0xe1, pos - 0x41, layer); + SetTileType(0xe4, pos - 0x40, layer); + SetTileType(0xe2, pos - 1, layer); + SetTileType(0xe3, pos + 0x3f, layer); + SetTileType(0xe7, pos + 0x40, layer); + if (layer == 1) { + if (sub_08052670() != 0) { + object = CreateObject(ARCHWAY, 0xe, 3); + if (object != NULL) { + object->x.HALF.HI = ((pos & 0x3f) << 4) + -0x10 + gRoomControls.roomOriginX; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 8 + gRoomControls.roomOriginY; + } + SetTileType(0xe5, pos, 1); + } else { + if (CheckIsDungeon() != 0) { + SetTileType(0xe5, pos, 1); + } else { + SetTileType(0xe6, pos, 1); + } + } + SetTileType(0xe8, pos - 0x41, 2); + SetTileType(0xe9, pos - 1, 2); + SetTileType(0xea, pos + 0x3f, 2); + } else { + SetTileType(0xe5, pos, 2); + if (CheckIsDungeon() == 0) { + return; + } + + object = CreateObject(ARCHWAY, sub_0805C608(), 9); + if (object == NULL) { + return; + } + object->x.HALF.HI = ((pos & 0x3f) << 4) + -0x10 + gRoomControls.roomOriginX; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + 8 + gRoomControls.roomOriginY; + object->collisionLayer = 2; + } +} + +void sub_0805C4E0(u32 pos, u32 layer) { + Entity* object; + + SetTileType(0xc1, pos - 0x41, layer); + SetTileType(0xc2, pos - 0x40, layer); + SetTileType(0xc3, pos - 0x3f, layer); + SetTileType(0xc4, pos - 1, layer); + SetTileType(0xc7, pos + 1, layer); + if (layer == 1) { + if (sub_08052670() != 0) { + object = CreateObject(ARCHWAY, 0xe, 0); + if (object != NULL) { + object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + -0x10 + gRoomControls.roomOriginY; + } + SetTileType(0xc5, pos, 1); + } else { + if (CheckIsDungeon() != 0) { + SetTileType(0xc5, pos, 1); + } else { + SetTileType(0xc6, pos, 1); + } + } + SetTileType(0xc8, pos - 0x41, 2); + SetTileType(0xc9, pos - 0x40, 2); + SetTileType(0xca, pos - 0x3f, 2); + } else { + SetTileType(0xc5, pos, 2); + if (CheckIsDungeon() == 0) { + return; + } + + object = CreateObject(ARCHWAY, sub_0805C608(), 6); + if (object == NULL) { + return; + } + object->x.HALF.HI = ((pos & 0x3f) << 4) + 8 + gRoomControls.roomOriginX; + object->y.HALF.HI = ((pos & 0xfc0) >> 2) + -0x10 + gRoomControls.roomOriginY; + object->collisionLayer = 2; + } +} + +u32 sub_0805C608(void) { + return gUnk_08108CFC[gArea.regret]; +} diff --git a/src/manager/manager25.c b/src/manager/manager25.c new file mode 100644 index 00000000..3e0e7c9f --- /dev/null +++ b/src/manager/manager25.c @@ -0,0 +1,30 @@ +#include "manager.h" +#include "room.h" +#include "functions.h" + +typedef struct { + struct Manager manager; + u8 field_0x20[0x18]; + s16 field_0x38; + s16 field_0x3a; +} Manager25; + +void Manager25_Main(Manager25* this) { + if (this->manager.action == 0) { + this->field_0x38 = TILE(this->field_0x38, this->field_0x3a); + if (GetTileType(this->field_0x38, 2) == 0x75) { + this->manager.action = 1; + SetTile(0x406a, this->field_0x38, 1); + } else { + DeleteThisEntity(); + } + } + if (GetTileType(this->field_0x38, 1) == 0x406b) { + sub_0807B7D8(0x76, this->field_0x38, 2); + DeleteThisEntity(); + } + if (GetTileType(this->field_0x38, 2) == 0x76) { + SetTile(0x406b, this->field_0x38, 1); + DeleteThisEntity(); + } +} diff --git a/src/manager/manager26.c b/src/manager/manager26.c index 89da7a38..6fa80711 100644 --- a/src/manager/manager26.c +++ b/src/manager/manager26.c @@ -22,7 +22,7 @@ void (*const gUnk_08108D04[])(Manager26*) = { sub_0805C6D0, sub_0805C7A0, sub_08 void sub_0805C7CC(Manager26*); -void sub_0805C6B8(Manager26* this) { +void Manager26_Main(Manager26* this) { gUnk_08108D04[this->manager.action](this); } diff --git a/src/manager/manager27.c b/src/manager/manager27.c index 6540c1ad..89964893 100644 --- a/src/manager/manager27.c +++ b/src/manager/manager27.c @@ -15,7 +15,7 @@ void (*const gUnk_08108D10[])(Entity*) = { sub_0805C874, sub_0805C894, sub_0805C const u8 gUnk_08108D20[] = { 0x6F, 0x70, 0x71, 0x72, 0x71, 0x70 }; -void Manager27(Entity* this) { +void Manager27_Main(Entity* this) { gUnk_08108D10[this->action](this); if (CheckLocalFlagByOffset(0x300, this->type + 0x67)) { diff --git a/src/manager/manager28.c b/src/manager/manager28.c index 1e2eb829..b753d038 100644 --- a/src/manager/manager28.c +++ b/src/manager/manager28.c @@ -12,18 +12,18 @@ typedef struct { } Manager28; void Manager28_Init(Manager28*); -void Manager28_Main(Manager28*); +void Manager28_Main2(Manager28*); u32 Manager28_FindMatchingEntities(Manager28*); Entity* Manager28_FindMatchingEntity(EntityData*); void Manager28_RemoveDeletedEntities(Manager28*); -void (*const Manager28_ActionFuncs[])(Manager28*) = { Manager28_Init, Manager28_Main }; +void (*const Manager28_ActionFuncs[])(Manager28*) = { Manager28_Init, Manager28_Main2 }; enum Manager28_Action { Init = 0, Main = 1 }; enum Manager28_InitState { DoInit = 0, DoNotInit = 1 }; -void Manager28_Entry(Manager28* this) { +void Manager28_Main(Manager28* this) { Manager28_ActionFuncs[this->manager.action](this); } @@ -56,7 +56,7 @@ void Manager28_Init(Manager28* this) { } } -void Manager28_Main(Manager28* this) { +void Manager28_Main2(Manager28* this) { s32 n; s32 i; s32 j; diff --git a/src/manager/manager29.c b/src/manager/manager29.c new file mode 100644 index 00000000..148619e0 --- /dev/null +++ b/src/manager/manager29.c @@ -0,0 +1,10 @@ + +#include "manager.h" + +ASM_FUNC("asm/non_matching/manager29/Manager29_Main.inc", void Manager29_Main()) + +ASM_FUNC("asm/non_matching/manager29/sub_0805CBD0.inc", void sub_0805CBD0()) + +ASM_FUNC("asm/non_matching/manager29/sub_0805CC3C.inc", void sub_0805CC3C()) + +ASM_FUNC("asm/non_matching/manager29/sub_0805CF80.inc", void sub_0805CF80()) diff --git a/src/manager/manager2A.c b/src/manager/manager2A.c new file mode 100644 index 00000000..f82aabd7 --- /dev/null +++ b/src/manager/manager2A.c @@ -0,0 +1,39 @@ +#include "manager.h" +#include "room.h" +#include "flags.h" +#include "functions.h" + +typedef struct { + u8 field_0x0; + u8 tileLayer; + u16 flag; + u16 tilePos; + u16 tileType; // If the tile type at tilePos, tileLayer is tileType, set the local flag. +} Manager2A_unk; // TODO result of GetCurrentRoomProperty(3)? + +void sub_0805CFF0(Manager2A_unk*); + +void Manager2A_Main(Manager* manager) { + Manager2A_unk* data; + + if (manager->action == 0) { + manager->action += 1; + } + data = (Manager2A_unk*)GetCurrentRoomProperty(3); + if (data != NULL) { + for (; data->field_0x0 != 0; data = data + 1) { + if (data->field_0x0 == 10) { + sub_0805CFF0(data); + } + } + } +} + +void sub_0805CFF0(Manager2A_unk* param_1) { + if (CheckLocalFlag(param_1->flag) == 0) { + u32 tileType = GetTileType(param_1->tilePos, param_1->tileLayer); + if (param_1->tileType == tileType) { + SetLocalFlag(param_1->flag); + } + } +} diff --git a/src/manager/manager2B.c b/src/manager/manager2B.c new file mode 100644 index 00000000..29cc7462 --- /dev/null +++ b/src/manager/manager2B.c @@ -0,0 +1,117 @@ +#include "manager.h" +#include "flags.h" +#include "room.h" +#include "functions.h" +#include "object.h" +#include "audio.h" + +typedef struct { + Manager manager; + Entity* field_0x20; + u8 field_0x24; + u8 field_0x25; + u8 field_0x26; + u8 field_0x27; + u8 field_0x28; + u8 field_0x29; + u8 field_0x2a; + u8 field_0x2b; + u8 field_0x2c; + u8 field_0x2d; + u8 field_0x2e; + u8 field_0x2f; + u8 field_0x30; + u8 field_0x31; + u8 field_0x32; + u8 field_0x33; + u8 field_0x34; + u8 field_0x35; + u8 field_0x36; + u8 field_0x37; + u8 field_0x38; + u8 field_0x39; + u8 field_0x3a; + u8 field_0x3b; + u8 field_0x3c; + u8 field_0x3d; + u16 field_0x3e; +} Manager2B; + +extern void (*const gUnk_08108D30[])(Manager2B*); + +extern u8 gEntCount; + +void sub_0805D11C(Manager2B*); + +void Manager2B_Main(Manager2B* this) { + gUnk_08108D30[this->manager.action](this); +} + +NONMATCH("asm/non_matching/manager2B/sub_0805D02C.inc", void sub_0805D02C(Manager2B* this)) { + u32 counter; + u16* objectData; + Entity* object; + Entity** createdObjects; + + if (CheckFlags((u32)this->field_0x3e) != 0) { + DeleteThisEntity(); + } + if (gEntCount < 0x44) { + objectData = GetCurrentRoomProperty(this->manager.unk_0a); + counter = 0; + createdObjects = &this->field_0x20; + while (counter < 4) { + object = CreateObject(OBJECT_A0, objectData[2], counter); + object->x.HALF.HI = objectData[0] + gRoomControls.roomOriginX; + object->y.HALF.HI = objectData[1] + gRoomControls.roomOriginY; + object->parent = (Entity*)this; + sub_08016A30(object); + *createdObjects = object; + counter += 1; + objectData += 3; + createdObjects += 1; + } + this->manager.action = 1; + this->manager.unk_0f = 0x3c; + this->field_0x36 = 0; + } +} +END_NONMATCH + +void sub_0805D0C4(Manager2B* this) { + if (--this->manager.unk_0f == 0) { + this->manager.unk_0f = 0xb4; + } + if (this->field_0x36 == 0xf) { + this->manager.action = 2; + this->manager.unk_0e = 8; + SoundReq(SFX_SECRET); + sub_0805D11C(this); + } + this->field_0x36 = 0; +} + +void sub_0805D0FC(Manager2B* this) { + if (--this->manager.unk_0e == 0) { + SetFlag(this->field_0x3e); + DeleteManager(&this->manager); + } +} + +NONMATCH("asm/non_matching/manager2B/sub_0805D11C.inc", void sub_0805D11C(Manager2B* this)) { + Entity* entity; + Entity** createdObjects; + u32 counter; + + counter = 0; + createdObjects = &this->field_0x20; + while (counter < 4) { + entity = *createdObjects; + *createdObjects = NULL; + sub_0807BA8C(TILE(entity->x.HALF.HI, entity->y.HALF.HI), entity->collisionLayer); + DeleteEntity(entity); + createdObjects += 1; + counter += 1; + } +} +END_NONMATCH diff --git a/src/manager/manager2C.c b/src/manager/manager2C.c new file mode 100644 index 00000000..3c578661 --- /dev/null +++ b/src/manager/manager2C.c @@ -0,0 +1,35 @@ +#include "manager.h" +#include "functions.h" +#include "utils.h" + +typedef struct { + struct Manager manager; + u8 field_0x20[0x16]; + u8 field_0x36; + u8 field_0x37; + s16 field_0x38; + s16 field_0x3a; + u16 field_0x3c; + u16 field_0x3e; +} Manager2C; + +void Manager2C_Main(Manager2C* manager) { + if (manager->manager.action == 0) { + manager->manager.action = 1; + manager->field_0x3a = 0; + } + if (((CheckPlayerInRegion(manager->field_0x38, manager->field_0x3a, 0x14, 0x40) != 0) && + (((gPlayerEntity.y.HALF.HI - gRoomControls.roomOriginY) + gPlayerEntity.height.HALF.HI) < 0)) && + (gRoomControls.roomScrollY == gRoomControls.roomOriginY)) { + MemClear(&gScreenTransition.areaID, 0x20); + gScreenTransition.transitioningOut = 1; + gScreenTransition.transitionType = 0; + gScreenTransition.field_0xf = 0xb; + gScreenTransition.areaID = manager->manager.unk_0b; + gScreenTransition.roomID = manager->manager.unk_0e; + gScreenTransition.playerState = manager->field_0x37; + gScreenTransition.playerStartPos.HALF.x = manager->field_0x3c; + gScreenTransition.playerStartPos.HALF.y = manager->field_0x3e; + gScreenTransition.playerLayer = manager->field_0x36; + } +} diff --git a/src/manager/manager2D.c b/src/manager/manager2D.c new file mode 100644 index 00000000..92aebb64 --- /dev/null +++ b/src/manager/manager2D.c @@ -0,0 +1,15 @@ +#include "entity.h" +#include "functions.h" + +extern u32 gUnk_03000BF8; +extern u32 gUnk_03000BF6; + +void Manager2D_Main(Entity* this) { + SetTile(0x4014, 0x5c3, 1); + if ((gRoomControls.roomOriginY + 200 < gPlayerEntity.y.HALF.HI) && + ((u32)(gPlayerEntity.x.HALF.HI - gRoomControls.roomOriginX) - 0x30 < 0x11)) { + gPlayerEntity.collisionLayer = 3; + UpdateSpriteForCollisionLayer(&gPlayerEntity); + } + DeleteManager((Manager*)this); +} diff --git a/src/manager/manager2E.c b/src/manager/manager2E.c index 6dd5ea3e..5d114b6f 100644 --- a/src/manager/manager2E.c +++ b/src/manager/manager2E.c @@ -1,13 +1,112 @@ #include "global.h" #include "entity.h" +#include "manager.h" +#include "flags.h" +#include "functions.h" +#include "audio.h" -extern void (*const gUnk_08108D3C[])(Entity*); -extern void (*const gUnk_08108D44[])(Entity*); +typedef struct { + Manager manager; + u8 field_0x20[0x18]; + s16 field_0x38; + u8 field_0x3a; + u8 field_0x3b; + u16 field_0x3c; + u16 field_0x3e; +} Manager2E; -void sub_0805D250(Entity* this) { - gUnk_08108D3C[this->type](this); +extern void (*const gUnk_08108D3C[])(Manager2E*); +extern void (*const gUnk_08108D44[])(Manager2E*); + +void sub_0805D2F4(Manager2E*); +extern void sub_0805E4E0(void*, u32); + +extern void (*const gUnk_08108D50[])(Manager2E*); + +void Manager2E_Main(Manager2E* this) { + gUnk_08108D3C[this->manager.unk_0a](this); } -void sub_0805D268(Entity* this) { - gUnk_08108D44[this->action](this); +void sub_0805D268(Manager2E* this) { + gUnk_08108D44[this->manager.action](this); +} + +void sub_0805D280(Manager2E* this) { + if (CheckFlags(this->field_0x3c) != 0) { + DeleteThisEntity(); + } + if (CheckFlags(this->field_0x3e) != 0) { + SetFlag(this->field_0x3c); + DeleteThisEntity(); + } + this->manager.action = 1; + if (this->manager.unk_0e == 0) { + this->manager.unk_0e = 0x1e; + } + sub_0805E3A0(this, 6); +} + +void sub_0805D2C0(Manager2E* this) { + if ((CheckFlags(this->field_0x3e) != 0) && (gUnk_03003DC0.unk_0xc < 2)) { + this->manager.action = 2; + if (this->manager.unk_0e == 1) { + sub_0805D2F4(this); + } + sub_0805E4E0(this, this->manager.unk_0e); + } +} + +void sub_0805D2F4(Manager2E* this) { + if (gUnk_03003DC0.unk_0xc == 0) { + if (this->field_0x38 != SFX_NONE) { + SoundReq(this->field_0x38); + } else { + SoundReq(SFX_SECRET); + } + if (this->field_0x3c != 0) { + SetFlag(this->field_0x3c); + } + DeleteThisEntity(); + } +} + +void sub_0805D32C(Manager2E* this) { + gUnk_08108D50[this->manager.action](this); +} + +void sub_0805D344(Manager2E* this) { + CheckFlags(this->field_0x3e); + this->manager.action = 1; + if (this->manager.unk_0e == 0) { + this->manager.unk_0e = 0x1e; + } + this->manager.unk_0f = this->manager.unk_0e; + sub_0805E3A0(this, 6); +} + +void sub_0805D36C(Manager2E* this) { + if (CheckFlags(this->field_0x3e) != 0) { + this->manager.action = 2; + this->manager.unk_0e = this->manager.unk_0f; + } +} + +void sub_0805D384(Manager2E* this) { + if (this->manager.unk_0e != 0) { + if (--this->manager.unk_0e == 0) { + Sound sound; + if (this->field_0x38 != SFX_NONE) { + sound = this->field_0x38; + } else { + sound = SFX_SECRET; + } + SoundReq(sound); + SetFlag(this->field_0x3c); + } + } else { + if (CheckFlags(this->field_0x3e) == 0) { + this->manager.action = 1; + ClearFlag(this->field_0x3c); + } + } } diff --git a/src/manager/manager2F.c b/src/manager/manager2F.c new file mode 100644 index 00000000..68e41338 --- /dev/null +++ b/src/manager/manager2F.c @@ -0,0 +1,40 @@ + +#include "manager.h" +#include "area.h" +#include "room.h" +#include "screen.h" +#include "functions.h" + +void sub_0805D470(Manager*); + +void Manager2F_Main(Manager* this) { + if (this == NULL) { + if ((void*)gArea.unk3 != sub_0805D470) { + sub_0805D470(NULL); + } + } else { + if (this->action == 0) { + this->action = 1; + this->unk_10 |= 0x20; + sub_0805E3A0(this, 6); + if (gArea.unk3 == 0) { + sub_08052D74(this, sub_0805D470, NULL); + } else { + DeleteThisEntity(); + } + } else { + gRoomControls.bg3OffsetX.WORD -= 0x4000; + gRoomControls.bg3OffsetY.WORD -= 0x2000; + gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; + } + } +} + +void sub_0805D470(Manager* this) { + LoadGfxGroup(0x4c); + gScreen.affine.bg3Control = 0x1e07; + gScreen.lcd.displayControl |= 0x800; + gScreen.affine.bg3xOffset = gRoomControls.roomScrollX + gRoomControls.bg3OffsetX.HALF.HI; + gScreen.affine.bg3yOffset = gRoomControls.roomScrollY + gRoomControls.bg3OffsetY.HALF.HI; +} diff --git a/src/manager/manager3.c b/src/manager/manager3.c index 24b5be70..5652ad89 100644 --- a/src/manager/manager3.c +++ b/src/manager/manager3.c @@ -30,7 +30,7 @@ extern u32 sub_08057810(void); extern u32 sub_080002C0(u16, u16, u8); extern void sub_080577AC(u32, u32, u32); -void sub_080576C0(Manager3* this) { +void Manager3_Main(Manager3* this) { s8 tmp; if (this->manager.action == 0) { this->manager.action = 1; diff --git a/src/manager/manager31.c b/src/manager/manager31.c new file mode 100644 index 00000000..2dcf7727 --- /dev/null +++ b/src/manager/manager31.c @@ -0,0 +1,96 @@ + +#include "manager.h" +#include "flags.h" +#include "random.h" +#include "object.h" +#include "room.h" + +typedef struct { + Manager manager; + u8 itemActive[3]; +} Manager31; + +typedef struct { + u16 minType; + u16 maxType; + u16 x; + u16 y; +} GoronShopSpawnData; + +extern GoronShopSpawnData gUnk_08108D5C[3]; + +/* +Spawns the shop items for the kinstones for the goron merchant. +*/ +void Manager31_Main(Manager31* this) { + s32 uVar2; + GoronShopSpawnData* spawnData; + s32 count; + + if (this->manager.action == 0) { + this->manager.action += 1; + if (CheckGlobalFlag(GORON_KAKERA_L) != 0 && CheckGlobalFlag(GORON_KAKERA_M) != 0 && + CheckGlobalFlag(GORON_KAKERA_R) != 0) { + if (CheckGlobalFlag(GORON_KAKERA_LV2) == 0) { + if (CheckGlobalFlag(LV1_CLEAR) != 0) { + SetGlobalFlag(GORON_KAKERA_LV2); + goto clearGlobalFlags; + } + } else { + if (CheckGlobalFlag(GORON_KAKERA_LV3) == 0) { + if (CheckGlobalFlag(LV2_CLEAR) != 0) { + SetGlobalFlag(GORON_KAKERA_LV3); + goto clearGlobalFlags; + } + } else { + if (CheckGlobalFlag(GORON_KAKERA_LV4) == 0) { + if (CheckGlobalFlag(LV3_CLEAR) != 0) { + SetGlobalFlag(GORON_KAKERA_LV4); + goto clearGlobalFlags; + } + } else { + if (CheckGlobalFlag(GORON_KAKERA_LV5) == 0 && CheckGlobalFlag(LV4_CLEAR) != 0) { + SetGlobalFlag(GORON_KAKERA_LV5); + clearGlobalFlags: + ClearGlobalFlag(GORON_KAKERA_L); + ClearGlobalFlag(GORON_KAKERA_M); + ClearGlobalFlag(GORON_KAKERA_R); + } + } + } + } + } + this->itemActive[2] = 0; + this->itemActive[1] = 0; + this->itemActive[0] = 0; + spawnData = gUnk_08108D5C; + count = 0; + for (count = 0; count < 3;) { + if (CheckGlobalFlag(GORON_KAKERA_L + count) == 0) { + Entity* object = + CreateObject(SHOP_ITEM, 0x5c, ((s32)Random() % spawnData->maxType) + spawnData->minType); + if (object != NULL) { + object->actionDelay = 1; + object->field_0xf = count; + object->x.HALF.HI = spawnData->x + gRoomControls.roomOriginX; + object->y.HALF.HI = spawnData->y + gRoomControls.roomOriginY; + object->field_0x80.HWORD = spawnData->x; + object->field_0x82.HWORD = spawnData->y; + object->collisionLayer = 1; + object->parent = (Entity*)this; + this->itemActive[count] = 1; + } + } + count += 1; + spawnData += 1; + } + } + for (count = 0; count < 3; ++count) { + if (CheckGlobalFlag(GORON_KAKERA_L + count) == 0) { + if ((s8)this->itemActive[count] >= FALSE) { + } else { + SetGlobalFlag(GORON_KAKERA_L + count); + } + } + } +} diff --git a/src/manager/manager32.c b/src/manager/manager32.c new file mode 100644 index 00000000..514aedf6 --- /dev/null +++ b/src/manager/manager32.c @@ -0,0 +1,184 @@ +#include "manager.h" +#include "screen.h" +#include "structures.h" +#include "room.h" +#include "functions.h" +#include "area.h" +#include "utils.h" +#include "gba/types.h" + +typedef struct { + Manager manager; + u32 field_0x20; + u32 field_0x24; + u32 field_0x28; +} Manager32; + +extern void (*const gUnk_08108D7C[])(Manager32*); +void sub_0805D9D8(Manager32*); +void sub_0805DA08(u32, u32, u32); + +extern void sub_080528F0(); + +extern u8 gUnk_08108D74[]; + +extern struct BgAffineDstData gUnk_02017AA0[]; +extern u8 gUnk_03003DE4[0xC]; +extern void sub_0805622C(struct BgAffineDstData*, u32, u32); + +void Manager32_Main(Manager32* this) { + gUnk_08108D7C[this->manager.action](this); + this->field_0x24 = gScreenTransition.frameCount << 4; + sub_0805D9D8(this); + sub_0805DA08(this->field_0x20, this->field_0x28, this->field_0x24); +} + +void sub_0805D7DC(Manager32* this) { + u32 index; + + this->manager.action = (this->manager.unk_0a == 0) ? 1 : 2; + this->field_0x20 = 0; + this->field_0x24 = 0; + switch (gRoomControls.areaID) { + case 7: + default: + index = 0; + break; + case 3: + index = 1; + break; + case 0x81: + index = 2; + break; + case 0x80: + index = 3; + break; + case 0x88: + index = 4; + break; + case 0x78: + index = 5; + break; + case 0x38: + index = 6; + break; + } + + LoadGfxGroup(gUnk_08108D74[index]); + gScreen.affine.bg3Control = 0x1e04; +} + +void sub_0805D860(Manager32* this) { + switch (this->manager.unk_0d) { + case 0: + this->manager.unk_0d = 1; + this->field_0x20 = 0x80; + gScreen.lcd.displayControl |= 0x800; + break; + case 1: + if (--this->field_0x20 == 0x10) { + this->manager.unk_0d = 2; + this->manager.unk_0e = 0x2d; + } + break; + case 2: + if (--this->manager.unk_0e == 0) { + this->manager.unk_0d = 3; + } + break; + case 3: + if (--this->field_0x20 == 0) { + this->manager.unk_0d = 4; + this->manager.unk_0e = 0x3c; + } + break; + default: + if (--this->manager.unk_0e == 0) { + sub_0801E104(); + gScreen.lcd.displayControl &= 0xf7ff; + DeleteThisEntity(); + } + } +} + +void sub_0805D900(Manager32* this) { + switch (this->manager.unk_0d) { + case 0: + this->manager.unk_0d = 1; + this->manager.unk_0e = 0x2d; + this->field_0x20 = 1; + gScreen.lcd.displayControl |= 0x800; + break; + case 1: + if (--this->manager.unk_0e == 0) { + this->manager.unk_0d = 2; + this->manager.unk_0e = 0x14; + } + break; + case 2: + this->field_0x20 += 1; + if (--this->manager.unk_0e != 0) { + return; + } + this->manager.unk_0d = 3; + break; + default: + this->field_0x20 += 4; + if (this->field_0x20 > 0x80) { + sub_0801E104(); + gScreen.lcd.displayControl &= 0xf7ff; + DeleteThisEntity(); + } + break; + } +} + +void sub_0805D98C(Manager32* this) { + if ((gInput.heldKeys & 0x40) != 0) { + this->field_0x20 -= 1; + } + if ((gInput.heldKeys & 0x80) != 0) { + this->field_0x20 += 1; + } + if ((gInput.heldKeys & 0x20) != 0) { + this->field_0x28 -= 1; + } + if ((gInput.heldKeys & 0x10) != 0) { + this->field_0x28 += 1; + } +} + +void sub_0805D9D8(Manager32* this) { + // TODO find out the actual type of the parent of this manager. + Manager* pMVar1 = this->manager.parent; + if (pMVar1 != NULL) { + gScreen.affine.bg3xOffset = 0x80 - (*(s16*)&pMVar1[1].unk_0e - gRoomControls.roomScrollX); + gScreen.affine.bg3yOffset = 0x8c - (*(s16*)(pMVar1[1].unk_11 + 1) - gRoomControls.roomScrollY); + } +} + +void sub_0805DA08(u32 x, u32 y, u32 param_3) { + u32 i; + struct BgAffineDstData* affineDstData = &gUnk_02017AA0[gUnk_03003DE4[0] * 0xa0]; + for (i = 0; i < 0xa0; ++i, y += 0x17) { + affineDstData->pa = ((gSineTable[(param_3 + i + y) & 0xff] * x) >> 8) + gScreen.affine.bg3xOffset; + affineDstData = (struct BgAffineDstData*)&affineDstData->pb; + } + sub_0805622C(&gUnk_02017AA0[gUnk_03003DE4[0] * 0xa0], 0x400001c, 0xa2600001); +} + +void sub_0805DA90(Manager32* this, u32 param_2) { + Manager* manager = GetEmptyManager(); + if (manager != NULL) { + manager->type = 9; + manager->subtype = 0x32; + manager->unk_0a = param_2; + manager->parent = &this->manager; + AppendEntityToList((Entity*)manager, 8); + } + if (gArea.unk3 != 0) { + gScreen.lcd.displayControl &= 0xf7ff; + sub_080528F0(); + DeleteManager((Manager*)gArea.unk3); + } +} diff --git a/src/manager/manager33.c b/src/manager/manager33.c new file mode 100644 index 00000000..3ed92fc2 --- /dev/null +++ b/src/manager/manager33.c @@ -0,0 +1,30 @@ +#include "manager.h" +#include "room.h" +#include "player.h" +#include "audio.h" +#include "object.h" + +void Manager33_Main(Manager* this) { + RoomControls* roomControls = &gRoomControls; + u32 a = roomControls->roomOriginX + 0x1f8; + u32 x = (a - gPlayerEntity.x.HALF.HI) + 0x10; + u32 b = roomControls->roomOriginY + 0x140; + u32 y = (b - gPlayerEntity.y.HALF.HI) + 0x10; + if (this->action == 0) { + if (x < 0x20 && y < 0x20 && gPlayerEntity.height.HALF.HI < -0x18 && gPlayerState.field_0xa8 == 0x14) { + this->action += 1; + this->unk_0e = 0x5a; + SoundReq(SFX_10A); + } + } else { + if (--this->unk_0e == 0) { + Entity* object = CreateObject(OBJECT_96, 1, 0); + if (object != NULL) { + object->x.HALF.HI = roomControls->roomOriginX + 0x1f8; + object->y.HALF.HI = roomControls->roomOriginY + 0x140; + object->height.HALF.HI = 0xffe8; + } + DeleteThisEntity(); + } + } +} diff --git a/src/manager/manager34.c b/src/manager/manager34.c new file mode 100644 index 00000000..77e9dee4 --- /dev/null +++ b/src/manager/manager34.c @@ -0,0 +1,68 @@ +#include "manager.h" +#include "structures.h" +#include "functions.h" +#include "audio.h" + +typedef struct { + Manager manager; + u16 field_0x20; +} Manager34; + +extern void (*const gUnk_08108D8C[])(Manager34*); +void sub_0805DBF0(Manager34*); + +extern ScreenTransitionData gUnk_0813AC48; + +void sub_0805DC70(void); + +void Manager34_Main(Manager34* this) { + gUnk_08108D8C[this->manager.action](this); + sub_0805DBF0(this); +} + +void sub_0805DBB4(Manager34* this) { + this->manager.action = 1; + this->field_0x20 = gScreenTransition.filler[0] * 0x3c; +} + +void sub_0805DBCC(Manager34* this) { + if (((this->manager.parent)->next == NULL) && (this->manager.action = 2, 0x12d < this->field_0x20)) { + this->field_0x20 = 0x12d; + } +} + +void nullsub_498(Manager34* this) { +} + +void sub_0805DBF0(Manager34* this) { + if (--this->field_0x20 == 0) { + sub_0805DC70(); + } else { + if (this->field_0x20 == 0x78) { + sub_08080964(0x78, 2); + } else if (this->field_0x20 == 0xd2) { + sub_08080964(0x5a, 1); + } else if (this->field_0x20 == 0x12c) { + sub_08080964(0x5a, 0); + } + + if (this->field_0x20 < 0x78) { + if ((this->field_0x20 & 0xf) == 0) { + SoundReq(SFX_126); + } + } else if (0xd1 >= this->field_0x20) { + if ((this->field_0x20 & 0x1f) == 0) { + SoundReq(SFX_126); + } + } else if (this->field_0x20 <= 199) { + if ((this->field_0x20 & 0x3f) == 0) { + SoundReq(SFX_126); + } + } + } +} + +void sub_0805DC70(void) { + sub_0805E5A8(); + DoExitTransition(&gUnk_0813AC48); +} diff --git a/src/manager/manager35.c b/src/manager/manager35.c new file mode 100644 index 00000000..0afd3b02 --- /dev/null +++ b/src/manager/manager35.c @@ -0,0 +1,84 @@ +#include "manager.h" +#include "flags.h" +#include "room.h" +#include "object.h" + +typedef struct { + Manager manager; + u8 field_0x20[0x15]; + u8 field_0x35; + u8 field_0x36; + u8 field_0x37; + s16 field_0x38; + s16 field_0x3a; + u16 field_0x3c; + u16 field_0x3e; +} Manager35; + +extern void (*const gUnk_08108D98[])(Manager35*); + +extern void sub_0805E4E0(Entity*, u32); + +void Manager35_Main(Manager35* this) { + gUnk_08108D98[this->manager.action](this); +} + +void sub_0805DC9C(Manager35* this) { + if (CheckFlags(this->field_0x3c) != 0) { + DeleteThisEntity(); + } + if (CheckFlags(this->field_0x3e) != 0) { + SetFlag(this->field_0x3c); + DeleteThisEntity(); + } + this->manager.action = 1; +} + +void sub_0805DCC8(Manager35* this) { + Entity* object; + + if (CheckFlags(this->field_0x3e) != 0) { + this->manager.action = 2; + this->manager.unk_0e = this->field_0x35; + if (this->manager.unk_0e == 0) { + this->manager.unk_0e = 0x1e; + } + this->manager.parent = (Manager*)gRoomControls.cameraTarget; + object = CreateObject(OBJECT_69, 0, 0); + if (object != NULL) { + object->x.HALF.HI = this->field_0x38 + gRoomControls.roomOriginX; + object->y.HALF.HI = this->field_0x3a + gRoomControls.roomOriginY; + *(Entity**)this->manager.unk_18 = object; + gRoomControls.cameraTarget = object; + sub_0805E4E0(object, 0x1e); + } + } +} + +void sub_0805DD24(Manager35* this) { + sub_0805E4E0(0, 8); + if ((gRoomControls.unk6 & 4) == 0 && --this->manager.unk_0e == 0) { + this->manager.action = 3; + SetFlag(this->field_0x3c); + if (this->field_0x36 == 0) { + this->field_0x36 = 1; + } + } +} + +void sub_0805DD68(Manager35* this) { + sub_0805E4E0(0, 8); + if (this->field_0x36 != 0) { + if (--this->field_0x36 == 0) { + gRoomControls.cameraTarget = (Entity*)this->manager.parent; + } + } else { + if ((gRoomControls.unk6 & 4) == 0) { + Entity* entity = *(Entity**)this->manager.unk_18; + if (entity != NULL) { + DeleteEntity(entity); + } + DeleteThisEntity(); + } + } +} diff --git a/src/manager/manager36.c b/src/manager/manager36.c new file mode 100644 index 00000000..e7251db2 --- /dev/null +++ b/src/manager/manager36.c @@ -0,0 +1,44 @@ +#include "manager.h" +#include "audio.h" +#include "script.h" +#include "functions.h" + +typedef struct { + u16 waitTime; + u16 sound; +} Manager36_unk; + +extern Manager36_unk gUnk_08108DA8[]; + +// Repeatedly plays the same sound with a fixed wait time +void Manager36_Main(Manager* manager) { + Manager36_unk* unk = &gUnk_08108DA8[manager->unk_0a]; + if (manager->action == 0) { + manager->action += 1; + manager->unk_0e = 0; + } + if (manager->unk_0e == 0) { + manager->unk_0e = unk->waitTime; + SoundReq(unk->sound); + } else { + manager->unk_0e -= 1; + } +} + +void CreateManager36(Entity* entity, ScriptExecutionContext* context) { + Manager* manager = GetEmptyManager(); + if (manager != NULL) { + manager->type = 9; + manager->subtype = 0x36; + manager->unk_0a = context->intVariable; + AppendEntityToList((Entity*)manager, 6); + sub_0805E3A0(manager, 6); + } +} + +void DeleteManager36(Entity* entity, ScriptExecutionContext* context) { + Entity* manager = FindEntity(9, 0x36, 6, context->intVariable, 0); + if (manager != NULL) { + DeleteEntityAny(manager); + } +} diff --git a/src/manager/manager37.c b/src/manager/manager37.c new file mode 100644 index 00000000..f7b56dfa --- /dev/null +++ b/src/manager/manager37.c @@ -0,0 +1,139 @@ +#include "manager.h" +#include "structures.h" +#include "functions.h" +#include "flags.h" +#include "textbox.h" +#include "audio.h" +#include "save.h" +#include "object.h" +#include "area.h" +#include "enemy.h" + +extern ScreenTransitionData gUnk_0813AC34; + +extern void (*const gUnk_08108DBC[])(Manager*); + +extern void (*const gUnk_08108DC4[])(Manager*); + +extern void (*const gUnk_08108DD8[])(Manager*); + +void sub_0805E094(void); + +extern Entity* CreateSpeechBubbleExclamationMark(Entity*, u32, u32); + +void Manager37_Main(Manager* this) { + gUnk_08108DBC[this->unk_0a](this); +} + +void sub_0805DE50(Manager* this) { + gUnk_08108DC4[this->action](this); +} + +void sub_0805DE68(Manager* this) { + if (CheckLocalFlag(0x7b) == 0) { + DeleteThisEntity(); + } + this->action = 1; + gScreenTransition.field_0x38 = 0; + gScreenTransition.field_0x39 = 0x0f; + *(u8*)&gScreenTransition.field_0x3a = 0x20; + *((u8*)&gScreenTransition.field_0x3a + 1) = 0x20; +#if !defined(EU) && !defined(JP) && !defined(DEMO_JP) + gSave.unk498 = 0x1194; +#endif +} + +void sub_0805DEB8(Manager* this) { + s32 distX; + s32 distY; + Entity* object; + + distX = gPlayerEntity.x.HALF.HI - (gRoomControls.roomOriginX + 0x88); + distY = gPlayerEntity.y.HALF.HI - (gRoomControls.roomOriginY + 0x40); + if (distX * distX + distY * distY < 0x901) { + this->action = 2; + this->unk_0d = 0; + this->unk_0e = 0x78; + sub_08078A90(2); + sub_08078B48(); + object = CreateObject(OBJECT_64, 0, 0); + if (object != NULL) { + object->x.HALF.HI = gRoomControls.roomOriginX + 0x88; + object->y.HALF.HI = gRoomControls.roomOriginY + 0x48; + } + object = CreateSpeechBubbleExclamationMark(&gPlayerEntity, 8, 0xfffffff0); + if (object != NULL) { + object->spritePriority.b0 = 3; + } + SoundReq(BGM_VAATI_WRATH); + } +} + +void sub_0805DF4C(Manager* this) { + gPlayerEntity.animationState = 0; + if (gPlayerEntity.height.HALF.HI != 0) { + if (gPlayerEntity.y.HALF.HI < (gRoomControls.roomOriginY + 0x48)) { + gPlayerEntity.y.HALF.HI = gRoomControls.roomOriginY + 0x48; + } + } else { + if (--this->unk_0e == 0) { + this->action = 3; + this->unk_0e = 0x1e; + TextboxNoOverlapFollow(0x164f); + } + } +} + +void sub_0805DF98(Manager* this) { + if ((gTextBox.doTextBox & 0x7f) == 0) { + if (this->unk_0e != 0) { + this->unk_0e -= 1; + } else { + this->action = 4; + DoFade(7, 4); + SoundReq(SFX_EVAPORATE); + } + } +} + +void sub_0805DFCC(void) { + if (gFadeControl.active == 0) { + ClearGlobalFlag(ZELDA_CHASE); + sub_0805E094(); + } +} + +void sub_0805DFE8(Manager* this) { + gUnk_08108DD8[this->action](this); +} + +void sub_0805E000(Manager* this) { + Entity* enemy = CreateEnemy(VAATI_WRATH, 0); + if (enemy != NULL) { + enemy->x.HALF.HI = gRoomControls.roomOriginX + 0xb0; + enemy->y.HALF.HI = gRoomControls.roomOriginY + 0x48; + enemy->collisionLayer = 1; + UpdateSpriteForCollisionLayer(enemy); + if ((gScreenTransition.field_0x38 & 1) != 0) { + DeleteThisEntity(); + } + *(Entity**)this->unk_18 = enemy; + this->action = 1; + sub_08078A90(3); + gArea.pMusicIndex = 0x80010000; + DoFade(6, 4); + SoundReq(SFX_APPARATE); + } +} + +void sub_0805E078(Manager* this) { + if (gFadeControl.active == 0) { + *(u8*)(((int*)this->unk_18)[0] + 0xd) = 1; + DeleteThisEntity(); + } +} + +void sub_0805E094(void) { + sub_0805E5A8(); + sub_0808091C((ScreenTransitionData*)&gUnk_0813AC34, 7); +} diff --git a/src/manager/manager38.c b/src/manager/manager38.c new file mode 100644 index 00000000..5b081a28 --- /dev/null +++ b/src/manager/manager38.c @@ -0,0 +1,31 @@ +#include "entity.h" +#include "room.h" + +extern void (*const gUnk_08108DE0[])(Entity*); + +extern Entity* LoadRoomEntity(EntityData*); + +void Manager38_Main(Entity* this) { + gUnk_08108DE0[this->action](this); +} + +void sub_0805E0C0(Entity* this) { + EntityData* entityData; + Entity* entity; + + this->action = 1; + this->actionDelay = 0; + entityData = (EntityData*)GetCurrentRoomProperty(this->type); + if (entityData == NULL) { + DeleteThisEntity(); + } + while (*(u8*)entityData != 0xff) { + entity = LoadRoomEntity(entityData++); + entity->parent = this; + entity->actionDelay = 0xff; + } +} + +void sub_0805E0F4(Entity* this) { + this->actionDelay = 0; +} diff --git a/src/manager/manager39.c b/src/manager/manager39.c index cdac7c61..d6018b42 100644 --- a/src/manager/manager39.c +++ b/src/manager/manager39.c @@ -35,7 +35,7 @@ void sub_0805E18C(Manager39*); // unused? void sub_0805E1D8(Manager39*); void sub_0805E1F8(u32, u32); -void sub_0805E0FC(Manager39* this) { +void Manager39_Main(Manager39* this) { gUnk_08108E28[this->manager.action](this); if ((gRoomControls.roomID != this->unk_20) || (gTextBox.doTextBox & 0x7F)) { sub_0805E1D8(this); diff --git a/src/manager/manager4.c b/src/manager/manager4.c index 2fb5fd49..970c544f 100644 --- a/src/manager/manager4.c +++ b/src/manager/manager4.c @@ -7,7 +7,7 @@ extern void (*gUnk_08107C70[])(Manager*); -void sub_08057854(Manager* this) { +void Manager4_Main(Manager* this) { gUnk_08107C70[this->action](this); } diff --git a/src/manager/manager5.c b/src/manager/manager5.c index fbb4da2e..bc9293b7 100644 --- a/src/manager/manager5.c +++ b/src/manager/manager5.c @@ -29,7 +29,7 @@ const u16 gUnk_08108034[] = { 0, 1, -1, 0, 0, -1, 1, 0 }; void (*const gUnk_08108044[])(Manager5*) = { sub_08057AE8, sub_08057BA4, sub_08057C28 }; -void sub_08057AD0(Manager5* this) { +void Manager5_Main(Manager5* this) { gUnk_08108044[this->manager.action](this); } diff --git a/src/manager/manager6.c b/src/manager/manager6.c index ff32b405..7c7f3cfb 100644 --- a/src/manager/manager6.c +++ b/src/manager/manager6.c @@ -3,9 +3,7 @@ #include "manager.h" #include "functions.h" -extern void DoExitTransition(void*); - -void sub_08057CB4(Manager6* this) { +void Manager6_Main(Manager6* this) { u32 tmp; Manager6WarpData* i; if (this->manager.action == 0) { diff --git a/src/manager/manager7.c b/src/manager/manager7.c index 85e49295..8c7ce57f 100644 --- a/src/manager/manager7.c +++ b/src/manager/manager7.c @@ -70,7 +70,7 @@ void Manager7_Main(Manager7* this) { sub_08052D74(this, sub_08057E30, 0); } if (sub_08057E40(this)) { - tmp = gRoomVars.unk_10; + tmp = (u32)gRoomVars.unk_10[0]; if (this->unk_20 != tmp) { this->unk_20 = tmp; this->manager.unk_0e = 0; @@ -109,13 +109,13 @@ void Manager7_Main(Manager7* this) { #endif void sub_08057E30(Manager7* this) { - sub_08057E7C(gRoomVars.unk_10); + sub_08057E7C(gRoomVars.unk_10[0]); } u32 sub_08057E40(Manager7* this) { u32 tmp = sub_08056300(gUnk_08108050); if (tmp != 0xFF) { - gRoomVars.unk_10 = tmp; + gRoomVars.unk_10[0] = tmp; return 1; } else { return 0; @@ -143,6 +143,6 @@ void sub_08057E7C(u32 unk1) { for (tmp = 0; tmp < 8; tmp++, tmp2 += 2) { DmaSet(3, &gGlobalGfxAndPalettes[tmp2[0]], tmp2[1], 0x84000400); } - gRoomVars.unk_10 = unk1; + gRoomVars.unk_10[0] = unk1; } #endif diff --git a/src/manager/manager8.c b/src/manager/manager8.c index 582d5640..198cb0e3 100644 --- a/src/manager/manager8.c +++ b/src/manager/manager8.c @@ -19,7 +19,7 @@ void sub_08058084(u16*, u16*); extern u16 gMapDataTopSpecial[]; -void sub_08057ED0(Manager8* this) { +void Manager8_Main(Manager8* this) { sub_08057F20(this); if (!this->manager.action) { this->manager.action = 1; @@ -30,7 +30,7 @@ void sub_08057ED0(Manager8* this) { } void sub_08057EFC(Manager8* this) { - LoadGfxGroup(gRoomVars.unk_10); + LoadGfxGroup((u32)gRoomVars.unk_10[0]); sub_08058034(); this->unk_3c = 0; this->unk_38 = 0; @@ -110,7 +110,7 @@ void sub_080580B0(u32 unk1) { gUnk_0200B650 = 0; REG_DISPCNT = 0; LoadGfxGroup(unk1); - gRoomVars.unk_10 = unk1; + gRoomVars.unk_10[0] = unk1; sub_08058034(); tmp = gRoomControls.roomScrollX - gRoomControls.roomOriginX; // r7 tmp = tmp + (tmp >> 3) + (0x400 - gRoomControls.width) / 2; diff --git a/src/manager/manager9.c b/src/manager/manager9.c index 1baa8d98..0cce35fe 100644 --- a/src/manager/manager9.c +++ b/src/manager/manager9.c @@ -20,7 +20,7 @@ extern u32 gUnk_02006F00[]; const u16 gUnk_081081EC[] = { 0x30, 0x30, 0x30, 0x38 }; -void sub_080581D8(Manager9* this) { +void Manager9_Main(Manager9* this) { sub_08058210(this); if (!this->manager.action) { this->manager.action = 1; diff --git a/src/manager/managerA.c b/src/manager/managerA.c index acf4f4ba..3f1b841e 100644 --- a/src/manager/managerA.c +++ b/src/manager/managerA.c @@ -14,7 +14,7 @@ void sub_080585B0(ManagerA*); void (*const gUnk_081081F4[])(ManagerA*) = { sub_08058398, sub_080583EC, sub_08058408, sub_08058514, sub_080585B0 }; -void sub_08058380(ManagerA* this) { +void ManagerA_Main(ManagerA* this) { gUnk_081081F4[this->manager.action](this); } diff --git a/src/manager/managerB.c b/src/manager/managerB.c index 470ef89d..0de51aae 100644 --- a/src/manager/managerB.c +++ b/src/manager/managerB.c @@ -18,7 +18,7 @@ void (*const ManagerB_ActionFuncs[])(Manager*); -void sub_080585F0(Manager* this) { +void ManagerB_Main(Manager* this) { // make a distincion if this is a controller (volumeMasterTarget = 0) or a helper (volumeMasterTarget = 1) ManagerB_ActionFuncs[this->unk_0a](this); } @@ -27,7 +27,7 @@ enum ManagerB_State { Init, WaitForFlag, WaitForDone }; void (*const ManagerB_StateFuncs[])(ManagerB*); -void ManagerB_Main(ManagerB* this) { +void ManagerB_Main2(ManagerB* this) { // make a distinction based on the state of this controller ManagerB_StateFuncs[this->manager.action](this); } @@ -192,6 +192,6 @@ void ReplaceMonitoredEntity(Entity* old, Entity* new) { } } -void (*const ManagerB_ActionFuncs[])(Manager*) = { (void (*)(Manager*))ManagerB_Main, +void (*const ManagerB_ActionFuncs[])(Manager*) = { (void (*)(Manager*))ManagerB_Main2, (void (*)(Manager*))ManagerBHelper_Main }; void (*const ManagerB_StateFuncs[])(ManagerB*) = { ManagerB_Init, ManagerB_WaitForFlag, ManagerB_WaitForDone }; diff --git a/src/manager/managerC.c b/src/manager/managerC.c index fdc1d480..3af59a81 100644 --- a/src/manager/managerC.c +++ b/src/manager/managerC.c @@ -60,7 +60,7 @@ void nullsub_108(ManagerC*); void (*const gUnk_0810821C[])(ManagerC*) = { sub_08058894, sub_080588CC, nullsub_108 }; -void sub_0805884C(ManagerC* this) { +void ManagerC_Main(ManagerC* this) { u32 tmp; gUnk_0810821C[this->manager.action](this); sub_08058BC8(this); diff --git a/src/manager/managerD.c b/src/manager/managerD.c new file mode 100644 index 00000000..376fa94f --- /dev/null +++ b/src/manager/managerD.c @@ -0,0 +1,72 @@ +#include "manager.h" +#include "flags.h" +#include "room.h" +#include "functions.h" + +typedef struct { + Manager manager; + u8 field_0x20; + u8 field_0x21; + u8 field_0x22; + u8 field_0x23; + u8 field_0x24; + u8 field_0x25; + u8 field_0x26; + u8 field_0x27; + u16 field_0x28; + u8 field_0x2a; + u8 field_0x2b; + u8 field_0x2c; + u8 field_0x2d; + u8 field_0x2e; + u8 field_0x2f; + u16* field_0x30; + u8 field_0x34; + u8 field_0x35; + u8 field_0x36; + u8 field_0x37; + u16 field_0x38; + u16 field_0x3a; + u8 field_0x3c; + u8 field_0x3d; + u16 field_0x3e; +} ManagerD; + +extern void (*const gUnk_08108308[])(ManagerD*); + +extern u16* GetLayerByIndex(u32); + +void ManagerD_Main(ManagerD* this) { + gUnk_08108308[this->manager.action](this); +} + +void sub_08058DE8(ManagerD* this) { + u16* puVar2; + u16* puVar3; + if (CheckFlags(this->field_0x3e) != 0) { + DeleteThisEntity(); + } else { + this->manager.action = 1; + puVar2 = GetLayerByIndex(this->field_0x3a); + puVar3 = (this->field_0x38 + 2) + puVar2; + this->field_0x30 = puVar3; + this->field_0x28 = *puVar3; + } +} + +void sub_08058E18(ManagerD* this) { + if (this->field_0x28 != *this->field_0x30) { + this->manager.action += 1; + this->manager.unk_0e = 0xf; + } +} + +void sub_08058E34(ManagerD* this) { + if (--this->manager.unk_0e == 0) { + SetFlag(this->field_0x3e); + if (this->manager.unk_0a != 0) { + LoadRoomEntityList((EntityData*)GetCurrentRoomProperty(this->manager.unk_0a)); + } + DeleteManager((Manager*)this); + } +} diff --git a/src/manager/managerE.c b/src/manager/managerE.c index 200a52d5..261e5c00 100644 --- a/src/manager/managerE.c +++ b/src/manager/managerE.c @@ -6,7 +6,7 @@ #include "audio.h" #include "functions.h" -void sub_08058E60(ManagerE* this) { +void ManagerE_Main(ManagerE* this) { if (!this->manager.action) { this->manager.action = 1; if (CheckFlags(this->unk_3e)) { diff --git a/src/npc/emma.c b/src/npc/emma.c index f7a8577a..cdbfe8e3 100644 --- a/src/npc/emma.c +++ b/src/npc/emma.c @@ -3,11 +3,9 @@ #include "script.h" #include "functions.h" -extern u32 gUnk_0813AD10; -extern u32 gUnk_0813AD24; -extern u32 gUnk_0813AD38; - -extern void DoExitTransition(u32*); +extern ScreenTransitionData gUnk_0813AD10; +extern ScreenTransitionData gUnk_0813AD24; +extern ScreenTransitionData gUnk_0813AD38; void Emma(Entity* this) { if (this->action == 0) { diff --git a/src/npc/picolyteBottle.c b/src/npc/picolyteBottle.c index 720cdf61..4dd3dcaf 100644 --- a/src/npc/picolyteBottle.c +++ b/src/npc/picolyteBottle.c @@ -4,7 +4,6 @@ #include "functions.h" #include "textbox.h" -extern void DoExitTransition(ScreenTransitionData*); extern ScreenTransitionData gUnk_0813AD4C; void sub_0806E014(Entity* this); diff --git a/src/npc/simon.c b/src/npc/simon.c index f5f1aad7..740ffa7e 100644 --- a/src/npc/simon.c +++ b/src/npc/simon.c @@ -12,10 +12,8 @@ typedef struct { u32 unk; } struct_0806C2A0; -extern void DoExitTransition(void*); - -extern void gUnk_0813AD60; -extern void gUnk_0813AD74; +extern ScreenTransitionData gUnk_0813AD60; +extern ScreenTransitionData gUnk_0813AD74; void Simon(Entity* this) { if (this->action == 0) { diff --git a/src/object/book.c b/src/object/book.c index ee53ef99..b51c4716 100644 --- a/src/object/book.c +++ b/src/object/book.c @@ -232,4 +232,4 @@ void (*const BookActionFuncs[])(Entity*) = { sub_0809B3C4, sub_0809B4A8, sub_0809B524, sub_0809B56C, sub_0809B5B4, sub_0809B5EC, }; -const s8 gUnk_08123D94[] = { -22, -20, -20, -20 }; \ No newline at end of file +const s8 gUnk_08123D94[] = { -22, -20, -20, -20 }; diff --git a/src/object/minishSizedEntrance.c b/src/object/minishSizedEntrance.c index 03467f41..ce5ab316 100644 --- a/src/object/minishSizedEntrance.c +++ b/src/object/minishSizedEntrance.c @@ -4,8 +4,6 @@ #include "player.h" #include "functions.h" -extern void DoExitTransition(void*); - extern void (*const gUnk_08122254[])(Entity*); extern u16 gUnk_0812225C[]; @@ -35,6 +33,6 @@ void sub_08090F00(Entity* this) { } if ((gPlayerState.flags.all & 0x80) && sub_080041A0(this, &gPlayerEntity, 4, 4) && (gPlayerEntity.height.HALF.HI == 0) && (((u16)gPlayerState.field_0x90.HALF.LO) & gUnk_0812225C[this->type2])) { - DoExitTransition((Entity*)GetCurrentRoomProperty(this->actionDelay)); + DoExitTransition(GetCurrentRoomProperty(this->actionDelay)); } } diff --git a/src/object/object1C.c b/src/object/object1C.c index 0c80735a..3ca965c6 100644 --- a/src/object/object1C.c +++ b/src/object/object1C.c @@ -3,14 +3,16 @@ extern u32 CheckRectOnScreen(s16, s16, u32, u32); +/* +This object is created by Manager13. +It checks whether the 0x10 x 0x10 rect at field_0x80, field_0x82 is still on the screen. +If not, then it deletes itselfs and unsets the this->type2 bit in the managers field_0x20 bitfield. +*/ void Object1C(Entity* this) { - s32 iVar1; - if (this->action == 0) { this->action = 1; } - iVar1 = CheckRectOnScreen(this->field_0x80.HWORD, this->field_0x82.HWORD, 0x10, 0x10); - if (iVar1 == 0) { + if (CheckRectOnScreen(this->field_0x80.HWORD, this->field_0x82.HWORD, 0x10, 0x10) == 0) { this->parent->field_0x20 &= ~(1 << this->type2); DeleteThisEntity(); } diff --git a/src/player.c b/src/player.c index 9b2dc803..1d7be0a7 100644 --- a/src/player.c +++ b/src/player.c @@ -31,7 +31,6 @@ extern void sub_0806F948(); extern void sub_08077698(); extern void sub_0805E544(); extern void sub_080717F8(); -extern void DoExitTransition(); extern void UnfreezeTime(); extern void sub_08071A6C(); extern void sub_08052BB8(); diff --git a/src/room.c b/src/room.c index 6200abc3..6e1c44d5 100644 --- a/src/room.c +++ b/src/room.c @@ -3161,7 +3161,7 @@ extern EntityData gUnk_080E72E4; void sub_0804D384(void) { - sub_0805AF60(0); + Manager19_Main(0); if (CheckGlobalFlag(LV5_CLEAR)) { LoadRoomEntityList(&gUnk_080E7314); } @@ -3184,7 +3184,7 @@ u32 sub_0804D3F8() { } void sub_0804D3FC() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D408() { @@ -3192,7 +3192,7 @@ u32 sub_0804D408() { } void sub_0804D40C() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D418() { @@ -3200,7 +3200,7 @@ u32 sub_0804D418() { } void sub_0804D41C() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D428() { @@ -3208,7 +3208,7 @@ u32 sub_0804D428() { } void sub_0804D42C() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D438() { @@ -3216,7 +3216,7 @@ u32 sub_0804D438() { } void sub_0804D43C() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D448() { @@ -3224,7 +3224,7 @@ u32 sub_0804D448() { } void sub_0804D44C() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D458() { @@ -3232,7 +3232,7 @@ u32 sub_0804D458() { } void sub_0804D45C() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D468() { @@ -3240,7 +3240,7 @@ u32 sub_0804D468() { } void sub_0804D46C() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D478() { @@ -3248,7 +3248,7 @@ u32 sub_0804D478() { } void sub_0804D47C() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D488() { @@ -3256,7 +3256,7 @@ u32 sub_0804D488() { } void sub_0804D48C() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D498() { @@ -3264,7 +3264,7 @@ u32 sub_0804D498() { } void sub_0804D49C() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D4A8() { @@ -3272,7 +3272,7 @@ u32 sub_0804D4A8() { } void sub_0804D4AC() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D4B8() { @@ -3280,7 +3280,7 @@ u32 sub_0804D4B8() { } void sub_0804D4BC() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D4C8() { @@ -3288,7 +3288,7 @@ u32 sub_0804D4C8() { } void sub_0804D4CC() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D4D8() { @@ -3296,7 +3296,7 @@ u32 sub_0804D4D8() { } void sub_0804D4DC() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D4E8() { @@ -3304,7 +3304,7 @@ u32 sub_0804D4E8() { } void sub_0804D4EC() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D4F8() { @@ -3312,7 +3312,7 @@ u32 sub_0804D4F8() { } void sub_0804D4FC() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D508() { @@ -3320,7 +3320,7 @@ u32 sub_0804D508() { } void sub_0804D50C() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D518() { @@ -3328,7 +3328,7 @@ u32 sub_0804D518() { } void sub_0804D51C() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D528() { @@ -3336,7 +3336,7 @@ u32 sub_0804D528() { } void sub_0804D52C() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D538() { @@ -3351,7 +3351,7 @@ u32 sub_0804D540() { } void sub_0804D544() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D550() { @@ -3359,7 +3359,7 @@ u32 sub_0804D550() { } void sub_0804D554() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D560() { @@ -3367,7 +3367,7 @@ u32 sub_0804D560() { } void sub_0804D564() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D570() { @@ -3375,7 +3375,7 @@ u32 sub_0804D570() { } void sub_0804D574() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D580() { @@ -3383,7 +3383,7 @@ u32 sub_0804D580() { } void sub_0804D584() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D590() { @@ -3433,7 +3433,7 @@ u32 sub_0804D5C0() { } void sub_0804D5C4() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D5D0() { @@ -3441,7 +3441,7 @@ u32 sub_0804D5D0() { } void sub_0804D5D4() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D5E0() { @@ -3449,7 +3449,7 @@ u32 sub_0804D5E0() { } void sub_0804D5E4() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D5F0() { @@ -3457,7 +3457,7 @@ u32 sub_0804D5F0() { } void sub_0804D5F4() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D600() { @@ -3507,7 +3507,7 @@ u32 sub_0804D630() { } void sub_0804D634() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D640() { @@ -3517,7 +3517,7 @@ u32 sub_0804D640() { extern EntityData gUnk_080EA09C; void sub_0804D644(void) { - sub_0805AF60(0); + Manager19_Main(0); if (!CheckLocalFlag(0x70)) { LoadRoomEntityList(&gUnk_080EA09C); } @@ -3528,7 +3528,7 @@ u32 sub_0804D664() { } void sub_0804D668() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D674() { @@ -3536,7 +3536,7 @@ u32 sub_0804D674() { } void sub_0804D678() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D684() { @@ -3544,7 +3544,7 @@ u32 sub_0804D684() { } void sub_0804D688() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D694() { @@ -3552,7 +3552,7 @@ u32 sub_0804D694() { } void sub_0804D698() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D6A4() { @@ -3560,7 +3560,7 @@ u32 sub_0804D6A4() { } void sub_0804D6A8() { - sub_0805AF60(0); + Manager19_Main(0); } u32 sub_0804D6B4() { @@ -3591,7 +3591,7 @@ u32 sub_0804D6EC() { } void sub_0804D6F0(void) { - sub_0805D3C8(0); + Manager2F_Main(0); if ((gScreenTransition.field_0x38 & 1) && gScreenTransition.field_0x39) { if (gScreenTransition.field_0x3c == 1) { @@ -5612,7 +5612,7 @@ u32 sub_0804F22C() { } void sub_0804F230() { - sub_0805ADD8(0); + Manager18_Main(0); } u32 sub_0804F23C(void) { @@ -5632,7 +5632,7 @@ extern EntityData gUnk_080F70D8; extern EntityData gUnk_080F7088; void sub_0804F25C(void) { - sub_0805ADD8(0); + Manager18_Main(0); #if defined(JP) || defined(EU) if (!CheckLocalFlag(0x6b)) { #else @@ -5663,7 +5663,7 @@ u32 sub_0804F2E8() { } void sub_0804F2EC() { - sub_0805ADD8(0); + Manager18_Main(0); } u32 sub_0804F2F8() { @@ -5671,7 +5671,7 @@ u32 sub_0804F2F8() { } void sub_0804F2FC() { - sub_0805ADD8(0); + Manager18_Main(0); } extern u32 gUnk_080F7680; @@ -5687,7 +5687,7 @@ extern EntityData gUnk_080F7500; extern EntityData gUnk_080F7550; void sub_0804F330(void) { - sub_0805ADD8(0); + Manager18_Main(0); if (gSave.unk8 > 3) { LoadRoomEntityList(&gUnk_080F7500); } @@ -5712,7 +5712,7 @@ extern EntityData gUnk_080F78A0; void sub_0804F3B0(void) { - sub_0805ADD8(0); + Manager18_Main(0); if (CheckLocalFlagByOffset(0x200, 0x8f)) { if (!CheckGlobalFlag(INLOCK)) { LoadRoomEntityList(&gUnk_080F77C0); @@ -5761,7 +5761,7 @@ u32 Vars_HyruleField_OutsideCastle(void) { } void sub_0804F4E4() { - sub_0805ADD8(0); + Manager18_Main(0); sub_0804F578(); } @@ -5950,7 +5950,7 @@ extern EntityData gUnk_080F806C; void Load_HyruleField_OutsideCastleWest(void) { - sub_0805ADD8(0); + Manager18_Main(0); if ((gSave.unk8 > 3) && CheckGlobalFlag(TINGLE_TALK1ST)) { LoadRoomEntityList(&gUnk_080F806C); } @@ -5963,8 +5963,7 @@ u32 Vars_HyruleField_TrilbyHighlands() { extern EntityData gUnk_080F82E0; void Load_HyruleField_TrilbyHighlands(void) { - - sub_0805ADD8(0); + Manager18_Main(0); #if defined(JP) || defined(EU) if (CheckGlobalFlag(LV2_CLEAR) && GetInventoryValue(0x3) && !CheckLocalFlag(0x9b)) { #else @@ -5982,7 +5981,7 @@ extern EntityData gUnk_080F8430; void sub_0804FA68(void) { - sub_0805ADD8(0); + Manager18_Main(0); if (CheckKinstoneFused(0x21) && !CheckLocalFlagByOffset(0x200, 0x42)) { LoadRoomEntityList(&gUnk_080F8430); }