Split playerItems and extract pointers

This commit is contained in:
octorock
2021-03-16 08:31:06 +01:00
parent 74b661df24
commit 626865956e
50 changed files with 8792 additions and 6006 deletions
+1 -1
View File
@@ -89,7 +89,7 @@ $(C_BUILDDIR)/eeprom.o: CFLAGS = -O1 -mthumb-interwork -Wimplicit -Wparentheses
C_SRCS := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c)
C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS))
ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s)
ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s $(ASM_SUBDIR)/*/*.s)
ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS))
DATA_ASM_SRCS := $(wildcard $(DATA_ASM_SUBDIR)/*.s $(DATA_ASM_SUBDIR)/**/*.s $(DATA_ASM_SUBDIR)/**/**/*.s)
-331
View File
@@ -6,334 +6,3 @@
.text
thumb_func_start sub_0801917C
sub_0801917C: @ 0x0801917C
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldrb r2, [r4, #0xa]
cmp r2, #0
bne _08019188
b _0801934A
_08019188:
ldr r0, [r4, #0x74]
subs r0, #1
str r0, [r4, #0x74]
cmp r0, #0
bne _0801919C
adds r0, r4, #0
bl sub_08019468
bl DeleteThisEntity
_0801919C:
adds r0, r4, #0
bl GetNextFrame
ldr r0, [r4, #0x74]
cmp r0, #0x17
bhi _080191BA
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_080191BA:
adds r0, r4, #0
bl sub_0806F69C
adds r0, r4, #0
adds r0, #0x40
ldrb r1, [r0]
movs r5, #4
adds r6, r0, #0
cmp r1, #0xe
bne _080191D0
movs r5, #1
_080191D0:
ldr r2, [r4, #0x6c]
ldr r3, [r4, #0x70]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08008782
cmp r0, #0
beq _080191EE
ldrb r0, [r6]
cmp r0, #0xe
beq _080191EA
bl DeleteThisEntity
_080191EA:
movs r7, #1
b _080191F0
_080191EE:
movs r7, #0
_080191F0:
ldrb r0, [r6]
cmp r0, #0xe
bne _0801920E
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _0801920E
adds r0, r4, #0
movs r1, #0x14
movs r2, #0
bl CreateFx
_0801920E:
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0801921A
adds r0, r4, #0
bl sub_0800451C
_0801921A:
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _08019288 @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
ldr r1, _0801928C @ =gPlayerEntity
adds r1, #0x38
ldrb r1, [r1]
movs r2, #0x80
bl sub_080002F0
cmp r0, #0
bne _080192D0
cmp r7, #0
bne _080192D0
ldr r1, _08019290 @ =gUnk_08003E44
movs r0, #0x2e
ldrsh r2, [r4, r0]
movs r5, #0x32
ldrsh r3, [r4, r5]
adds r0, r4, #0
bl sub_080040D8
cmp r0, #0
beq _080192D0
movs r0, #0x1e
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r6]
cmp r0, #0xe
bne _08019294
adds r0, r4, #0
bl sub_08019468
adds r0, r4, #0
adds r0, #0x58
ldrb r1, [r0]
adds r1, #0xf
adds r0, r4, #0
bl InitializeAnimation
b _080192A2
.align 2, 0
_08019288: .4byte gRoomControls
_0801928C: .4byte gPlayerEntity
_08019290: .4byte gUnk_08003E44
_08019294:
adds r0, r4, #0
adds r0, #0x58
ldrb r1, [r0]
adds r1, #2
adds r0, r4, #0
bl InitializeAnimation
_080192A2:
adds r0, r4, #0
bl sub_08017744
ldrb r0, [r4, #0x10]
movs r1, #0x7f
ands r1, r0
movs r0, #0
strb r1, [r4, #0x10]
strh r0, [r4, #0x24]
ldr r0, [r4, #0x2c]
cmp r0, #0
bge _080192BC
movs r0, #0
_080192BC:
str r0, [r4, #0x2c]
ldr r0, [r4, #0x30]
cmp r0, #0
bge _080192C6
movs r0, #0
_080192C6:
str r0, [r4, #0x30]
movs r0, #0xc5
lsls r0, r0, #1
bl SoundReq
_080192D0:
adds r5, r4, #0
adds r5, #0x41
ldrb r0, [r5]
cmp r0, #0
bne _080192DC
b _08019402
_080192DC:
cmp r7, #0
beq _080192E2
b _08019402
_080192E2:
ldrb r0, [r6]
cmp r0, #0xe
bne _080192EE
adds r0, r4, #0
bl sub_08019468
_080192EE:
adds r0, r4, #0
bl sub_08017744
ldrb r1, [r5]
movs r0, #0x3f
ands r0, r1
cmp r0, #0x42
bne _08019336
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #3
strb r0, [r4, #0xc]
ldrb r0, [r4, #0x15]
movs r1, #0x10
eors r0, r1
strb r0, [r4, #0x15]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
movs r0, #0x80
lsls r0, r0, #8
str r0, [r4, #0x20]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
movs r1, #6
bl InitializeAnimation
b _08019402
_08019336:
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #1
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
strb r0, [r4, #0x18]
b _08019402
_0801934A:
ldr r1, _0801938C @ =gPlayerState
ldr r0, [r1, #0x2c]
cmp r0, r4
bne _0801935E
adds r0, r1, #0
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
bne _08019368
str r0, [r1, #0x2c]
_0801935E:
adds r0, r1, #0
adds r0, #0x21
strb r2, [r0]
bl DeleteThisEntity
_08019368:
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xa
bne _08019398
ldr r0, _0801938C @ =gPlayerState
adds r2, r0, #0
adds r2, #0x21
ldrb r0, [r2]
adds r1, r0, #0
cmp r1, #0
beq _08019398
cmp r1, #0x77
bhi _08019390
adds r0, #1
strb r0, [r2]
b _08019398
.align 2, 0
_0801938C: .4byte gPlayerState
_08019390:
adds r1, r4, #0
adds r1, #0x40
movs r0, #0xe
strb r0, [r1]
_08019398:
ldr r0, _08019404 @ =gSave
adds r0, #0xad
ldrb r5, [r0]
ldrb r1, [r4, #0x1e]
ldr r2, [r4, #0x78]
subs r1, r1, r2
ldr r0, _08019408 @ =gPlayerEntity
ldrb r0, [r0, #0x1e]
cmp r1, r0
beq _080193C2
adds r0, r0, r2
strb r0, [r4, #0x1e]
cmp r5, #0
bne _080193B8
adds r0, #0x2a
strb r0, [r4, #0x1e]
_080193B8:
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_080193C2:
ldr r0, _08019408 @ =gPlayerEntity
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080193FA
cmp r5, #0
beq _080193FA
adds r0, r4, #0
adds r0, #0x40
ldrb r2, [r0]
movs r0, #4
movs r1, #1
movs r3, #9
bl CreatePlayerItem
cmp r0, #0
beq _080193FA
ldr r2, _0801940C @ =gPlayerState
ldrb r1, [r2, #4]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #4]
movs r0, #1
rsbs r0, r0, #0
bl ModArrows
_080193FA:
ldr r1, _08019408 @ =gPlayerEntity
adds r0, r4, #0
bl sub_08078E84
_08019402:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08019404: .4byte gSave
_08019408: .4byte gPlayerEntity
_0801940C: .4byte gPlayerState
+9 -1995
View File
File diff suppressed because it is too large Load Diff
+2 -226
View File
@@ -206,233 +206,9 @@ _08054A34:
_08054A38: .4byte gUnk_080FE320
_08054A3C: .4byte gUnk_0811E454
thumb_func_start PlayerItemLantern
PlayerItemLantern: @ 0x08054A40
push {r4, lr}
adds r4, r0, #0
ldr r1, _08054A5C @ =gUnk_080FEEA8
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r4, #0x41
movs r0, #0
strb r0, [r4]
pop {r4, pc}
.align 2, 0
_08054A5C: .4byte gUnk_080FEEA8
@ TODO convert .inc files into .s files and include them in linker.ld
.include "asm/playerItem/playerItemLantern.inc"
thumb_func_start sub_08054A60
sub_08054A60: @ 0x08054A60
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x10]
movs r0, #0xa0
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #4
strb r0, [r4, #0xe]
movs r0, #0xff
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4, #0x11]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
subs r1, #1
movs r0, #0x80
strb r0, [r1]
ldr r0, _08054AC4 @ =gPlayerEntity
ldrb r1, [r0, #0x14]
movs r0, #0xe
ands r0, r1
strb r0, [r4, #0x14]
adds r0, r4, #0
bl AllocMutableHitbox
cmp r0, #0
bne _08054AAC
bl DeleteThisEntity
_08054AAC:
adds r0, r4, #0
bl sub_0801766C
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_08054AC8
pop {r4, pc}
.align 2, 0
_08054AC4: .4byte gPlayerEntity
thumb_func_start sub_08054AC8
sub_08054AC8: @ 0x08054AC8
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldr r5, _08054B14 @ =gPlayerEntity
ldrb r1, [r5, #0x14]
movs r0, #0xe
ands r0, r1
strb r0, [r4, #0x14]
ldr r1, [r4, #0x48]
ldr r2, _08054B18 @ =gUnk_080FEEB0
ldrb r0, [r4, #0x14]
adds r0, r0, r2
ldrb r0, [r0]
strb r0, [r1]
ldr r1, [r4, #0x48]
ldrb r0, [r4, #0x14]
adds r0, #1
adds r0, r0, r2
ldrb r0, [r0]
strb r0, [r1, #1]
ldr r0, [r4, #0x48]
movs r1, #4
strb r1, [r0, #6]
ldr r0, [r4, #0x48]
strb r1, [r0, #7]
ldrb r7, [r5, #0x1e]
adds r6, r7, #0
cmp r6, #0x36
bhi _08054B06
ldrh r0, [r5, #0x12]
cmp r0, #6
beq _08054B1C
_08054B06:
movs r0, #0xff
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
b _08054B68
.align 2, 0
_08054B14: .4byte gPlayerEntity
_08054B18: .4byte gUnk_080FEEB0
_08054B1C:
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldrb r2, [r5, #0x18]
movs r1, #0x40
ands r1, r2
ldrb r3, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r3
orrs r0, r1
lsrs r2, r2, #7
lsls r2, r2, #7
movs r1, #0x7f
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r0, [r4, #0x1e]
cmp r6, r0
beq _08054B52
strb r7, [r4, #0x1e]
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_08054B52:
adds r0, r5, #0
adds r0, #0x5a
ldrb r0, [r0]
adds r1, r4, #0
adds r1, #0x5a
strb r0, [r1]
adds r0, r5, #0
adds r0, #0x5b
ldrb r0, [r0]
adds r1, #1
strb r0, [r1]
_08054B68:
movs r0, #0x10
bl IsItemEquipped
cmp r0, #1
bhi _08054BFC
ldrb r0, [r4, #0x1e]
cmp r0, #0xff
beq _08054BE8
ldr r0, _08054BF4 @ =gPlayerEntity
ldrb r0, [r0, #0x18]
lsls r0, r0, #0x1e
cmp r0, #0
beq _08054BE8
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08054BE8
movs r0, #4
strb r0, [r4, #0xe]
movs r0, #0x45
movs r1, #0
movs r2, #0x10
bl CreateObject
adds r5, r0, #0
cmp r5, #0
beq _08054BE8
movs r3, #0x80
lsls r3, r3, #0xa
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0
bl PositionRelative
adds r0, r4, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
adds r3, r5, #0
adds r3, #0x29
lsrs r1, r1, #0x1d
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
ldr r1, _08054BF8 @ =gUnk_080FEEB0
ldrb r0, [r4, #0x14]
adds r0, r0, r1
ldrb r0, [r0]
adds r2, r5, #0
adds r2, #0x62
strb r0, [r2]
ldrb r0, [r4, #0x14]
adds r0, #1
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r5, #0
adds r0, #0x63
strb r1, [r0]
_08054BE8:
ldr r1, _08054BF4 @ =gPlayerEntity
adds r0, r4, #0
bl sub_08078E84
b _08054C00
.align 2, 0
_08054BF4: .4byte gPlayerEntity
_08054BF8: .4byte gUnk_080FEEB0
_08054BFC:
bl DeleteThisEntity
_08054C00:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08054C04
sub_08054C04: @ 0x08054C04
+4 -604
View File
@@ -843,611 +843,11 @@ GetSpriteSubEntryOffsetDataPointer: @ 0x080700C8
bx lr
.align 2, 0
_080700E4: .4byte gUnk_089FB780
@ TODO convert .inc files into .s files and include them in linker.ld
.include "asm/playerItem/playerItem12.inc"
thumb_func_start PlayerItem12
PlayerItem12: @ 0x080700E8
push {lr}
ldr r2, _080700FC @ =gUnk_0811B98C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080700FC: .4byte gUnk_0811B98C
thumb_func_start sub_08070100
sub_08070100: @ 0x08070100
push {r4, r5, lr}
adds r5, r0, #0
movs r2, #1
movs r3, #1
strb r3, [r5, #0xc]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
ldrb r1, [r5, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r5, #0x10]
ldrb r0, [r5, #0x14]
lsls r0, r0, #2
strb r0, [r5, #0x15]
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r5, #0x24]
movs r0, #0x40
str r0, [r5, #0x74]
movs r0, #0xf0
lsls r0, r0, #1
str r0, [r5, #0x78]
ldr r2, _0807017C @ =gPlayerEntity
ldr r1, _08070180 @ =gUnk_0811B9A0
ldrb r0, [r5, #0x14]
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r4, [r2, #0x2e]
adds r0, r0, r4
strh r0, [r5, #0x2e]
ldrb r0, [r5, #0x14]
adds r0, #1
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r5, #0x32]
adds r1, r5, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
subs r1, #1
movs r0, #0x8a
strb r0, [r1]
ldr r0, _08070184 @ =gUnk_0811B9D0
str r0, [r5, #0x48]
adds r0, r5, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #2
bne _08070188
strb r3, [r5, #0xa]
b _0807018C
.align 2, 0
_0807017C: .4byte gPlayerEntity
_08070180: .4byte gUnk_0811B9A0
_08070184: .4byte gUnk_0811B9D0
_08070188:
movs r0, #0
strb r0, [r5, #0xa]
_0807018C:
ldrb r1, [r2, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r5, #0x1b]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x1b]
ldrb r3, [r5, #0x14]
lsrs r3, r3, #1
lsls r3, r3, #3
ldr r0, _080701F0 @ =gUnk_0811B9A8
adds r3, r3, r0
ldrb r1, [r3]
movs r0, #1
ands r1, r0
lsls r1, r1, #6
ldrb r2, [r5, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x18]
ldrb r1, [r3, #1]
lsls r1, r1, #7
movs r2, #0x7f
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x18]
ldrb r0, [r3, #4]
adds r4, r5, #0
adds r4, #0x58
strb r0, [r4]
movs r0, #2
ldrsb r0, [r3, r0]
str r0, [r5, #0x6c]
movs r0, #3
ldrsb r0, [r3, r0]
str r0, [r5, #0x70]
adds r0, r5, #0
bl sub_0801766C
ldrb r1, [r4]
adds r0, r5, #0
bl InitializeAnimation
ldr r0, _080701F4 @ =0x000001DD
bl SoundReq
pop {r4, r5, pc}
.align 2, 0
_080701F0: .4byte gUnk_0811B9A8
_080701F4: .4byte 0x000001DD
thumb_func_start sub_080701F8
sub_080701F8: @ 0x080701F8
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r0, _08070244 @ =gUnk_0811B9C8
ldrb r1, [r5, #0x14]
adds r2, r1, r0
movs r6, #0
ldrsb r6, [r2, r6]
adds r1, #1
adds r1, r1, r0
movs r7, #0
ldrsb r7, [r1, r7]
adds r0, r5, #0
movs r1, #0xa
adds r2, r6, #0
adds r3, r7, #0
bl sub_08008782
adds r4, r0, #0
cmp r4, #0
beq _08070248
ldrb r1, [r4, #5]
ldrb r2, [r4, #2]
movs r0, #0x53
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08070260
ldrb r0, [r4, #3]
strb r0, [r1, #0xe]
ldrh r0, [r5, #0x2e]
adds r0, r0, r6
strh r0, [r1, #0x2e]
ldrh r0, [r5, #0x32]
adds r0, r0, r7
strh r0, [r1, #0x32]
b _08070260
.align 2, 0
_08070244: .4byte gUnk_0811B9C8
_08070248:
ldr r0, [r5, #0x74]
subs r0, #1
str r0, [r5, #0x74]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
beq _08070260
ldr r0, [r5, #0x78]
subs r0, #1
str r0, [r5, #0x78]
cmp r0, r1
bne _08070268
_08070260:
adds r0, r5, #0
bl sub_08070458
b _0807037A
_08070268:
adds r0, r5, #0
bl GetNextFrame
adds r0, r5, #0
bl sub_0806F69C
ldrb r0, [r5, #0xa]
cmp r0, #0
bne _08070280
adds r0, r5, #0
bl sub_0800451C
_08070280:
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r7, _08070354 @ =gRoomControls
ldrh r1, [r7, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r6, #0x3f
ands r0, r6
movs r2, #0x32
ldrsh r1, [r5, r2]
ldrh r2, [r7, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
lsls r1, r1, #6
orrs r0, r1
ldr r1, _08070358 @ =gPlayerEntity
adds r1, #0x38
ldrb r1, [r1]
movs r2, #0x80
bl sub_080002F0
cmp r0, #0
bne _0807036A
ldr r1, _0807035C @ =gUnk_08003E44
movs r3, #0x2e
ldrsh r2, [r5, r3]
movs r0, #0x32
ldrsh r3, [r5, r0]
adds r0, r5, #0
bl sub_080040D8
cmp r0, #0
bne _08070364
adds r0, r5, #0
bl sub_080002B8
cmp r0, #0x19
bne _0807036A
movs r0, #4
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r5, #0x10]
ldrh r2, [r5, #0x2e]
movs r1, #0x10
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
movs r2, #8
orrs r0, r2
strh r0, [r5, #0x2e]
ldrh r0, [r5, #0x32]
ands r1, r0
orrs r1, r2
strh r1, [r5, #0x32]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldrh r1, [r7, #6]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r6
movs r2, #0x32
ldrsh r1, [r5, r2]
ldrh r2, [r7, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
lsls r1, r1, #6
orrs r0, r1
adds r4, r5, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_080001DA
str r0, [r5, #0x7c]
adds r0, r5, #0
movs r1, #0x14
bl InitializeAnimation
ldr r0, _08070360 @ =0x00004020
movs r3, #0x2e
ldrsh r1, [r5, r3]
ldrh r2, [r7, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
movs r3, #0x32
ldrsh r2, [r5, r3]
ldrh r3, [r7, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r6
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r4]
bl SetTile
b _0807037A
.align 2, 0
_08070354: .4byte gRoomControls
_08070358: .4byte gPlayerEntity
_0807035C: .4byte gUnk_08003E44
_08070360: .4byte 0x00004020
_08070364:
adds r0, r5, #0
bl sub_08070458
_0807036A:
adds r0, r5, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0
beq _0807037A
adds r0, r5, #0
bl sub_08070458
_0807037A:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0807037C
sub_0807037C: @ 0x0807037C
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r4, #0x5a
ldrb r1, [r4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08070394
bl DeleteThisEntity
_08070394:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08070398
sub_08070398: @ 0x08070398
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_0806F69C
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _080703B8
bl DeleteThisEntity
_080703B8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080703BC
sub_080703BC: @ 0x080703BC
push {r4, r5, lr}
adds r4, r0, #0
bl GetNextFrame
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _08070404 @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080001DA
adds r1, r0, #0
ldr r0, _08070408 @ =0x00004021
cmp r1, r0
beq _0807042E
cmp r1, r0
bhi _0807040C
subs r0, #1
cmp r1, r0
beq _08070420
b _08070412
.align 2, 0
_08070404: .4byte gRoomControls
_08070408: .4byte 0x00004021
_0807040C:
ldr r0, _08070418 @ =0x00004070
cmp r1, r0
beq _0807041C
_08070412:
movs r0, #0
str r0, [r4, #0x7c]
b _0807042E
.align 2, 0
_08070418: .4byte 0x00004070
_0807041C:
movs r0, #0xff
str r0, [r4, #0x78]
_08070420:
ldr r0, [r4, #0x78]
subs r0, #1
str r0, [r4, #0x78]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bne _08070436
_0807042E:
adds r0, r4, #0
bl sub_08070458
b _08070454
_08070436:
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
cmp r1, #0
beq _08070454
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _0807044E
ldrb r0, [r4, #0xc]
cmp r0, #0x1a
bne _08070454
_0807044E:
adds r0, r4, #0
bl sub_08070458
_08070454:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08070458
sub_08070458: @ 0x08070458
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r2, #0
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
strh r2, [r4, #0x24]
ldr r5, [r4, #0x7c]
cmp r5, #0
beq _0807049E
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _080704B4 @ =gRoomControls
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r6, #0x32
ldrsh r0, [r4, r6]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x38
ldrb r2, [r0]
adds r0, r5, #0
bl SetTile
_0807049E:
adds r0, r4, #0
movs r1, #0x13
bl InitializeAnimation
adds r0, r4, #0
bl sub_08017744
ldr r0, _080704B8 @ =0x00000199
bl SoundReq
pop {r4, r5, r6, pc}
.align 2, 0
_080704B4: .4byte gRoomControls
_080704B8: .4byte 0x00000199
thumb_func_start PlayerItemPacciCane
PlayerItemPacciCane: @ 0x080704BC
push {lr}
ldr r2, _080704D0 @ =gUnk_0811B9D8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080704D0: .4byte gUnk_0811B9D8
thumb_func_start sub_080704D4
sub_080704D4: @ 0x080704D4
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0xff
strb r0, [r4, #0x1e]
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
movs r0, #0x87
lsls r0, r0, #1
bl SoundReq
adds r0, r4, #0
bl sub_080704FC
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080704FC
sub_080704FC: @ 0x080704FC
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _0807052C @ =gPlayerEntity
adds r0, r5, #0
adds r0, #0x5a
ldrb r2, [r0]
movs r0, #0x80
ands r0, r2
ldr r1, _08070530 @ =gPlayerState
cmp r0, #0
bne _08070518
ldr r0, [r1, #0x2c]
cmp r4, r0
beq _08070534
_08070518:
ldr r0, [r1, #0x2c]
cmp r4, r0
bne _08070522
movs r0, #0
str r0, [r1, #0x2c]
_08070522:
adds r0, r4, #0
bl DeleteEntity
b _08070566
.align 2, 0
_0807052C: .4byte gPlayerEntity
_08070530: .4byte gPlayerState
_08070534:
movs r0, #0xf
ands r0, r2
cmp r0, #0xf
beq _08070562
ldrb r1, [r5, #0x1e]
adds r0, #0x91
subs r0, r1, r0
ldrb r2, [r4, #0x1e]
cmp r0, r2
beq _08070558
adds r0, r1, #0
adds r0, #0x6f
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_08070558:
adds r0, r4, #0
adds r1, r5, #0
bl sub_08078E84
b _08070566
_08070562:
movs r0, #0xff
strb r0, [r4, #0x1e]
_08070566:
ldr r2, _08070580 @ =gPlayerEntity
ldrb r1, [r2, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08070584
ldrb r0, [r2, #0x18]
lsls r0, r0, #0x19
lsrs r2, r0, #0x1f
movs r0, #1
eors r2, r0
b _0807058A
.align 2, 0
_08070580: .4byte gPlayerEntity
_08070584:
ldrb r0, [r2, #0x18]
lsls r0, r0, #0x19
lsrs r2, r0, #0x1f
_0807058A:
lsls r2, r2, #6
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
pop {r4, r5, pc}
.align 2, 0
.include "asm/playerItem/playerItemPacciCane.inc"
thumb_func_start sub_0807059C
sub_0807059C: @ 0x0807059C
+3 -583
View File
@@ -397,590 +397,10 @@ _080A2D6E:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start PlayerItemShield
PlayerItemShield: @ 0x080A2D74
push {lr}
adds r2, r0, #0
ldr r0, [r2, #0x6c]
cmp r0, #0
beq _080A2D82
subs r0, #1
str r0, [r2, #0x6c]
_080A2D82:
ldr r0, _080A2D94 @ =gUnk_081271D4
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
pop {pc}
.align 2, 0
_080A2D94: .4byte gUnk_081271D4
@ TODO convert .inc files into .s files and include them in linker.ld
.include "asm/playerItem/playerItemShield.inc"
thumb_func_start sub_080A2D98
sub_080A2D98: @ 0x080A2D98
push {r4, lr}
adds r4, r0, #0
ldr r0, _080A2DD0 @ =gPlayerState
str r4, [r0, #0x2c]
movs r2, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x11]
subs r0, #0x11
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4, #0x11]
movs r0, #0xff
strb r0, [r4, #0x1e]
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xe
bne _080A2DD8
movs r0, #0x27
str r0, [r4, #0x70]
ldr r1, _080A2DD4 @ =gUnk_081271DC
ldrb r0, [r1, #1]
str r0, [r4, #0x78]
str r2, [r4, #0x74]
str r1, [r4, #0x7c]
b _080A2DDA
.align 2, 0
_080A2DD0: .4byte gPlayerState
_080A2DD4: .4byte gUnk_081271DC
_080A2DD8:
str r2, [r4, #0x70]
_080A2DDA:
ldr r0, _080A2DFC @ =gPlayerEntity
ldrb r1, [r0, #0x14]
movs r0, #0xe
ands r0, r1
strb r0, [r4, #0x14]
adds r0, r4, #0
bl sub_08079BD8
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_080A2E00
pop {r4, pc}
.align 2, 0
_080A2DFC: .4byte gPlayerEntity
thumb_func_start sub_080A2E00
sub_080A2E00: @ 0x080A2E00
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldr r0, _080A2E90 @ =gPlayerEntity
mov ip, r0
mov r1, ip
adds r1, #0x3d
ldrb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
beq _080A2E1A
lsrs r0, r0, #0x18
cmp r0, #0x81
bne _080A2E40
_080A2E1A:
adds r5, r4, #0
adds r5, #0x3d
ldrb r0, [r5]
movs r2, #0
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x3e
ldrb r0, [r0]
mov r1, ip
adds r1, #0x3e
strb r0, [r1]
adds r3, r4, #0
adds r3, #0x42
ldrb r1, [r3]
mov r0, ip
adds r0, #0x42
strb r1, [r0]
strb r2, [r3]
strb r2, [r5]
_080A2E40:
ldr r0, _080A2E94 @ =gPlayerState
ldrb r3, [r0, #3]
adds r7, r0, #0
cmp r3, #0
beq _080A2F20
ldr r0, [r7, #0x2c]
cmp r4, r0
bne _080A2F20
movs r2, #0x80
adds r0, r2, #0
ands r0, r3
cmp r0, #0
beq _080A2E9C
ldr r1, _080A2E98 @ =gUnk_08127240
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
str r0, [r4, #0x48]
ldr r0, _080A2E90 @ =gPlayerEntity
adds r0, #0x3c
ldrb r0, [r0]
adds r0, #1
movs r1, #0x20
adds r2, r4, #0
adds r2, #0x3c
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #0x7f
ands r0, r3
strb r0, [r7, #3]
adds r0, r4, #0
bl sub_080176E4
b _080A2F30
.align 2, 0
_080A2E90: .4byte gPlayerEntity
_080A2E94: .4byte gPlayerState
_080A2E98: .4byte gUnk_08127240
_080A2E9C:
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _080A2F30
movs r0, #0x7f
ands r0, r1
cmp r0, #0x42
bne _080A2F06
adds r0, r4, #0
adds r0, #0x68
ldrb r1, [r0]
adds r5, r0, #0
cmp r1, #0xe
bne _080A2F06
movs r0, #0x40
ands r0, r3
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r6, #0
bne _080A2F06
ldrb r3, [r5]
movs r0, #0x15
movs r1, #0
movs r2, #0
bl CreatePlayerItem
adds r1, r0, #0
str r1, [r4, #0x54]
cmp r1, #0
beq _080A2EF4
movs r0, #1
strb r0, [r1, #0xf]
ldr r2, [r4, #0x54]
adds r0, r4, #0
adds r0, #0x3e
ldrb r0, [r0]
movs r1, #0x10
eors r0, r1
strb r0, [r2, #0x15]
ldr r0, [r4, #0x54]
str r4, [r0, #0x50]
_080A2EF4:
ldr r1, _080A2F1C @ =gUnk_08127220
ldrb r0, [r1, #1]
str r0, [r4, #0x78]
str r6, [r4, #0x74]
str r1, [r4, #0x7c]
ldrb r0, [r7, #3]
movs r1, #0x40
orrs r0, r1
strb r0, [r7, #3]
_080A2F06:
ldr r0, [r4, #0x6c]
cmp r0, #0
bne _080A2F30
movs r0, #0x8c
lsls r0, r0, #1
bl SoundReq
movs r0, #8
str r0, [r4, #0x6c]
b _080A2F30
.align 2, 0
_080A2F1C: .4byte gUnk_08127220
_080A2F20:
movs r1, #0
strb r1, [r7, #3]
ldr r0, [r7, #0x2c]
cmp r0, r4
bne _080A2F2C
str r1, [r7, #0x2c]
_080A2F2C:
bl DeleteThisEntity
_080A2F30:
ldr r6, _080A301C @ =gPlayerEntity
ldrh r0, [r6, #0x12]
cmp r0, #1
beq _080A2F3E
cmp r0, #4
beq _080A2F3E
b _080A3064
_080A2F3E:
ldrb r0, [r6, #0x1e]
subs r0, #0x25
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x3e
bls _080A2F4C
b _080A3064
_080A2F4C:
ldrb r2, [r6, #0x18]
movs r1, #0x40
ands r1, r2
ldrb r3, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r3
orrs r0, r1
lsrs r2, r2, #7
lsls r2, r2, #7
movs r3, #0x7f
ands r0, r3
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r2, [r6, #0x1e]
ldr r1, [r4, #0x70]
adds r0, r1, #0
subs r0, #0x25
adds r0, r2, r0
adds r5, r4, #0
adds r5, #0x68
ldrb r7, [r4, #0x1e]
cmp r0, r7
beq _080A2FA2
adds r0, r1, #0
adds r0, #0xdb
adds r0, r2, r0
strb r0, [r4, #0x1e]
ldrb r0, [r5]
cmp r0, #0xe
bne _080A2F98
adds r0, r6, #0
adds r0, #0x5a
ldrb r1, [r0]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
bne _080A2FA2
_080A2F98:
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_080A2FA2:
ldrb r0, [r5]
cmp r0, #0xe
bne _080A303E
ldr r0, _080A301C @ =gPlayerEntity
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _080A303E
ldr r0, [r4, #0x78]
subs r3, r0, #1
str r3, [r4, #0x78]
cmp r3, #0
bne _080A303E
ldr r0, [r4, #0x74]
adds r0, #1
str r0, [r4, #0x74]
lsls r0, r0, #2
ldr r1, [r4, #0x7c]
adds r2, r1, r0
ldrb r0, [r2]
ldr r7, _080A3020 @ =gPlayerState
cmp r0, #0xff
bne _080A2FEC
ldrb r1, [r7, #3]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _080A2FE8
ldr r0, _080A3024 @ =gUnk_081271DC
str r0, [r4, #0x7c]
movs r0, #0xbf
ands r0, r1
strb r0, [r7, #3]
_080A2FE8:
str r3, [r4, #0x74]
ldr r1, [r4, #0x7c]
_080A2FEC:
ldr r0, [r4, #0x74]
lsls r0, r0, #2
adds r2, r1, r0
ldrb r0, [r2, #1]
str r0, [r4, #0x78]
ldrb r1, [r7, #3]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _080A3028
ldr r0, _080A301C @ =gPlayerEntity
adds r0, #0x5a
ldrb r0, [r0]
movs r1, #0x7f
ands r1, r0
adds r1, #8
ldrb r2, [r2]
adds r1, r1, r2
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
b _080A303E
.align 2, 0
_080A301C: .4byte gPlayerEntity
_080A3020: .4byte gPlayerState
_080A3024: .4byte gUnk_081271DC
_080A3028:
ldr r0, _080A3060 @ =gPlayerEntity
adds r0, #0x5a
ldrb r0, [r0]
movs r1, #0x7f
ands r1, r0
ldrb r2, [r2]
adds r1, r1, r2
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_080A303E:
ldr r1, _080A3060 @ =gPlayerEntity
adds r0, r1, #0
adds r0, #0x5a
ldrb r0, [r0]
adds r2, r4, #0
adds r2, #0x5a
strb r0, [r2]
adds r0, r1, #0
adds r0, #0x5b
ldrb r0, [r0]
adds r2, #1
strb r0, [r2]
adds r0, r4, #0
bl sub_08078E84
b _080A3068
.align 2, 0
_080A3060: .4byte gPlayerEntity
_080A3064:
movs r0, #0xff
strb r0, [r4, #0x1e]
_080A3068:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start PlayerItem15
PlayerItem15: @ 0x080A306C
push {lr}
ldr r2, _080A3080 @ =gUnk_08127270
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080A3080: .4byte gUnk_08127270
thumb_func_start sub_080A3084
sub_080A3084: @ 0x080A3084
push {r4, r5, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r5, #1
strb r5, [r4, #0xc]
ldr r0, [r4, #0x50]
adds r1, r4, #0
bl CopyPosition
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080A30F8
ldr r0, _080A30EC @ =gPlayerEntity
adds r0, #0x3c
ldrb r0, [r0]
adds r0, #1
adds r1, r4, #0
adds r1, #0x3c
strb r0, [r1]
ldr r0, _080A30F0 @ =gUnk_08127278
str r0, [r4, #0x48]
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r4, #0x24]
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #2
bne _080A30CC
strb r5, [r4, #0xb]
_080A30CC:
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
movs r0, #0x3c
str r0, [r4, #0x6c]
adds r0, r4, #0
bl sub_0801766C
adds r0, r4, #0
bl sub_0806F69C
ldr r0, _080A30F4 @ =0x0000013F
bl SoundReq
b _080A30FC
.align 2, 0
_080A30EC: .4byte gPlayerEntity
_080A30F0: .4byte gUnk_08127278
_080A30F4: .4byte 0x0000013F
_080A30F8:
movs r0, #6
strb r0, [r4, #0xe]
_080A30FC:
adds r0, r4, #0
movs r1, #0x18
bl InitializeAnimation
adds r0, r4, #0
bl sub_080A310C
pop {r4, r5, pc}
thumb_func_start sub_080A310C
sub_080A310C: @ 0x080A310C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _080A312A
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _080A3200
bl DeleteThisEntity
b _080A3200
_080A312A:
adds r0, r4, #0
bl GetNextFrame
ldr r0, [r4, #0x6c]
subs r0, #1
str r0, [r4, #0x6c]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
beq _080A31FC
adds r0, r4, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _080A315C
adds r0, r4, #0
bl sub_0800451C
_080A315C:
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _080A31F0 @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
ldr r1, _080A31F4 @ =gPlayerEntity
adds r1, #0x38
ldrb r1, [r1]
movs r2, #0x80
bl sub_080002F0
cmp r0, #0
bne _080A31AE
ldr r1, _080A31F8 @ =gUnk_08003E44
movs r0, #0x2e
ldrsh r2, [r4, r0]
movs r5, #0x32
ldrsh r3, [r4, r5]
adds r0, r4, #0
bl sub_080040D8
cmp r0, #0
beq _080A31AE
adds r0, r4, #0
movs r1, #0x19
movs r2, #0
bl CreateFx
bl DeleteThisEntity
_080A31AE:
adds r0, r4, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0
beq _080A31C6
adds r0, r4, #0
movs r1, #0x19
movs r2, #0
bl CreateFx
bl DeleteThisEntity
_080A31C6:
adds r0, r4, #0
movs r1, #0xc
bl sub_08008790
cmp r0, #0
beq _080A31D6
bl DeleteThisEntity
_080A31D6:
adds r0, r4, #0
adds r0, #0x68
ldrb r3, [r0]
movs r0, #0x15
movs r1, #1
movs r2, #0
bl CreatePlayerItem
str r0, [r4, #0x54]
cmp r0, #0
beq _080A3200
str r4, [r0, #0x50]
b _080A3200
.align 2, 0
_080A31F0: .4byte gRoomControls
_080A31F4: .4byte gPlayerEntity
_080A31F8: .4byte gUnk_08003E44
_080A31FC:
bl DeleteThisEntity
_080A3200:
pop {r4, r5, pc}
.align 2, 0
.include "asm/playerItem/playerItem15.inc"
thumb_func_start InitSound
InitSound: @ 0xInitSound
+3 -1009
View File
File diff suppressed because it is too large Load Diff
+2 -398
View File
@@ -156,409 +156,13 @@ sub_080ADA14: @ 0x080ADA14
_080ADA28: .4byte gUnk_03006580
_080ADA2C: .4byte gOamCmd
thumb_func_start PlayerItemGustJar
PlayerItemGustJar: @ 0x080ADA30
push {r4, lr}
adds r4, r0, #0
ldr r1, _080ADA60 @ =gPlayerState
ldr r0, [r1, #0x2c]
cmp r0, r4
bne _080ADA42
ldrb r0, [r1, #0x1c]
cmp r0, #0
bne _080ADA46
_080ADA42:
bl DeleteThisEntity
_080ADA46:
ldr r1, _080ADA64 @ =gUnk_08132700
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldr r1, _080ADA68 @ =gPlayerEntity
adds r0, r4, #0
bl sub_08078E84
pop {r4, pc}
.align 2, 0
_080ADA60: .4byte gPlayerState
_080ADA64: .4byte gUnk_08132700
_080ADA68: .4byte gPlayerEntity
@ TODO convert .inc files into .s files and include them in linker.ld
.include "asm/playerItem/playerItemGustJar.inc"
thumb_func_start sub_080ADA6C
sub_080ADA6C: @ 0x080ADA6C
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0xf
strb r0, [r4, #0xf]
ldr r0, _080ADAA4 @ =gUnk_08132B28
str r0, [r4, #0x48]
movs r1, #3
strb r1, [r0, #4]
strb r1, [r0, #3]
movs r1, #6
strb r1, [r0, #5]
strb r1, [r0, #2]
adds r0, r4, #0
bl sub_080ADC84
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
ldrb r1, [r4, #0x14]
lsrs r1, r1, #1
adds r0, r4, #0
bl InitAnimationForceUpdate
pop {r4, pc}
.align 2, 0
_080ADAA4: .4byte gUnk_08132B28
thumb_func_start sub_080ADAA8
sub_080ADAA8: @ 0x080ADAA8
push {r4, lr}
adds r4, r0, #0
bl sub_080ADC84
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080ADACC
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #0
bl sub_080ADCA0
b _080ADAD2
_080ADACC:
adds r0, r4, #0
bl UpdateAnimationSingleFrame
_080ADAD2:
pop {r4, pc}
thumb_func_start sub_080ADAD4
sub_080ADAD4: @ 0x080ADAD4
push {r4, r5, lr}
adds r4, r0, #0
ldr r3, _080ADAF4 @ =gPlayerState
ldrb r1, [r3, #0x1c]
adds r0, r1, #0
cmp r0, #3
bne _080ADAFC
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldr r0, _080ADAF8 @ =gPlayerEntity
ldrb r1, [r0, #0x14]
lsrs r1, r1, #1
adds r1, #8
b _080ADB0C
.align 2, 0
_080ADAF4: .4byte gPlayerState
_080ADAF8: .4byte gPlayerEntity
_080ADAFC:
cmp r0, #6
bne _080ADB18
movs r0, #4
strb r0, [r4, #0xc]
ldr r0, _080ADB14 @ =gPlayerEntity
ldrb r1, [r0, #0x14]
lsrs r1, r1, #1
adds r1, #4
_080ADB0C:
adds r0, r4, #0
bl InitAnimationForceUpdate
b _080ADC08
.align 2, 0
_080ADB14: .4byte gPlayerEntity
_080ADB18:
movs r5, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _080ADB58
cmp r0, #1
bne _080ADB36
adds r0, r4, #0
movs r1, #4
bl sub_080ADCA0
movs r0, #0x18
strb r0, [r4, #0xe]
movs r0, #2
strb r0, [r4, #0xa]
b _080ADBE0
_080ADB36:
adds r0, r4, #0
movs r1, #1
bl sub_080ADCDC
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _080ADBE0
adds r0, r4, #0
movs r1, #0
bl sub_080ADCA0
strb r5, [r4, #0xa]
b _080ADBE0
_080ADB58:
movs r0, #0xf
ands r0, r1
cmp r0, #7
bne _080ADB68
adds r1, r4, #0
adds r1, #0x59
movs r0, #0x7f
strb r0, [r1]
_080ADB68:
ldrb r0, [r3, #0x1d]
cmp r0, #2
beq _080ADB94
cmp r0, #2
bgt _080ADB78
cmp r0, #1
beq _080ADBB0
b _080ADBCA
_080ADB78:
cmp r0, #3
bne _080ADBCA
adds r0, r4, #0
movs r1, #3
bl sub_080ADCDC
ldrb r1, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x1a]
movs r2, #3
movs r5, #0xe9
b _080ADBCA
_080ADB94:
adds r0, r4, #0
movs r1, #2
bl sub_080ADCDC
ldrb r0, [r4, #0x1a]
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
movs r0, #4
orrs r1, r0
strb r1, [r4, #0x1a]
movs r2, #2
movs r5, #0xe8
b _080ADBCA
_080ADBB0:
adds r0, r4, #0
movs r1, #1
bl sub_080ADCDC
ldrb r0, [r4, #0x1a]
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
movs r0, #1
orrs r1, r0
strb r1, [r4, #0x1a]
movs r2, #1
movs r5, #0xe7
_080ADBCA:
ldr r0, _080ADC0C @ =gPlayerState
ldrb r1, [r0, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #7
bne _080ADBDA
movs r5, #0xee
movs r2, #1
_080ADBDA:
ldrb r0, [r4, #0xf]
subs r0, r0, r2
strb r0, [r4, #0xf]
_080ADBE0:
movs r0, #0xf
ldrsb r0, [r4, r0]
cmp r0, #0
bge _080ADBF6
cmp r5, #0
beq _080ADBF2
adds r0, r5, #0
bl SoundReq
_080ADBF2:
movs r0, #0xf
strb r0, [r4, #0xf]
_080ADBF6:
ldr r2, _080ADC10 @ =gPlayerEntity
adds r0, r2, #0
adds r0, #0x5a
ldrb r0, [r0]
movs r1, #0x7f
ands r1, r0
ldrb r0, [r2, #0x1e]
subs r0, r0, r1
strb r0, [r4, #0x1e]
_080ADC08:
pop {r4, r5, pc}
.align 2, 0
_080ADC0C: .4byte gPlayerState
_080ADC10: .4byte gPlayerEntity
thumb_func_start sub_080ADC14
sub_080ADC14: @ 0x080ADC14
push {r4, lr}
adds r4, r0, #0
ldr r0, _080ADC40 @ =gPlayerState
ldrb r0, [r0, #0x1c]
movs r1, #0xf
ands r1, r0
cmp r1, #1
beq _080ADC48
cmp r1, #6
bne _080ADC56
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldr r0, _080ADC44 @ =gPlayerEntity
ldrb r1, [r0, #0x14]
lsrs r1, r1, #1
adds r1, #4
adds r0, r4, #0
bl InitAnimationForceUpdate
b _080ADC5C
.align 2, 0
_080ADC40: .4byte gPlayerState
_080ADC44: .4byte gPlayerEntity
_080ADC48:
adds r0, r4, #0
movs r1, #0
bl sub_080ADCA0
movs r0, #2
strb r0, [r4, #0xc]
b _080ADC5C
_080ADC56:
adds r0, r4, #0
bl UpdateAnimationSingleFrame
_080ADC5C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080ADC60
sub_080ADC60: @ 0x080ADC60
push {lr}
adds r2, r0, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080ADC7C
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #0x18]
b _080ADC82
_080ADC7C:
adds r0, r2, #0
bl UpdateAnimationSingleFrame
_080ADC82:
pop {pc}
thumb_func_start sub_080ADC84
sub_080ADC84: @ 0x080ADC84
ldr r1, _080ADC9C @ =gPlayerEntity
ldrb r1, [r1, #0x18]
movs r2, #0x40
ands r2, r1
ldrb r3, [r0, #0x18]
movs r1, #0x41
rsbs r1, r1, #0
ands r1, r3
orrs r1, r2
strb r1, [r0, #0x18]
bx lr
.align 2, 0
_080ADC9C: .4byte gPlayerEntity
thumb_func_start sub_080ADCA0
sub_080ADCA0: @ 0x080ADCA0
push {r4, lr}
ldr r3, _080ADCD4 @ =gUnk_08132714
ldr r2, _080ADCD8 @ =gPlayerEntity
ldrb r2, [r2, #0x14]
lsrs r2, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r3
ldr r2, [r1]
str r2, [r0, #0x5c]
ldrb r1, [r2]
adds r3, r0, #0
adds r3, #0x58
strb r1, [r3]
adds r1, r2, #1
str r1, [r0, #0x5c]
ldrb r2, [r2, #1]
movs r4, #0x59
strb r2, [r4, r0]
adds r1, #1
str r1, [r0, #0x5c]
ldrb r1, [r3]
ldrh r2, [r0, #0x12]
bl sub_080042D0
pop {r4, pc}
.align 2, 0
_080ADCD4: .4byte gUnk_08132714
_080ADCD8: .4byte gPlayerEntity
thumb_func_start sub_080ADCDC
sub_080ADCDC: @ 0x080ADCDC
push {r4, r5, lr}
adds r3, r0, #0
movs r0, #0x59
adds r0, r0, r3
mov ip, r0
ldrb r0, [r0]
subs r0, r0, r1
mov r1, ip
strb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
bgt _080ADD2E
ldr r1, [r3, #0x5c]
ldrb r0, [r1]
cmp r0, #0xff
bne _080ADD06
adds r0, r1, #1
str r0, [r3, #0x5c]
ldrb r1, [r1, #1]
subs r0, r0, r1
str r0, [r3, #0x5c]
_080ADD06:
ldr r1, [r3, #0x5c]
ldrb r0, [r1]
adds r2, r3, #0
adds r2, #0x58
strb r0, [r2]
adds r1, #1
str r1, [r3, #0x5c]
ldrb r0, [r1]
mov r4, ip
ldrb r4, [r4]
adds r0, r0, r4
mov r5, ip
strb r0, [r5]
adds r1, #1
str r1, [r3, #0x5c]
ldrb r1, [r2]
ldrh r2, [r3, #0x12]
adds r0, r3, #0
bl sub_080042D0
_080ADD2E:
pop {r4, r5, pc}
thumb_func_start sub_080ADD30
sub_080ADD30: @ 0x080ADD30
-215
View File
@@ -1,215 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_08018FE4
sub_08018FE4: @ 0x08018FE4
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r3, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r5, [r4, #0xa]
cmp r5, #0
bne _08018FF6
b _080190FC
_08018FF6:
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r3
strb r0, [r4, #0x18]
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #0x6a
str r0, [r4, #0x74]
ldrb r0, [r4, #0xb]
adds r1, r4, #0
adds r1, #0x40
strb r0, [r1]
movs r0, #0xa6
strh r0, [r4, #0x12]
ldrb r0, [r1]
adds r6, r1, #0
cmp r0, #0xe
bne _08019026
movs r0, #0x80
lsls r0, r0, #3
b _0801902A
_08019026:
movs r0, #0xc0
lsls r0, r0, #2
_0801902A:
strh r0, [r4, #0x24]
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
ldr r2, _0801905C @ =gPlayerEntity
adds r0, r2, #0
adds r0, #0x3c
ldrb r0, [r0]
adds r0, #1
adds r1, r4, #0
adds r1, #0x3c
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x3b
ldrb r0, [r0]
subs r1, #1
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
adds r5, r2, #0
cmp r0, #2
bne _08019060
movs r0, #1
b _08019062
.align 2, 0
_0801905C: .4byte gPlayerEntity
_08019060:
movs r0, #0
_08019062:
strb r0, [r4, #0xb]
ldrb r1, [r5, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r4, #0x1b]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
lsls r3, r0, #1
adds r3, r3, r0
lsls r3, r3, #2
ldr r0, _080190F8 @ =gUnk_080B3E40
adds r3, r3, r0
movs r0, #0
ldrsb r0, [r3, r0]
ldrh r1, [r5, #0x2e]
adds r0, r0, r1
strh r0, [r4, #0x2e]
movs r0, #1
ldrsb r0, [r3, r0]
ldrh r5, [r5, #0x32]
adds r0, r0, r5
strh r0, [r4, #0x32]
ldrb r1, [r3, #2]
movs r0, #1
ands r1, r0
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r3, #3]
lsls r1, r1, #7
movs r2, #0x7f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r0, [r3, #6]
adds r5, r4, #0
adds r5, #0x58
strb r0, [r5]
movs r0, #4
ldrsb r0, [r3, r0]
str r0, [r4, #0x6c]
movs r0, #5
ldrsb r0, [r3, r0]
str r0, [r4, #0x70]
ldr r0, [r3, #8]
str r0, [r4, #0x48]
adds r0, r4, #0
bl sub_0801766C
ldrb r0, [r6]
cmp r0, #0xe
bne _080190E8
ldrb r0, [r5]
adds r0, #6
strb r0, [r5]
adds r1, r4, #0
adds r1, #0x60
movs r0, #0
strh r0, [r1]
_080190E8:
ldrb r1, [r5]
adds r0, r4, #0
bl InitializeAnimation
movs r0, #0xfc
bl SoundReq
b _08019178
.align 2, 0
_080190F8: .4byte gUnk_080B3E40
_080190FC:
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4, #0x11]
movs r0, #0xff
strb r0, [r4, #0x1e]
ldr r2, _08019168 @ =gUnk_080B3E40
ldrb r1, [r4, #0x14]
lsrs r1, r1, #1
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0, #2]
ands r1, r3
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldr r0, _0801916C @ =gPlayerState
str r4, [r0, #0x2c]
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_08079BD8
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xa
bne _08019170
movs r0, #0x3c
str r0, [r4, #0x78]
ldrb r1, [r4, #0xa]
movs r0, #0x43
movs r2, #1
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08019172
adds r0, r4, #0
bl CopyPosition
b _08019172
.align 2, 0
_08019168: .4byte gUnk_080B3E40
_0801916C: .4byte gPlayerState
_08019170:
str r5, [r4, #0x78]
_08019172:
adds r0, r4, #0
bl sub_0801917C
_08019178:
pop {r4, r5, r6, pc}
.align 2, 0
+443
View File
@@ -0,0 +1,443 @@
thumb_func_start PlayerItem10
PlayerItem10: @ 0x080ACBCC
push {r4, lr}
adds r4, r0, #0
ldr r0, _080ACBFC @ =gPlayerState
ldrb r1, [r0, #0x1c]
movs r0, #0x7f
ands r0, r1
cmp r0, #1
beq _080ACBE0
bl DeleteThisEntity
_080ACBE0:
ldr r1, _080ACC00 @ =gUnk_0812AA80
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r1, r4, #0
adds r1, #0x3d
movs r0, #0
strb r0, [r1]
pop {r4, pc}
.align 2, 0
_080ACBFC: .4byte gPlayerState
_080ACC00: .4byte gUnk_0812AA80
thumb_func_start sub_080ACC04
sub_080ACC04: @ 0x080ACC04
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _080ACC54 @ =gPlayerEntity
adds r0, #0x3b
ldrb r0, [r0]
adds r1, r4, #0
adds r1, #0x3b
strb r0, [r1]
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r4, #0x24]
ldrb r1, [r4, #0x10]
movs r0, #0xa0
orrs r0, r1
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #2
strb r0, [r1]
ldr r1, _080ACC58 @ =gUnk_0812AAD8
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
str r0, [r4, #0x48]
movs r0, #0x10
str r0, [r4, #0x70]
adds r0, r4, #0
bl sub_080ACDB0
adds r0, r4, #0
bl sub_0801766C
pop {r4, pc}
.align 2, 0
_080ACC54: .4byte gPlayerEntity
_080ACC58: .4byte gUnk_0812AAD8
thumb_func_start sub_080ACC5C
sub_080ACC5C: @ 0x080ACC5C
push {r4, lr}
adds r4, r0, #0
bl sub_080ACDB0
cmp r0, #0
bne _080ACC74
adds r0, r4, #0
bl sub_080ACC78
adds r0, r4, #0
bl sub_080ACECC
_080ACC74:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080ACC78
sub_080ACC78: @ 0x080ACC78
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldrb r2, [r4, #0xa]
ldr r0, _080ACD20 @ =gScreenTransition
ldr r0, [r0]
adds r0, r2, r0
movs r1, #1
ands r0, r1
cmp r0, #0
beq _080ACCF8
ldr r0, _080ACD24 @ =gUnk_0812AAAC
lsls r1, r2, #2
adds r1, r1, r0
ldr r7, [r1]
ldr r0, [r4, #0x74]
adds r0, r7, r0
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _080ACCA4
str r0, [r4, #0x74]
_080ACCA4:
ldr r0, [r4, #0x74]
adds r0, r7, r0
movs r2, #0
ldrsb r2, [r0, r2]
movs r3, #1
ldrsb r3, [r0, r3]
adds r0, r4, #0
movs r1, #0xe
bl sub_08008782
adds r5, r0, #0
cmp r5, #0
beq _080ACCF2
ldrb r1, [r5, #5]
ldrb r2, [r5, #2]
movs r0, #0x11
bl CreateObject
adds r6, r0, #0
cmp r6, #0
beq _080ACCF2
ldrb r0, [r5, #3]
strb r0, [r6, #0xe]
ldr r0, [r4, #0x74]
adds r0, r7, r0
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r4, #0x2e]
adds r0, r0, r1
strh r0, [r6, #0x2e]
ldr r0, [r4, #0x74]
adds r0, r0, r7
ldrb r0, [r0, #1]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r4, #0x32]
adds r0, r0, r1
strh r0, [r6, #0x32]
_080ACCF2:
ldr r0, [r4, #0x74]
adds r0, #2
str r0, [r4, #0x74]
_080ACCF8:
ldr r2, [r4, #0x54]
cmp r2, #0
bne _080ACD08
ldr r0, [r4, #0x70]
cmp r0, #2
bls _080ACD08
movs r0, #1
str r0, [r4, #0x70]
_080ACD08:
ldr r0, [r4, #0x70]
subs r0, #1
str r0, [r4, #0x70]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bne _080ACDAE
cmp r2, #0
bne _080ACD28
movs r0, #2
b _080ACD32
.align 2, 0
_080ACD20: .4byte gScreenTransition
_080ACD24: .4byte gUnk_0812AAAC
_080ACD28:
ldr r0, _080ACD74 @ =gUnk_0812AABC
ldrb r1, [r4, #0xa]
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
_080ACD32:
str r0, [r4, #0x70]
movs r0, #0x17
movs r1, #0
movs r2, #0
bl CreateObject
adds r6, r0, #0
cmp r6, #0
beq _080ACDAE
bl Random
adds r2, r0, #0
movs r0, #0xf
ands r2, r0
ldr r3, [r4, #0x48]
ldrb r1, [r3, #6]
cmp r1, r2
bge _080ACD58
adds r2, r1, #0
_080ACD58:
movs r0, #1
ands r0, r2
cmp r0, #0
beq _080ACD62
rsbs r2, r2, #0
_080ACD62:
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
cmp r0, #1
beq _080ACD9C
cmp r0, #1
bgt _080ACD78
cmp r0, #0
beq _080ACD82
b _080ACDAE
.align 2, 0
_080ACD74: .4byte gUnk_0812AABC
_080ACD78:
cmp r0, #2
beq _080ACD8C
cmp r0, #3
beq _080ACDA2
b _080ACDAE
_080ACD82:
ldrb r0, [r3, #7]
ldrh r1, [r4, #0x32]
subs r1, r1, r0
strh r1, [r6, #0x32]
b _080ACD94
_080ACD8C:
ldrh r0, [r4, #0x32]
ldrb r3, [r3, #7]
adds r0, r0, r3
strh r0, [r6, #0x32]
_080ACD94:
ldrh r0, [r4, #0x2e]
adds r0, r0, r2
strh r0, [r6, #0x2e]
b _080ACDAE
_080ACD9C:
ldrh r0, [r4, #0x2e]
adds r0, r0, r1
b _080ACDA6
_080ACDA2:
ldrh r0, [r4, #0x2e]
subs r0, r0, r1
_080ACDA6:
strh r0, [r6, #0x2e]
ldrh r0, [r4, #0x32]
adds r0, r0, r2
strh r0, [r6, #0x32]
_080ACDAE:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_080ACDB0
sub_080ACDB0: @ 0x080ACDB0
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080ACDE8
ldr r2, _080ACDE0 @ =gPlayerEntity
ldr r1, _080ACDE4 @ =gUnk_08126EE4
ldrb r0, [r4, #0x14]
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r3, [r2, #0x2e]
adds r0, r0, r3
strh r0, [r4, #0x2e]
ldrb r0, [r4, #0x14]
adds r0, #1
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r2, [r2, #0x32]
adds r0, r0, r2
b _080ACEB4
.align 2, 0
_080ACDE0: .4byte gPlayerEntity
_080ACDE4: .4byte gUnk_08126EE4
_080ACDE8:
ldrb r2, [r4, #0x14]
movs r0, #2
ands r0, r2
cmp r0, #0
beq _080ACE48
ldr r0, [r4, #0x50]
ldrh r1, [r0, #0x32]
subs r1, #3
strh r1, [r4, #0x32]
movs r1, #4
ands r1, r2
adds r3, r0, #0
cmp r1, #0
beq _080ACE20
movs r0, #0x2e
ldrsh r7, [r3, r0]
movs r0, #0x2e
ldrsh r6, [r4, r0]
ldr r1, _080ACE1C @ =gUnk_0812AAE8
ldrb r2, [r4, #0xa]
adds r0, r2, r1
ldrb r0, [r0]
rsbs r5, r0, #0
adds r0, r1, #0
b _080ACE30
.align 2, 0
_080ACE1C: .4byte gUnk_0812AAE8
_080ACE20:
movs r0, #0x2e
ldrsh r6, [r3, r0]
movs r0, #0x2e
ldrsh r7, [r4, r0]
ldr r0, _080ACE44 @ =gUnk_0812AAE8
ldrb r2, [r4, #0xa]
adds r1, r2, r0
ldrb r5, [r1]
_080ACE30:
subs r1, r7, r6
str r1, [r4, #0x78]
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, r1
bhi _080ACE90
ldrh r0, [r3, #0x2e]
adds r0, r0, r5
strh r0, [r4, #0x2e]
b _080ACEB6
.align 2, 0
_080ACE44: .4byte gUnk_0812AAE8
_080ACE48:
ldr r1, [r4, #0x50]
ldrh r0, [r1, #0x2e]
strh r0, [r4, #0x2e]
movs r0, #4
ands r0, r2
adds r3, r1, #0
cmp r0, #0
beq _080ACE70
movs r0, #0x32
ldrsh r6, [r3, r0]
movs r0, #0x32
ldrsh r7, [r4, r0]
ldr r0, _080ACE6C @ =gUnk_0812AAE8
ldrb r2, [r4, #0xa]
adds r1, r2, r0
ldrb r5, [r1]
b _080ACE84
.align 2, 0
_080ACE6C: .4byte gUnk_0812AAE8
_080ACE70:
movs r0, #0x32
ldrsh r7, [r3, r0]
movs r0, #0x32
ldrsh r6, [r4, r0]
ldr r1, _080ACEAC @ =gUnk_0812AAE8
ldrb r2, [r4, #0xa]
adds r0, r2, r1
ldrb r0, [r0]
rsbs r5, r0, #0
adds r0, r1, #0
_080ACE84:
subs r1, r7, r6
str r1, [r4, #0x78]
adds r0, r2, r0
ldrb r0, [r0]
cmp r0, r1
bls _080ACEB0
_080ACE90:
subs r0, r0, r1
lsls r1, r0, #8
strh r1, [r4, #0x24]
lsls r0, r0, #0x18
asrs r0, r0, #0x10
movs r1, #0x80
lsls r1, r1, #2
cmp r0, r1
ble _080ACEA4
strh r1, [r4, #0x24]
_080ACEA4:
adds r0, r4, #0
bl sub_080AEFB4
b _080ACEB6
.align 2, 0
_080ACEAC: .4byte gUnk_0812AAE8
_080ACEB0:
ldrh r0, [r3, #0x32]
adds r0, r0, r5
_080ACEB4:
strh r0, [r4, #0x32]
_080ACEB6:
ldr r0, _080ACEC8 @ =gPlayerEntity
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
movs r0, #0
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080ACEC8: .4byte gPlayerEntity
thumb_func_start sub_080ACECC
sub_080ACECC: @ 0x080ACECC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #2
bhi _080ACF0C
ldr r0, [r4, #0x54]
cmp r0, #0
bne _080ACF0C
ldr r2, [r4, #0x78]
cmp r2, #0
blt _080ACF0C
ldr r0, _080ACF10 @ =gUnk_0812AAE8
ldrb r1, [r4, #0xa]
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, r2
bhi _080ACF0C
adds r1, #1
movs r0, #0x10
movs r2, #0
movs r3, #0
bl CreatePlayerItem
adds r1, r0, #0
cmp r1, #0
beq _080ACF0C
str r4, [r1, #0x50]
str r1, [r4, #0x54]
ldrh r0, [r4, #0x2e]
strh r0, [r1, #0x2e]
ldrh r0, [r4, #0x32]
strh r0, [r1, #0x32]
_080ACF0C:
pop {r4, pc}
.align 2, 0
_080ACF10: .4byte gUnk_0812AAE8
+487
View File
@@ -0,0 +1,487 @@
thumb_func_start PlayerItem12
PlayerItem12: @ 0x080700E8
push {lr}
ldr r2, _080700FC @ =gUnk_0811B98C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080700FC: .4byte gUnk_0811B98C
thumb_func_start sub_08070100
sub_08070100: @ 0x08070100
push {r4, r5, lr}
adds r5, r0, #0
movs r2, #1
movs r3, #1
strb r3, [r5, #0xc]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
ldrb r1, [r5, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r5, #0x10]
ldrb r0, [r5, #0x14]
lsls r0, r0, #2
strb r0, [r5, #0x15]
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r5, #0x24]
movs r0, #0x40
str r0, [r5, #0x74]
movs r0, #0xf0
lsls r0, r0, #1
str r0, [r5, #0x78]
ldr r2, _0807017C @ =gPlayerEntity
ldr r1, _08070180 @ =gUnk_0811B9A0
ldrb r0, [r5, #0x14]
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r4, [r2, #0x2e]
adds r0, r0, r4
strh r0, [r5, #0x2e]
ldrb r0, [r5, #0x14]
adds r0, #1
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r5, #0x32]
adds r1, r5, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
subs r1, #1
movs r0, #0x8a
strb r0, [r1]
ldr r0, _08070184 @ =gUnk_0811B9D0
str r0, [r5, #0x48]
adds r0, r5, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #2
bne _08070188
strb r3, [r5, #0xa]
b _0807018C
.align 2, 0
_0807017C: .4byte gPlayerEntity
_08070180: .4byte gUnk_0811B9A0
_08070184: .4byte gUnk_0811B9D0
_08070188:
movs r0, #0
strb r0, [r5, #0xa]
_0807018C:
ldrb r1, [r2, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r5, #0x1b]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x1b]
ldrb r3, [r5, #0x14]
lsrs r3, r3, #1
lsls r3, r3, #3
ldr r0, _080701F0 @ =gUnk_0811B9A8
adds r3, r3, r0
ldrb r1, [r3]
movs r0, #1
ands r1, r0
lsls r1, r1, #6
ldrb r2, [r5, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x18]
ldrb r1, [r3, #1]
lsls r1, r1, #7
movs r2, #0x7f
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x18]
ldrb r0, [r3, #4]
adds r4, r5, #0
adds r4, #0x58
strb r0, [r4]
movs r0, #2
ldrsb r0, [r3, r0]
str r0, [r5, #0x6c]
movs r0, #3
ldrsb r0, [r3, r0]
str r0, [r5, #0x70]
adds r0, r5, #0
bl sub_0801766C
ldrb r1, [r4]
adds r0, r5, #0
bl InitializeAnimation
ldr r0, _080701F4 @ =0x000001DD
bl SoundReq
pop {r4, r5, pc}
.align 2, 0
_080701F0: .4byte gUnk_0811B9A8
_080701F4: .4byte 0x000001DD
thumb_func_start sub_080701F8
sub_080701F8: @ 0x080701F8
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r0, _08070244 @ =gUnk_0811B9C8
ldrb r1, [r5, #0x14]
adds r2, r1, r0
movs r6, #0
ldrsb r6, [r2, r6]
adds r1, #1
adds r1, r1, r0
movs r7, #0
ldrsb r7, [r1, r7]
adds r0, r5, #0
movs r1, #0xa
adds r2, r6, #0
adds r3, r7, #0
bl sub_08008782
adds r4, r0, #0
cmp r4, #0
beq _08070248
ldrb r1, [r4, #5]
ldrb r2, [r4, #2]
movs r0, #0x53
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08070260
ldrb r0, [r4, #3]
strb r0, [r1, #0xe]
ldrh r0, [r5, #0x2e]
adds r0, r0, r6
strh r0, [r1, #0x2e]
ldrh r0, [r5, #0x32]
adds r0, r0, r7
strh r0, [r1, #0x32]
b _08070260
.align 2, 0
_08070244: .4byte gUnk_0811B9C8
_08070248:
ldr r0, [r5, #0x74]
subs r0, #1
str r0, [r5, #0x74]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
beq _08070260
ldr r0, [r5, #0x78]
subs r0, #1
str r0, [r5, #0x78]
cmp r0, r1
bne _08070268
_08070260:
adds r0, r5, #0
bl sub_08070458
b _0807037A
_08070268:
adds r0, r5, #0
bl GetNextFrame
adds r0, r5, #0
bl sub_0806F69C
ldrb r0, [r5, #0xa]
cmp r0, #0
bne _08070280
adds r0, r5, #0
bl sub_0800451C
_08070280:
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r7, _08070354 @ =gRoomControls
ldrh r1, [r7, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r6, #0x3f
ands r0, r6
movs r2, #0x32
ldrsh r1, [r5, r2]
ldrh r2, [r7, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
lsls r1, r1, #6
orrs r0, r1
ldr r1, _08070358 @ =gPlayerEntity
adds r1, #0x38
ldrb r1, [r1]
movs r2, #0x80
bl sub_080002F0
cmp r0, #0
bne _0807036A
ldr r1, _0807035C @ =gUnk_08003E44
movs r3, #0x2e
ldrsh r2, [r5, r3]
movs r0, #0x32
ldrsh r3, [r5, r0]
adds r0, r5, #0
bl sub_080040D8
cmp r0, #0
bne _08070364
adds r0, r5, #0
bl sub_080002B8
cmp r0, #0x19
bne _0807036A
movs r0, #4
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r5, #0x10]
ldrh r2, [r5, #0x2e]
movs r1, #0x10
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
movs r2, #8
orrs r0, r2
strh r0, [r5, #0x2e]
ldrh r0, [r5, #0x32]
ands r1, r0
orrs r1, r2
strh r1, [r5, #0x32]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldrh r1, [r7, #6]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r6
movs r2, #0x32
ldrsh r1, [r5, r2]
ldrh r2, [r7, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
lsls r1, r1, #6
orrs r0, r1
adds r4, r5, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_080001DA
str r0, [r5, #0x7c]
adds r0, r5, #0
movs r1, #0x14
bl InitializeAnimation
ldr r0, _08070360 @ =0x00004020
movs r3, #0x2e
ldrsh r1, [r5, r3]
ldrh r2, [r7, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
movs r3, #0x32
ldrsh r2, [r5, r3]
ldrh r3, [r7, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r6
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r4]
bl SetTile
b _0807037A
.align 2, 0
_08070354: .4byte gRoomControls
_08070358: .4byte gPlayerEntity
_0807035C: .4byte gUnk_08003E44
_08070360: .4byte 0x00004020
_08070364:
adds r0, r5, #0
bl sub_08070458
_0807036A:
adds r0, r5, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0
beq _0807037A
adds r0, r5, #0
bl sub_08070458
_0807037A:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0807037C
sub_0807037C: @ 0x0807037C
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r4, #0x5a
ldrb r1, [r4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08070394
bl DeleteThisEntity
_08070394:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08070398
sub_08070398: @ 0x08070398
push {r4, lr}
adds r4, r0, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_0806F69C
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _080703B8
bl DeleteThisEntity
_080703B8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080703BC
sub_080703BC: @ 0x080703BC
push {r4, r5, lr}
adds r4, r0, #0
bl GetNextFrame
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _08070404 @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080001DA
adds r1, r0, #0
ldr r0, _08070408 @ =0x00004021
cmp r1, r0
beq _0807042E
cmp r1, r0
bhi _0807040C
subs r0, #1
cmp r1, r0
beq _08070420
b _08070412
.align 2, 0
_08070404: .4byte gRoomControls
_08070408: .4byte 0x00004021
_0807040C:
ldr r0, _08070418 @ =0x00004070
cmp r1, r0
beq _0807041C
_08070412:
movs r0, #0
str r0, [r4, #0x7c]
b _0807042E
.align 2, 0
_08070418: .4byte 0x00004070
_0807041C:
movs r0, #0xff
str r0, [r4, #0x78]
_08070420:
ldr r0, [r4, #0x78]
subs r0, #1
str r0, [r4, #0x78]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bne _08070436
_0807042E:
adds r0, r4, #0
bl sub_08070458
b _08070454
_08070436:
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
cmp r1, #0
beq _08070454
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _0807044E
ldrb r0, [r4, #0xc]
cmp r0, #0x1a
bne _08070454
_0807044E:
adds r0, r4, #0
bl sub_08070458
_08070454:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08070458
sub_08070458: @ 0x08070458
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r2, #0
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
strh r2, [r4, #0x24]
ldr r5, [r4, #0x7c]
cmp r5, #0
beq _0807049E
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _080704B4 @ =gRoomControls
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r6, #0x32
ldrsh r0, [r4, r6]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x38
ldrb r2, [r0]
adds r0, r5, #0
bl SetTile
_0807049E:
adds r0, r4, #0
movs r1, #0x13
bl InitializeAnimation
adds r0, r4, #0
bl sub_08017744
ldr r0, _080704B8 @ =0x00000199
bl SoundReq
pop {r4, r5, r6, pc}
.align 2, 0
_080704B4: .4byte gRoomControls
_080704B8: .4byte 0x00000199
+567
View File
@@ -0,0 +1,567 @@
thumb_func_start PlayerItem13
PlayerItem13: @ 0x080ACF14
push {lr}
ldr r2, _080ACF28 @ =gUnk_081320A8
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080ACF28: .4byte gUnk_081320A8
thumb_func_start sub_080ACF2C
sub_080ACF2C: @ 0x080ACF2C
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
ldr r0, _080ACF60 @ =gUnk_081320E4
str r0, [r4, #0x48]
ldr r5, [r4, #0x54]
adds r6, r5, #0
cmp r5, #0
beq _080ACF64
ldr r0, [r5, #0x2c]
str r0, [r4, #0x2c]
ldr r0, [r5, #0x30]
str r0, [r4, #0x30]
ldr r0, [r5, #0x34]
str r0, [r4, #0x34]
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
ldrb r0, [r5, #0x16]
strb r0, [r4, #0x16]
b _080ACFB6
.align 2, 0
_080ACF60: .4byte gUnk_081320E4
_080ACF64:
adds r5, r4, #0
str r4, [r4, #0x54]
movs r0, #2
strb r0, [r4, #0xc]
ldr r3, _080ACFC8 @ =gUnk_081320B8
ldrb r0, [r4, #0xf]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r1, [r0, #1]
movs r0, #0xf
ands r1, r0
ldrb r2, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1a]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
strb r6, [r4, #0x16]
ldrb r0, [r4, #0xf]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r1, [r0, #2]
adds r0, r4, #0
adds r0, #0x60
strh r1, [r0]
ldrb r0, [r4, #0xf]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r1, [r0]
adds r0, r4, #0
bl InitializeAnimation
bl sub_08078D60
_080ACFB6:
ldrb r1, [r5, #8]
adds r0, r4, #0
adds r0, #0x6c
strh r1, [r0]
ldrb r1, [r5, #9]
adds r0, #2
strh r1, [r0]
pop {r4, r5, r6, pc}
.align 2, 0
_080ACFC8: .4byte gUnk_081320B8
thumb_func_start sub_080ACFCC
sub_080ACFCC: @ 0x080ACFCC
push {r4, lr}
adds r4, r0, #0
ldr r1, [r4, #0x54]
adds r0, #0x6c
ldrh r0, [r0]
ldrb r2, [r1, #8]
cmp r0, r2
beq _080ACFE8
adds r0, r4, #0
adds r0, #0x6e
ldrh r0, [r0]
ldrb r2, [r1, #9]
cmp r0, r2
bne _080AD034
_080ACFE8:
ldrb r0, [r1, #0xc]
cmp r0, #2
beq _080ACFF8
bl sub_08079184
bl DeleteThisEntity
b _080AD03C
_080ACFF8:
ldr r0, _080AD02C @ =gPlayerState
ldrb r0, [r0, #5]
cmp r0, #0
beq _080AD00E
ldr r0, _080AD030 @ =gPlayerEntity
adds r0, #0x79
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _080AD03C
_080AD00E:
adds r0, r4, #0
bl sub_080AD27C
ldrb r0, [r4, #0xd]
adds r0, #1
movs r2, #0
strb r0, [r4, #0xd]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
movs r0, #0xff
strb r0, [r4, #0x15]
str r2, [r4, #0x20]
b _080AD03C
.align 2, 0
_080AD02C: .4byte gPlayerState
_080AD030: .4byte gPlayerEntity
_080AD034:
bl sub_08079184
bl DeleteThisEntity
_080AD03C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080AD040
sub_080AD040: @ 0x080AD040
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, [r4, #0x54]
ldrb r0, [r5, #0xc]
cmp r0, #2
beq _080AD050
bl DeleteThisEntity
_080AD050:
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r3, #0x80
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _080AD064
movs r0, #0
str r0, [r4, #0x34]
_080AD064:
movs r1, #0x24
ldrsh r0, [r4, r1]
cmp r0, #0
bne _080AD06E
b _080AD220
_080AD06E:
adds r2, r4, #0
adds r2, #0x42
ldrb r1, [r2]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _080AD088
adds r0, r4, #0
adds r0, #0x3e
ldrb r0, [r0]
movs r1, #0
strb r0, [r4, #0x15]
strb r1, [r2]
_080AD088:
ldr r2, _080AD0B0 @ =gUnk_081320C4
ldrb r0, [r4, #0x15]
lsrs r0, r0, #2
adds r1, r0, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, #1
adds r0, r0, r2
movs r2, #0
ldrsb r2, [r0, r2]
adds r0, r4, #0
bl sub_080002B4
cmp r0, #0x74
bne _080AD0B4
adds r0, r4, #0
bl sub_0806F69C
b _080AD0C8
.align 2, 0
_080AD0B0: .4byte gUnk_081320C4
_080AD0B4:
adds r0, r4, #0
bl sub_080002D0
cmp r0, #0x24
beq _080AD0C8
cmp r0, #0x26
beq _080AD0C8
adds r0, r4, #0
bl sub_080AF00C
_080AD0C8:
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
beq _080AD0D8
b _080AD202
_080AD0D8:
ldr r0, [r4, #0x20]
str r0, [r5, #0x20]
ldr r0, [r4, #0x2c]
str r0, [r5, #0x2c]
ldr r0, [r4, #0x30]
str r0, [r5, #0x30]
ldr r0, [r4, #0x34]
str r0, [r5, #0x34]
adds r0, r4, #0
bl sub_080002B8
cmp r0, #0x11
bhi _080AD0FC
cmp r0, #0x10
bhs _080AD104
cmp r0, #0xd
beq _080AD104
b _080AD14E
_080AD0FC:
cmp r0, #0x13
beq _080AD104
cmp r0, #0x5a
bne _080AD14E
_080AD104:
cmp r5, r4
bne _080AD146
cmp r0, #0x11
bhi _080AD116
cmp r0, #0x10
bhs _080AD12C
cmp r0, #0xd
beq _080AD120
b _080AD142
_080AD116:
cmp r0, #0x13
beq _080AD138
cmp r0, #0x5a
beq _080AD126
b _080AD142
_080AD120:
adds r0, r4, #0
movs r1, #0
b _080AD130
_080AD126:
adds r0, r4, #0
movs r1, #0xc
b _080AD130
_080AD12C:
adds r0, r4, #0
movs r1, #0xb
_080AD130:
movs r2, #0
bl CreateFx
b _080AD142
_080AD138:
adds r0, r4, #0
movs r1, #0x52
movs r2, #0
bl CreateFx
_080AD142:
movs r0, #4
b _080AD148
_080AD146:
movs r0, #3
_080AD148:
strb r0, [r5, #0xd]
bl DeleteThisEntity
_080AD14E:
ldr r0, [r4, #0x54]
cmp r0, r4
bne _080AD178
ldrb r0, [r4, #0xb]
cmp r0, #0xff
beq _080AD1DA
cmp r0, #0xf
bne _080AD16A
ldrb r1, [r4, #0xe]
adds r0, r4, #0
movs r2, #0x80
bl CreateFx
b _080AD1DA
_080AD16A:
ldrb r1, [r4, #0xb]
ldrb r2, [r4, #0xe]
adds r0, r4, #0
movs r3, #0
bl CreateObjectWithParent
b _080AD1DA
_080AD178:
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _080AD188
adds r0, r5, #0
bl sub_080AD32C
cmp r0, #0
beq _080AD1E0
_080AD188:
ldrb r0, [r4, #0xe]
cmp r0, #1
bne _080AD196
movs r0, #0x82
lsls r0, r0, #1
bl SoundReq
_080AD196:
adds r0, r4, #0
bl UpdateSpriteForCollisionLayer
movs r0, #3
strb r0, [r5, #0xd]
ldrb r2, [r4, #0x19]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r3, [r5, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r3
orrs r0, r2
strb r0, [r5, #0x19]
ldrb r0, [r4, #0x1b]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r5, #0x1b]
ands r1, r2
orrs r1, r0
strb r1, [r5, #0x1b]
adds r0, r4, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
adds r3, r5, #0
adds r3, #0x29
lsrs r1, r1, #0x1d
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_080AD1DA:
bl DeleteThisEntity
b _080AD26E
_080AD1E0:
movs r0, #0x82
lsls r0, r0, #1
bl SoundReq
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
movs r0, #0x80
lsls r0, r0, #9
str r0, [r4, #0x20]
movs r1, #0x24
ldrsh r0, [r4, r1]
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
strh r0, [r4, #0x24]
b _080AD26E
_080AD202:
adds r0, r4, #0
bl sub_0800451C
adds r0, r4, #0
bl sub_0806F8DC
adds r0, r4, #0
adds r1, r5, #0
bl CopyPosition
ldr r0, [r4, #0x20]
str r0, [r5, #0x20]
ldrb r0, [r4, #0x15]
strb r0, [r5, #0x15]
b _080AD26E
_080AD220:
ldr r1, _080AD240 @ =gPlayerEntity
adds r0, r1, #0
adds r0, #0x5a
ldrb r0, [r0]
movs r5, #1
ands r5, r0
cmp r5, #0
beq _080AD244
movs r0, #0x79
bl SoundReq
adds r0, r4, #0
bl sub_080AD27C
b _080AD26E
.align 2, 0
_080AD240: .4byte gPlayerEntity
_080AD244:
ldr r0, _080AD270 @ =gPlayerState
ldrb r0, [r0, #5]
cmp r0, #0
beq _080AD25A
adds r0, r1, #0
adds r0, #0x79
ldrb r1, [r0]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _080AD26E
_080AD25A:
adds r0, r4, #0
bl sub_080AD27C
ldrb r0, [r4, #0x10]
movs r1, #0x7f
ands r1, r0
strb r1, [r4, #0x10]
movs r0, #0xff
strb r0, [r4, #0x15]
str r5, [r4, #0x20]
_080AD26E:
pop {r4, r5, pc}
.align 2, 0
_080AD270: .4byte gPlayerState
thumb_func_start sub_080AD274
sub_080AD274: @ 0x080AD274
push {lr}
bl DeleteThisEntity
pop {pc}
thumb_func_start sub_080AD27C
sub_080AD27C: @ 0x080AD27C
push {r4, r5, lr}
adds r3, r0, #0
ldr r4, [r3, #0x54]
ldr r1, _080AD2AC @ =gPlayerEntity
movs r0, #0
str r0, [r1, #0x74]
adds r0, r3, #0
adds r0, #0x6c
ldrh r0, [r0]
adds r5, r1, #0
ldrb r1, [r4, #8]
cmp r0, r1
bne _080AD320
adds r0, r3, #0
adds r0, #0x6e
ldrh r0, [r0]
ldrb r1, [r4, #9]
cmp r0, r1
bne _080AD320
cmp r4, r3
beq _080AD2B0
movs r0, #2
strb r0, [r4, #0xd]
b _080AD2C2
.align 2, 0
_080AD2AC: .4byte gPlayerEntity
_080AD2B0:
adds r2, r3, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r0
movs r0, #0x18
orrs r1, r0
strb r1, [r2]
_080AD2C2:
ldr r0, [r4, #0x48]
str r0, [r3, #0x48]
ldrb r1, [r3, #0x16]
lsrs r1, r1, #4
ldr r2, _080AD318 @ =gUnk_081320CC
lsls r0, r1, #1
adds r0, r0, r2
ldrh r0, [r0]
strh r0, [r3, #0x24]
ldr r0, _080AD31C @ =gUnk_081320D4
lsls r1, r1, #2
adds r1, r1, r0
ldr r0, [r1]
str r0, [r3, #0x20]
ldrh r0, [r4, #0x36]
adds r0, #8
strh r0, [r4, #0x36]
strh r0, [r3, #0x36]
adds r0, r4, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r3, #0
adds r0, #0x38
strb r1, [r0]
ldrh r0, [r5, #0x32]
strh r0, [r3, #0x32]
ldrh r0, [r5, #0x2e]
strh r0, [r3, #0x2e]
adds r0, r5, #0
adds r0, #0x3c
ldrb r1, [r0]
adds r0, r3, #0
adds r0, #0x3c
strb r1, [r0]
ldrb r1, [r3, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r3, #0x10]
adds r0, r3, #0
bl sub_0801766C
b _080AD328
.align 2, 0
_080AD318: .4byte gUnk_081320CC
_080AD31C: .4byte gUnk_081320D4
_080AD320:
bl sub_08079184
bl DeleteThisEntity
_080AD328:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080AD32C
sub_080AD32C: @ 0x080AD32C
push {lr}
adds r2, r0, #0
movs r3, #0
ldrb r1, [r2, #0x16]
movs r0, #0xf0
ands r0, r1
cmp r0, #0x10
beq _080AD34C
ldrb r0, [r2, #8]
cmp r0, #6
bne _080AD34E
ldrb r0, [r2, #9]
cmp r0, #5
beq _080AD34C
cmp r0, #0x7d
bne _080AD34E
_080AD34C:
movs r3, #1
_080AD34E:
adds r0, r3, #0
pop {pc}
.align 2, 0
+194
View File
@@ -0,0 +1,194 @@
thumb_func_start PlayerItem15
PlayerItem15: @ 0x080A306C
push {lr}
ldr r2, _080A3080 @ =gUnk_08127270
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080A3080: .4byte gUnk_08127270
thumb_func_start sub_080A3084
sub_080A3084: @ 0x080A3084
push {r4, r5, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r5, #1
strb r5, [r4, #0xc]
ldr r0, [r4, #0x50]
adds r1, r4, #0
bl CopyPosition
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080A30F8
ldr r0, _080A30EC @ =gPlayerEntity
adds r0, #0x3c
ldrb r0, [r0]
adds r0, #1
adds r1, r4, #0
adds r1, #0x3c
strb r0, [r1]
ldr r0, _080A30F0 @ =gUnk_08127278
str r0, [r4, #0x48]
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r4, #0x24]
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #2
bne _080A30CC
strb r5, [r4, #0xb]
_080A30CC:
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
movs r0, #0x3c
str r0, [r4, #0x6c]
adds r0, r4, #0
bl sub_0801766C
adds r0, r4, #0
bl sub_0806F69C
ldr r0, _080A30F4 @ =0x0000013F
bl SoundReq
b _080A30FC
.align 2, 0
_080A30EC: .4byte gPlayerEntity
_080A30F0: .4byte gUnk_08127278
_080A30F4: .4byte 0x0000013F
_080A30F8:
movs r0, #6
strb r0, [r4, #0xe]
_080A30FC:
adds r0, r4, #0
movs r1, #0x18
bl InitializeAnimation
adds r0, r4, #0
bl sub_080A310C
pop {r4, r5, pc}
thumb_func_start sub_080A310C
sub_080A310C: @ 0x080A310C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _080A312A
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _080A3200
bl DeleteThisEntity
b _080A3200
_080A312A:
adds r0, r4, #0
bl GetNextFrame
ldr r0, [r4, #0x6c]
subs r0, #1
str r0, [r4, #0x6c]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
beq _080A31FC
adds r0, r4, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _080A315C
adds r0, r4, #0
bl sub_0800451C
_080A315C:
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _080A31F0 @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
ldr r1, _080A31F4 @ =gPlayerEntity
adds r1, #0x38
ldrb r1, [r1]
movs r2, #0x80
bl sub_080002F0
cmp r0, #0
bne _080A31AE
ldr r1, _080A31F8 @ =gUnk_08003E44
movs r0, #0x2e
ldrsh r2, [r4, r0]
movs r5, #0x32
ldrsh r3, [r4, r5]
adds r0, r4, #0
bl sub_080040D8
cmp r0, #0
beq _080A31AE
adds r0, r4, #0
movs r1, #0x19
movs r2, #0
bl CreateFx
bl DeleteThisEntity
_080A31AE:
adds r0, r4, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0
beq _080A31C6
adds r0, r4, #0
movs r1, #0x19
movs r2, #0
bl CreateFx
bl DeleteThisEntity
_080A31C6:
adds r0, r4, #0
movs r1, #0xc
bl sub_08008790
cmp r0, #0
beq _080A31D6
bl DeleteThisEntity
_080A31D6:
adds r0, r4, #0
adds r0, #0x68
ldrb r3, [r0]
movs r0, #0x15
movs r1, #1
movs r2, #0
bl CreatePlayerItem
str r0, [r4, #0x54]
cmp r0, #0
beq _080A3200
str r4, [r0, #0x50]
b _080A3200
.align 2, 0
_080A31F0: .4byte gRoomControls
_080A31F4: .4byte gPlayerEntity
_080A31F8: .4byte gUnk_08003E44
_080A31FC:
bl DeleteThisEntity
_080A3200:
pop {r4, r5, pc}
.align 2, 0
+566
View File
@@ -0,0 +1,566 @@
thumb_func_start PlayerItem3
PlayerItem3: @ 0x0801B45C
push {r4, lr}
adds r4, r0, #0
ldr r1, _0801B48C @ =gUnk_080B77FC
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
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0xb
beq _0801B4AC
ldrb r0, [r4, #0x14]
cmp r0, #6
bne _0801B490
adds r1, r4, #0
adds r1, #0x86
movs r2, #0x80
lsls r2, r2, #6
b _0801B496
.align 2, 0
_0801B48C: .4byte gUnk_080B77FC
_0801B490:
adds r1, r4, #0
adds r1, #0x86
ldr r2, _0801B4C4 @ =0xFFFFE000
_0801B496:
adds r0, r2, #0
ldrh r2, [r1]
adds r0, r0, r2
strh r0, [r1]
movs r2, #0x80
lsls r2, r2, #1
ldrh r3, [r1]
adds r0, r4, #0
adds r1, r2, #0
bl sub_0805EC9C
_0801B4AC:
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
movs r1, #0xf
ands r0, r1
cmp r0, #0
bne _0801B4C0
movs r0, #0xfb
bl EnqueueSFX
_0801B4C0:
pop {r4, pc}
.align 2, 0
_0801B4C4: .4byte 0xFFFFE000
thumb_func_start sub_0801B4C8
sub_0801B4C8: @ 0x0801B4C8
push {r4, r5, lr}
adds r4, r0, #0
ldr r3, _0801B52C @ =gPlayerState
str r4, [r3, #0x2c]
movs r2, #0
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _0801B530 @ =gUnk_081271CC
str r0, [r4, #0x48]
movs r0, #0xff
strb r0, [r4, #0x1e]
adds r0, r4, #0
adds r0, #0x80
strb r2, [r0]
adds r1, r4, #0
adds r1, #0x58
movs r0, #0xb
strb r0, [r1]
ldr r5, _0801B534 @ =gPlayerEntity
str r5, [r4, #0x50]
adds r0, r4, #0
adds r0, #0x86
strh r2, [r0]
ldrb r1, [r4, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0801B518
ldrb r0, [r5, #0x18]
lsls r0, r0, #0x19
lsrs r0, r0, #0x1f
movs r1, #1
bics r1, r0
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_0801B518:
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xc
bne _0801B538
movs r0, #0xa0
lsls r0, r0, #2
strh r0, [r4, #0x24]
movs r0, #0x3c
b _0801B540
.align 2, 0
_0801B52C: .4byte gPlayerState
_0801B530: .4byte gUnk_081271CC
_0801B534: .4byte gPlayerEntity
_0801B538:
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r4, #0x24]
movs r0, #0x1e
_0801B540:
strb r0, [r4, #0xe]
ldrb r1, [r3, #0xd]
movs r0, #0xd
ldrsb r0, [r3, r0]
cmp r0, #0
blt _0801B550
strb r1, [r4, #0x15]
b _0801B556
_0801B550:
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
_0801B556:
ldrb r0, [r4, #0x15]
adds r1, r4, #0
adds r1, #0x83
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #2
bne _0801B56C
movs r0, #1
strb r0, [r4, #0xb]
_0801B56C:
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_0801766C
adds r0, r4, #0
bl sub_0801B584
pop {r4, r5, pc}
thumb_func_start sub_0801B584
sub_0801B584: @ 0x0801B584
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
bl sub_0801B804
ldr r1, _0801B5F8 @ =gPlayerState
ldrb r0, [r1, #4]
cmp r0, #0
beq _0801B5A8
ldrb r0, [r1, #0x1a]
cmp r0, #0
bne _0801B5A8
ldr r0, [r1, #0x2c]
cmp r0, r6
bne _0801B5B4
ldr r0, _0801B5FC @ =gPlayerEntity
ldrb r0, [r0, #0xc]
cmp r0, #1
beq _0801B5B8
_0801B5A8:
ldr r1, _0801B5F8 @ =gPlayerState
ldr r0, [r1, #0x2c]
cmp r0, r6
bne _0801B5B4
movs r0, #0
str r0, [r1, #0x2c]
_0801B5B4:
bl DeleteThisEntity
_0801B5B8:
ldr r7, _0801B5FC @ =gPlayerEntity
adds r0, r7, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r3, #1
movs r0, #1
ands r0, r1
cmp r0, #0
bne _0801B600
adds r0, r6, #0
adds r0, #0x68
ldrb r0, [r0]
movs r2, #0
cmp r0, #0xc
bne _0801B5D8
movs r2, #6
_0801B5D8:
lsrs r0, r1, #4
adds r1, r0, r2
ldrb r0, [r6, #0x1e]
cmp r0, r1
beq _0801B5EE
strb r1, [r6, #0x1e]
ldrb r1, [r6, #0x1e]
ldrh r2, [r6, #0x12]
adds r0, r6, #0
bl sub_080042D0
_0801B5EE:
adds r0, r6, #0
adds r1, r7, #0
bl sub_08078E84
b _0801B674
.align 2, 0
_0801B5F8: .4byte gPlayerState
_0801B5FC: .4byte gPlayerEntity
_0801B600:
movs r5, #0
movs r0, #2
strb r0, [r6, #0xc]
adds r1, r6, #0
adds r1, #0x60
movs r0, #0xd5
strh r0, [r1]
ldrb r0, [r6, #0x10]
movs r4, #0x80
orrs r0, r4
strb r0, [r6, #0x10]
subs r1, #0x24
ldrb r0, [r1]
orrs r0, r3
strb r0, [r1]
adds r0, r7, #0
adds r0, #0x3b
ldrb r0, [r0]
adds r2, r6, #0
adds r2, #0x3b
strb r0, [r2]
movs r0, #0xa6
strh r0, [r6, #0x12]
ldrb r1, [r6, #0x18]
subs r0, #0xe7
ands r0, r1
movs r1, #4
rsbs r1, r1, #0
ands r0, r1
orrs r0, r3
strb r0, [r6, #0x18]
ldrb r1, [r6, #0x14]
lsrs r1, r1, #1
lsls r1, r1, #1
ldr r2, _0801B678 @ =gUnk_080B7826
adds r0, r1, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r3, [r6, #0x2e]
adds r0, r0, r3
strh r0, [r6, #0x2e]
adds r1, #1
adds r1, r1, r2
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r1, [r6, #0x32]
adds r0, r0, r1
strh r0, [r6, #0x32]
adds r0, r6, #0
movs r1, #0
bl InitializeAnimation
ldr r0, _0801B67C @ =gPlayerState
str r5, [r0, #0x2c]
ldrb r1, [r0, #4]
orrs r4, r1
strb r4, [r0, #4]
_0801B674:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0801B678: .4byte gUnk_080B7826
_0801B67C: .4byte gPlayerState
thumb_func_start sub_0801B680
sub_0801B680: @ 0x0801B680
push {r4, r5, r6, lr}
adds r4, r0, #0
bl sub_0801B804
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xc
bne _0801B6DC
adds r0, r4, #0
adds r0, #0x80
ldrb r0, [r0]
cmp r0, #0
bne _0801B6DC
ldr r3, _0801B6C4 @ =gPlayerState
ldrb r1, [r3, #0xd]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0801B6DC
adds r2, r4, #0
adds r2, #0x83
ldrb r0, [r2]
ldrb r1, [r3, #0xd]
subs r0, r0, r1
movs r3, #0x1f
ands r0, r3
cmp r0, #0x10
ble _0801B6C8
adds r1, r4, #0
adds r1, #0x82
ldrh r0, [r1]
adds r0, #0x40
b _0801B6D0
.align 2, 0
_0801B6C4: .4byte gPlayerState
_0801B6C8:
adds r1, r4, #0
adds r1, #0x82
ldrh r0, [r1]
subs r0, #0x40
_0801B6D0:
strh r0, [r1]
ldrb r1, [r2]
adds r0, r3, #0
ands r0, r1
strb r0, [r2]
strb r0, [r4, #0x15]
_0801B6DC:
adds r0, r4, #0
bl sub_0806F69C
movs r5, #0
adds r0, r4, #0
bl sub_0801B864
cmp r0, #0
beq _0801B6FE
adds r0, r4, #0
adds r0, #0x68
ldrb r1, [r0]
movs r0, #0xc
eors r1, r0
rsbs r0, r1, #0
orrs r0, r1
lsrs r5, r0, #0x1f
_0801B6FE:
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _0801B780 @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r6, #0x32
ldrsh r1, [r4, r6]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
ldr r1, _0801B784 @ =gPlayerEntity
adds r1, #0x38
ldrb r1, [r1]
movs r2, #0x80
bl sub_080002F0
cmp r0, #0
bne _0801B73C
cmp r5, #0
bne _0801B790
ldr r1, _0801B788 @ =gUnk_08003E44
adds r0, r4, #0
bl sub_080040E2
adds r5, r0, #0
_0801B73C:
cmp r5, #0
bne _0801B790
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xb
bhi _0801B754
ldrh r0, [r4, #0x24]
subs r0, #0x10
strh r0, [r4, #0x24]
_0801B754:
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _0801B75C
movs r5, #1
_0801B75C:
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0801B76C
movs r5, #1
_0801B76C:
cmp r5, #0
beq _0801B7A4
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xc
bne _0801B78C
movs r0, #0x1e
b _0801B792
.align 2, 0
_0801B780: .4byte gRoomControls
_0801B784: .4byte gPlayerEntity
_0801B788: .4byte gUnk_08003E44
_0801B78C:
movs r0, #0xc
b _0801B792
_0801B790:
movs r0, #1
_0801B792:
strb r0, [r4, #0xe]
cmp r5, #0
beq _0801B7A4
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0xe0
lsls r0, r0, #1
strh r0, [r4, #0x24]
_0801B7A4:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0801B7A8
sub_0801B7A8: @ 0x0801B7A8
push {r4, r5, lr}
adds r5, r0, #0
bl sub_0801B804
ldrb r0, [r5, #0xe]
cmp r0, #0
beq _0801B7BC
subs r0, #1
strb r0, [r5, #0xe]
b _0801B7FA
_0801B7BC:
adds r0, r5, #0
bl sub_0801B864
ldrh r2, [r5, #0x24]
movs r0, #0x24
ldrsh r1, [r5, r0]
ldr r0, _0801B7FC @ =0x0000027F
cmp r1, r0
bgt _0801B7D4
adds r0, r2, #0
adds r0, #8
strh r0, [r5, #0x24]
_0801B7D4:
ldr r4, _0801B800 @ =gPlayerEntity
adds r0, r5, #0
adds r1, r4, #0
bl GetFacingDirection
strb r0, [r5, #0x15]
adds r0, r5, #0
bl sub_0806F69C
adds r0, r5, #0
adds r1, r4, #0
movs r2, #2
movs r3, #2
bl sub_0800419C
cmp r0, #0
beq _0801B7FA
bl DeleteThisEntity
_0801B7FA:
pop {r4, r5, pc}
.align 2, 0
_0801B7FC: .4byte 0x0000027F
_0801B800: .4byte gPlayerEntity
thumb_func_start sub_0801B804
sub_0801B804: @ 0x0801B804
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0xc
bl IsItemEquipped
cmp r0, #1
beq _0801B820
cmp r0, #1
blo _0801B81C
cmp r0, #2
beq _0801B824
b _0801B826
_0801B81C:
movs r4, #1
b _0801B826
_0801B820:
movs r4, #2
b _0801B826
_0801B824:
movs r4, #0
_0801B826:
ldr r3, _0801B850 @ =gPlayerState
adds r0, r3, #0
adds r0, #0x90
ldrh r0, [r0]
ands r4, r0
cmp r4, #0
bne _0801B854
adds r1, r5, #0
adds r1, #0x80
movs r0, #1
strb r0, [r1]
ldrb r2, [r3, #0xa]
movs r1, #0x7f
adds r0, r1, #0
ands r0, r2
strb r0, [r3, #0xa]
ldrb r0, [r3, #0xb]
ands r1, r0
strb r1, [r3, #0xb]
b _0801B862
.align 2, 0
_0801B850: .4byte gPlayerState
_0801B854:
ldrb r1, [r3, #0xa]
movs r0, #0x80
orrs r1, r0
strb r1, [r3, #0xa]
ldrb r1, [r3, #0xb]
orrs r0, r1
strb r0, [r3, #0xb]
_0801B862:
pop {r4, r5, pc}
thumb_func_start sub_0801B864
sub_0801B864: @ 0x0801B864
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0801B874
adds r0, r4, #0
bl sub_0800451C
_0801B874:
ldrb r0, [r4, #0x15]
lsrs r0, r0, #2
lsls r0, r0, #1
ldr r3, _0801B894 @ =gUnk_080B782E
adds r1, r0, r3
movs r2, #0
ldrsb r2, [r1, r2]
adds r0, #1
adds r0, r0, r3
movs r3, #0
ldrsb r3, [r0, r3]
adds r0, r4, #0
movs r1, #2
bl sub_08008782
pop {r4, pc}
.align 2, 0
_0801B894: .4byte gUnk_080B782E
+402
View File
@@ -0,0 +1,402 @@
thumb_func_start PlayerItemBomb
PlayerItemBomb: @ 0x0801B188
push {r4, lr}
adds r4, r0, #0
ldr r0, _0801B1E0 @ =gUnk_080B77C8
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl GetNextFrame
ldrb r2, [r4, #0xc]
cmp r2, #3
beq _0801B24E
ldrb r1, [r4, #0xe]
cmp r1, #0
beq _0801B1E4
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #7
bne _0801B1BC
subs r0, r1, #1
strb r0, [r4, #0xe]
_0801B1BC:
ldrb r1, [r4, #0xe]
cmp r1, #0
bne _0801B24E
movs r0, #0x50
strb r0, [r4, #0xf]
str r1, [r4, #0x68]
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
movs r2, #0x80
lsls r2, r2, #1
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
b _0801B24E
.align 2, 0
_0801B1E0: .4byte gUnk_080B77C8
_0801B1E4:
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _0801B24E
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _0801B248
cmp r2, #2
bne _0801B204
ldrb r0, [r4, #0xd]
cmp r0, #1
bne _0801B204
ldr r0, _0801B244 @ =gPlayerState
strb r1, [r0, #5]
_0801B204:
movs r0, #3
strb r0, [r4, #0xc]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0x3c
ands r0, r1
movs r1, #0x10
orrs r0, r1
strb r0, [r2]
movs r0, #0xf
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #0x13
ands r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
bl sub_0805EC60
adds r0, r4, #0
bl sub_08078954
adds r0, r4, #0
movs r1, #0x20
movs r2, #0
movs r3, #0
bl CreateObjectWithParent
adds r0, r4, #0
bl sub_0801B418
b _0801B24E
.align 2, 0
_0801B244: .4byte gPlayerState
_0801B248:
adds r0, r4, #0
bl sub_0801B3A4
_0801B24E:
pop {r4, pc}
thumb_func_start sub_0801B250
sub_0801B250: @ 0x0801B250
push {lr}
adds r2, r0, #0
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x18]
movs r0, #1
strb r0, [r2, #0xc]
adds r3, r2, #0
adds r3, #0x29
ldrb r1, [r3]
subs r0, #0x3a
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r3]
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
ldrb r1, [r2, #0xa]
adds r0, r1, #0
cmp r0, #0xff
bne _0801B28A
movs r0, #0x3c
b _0801B29C
_0801B28A:
cmp r0, #0xfe
bne _0801B29A
movs r0, #0xf
strb r0, [r2, #0xe]
movs r0, #0xff
orrs r0, r1
strb r0, [r2, #0xa]
b _0801B29E
_0801B29A:
movs r0, #0x96
_0801B29C:
strb r0, [r2, #0xe]
_0801B29E:
ldr r0, _0801B2BC @ =gUnk_080B77F4
str r0, [r2, #0x48]
movs r0, #0
strb r0, [r2, #0x16]
adds r0, r2, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #7
bne _0801B2C0
adds r0, r2, #0
movs r1, #5
bl InitializeAnimation
b _0801B2C8
.align 2, 0
_0801B2BC: .4byte gUnk_080B77F4
_0801B2C0:
adds r0, r2, #0
movs r1, #0x15
bl InitializeAnimation
_0801B2C8:
pop {pc}
.align 2, 0
thumb_func_start sub_0801B2CC
sub_0801B2CC: @ 0x0801B2CC
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0800442E
cmp r0, #0
bne _0801B2DE
adds r0, r4, #0
bl sub_08078930
_0801B2DE:
movs r0, #8
bl IsItemEquipped
cmp r0, #1
beq _0801B2F6
cmp r0, #1
blo _0801B2F2
cmp r0, #2
beq _0801B2FA
b _0801B2FC
_0801B2F2:
movs r5, #1
b _0801B2FC
_0801B2F6:
movs r5, #2
b _0801B2FC
_0801B2FA:
movs r5, #0
_0801B2FC:
ldr r0, _0801B314 @ =gPlayerState
adds r0, #0x92
ldrh r0, [r0]
ands r5, r0
cmp r5, #0
beq _0801B310
movs r0, #0
strb r0, [r4, #0xe]
movs r0, #1
strb r0, [r4, #0xf]
_0801B310:
pop {r4, r5, pc}
.align 2, 0
_0801B314: .4byte gPlayerState
thumb_func_start sub_0801B318
sub_0801B318: @ 0x0801B318
push {lr}
ldr r2, _0801B32C @ =gUnk_080B77D8
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0801B32C: .4byte gUnk_080B77D8
thumb_func_start sub_0801B330
sub_0801B330: @ 0x0801B330
push {lr}
ldrb r1, [r0, #0xd]
adds r1, #1
strb r1, [r0, #0xd]
bl sub_08079BD8
pop {pc}
.align 2, 0
thumb_func_start sub_0801B340
sub_0801B340: @ 0x0801B340
adds r0, #0x29
ldrb r2, [r0]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r2
movs r2, #0x10
orrs r1, r2
strb r1, [r0]
bx lr
.align 2, 0
thumb_func_start sub_0801B354
sub_0801B354: @ 0x0801B354
adds r0, #0x29
ldrb r2, [r0]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r2
movs r2, #0x18
orrs r1, r2
strb r1, [r0]
bx lr
.align 2, 0
thumb_func_start sub_0801B368
sub_0801B368: @ 0x0801B368
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xc]
subs r0, #1
movs r1, #0
strb r0, [r2, #0xc]
strb r1, [r2, #0xd]
ldrb r0, [r2, #0xe]
cmp r0, #0x3c
bls _0801B380
movs r0, #0x3c
strb r0, [r2, #0xe]
_0801B380:
pop {pc}
.align 2, 0
thumb_func_start sub_0801B384
sub_0801B384: @ 0x0801B384
push {lr}
bl DeleteThisEntity
pop {pc}
thumb_func_start sub_0801B38C
sub_0801B38C: @ 0x0801B38C
push {lr}
ldrb r1, [r0, #0xe]
subs r1, #1
strb r1, [r0, #0xe]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r1, #0xff
bne _0801B3A0
bl DeleteThisEntity
_0801B3A0:
pop {pc}
.align 2, 0
thumb_func_start sub_0801B3A4
sub_0801B3A4: @ 0x0801B3A4
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
movs r5, #8
cmp r0, #0x28
bhi _0801B3F4
movs r5, #4
ldr r1, [r4, #0x68]
movs r0, #0x80
lsls r0, r0, #8
ands r0, r1
cmp r0, #0
beq _0801B3C4
adds r0, r1, #0
subs r0, #0x10
b _0801B3C8
_0801B3C4:
adds r0, r1, #0
adds r0, #0x10
_0801B3C8:
str r0, [r4, #0x68]
ldr r1, [r4, #0x68]
movs r2, #0xf0
adds r0, r1, #0
ands r0, r2
subs r0, #1
cmp r0, #0x7f
bls _0801B3E0
movs r0, #0x80
lsls r0, r0, #8
eors r1, r0
str r1, [r4, #0x68]
_0801B3E0:
ldr r0, [r4, #0x68]
ands r0, r2
movs r2, #0x98
lsls r2, r2, #1
subs r2, r2, r0
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
_0801B3F4:
ldrb r0, [r4, #0xf]
ands r0, r5
cmp r0, #0
bne _0801B408
ldrb r1, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x1a]
b _0801B416
_0801B408:
ldrb r0, [r4, #0x1a]
lsrs r2, r0, #4
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
orrs r1, r2
strb r1, [r4, #0x1a]
_0801B416:
pop {r4, r5, pc}
thumb_func_start sub_0801B418
sub_0801B418: @ 0x0801B418
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r5, r0, #0
movs r6, #0x10
movs r0, #0x10
rsbs r0, r0, #0
mov sb, r0
mov r8, sb
_0801B42C:
movs r4, #0x10
adds r7, r6, #0
subs r7, #0x10
_0801B432:
movs r0, #0x2e
ldrsh r2, [r5, r0]
adds r2, r2, r4
movs r0, #0x32
ldrsh r3, [r5, r0]
adds r3, r3, r6
adds r0, r5, #0
movs r1, #3
bl sub_08008796
subs r4, #0x10
cmp r4, r8
bge _0801B432
adds r6, r7, #0
cmp r6, sb
bge _0801B42C
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
+546
View File
@@ -0,0 +1,546 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_08018FE4
sub_08018FE4: @ 0x08018FE4
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r3, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r5, [r4, #0xa]
cmp r5, #0
bne _08018FF6
b _080190FC
_08018FF6:
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r3
strb r0, [r4, #0x18]
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #0x6a
str r0, [r4, #0x74]
ldrb r0, [r4, #0xb]
adds r1, r4, #0
adds r1, #0x40
strb r0, [r1]
movs r0, #0xa6
strh r0, [r4, #0x12]
ldrb r0, [r1]
adds r6, r1, #0
cmp r0, #0xe
bne _08019026
movs r0, #0x80
lsls r0, r0, #3
b _0801902A
_08019026:
movs r0, #0xc0
lsls r0, r0, #2
_0801902A:
strh r0, [r4, #0x24]
ldrb r0, [r4, #0x14]
lsls r0, r0, #2
strb r0, [r4, #0x15]
ldr r2, _0801905C @ =gPlayerEntity
adds r0, r2, #0
adds r0, #0x3c
ldrb r0, [r0]
adds r0, #1
adds r1, r4, #0
adds r1, #0x3c
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x3b
ldrb r0, [r0]
subs r1, #1
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
adds r5, r2, #0
cmp r0, #2
bne _08019060
movs r0, #1
b _08019062
.align 2, 0
_0801905C: .4byte gPlayerEntity
_08019060:
movs r0, #0
_08019062:
strb r0, [r4, #0xb]
ldrb r1, [r5, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r4, #0x1b]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
lsls r3, r0, #1
adds r3, r3, r0
lsls r3, r3, #2
ldr r0, _080190F8 @ =gUnk_080B3E40
adds r3, r3, r0
movs r0, #0
ldrsb r0, [r3, r0]
ldrh r1, [r5, #0x2e]
adds r0, r0, r1
strh r0, [r4, #0x2e]
movs r0, #1
ldrsb r0, [r3, r0]
ldrh r5, [r5, #0x32]
adds r0, r0, r5
strh r0, [r4, #0x32]
ldrb r1, [r3, #2]
movs r0, #1
ands r1, r0
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r3, #3]
lsls r1, r1, #7
movs r2, #0x7f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r0, [r3, #6]
adds r5, r4, #0
adds r5, #0x58
strb r0, [r5]
movs r0, #4
ldrsb r0, [r3, r0]
str r0, [r4, #0x6c]
movs r0, #5
ldrsb r0, [r3, r0]
str r0, [r4, #0x70]
ldr r0, [r3, #8]
str r0, [r4, #0x48]
adds r0, r4, #0
bl sub_0801766C
ldrb r0, [r6]
cmp r0, #0xe
bne _080190E8
ldrb r0, [r5]
adds r0, #6
strb r0, [r5]
adds r1, r4, #0
adds r1, #0x60
movs r0, #0
strh r0, [r1]
_080190E8:
ldrb r1, [r5]
adds r0, r4, #0
bl InitializeAnimation
movs r0, #0xfc
bl SoundReq
b _08019178
.align 2, 0
_080190F8: .4byte gUnk_080B3E40
_080190FC:
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4, #0x11]
movs r0, #0xff
strb r0, [r4, #0x1e]
ldr r2, _08019168 @ =gUnk_080B3E40
ldrb r1, [r4, #0x14]
lsrs r1, r1, #1
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
adds r0, r0, r2
ldrb r1, [r0, #2]
ands r1, r3
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldr r0, _0801916C @ =gPlayerState
str r4, [r0, #0x2c]
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_08079BD8
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xa
bne _08019170
movs r0, #0x3c
str r0, [r4, #0x78]
ldrb r1, [r4, #0xa]
movs r0, #0x43
movs r2, #1
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _08019172
adds r0, r4, #0
bl CopyPosition
b _08019172
.align 2, 0
_08019168: .4byte gUnk_080B3E40
_0801916C: .4byte gPlayerState
_08019170:
str r5, [r4, #0x78]
_08019172:
adds r0, r4, #0
bl sub_0801917C
_08019178:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0801917C
sub_0801917C: @ 0x0801917C
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldrb r2, [r4, #0xa]
cmp r2, #0
bne _08019188
b _0801934A
_08019188:
ldr r0, [r4, #0x74]
subs r0, #1
str r0, [r4, #0x74]
cmp r0, #0
bne _0801919C
adds r0, r4, #0
bl sub_08019468
bl DeleteThisEntity
_0801919C:
adds r0, r4, #0
bl GetNextFrame
ldr r0, [r4, #0x74]
cmp r0, #0x17
bhi _080191BA
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_080191BA:
adds r0, r4, #0
bl sub_0806F69C
adds r0, r4, #0
adds r0, #0x40
ldrb r1, [r0]
movs r5, #4
adds r6, r0, #0
cmp r1, #0xe
bne _080191D0
movs r5, #1
_080191D0:
ldr r2, [r4, #0x6c]
ldr r3, [r4, #0x70]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08008782
cmp r0, #0
beq _080191EE
ldrb r0, [r6]
cmp r0, #0xe
beq _080191EA
bl DeleteThisEntity
_080191EA:
movs r7, #1
b _080191F0
_080191EE:
movs r7, #0
_080191F0:
ldrb r0, [r6]
cmp r0, #0xe
bne _0801920E
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _0801920E
adds r0, r4, #0
movs r1, #0x14
movs r2, #0
bl CreateFx
_0801920E:
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0801921A
adds r0, r4, #0
bl sub_0800451C
_0801921A:
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _08019288 @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
ldr r1, _0801928C @ =gPlayerEntity
adds r1, #0x38
ldrb r1, [r1]
movs r2, #0x80
bl sub_080002F0
cmp r0, #0
bne _080192D0
cmp r7, #0
bne _080192D0
ldr r1, _08019290 @ =gUnk_08003E44
movs r0, #0x2e
ldrsh r2, [r4, r0]
movs r5, #0x32
ldrsh r3, [r4, r5]
adds r0, r4, #0
bl sub_080040D8
cmp r0, #0
beq _080192D0
movs r0, #0x1e
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r6]
cmp r0, #0xe
bne _08019294
adds r0, r4, #0
bl sub_08019468
adds r0, r4, #0
adds r0, #0x58
ldrb r1, [r0]
adds r1, #0xf
adds r0, r4, #0
bl InitializeAnimation
b _080192A2
.align 2, 0
_08019288: .4byte gRoomControls
_0801928C: .4byte gPlayerEntity
_08019290: .4byte gUnk_08003E44
_08019294:
adds r0, r4, #0
adds r0, #0x58
ldrb r1, [r0]
adds r1, #2
adds r0, r4, #0
bl InitializeAnimation
_080192A2:
adds r0, r4, #0
bl sub_08017744
ldrb r0, [r4, #0x10]
movs r1, #0x7f
ands r1, r0
movs r0, #0
strb r1, [r4, #0x10]
strh r0, [r4, #0x24]
ldr r0, [r4, #0x2c]
cmp r0, #0
bge _080192BC
movs r0, #0
_080192BC:
str r0, [r4, #0x2c]
ldr r0, [r4, #0x30]
cmp r0, #0
bge _080192C6
movs r0, #0
_080192C6:
str r0, [r4, #0x30]
movs r0, #0xc5
lsls r0, r0, #1
bl SoundReq
_080192D0:
adds r5, r4, #0
adds r5, #0x41
ldrb r0, [r5]
cmp r0, #0
bne _080192DC
b _08019402
_080192DC:
cmp r7, #0
beq _080192E2
b _08019402
_080192E2:
ldrb r0, [r6]
cmp r0, #0xe
bne _080192EE
adds r0, r4, #0
bl sub_08019468
_080192EE:
adds r0, r4, #0
bl sub_08017744
ldrb r1, [r5]
movs r0, #0x3f
ands r0, r1
cmp r0, #0x42
bne _08019336
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #3
strb r0, [r4, #0xc]
ldrb r0, [r4, #0x15]
movs r1, #0x10
eors r0, r1
strb r0, [r4, #0x15]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
movs r0, #0x80
lsls r0, r0, #8
str r0, [r4, #0x20]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
movs r1, #6
bl InitializeAnimation
b _08019402
_08019336:
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #1
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
strb r0, [r4, #0x18]
b _08019402
_0801934A:
ldr r1, _0801938C @ =gPlayerState
ldr r0, [r1, #0x2c]
cmp r0, r4
bne _0801935E
adds r0, r1, #0
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
bne _08019368
str r0, [r1, #0x2c]
_0801935E:
adds r0, r1, #0
adds r0, #0x21
strb r2, [r0]
bl DeleteThisEntity
_08019368:
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xa
bne _08019398
ldr r0, _0801938C @ =gPlayerState
adds r2, r0, #0
adds r2, #0x21
ldrb r0, [r2]
adds r1, r0, #0
cmp r1, #0
beq _08019398
cmp r1, #0x77
bhi _08019390
adds r0, #1
strb r0, [r2]
b _08019398
.align 2, 0
_0801938C: .4byte gPlayerState
_08019390:
adds r1, r4, #0
adds r1, #0x40
movs r0, #0xe
strb r0, [r1]
_08019398:
ldr r0, _08019404 @ =gSave
adds r0, #0xad
ldrb r5, [r0]
ldrb r1, [r4, #0x1e]
ldr r2, [r4, #0x78]
subs r1, r1, r2
ldr r0, _08019408 @ =gPlayerEntity
ldrb r0, [r0, #0x1e]
cmp r1, r0
beq _080193C2
adds r0, r0, r2
strb r0, [r4, #0x1e]
cmp r5, #0
bne _080193B8
adds r0, #0x2a
strb r0, [r4, #0x1e]
_080193B8:
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_080193C2:
ldr r0, _08019408 @ =gPlayerEntity
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080193FA
cmp r5, #0
beq _080193FA
adds r0, r4, #0
adds r0, #0x40
ldrb r2, [r0]
movs r0, #4
movs r1, #1
movs r3, #9
bl CreatePlayerItem
cmp r0, #0
beq _080193FA
ldr r2, _0801940C @ =gPlayerState
ldrb r1, [r2, #4]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #4]
movs r0, #1
rsbs r0, r0, #0
bl ModArrows
_080193FA:
ldr r1, _08019408 @ =gPlayerEntity
adds r0, r4, #0
bl sub_08078E84
_08019402:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08019404: .4byte gSave
_08019408: .4byte gPlayerEntity
_0801940C: .4byte gPlayerState
+183
View File
@@ -0,0 +1,183 @@
thumb_func_start PlayerItemC
PlayerItemC: @ 0x0801B898
push {lr}
ldr r2, _0801B8AC @ =gUnk_080B7840
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0801B8AC: .4byte gUnk_080B7840
thumb_func_start sub_0801B8B0
sub_0801B8B0: @ 0x0801B8B0
push {r4, lr}
adds r4, r0, #0
ldr r1, _0801B8F0 @ =gPlayerState
ldrb r0, [r1, #0x1e]
cmp r0, #0
beq _0801B8F4
str r4, [r1, #0x2c]
ldrb r1, [r4, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x3b
movs r0, #8
strb r0, [r1]
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_08079BD8
adds r0, r4, #0
bl sub_0801766C
adds r0, r4, #0
bl sub_0801B8FC
b _0801B8F8
.align 2, 0
_0801B8F0: .4byte gPlayerState
_0801B8F4:
bl DeleteThisEntity
_0801B8F8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0801B8FC
sub_0801B8FC: @ 0x0801B8FC
push {lr}
ldr r1, _0801B90C @ =gPlayerState
ldr r2, [r1, #0x2c]
cmp r2, r0
beq _0801B910
bl DeleteThisEntity
b _0801B934
.align 2, 0
_0801B90C: .4byte gPlayerState
_0801B910:
ldrb r0, [r1, #0x1e]
cmp r0, #0
bne _0801B91E
str r0, [r1, #0x2c]
bl DeleteThisEntity
b _0801B934
_0801B91E:
ldrb r1, [r2, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x10]
adds r1, r2, #0
adds r1, #0x3c
movs r0, #0x21
strb r0, [r1]
adds r0, r2, #0
bl sub_0801B938
_0801B934:
pop {pc}
.align 2, 0
thumb_func_start sub_0801B938
sub_0801B938: @ 0x0801B938
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0801B960
ldr r3, _0801B95C @ =gPlayerEntity
ldrb r1, [r3, #0x18]
lsls r1, r1, #0x19
lsrs r1, r1, #0x1f
movs r0, #1
eors r1, r0
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
subs r0, #0x42
b _0801B96E
.align 2, 0
_0801B95C: .4byte gPlayerEntity
_0801B960:
ldr r3, _0801B998 @ =gPlayerEntity
ldrb r0, [r3, #0x18]
movs r1, #0x40
ands r1, r0
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
_0801B96E:
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r3, #0
adds r0, #0x58
ldrb r0, [r0]
adds r0, #0x68
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #3
bhi _0801B99C
ldrb r0, [r3, #0x1e]
adds r0, #0x2e
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
b _0801B9A0
.align 2, 0
_0801B998: .4byte gPlayerEntity
_0801B99C:
movs r0, #0xff
strb r0, [r4, #0x1e]
_0801B9A0:
ldrb r3, [r4, #0x14]
lsrs r3, r3, #1
lsls r0, r3, #3
ldr r1, _0801B9E0 @ =gUnk_080B7850
adds r0, r0, r1
str r0, [r4, #0x48]
lsls r3, r3, #1
ldr r0, _0801B9E4 @ =gUnk_080B7848
adds r3, r3, r0
ldr r0, _0801B9E8 @ =gPlayerState
adds r0, #0xac
ldrh r0, [r0]
movs r1, #8
ands r1, r0
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
rsbs r1, r1, #0
lsrs r1, r1, #0x1f
movs r2, #0
ldrsb r2, [r3, r2]
ldrb r3, [r3, #1]
lsls r3, r3, #0x18
asrs r3, r3, #0x18
adds r0, r4, #0
bl sub_08008782
ldr r1, _0801B9EC @ =gPlayerEntity
adds r0, r4, #0
bl sub_08078E84
pop {r4, pc}
.align 2, 0
_0801B9E0: .4byte gUnk_080B7850
_0801B9E4: .4byte gUnk_080B7848
_0801B9E8: .4byte gPlayerState
_0801B9EC: .4byte gPlayerEntity
thumb_func_start sub_0801B9F0
sub_0801B9F0: @ 0x0801B9F0
push {lr}
ldrb r2, [r0, #0x10]
movs r1, #0x7f
ands r1, r2
strb r1, [r0, #0x10]
bl sub_08017744
pop {pc}
+404
View File
@@ -0,0 +1,404 @@
thumb_func_start PlayerItemGustJar
PlayerItemGustJar: @ 0x080ADA30
push {r4, lr}
adds r4, r0, #0
ldr r1, _080ADA60 @ =gPlayerState
ldr r0, [r1, #0x2c]
cmp r0, r4
bne _080ADA42
ldrb r0, [r1, #0x1c]
cmp r0, #0
bne _080ADA46
_080ADA42:
bl DeleteThisEntity
_080ADA46:
ldr r1, _080ADA64 @ =gUnk_08132700
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldr r1, _080ADA68 @ =gPlayerEntity
adds r0, r4, #0
bl sub_08078E84
pop {r4, pc}
.align 2, 0
_080ADA60: .4byte gPlayerState
_080ADA64: .4byte gUnk_08132700
_080ADA68: .4byte gPlayerEntity
thumb_func_start sub_080ADA6C
sub_080ADA6C: @ 0x080ADA6C
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0xf
strb r0, [r4, #0xf]
ldr r0, _080ADAA4 @ =gUnk_08132B28
str r0, [r4, #0x48]
movs r1, #3
strb r1, [r0, #4]
strb r1, [r0, #3]
movs r1, #6
strb r1, [r0, #5]
strb r1, [r0, #2]
adds r0, r4, #0
bl sub_080ADC84
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
ldrb r1, [r4, #0x14]
lsrs r1, r1, #1
adds r0, r4, #0
bl InitAnimationForceUpdate
pop {r4, pc}
.align 2, 0
_080ADAA4: .4byte gUnk_08132B28
thumb_func_start sub_080ADAA8
sub_080ADAA8: @ 0x080ADAA8
push {r4, lr}
adds r4, r0, #0
bl sub_080ADC84
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080ADACC
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #0
bl sub_080ADCA0
b _080ADAD2
_080ADACC:
adds r0, r4, #0
bl UpdateAnimationSingleFrame
_080ADAD2:
pop {r4, pc}
thumb_func_start sub_080ADAD4
sub_080ADAD4: @ 0x080ADAD4
push {r4, r5, lr}
adds r4, r0, #0
ldr r3, _080ADAF4 @ =gPlayerState
ldrb r1, [r3, #0x1c]
adds r0, r1, #0
cmp r0, #3
bne _080ADAFC
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldr r0, _080ADAF8 @ =gPlayerEntity
ldrb r1, [r0, #0x14]
lsrs r1, r1, #1
adds r1, #8
b _080ADB0C
.align 2, 0
_080ADAF4: .4byte gPlayerState
_080ADAF8: .4byte gPlayerEntity
_080ADAFC:
cmp r0, #6
bne _080ADB18
movs r0, #4
strb r0, [r4, #0xc]
ldr r0, _080ADB14 @ =gPlayerEntity
ldrb r1, [r0, #0x14]
lsrs r1, r1, #1
adds r1, #4
_080ADB0C:
adds r0, r4, #0
bl InitAnimationForceUpdate
b _080ADC08
.align 2, 0
_080ADB14: .4byte gPlayerEntity
_080ADB18:
movs r5, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _080ADB58
cmp r0, #1
bne _080ADB36
adds r0, r4, #0
movs r1, #4
bl sub_080ADCA0
movs r0, #0x18
strb r0, [r4, #0xe]
movs r0, #2
strb r0, [r4, #0xa]
b _080ADBE0
_080ADB36:
adds r0, r4, #0
movs r1, #1
bl sub_080ADCDC
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _080ADBE0
adds r0, r4, #0
movs r1, #0
bl sub_080ADCA0
strb r5, [r4, #0xa]
b _080ADBE0
_080ADB58:
movs r0, #0xf
ands r0, r1
cmp r0, #7
bne _080ADB68
adds r1, r4, #0
adds r1, #0x59
movs r0, #0x7f
strb r0, [r1]
_080ADB68:
ldrb r0, [r3, #0x1d]
cmp r0, #2
beq _080ADB94
cmp r0, #2
bgt _080ADB78
cmp r0, #1
beq _080ADBB0
b _080ADBCA
_080ADB78:
cmp r0, #3
bne _080ADBCA
adds r0, r4, #0
movs r1, #3
bl sub_080ADCDC
ldrb r1, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x1a]
movs r2, #3
movs r5, #0xe9
b _080ADBCA
_080ADB94:
adds r0, r4, #0
movs r1, #2
bl sub_080ADCDC
ldrb r0, [r4, #0x1a]
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
movs r0, #4
orrs r1, r0
strb r1, [r4, #0x1a]
movs r2, #2
movs r5, #0xe8
b _080ADBCA
_080ADBB0:
adds r0, r4, #0
movs r1, #1
bl sub_080ADCDC
ldrb r0, [r4, #0x1a]
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
movs r0, #1
orrs r1, r0
strb r1, [r4, #0x1a]
movs r2, #1
movs r5, #0xe7
_080ADBCA:
ldr r0, _080ADC0C @ =gPlayerState
ldrb r1, [r0, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #7
bne _080ADBDA
movs r5, #0xee
movs r2, #1
_080ADBDA:
ldrb r0, [r4, #0xf]
subs r0, r0, r2
strb r0, [r4, #0xf]
_080ADBE0:
movs r0, #0xf
ldrsb r0, [r4, r0]
cmp r0, #0
bge _080ADBF6
cmp r5, #0
beq _080ADBF2
adds r0, r5, #0
bl SoundReq
_080ADBF2:
movs r0, #0xf
strb r0, [r4, #0xf]
_080ADBF6:
ldr r2, _080ADC10 @ =gPlayerEntity
adds r0, r2, #0
adds r0, #0x5a
ldrb r0, [r0]
movs r1, #0x7f
ands r1, r0
ldrb r0, [r2, #0x1e]
subs r0, r0, r1
strb r0, [r4, #0x1e]
_080ADC08:
pop {r4, r5, pc}
.align 2, 0
_080ADC0C: .4byte gPlayerState
_080ADC10: .4byte gPlayerEntity
thumb_func_start sub_080ADC14
sub_080ADC14: @ 0x080ADC14
push {r4, lr}
adds r4, r0, #0
ldr r0, _080ADC40 @ =gPlayerState
ldrb r0, [r0, #0x1c]
movs r1, #0xf
ands r1, r0
cmp r1, #1
beq _080ADC48
cmp r1, #6
bne _080ADC56
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldr r0, _080ADC44 @ =gPlayerEntity
ldrb r1, [r0, #0x14]
lsrs r1, r1, #1
adds r1, #4
adds r0, r4, #0
bl InitAnimationForceUpdate
b _080ADC5C
.align 2, 0
_080ADC40: .4byte gPlayerState
_080ADC44: .4byte gPlayerEntity
_080ADC48:
adds r0, r4, #0
movs r1, #0
bl sub_080ADCA0
movs r0, #2
strb r0, [r4, #0xc]
b _080ADC5C
_080ADC56:
adds r0, r4, #0
bl UpdateAnimationSingleFrame
_080ADC5C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080ADC60
sub_080ADC60: @ 0x080ADC60
push {lr}
adds r2, r0, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080ADC7C
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #0x18]
b _080ADC82
_080ADC7C:
adds r0, r2, #0
bl UpdateAnimationSingleFrame
_080ADC82:
pop {pc}
thumb_func_start sub_080ADC84
sub_080ADC84: @ 0x080ADC84
ldr r1, _080ADC9C @ =gPlayerEntity
ldrb r1, [r1, #0x18]
movs r2, #0x40
ands r2, r1
ldrb r3, [r0, #0x18]
movs r1, #0x41
rsbs r1, r1, #0
ands r1, r3
orrs r1, r2
strb r1, [r0, #0x18]
bx lr
.align 2, 0
_080ADC9C: .4byte gPlayerEntity
thumb_func_start sub_080ADCA0
sub_080ADCA0: @ 0x080ADCA0
push {r4, lr}
ldr r3, _080ADCD4 @ =gUnk_08132714
ldr r2, _080ADCD8 @ =gPlayerEntity
ldrb r2, [r2, #0x14]
lsrs r2, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r3
ldr r2, [r1]
str r2, [r0, #0x5c]
ldrb r1, [r2]
adds r3, r0, #0
adds r3, #0x58
strb r1, [r3]
adds r1, r2, #1
str r1, [r0, #0x5c]
ldrb r2, [r2, #1]
movs r4, #0x59
strb r2, [r4, r0]
adds r1, #1
str r1, [r0, #0x5c]
ldrb r1, [r3]
ldrh r2, [r0, #0x12]
bl sub_080042D0
pop {r4, pc}
.align 2, 0
_080ADCD4: .4byte gUnk_08132714
_080ADCD8: .4byte gPlayerEntity
thumb_func_start sub_080ADCDC
sub_080ADCDC: @ 0x080ADCDC
push {r4, r5, lr}
adds r3, r0, #0
movs r0, #0x59
adds r0, r0, r3
mov ip, r0
ldrb r0, [r0]
subs r0, r0, r1
mov r1, ip
strb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
bgt _080ADD2E
ldr r1, [r3, #0x5c]
ldrb r0, [r1]
cmp r0, #0xff
bne _080ADD06
adds r0, r1, #1
str r0, [r3, #0x5c]
ldrb r1, [r1, #1]
subs r0, r0, r1
str r0, [r3, #0x5c]
_080ADD06:
ldr r1, [r3, #0x5c]
ldrb r0, [r1]
adds r2, r3, #0
adds r2, #0x58
strb r0, [r2]
adds r1, #1
str r1, [r3, #0x5c]
ldrb r0, [r1]
mov r4, ip
ldrb r4, [r4]
adds r0, r0, r4
mov r5, ip
strb r0, [r5]
adds r1, #1
str r1, [r3, #0x5c]
ldrb r1, [r2]
ldrh r2, [r3, #0x12]
adds r0, r3, #0
bl sub_080042D0
_080ADD2E:
pop {r4, r5, pc}
+228
View File
@@ -0,0 +1,228 @@
thumb_func_start PlayerItemLantern
PlayerItemLantern: @ 0x08054A40
push {r4, lr}
adds r4, r0, #0
ldr r1, _08054A5C @ =gUnk_080FEEA8
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r4, #0x41
movs r0, #0
strb r0, [r4]
pop {r4, pc}
.align 2, 0
_08054A5C: .4byte gUnk_080FEEA8
thumb_func_start sub_08054A60
sub_08054A60: @ 0x08054A60
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x10]
movs r0, #0xa0
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #4
strb r0, [r4, #0xe]
movs r0, #0xff
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4, #0x11]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
subs r1, #1
movs r0, #0x80
strb r0, [r1]
ldr r0, _08054AC4 @ =gPlayerEntity
ldrb r1, [r0, #0x14]
movs r0, #0xe
ands r0, r1
strb r0, [r4, #0x14]
adds r0, r4, #0
bl AllocMutableHitbox
cmp r0, #0
bne _08054AAC
bl DeleteThisEntity
_08054AAC:
adds r0, r4, #0
bl sub_0801766C
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_08054AC8
pop {r4, pc}
.align 2, 0
_08054AC4: .4byte gPlayerEntity
thumb_func_start sub_08054AC8
sub_08054AC8: @ 0x08054AC8
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldr r5, _08054B14 @ =gPlayerEntity
ldrb r1, [r5, #0x14]
movs r0, #0xe
ands r0, r1
strb r0, [r4, #0x14]
ldr r1, [r4, #0x48]
ldr r2, _08054B18 @ =gUnk_080FEEB0
ldrb r0, [r4, #0x14]
adds r0, r0, r2
ldrb r0, [r0]
strb r0, [r1]
ldr r1, [r4, #0x48]
ldrb r0, [r4, #0x14]
adds r0, #1
adds r0, r0, r2
ldrb r0, [r0]
strb r0, [r1, #1]
ldr r0, [r4, #0x48]
movs r1, #4
strb r1, [r0, #6]
ldr r0, [r4, #0x48]
strb r1, [r0, #7]
ldrb r7, [r5, #0x1e]
adds r6, r7, #0
cmp r6, #0x36
bhi _08054B06
ldrh r0, [r5, #0x12]
cmp r0, #6
beq _08054B1C
_08054B06:
movs r0, #0xff
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
b _08054B68
.align 2, 0
_08054B14: .4byte gPlayerEntity
_08054B18: .4byte gUnk_080FEEB0
_08054B1C:
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldrb r2, [r5, #0x18]
movs r1, #0x40
ands r1, r2
ldrb r3, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r3
orrs r0, r1
lsrs r2, r2, #7
lsls r2, r2, #7
movs r1, #0x7f
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r0, [r4, #0x1e]
cmp r6, r0
beq _08054B52
strb r7, [r4, #0x1e]
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_08054B52:
adds r0, r5, #0
adds r0, #0x5a
ldrb r0, [r0]
adds r1, r4, #0
adds r1, #0x5a
strb r0, [r1]
adds r0, r5, #0
adds r0, #0x5b
ldrb r0, [r0]
adds r1, #1
strb r0, [r1]
_08054B68:
movs r0, #0x10
bl IsItemEquipped
cmp r0, #1
bhi _08054BFC
ldrb r0, [r4, #0x1e]
cmp r0, #0xff
beq _08054BE8
ldr r0, _08054BF4 @ =gPlayerEntity
ldrb r0, [r0, #0x18]
lsls r0, r0, #0x1e
cmp r0, #0
beq _08054BE8
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08054BE8
movs r0, #4
strb r0, [r4, #0xe]
movs r0, #0x45
movs r1, #0
movs r2, #0x10
bl CreateObject
adds r5, r0, #0
cmp r5, #0
beq _08054BE8
movs r3, #0x80
lsls r3, r3, #0xa
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0
bl PositionRelative
adds r0, r4, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
adds r3, r5, #0
adds r3, #0x29
lsrs r1, r1, #0x1d
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
ldr r1, _08054BF8 @ =gUnk_080FEEB0
ldrb r0, [r4, #0x14]
adds r0, r0, r1
ldrb r0, [r0]
adds r2, r5, #0
adds r2, #0x62
strb r0, [r2]
ldrb r0, [r4, #0x14]
adds r0, #1
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r5, #0
adds r0, #0x63
strb r1, [r0]
_08054BE8:
ldr r1, _08054BF4 @ =gPlayerEntity
adds r0, r4, #0
bl sub_08078E84
b _08054C00
.align 2, 0
_08054BF4: .4byte gPlayerEntity
_08054BF8: .4byte gUnk_080FEEB0
_08054BFC:
bl DeleteThisEntity
_08054C00:
pop {r4, r5, r6, r7, pc}
.align 2, 0
+117
View File
@@ -0,0 +1,117 @@
thumb_func_start PlayerItemPacciCane
PlayerItemPacciCane: @ 0x080704BC
push {lr}
ldr r2, _080704D0 @ =gUnk_0811B9D8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080704D0: .4byte gUnk_0811B9D8
thumb_func_start sub_080704D4
sub_080704D4: @ 0x080704D4
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0xff
strb r0, [r4, #0x1e]
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
movs r0, #0x87
lsls r0, r0, #1
bl SoundReq
adds r0, r4, #0
bl sub_080704FC
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080704FC
sub_080704FC: @ 0x080704FC
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _0807052C @ =gPlayerEntity
adds r0, r5, #0
adds r0, #0x5a
ldrb r2, [r0]
movs r0, #0x80
ands r0, r2
ldr r1, _08070530 @ =gPlayerState
cmp r0, #0
bne _08070518
ldr r0, [r1, #0x2c]
cmp r4, r0
beq _08070534
_08070518:
ldr r0, [r1, #0x2c]
cmp r4, r0
bne _08070522
movs r0, #0
str r0, [r1, #0x2c]
_08070522:
adds r0, r4, #0
bl DeleteEntity
b _08070566
.align 2, 0
_0807052C: .4byte gPlayerEntity
_08070530: .4byte gPlayerState
_08070534:
movs r0, #0xf
ands r0, r2
cmp r0, #0xf
beq _08070562
ldrb r1, [r5, #0x1e]
adds r0, #0x91
subs r0, r1, r0
ldrb r2, [r4, #0x1e]
cmp r0, r2
beq _08070558
adds r0, r1, #0
adds r0, #0x6f
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_08070558:
adds r0, r4, #0
adds r1, r5, #0
bl sub_08078E84
b _08070566
_08070562:
movs r0, #0xff
strb r0, [r4, #0x1e]
_08070566:
ldr r2, _08070580 @ =gPlayerEntity
ldrb r1, [r2, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08070584
ldrb r0, [r2, #0x18]
lsls r0, r0, #0x19
lsrs r2, r0, #0x1f
movs r0, #1
eors r2, r0
b _0807058A
.align 2, 0
_08070580: .4byte gPlayerEntity
_08070584:
ldrb r0, [r2, #0x18]
lsls r0, r0, #0x19
lsrs r2, r0, #0x1f
_0807058A:
lsls r2, r2, #6
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
pop {r4, r5, pc}
.align 2, 0
+389
View File
@@ -0,0 +1,389 @@
thumb_func_start PlayerItemShield
PlayerItemShield: @ 0x080A2D74
push {lr}
adds r2, r0, #0
ldr r0, [r2, #0x6c]
cmp r0, #0
beq _080A2D82
subs r0, #1
str r0, [r2, #0x6c]
_080A2D82:
ldr r0, _080A2D94 @ =gUnk_081271D4
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
pop {pc}
.align 2, 0
_080A2D94: .4byte gUnk_081271D4
thumb_func_start sub_080A2D98
sub_080A2D98: @ 0x080A2D98
push {r4, lr}
adds r4, r0, #0
ldr r0, _080A2DD0 @ =gPlayerState
str r4, [r0, #0x2c]
movs r2, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x11]
subs r0, #0x11
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4, #0x11]
movs r0, #0xff
strb r0, [r4, #0x1e]
adds r0, r4, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0xe
bne _080A2DD8
movs r0, #0x27
str r0, [r4, #0x70]
ldr r1, _080A2DD4 @ =gUnk_081271DC
ldrb r0, [r1, #1]
str r0, [r4, #0x78]
str r2, [r4, #0x74]
str r1, [r4, #0x7c]
b _080A2DDA
.align 2, 0
_080A2DD0: .4byte gPlayerState
_080A2DD4: .4byte gUnk_081271DC
_080A2DD8:
str r2, [r4, #0x70]
_080A2DDA:
ldr r0, _080A2DFC @ =gPlayerEntity
ldrb r1, [r0, #0x14]
movs r0, #0xe
ands r0, r1
strb r0, [r4, #0x14]
adds r0, r4, #0
bl sub_08079BD8
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_080A2E00
pop {r4, pc}
.align 2, 0
_080A2DFC: .4byte gPlayerEntity
thumb_func_start sub_080A2E00
sub_080A2E00: @ 0x080A2E00
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldr r0, _080A2E90 @ =gPlayerEntity
mov ip, r0
mov r1, ip
adds r1, #0x3d
ldrb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
beq _080A2E1A
lsrs r0, r0, #0x18
cmp r0, #0x81
bne _080A2E40
_080A2E1A:
adds r5, r4, #0
adds r5, #0x3d
ldrb r0, [r5]
movs r2, #0
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x3e
ldrb r0, [r0]
mov r1, ip
adds r1, #0x3e
strb r0, [r1]
adds r3, r4, #0
adds r3, #0x42
ldrb r1, [r3]
mov r0, ip
adds r0, #0x42
strb r1, [r0]
strb r2, [r3]
strb r2, [r5]
_080A2E40:
ldr r0, _080A2E94 @ =gPlayerState
ldrb r3, [r0, #3]
adds r7, r0, #0
cmp r3, #0
beq _080A2F20
ldr r0, [r7, #0x2c]
cmp r4, r0
bne _080A2F20
movs r2, #0x80
adds r0, r2, #0
ands r0, r3
cmp r0, #0
beq _080A2E9C
ldr r1, _080A2E98 @ =gUnk_08127240
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
str r0, [r4, #0x48]
ldr r0, _080A2E90 @ =gPlayerEntity
adds r0, #0x3c
ldrb r0, [r0]
adds r0, #1
movs r1, #0x20
adds r2, r4, #0
adds r2, #0x3c
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #0x7f
ands r0, r3
strb r0, [r7, #3]
adds r0, r4, #0
bl sub_080176E4
b _080A2F30
.align 2, 0
_080A2E90: .4byte gPlayerEntity
_080A2E94: .4byte gPlayerState
_080A2E98: .4byte gUnk_08127240
_080A2E9C:
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _080A2F30
movs r0, #0x7f
ands r0, r1
cmp r0, #0x42
bne _080A2F06
adds r0, r4, #0
adds r0, #0x68
ldrb r1, [r0]
adds r5, r0, #0
cmp r1, #0xe
bne _080A2F06
movs r0, #0x40
ands r0, r3
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r6, #0
bne _080A2F06
ldrb r3, [r5]
movs r0, #0x15
movs r1, #0
movs r2, #0
bl CreatePlayerItem
adds r1, r0, #0
str r1, [r4, #0x54]
cmp r1, #0
beq _080A2EF4
movs r0, #1
strb r0, [r1, #0xf]
ldr r2, [r4, #0x54]
adds r0, r4, #0
adds r0, #0x3e
ldrb r0, [r0]
movs r1, #0x10
eors r0, r1
strb r0, [r2, #0x15]
ldr r0, [r4, #0x54]
str r4, [r0, #0x50]
_080A2EF4:
ldr r1, _080A2F1C @ =gUnk_08127220
ldrb r0, [r1, #1]
str r0, [r4, #0x78]
str r6, [r4, #0x74]
str r1, [r4, #0x7c]
ldrb r0, [r7, #3]
movs r1, #0x40
orrs r0, r1
strb r0, [r7, #3]
_080A2F06:
ldr r0, [r4, #0x6c]
cmp r0, #0
bne _080A2F30
movs r0, #0x8c
lsls r0, r0, #1
bl SoundReq
movs r0, #8
str r0, [r4, #0x6c]
b _080A2F30
.align 2, 0
_080A2F1C: .4byte gUnk_08127220
_080A2F20:
movs r1, #0
strb r1, [r7, #3]
ldr r0, [r7, #0x2c]
cmp r0, r4
bne _080A2F2C
str r1, [r7, #0x2c]
_080A2F2C:
bl DeleteThisEntity
_080A2F30:
ldr r6, _080A301C @ =gPlayerEntity
ldrh r0, [r6, #0x12]
cmp r0, #1
beq _080A2F3E
cmp r0, #4
beq _080A2F3E
b _080A3064
_080A2F3E:
ldrb r0, [r6, #0x1e]
subs r0, #0x25
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x3e
bls _080A2F4C
b _080A3064
_080A2F4C:
ldrb r2, [r6, #0x18]
movs r1, #0x40
ands r1, r2
ldrb r3, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r3
orrs r0, r1
lsrs r2, r2, #7
lsls r2, r2, #7
movs r3, #0x7f
ands r0, r3
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r2, [r6, #0x1e]
ldr r1, [r4, #0x70]
adds r0, r1, #0
subs r0, #0x25
adds r0, r2, r0
adds r5, r4, #0
adds r5, #0x68
ldrb r7, [r4, #0x1e]
cmp r0, r7
beq _080A2FA2
adds r0, r1, #0
adds r0, #0xdb
adds r0, r2, r0
strb r0, [r4, #0x1e]
ldrb r0, [r5]
cmp r0, #0xe
bne _080A2F98
adds r0, r6, #0
adds r0, #0x5a
ldrb r1, [r0]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
bne _080A2FA2
_080A2F98:
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_080A2FA2:
ldrb r0, [r5]
cmp r0, #0xe
bne _080A303E
ldr r0, _080A301C @ =gPlayerEntity
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _080A303E
ldr r0, [r4, #0x78]
subs r3, r0, #1
str r3, [r4, #0x78]
cmp r3, #0
bne _080A303E
ldr r0, [r4, #0x74]
adds r0, #1
str r0, [r4, #0x74]
lsls r0, r0, #2
ldr r1, [r4, #0x7c]
adds r2, r1, r0
ldrb r0, [r2]
ldr r7, _080A3020 @ =gPlayerState
cmp r0, #0xff
bne _080A2FEC
ldrb r1, [r7, #3]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _080A2FE8
ldr r0, _080A3024 @ =gUnk_081271DC
str r0, [r4, #0x7c]
movs r0, #0xbf
ands r0, r1
strb r0, [r7, #3]
_080A2FE8:
str r3, [r4, #0x74]
ldr r1, [r4, #0x7c]
_080A2FEC:
ldr r0, [r4, #0x74]
lsls r0, r0, #2
adds r2, r1, r0
ldrb r0, [r2, #1]
str r0, [r4, #0x78]
ldrb r1, [r7, #3]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _080A3028
ldr r0, _080A301C @ =gPlayerEntity
adds r0, #0x5a
ldrb r0, [r0]
movs r1, #0x7f
ands r1, r0
adds r1, #8
ldrb r2, [r2]
adds r1, r1, r2
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
b _080A303E
.align 2, 0
_080A301C: .4byte gPlayerEntity
_080A3020: .4byte gPlayerState
_080A3024: .4byte gUnk_081271DC
_080A3028:
ldr r0, _080A3060 @ =gPlayerEntity
adds r0, #0x5a
ldrb r0, [r0]
movs r1, #0x7f
ands r1, r0
ldrb r2, [r2]
adds r1, r1, r2
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_080A303E:
ldr r1, _080A3060 @ =gPlayerEntity
adds r0, r1, #0
adds r0, #0x5a
ldrb r0, [r0]
adds r2, r4, #0
adds r2, #0x5a
strb r0, [r2]
adds r0, r1, #0
adds r0, #0x5b
ldrb r0, [r0]
adds r2, #1
strb r0, [r2]
adds r0, r4, #0
bl sub_08078E84
b _080A3068
.align 2, 0
_080A3060: .4byte gPlayerEntity
_080A3064:
movs r0, #0xff
strb r0, [r4, #0x1e]
_080A3068:
pop {r4, r5, r6, r7, pc}
.align 2, 0
+251
View File
@@ -0,0 +1,251 @@
thumb_func_start PlayerItemSwordBeam
PlayerItemSwordBeam: @ 0x08019480
push {lr}
ldr r2, _08019494 @ =gUnk_080B43F4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08019494: .4byte gUnk_080B43F4
thumb_func_start sub_08019498
sub_08019498: @ 0x08019498
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, _08019504 @ =gPlayerEntity
adds r0, r4, #0
adds r1, r5, #0
bl CopyPosition
ldrb r0, [r5, #0xc]
adds r0, #1
movs r2, #0
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
adds r4, #0x3c
ldrb r0, [r4]
adds r0, #1
adds r1, r5, #0
adds r1, #0x3c
strb r0, [r1]
ldr r0, _08019508 @ =gUnk_080B4408
str r0, [r5, #0x48]
movs r0, #0xe0
lsls r0, r0, #2
strh r0, [r5, #0x24]
movs r0, #2
str r0, [r5, #0x74]
str r2, [r5, #0x70]
adds r0, r5, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #2
bne _080194E6
movs r0, #1
strb r0, [r5, #0xb]
_080194E6:
ldrb r0, [r5, #0x14]
lsls r0, r0, #2
strb r0, [r5, #0x15]
movs r0, #0x3c
str r0, [r5, #0x6c]
ldrb r0, [r5, #0x14]
adds r2, r0, #0
cmp r0, #2
beq _08019534
cmp r0, #2
bgt _0801950C
cmp r0, #0
beq _08019516
b _0801954E
.align 2, 0
_08019504: .4byte gPlayerEntity
_08019508: .4byte gUnk_080B4408
_0801950C:
cmp r0, #4
beq _0801952C
cmp r0, #6
beq _08019542
b _0801954E
_08019516:
ldrh r0, [r5, #0x2e]
subs r0, #3
strh r0, [r5, #0x2e]
ldrh r0, [r5, #0x32]
subs r0, #8
strh r0, [r5, #0x32]
ldrb r0, [r5, #0x18]
movs r1, #0x80
orrs r0, r1
strb r0, [r5, #0x18]
b _0801954E
_0801952C:
ldrh r0, [r5, #0x2e]
adds r0, #2
strh r0, [r5, #0x2e]
b _0801954E
_08019534:
ldrb r0, [r5, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r5, #0x18]
ldrh r0, [r5, #0x2e]
adds r0, #1
b _08019546
_08019542:
ldrh r0, [r5, #0x2e]
subs r0, #1
_08019546:
strh r0, [r5, #0x2e]
ldrh r0, [r5, #0x32]
subs r0, #4
strh r0, [r5, #0x32]
_0801954E:
ldr r1, _08019578 @ =gUnk_080B43FC
lsrs r0, r2, #1
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r5, #0
bl InitializeAnimation
adds r0, r5, #0
bl sub_0801766C
adds r0, r5, #0
bl sub_0806F69C
adds r0, r5, #0
bl sub_08019580
ldr r0, _0801957C @ =0x0000013F
bl SoundReq
pop {r4, r5, pc}
.align 2, 0
_08019578: .4byte gUnk_080B43FC
_0801957C: .4byte 0x0000013F
thumb_func_start sub_08019580
sub_08019580: @ 0x08019580
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, [r4, #0x6c]
subs r0, #1
str r0, [r4, #0x6c]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
beq _08019638
adds r0, r4, #0
bl GetNextFrame
adds r0, r4, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _080195B0
adds r0, r4, #0
bl sub_0800451C
_080195B0:
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _0801962C @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
ldr r1, _08019630 @ =gPlayerEntity
adds r1, #0x38
ldrb r1, [r1]
movs r2, #0x80
bl sub_080002F0
cmp r0, #0
bne _08019602
ldr r1, _08019634 @ =gUnk_08003E44
movs r0, #0x2e
ldrsh r2, [r4, r0]
movs r5, #0x32
ldrsh r3, [r4, r5]
adds r0, r4, #0
bl sub_080040D8
cmp r0, #0
beq _08019602
adds r0, r4, #0
movs r1, #0x19
movs r2, #0
bl CreateFx
bl DeleteThisEntity
_08019602:
adds r0, r4, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0
beq _0801961A
adds r0, r4, #0
movs r1, #0x19
movs r2, #0
bl CreateFx
bl DeleteThisEntity
_0801961A:
adds r0, r4, #0
movs r1, #0xc
bl sub_08008790
cmp r0, #0
beq _0801963C
bl DeleteThisEntity
b _0801963C
.align 2, 0
_0801962C: .4byte gRoomControls
_08019630: .4byte gPlayerEntity
_08019634: .4byte gUnk_08003E44
_08019638:
bl DeleteThisEntity
_0801963C:
adds r0, r4, #0
bl sub_08019644
pop {r4, r5, pc}
thumb_func_start sub_08019644
sub_08019644: @ 0x08019644
push {lr}
adds r2, r0, #0
ldr r0, [r2, #0x74]
subs r1, r0, #1
str r1, [r2, #0x74]
cmp r1, #0
bne _08019674
movs r0, #2
str r0, [r2, #0x74]
ldr r0, [r2, #0x70]
adds r0, #1
str r0, [r2, #0x70]
ldr r3, _08019678 @ =gUnk_080B4400
adds r0, r0, r3
ldrb r0, [r0]
cmp r0, #0xff
bne _08019668
str r1, [r2, #0x70]
_08019668:
ldr r0, [r2, #0x70]
adds r0, r0, r3
ldrb r1, [r0]
adds r0, r2, #0
bl sub_0801D2B4
_08019674:
pop {pc}
.align 2, 0
_08019678: .4byte gUnk_080B4400
+594
View File
@@ -0,0 +1,594 @@
thumb_func_start PlayerItemSwordSpin
PlayerItemSwordSpin: @ 0x0801BA00
push {lr}
ldr r2, _0801BA14 @ =gUnk_080B7870
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0801BA14: .4byte gUnk_080B7870
thumb_func_start sub_0801BA18
sub_0801BA18: @ 0x0801BA18
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x68
ldrb r0, [r1]
cmp r0, #0x36
bne _0801BA2A
movs r0, #0x36
b _0801BA34
_0801BA2A:
ldrb r1, [r1]
ldr r0, _0801BA4C @ =gSave
adds r0, r0, r1
adds r0, #0x9a
ldrb r0, [r0]
_0801BA34:
adds r1, r4, #0
adds r1, #0x6f
strb r0, [r1]
subs r0, #0x20
cmp r0, #0x11
bhi _0801BB02
lsls r0, r0, #2
ldr r1, _0801BA50 @ =_0801BA54
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801BA4C: .4byte gSave
_0801BA50: .4byte _0801BA54
_0801BA54: @ jump table
.4byte _0801BA9C @ case 0
.4byte _0801BAF8 @ case 1
.4byte _0801BAF8 @ case 2
.4byte _0801BAF8 @ case 3
.4byte _0801BAF8 @ case 4
.4byte _0801BAF8 @ case 5
.4byte _0801BB02 @ case 6
.4byte _0801BB02 @ case 7
.4byte _0801BB02 @ case 8
.4byte _0801BAF8 @ case 9
.4byte _0801BAF8 @ case 10
.4byte _0801BAF8 @ case 11
.4byte _0801BAF8 @ case 12
.4byte _0801BAF8 @ case 13
.4byte _0801BAF8 @ case 14
.4byte _0801BB02 @ case 15
.4byte _0801BB02 @ case 16
.4byte _0801BB02 @ case 17
_0801BA9C:
adds r0, r4, #0
bl AllocMutableHitbox
cmp r0, #0
beq _0801BB26
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldr r1, _0801BAF4 @ =gPlayerEntity
adds r0, r1, #0
adds r0, #0x3c
ldrb r0, [r0]
adds r0, #1
movs r2, #0x20
adds r3, r4, #0
adds r3, #0x3c
orrs r0, r2
strb r0, [r3]
adds r1, #0x3b
ldrb r0, [r1]
adds r1, r4, #0
adds r1, #0x3b
strb r0, [r1]
adds r1, #5
movs r0, #0x1f
strb r0, [r1]
movs r0, #1
strb r0, [r4, #0xa]
movs r0, #0x20
strb r0, [r4, #0xb]
movs r0, #0x52
strb r0, [r4, #0xe]
movs r0, #0x1b
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_0801766C
movs r0, #0xee
lsls r0, r0, #1
bl SoundReq
b _0801BB0A
.align 2, 0
_0801BAF4: .4byte gPlayerEntity
_0801BAF8:
movs r0, #0xd5
strb r0, [r4, #0xe]
movs r0, #0x3c
strb r0, [r4, #0xf]
b _0801BB0A
_0801BB02:
movs r1, #0
movs r0, #0x37
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
_0801BB0A:
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0xff
strb r0, [r4, #0x1e]
ldr r0, _0801BB28 @ =gPlayerState
str r4, [r0, #0x2c]
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_0801BB2C
_0801BB26:
pop {r4, pc}
.align 2, 0
_0801BB28: .4byte gPlayerState
thumb_func_start sub_0801BB2C
sub_0801BB2C: @ 0x0801BB2C
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _0801BB88 @ =gPlayerState
ldr r0, [r0, #0x2c]
cmp r0, r5
beq _0801BB68
ldrb r0, [r5, #0xa]
cmp r0, #1
bne _0801BB64
ldrb r0, [r5, #0xb]
cmp r0, #0x20
beq _0801BB64
adds r0, r5, #0
adds r0, #0x68
ldrb r4, [r0]
subs r4, #0x1c
ldrb r0, [r5, #0xb]
adds r1, r4, #0
bl SetBottleContents
ldrb r0, [r5, #0xb]
adds r1, r4, #0
movs r2, #5
bl sub_080A7C18
ldr r0, _0801BB8C @ =0x00000109
bl SoundReq
_0801BB64:
bl DeleteThisEntity
_0801BB68:
ldr r1, _0801BB90 @ =gPlayerEntity
adds r0, r5, #0
bl sub_0801BDE8
adds r0, r5, #0
adds r0, #0x6f
ldrb r0, [r0]
subs r0, #0x20
cmp r0, #0x11
bhi _0801BC04
lsls r0, r0, #2
ldr r1, _0801BB94 @ =_0801BB98
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801BB88: .4byte gPlayerState
_0801BB8C: .4byte 0x00000109
_0801BB90: .4byte gPlayerEntity
_0801BB94: .4byte _0801BB98
_0801BB98: @ jump table
.4byte _0801BBE0 @ case 0
.4byte _0801BBE8 @ case 1
.4byte _0801BBE8 @ case 2
.4byte _0801BBE8 @ case 3
.4byte _0801BBE8 @ case 4
.4byte _0801BBE8 @ case 5
.4byte _0801BC04 @ case 6
.4byte _0801BC04 @ case 7
.4byte _0801BC04 @ case 8
.4byte _0801BBE8 @ case 9
.4byte _0801BBE8 @ case 10
.4byte _0801BBE8 @ case 11
.4byte _0801BBE8 @ case 12
.4byte _0801BBE8 @ case 13
.4byte _0801BBE8 @ case 14
.4byte _0801BC04 @ case 15
.4byte _0801BC04 @ case 16
.4byte _0801BC04 @ case 17
_0801BBE0:
adds r0, r5, #0
bl sub_0801BC0C
b _0801BC0A
_0801BBE8:
ldr r0, _0801BC00 @ =gPlayerEntity
adds r1, r0, #0
adds r1, #0x5a
ldrb r0, [r1]
cmp r0, #1
bne _0801BC0A
movs r0, #0
strb r0, [r1]
adds r0, r5, #0
bl sub_0801BC14
b _0801BC0A
.align 2, 0
_0801BC00: .4byte gPlayerEntity
_0801BC04:
adds r0, r5, #0
bl sub_0801BCB4
_0801BC0A:
pop {r4, r5, pc}
thumb_func_start sub_0801BC0C
sub_0801BC0C: @ 0x0801BC0C
push {lr}
bl sub_0801BE38
pop {pc}
thumb_func_start sub_0801BC14
sub_0801BC14: @ 0x0801BC14
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r6, #0x20
movs r5, #0
adds r0, #0x6f
ldrb r0, [r0]
subs r0, #0x21
cmp r0, #0xd
bhi _0801BC98
lsls r0, r0, #2
ldr r1, _0801BC30 @ =_0801BC34
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801BC30: .4byte _0801BC34
_0801BC34: @ jump table
.4byte _0801BC76 @ case 0
.4byte _0801BC6C @ case 1
.4byte _0801BC6E @ case 2
.4byte _0801BC76 @ case 3
.4byte _0801BC72 @ case 4
.4byte _0801BC98 @ case 5
.4byte _0801BC98 @ case 6
.4byte _0801BC98 @ case 7
.4byte _0801BC7A @ case 8
.4byte _0801BC7A @ case 9
.4byte _0801BC7A @ case 10
.4byte _0801BC7A @ case 11
.4byte _0801BC7A @ case 12
.4byte _0801BC7A @ case 13
_0801BC6C:
movs r6, #0x23
_0801BC6E:
movs r5, #0x28
b _0801BC98
_0801BC72:
movs r5, #0x50
b _0801BC98
_0801BC76:
movs r5, #0xa0
b _0801BC98
_0801BC7A:
ldr r1, _0801BCB0 @ =gSave
adds r0, r4, #0
adds r0, #0x6f
ldrb r0, [r0]
adds r2, r1, #0
adds r2, #0xb3
strb r0, [r2]
adds r1, #0xc6
movs r0, #0xe1
lsls r0, r0, #2
strh r0, [r1]
movs r0, #0x88
lsls r0, r0, #2
bl SoundReq
_0801BC98:
adds r0, r5, #0
bl ModHealth
adds r0, r4, #0
adds r0, #0x68
ldrb r1, [r0]
subs r1, #0x1c
adds r0, r6, #0
bl SetBottleContents
pop {r4, r5, r6, pc}
.align 2, 0
_0801BCB0: .4byte gSave
thumb_func_start sub_0801BCB4
sub_0801BCB4: @ 0x0801BCB4
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _0801BCEC @ =gPlayerEntity
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #1
bne _0801BD6C
adds r0, r4, #0
adds r0, #0x6f
ldrb r1, [r0]
adds r5, r0, #0
cmp r1, #0x36
beq _0801BCDA
subs r0, #7
ldrb r1, [r0]
subs r1, #0x1c
movs r0, #0x20
bl SetBottleContents
_0801BCDA:
ldrb r0, [r5]
subs r0, #0x26
cmp r0, #0xb
bhi _0801BD6C
lsls r0, r0, #2
ldr r1, _0801BCF0 @ =_0801BCF4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0801BCEC: .4byte gPlayerEntity
_0801BCF0: .4byte _0801BCF4
_0801BCF4: @ jump table
.4byte _0801BD24 @ case 0
.4byte _0801BD32 @ case 1
.4byte _0801BD40 @ case 2
.4byte _0801BD6C @ case 3
.4byte _0801BD6C @ case 4
.4byte _0801BD6C @ case 5
.4byte _0801BD6C @ case 6
.4byte _0801BD6C @ case 7
.4byte _0801BD6C @ case 8
.4byte _0801BD54 @ case 9
.4byte _0801BD54 @ case 10
.4byte _0801BD54 @ case 11
_0801BD24:
adds r0, r4, #0
movs r1, #0x68
movs r2, #0
movs r3, #0
bl CreateObjectWithParent
b _0801BD6C
_0801BD32:
adds r0, r4, #0
movs r1, #0x68
movs r2, #1
movs r3, #1
bl CreateObjectWithParent
b _0801BD6C
_0801BD40:
adds r0, r4, #0
movs r1, #0x68
movs r2, #2
movs r3, #2
bl CreateObjectWithParent
movs r0, #0x20
bl ModHealth
b _0801BD6C
_0801BD54:
ldr r1, _0801BD88 @ =gSave
ldrb r0, [r5]
adds r2, r1, #0
adds r2, #0xb2
strb r0, [r2]
adds r1, #0xc4
movs r0, #0xe1
lsls r0, r0, #4
strh r0, [r1]
ldr r0, _0801BD8C @ =0x000001CF
bl SoundReq
_0801BD6C:
ldr r0, _0801BD90 @ =gPlayerEntity
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #2
bne _0801BDAE
adds r0, r4, #0
adds r0, #0x6f
ldrb r0, [r0]
cmp r0, #0x26
beq _0801BD94
cmp r0, #0x27
beq _0801BDA2
b _0801BDAE
.align 2, 0
_0801BD88: .4byte gSave
_0801BD8C: .4byte 0x000001CF
_0801BD90: .4byte gPlayerEntity
_0801BD94:
adds r0, r4, #0
movs r1, #0x68
movs r2, #0
movs r3, #0
bl CreateObjectWithParent
b _0801BDAE
_0801BDA2:
adds r0, r4, #0
movs r1, #0x68
movs r2, #1
movs r3, #1
bl CreateObjectWithParent
_0801BDAE:
ldr r0, _0801BDC8 @ =gPlayerEntity
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #3
bne _0801BDE6
adds r0, r4, #0
adds r0, #0x6f
ldrb r0, [r0]
cmp r0, #0x26
beq _0801BDCC
cmp r0, #0x27
beq _0801BDDA
b _0801BDE6
.align 2, 0
_0801BDC8: .4byte gPlayerEntity
_0801BDCC:
adds r0, r4, #0
movs r1, #0x68
movs r2, #0
movs r3, #0
bl CreateObjectWithParent
b _0801BDE6
_0801BDDA:
adds r0, r4, #0
movs r1, #0x68
movs r2, #1
movs r3, #0
bl CreateObjectWithParent
_0801BDE6:
pop {r4, r5, pc}
thumb_func_start sub_0801BDE8
sub_0801BDE8: @ 0x0801BDE8
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldrb r0, [r5, #0x1e]
ldrb r1, [r4, #0xe]
subs r0, r0, r1
ldrb r1, [r4, #0xf]
adds r0, r0, r1
ldrb r1, [r4, #0x1e]
cmp r0, r1
beq _0801BE0A
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_0801BE0A:
ldrb r1, [r5, #0x18]
lsls r1, r1, #0x19
lsrs r1, r1, #0x1f
ldrb r0, [r5, #0x14]
lsrs r0, r0, #1
movs r2, #1
ands r0, r2
eors r1, r0
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldr r1, _0801BE34 @ =gPlayerEntity
adds r0, r4, #0
bl sub_08078E84
pop {r4, r5, pc}
.align 2, 0
_0801BE34: .4byte gPlayerEntity
thumb_func_start sub_0801BE38
sub_0801BE38: @ 0x0801BE38
push {r4, lr}
adds r4, r0, #0
adds r2, r4, #0
adds r2, #0x41
ldrb r0, [r2]
movs r1, #0x7f
ands r1, r0
cmp r1, #0x49
beq _0801BE54
cmp r1, #0x4d
beq _0801BE60
movs r0, #0
strb r0, [r2]
b _0801BE6A
_0801BE54:
movs r0, #0x28
strb r0, [r4, #0xb]
adds r0, r4, #0
bl sub_0801B9F0
b _0801BE6A
_0801BE60:
movs r0, #0x27
strb r0, [r4, #0xb]
adds r0, r4, #0
bl sub_0801B9F0
_0801BE6A:
ldrb r0, [r4, #0x1e]
subs r0, #0x1b
lsls r0, r0, #2
ldr r1, _0801BE84 @ =gUnk_080B788A
adds r2, r0, r1
ldrb r0, [r4, #0x18]
lsls r0, r0, #0x19
cmp r0, #0
bge _0801BE88
ldr r1, [r4, #0x48]
ldrb r0, [r2]
rsbs r0, r0, #0
b _0801BE8C
.align 2, 0
_0801BE84: .4byte gUnk_080B788A
_0801BE88:
ldr r1, [r4, #0x48]
ldrb r0, [r2]
_0801BE8C:
strb r0, [r1]
ldr r1, [r4, #0x48]
ldrb r0, [r2, #1]
strb r0, [r1, #1]
ldr r1, [r4, #0x48]
ldrb r0, [r2, #2]
strb r0, [r1, #6]
ldr r1, [r4, #0x48]
ldrb r0, [r2, #3]
strb r0, [r1, #7]
ldr r0, _0801BEF0 @ =gPlayerEntity
adds r0, #0x5a
ldrb r0, [r0]
movs r1, #0xf
ands r1, r0
cmp r1, #0
beq _0801BEDE
ldrb r0, [r4, #0xb]
cmp r0, #0x20
bne _0801BEE4
subs r0, r1, #1
lsls r0, r0, #1
ldr r1, _0801BEF4 @ =gUnk_080B7878
adds r2, r0, r1
movs r1, #0
ldrsb r1, [r2, r1]
ldrb r0, [r4, #0x18]
lsls r0, r0, #0x19
cmp r0, #0
bge _0801BECA
rsbs r1, r1, #0
_0801BECA:
ldrb r2, [r2, #1]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
adds r0, r4, #0
bl sub_080002B4
cmp r0, #0x10
bne _0801BEDE
movs r0, #0x26
strb r0, [r4, #0xb]
_0801BEDE:
ldrb r0, [r4, #0xb]
cmp r0, #0x20
beq _0801BEEE
_0801BEE4:
ldr r2, _0801BEF0 @ =gPlayerEntity
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
_0801BEEE:
pop {r4, pc}
.align 2, 0
_0801BEF0: .4byte gPlayerEntity
_0801BEF4: .4byte gUnk_080B7878
+3
View File
@@ -0,0 +1,3 @@
gUnk_0812AA80:: @ 0812AA80
.4byte sub_080ACC04
.4byte sub_080ACC5C
+25 -5
View File
@@ -1,6 +1,26 @@
gUnk_08109AC8:: @ 08109AC8
.4byte sub_0805FBE8
.4byte sub_0805FC74
gUnk_08109AD0:: @ 08109AD0
.incbin "baserom.gba", 0x109AD0, 0x0000008
gUnk_080B3DD0:: @ 080B3DD0
.4byte sub_08018CBC
.4byte sub_08018DE8
.4byte sub_08018E68
.4byte sub_08018F6C
gUnk_080B3DE0:: @ 080B3DE0
.incbin "baserom.gba", 0x0B3DE0, 0x0000008
gUnk_080B3DE8:: @ 080B3DE8
.4byte gUnk_080B3E18
.4byte gUnk_080B3E20
.4byte gUnk_080B3E28
gUnk_080B3DF4:: @ 080B3DF4
.incbin "baserom.gba", 0x0B3DF4, 0x0000024
gUnk_080B3E18:: @ 080B3E18
.incbin "baserom.gba", 0x0B3E18, 0x0000008
gUnk_080B3E20:: @ 080B3E20
.incbin "baserom.gba", 0x0B3E20, 0x0000008
gUnk_080B3E28:: @ 080B3E28
.incbin "baserom.gba", 0x0B3E28, 0x0000008
+18
View File
@@ -0,0 +1,18 @@
gUnk_0811B98C:: @ 0811B98C
.4byte sub_08070100
.4byte sub_080701F8
.4byte sub_0807037C
.4byte sub_08070398
.4byte sub_080703BC
gUnk_0811B9A0:: @ 0811B9A0
.incbin "baserom.gba", 0x11B9A0, 0x0000008
gUnk_0811B9A8:: @ 0811B9A8
.incbin "baserom.gba", 0x11B9A8, 0x0000020
gUnk_0811B9C8:: @ 0811B9C8
.incbin "baserom.gba", 0x11B9C8, 0x0000008
gUnk_0811B9D0:: @ 0811B9D0
.incbin "baserom.gba", 0x11B9D0, 0x0000008
+20
View File
@@ -0,0 +1,20 @@
gUnk_081320A8:: @ 081320A8
.4byte sub_080ACF2C
.4byte sub_080ACFCC
.4byte sub_080AD040
.4byte sub_080AD274
gUnk_081320B8:: @ 081320B8
.incbin "baserom.gba", 0x1320B8, 0x000000C
gUnk_081320C4:: @ 081320C4
.incbin "baserom.gba", 0x1320C4, 0x0000008
gUnk_081320CC:: @ 081320CC
.incbin "baserom.gba", 0x1320CC, 0x0000008
gUnk_081320D4:: @ 081320D4
.incbin "baserom.gba", 0x1320D4, 0x0000010
gUnk_081320E4:: @ 081320E4
.incbin "baserom.gba", 0x1320E4, 0x000000C
+6
View File
@@ -0,0 +1,6 @@
gUnk_08109AC8:: @ 08109AC8
.4byte sub_0805FBE8
.4byte sub_0805FC74
gUnk_08109AD0:: @ 08109AD0
.incbin "baserom.gba", 0x109AD0, 0x0000008
+6
View File
@@ -0,0 +1,6 @@
gUnk_08127270:: @ 08127270
.4byte sub_080A3084
.4byte sub_080A310C
gUnk_08127278:: @ 08127278
.incbin "baserom.gba", 0x127278, 0x0000008
+12
View File
@@ -0,0 +1,12 @@
gUnk_080B77FC:: @ 080B77FC
.4byte sub_0801B4C8
.4byte sub_0801B584
.4byte sub_0801B680
.4byte sub_0801B7A8
.incbin "baserom.gba", 0x0B780C, 0x000001A
gUnk_080B7826:: @ 080B7826
.incbin "baserom.gba", 0x0B7826, 0x0000008
gUnk_080B782E:: @ 080B782E
.incbin "baserom.gba", 0x0B782E, 0x0000012
+16
View File
@@ -0,0 +1,16 @@
gUnk_080B77C8:: @ 080B77C8
.4byte sub_0801B250
.4byte sub_0801B2CC
.4byte sub_0801B318
.4byte sub_0801B38C
gUnk_080B77D8:: @ 080B77D8
.4byte sub_0801B330
.4byte sub_0801B340
.4byte sub_0801B354
.4byte sub_0801B368
.4byte sub_0801B384
.incbin "baserom.gba", 0x0B77EC, 0x0000008
gUnk_080B77F4:: @ 080B77F4
.incbin "baserom.gba", 0x0B77F4, 0x0000008
+8
View File
@@ -0,0 +1,8 @@
gUnk_080B3E30:: @ 080B3E30
.4byte sub_08018FE4
.4byte sub_0801917C
.4byte sub_08019410
.4byte sub_08019444
gUnk_080B3E40:: @ 080B3E40
.incbin "baserom.gba", 0x0B3E40, 0x0000030
+9
View File
@@ -0,0 +1,9 @@
gUnk_080B7840:: @ 080B7840
.4byte sub_0801B8B0
.4byte sub_0801B8FC
gUnk_080B7848:: @ 080B7848
.incbin "baserom.gba", 0x0B7848, 0x0000008
gUnk_080B7850:: @ 080B7850
.incbin "baserom.gba", 0x0B7850, 0x0000020
@@ -0,0 +1,2 @@
gUnk_080B7B6C:: @ 080B7B6C
.incbin "baserom.gba", 0x0B7B6C, 0x0000008
@@ -0,0 +1,91 @@
gUnk_08132700:: @ 08132700
.4byte sub_080ADA6C
.4byte sub_080ADAA8
.4byte sub_080ADAD4
.4byte sub_080ADC14
.4byte sub_080ADC60
gUnk_08132714:: @ 08132714
.4byte gUnk_08132AF4
.4byte gUnk_08132AEA
.4byte gUnk_08132AE0
.4byte gUnk_08132AEA
.4byte gUnk_08132B1A
.4byte gUnk_08132B0C
.4byte gUnk_08132AFE
.4byte gUnk_08132B0C
gUnk_08132734:: @ 08132734
.incbin "baserom.gba", 0x132734, 0x0000001
gUnk_08132735:: @ 08132735
.incbin "baserom.gba", 0x132735, 0x0000001
gUnk_08132736:: @ 08132736
.incbin "baserom.gba", 0x132736, 0x000000E
gUnk_08132744:: @ 08132744
.incbin "baserom.gba", 0x132744, 0x0000010
gUnk_08132754:: @ 08132754
.incbin "baserom.gba", 0x132754, 0x0000010
gUnk_08132764:: @ 08132764
.incbin "baserom.gba", 0x132764, 0x0000010
gUnk_08132774:: @ 08132774
.incbin "baserom.gba", 0x132774, 0x0000010
gUnk_08132784:: @ 08132784
.incbin "baserom.gba", 0x132784, 0x0000010
gUnk_08132794:: @ 08132794
.incbin "baserom.gba", 0x132794, 0x0000018
gUnk_081327AC:: @ 081327AC
.incbin "baserom.gba", 0x1327AC, 0x0000018
gUnk_081327C4:: @ 081327C4
.incbin "baserom.gba", 0x1327C4, 0x0000018
gUnk_081327DC:: @ 081327DC
.4byte gUnk_08132754
.4byte gUnk_08132744
.4byte gUnk_08132734
.4byte gUnk_08132744
.4byte gUnk_08132784
.4byte gUnk_08132774
.4byte gUnk_08132764
.4byte gUnk_08132774
.4byte gUnk_081327C4
.4byte gUnk_081327AC
.4byte gUnk_08132794
.4byte gUnk_081327AC
.4byte 00000000
gUnk_08132810:: @ 08132810
.incbin "baserom.gba", 0x132810, 0x0000017
gUnk_08132827:: @ 08132827
.incbin "baserom.gba", 0x132827, 0x00002B9
gUnk_08132AE0:: @ 08132AE0
.incbin "baserom.gba", 0x132AE0, 0x000000A
gUnk_08132AEA:: @ 08132AEA
.incbin "baserom.gba", 0x132AEA, 0x000000A
gUnk_08132AF4:: @ 08132AF4
.incbin "baserom.gba", 0x132AF4, 0x000000A
gUnk_08132AFE:: @ 08132AFE
.incbin "baserom.gba", 0x132AFE, 0x000000E
gUnk_08132B0C:: @ 08132B0C
.incbin "baserom.gba", 0x132B0C, 0x000000E
gUnk_08132B1A:: @ 08132B1A
.incbin "baserom.gba", 0x132B1A, 0x000000E
gUnk_08132B28:: @ 08132B28
.incbin "baserom.gba", 0x132B28, 0x0000008
@@ -0,0 +1,6 @@
gUnk_080FEEA8:: @ 080FEEA8
.4byte sub_08054A60
.4byte sub_08054AC8
gUnk_080FEEB0:: @ 080FEEB0
.incbin "baserom.gba", 0x0FEEB0, 0x0000008
@@ -0,0 +1,3 @@
gUnk_0811B9D8:: @ 0811B9D8
.4byte sub_080704D4
.4byte sub_080704FC
@@ -0,0 +1,28 @@
gUnk_081271D4:: @ 081271D4
.4byte sub_080A2D98
.4byte sub_080A2E00
gUnk_081271DC:: @ 081271DC
.incbin "baserom.gba", 0x1271DC, 0x0000044
gUnk_08127220:: @ 08127220
.incbin "baserom.gba", 0x127220, 0x0000020
gUnk_08127240:: @ 08127240
.4byte gUnk_08127250
.4byte gUnk_08127258
.4byte gUnk_08127260
.4byte gUnk_08127268
gUnk_08127250:: @ 08127250
.incbin "baserom.gba", 0x127250, 0x0000008
gUnk_08127258:: @ 08127258
.incbin "baserom.gba", 0x127258, 0x0000008
gUnk_08127260:: @ 08127260
.incbin "baserom.gba", 0x127260, 0x0000008
gUnk_08127268:: @ 08127268
.incbin "baserom.gba", 0x127268, 0x0000008
+18
View File
@@ -2,3 +2,21 @@ gUnk_0812905C:: @ 0812905C
.4byte sub_080A758C
.4byte sub_080A76CC
.4byte sub_080A7824
gUnk_08129068:: @ 08129068
.incbin "baserom.gba", 0x129068, 0x0000004
gUnk_0812906C:: @ 0812906C
.incbin "baserom.gba", 0x12906C, 0x0000006
gUnk_08129072:: @ 08129072
.incbin "baserom.gba", 0x129072, 0x000001C
gUnk_0812908E:: @ 0812908E
.incbin "baserom.gba", 0x12908E, 0x0000008
gUnk_08129096:: @ 08129096
.incbin "baserom.gba", 0x129096, 0x000024C
gUnk_081292E2:: @ 081292E2
.incbin "baserom.gba", 0x1292E2, 0x000003E
@@ -0,0 +1,12 @@
gUnk_080B43F4:: @ 080B43F4
.4byte sub_08019498
.4byte sub_08019580
gUnk_080B43FC:: @ 080B43FC
.incbin "baserom.gba", 0x0B43FC, 0x0000004
gUnk_080B4400:: @ 080B4400
.incbin "baserom.gba", 0x0B4400, 0x0000008
gUnk_080B4408:: @ 080B4408
.incbin "baserom.gba", 0x0B4408, 0x0000008
@@ -0,0 +1,9 @@
gUnk_080B7870:: @ 080B7870
.4byte sub_0801BA18
.4byte sub_0801BB2C
gUnk_080B7878:: @ 080B7878
.incbin "baserom.gba", 0x0B7878, 0x0000012
gUnk_080B788A:: @ 080B788A
.incbin "baserom.gba", 0x0B788A, 0x0000086
+8 -1
View File
@@ -89,7 +89,14 @@ gUnk_080033F5:: @ 080033F5
.incbin "baserom.gba", 0x0033F5, 0x000000B
gUnk_08003400:: @ 08003400
.incbin "baserom.gba", 0x003400, 0x0000020
.4byte 00000000
.4byte gUnk_080CB67C
.4byte 00000000
.4byte 00000000
.4byte 00000000
.4byte gUnk_0812714C
.4byte 00000000
.4byte 00000000
gUnk_08003420:: @ 08003420
.incbin "baserom.gba", 0x003420, 0x0000014
+12 -91
View File
@@ -44,40 +44,11 @@ gUnk_080B3D14:: @ 080B3D14
gUnk_080B3D20:: @ 080B3D20
.incbin "baserom.gba", 0x0B3D20, 0x00000B0
gUnk_080B3DD0:: @ 080B3DD0
.4byte sub_08018CBC
.4byte sub_08018DE8
.4byte sub_08018E68
.4byte sub_08018F6C
@ TODO convert .inc files into .s files and include them in linker.ld
.include "data/const/playerItem/playerItem11.inc"
gUnk_080B3DE0:: @ 080B3DE0
.incbin "baserom.gba", 0x0B3DE0, 0x0000008
.include "data/const/playerItem/playerItemBow.inc"
gUnk_080B3DE8:: @ 080B3DE8
.4byte gUnk_080B3E18
.4byte gUnk_080B3E20
.4byte gUnk_080B3E28
gUnk_080B3DF4:: @ 080B3DF4
.incbin "baserom.gba", 0x0B3DF4, 0x0000024
gUnk_080B3E18:: @ 080B3E18
.incbin "baserom.gba", 0x0B3E18, 0x0000008
gUnk_080B3E20:: @ 080B3E20
.incbin "baserom.gba", 0x0B3E20, 0x0000008
gUnk_080B3E28:: @ 080B3E28
.incbin "baserom.gba", 0x0B3E28, 0x0000008
gUnk_080B3E30:: @ 080B3E30
.4byte sub_08018FE4
.4byte sub_0801917C
.4byte sub_08019410
.4byte sub_08019444
gUnk_080B3E40:: @ 080B3E40
.incbin "baserom.gba", 0x0B3E40, 0x0000030
gUnk_080B3E70:: @ 080B3E70
.incbin "baserom.gba", 0x0B3E70, 0x0000001
@@ -94,18 +65,8 @@ gUnk_080B3E80:: @ 080B3E80
gUnk_080B4000:: @ 080B4000
.incbin "baserom.gba", 0x0B4000, 0x00003F4
gUnk_080B43F4:: @ 080B43F4
.4byte sub_08019498
.4byte sub_08019580
gUnk_080B43FC:: @ 080B43FC
.incbin "baserom.gba", 0x0B43FC, 0x0000004
gUnk_080B4400:: @ 080B4400
.incbin "baserom.gba", 0x0B4400, 0x0000008
gUnk_080B4408:: @ 080B4408
.incbin "baserom.gba", 0x0B4408, 0x0000008
@ TODO convert .inc files into .s files and include them in linker.ld
.include "data/const/playerItem/playerItemSwordBeam.inc"
gUnk_080B4410:: @ 080B4410
.incbin "baserom.gba", 0x0B4410, 0x0000048
@@ -2780,55 +2741,15 @@ gUnk_080B755C:: @ 080B755C
gUnk_080B77C0:: @ 080B77C0
.incbin "baserom.gba", 0x0B77C0, 0x0000008
gUnk_080B77C8:: @ 080B77C8
.4byte sub_0801B250
.4byte sub_0801B2CC
.4byte sub_0801B318
.4byte sub_0801B38C
@ TODO convert .inc files into .s files and include them in linker.ld
.include "data/const/playerItem/playerItemBomb.inc"
gUnk_080B77D8:: @ 080B77D8
.4byte sub_0801B330
.4byte sub_0801B340
.4byte sub_0801B354
.4byte sub_0801B368
.4byte sub_0801B384
.incbin "baserom.gba", 0x0B77EC, 0x0000008
.include "data/const/playerItem/playerItem3.inc"
gUnk_080B77F4:: @ 080B77F4
.incbin "baserom.gba", 0x0B77F4, 0x0000008
.include "data/const/playerItem/playerItemC.inc"
gUnk_080B77FC:: @ 080B77FC
.4byte sub_0801B4C8
.4byte sub_0801B584
.4byte sub_0801B680
.4byte sub_0801B7A8
.incbin "baserom.gba", 0x0B780C, 0x000001A
.include "data/const/playerItem/playerItemSwordSpin.inc"
gUnk_080B7826:: @ 080B7826
.incbin "baserom.gba", 0x0B7826, 0x0000008
gUnk_080B782E:: @ 080B782E
.incbin "baserom.gba", 0x0B782E, 0x0000012
gUnk_080B7840:: @ 080B7840
.4byte sub_0801B8B0
.4byte sub_0801B8FC
gUnk_080B7848:: @ 080B7848
.incbin "baserom.gba", 0x0B7848, 0x0000008
gUnk_080B7850:: @ 080B7850
.incbin "baserom.gba", 0x0B7850, 0x0000020
gUnk_080B7870:: @ 080B7870
.4byte sub_0801BA18
.4byte sub_0801BB2C
gUnk_080B7878:: @ 080B7878
.incbin "baserom.gba", 0x0B7878, 0x0000012
gUnk_080B788A:: @ 080B788A
.incbin "baserom.gba", 0x0B788A, 0x0000086
gUnk_080B7910:: @ 080B7910
.incbin "baserom.gba", 0x0B7910, 0x0000097
@@ -2839,8 +2760,8 @@ gUnk_080B79A7:: @ 080B79A7
gUnk_080B7A3E:: @ 080B7A3E
.incbin "baserom.gba", 0x0B7A3E, 0x000012E
gUnk_080B7B6C:: @ 080B7B6C
.incbin "baserom.gba", 0x0B7B6C, 0x0000008
.include "data/const/playerItem/playerItemCellOverwriteSet.inc"
gUnk_080B7B74:: @ 080B7B74
.incbin "baserom.gba", 0x0B7B74, 0x00004BA
+1343 -295
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -370,7 +370,7 @@ gUnk_08109AA8:: @ 08109AA8
gUnk_08109AB8:: @ 08109AB8
.incbin "baserom.gba", 0x109AB8, 0x0000010
.include "data/const/playerItem/playerItem11.inc"
.include "data/const/playerItem/playerItem14.inc"
@ TODO convert .inc files into .s files and include them in linker.ld
.include "data/animations/npc/gentari.inc"
+3 -16
View File
@@ -604,20 +604,7 @@ gUnk_0811B578:: @ 0811B578
gUnk_0811B940:: @ 0811B940
.incbin "baserom.gba", 0x11B940, 0x000004C
gUnk_0811B98C:: @ 0811B98C
.incbin "baserom.gba", 0x11B98C, 0x0000014
@ TODO convert .inc files into .s files and include them in linker.ld
.include "data/const/playerItem/playerItem12.inc"
gUnk_0811B9A0:: @ 0811B9A0
.incbin "baserom.gba", 0x11B9A0, 0x0000008
gUnk_0811B9A8:: @ 0811B9A8
.incbin "baserom.gba", 0x11B9A8, 0x0000020
gUnk_0811B9C8:: @ 0811B9C8
.incbin "baserom.gba", 0x11B9C8, 0x0000008
gUnk_0811B9D0:: @ 0811B9D0
.incbin "baserom.gba", 0x11B9D0, 0x0000008
gUnk_0811B9D8:: @ 0811B9D8
.incbin "baserom.gba", 0x11B9D8, 0x0000008
.include "data/const/playerItem/playerItemPacciCane.inc"
+1724 -163
View File
File diff suppressed because it is too large Load Diff
+12 -69
View File
@@ -79,74 +79,8 @@ gUnk_081326CC:: @ 081326CC
gUnk_081326EC:: @ 081326EC
.incbin "baserom.gba", 0x1326EC, 0x0000014
gUnk_08132700:: @ 08132700
.incbin "baserom.gba", 0x132700, 0x0000014
gUnk_08132714:: @ 08132714
.incbin "baserom.gba", 0x132714, 0x0000020
gUnk_08132734:: @ 08132734
.incbin "baserom.gba", 0x132734, 0x0000001
gUnk_08132735:: @ 08132735
.incbin "baserom.gba", 0x132735, 0x0000001
gUnk_08132736:: @ 08132736
.incbin "baserom.gba", 0x132736, 0x000000E
gUnk_08132744:: @ 08132744
.incbin "baserom.gba", 0x132744, 0x0000010
gUnk_08132754:: @ 08132754
.incbin "baserom.gba", 0x132754, 0x0000010
gUnk_08132764:: @ 08132764
.incbin "baserom.gba", 0x132764, 0x0000010
gUnk_08132774:: @ 08132774
.incbin "baserom.gba", 0x132774, 0x0000010
gUnk_08132784:: @ 08132784
.incbin "baserom.gba", 0x132784, 0x0000010
gUnk_08132794:: @ 08132794
.incbin "baserom.gba", 0x132794, 0x0000018
gUnk_081327AC:: @ 081327AC
.incbin "baserom.gba", 0x1327AC, 0x0000018
gUnk_081327C4:: @ 081327C4
.incbin "baserom.gba", 0x1327C4, 0x0000018
gUnk_081327DC:: @ 081327DC
.incbin "baserom.gba", 0x1327DC, 0x0000034
gUnk_08132810:: @ 08132810
.incbin "baserom.gba", 0x132810, 0x0000017
gUnk_08132827:: @ 08132827
.incbin "baserom.gba", 0x132827, 0x00002B9
gUnk_08132AE0:: @ 08132AE0
.incbin "baserom.gba", 0x132AE0, 0x000000A
gUnk_08132AEA:: @ 08132AEA
.incbin "baserom.gba", 0x132AEA, 0x000000A
gUnk_08132AF4:: @ 08132AF4
.incbin "baserom.gba", 0x132AF4, 0x000000A
gUnk_08132AFE:: @ 08132AFE
.incbin "baserom.gba", 0x132AFE, 0x000000E
gUnk_08132B0C:: @ 08132B0C
.incbin "baserom.gba", 0x132B0C, 0x000000E
gUnk_08132B1A:: @ 08132B1A
.incbin "baserom.gba", 0x132B1A, 0x000000E
gUnk_08132B28:: @ 08132B28
.incbin "baserom.gba", 0x132B28, 0x0000008
@ TODO convert .inc files into .s files and include them in linker.ld
.include "data/const/playerItem/playerItemGustJar.inc"
gUnk_08132B30:: @ 08132B30
.incbin "baserom.gba", 0x132B30, 0x0000203
@@ -194,7 +128,16 @@ gUnk_081339F8:: @ 081339F8
.incbin "baserom.gba", 0x1339F8, 0x0000020
gUnk_08133A18:: @ 08133A18
.incbin "baserom.gba", 0x133A18, 0x0000028
.4byte sub_080AE3E4
.4byte sub_080AE3E8
.4byte sub_080AE3EC
.4byte sub_080AE408
.4byte sub_080AE424
.4byte sub_080AE440
.4byte sub_080AE45C
.4byte sub_080AE478
.4byte sub_080AE494
.4byte sub_080AE4B0
gUnk_08133A40:: @ 08133A40
.incbin "baserom.gba", 0x133A40, 0x000001A
+2 -3
View File
@@ -311,9 +311,8 @@ SECTIONS {
src/code_08018C58.o(.text);
src/playerItem/playerItem11.o(.text);
asm/playerItem11.o(.text);
src/createBowEntity.o(.text);
asm/createBowEntity.o(.text);
asm/bowUse.o(.text);
src/playerItem/playerItemBow.o(.text);
asm/playerItem/playerItemBow.o(.text);
asm/sub_08019410.o(.text);
asm/code_08019444.o(.text);
asm/playerItemCellOverwriteSet.o(.text);