dampe.c OK

This commit is contained in:
theo3 2020-07-07 15:32:27 -07:00
parent c5897e647c
commit f9e9fe0141
13 changed files with 790 additions and 826 deletions

372
asm/cellOverwriteSet.s Normal file
View File

@ -0,0 +1,372 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start CellOverwriteSet
CellOverwriteSet: @ 0x0801BEF8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
mov r8, r0
ldr r7, _0801BFF0 @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #0
bne _0801BF62
movs r1, #0x2e
ldrsh r0, [r7, r1]
ldr r5, _0801BFF4 @ =gUnk_080B7B6C
ldrb r1, [r7, #0x14]
movs r2, #0xe
ands r2, r1
adds r1, r2, r5
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, r0, r1
ldr r4, _0801BFF8 @ =gRoomControls
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r6, #0x32
ldrsh r1, [r7, r6]
adds r2, #1
adds r2, r2, r5
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
adds r1, r1, r2
ldrh r2, [r4, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
mov r1, r8
adds r1, #0x38
ldrb r1, [r1]
bl GetTileType
mov r1, r8
adds r1, #0x6c
strh r0, [r1]
mov r1, r8
ldrb r0, [r1, #0xc]
adds r0, #1
strb r0, [r1, #0xc]
_0801BF62:
ldr r2, _0801BFFC @ =gLinkState
mov sb, r2
ldrb r1, [r2, #0x1a]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x1a]
ldr r6, _0801C000 @ =gUnk_03000FF0
ldrh r1, [r6]
movs r3, #0x80
lsls r3, r3, #1
mov sl, r3
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0801C074
ldrh r1, [r6, #2]
mov r0, sl
ands r0, r1
cmp r0, #0
beq _0801BFDA
movs r4, #0x2e
ldrsh r0, [r7, r4]
ldr r5, _0801BFF4 @ =gUnk_080B7B6C
mov sb, r5
ldrb r1, [r7, #0x14]
movs r2, #0xe
ands r2, r1
adds r1, r2, r5
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, r0, r1
ldr r4, _0801BFF8 @ =gRoomControls
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r7, r5]
adds r2, #1
add r2, sb
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
adds r1, r1, r2
ldrh r2, [r4, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
mov r1, r8
adds r1, #0x38
ldrb r1, [r1]
bl GetTileType
mov r1, r8
adds r1, #0x6c
strh r0, [r1]
_0801BFDA:
ldrh r3, [r6]
mov r0, sl
ands r0, r3
adds r4, r3, #0
cmp r0, #0
beq _0801C004
adds r1, r7, #0
adds r1, #0x3d
movs r0, #2
strb r0, [r1]
b _0801C0D4
.align 2, 0
_0801BFF0: .4byte gLinkEntity
_0801BFF4: .4byte gUnk_080B7B6C
_0801BFF8: .4byte gRoomControls
_0801BFFC: .4byte gLinkState
_0801C000: .4byte gUnk_03000FF0
_0801C004:
ldrh r2, [r6, #2]
movs r6, #0x10
adds r0, r6, #0
ands r0, r2
cmp r0, #0
beq _0801C01A
mov r1, r8
adds r1, #0x6c
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
_0801C01A:
movs r5, #0x20
adds r0, r5, #0
ands r0, r2
cmp r0, #0
beq _0801C02E
mov r1, r8
adds r1, #0x6c
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0801C02E:
movs r0, #0x30
ands r0, r4
cmp r0, #0
beq _0801C06E
mov r1, r8
ldrb r0, [r1, #0xf]
adds r0, #1
strb r0, [r1, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x1e
bls _0801C0D4
movs r0, #0x1e
strb r0, [r1, #0xf]
adds r0, r6, #0
ands r0, r4
cmp r0, #0
beq _0801C05A
adds r1, #0x6c
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
_0801C05A:
adds r0, r5, #0
ands r0, r3
cmp r0, #0
beq _0801C0D4
mov r1, r8
adds r1, #0x6c
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0801C0D4
_0801C06E:
mov r2, r8
strb r0, [r2, #0xf]
b _0801C0D4
_0801C074:
mov r0, r8
adds r0, #0x6c
ldrh r0, [r0]
movs r3, #0x2e
ldrsh r1, [r7, r3]
ldr r4, _0801C1C8 @ =gUnk_080B7B6C
mov sl, r4
ldrb r2, [r7, #0x14]
movs r3, #0xe
ands r3, r2
adds r2, r3, r4
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
adds r1, r1, r2
ldr r5, _0801C1CC @ =gRoomControls
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r7, r6]
adds r3, #1
add r3, sl
ldrb r3, [r3]
lsls r3, r3, #0x18
asrs r3, r3, #0x18
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
mov r2, r8
adds r2, #0x38
ldrb r2, [r2]
bl sub_0807B7D8
mov r0, sb
ldrb r1, [r0, #0x1a]
movs r0, #0x7f
ands r0, r1
mov r1, sb
strb r0, [r1, #0x1a]
bl DeleteThisEntity
_0801C0D4:
ldr r0, _0801C1D0 @ =gUnk_03000FF0
ldrh r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0801C1BE
movs r2, #0x6c
add r2, r8
mov sb, r2
ldrh r0, [r2]
movs r3, #0x2e
ldrsh r1, [r7, r3]
ldr r6, _0801C1C8 @ =gUnk_080B7B6C
movs r2, #0
ldrsb r2, [r6, r2]
adds r1, r1, r2
ldr r5, _0801C1CC @ =gRoomControls
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r3, #0x32
ldrsh r2, [r7, r3]
movs r3, #1
ldrsb r3, [r6, r3]
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
movs r2, #0x38
add r8, r2
mov r3, r8
ldrb r2, [r3]
bl sub_0807B7D8
mov r1, sb
ldrh r0, [r1]
movs r2, #0x2e
ldrsh r1, [r7, r2]
movs r2, #2
ldrsb r2, [r6, r2]
adds r1, r1, r2
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r2, [r7, r3]
movs r3, #3
ldrsb r3, [r6, r3]
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
mov r3, r8
ldrb r2, [r3]
bl sub_0807B7D8
mov r1, sb
ldrh r0, [r1]
movs r2, #0x2e
ldrsh r1, [r7, r2]
movs r2, #4
ldrsb r2, [r6, r2]
adds r1, r1, r2
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r2, [r7, r3]
movs r3, #5
ldrsb r3, [r6, r3]
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
mov r3, r8
ldrb r2, [r3]
bl sub_0807B7D8
mov r1, sb
ldrh r0, [r1]
movs r2, #0x2e
ldrsh r1, [r7, r2]
movs r2, #6
ldrsb r2, [r6, r2]
adds r1, r1, r2
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r2, [r7, r3]
movs r3, #7
ldrsb r3, [r6, r3]
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
mov r4, r8
ldrb r2, [r4]
bl sub_0807B7D8
_0801C1BE:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801C1C8: .4byte gUnk_080B7B6C
_0801C1CC: .4byte gRoomControls
_0801C1D0: .4byte gUnk_03000FF0

View File

@ -694,7 +694,7 @@ _08017352:
bl sub_0805E3B0
cmp r0, #0
bne _08017398
ldr r1, _08017390 @ =gUnk_080B2CE8
ldr r1, _08017390 @ =gPlayerItemFunctions
ldrb r0, [r4, #9]
lsls r0, r0, #2
adds r0, r0, r1
@ -719,7 +719,7 @@ _08017352:
subs r0, #1
b _08017396
.align 2, 0
_08017390: .4byte gUnk_080B2CE8
_08017390: .4byte gPlayerItemFunctions
_08017394:
adds r0, #1
_08017396:

View File

@ -39,8 +39,8 @@ sub_08019468: @ 0x08019468
_0801947E:
pop {pc}
thumb_func_start sub_08019480
sub_08019480: @ 0x08019480
thumb_func_start SwordBeam
SwordBeam: @ 0x08019480
push {lr}
ldr r2, _08019494 @ =gUnk_080B43F4
ldrb r1, [r0, #0xc]
@ -5027,8 +5027,8 @@ sub_0801B9F0: @ 0x0801B9F0
bl sub_08017744
pop {pc}
thumb_func_start sub_0801BA00
sub_0801BA00: @ 0x0801BA00
thumb_func_start SwordSpin
SwordSpin: @ 0x0801BA00
push {lr}
ldr r2, _0801BA14 @ =gUnk_080B7870
ldrb r1, [r0, #0xc]
@ -5620,558 +5620,4 @@ _0801BEEE:
pop {r4, pc}
.align 2, 0
_0801BEF0: .4byte gLinkEntity
_0801BEF4: .4byte gUnk_080B7878
thumb_func_start sub_0801BEF8
sub_0801BEF8: @ 0x0801BEF8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
mov r8, r0
ldr r7, _0801BFF0 @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #0
bne _0801BF62
movs r1, #0x2e
ldrsh r0, [r7, r1]
ldr r5, _0801BFF4 @ =gUnk_080B7B6C
ldrb r1, [r7, #0x14]
movs r2, #0xe
ands r2, r1
adds r1, r2, r5
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, r0, r1
ldr r4, _0801BFF8 @ =gRoomControls
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r6, #0x32
ldrsh r1, [r7, r6]
adds r2, #1
adds r2, r2, r5
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
adds r1, r1, r2
ldrh r2, [r4, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
mov r1, r8
adds r1, #0x38
ldrb r1, [r1]
bl GetTileType
mov r1, r8
adds r1, #0x6c
strh r0, [r1]
mov r1, r8
ldrb r0, [r1, #0xc]
adds r0, #1
strb r0, [r1, #0xc]
_0801BF62:
ldr r2, _0801BFFC @ =gLinkState
mov sb, r2
ldrb r1, [r2, #0x1a]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x1a]
ldr r6, _0801C000 @ =gUnk_03000FF0
ldrh r1, [r6]
movs r3, #0x80
lsls r3, r3, #1
mov sl, r3
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0801C074
ldrh r1, [r6, #2]
mov r0, sl
ands r0, r1
cmp r0, #0
beq _0801BFDA
movs r4, #0x2e
ldrsh r0, [r7, r4]
ldr r5, _0801BFF4 @ =gUnk_080B7B6C
mov sb, r5
ldrb r1, [r7, #0x14]
movs r2, #0xe
ands r2, r1
adds r1, r2, r5
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, r0, r1
ldr r4, _0801BFF8 @ =gRoomControls
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r7, r5]
adds r2, #1
add r2, sb
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
adds r1, r1, r2
ldrh r2, [r4, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
mov r1, r8
adds r1, #0x38
ldrb r1, [r1]
bl GetTileType
mov r1, r8
adds r1, #0x6c
strh r0, [r1]
_0801BFDA:
ldrh r3, [r6]
mov r0, sl
ands r0, r3
adds r4, r3, #0
cmp r0, #0
beq _0801C004
adds r1, r7, #0
adds r1, #0x3d
movs r0, #2
strb r0, [r1]
b _0801C0D4
.align 2, 0
_0801BFF0: .4byte gLinkEntity
_0801BFF4: .4byte gUnk_080B7B6C
_0801BFF8: .4byte gRoomControls
_0801BFFC: .4byte gLinkState
_0801C000: .4byte gUnk_03000FF0
_0801C004:
ldrh r2, [r6, #2]
movs r6, #0x10
adds r0, r6, #0
ands r0, r2
cmp r0, #0
beq _0801C01A
mov r1, r8
adds r1, #0x6c
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
_0801C01A:
movs r5, #0x20
adds r0, r5, #0
ands r0, r2
cmp r0, #0
beq _0801C02E
mov r1, r8
adds r1, #0x6c
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
_0801C02E:
movs r0, #0x30
ands r0, r4
cmp r0, #0
beq _0801C06E
mov r1, r8
ldrb r0, [r1, #0xf]
adds r0, #1
strb r0, [r1, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x1e
bls _0801C0D4
movs r0, #0x1e
strb r0, [r1, #0xf]
adds r0, r6, #0
ands r0, r4
cmp r0, #0
beq _0801C05A
adds r1, #0x6c
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
_0801C05A:
adds r0, r5, #0
ands r0, r3
cmp r0, #0
beq _0801C0D4
mov r1, r8
adds r1, #0x6c
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b _0801C0D4
_0801C06E:
mov r2, r8
strb r0, [r2, #0xf]
b _0801C0D4
_0801C074:
mov r0, r8
adds r0, #0x6c
ldrh r0, [r0]
movs r3, #0x2e
ldrsh r1, [r7, r3]
ldr r4, _0801C1C8 @ =gUnk_080B7B6C
mov sl, r4
ldrb r2, [r7, #0x14]
movs r3, #0xe
ands r3, r2
adds r2, r3, r4
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
adds r1, r1, r2
ldr r5, _0801C1CC @ =gRoomControls
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r7, r6]
adds r3, #1
add r3, sl
ldrb r3, [r3]
lsls r3, r3, #0x18
asrs r3, r3, #0x18
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
mov r2, r8
adds r2, #0x38
ldrb r2, [r2]
bl sub_0807B7D8
mov r0, sb
ldrb r1, [r0, #0x1a]
movs r0, #0x7f
ands r0, r1
mov r1, sb
strb r0, [r1, #0x1a]
bl DeleteThisEntity
_0801C0D4:
ldr r0, _0801C1D0 @ =gUnk_03000FF0
ldrh r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0801C1BE
movs r2, #0x6c
add r2, r8
mov sb, r2
ldrh r0, [r2]
movs r3, #0x2e
ldrsh r1, [r7, r3]
ldr r6, _0801C1C8 @ =gUnk_080B7B6C
movs r2, #0
ldrsb r2, [r6, r2]
adds r1, r1, r2
ldr r5, _0801C1CC @ =gRoomControls
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r3, #0x32
ldrsh r2, [r7, r3]
movs r3, #1
ldrsb r3, [r6, r3]
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
movs r2, #0x38
add r8, r2
mov r3, r8
ldrb r2, [r3]
bl sub_0807B7D8
mov r1, sb
ldrh r0, [r1]
movs r2, #0x2e
ldrsh r1, [r7, r2]
movs r2, #2
ldrsb r2, [r6, r2]
adds r1, r1, r2
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r2, [r7, r3]
movs r3, #3
ldrsb r3, [r6, r3]
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
mov r3, r8
ldrb r2, [r3]
bl sub_0807B7D8
mov r1, sb
ldrh r0, [r1]
movs r2, #0x2e
ldrsh r1, [r7, r2]
movs r2, #4
ldrsb r2, [r6, r2]
adds r1, r1, r2
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r2, [r7, r3]
movs r3, #5
ldrsb r3, [r6, r3]
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
mov r3, r8
ldrb r2, [r3]
bl sub_0807B7D8
mov r1, sb
ldrh r0, [r1]
movs r2, #0x2e
ldrsh r1, [r7, r2]
movs r2, #6
ldrsb r2, [r6, r2]
adds r1, r1, r2
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r2, [r7, r3]
movs r3, #7
ldrsb r3, [r6, r3]
adds r2, r2, r3
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
mov r4, r8
ldrb r2, [r4]
bl sub_0807B7D8
_0801C1BE:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801C1C8: .4byte gUnk_080B7B6C
_0801C1CC: .4byte gRoomControls
_0801C1D0: .4byte gUnk_03000FF0
thumb_func_start sub_0801C1D4
sub_0801C1D4: @ 0x0801C1D4
push {r4, lr}
movs r4, #0
_0801C1D8:
lsls r1, r4, #5
ldr r0, _0801C200 @ =gUnk_0200AF34
adds r2, r1, r0
ldrb r1, [r2]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0801C1F8
ldrb r0, [r2, #1]
lsls r0, r0, #4
ldr r1, _0801C204 @ =gUnk_080C8F8C
adds r0, r0, r1
ldr r1, [r0, #8]
adds r0, r2, #0
bl _call_via_r1
_0801C1F8:
adds r4, #1
cmp r4, #0x17
bls _0801C1D8
pop {r4, pc}
.align 2, 0
_0801C200: .4byte gUnk_0200AF34
_0801C204: .4byte gUnk_080C8F8C
thumb_func_start sub_0801C208
sub_0801C208: @ 0x0801C208
push {r4, r5, lr}
movs r5, #0
ldr r4, _0801C250 @ =gUnk_03001010
_0801C20E:
lsls r1, r5, #5
ldr r0, _0801C254 @ =gUnk_0200AF34
adds r3, r1, r0
ldrb r1, [r3]
movs r0, #3
ands r0, r1
cmp r0, #3
bne _0801C248
ldrh r0, [r3, #0xc]
strh r0, [r4]
ldrh r0, [r3, #0xe]
strh r0, [r4, #2]
ldrb r2, [r3, #1]
lsls r2, r2, #4
ldr r0, _0801C258 @ =gUnk_080C8F8C
adds r2, r2, r0
ldrh r0, [r2]
strh r0, [r4, #4]
ldrh r0, [r2, #2]
strh r0, [r4, #6]
ldrb r0, [r3, #0x18]
lsls r0, r0, #0xc
ldrh r1, [r3, #0x1a]
orrs r0, r1
strh r0, [r4, #8]
ldrh r0, [r2, #6]
ldrb r1, [r3, #0x10]
bl sub_080ADA14
_0801C248:
adds r5, #1
cmp r5, #0x17
bls _0801C20E
pop {r4, r5, pc}
.align 2, 0
_0801C250: .4byte gUnk_03001010
_0801C254: .4byte gUnk_0200AF34
_0801C258: .4byte gUnk_080C8F8C
thumb_func_start sub_0801C25C
sub_0801C25C: @ 0x0801C25C
push {r4, r5, r6, r7, lr}
movs r4, #0
ldr r5, _0801C2E4 @ =gUnk_0200AF34
adds r6, r5, #0
subs r6, #0x34
movs r7, #0xd
rsbs r7, r7, #0
ldr r3, _0801C2E8 @ =0x040000D4
_0801C26C:
lsls r0, r4, #5
adds r2, r0, r5
ldrb r1, [r2]
movs r0, #3
ands r0, r1
cmp r0, #3
bne _0801C2A8
lsls r0, r1, #0x1c
lsrs r0, r0, #0x1e
cmp r0, #1
bne _0801C2A8
adds r0, r7, #0
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r2]
ldr r0, [r2, #0x1c]
str r0, [r3]
ldrh r0, [r2, #0x1a]
lsls r0, r0, #5
ldr r1, _0801C2EC @ =0x06010000
adds r0, r0, r1
str r0, [r3, #4]
ldrb r0, [r2, #0x19]
lsls r0, r0, #3
movs r1, #0x84
lsls r1, r1, #0x18
orrs r0, r1
str r0, [r3, #8]
ldr r0, [r3, #8]
_0801C2A8:
adds r4, #1
cmp r4, #0x17
ble _0801C26C
adds r2, r6, #0
ldrb r3, [r2, #0x13]
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #0
bge _0801C2C8
movs r1, #0x7f
ands r1, r3
strb r1, [r2, #0x13]
movs r0, #0x8d
lsls r0, r0, #1
bl sub_0801C2F0
_0801C2C8:
ldrb r2, [r6, #0x14]
movs r0, #0x14
ldrsb r0, [r6, r0]
cmp r0, #0
bge _0801C2E0
movs r1, #0x7f
ands r1, r2
strb r1, [r6, #0x14]
movs r0, #0x93
lsls r0, r0, #1
bl sub_0801C2F0
_0801C2E0:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801C2E4: .4byte gUnk_0200AF34
_0801C2E8: .4byte 0x040000D4
_0801C2EC: .4byte 0x06010000
thumb_func_start sub_0801C2F0
sub_0801C2F0: @ 0x0801C2F0
push {r4, r5, lr}
adds r4, r0, #0
adds r0, r1, #0
lsls r5, r4, #5
ldr r1, _0801C330 @ =0x06010000
adds r4, r5, r1
movs r1, #0xa
bl Div
cmp r0, #9
bls _0801C308
movs r0, #9
_0801C308:
ldr r2, _0801C334 @ =0x040000D4
lsls r0, r0, #5
ldr r3, _0801C338 @ =gUnk_085C4620
adds r0, r0, r3
str r0, [r2]
str r4, [r2, #4]
ldr r4, _0801C33C @ =0x84000008
str r4, [r2, #8]
ldr r0, [r2, #8]
adds r1, #0xa
lsls r1, r1, #5
adds r1, r1, r3
str r1, [r2]
ldr r1, _0801C340 @ =0x06010020
adds r0, r5, r1
str r0, [r2, #4]
str r4, [r2, #8]
ldr r0, [r2, #8]
pop {r4, r5, pc}
.align 2, 0
_0801C330: .4byte 0x06010000
_0801C334: .4byte 0x040000D4
_0801C338: .4byte gUnk_085C4620
_0801C33C: .4byte 0x84000008
_0801C340: .4byte 0x06010020
_0801BEF4: .4byte gUnk_080B7878

196
asm/code_0801C1D4.s Normal file
View File

@ -0,0 +1,196 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0801C1D4
sub_0801C1D4: @ 0x0801C1D4
push {r4, lr}
movs r4, #0
_0801C1D8:
lsls r1, r4, #5
ldr r0, _0801C200 @ =gUnk_0200AF34
adds r2, r1, r0
ldrb r1, [r2]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0801C1F8
ldrb r0, [r2, #1]
lsls r0, r0, #4
ldr r1, _0801C204 @ =gUnk_080C8F8C
adds r0, r0, r1
ldr r1, [r0, #8]
adds r0, r2, #0
bl _call_via_r1
_0801C1F8:
adds r4, #1
cmp r4, #0x17
bls _0801C1D8
pop {r4, pc}
.align 2, 0
_0801C200: .4byte gUnk_0200AF34
_0801C204: .4byte gUnk_080C8F8C
thumb_func_start sub_0801C208
sub_0801C208: @ 0x0801C208
push {r4, r5, lr}
movs r5, #0
ldr r4, _0801C250 @ =gUnk_03001010
_0801C20E:
lsls r1, r5, #5
ldr r0, _0801C254 @ =gUnk_0200AF34
adds r3, r1, r0
ldrb r1, [r3]
movs r0, #3
ands r0, r1
cmp r0, #3
bne _0801C248
ldrh r0, [r3, #0xc]
strh r0, [r4]
ldrh r0, [r3, #0xe]
strh r0, [r4, #2]
ldrb r2, [r3, #1]
lsls r2, r2, #4
ldr r0, _0801C258 @ =gUnk_080C8F8C
adds r2, r2, r0
ldrh r0, [r2]
strh r0, [r4, #4]
ldrh r0, [r2, #2]
strh r0, [r4, #6]
ldrb r0, [r3, #0x18]
lsls r0, r0, #0xc
ldrh r1, [r3, #0x1a]
orrs r0, r1
strh r0, [r4, #8]
ldrh r0, [r2, #6]
ldrb r1, [r3, #0x10]
bl sub_080ADA14
_0801C248:
adds r5, #1
cmp r5, #0x17
bls _0801C20E
pop {r4, r5, pc}
.align 2, 0
_0801C250: .4byte gUnk_03001010
_0801C254: .4byte gUnk_0200AF34
_0801C258: .4byte gUnk_080C8F8C
thumb_func_start sub_0801C25C
sub_0801C25C: @ 0x0801C25C
push {r4, r5, r6, r7, lr}
movs r4, #0
ldr r5, _0801C2E4 @ =gUnk_0200AF34
adds r6, r5, #0
subs r6, #0x34
movs r7, #0xd
rsbs r7, r7, #0
ldr r3, _0801C2E8 @ =0x040000D4
_0801C26C:
lsls r0, r4, #5
adds r2, r0, r5
ldrb r1, [r2]
movs r0, #3
ands r0, r1
cmp r0, #3
bne _0801C2A8
lsls r0, r1, #0x1c
lsrs r0, r0, #0x1e
cmp r0, #1
bne _0801C2A8
adds r0, r7, #0
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r2]
ldr r0, [r2, #0x1c]
str r0, [r3]
ldrh r0, [r2, #0x1a]
lsls r0, r0, #5
ldr r1, _0801C2EC @ =0x06010000
adds r0, r0, r1
str r0, [r3, #4]
ldrb r0, [r2, #0x19]
lsls r0, r0, #3
movs r1, #0x84
lsls r1, r1, #0x18
orrs r0, r1
str r0, [r3, #8]
ldr r0, [r3, #8]
_0801C2A8:
adds r4, #1
cmp r4, #0x17
ble _0801C26C
adds r2, r6, #0
ldrb r3, [r2, #0x13]
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #0
bge _0801C2C8
movs r1, #0x7f
ands r1, r3
strb r1, [r2, #0x13]
movs r0, #0x8d
lsls r0, r0, #1
bl sub_0801C2F0
_0801C2C8:
ldrb r2, [r6, #0x14]
movs r0, #0x14
ldrsb r0, [r6, r0]
cmp r0, #0
bge _0801C2E0
movs r1, #0x7f
ands r1, r2
strb r1, [r6, #0x14]
movs r0, #0x93
lsls r0, r0, #1
bl sub_0801C2F0
_0801C2E0:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801C2E4: .4byte gUnk_0200AF34
_0801C2E8: .4byte 0x040000D4
_0801C2EC: .4byte 0x06010000
thumb_func_start sub_0801C2F0
sub_0801C2F0: @ 0x0801C2F0
push {r4, r5, lr}
adds r4, r0, #0
adds r0, r1, #0
lsls r5, r4, #5
ldr r1, _0801C330 @ =0x06010000
adds r4, r5, r1
movs r1, #0xa
bl Div
cmp r0, #9
bls _0801C308
movs r0, #9
_0801C308:
ldr r2, _0801C334 @ =0x040000D4
lsls r0, r0, #5
ldr r3, _0801C338 @ =gUnk_085C4620
adds r0, r0, r3
str r0, [r2]
str r4, [r2, #4]
ldr r4, _0801C33C @ =0x84000008
str r4, [r2, #8]
ldr r0, [r2, #8]
adds r1, #0xa
lsls r1, r1, #5
adds r1, r1, r3
str r1, [r2]
ldr r1, _0801C340 @ =0x06010020
adds r0, r5, r1
str r0, [r2, #4]
str r4, [r2, #8]
ldr r0, [r2, #8]
pop {r4, r5, pc}
.align 2, 0
_0801C330: .4byte 0x06010000
_0801C334: .4byte 0x040000D4
_0801C338: .4byte gUnk_085C4620
_0801C33C: .4byte 0x84000008
_0801C340: .4byte 0x06010020

View File

@ -434,8 +434,8 @@ _08056324:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08056328
sub_08056328: @ 0x08056328
thumb_func_start NulledItem
NulledItem: @ 0x08056328
push {lr}
bl DeleteThisEntity
pop {pc}

View File

@ -4331,8 +4331,8 @@ sub_080752E8: @ 0x080752E8
.align 2, 0
_080752FC: .4byte gItemFunctions
thumb_func_start CellOverwriteSet
CellOverwriteSet: @ 0x08075300
thumb_func_start DebugItem
DebugItem: @ 0x08075300
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0

View File

@ -1,245 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start Dampe
Dampe: @ 0x0806BDAC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _0806BDE6
cmp r0, #1
bgt _0806BDC0
cmp r0, #0
beq _0806BDC6
b _0806BE3A
_0806BDC0:
cmp r0, #2
beq _0806BE26
b _0806BE3A
_0806BDC6:
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
adds r0, r4, #0
movs r1, #2
bl sub_0805E3A0
adds r0, r4, #0
bl sub_0807DD50
b _0806BE3A
_0806BDE6:
adds r2, r4, #0
adds r2, #0x39
movs r1, #0
ldrsb r1, [r2, r1]
cmp r1, #2
bne _0806BE1C
movs r0, #0
strb r1, [r4, #0xc]
strb r0, [r2]
ldr r1, _0806BE18 @ =gLinkEntity
adds r0, r4, #0
bl sub_080045C4
bl sub_0806F5A4
adds r1, r0, #0
adds r1, #4
adds r0, r4, #0
bl InitAnimationForceUpdate
adds r0, r4, #0
bl sub_0806F118
b _0806BE3A
.align 2, 0
_0806BE18: .4byte gLinkEntity
_0806BE1C:
adds r0, r4, #0
movs r1, #0
bl sub_0807DD94
b _0806BE3A
_0806BE26:
adds r0, r4, #0
bl UpdateAnimationSingleFrame
adds r0, r4, #0
bl UpdateFuseInteraction
cmp r0, #0
beq _0806BE3A
movs r0, #1
strb r0, [r4, #0xc]
_0806BE3A:
pop {r4, pc}
thumb_func_start sub_0806BE3C
sub_0806BE3C: @ 0x0806BE3C
push {r4, lr}
adds r4, r0, #0
bl sub_0801E99C
adds r1, r4, #0
adds r1, #0x68
strb r0, [r1]
ldrb r1, [r1]
adds r0, r4, #0
bl sub_08078784
pop {r4, pc}
thumb_func_start Dampe_Fusion
Dampe_Fusion: @ 0x0806BE54
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xc]
cmp r0, #0
bne _0806BE7A
adds r0, #1
strb r0, [r2, #0xc]
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x18]
adds r0, r2, #0
movs r1, #2
bl InitAnimationForceUpdate
b _0806BE80
_0806BE7A:
adds r0, r2, #0
bl UpdateAnimationSingleFrame
_0806BE80:
pop {pc}
.align 2, 0
thumb_func_start sub_0806BE84
sub_0806BE84: @ 0x0806BE84
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r4, r1, #0
movs r0, #0
str r0, [r4, #0x14]
movs r5, #1
movs r0, #0x69
bl CheckLocalFlag
cmp r0, #0
bne _0806BEA6
movs r5, #0
movs r0, #0x69
bl SetLocalFlag
movs r0, #1
str r0, [r4, #0x14]
_0806BEA6:
movs r0, #0x3c
bl GetInventoryValue
cmp r0, #1
bls _0806BEB2
movs r5, #2
_0806BEB2:
ldr r0, _0806BEC4 @ =gUnk_08113344
lsls r1, r5, #1
adds r1, r1, r0
ldrh r0, [r1]
adds r1, r6, #0
bl TextboxNoOverlap
pop {r4, r5, r6, pc}
.align 2, 0
_0806BEC4: .4byte gUnk_08113344
thumb_func_start sub_0806BEC8
sub_0806BEC8: @ 0x0806BEC8
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r5, r1, #0
movs r4, #0
str r4, [r5, #0x14]
movs r0, #0x3c
bl GetInventoryValue
cmp r0, #1
bne _0806BEE2
movs r4, #1
str r4, [r5, #0x14]
b _0806BEE8
_0806BEE2:
cmp r0, #1
bls _0806BEE8
movs r4, #2
_0806BEE8:
ldr r0, _0806BEF8 @ =gUnk_0811334A
lsls r1, r4, #1
adds r1, r1, r0
ldrh r0, [r1]
adds r1, r6, #0
bl TextboxNoOverlap
pop {r4, r5, r6, pc}
.align 2, 0
_0806BEF8: .4byte gUnk_0811334A
thumb_func_start sub_0806BEFC
sub_0806BEFC: @ 0x0806BEFC
push {lr}
movs r0, #0xbf
lsls r0, r0, #1
ldr r1, _0806BF2C @ =0x0000058E
movs r2, #1
bl SetTileType
ldr r0, _0806BF30 @ =0x0000017F
ldr r1, _0806BF34 @ =0x0000058F
movs r2, #1
bl SetTileType
movs r0, #0xc0
lsls r0, r0, #1
ldr r1, _0806BF38 @ =0x000005CE
movs r2, #1
bl SetTileType
ldr r0, _0806BF3C @ =0x00000181
ldr r1, _0806BF40 @ =0x000005CF
movs r2, #1
bl SetTileType
pop {pc}
.align 2, 0
_0806BF2C: .4byte 0x0000058E
_0806BF30: .4byte 0x0000017F
_0806BF34: .4byte 0x0000058F
_0806BF38: .4byte 0x000005CE
_0806BF3C: .4byte 0x00000181
_0806BF40: .4byte 0x000005CF
thumb_func_start sub_0806BF44
sub_0806BF44: @ 0x0806BF44
push {r4, r5, lr}
adds r2, r0, #0
adds r4, r1, #0
movs r0, #0
str r0, [r4, #0x14]
movs r1, #0x2e
ldrsh r0, [r2, r1]
ldr r3, _0806BF78 @ =gRoomControls
movs r5, #0xa
ldrsh r1, [r3, r5]
subs r0, r0, r1
adds r0, #0x10
ldr r1, _0806BF7C @ =0x0000010F
cmp r0, r1
bhi _0806BF76
movs r1, #0x32
ldrsh r0, [r2, r1]
movs r2, #0xc
ldrsh r1, [r3, r2]
subs r0, r0, r1
adds r0, #0x18
cmp r0, #0xcf
bhi _0806BF76
movs r0, #1
str r0, [r4, #0x14]
_0806BF76:
pop {r4, r5, pc}
.align 2, 0
_0806BF78: .4byte gRoomControls
_0806BF7C: .4byte 0x0000010F

View File

@ -8,7 +8,4 @@ gUnk_080B2A70:: @ 080B2A70
.incbin "baserom.gba", 0x0B2A70, 0x0000268
gUnk_080B2CD8:: @ 080B2CD8
.incbin "baserom.gba", 0x0B2CD8, 0x0000010
gUnk_080B2CE8:: @ 080B2CE8
.incbin "baserom.gba", 0x0B2CE8, 0x0000064
.incbin "baserom.gba", 0x0B2CD8, 0x0000010

View File

@ -0,0 +1,61 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gPlayerItemFunctions:: @ gPlayerItemFunctions
@ replacing .incbin "baserom.gba", 0x000b2ce8, 0x64
/*0x00*/ .4byte DeleteEntity
/*0x01*/ .4byte sub_080A7544
/*0x02*/ .4byte sub_0801B188
/*0x03*/ .4byte sub_0801B45C
/*0x04*/ .4byte sub_08018FCC
/*0x05*/ .4byte sub_080A2D74
/*0x06*/ .4byte sub_08054A40
/*0x07*/ .4byte sub_08056330
/*0x08*/ .4byte sub_080ADA30
/*0x09*/ .4byte sub_080704BC
/*0x0a*/ .4byte DeleteEntity
/*0x0b*/ .4byte DeleteEntity
/*0x0c*/ .4byte sub_0801B898
/*0x0d*/ .4byte CellOverwriteSet
/*0x0e*/ .4byte SwordSpin
/*0x0f*/ .4byte SwordBeam
/*0x10*/ .4byte sub_080ACBCC
/*0x11*/ .4byte sub_08018C88
/*0x12*/ .4byte sub_080700E8
/*0x13*/ .4byte sub_080ACF14
/*0x14*/ .4byte sub_0805FBD0
/*0x15*/ .4byte sub_080A306C
/*0x16*/ .4byte SwordBeam
/*0x17*/ .4byte NulledItem
/*0x18*/ .4byte CellOverwriteSet
/*
.4byte DeleteEntity
.4byte sub_080A7544
.4byte sub_0801B188
.4byte sub_0801B45C
.4byte sub_08018FCC
.4byte sub_080A2D74
.4byte sub_08054A40
.4byte sub_08056330
.4byte sub_080ADA30
.4byte sub_080704BC
.4byte DeleteEntity
.4byte DeleteEntity
.4byte sub_0801B898
.4byte CellOverwriteSet
.4byte SwordSpin
.4byte SwordBeam
.4byte sub_080ACBCC
.4byte sub_08018C88
.4byte sub_080700E8
.4byte sub_080ACF14
.4byte sub_0805FBD0
.4byte sub_080A306C
.4byte SwordBeam
.4byte NulledItem
.4byte CellOverwriteSet
*/

View File

@ -16,7 +16,7 @@ typedef struct {
u8 unk5;
} ItemBehavior;
void extern CellOverwriteSet(ItemBehavior*, u32);
void extern DebugItem(ItemBehavior*, u32);
void extern Sword(ItemBehavior*, u32);
void extern Sword(ItemBehavior*, u32);
void extern Sword(ItemBehavior*, u32);
@ -38,11 +38,11 @@ void extern PacciCane(ItemBehavior*, u32);
void extern MoleMitts(ItemBehavior*, u32);
void extern RocsCape(ItemBehavior*, u32);
void extern sub_08076800(ItemBehavior*, u32);
void extern CellOverwriteSet(ItemBehavior*, u32);
void extern DebugItem(ItemBehavior*, u32);
void Ocarina(ItemBehavior*, u32);
void extern CellOverwriteSet(ItemBehavior*, u32);
void extern CellOverwriteSet(ItemBehavior*, u32);
void extern CellOverwriteSet(ItemBehavior*, u32);
void extern DebugItem(ItemBehavior*, u32);
void extern DebugItem(ItemBehavior*, u32);
void extern DebugItem(ItemBehavior*, u32);
void extern TryPickupObject(ItemBehavior*, u32);
void extern JarEmpty(ItemBehavior*, u32);
void extern JarEmpty(ItemBehavior*, u32);

View File

@ -303,6 +303,8 @@ SECTIONS {
asm/bowUse.o(.text);
asm/sub_08019410.o(.text);
asm/code_08019444.o(.text);
asm/cellOverwriteSet.o(.text);
asm/code_0801C1D4.o(.text);
asm/drawUI.o(.text);
asm/code_0801C370.o(.text);
asm/drawRupees.o(.text);
@ -591,7 +593,7 @@ SECTIONS {
asm/librarians.o(.text);
asm/farmers.o(.text);
asm/carlov.o(.text);
asm/dampe.o(.text);
src/dampe.o(.text);
asm/drLeft.o(.text);
asm/kingGustaf.o(.text);
asm/gina.o(.text);
@ -640,7 +642,7 @@ SECTIONS {
src/sub_0807B930.o(.text);
asm/code_0807B9B8.o(.text);
src/sub_0807C998.o(.text);
src/sub_0801D754.o(.text);
src/sub_0801D754.o(.text); /* ??? */
asm/sub_0807CA18.o(.text);
asm/getInventoryValue.o(.text);
asm/code_0807CAA0.o(.text);
@ -886,6 +888,7 @@ SECTIONS {
asm/intr.o(.text);
/* data */
data/data_080B2A70.o(.rodata);
data/playerItemFunctions.o(.rodata);
src/object.o(.rodata);
data/data_080B3054.o(.rodata);
src/npc.o(.rodata);

132
src/dampe.c Normal file
View File

@ -0,0 +1,132 @@
#include "global.h"
#include "entity.h"
#include "link.h"
#include "room.h"
extern void sub_0805E3A0(Entity*, u32);
extern void sub_0807DD50(Entity*);
extern void sub_080045C4(Entity*, Entity*);
extern void InitAnimationForceUpdate(Entity*, u32);
extern u32 sub_0806F5A4(void);
extern void sub_0806F118(Entity*);
extern void sub_0807DD94(Entity*, u32);
extern void UpdateAnimationSingleFrame(Entity*);
extern u32 UpdateFuseInteraction(Entity*);
extern u32 sub_0801E99C(void);
extern void sub_08078784(Entity*, u32);
extern u32 CheckLocalFlag(u32);
extern void SetLocalFlag(u32);
extern u32 GetInventoryValue(u32);
extern void TextboxNoOverlap(u16, Entity*);
extern void SetTileType(u32, u32, u32);
extern u16 gUnk_08113344[];
extern u16 gUnk_0811334A[];
typedef struct {
u8 filler[18];
u32 unk;
} struct_0806BE84;
void Dampe(Entity* this) {
switch (this->action) {
case 0:
this->action = 1;
this->spriteSettings.b.ss0 = 1;
sub_0805E3A0(this, 2);
sub_0807DD50(this);
return;
case 1:
if (this->interactType == 2) {
this->action = 2;
this->interactType = 0;
sub_080045C4(this, &gLinkEntity);
InitAnimationForceUpdate(this, sub_0806F5A4() + 4);
sub_0806F118(this);
} else {
sub_0807DD94(this, 0);
}
return;
case 2:
UpdateAnimationSingleFrame(this);
if (UpdateFuseInteraction(this)) {
this->action = 1;
}
default:
}
}
void sub_0806BE3C(Entity *this)
{
this->field_0x68 = sub_0801E99C();
sub_08078784(this, this->field_0x68);
}
void Dampe_Fusion(Entity *this)
{
if (this->action == 0) {
this->action++;
this->spriteSettings.b.ss0 = 1;
InitAnimationForceUpdate(this, 2);
}
else {
UpdateAnimationSingleFrame(this);
}
}
void sub_0806BE84(Entity *this, struct_0806BE84* r1)
{
u32 iVar3;
r1->unk = 0;
iVar3 = 1;
if (!CheckLocalFlag(0x69)) {
iVar3 = 0;
SetLocalFlag(0x69);
r1->unk = 1;
}
// Graveyard key
if (2 <= GetInventoryValue(0x3C)) {
iVar3 = 2;
}
TextboxNoOverlap(gUnk_08113344[iVar3], this);
}
void sub_0806BEC8(Entity *this, struct_0806BE84* r1)
{
u32 uVar1;
u32 iVar2;
iVar2 = 0;
r1->unk = 0;
uVar1 = GetInventoryValue(0x3C);
if (uVar1 == 1) {
iVar2 = 1;
r1->unk = 1;
}
else {
if (1 < uVar1) {
iVar2 = 2;
}
}
TextboxNoOverlap(gUnk_0811334A[iVar2], this);
}
void sub_0806BEFC(void)
{
SetTileType(0x17E, 0x58E, 1);
SetTileType(0x17F, 0x58F, 1);
SetTileType(0x180, 0x5cE, 1);
SetTileType(0x181, 0x5cF, 1);
}
void sub_0806BF44(Entity *this, struct_0806BE84 *r1)
{
r1->unk = 0;
if (((this->x.HALF.HI - gRoomControls.roomScrollX) + 0x10U < 0x110) &&
((this->y.HALF.HI - gRoomControls.roomScrollY) + 0x18U < 0xd0)) {
r1->unk = 1;
}
}

View File

@ -2,8 +2,10 @@
#include "entity.h"
#include "item.h"
// TODO - How does this relate to PlayerItemFunctions? Is this just a lookup table?
void (*const gItemFunctions[])(ItemBehavior*, u32) = {
CellOverwriteSet,
DebugItem,
Sword,
Sword,
Sword,
@ -25,11 +27,11 @@ void (*const gItemFunctions[])(ItemBehavior*, u32) = {
MoleMitts,
RocsCape,
sub_08076800,
CellOverwriteSet,
DebugItem,
Ocarina,
CellOverwriteSet,
CellOverwriteSet,
CellOverwriteSet,
DebugItem,
DebugItem,
DebugItem,
TryPickupObject,
JarEmpty,
JarEmpty,