mirror of
https://github.com/zeldaret/tmc
synced 2026-05-30 08:56:48 -04:00
Decompile manager32
This commit is contained in:
@@ -100,4 +100,4 @@ _0801B5A4:
|
||||
adds r0, r4, #0
|
||||
bl sub_0801B584
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
.syntax divided
|
||||
|
||||
@@ -177,4 +177,4 @@ _08074EE2:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08074EE4: .4byte gPlayerEntity
|
||||
.syntax divided
|
||||
.syntax divided
|
||||
|
||||
@@ -55,4 +55,4 @@ _08075578:
|
||||
bl UpdateItemAnim
|
||||
_0807557E:
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
.syntax divided
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
.syntax unified
|
||||
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
|
||||
.syntax divided
|
||||
@@ -1,77 +0,0 @@
|
||||
.syntax unified
|
||||
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
|
||||
.syntax divided
|
||||
@@ -1,84 +0,0 @@
|
||||
.syntax unified
|
||||
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
|
||||
.syntax divided
|
||||
@@ -1,75 +0,0 @@
|
||||
.syntax unified
|
||||
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
|
||||
.syntax divided
|
||||
@@ -1,43 +0,0 @@
|
||||
.syntax unified
|
||||
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
|
||||
.syntax divided
|
||||
@@ -1,25 +0,0 @@
|
||||
.syntax unified
|
||||
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
|
||||
.syntax divided
|
||||
@@ -1,65 +0,0 @@
|
||||
.syntax unified
|
||||
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
|
||||
.syntax divided
|
||||
@@ -1,40 +0,0 @@
|
||||
.syntax unified
|
||||
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
|
||||
.syntax divided
|
||||
@@ -1,12 +0,0 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
ldr r2, _08058EE0 @ =gUnk_08108314
|
||||
ldrb r1, [r0, #0xa]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08058EE0: .4byte gUnk_08108314
|
||||
.syntax divided
|
||||
@@ -1,19 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x1d
|
||||
adds r1, r4, #0
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
movs r0, #0
|
||||
adds r1, r4, #0
|
||||
movs r2, #2
|
||||
bl SetTileType
|
||||
subs r4, #0x40
|
||||
movs r0, #0
|
||||
adds r1, r4, #0
|
||||
movs r2, #2
|
||||
bl SetTileType
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,31 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
adds r0, r2, #0
|
||||
bl CheckRoomFlag
|
||||
cmp r0, #0
|
||||
bne _08058F80
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
movs r2, #1
|
||||
bl sub_080002A8
|
||||
cmp r0, #0x61
|
||||
bne _08058F80
|
||||
lsrs r1, r4, #4
|
||||
movs r2, #0x3f
|
||||
ands r1, r2
|
||||
lsrs r0, r5, #4
|
||||
ands r0, r2
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
movs r0, #0x26
|
||||
movs r2, #1
|
||||
bl SetTileType
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
bl sub_08058F84
|
||||
_08058F80:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,23 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
movs r0, #0x21
|
||||
movs r1, #0
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _08058FA8
|
||||
ldr r0, _08058FAC @ =gRoomControls
|
||||
ldrh r1, [r0, #6]
|
||||
adds r1, r1, r4
|
||||
strh r1, [r2, #0x2e]
|
||||
ldrh r0, [r0, #8]
|
||||
adds r0, r0, r5
|
||||
strh r0, [r2, #0x32]
|
||||
_08058FA8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08058FAC: .4byte gRoomControls
|
||||
.syntax divided
|
||||
@@ -1,26 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0
|
||||
movs r1, #0x53
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _0805908E
|
||||
movs r0, #2
|
||||
strb r0, [r2, #0xe]
|
||||
ldr r1, _08059090 @ =gRoomControls
|
||||
ldrh r0, [r1, #6]
|
||||
ldrh r3, [r4, #0x38]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r2, #0x2e]
|
||||
ldrh r0, [r1, #8]
|
||||
ldrh r4, [r4, #0x3a]
|
||||
adds r0, r0, r4
|
||||
strh r0, [r2, #0x32]
|
||||
_0805908E:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08059090: .4byte gRoomControls
|
||||
.syntax divided
|
||||
@@ -1,37 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
movs r5, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080590B6
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x60
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _080590CC
|
||||
movs r0, #0x5f
|
||||
bl SetLocalFlag
|
||||
b _080590C8
|
||||
_080590B6:
|
||||
movs r0, #0x60
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
beq _080590C8
|
||||
movs r0, #0x5f
|
||||
bl ClearLocalFlag
|
||||
movs r5, #1
|
||||
_080590C8:
|
||||
cmp r5, #0
|
||||
beq _080590D8
|
||||
_080590CC:
|
||||
ldr r0, _080590DC @ =gUnk_080F4B88
|
||||
bl LoadRoomEntityList
|
||||
adds r0, r4, #0
|
||||
bl DeleteManager
|
||||
_080590D8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080590DC: .4byte gUnk_080F4B88
|
||||
.syntax divided
|
||||
@@ -1,34 +0,0 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r0, [r1, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080590F6
|
||||
movs r0, #1
|
||||
strb r0, [r1, #0xc]
|
||||
adds r0, r1, #0
|
||||
movs r1, #6
|
||||
bl sub_0805E3A0
|
||||
_080590F6:
|
||||
movs r0, #0x6c
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
beq _0805911A
|
||||
movs r0, #0x4b
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
beq _08059112
|
||||
movs r0, #0x4a
|
||||
bl SetLocalFlag
|
||||
b _08059120
|
||||
_08059112:
|
||||
movs r0, #0x4a
|
||||
bl ClearLocalFlag
|
||||
b _08059120
|
||||
_0805911A:
|
||||
movs r0, #0x4a
|
||||
bl ClearLocalFlag
|
||||
_08059120:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,13 +0,0 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
movs r0, #9
|
||||
movs r1, #0xf
|
||||
movs r2, #6
|
||||
bl FindEntityByID
|
||||
cmp r0, #0
|
||||
beq _0805928C
|
||||
bl ManagerF_Main
|
||||
_0805928C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,11 +0,0 @@
|
||||
.syntax unified
|
||||
movs r1, #1
|
||||
strb r1, [r0, #0xc]
|
||||
ldr r1, _0805929C @ =gRoomControls
|
||||
ldr r0, _080592A0 @ =gPlayerEntity
|
||||
str r0, [r1, #0x30]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0805929C: .4byte gRoomControls
|
||||
_080592A0: .4byte gPlayerEntity
|
||||
.syntax divided
|
||||
@@ -1,34 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080592C8
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrh r0, [r4, #0x3e]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _080592EA
|
||||
adds r0, r4, #0
|
||||
bl sub_080592EC
|
||||
bl DeleteThisEntity
|
||||
b _080592EA
|
||||
_080592C8:
|
||||
ldrh r0, [r4, #0x3e]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _080592EA
|
||||
adds r0, r4, #0
|
||||
bl sub_080592EC
|
||||
adds r0, r4, #0
|
||||
bl sub_0805930C
|
||||
.ifndef EU
|
||||
movs r0, #0xb7
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
.endif
|
||||
bl DeleteThisEntity
|
||||
_080592EA:
|
||||
pop {r4, pc}
|
||||
.syntax divided
|
||||
@@ -1,17 +0,0 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrh r0, [r1, #0x38]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x14
|
||||
movs r2, #0x3f
|
||||
ands r0, r2
|
||||
ldrh r1, [r1, #0x3a]
|
||||
lsls r1, r1, #0x10
|
||||
asrs r1, r1, #0x14
|
||||
ands r1, r2
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
bl SetDirtTile
|
||||
pop {pc}
|
||||
.syntax divided
|
||||
@@ -1,32 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0xf
|
||||
movs r1, #0x43
|
||||
.ifdef EU
|
||||
movs r2, #0x0
|
||||
.else
|
||||
movs r2, #0x40
|
||||
.endif
|
||||
bl CreateObject
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _0805933A
|
||||
ldr r1, _0805933C @ =gRoomControls
|
||||
ldrh r0, [r1, #6]
|
||||
ldrh r3, [r4, #0x38]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r2, #0x2e]
|
||||
ldrh r0, [r1, #8]
|
||||
ldrh r4, [r4, #0x3a]
|
||||
adds r0, r0, r4
|
||||
strh r0, [r2, #0x32]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x38
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0805933A:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0805933C: .4byte gRoomControls
|
||||
.syntax divided
|
||||
@@ -1,18 +0,0 @@
|
||||
.syntax unified
|
||||
push {lr}
|
||||
adds r2, r0, #0
|
||||
movs r0, #1
|
||||
strb r0, [r2, #0xc]
|
||||
ldr r1, _08059388 @ =gCurrentTextBox
|
||||
ldrh r0, [r2, #0x3c]
|
||||
ldrh r1, [r1, #0x28]
|
||||
cmp r0, r1
|
||||
bne _08059384
|
||||
ldrh r0, [r2, #0x3e]
|
||||
bl SetFlag
|
||||
bl DeleteThisEntity
|
||||
_08059384:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08059388: .4byte gCurrentTextBox
|
||||
.syntax divided
|
||||
@@ -1,33 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080593CC
|
||||
cmp r0, #0
|
||||
beq _080593C8
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #7
|
||||
bls _080593CA
|
||||
movs r1, #0x38
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r2, _080593C4 @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
movs r3, #0x3a
|
||||
ldrsh r1, [r4, r3]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r1, r1, r2
|
||||
movs r2, #0xff
|
||||
movs r3, #0xa
|
||||
bl sub_080806BC
|
||||
b _080593CA
|
||||
.align 2, 0
|
||||
_080593C4: .4byte gRoomControls
|
||||
_080593C8:
|
||||
strb r0, [r4, #0xe]
|
||||
_080593CA:
|
||||
pop {r4, pc}
|
||||
.syntax divided
|
||||
@@ -1,42 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrh r0, [r4, #0x3e]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _08059436
|
||||
bl DeleteThisEntity
|
||||
_08059436:
|
||||
ldrh r0, [r4, #0x3c]
|
||||
bl CheckFlags
|
||||
cmp r0, #0
|
||||
beq _08059476
|
||||
movs r0, #0xf
|
||||
movs r1, #0x35
|
||||
movs r2, #0
|
||||
bl CreateObject
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _08059476
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x38
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
ldr r1, _08059478 @ =gRoomControls
|
||||
ldrh r0, [r1, #6]
|
||||
ldrh r3, [r4, #0x38]
|
||||
adds r0, r0, r3
|
||||
strh r0, [r2, #0x2e]
|
||||
ldrh r0, [r1, #8]
|
||||
ldrh r4, [r4, #0x3a]
|
||||
adds r0, r0, r4
|
||||
strh r0, [r2, #0x32]
|
||||
movs r0, #0xd8
|
||||
lsls r0, r0, #1
|
||||
bl EnqueueSFX
|
||||
bl DeleteThisEntity
|
||||
_08059476:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08059478: .4byte gRoomControls
|
||||
.syntax divided
|
||||
@@ -41,5 +41,4 @@ _080594D2:
|
||||
.align 2, 0
|
||||
_080594D4: .4byte gUnk_08108380
|
||||
_080594D8: .4byte gPlayerEntity
|
||||
.ifndef EU
|
||||
.syntax divided
|
||||
|
||||
@@ -48,5 +48,4 @@ _08059540:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08059544: .4byte gArea
|
||||
.endif
|
||||
.syntax divided
|
||||
|
||||
+3
-1
@@ -45,7 +45,9 @@ typedef struct {
|
||||
u8 field_0x8;
|
||||
u8 field_0x9;
|
||||
u8 unk2;
|
||||
u8 filler2[5];
|
||||
u8 filler2;
|
||||
u16 field_0xc;
|
||||
u8 filler3[2];
|
||||
u8 unk_10[4];
|
||||
u32 roomFlags;
|
||||
u32 unk3;
|
||||
|
||||
+13
-13
@@ -40,7 +40,6 @@ 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;
|
||||
@@ -87,22 +86,23 @@ void sub_08059A58(Manager12* this) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#define COMMON(tmp2, tmp1) ((tmp2) >> 4 & 0x3f) | (((tmp1)+0x188U) >> 4 & 0x3f) << 6
|
||||
#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 < 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);
|
||||
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);
|
||||
@@ -110,9 +110,10 @@ void sub_08059B18(void) {
|
||||
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);
|
||||
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);
|
||||
@@ -135,7 +136,6 @@ bool32 sub_08059C8C(Manager12* this, u32 param_2, u8* param_3, u16* param_4) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void sub_08059CC0(u32 param_1, u32 param_2) {
|
||||
Unknown* unknown;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#include "room.h"
|
||||
#include "object.h"
|
||||
|
||||
typedef struct{
|
||||
typedef struct {
|
||||
Manager manager;
|
||||
u32 bitfield;
|
||||
} Manager13;
|
||||
@@ -41,7 +41,7 @@ void Manager13_Main(Manager13* this) {
|
||||
while ((spawnData->x != 0) && (type2 < 0x20)) {
|
||||
u32 bitfieldFlag = 1 << type2;
|
||||
if ((((this->bitfield & bitfieldFlag) == 0) &&
|
||||
(CheckRectOnScreen(spawnData->x, spawnData->y, 0x10, 0x10) != 0))) {
|
||||
(CheckRectOnScreen(spawnData->x, spawnData->y, 0x10, 0x10) != 0))) {
|
||||
Entity* object = CreateObject(OBJECT_1C, spawnData->type, type2);
|
||||
if (object != NULL) {
|
||||
object->frameIndex = spawnData->frameIndex;
|
||||
|
||||
@@ -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[];
|
||||
|
||||
@@ -31,8 +31,7 @@ void Manager18_Main(Manager18* this) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
} else {
|
||||
if ((gUnk_0810865C[this->manager.unk_0e] != 0) &&
|
||||
(--this->manager.unk_0f == 0)) {
|
||||
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];
|
||||
|
||||
@@ -51,8 +51,7 @@ void sub_0805B448(Manager1B* this) {
|
||||
}
|
||||
|
||||
void sub_0805B474(Manager1B* this) {
|
||||
s32 tmp = ((gRoomControls.roomScrollY - gRoomControls.roomOriginY) * 0x60) /
|
||||
(gRoomControls.height - 0xa0);
|
||||
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);
|
||||
}
|
||||
@@ -79,5 +78,5 @@ void sub_0805B4D0(u32 param_1) {
|
||||
if (iVar1 < 0) {
|
||||
iVar1 = 0;
|
||||
}
|
||||
gScreen.affine.bg3yOffset = uVar2 + iVar1+gUnk_08108C44[param_1];
|
||||
gScreen.affine.bg3yOffset = uVar2 + iVar1 + gUnk_08108C44[param_1];
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ void sub_0805754C(Manager2* this) {
|
||||
bgOffset = (gRoomControls.roomScrollY - gRoomControls.roomOriginY);
|
||||
bgOffset += bgOffset >> 3;
|
||||
gScreen.affine.bg3yOffset = bgOffset & 0x3f;
|
||||
gScreen.affine.bg3Tilemap = gMapDataTopSpecial + (bgOffset/0x40) * 0x200;
|
||||
gScreen.affine.bg3Tilemap = gMapDataTopSpecial + (bgOffset / 0x40) * 0x200;
|
||||
if (this->field_0x38 != gScreen.affine.bg3Tilemap) {
|
||||
this->field_0x38 = gScreen.affine.bg3Tilemap;
|
||||
gScreen.affine.bg3Updated = 1;
|
||||
@@ -42,7 +42,7 @@ void sub_0805754C(Manager2* this) {
|
||||
bgOffset = (gRoomControls.roomScrollY - gRoomControls.roomOriginY);
|
||||
bgOffset += bgOffset >> 2;
|
||||
gScreen.bg.bg1yOffset = bgOffset & 0x3f;
|
||||
gScreen.bg.bg1Tilemap = gMapDataTopSpecial + 0x2000+ (bgOffset/0x40) * 0x200;
|
||||
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;
|
||||
@@ -55,14 +55,14 @@ void sub_080575C8(u32 param) {
|
||||
gUnk_0200B650 = 0;
|
||||
*(u16*)0x4000000 = 0;
|
||||
LoadGfxGroup(param);
|
||||
gRoomVars.unk_10 = 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.bg3Control = 0x1d49;
|
||||
gScreen.affine.bg3Updated = 1;
|
||||
|
||||
bgOffset = (gRoomControls.roomScrollY - gRoomControls.roomOriginY);
|
||||
@@ -83,7 +83,7 @@ void sub_08057688(void) {
|
||||
}
|
||||
|
||||
void sub_080576A0(Manager2* this) {
|
||||
LoadGfxGroup(gRoomVars.unk_10);
|
||||
LoadGfxGroup(gRoomVars.unk_10[0]);
|
||||
this->field_0x38 = NULL;
|
||||
this->field_0x3c = NULL;
|
||||
sub_0805754C(this);
|
||||
|
||||
@@ -22,7 +22,8 @@ typedef struct {
|
||||
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.
|
||||
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;
|
||||
|
||||
+8
-12
@@ -46,7 +46,7 @@ void sub_0805BC8C(Manager23* this) {
|
||||
}
|
||||
|
||||
void sub_0805BCD4(Manager23* this) {
|
||||
switch(this->manager.action) {
|
||||
switch (this->manager.action) {
|
||||
case 0:
|
||||
this->manager.action = 1;
|
||||
this->manager.unk_0f = 0x1e;
|
||||
@@ -76,8 +76,8 @@ void sub_0805BD5C(Manager23* this) {
|
||||
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->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) {
|
||||
@@ -88,7 +88,6 @@ void sub_0805BD5C(Manager23* this) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void sub_0805BDB4(Manager23* this) {
|
||||
u8 bVar1;
|
||||
u16 uVar2;
|
||||
@@ -99,8 +98,8 @@ void sub_0805BDB4(Manager23* this) {
|
||||
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->field_0x20 =
|
||||
((s16)this->field_0x38 >> 4 & 0x3fU) | (((s32)(this->field_0x3a << 0x10) >> 0x14 & 0x3fU) << 6);
|
||||
this->manager.action = 1;
|
||||
break;
|
||||
|
||||
@@ -135,15 +134,12 @@ void sub_0805BDB4(Manager23* this) {
|
||||
|
||||
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->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,
|
||||
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();
|
||||
@@ -152,7 +148,7 @@ void sub_0805BE94(Manager23* this) {
|
||||
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;
|
||||
*(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;
|
||||
|
||||
@@ -29,9 +29,8 @@ void Manager31_Main(Manager31* this) {
|
||||
|
||||
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_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);
|
||||
@@ -48,13 +47,11 @@ void Manager31_Main(Manager31* this) {
|
||||
if (CheckGlobalFlag(LV3_CLEAR) != 0) {
|
||||
SetGlobalFlag(GORON_KAKERA_LV4);
|
||||
goto clearGlobalFlags;
|
||||
|
||||
}
|
||||
} else {
|
||||
if (CheckGlobalFlag(GORON_KAKERA_LV5) == 0
|
||||
&& CheckGlobalFlag(LV4_CLEAR) != 0) {
|
||||
if (CheckGlobalFlag(GORON_KAKERA_LV5) == 0 && CheckGlobalFlag(LV4_CLEAR) != 0) {
|
||||
SetGlobalFlag(GORON_KAKERA_LV5);
|
||||
clearGlobalFlags:
|
||||
clearGlobalFlags:
|
||||
ClearGlobalFlag(GORON_KAKERA_L);
|
||||
ClearGlobalFlag(GORON_KAKERA_M);
|
||||
ClearGlobalFlag(GORON_KAKERA_R);
|
||||
@@ -70,7 +67,8 @@ clearGlobalFlags:
|
||||
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);
|
||||
Entity* object =
|
||||
CreateObject(SHOP_ITEM, 0x5c, ((s32)Random() % spawnData->maxType) + spawnData->minType);
|
||||
if (object != NULL) {
|
||||
object->actionDelay = 1;
|
||||
object->field_0xf = count;
|
||||
@@ -91,7 +89,7 @@ clearGlobalFlags:
|
||||
if (CheckGlobalFlag(GORON_KAKERA_L + count) == 0) {
|
||||
if ((s8)this->itemActive[count] >= FALSE) {
|
||||
} else {
|
||||
SetGlobalFlag(GORON_KAKERA_L + count);
|
||||
SetGlobalFlag(GORON_KAKERA_L + count);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+175
-8
@@ -1,17 +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"
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager32/Manager32_Main.inc", void Manager32_Main())
|
||||
typedef struct {
|
||||
Manager manager;
|
||||
u32 field_0x20;
|
||||
u32 field_0x24;
|
||||
u32 field_0x28;
|
||||
} Manager32;
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager32/sub_0805D7DC.inc", void sub_0805D7DC())
|
||||
extern void (*const gUnk_08108D7C[])(Manager32*);
|
||||
void sub_0805D9D8(Manager32*);
|
||||
void sub_0805DA08(u32, u32, u32);
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager32/sub_0805D860.inc", void sub_0805D860())
|
||||
extern void sub_080528F0();
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager32/sub_0805D900.inc", void sub_0805D900())
|
||||
extern u8 gUnk_08108D74[];
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager32/sub_0805D98C.inc", void sub_0805D98C())
|
||||
extern struct BgAffineDstData gUnk_02017AA0[];
|
||||
extern u8 gUnk_03003DE4[0xC];
|
||||
extern void sub_0805622C(struct BgAffineDstData*, u32, u32);
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager32/sub_0805D9D8.inc", void sub_0805D9D8())
|
||||
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);
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager32/sub_0805DA08.inc", void sub_0805DA08())
|
||||
void sub_0805D7DC(Manager32* this) {
|
||||
u32 index;
|
||||
|
||||
ASM_FUNC("asm/non_matching/manager32/sub_0805DA90.inc", void sub_0805DA90())
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,10 +11,7 @@ void Manager33_Main(Manager* this) {
|
||||
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) {
|
||||
if (x < 0x20 && y < 0x20 && gPlayerEntity.height.HALF.HI < -0x18 && gPlayerState.field_0xa8 == 0x14) {
|
||||
this->action += 1;
|
||||
this->unk_0e = 0x5a;
|
||||
SoundReq(SFX_10A);
|
||||
|
||||
@@ -48,7 +48,7 @@ void sub_0805DBF0(Manager34* this) {
|
||||
|
||||
if (this->field_0x20 < 0x78) {
|
||||
if ((this->field_0x20 & 0xf) == 0) {
|
||||
SoundReq(SFX_126);
|
||||
SoundReq(SFX_126);
|
||||
}
|
||||
} else if (0xd1 >= this->field_0x20) {
|
||||
if ((this->field_0x20 & 0x1f) == 0) {
|
||||
|
||||
@@ -37,7 +37,7 @@ void sub_0805DE68(Manager* this) {
|
||||
gScreenTransition.field_0x38 = 0;
|
||||
gScreenTransition.field_0x39 = 0x0f;
|
||||
*(u8*)&gScreenTransition.field_0x3a = 0x20;
|
||||
*((u8*)&gScreenTransition.field_0x3a+1) = 0x20;
|
||||
*((u8*)&gScreenTransition.field_0x3a + 1) = 0x20;
|
||||
#if !defined(EU) && !defined(JP) && !defined(DEMO_JP)
|
||||
gSave.unk498 = 0x1194;
|
||||
#endif
|
||||
@@ -48,8 +48,8 @@ void sub_0805DEB8(Manager* this) {
|
||||
s32 distY;
|
||||
Entity* object;
|
||||
|
||||
distX = gPlayerEntity.x.HALF.HI - (gRoomControls.roomOriginX+0x88);
|
||||
distY = gPlayerEntity.y.HALF.HI - (gRoomControls.roomOriginY+0x40);
|
||||
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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -30,7 +30,7 @@ void Manager8_Main(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;
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
#include "manager.h"
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/ManagerF_Main.inc", void ManagerF_Main())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08058EE4.inc", void sub_08058EE4())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08058F44.inc", void sub_08058F44())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08058F84.inc", void sub_08058F84())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08058FB0.inc", void sub_08058FB0())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08059064.inc", void sub_08059064())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08059094.inc", void sub_08059094())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_080590E0.inc", void sub_080590E0())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08059124.inc", void sub_08059124())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_080591CC.inc", void sub_080591CC())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08059220.inc", void sub_08059220())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08059278.inc", void sub_08059278())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08059290.inc", void sub_08059290())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_080592A4.inc", void sub_080592A4())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_080592EC.inc", void sub_080592EC())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_0805930C.inc", void sub_0805930C())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/SetDirtTile.inc", void SetDirtTile())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08059368.inc", void sub_08059368())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_0805938C.inc", void sub_0805938C())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_080593CC.inc", void sub_080593CC())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08059424.inc", void sub_08059424())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_0805947C.inc", void sub_0805947C())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_080594DC.inc", void sub_080594DC())
|
||||
|
||||
ASM_FUNC("asm/non_matching/managerF/sub_08059548.inc", void sub_08059548())
|
||||
Reference in New Issue
Block a user