mirror of
https://github.com/zeldaret/tmc
synced 2026-07-08 14:36:41 -04:00
Merge pull request #321 from hatal175/eu-asm-funcs
This commit is contained in:
@@ -1,251 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldr r0, _080170E4 @ =gUnk_0200AF00
|
||||
adds r2, r0, #0
|
||||
adds r2, #0x2f
|
||||
movs r1, #0
|
||||
strb r1, [r2]
|
||||
subs r2, #2
|
||||
strb r1, [r2]
|
||||
adds r0, #0x2e
|
||||
strb r1, [r0]
|
||||
ldr r2, _080170E8 @ =gPlayerEntity
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x41
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08017072
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x3d
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
ble _08017072
|
||||
movs r0, #0x86
|
||||
bl SoundReq
|
||||
_08017072:
|
||||
ldr r4, _080170EC @ =gPlayerState
|
||||
ldr r0, [r4, #0x30]
|
||||
ldr r1, _080170F0 @ =0xFDFFFDFF
|
||||
ands r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0801708A
|
||||
bl ResetPlayer
|
||||
_0801708A:
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080170A4
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xa0
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080170A4
|
||||
bl DeleteClones
|
||||
_080170A4:
|
||||
bl sub_08079B24
|
||||
cmp r0, #0
|
||||
bne _080170B2
|
||||
adds r0, r5, #0
|
||||
bl sub_08079708
|
||||
_080170B2:
|
||||
ldr r0, _080170F4 @ =gUnk_03003DF0
|
||||
movs r4, #0
|
||||
strb r4, [r0]
|
||||
ldr r2, _080170EC @ =gPlayerState
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x27
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _080170C8
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
_080170C8:
|
||||
adds r1, r2, #0
|
||||
adds r1, #0xa8
|
||||
ldrb r0, [r1]
|
||||
adds r3, r2, #0
|
||||
adds r3, #0xa9
|
||||
strb r0, [r3]
|
||||
strb r4, [r1]
|
||||
subs r1, #0x1e
|
||||
ldrb r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _080170F8
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
b _08017222
|
||||
.align 2, 0
|
||||
_080170E4: .4byte gUnk_0200AF00
|
||||
_080170E8: .4byte gPlayerEntity
|
||||
_080170EC: .4byte gPlayerState
|
||||
_080170F0: .4byte 0xFDFFFDFF
|
||||
_080170F4: .4byte gUnk_03003DF0
|
||||
_080170F8:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x8b
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08017104
|
||||
b _08017222
|
||||
_08017104:
|
||||
ldr r0, _08017160 @ =gMessage
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08017112
|
||||
b _08017222
|
||||
_08017112:
|
||||
ldr r0, _08017164 @ =gUnk_0200AF00
|
||||
ldrb r0, [r0, #1]
|
||||
cmp r0, #0
|
||||
bne _0801714E
|
||||
ldr r0, _08017168 @ =gRoomTransition
|
||||
ldr r0, [r0]
|
||||
movs r1, #0x5a
|
||||
bl __modsi3
|
||||
cmp r0, #0
|
||||
bne _0801714E
|
||||
ldr r2, _0801716C @ =gSave
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xab
|
||||
ldrb r0, [r0]
|
||||
lsrs r1, r0, #2
|
||||
cmp r1, #0x18
|
||||
bls _08017138
|
||||
movs r1, #0x18
|
||||
_08017138:
|
||||
cmp r1, #7
|
||||
bhi _0801713E
|
||||
movs r1, #8
|
||||
_0801713E:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xaa
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r1
|
||||
bhi _0801714E
|
||||
ldr r0, _08017170 @ =0x0000011F
|
||||
bl EnqueueSFX
|
||||
_0801714E:
|
||||
ldr r0, _0801716C @ =gSave
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xb2
|
||||
ldrb r1, [r2]
|
||||
cmp r1, #0
|
||||
bne _08017174
|
||||
adds r0, #0xc4
|
||||
strh r1, [r0]
|
||||
b _08017192
|
||||
.align 2, 0
|
||||
_08017160: .4byte gMessage
|
||||
_08017164: .4byte gUnk_0200AF00
|
||||
_08017168: .4byte gRoomTransition
|
||||
_0801716C: .4byte gSave
|
||||
_08017170: .4byte 0x0000011F
|
||||
_08017174:
|
||||
adds r1, r0, #0
|
||||
adds r1, #0xc4
|
||||
ldrh r0, [r1]
|
||||
cmp r0, #0
|
||||
beq _08017188
|
||||
subs r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
cmp r0, #0
|
||||
bne _08017192
|
||||
_08017188:
|
||||
movs r0, #0
|
||||
strb r0, [r2]
|
||||
ldr r0, _080171A4 @ =0x000001B3
|
||||
bl SoundReq
|
||||
_08017192:
|
||||
ldr r0, _080171A8 @ =gSave
|
||||
adds r3, r0, #0
|
||||
adds r3, #0xb3
|
||||
ldrb r1, [r3]
|
||||
cmp r1, #0
|
||||
bne _080171AC
|
||||
adds r0, #0xc6
|
||||
strh r1, [r0]
|
||||
b _080171DC
|
||||
.align 2, 0
|
||||
_080171A4: .4byte 0x000001B3
|
||||
_080171A8: .4byte gSave
|
||||
_080171AC:
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xc6
|
||||
ldrh r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _080171C0
|
||||
subs r1, r0, #1
|
||||
strh r1, [r2]
|
||||
lsls r0, r1, #0x10
|
||||
cmp r0, #0
|
||||
bne _080171CE
|
||||
_080171C0:
|
||||
movs r0, #0
|
||||
strb r0, [r3]
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #1
|
||||
bl SoundReq
|
||||
b _080171DC
|
||||
_080171CE:
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _080171DC
|
||||
adds r0, r5, #0
|
||||
bl CreateSparkle
|
||||
_080171DC:
|
||||
ldr r0, _080171F0 @ =gSave
|
||||
adds r3, r0, #0
|
||||
adds r3, #0xba
|
||||
ldrb r1, [r3]
|
||||
cmp r1, #0
|
||||
bne _080171F4
|
||||
adds r0, #0xc8
|
||||
strh r1, [r0]
|
||||
b _08017222
|
||||
.align 2, 0
|
||||
_080171F0: .4byte gSave
|
||||
_080171F4:
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xc8
|
||||
ldrh r0, [r2]
|
||||
cmp r0, #0
|
||||
beq _08017208
|
||||
subs r1, r0, #1
|
||||
strh r1, [r2]
|
||||
lsls r0, r1, #0x10
|
||||
cmp r0, #0
|
||||
bne _0801720E
|
||||
_08017208:
|
||||
movs r0, #0
|
||||
strb r0, [r3]
|
||||
b _08017222
|
||||
_0801720E:
|
||||
movs r0, #0x3f
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
bne _08017222
|
||||
ldrb r1, [r3]
|
||||
adds r1, #0x55
|
||||
adds r0, r5, #0
|
||||
movs r2, #0
|
||||
bl CreateFx
|
||||
_08017222:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.syntax divided
|
||||
@@ -1,95 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080578C4
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x20
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
ldr r1, _0805791C @ =sub_080582F8
|
||||
adds r0, r4, #0
|
||||
movs r2, #0
|
||||
bl RegisterTransitionManager
|
||||
_080578C4:
|
||||
ldr r0, _08057920 @ =gRoomControls
|
||||
ldrh r5, [r0]
|
||||
cmp r5, #0
|
||||
bne _08057960
|
||||
adds r0, r4, #0
|
||||
bl sub_08057E40
|
||||
cmp r0, #0
|
||||
beq _080578E8
|
||||
ldr r0, _08057924 @ =gRoomVars
|
||||
ldrb r6, [r0, #0x10]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x20
|
||||
ldrb r0, [r1]
|
||||
cmp r0, r6
|
||||
beq _080578E8
|
||||
strb r6, [r1]
|
||||
strb r5, [r4, #0xe]
|
||||
_080578E8:
|
||||
lsls r1, r6, #6
|
||||
ldr r0, _08057928 @ =gUnk_081080A4
|
||||
adds r2, r1, r0
|
||||
ldrb r1, [r4, #0xe]
|
||||
cmp r1, #0
|
||||
bne _08057938
|
||||
ldr r1, _0805792C @ =gUnk_02034490
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r2]
|
||||
ldr r1, _08057930 @ =gGlobalGfxAndPalettes
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r2, #4]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #5
|
||||
bl LoadResourceAsync
|
||||
ldr r0, _08057934 @ =gUnk_081081E4
|
||||
adds r0, r6, r0
|
||||
ldrb r0, [r0]
|
||||
bl LoadPaletteGroup
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
b _08057960
|
||||
.align 2, 0
|
||||
_0805791C: .4byte sub_08057E30
|
||||
_08057920: .4byte gRoomControls
|
||||
_08057924: .4byte gRoomVars
|
||||
_08057928: .4byte gUnk_081080A4
|
||||
_0805792C: .4byte gUnk_02034490
|
||||
_08057930: .4byte gGlobalGfxAndPalettes
|
||||
_08057934: .4byte gUnk_081081E4
|
||||
_08057938:
|
||||
cmp r1, #0
|
||||
blt _08057960
|
||||
cmp r1, #7
|
||||
bgt _08057960
|
||||
lsls r1, r1, #3
|
||||
adds r1, r1, r2
|
||||
ldr r0, [r1]
|
||||
ldr r2, _08057964 @ =gGlobalGfxAndPalettes
|
||||
adds r0, r0, r2
|
||||
ldr r1, [r1, #4]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #5
|
||||
bl LoadResourceAsync
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r0, #1
|
||||
movs r1, #0
|
||||
strb r0, [r4, #0xe]
|
||||
ldr r0, _08057968 @ =gUnk_02034490
|
||||
strb r1, [r0]
|
||||
_08057960:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08057964: .4byte gGlobalGfxAndPalettes
|
||||
_08057968: .4byte gUnk_02034490
|
||||
.syntax divided
|
||||
@@ -1,98 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r5, [r4, #0x54]
|
||||
cmp r5, #0
|
||||
bne _080A984A
|
||||
bl DeleteThisEntity
|
||||
_080A984A:
|
||||
ldr r0, [r5, #4]
|
||||
cmp r0, #0
|
||||
bne _080A9856
|
||||
bl DeleteThisEntity
|
||||
b _080A989A
|
||||
_080A9856:
|
||||
ldrh r0, [r5, #0x12]
|
||||
ldrb r1, [r5, #0x1e]
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r5, #0x14]
|
||||
movs r0, #4
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A9884
|
||||
movs r2, #0
|
||||
ldrsb r2, [r3, r2]
|
||||
rsbs r2, r2, #0
|
||||
lsls r2, r2, #0x10
|
||||
ldrb r3, [r3, #1]
|
||||
lsls r3, r3, #0x18
|
||||
asrs r3, r3, #0x18
|
||||
lsls r3, r3, #0x10
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl PositionRelative
|
||||
b _080A989A
|
||||
_080A9884:
|
||||
movs r2, #0
|
||||
ldrsb r2, [r3, r2]
|
||||
lsls r2, r2, #0x10
|
||||
ldrb r3, [r3, #1]
|
||||
lsls r3, r3, #0x18
|
||||
asrs r3, r3, #0x18
|
||||
lsls r3, r3, #0x10
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl PositionRelative
|
||||
_080A989A:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x43
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _080A98F8
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0
|
||||
beq _080A98B0
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
b _080A98F8
|
||||
_080A98B0:
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080A98F8
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x82
|
||||
movs r0, #3
|
||||
strb r0, [r1]
|
||||
movs r2, #0x40
|
||||
movs r0, #0x40
|
||||
strb r0, [r4, #0xf]
|
||||
ldrb r0, [r5, #0x14]
|
||||
lsls r1, r0, #2
|
||||
strb r1, [r4, #0x15]
|
||||
lsls r0, r0, #0x1a
|
||||
lsrs r0, r0, #0x1a
|
||||
strb r0, [r4, #0x14]
|
||||
ldrb r1, [r4, #0x1b]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x1b]
|
||||
ldr r0, _080A98FC @ =gHitbox_0
|
||||
str r0, [r4, #0x48]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_080AA3E0
|
||||
_080A98F8:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080A98FC: .4byte gHitbox_0
|
||||
.syntax divided
|
||||
@@ -1,101 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
adds r4, r0, #0
|
||||
bl sub_0802AC40
|
||||
ldrb r0, [r4, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0802AAB4
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl sub_0802AD1C
|
||||
_0802AAB4:
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x81
|
||||
ldrb r0, [r6]
|
||||
cmp r0, #0
|
||||
beq _0802AB38
|
||||
ldr r5, [r4, #0x54]
|
||||
cmp r5, #0
|
||||
bne _0802AAC8
|
||||
strb r5, [r6]
|
||||
b _0802AB56
|
||||
_0802AAC8:
|
||||
ldr r0, [r5, #4]
|
||||
cmp r0, #0
|
||||
bne _0802AAD4
|
||||
strb r0, [r6]
|
||||
str r0, [r4, #0x54]
|
||||
b _0802AB56
|
||||
_0802AAD4:
|
||||
ldrb r0, [r5, #0xe]
|
||||
mov r8, r0
|
||||
cmp r0, #0
|
||||
bne _0802AB56
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
ldr r2, _0802AB24 @ =gRoomControls
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
movs r3, #0x3f
|
||||
ands r0, r3
|
||||
movs r7, #0x32
|
||||
ldrsh r1, [r4, r7]
|
||||
ldrh r2, [r2, #8]
|
||||
subs r1, r1, r2
|
||||
asrs r1, r1, #4
|
||||
ands r1, r3
|
||||
lsls r1, r1, #6
|
||||
orrs r0, r1
|
||||
movs r1, #1
|
||||
bl sub_080002E0
|
||||
cmp r0, #0
|
||||
bne _0802AB2C
|
||||
ldr r1, _0802AB28 @ =gPlayerEntity
|
||||
adds r0, r4, #0
|
||||
movs r2, #0x10
|
||||
movs r3, #0x10
|
||||
bl EntityInRectRadius
|
||||
cmp r0, #0
|
||||
beq _0802AB56
|
||||
ldrb r0, [r5, #0xf]
|
||||
cmp r0, #0x50
|
||||
bhi _0802AB56
|
||||
mov r0, r8
|
||||
strb r0, [r6]
|
||||
b _0802AB56
|
||||
.align 2, 0
|
||||
_0802AB24: .4byte gRoomControls
|
||||
_0802AB28: .4byte gPlayerEntity
|
||||
_0802AB2C:
|
||||
ldrb r0, [r5, #0xf]
|
||||
cmp r0, #0x13
|
||||
bhi _0802AB56
|
||||
mov r1, r8
|
||||
strb r1, [r6]
|
||||
b _0802AB56
|
||||
_0802AB38:
|
||||
movs r1, #4
|
||||
strb r1, [r4, #0xc]
|
||||
movs r0, #0xc0
|
||||
strb r0, [r4, #0xe]
|
||||
strb r1, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x80
|
||||
ldrb r0, [r2]
|
||||
movs r1, #1
|
||||
eors r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
_0802AB56:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -1,50 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0802AC40
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
movs r2, #0xff
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r1, r0, #0x18
|
||||
cmp r1, #0
|
||||
bne _0802ABA6
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7a
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #4
|
||||
bhi _0802AB90
|
||||
movs r0, #5
|
||||
strb r0, [r4, #0xc]
|
||||
strh r1, [r4, #0x24]
|
||||
ldrb r1, [r4, #0xa]
|
||||
adds r1, #1
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
b _0802ABBA
|
||||
_0802AB90:
|
||||
movs r0, #0xc0
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x80
|
||||
ldrb r0, [r2]
|
||||
movs r1, #1
|
||||
eors r0, r1
|
||||
strb r0, [r2]
|
||||
b _0802ABBA
|
||||
_0802ABA6:
|
||||
ldrb r0, [r4, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xf]
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _0802ABBA
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl sub_0802ACDC
|
||||
_0802ABBA:
|
||||
pop {r4, pc}
|
||||
.syntax divided
|
||||
@@ -1,43 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
adds r0, r4, #0
|
||||
bl LinearMoveUpdate
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x7a
|
||||
ldrb r0, [r5]
|
||||
cmp r0, #0
|
||||
beq _0802AC26
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
bne _0802AC44
|
||||
strb r0, [r5]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
b _0802AC42
|
||||
_0802AC26:
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
beq _0802AC44
|
||||
movs r0, #1
|
||||
strb r0, [r5]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
subs r0, #0x3a
|
||||
ands r0, r1
|
||||
movs r1, #0x18
|
||||
orrs r0, r1
|
||||
_0802AC42:
|
||||
strb r0, [r2]
|
||||
_0802AC44:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,38 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r1, [r5, #0xa]
|
||||
adds r1, #2
|
||||
movs r0, #0x1b
|
||||
bl CreateEnemy
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _0802AD92
|
||||
adds r0, r5, #0
|
||||
bl sub_0802B234
|
||||
rsbs r1, r0, #0
|
||||
orrs r1, r0
|
||||
lsrs r1, r1, #0x1f
|
||||
strb r1, [r4, #0xb]
|
||||
str r5, [r4, #0x50]
|
||||
str r4, [r5, #0x54]
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x81
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0802AD92
|
||||
subs r1, #7
|
||||
ldrb r0, [r1]
|
||||
adds r0, #1
|
||||
strb r0, [r1]
|
||||
_0802AD92:
|
||||
pop {r4, r5, pc}
|
||||
.syntax divided
|
||||
@@ -1,78 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r2, [r4, #0x50]
|
||||
cmp r2, #0
|
||||
bne _0802ADFA
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #7
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x80
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_0802ADFA:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0802AE1E
|
||||
adds r0, r2, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
b _0802AE68
|
||||
_0802AE1E:
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x80
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
beq _0802AE54
|
||||
adds r2, r4, #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]
|
||||
b _0802AE62
|
||||
_0802AE54:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
_0802AE62:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_0802AE68:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,71 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _0802B17A
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
_0802B17A:
|
||||
ldr r2, [r4, #0x50]
|
||||
cmp r2, #0
|
||||
bne _0802B190
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
_0802B190:
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0802B1AA
|
||||
adds r0, r2, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
ldrh r0, [r4, #0x36]
|
||||
adds r0, #8
|
||||
strh r0, [r4, #0x36]
|
||||
b _0802B1EC
|
||||
_0802B1AA:
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #6
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
bl sub_0802B234
|
||||
cmp r0, #0
|
||||
beq _0802B1D8
|
||||
adds r2, r4, #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]
|
||||
b _0802B1E6
|
||||
_0802B1D8:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
_0802B1E6:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_0802B1EC:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,56 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
mov r6, r8
|
||||
push {r6}
|
||||
mov r8, r0
|
||||
adds r4, r1, #0
|
||||
bl SetInitializationPriority
|
||||
ldr r5, _080575E8 @ =gUnk_03004030
|
||||
ldrb r0, [r5, #9]
|
||||
strb r0, [r5, #0xa]
|
||||
ldr r3, _080575EC @ =gRoomControls
|
||||
ldrb r0, [r3, #4]
|
||||
strb r0, [r5, #9]
|
||||
ldr r1, _080575F0 @ =gRoomTransition
|
||||
ldrb r0, [r4, #4]
|
||||
strb r0, [r1, #0xc]
|
||||
ldrb r0, [r4, #5]
|
||||
strb r0, [r1, #0xd]
|
||||
ldrb r0, [r4, #4]
|
||||
strb r0, [r3, #4]
|
||||
ldrb r0, [r4, #5]
|
||||
strb r0, [r3, #5]
|
||||
str r4, [r5]
|
||||
ldr r6, _080575F4 @ =gPlayerEntity
|
||||
ldrh r1, [r6, #0x2e]
|
||||
ldrh r0, [r3, #6]
|
||||
subs r1, r1, r0
|
||||
ldrh r2, [r4]
|
||||
movs r0, #0x3f
|
||||
ands r0, r2
|
||||
lsls r0, r0, #4
|
||||
subs r1, r1, r0
|
||||
strh r1, [r5, #4]
|
||||
ldrh r1, [r6, #0x32]
|
||||
ldrh r0, [r3, #8]
|
||||
subs r1, r1, r0
|
||||
ldrh r2, [r4]
|
||||
movs r0, #0xfc
|
||||
lsls r0, r0, #4
|
||||
ands r0, r2
|
||||
lsrs r0, r0, #2
|
||||
subs r1, r1, r0
|
||||
strh r1, [r5, #6]
|
||||
ldrb r0, [r4, #3]
|
||||
bl sub_08080930
|
||||
mov r0, r8
|
||||
bl DeleteManager
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080575E8: .4byte gUnk_03004030
|
||||
_080575EC: .4byte gRoomControls
|
||||
_080575F0: .4byte gRoomTransition
|
||||
_080575F4: .4byte gPlayerEntity
|
||||
.syntax divided
|
||||
@@ -1,37 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _080579F0 @ =gUnk_081081E4
|
||||
adds r0, r4, r0
|
||||
ldrb r0, [r0]
|
||||
bl LoadPaletteGroup
|
||||
lsls r1, r4, #6
|
||||
ldr r0, _080579F4 @ =gUnk_081080A4
|
||||
adds r1, r1, r0
|
||||
movs r3, #0
|
||||
ldr r2, _080579F8 @ =0x040000D4
|
||||
ldr r6, _080579FC @ =gGlobalGfxAndPalettes
|
||||
ldr r5, _08057A00 @ =0x84000400
|
||||
_080579D4:
|
||||
ldr r0, [r1]
|
||||
adds r0, r0, r6
|
||||
str r0, [r2]
|
||||
ldr r0, [r1, #4]
|
||||
str r0, [r2, #4]
|
||||
str r5, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
adds r3, #1
|
||||
adds r1, #8
|
||||
cmp r3, #7
|
||||
bls _080579D4
|
||||
ldr r0, _08057A04 @ =gRoomVars
|
||||
strb r4, [r0, #0x10]
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_080579F0: .4byte gUnk_081081E4
|
||||
_080579F4: .4byte gUnk_081080A4
|
||||
_080579F8: .4byte 0x040000D4
|
||||
_080579FC: .4byte gGlobalGfxAndPalettes
|
||||
_08057A00: .4byte 0x84000400
|
||||
_08057A04: .4byte gRoomVars
|
||||
.syntax divided
|
||||
@@ -1,369 +0,0 @@
|
||||
.ifdef EU
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r7, r1, #0
|
||||
ldr r4, _08074DA8 @ =gPlayerState
|
||||
ldr r1, [r4, #0x30]
|
||||
movs r3, #0x80
|
||||
adds r0, r1, #0
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _08074DAC
|
||||
ldrb r0, [r5, #9]
|
||||
movs r1, #0x80
|
||||
orrs r1, r0
|
||||
strb r1, [r5, #9]
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0x75
|
||||
bl SoundReq
|
||||
b _08074EE2
|
||||
.align 2, 0
|
||||
_08074DA8: .4byte gPlayerState
|
||||
_08074DAC:
|
||||
ldrb r2, [r4, #2]
|
||||
cmp r2, #0
|
||||
beq _08074E22
|
||||
movs r6, #7
|
||||
adds r0, r6, #0
|
||||
ands r0, r2
|
||||
cmp r0, #3
|
||||
beq _08074E18
|
||||
movs r0, #0x78
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _08074E18
|
||||
ldr r3, _08074E10 @ =gPlayerEntity
|
||||
ldr r1, [r3, #0x20]
|
||||
ldr r0, _08074E14 @ =0x00017FFF
|
||||
cmp r1, r0
|
||||
bhi _08074E18
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08074E18
|
||||
ldr r0, [r3, #0x34]
|
||||
cmp r0, #0
|
||||
beq _08074E18
|
||||
movs r0, #0x20
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xab
|
||||
strb r6, [r0]
|
||||
movs r0, #8
|
||||
asrs r0, r7
|
||||
lsls r1, r0, #4
|
||||
orrs r0, r1
|
||||
ldrb r1, [r4, #4]
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #4]
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
movs r0, #6
|
||||
strb r0, [r5, #4]
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08075898
|
||||
b _08074EE2
|
||||
.align 2, 0
|
||||
_08074E10: .4byte gPlayerEntity
|
||||
_08074E14: .4byte 0x00017FFF
|
||||
_08074E18:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_080759B8
|
||||
b _08074EE2
|
||||
_08074E22:
|
||||
movs r6, #0x80
|
||||
lsls r6, r6, #0xb
|
||||
ands r6, r1
|
||||
cmp r6, #0
|
||||
beq _08074EAE
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r6, r0, #0x10
|
||||
cmp r6, #0
|
||||
bne _08074E4C
|
||||
ldr r0, [r4, #0x2c]
|
||||
cmp r0, #0
|
||||
beq _08074EE2
|
||||
bl DeleteEntity
|
||||
str r6, [r4, #0x2c]
|
||||
b _08074EE2
|
||||
_08074E4C:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
movs r3, #8
|
||||
adds r1, r3, #0
|
||||
asrs r1, r7
|
||||
lsls r0, r1, #4
|
||||
orrs r0, r1
|
||||
ldrb r2, [r4, #4]
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #4]
|
||||
ldrb r2, [r4, #0xa]
|
||||
adds r0, r1, #0
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0xa]
|
||||
ldrb r0, [r4, #0xb]
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0xb]
|
||||
strb r3, [r5, #4]
|
||||
movs r0, #0x14
|
||||
strb r0, [r5, #7]
|
||||
movs r0, #6
|
||||
strb r0, [r5, #0xf]
|
||||
ldrb r1, [r5, #9]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #9]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xab
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x14
|
||||
orrs r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
movs r1, #0x98
|
||||
lsls r1, r1, #1
|
||||
adds r0, r5, #0
|
||||
bl sub_08077DF4
|
||||
movs r0, #0x77
|
||||
bl SoundReq
|
||||
b _08074EE2
|
||||
_08074EAE:
|
||||
ldrb r1, [r4, #0x1b]
|
||||
adds r0, r3, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08074EC0
|
||||
strb r6, [r4, #0x1b]
|
||||
ldr r0, _08074EE4 @ =gPlayerEntity
|
||||
bl sub_0806F948
|
||||
_08074EC0:
|
||||
ldr r1, [r4, #0x2c]
|
||||
cmp r1, #0
|
||||
beq _08074ED4
|
||||
ldrb r0, [r1, #9]
|
||||
cmp r0, #1
|
||||
beq _08074ED4
|
||||
adds r0, r1, #0
|
||||
bl DeleteEntity
|
||||
str r6, [r4, #0x2c]
|
||||
_08074ED4:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
_08074EE2:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08074EE4: .4byte gPlayerEntity
|
||||
.syntax divided
|
||||
.else
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r7, r1, #0
|
||||
ldr r4, _0807536C @ =gPlayerState
|
||||
ldr r1, [r4, #0x30]
|
||||
movs r3, #0x80
|
||||
adds r0, r1, #0
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
beq _08075370
|
||||
ldrb r0, [r5, #9]
|
||||
movs r1, #0x80
|
||||
orrs r1, r0
|
||||
strb r1, [r5, #9]
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #4
|
||||
strh r0, [r4, #8]
|
||||
movs r0, #0x75
|
||||
bl SoundReq
|
||||
b _080754B4
|
||||
.align 2, 0
|
||||
_0807536C: .4byte gPlayerState
|
||||
_08075370:
|
||||
ldrb r2, [r4, #2]
|
||||
cmp r2, #0
|
||||
beq _080753DC
|
||||
movs r6, #7
|
||||
adds r0, r6, #0
|
||||
ands r0, r2
|
||||
cmp r0, #3
|
||||
beq _080753E4
|
||||
movs r0, #0x78
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
bne _080753E4
|
||||
ldr r3, _080753D4 @ =gPlayerEntity
|
||||
ldr r1, [r3, #0x20]
|
||||
ldr r0, _080753D8 @ =0x00017FFF
|
||||
cmp r1, r0
|
||||
bhi _080753E4
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080753E4
|
||||
ldr r0, [r3, #0x34]
|
||||
cmp r0, #0
|
||||
beq _080753E4
|
||||
movs r0, #0x20
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xab
|
||||
strb r6, [r0]
|
||||
movs r0, #8
|
||||
asrs r0, r7
|
||||
lsls r1, r0, #4
|
||||
orrs r0, r1
|
||||
ldrb r1, [r4, #4]
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #4]
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
movs r0, #6
|
||||
strb r0, [r5, #4]
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08075898
|
||||
b _080754B4
|
||||
.align 2, 0
|
||||
_080753D4: .4byte gPlayerEntity
|
||||
_080753D8: .4byte 0x00017FFF
|
||||
_080753DC:
|
||||
ldr r2, _080753F0 @ =gPlayerEntity
|
||||
ldr r0, [r2, #0x34]
|
||||
cmp r0, #0
|
||||
beq _080753F4
|
||||
_080753E4:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_080759B8
|
||||
b _080754B4
|
||||
.align 2, 0
|
||||
_080753F0: .4byte gPlayerEntity
|
||||
_080753F4:
|
||||
movs r6, #0x80
|
||||
lsls r6, r6, #0xb
|
||||
ands r6, r1
|
||||
cmp r6, #0
|
||||
beq _08075480
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xac
|
||||
ldrh r1, [r0]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r6, r0, #0x10
|
||||
cmp r6, #0
|
||||
bne _0807541E
|
||||
ldr r0, [r4, #0x2c]
|
||||
cmp r0, #0
|
||||
beq _080754B4
|
||||
bl DeleteEntity
|
||||
str r6, [r4, #0x2c]
|
||||
b _080754B4
|
||||
_0807541E:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
movs r3, #8
|
||||
adds r1, r3, #0
|
||||
asrs r1, r7
|
||||
lsls r0, r1, #4
|
||||
orrs r0, r1
|
||||
ldrb r2, [r4, #4]
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #4]
|
||||
ldrb r2, [r4, #0xa]
|
||||
adds r0, r1, #0
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0xa]
|
||||
ldrb r0, [r4, #0xb]
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0xb]
|
||||
strb r3, [r5, #4]
|
||||
movs r0, #0x14
|
||||
strb r0, [r5, #7]
|
||||
movs r0, #6
|
||||
strb r0, [r5, #0xf]
|
||||
ldrb r1, [r5, #9]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #9]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0xab
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4, #0x30]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #0x14
|
||||
orrs r0, r1
|
||||
str r0, [r4, #0x30]
|
||||
movs r1, #0x98
|
||||
lsls r1, r1, #1
|
||||
adds r0, r5, #0
|
||||
bl sub_08077DF4
|
||||
movs r0, #0x77
|
||||
bl SoundReq
|
||||
b _080754B4
|
||||
_08075480:
|
||||
ldrb r1, [r4, #0x1b]
|
||||
adds r0, r3, #0
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08075492
|
||||
strb r6, [r4, #0x1b]
|
||||
adds r0, r2, #0
|
||||
bl sub_0806F948
|
||||
_08075492:
|
||||
ldr r1, [r4, #0x2c]
|
||||
cmp r1, #0
|
||||
beq _080754A6
|
||||
ldrb r0, [r1, #9]
|
||||
cmp r0, #1
|
||||
beq _080754A6
|
||||
adds r0, r1, #0
|
||||
bl DeleteEntity
|
||||
str r6, [r4, #0x2c]
|
||||
_080754A6:
|
||||
adds r0, r5, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08077D38
|
||||
adds r0, r5, #0
|
||||
bl sub_08077B98
|
||||
_080754B4:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
.endif
|
||||
@@ -87,6 +87,7 @@ SECTIONS {
|
||||
. = 0x000227F0; gUnk_020227F0 = .;
|
||||
. = 0x000227F8; gUnk_020227F8 = .;
|
||||
. = 0x00022800; gUnk_02022800 = .;
|
||||
. = 0x0002281D; gTextRenderUpdateDraw = .;
|
||||
. = 0x00022830; gUnk_02022830 = .;
|
||||
. = 0x00024030; gMessageChoices = .;
|
||||
. = 0x00024048; gUnk_02024048 = .;
|
||||
|
||||
+91
-19
@@ -188,9 +188,6 @@ void sub_0802AA40(Entity* this) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0802AAC0.inc", void sub_0802AAC0(Entity* this))
|
||||
#else
|
||||
void sub_0802AAC0(Entity* this) {
|
||||
sub_0802AC40(this);
|
||||
if (--this->field_0xf == 0) {
|
||||
@@ -204,24 +201,52 @@ void sub_0802AAC0(Entity* this) {
|
||||
} else if (ent->next == NULL) {
|
||||
this->field_0x80.HALF.HI = 0;
|
||||
this->child = NULL;
|
||||
#ifdef EU
|
||||
} else if (ent->actionDelay == 0) {
|
||||
if (sub_080002E0(COORD_TO_TILE(this), 1) == 0) {
|
||||
if (EntityInRectRadius(this, &gPlayerEntity, 0x10, 0x10) && ent->field_0xf <= 0x50) {
|
||||
this->field_0x80.HALF.HI = 0;
|
||||
}
|
||||
} else if (ent->field_0xf <= 0x13) {
|
||||
this->field_0x80.HALF.HI = 0;
|
||||
}
|
||||
}
|
||||
#else
|
||||
} else if (ent->actionDelay == 0 && ent->field_0xf < 0x51) {
|
||||
this->field_0x80.HALF.HI = 0;
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
this->action = 4;
|
||||
this->actionDelay = 0xc0;
|
||||
this->field_0xf = 4;
|
||||
this->field_0x80.HALF.LO ^= 1;
|
||||
#ifndef EU
|
||||
this->field_0x78.HALF.LO = 0;
|
||||
this->field_0x78.HALF.HI = 4;
|
||||
this->direction = 0xff;
|
||||
#endif
|
||||
InitializeAnimation(this, 0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef EU
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0802AB40.inc", void sub_0802AB40(Entity* this));
|
||||
void sub_0802AB40(Entity* this) {
|
||||
sub_0802AC40(this);
|
||||
if (--this->actionDelay == 0) {
|
||||
if (this->field_0x7a.HALF.LO <= 4) {
|
||||
this->action = 5;
|
||||
this->speed = 0;
|
||||
InitializeAnimation(this, this->type + 1);
|
||||
} else {
|
||||
this->actionDelay = 0xc0;
|
||||
this->field_0xf = 0x4;
|
||||
this->field_0x80.HALF.LO ^= 1;
|
||||
}
|
||||
} else if ((--this->field_0xf & 0xff) == 0) {
|
||||
sub_0802ACDC(this, 4);
|
||||
}
|
||||
}
|
||||
#else
|
||||
void sub_0802AB40(Entity* this) {
|
||||
sub_0802AC40(this);
|
||||
@@ -275,9 +300,6 @@ void sub_0802AC08(Entity* this) {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0802AC40.inc", void sub_0802AC40(Entity* this))
|
||||
#else
|
||||
void sub_0802AC40(Entity* this) {
|
||||
GetNextFrame(this);
|
||||
LinearMoveUpdate(this);
|
||||
@@ -285,6 +307,7 @@ void sub_0802AC40(Entity* this) {
|
||||
if (sub_0802B234(this) == 0) {
|
||||
this->field_0x7a.HALF.LO = 0;
|
||||
this->spritePriority.b1 = 0;
|
||||
#ifndef EU
|
||||
} else {
|
||||
if (this->z.HALF.HI == 0) {
|
||||
if (this->spritePriority.b1 != 1) {
|
||||
@@ -295,19 +318,23 @@ void sub_0802AC40(Entity* this) {
|
||||
this->spritePriority.b1 = 3;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
if (sub_0802B234(this)) {
|
||||
this->field_0x7a.HALF.LO = 1;
|
||||
#ifndef EU
|
||||
if (this->z.HALF.HI == 0) {
|
||||
this->spritePriority.b1 = 1;
|
||||
} else {
|
||||
this->spritePriority.b1 = 3;
|
||||
}
|
||||
#else
|
||||
this->spritePriority.b1 = 3;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void sub_0802ACDC(Entity* this, u32 param_2) {
|
||||
u32 x;
|
||||
@@ -356,10 +383,6 @@ void sub_0802AD54(Entity* this) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
// TODO regalloc in EU version
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0802ADDC.inc", void sub_0802ADDC(Entity* this))
|
||||
#else
|
||||
void sub_0802ADDC(Entity* this) {
|
||||
Entity* ent = CreateEnemy(BOMB_PEAHAT, this->type + 2);
|
||||
if (ent != NULL) {
|
||||
@@ -367,16 +390,15 @@ void sub_0802ADDC(Entity* this) {
|
||||
ent->parent = this;
|
||||
this->child = ent;
|
||||
CopyPosition(this, ent);
|
||||
/*#ifdef EU
|
||||
this->z.HALF.HI += 8;
|
||||
#endif*/
|
||||
#ifdef EU
|
||||
ent->z.HALF.HI += 8;
|
||||
#endif
|
||||
this->field_0x80.HALF.HI = 1;
|
||||
if (this->type == 0) {
|
||||
this->field_0x7a.HALF.LO++;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void sub_0802AE24(Entity* this) {
|
||||
this->action = 1;
|
||||
@@ -392,7 +414,30 @@ void sub_0802AE24(Entity* this) {
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0802AE68.inc", void sub_0802AE68(Entity* this))
|
||||
void sub_0802AE68(Entity* this) {
|
||||
Entity* ent = this->parent;
|
||||
if (ent == 0) {
|
||||
this->action = 3;
|
||||
this->spriteSettings.draw = 1;
|
||||
this->field_0x80.HALF.LO = 1;
|
||||
}
|
||||
|
||||
if (ent->field_0x80.HALF.HI) {
|
||||
CopyPosition(ent, this);
|
||||
this->z.HALF.HI += 8;
|
||||
this->spriteSettings.draw = 0;
|
||||
} else {
|
||||
this->action = 3;
|
||||
this->field_0x80.HALF.LO = 1;
|
||||
this->spriteSettings.draw = 1;
|
||||
if (sub_0802B234(this)) {
|
||||
this->spritePriority.b1 = 3;
|
||||
} else {
|
||||
this->spritePriority.b1 = 0;
|
||||
}
|
||||
GetNextFrame(this);
|
||||
}
|
||||
}
|
||||
#else
|
||||
void sub_0802AE68(Entity* this) {
|
||||
Entity* ent = sub_0802B250(this);
|
||||
@@ -569,7 +614,34 @@ void sub_0802B1A0(Entity* this) {
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
ASM_FUNC("asm/non_matching/eu/sub_0802B1BC.inc", void sub_0802B1BC(Entity* this))
|
||||
void sub_0802B1BC(Entity* this) {
|
||||
Entity* ent;
|
||||
|
||||
if (this->actionDelay) {
|
||||
this->actionDelay--;
|
||||
}
|
||||
|
||||
ent = this->parent;
|
||||
if (ent == 0) {
|
||||
this->action = 2;
|
||||
this->spriteSettings.draw = 1;
|
||||
}
|
||||
|
||||
if (ent->field_0x80.HALF.HI) {
|
||||
CopyPosition(ent, this);
|
||||
this->z.HALF.HI += 8;
|
||||
} else {
|
||||
this->action = 2;
|
||||
this->spriteSettings.draw = 1;
|
||||
if (sub_0802B234(this)) {
|
||||
this->spritePriority.b1 = 3;
|
||||
} else {
|
||||
this->spritePriority.b1 = 0;
|
||||
}
|
||||
|
||||
GetNextFrame(this);
|
||||
}
|
||||
}
|
||||
#else
|
||||
void sub_0802B1BC(Entity* this) {
|
||||
Entity* ent;
|
||||
|
||||
+14
-4
@@ -245,9 +245,6 @@ void PlayerUpdate(Entity* this) {
|
||||
}
|
||||
|
||||
// Responsible for some life things like low health beep and initiating the death sequence
|
||||
#ifdef EU
|
||||
ASM_FUNC("asm/non_matching/eu/HandlePlayerLife.inc", void HandlePlayerLife(Entity* this));
|
||||
#else
|
||||
void HandlePlayerLife(Entity* this) {
|
||||
u32 temp;
|
||||
|
||||
@@ -280,6 +277,19 @@ void HandlePlayerLife(Entity* this) {
|
||||
if ((gPlayerState.controlMode != CONTROL_ENABLED) || (gMessage.doTextBox & 0x7f))
|
||||
return;
|
||||
|
||||
#ifdef EU
|
||||
if ((gUnk_0200AF00.filler0[1] == 0) && gRoomTransition.frameCount % 90 == 0) {
|
||||
temp = gSave.stats.maxHealth / 4;
|
||||
if (temp > 24)
|
||||
temp = 24;
|
||||
if (temp < 8)
|
||||
temp = 8;
|
||||
|
||||
if (gSave.stats.health <= temp) {
|
||||
EnqueueSFX(SFX_LOW_HEALTH);
|
||||
}
|
||||
}
|
||||
#else
|
||||
gRoomVars.unk2 = gMessage.doTextBox & 0x7f;
|
||||
temp = gSave.stats.maxHealth / 4;
|
||||
if (temp > 24)
|
||||
@@ -293,6 +303,7 @@ void HandlePlayerLife(Entity* this) {
|
||||
EnqueueSFX(SFX_LOW_HEALTH);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
if (gSave.stats.charm == 0) {
|
||||
gSave.stats.charmTimer = 0;
|
||||
@@ -318,7 +329,6 @@ void HandlePlayerLife(Entity* this) {
|
||||
CreateFx(this, (FX_RED_AURA - 1) + gSave.stats.effect, 0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void sub_080171F0(void) {
|
||||
if (gPlayerState.mobility != 0)
|
||||
|
||||
+76
-1
@@ -4,8 +4,11 @@
|
||||
#include "object.h"
|
||||
|
||||
extern void (*const gUnk_0811BD44[])(ItemBehavior*, u32);
|
||||
extern void sub_08077B98(ItemBehavior*);
|
||||
|
||||
void sub_080759B8(ItemBehavior*, u32);
|
||||
void sub_080754B8(ItemBehavior*, u32);
|
||||
void sub_08075898(ItemBehavior*, u32);
|
||||
|
||||
extern u32 sub_08077EC8(ItemBehavior*);
|
||||
|
||||
@@ -16,7 +19,79 @@ void ItemSword(ItemBehavior* this, u32 arg1) {
|
||||
gUnk_0811BD44[this->stateID](this, arg1);
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/itemSword/sub_08075338.inc", void sub_08075338(ItemBehavior* this, u32 arg1))
|
||||
void sub_08075338(ItemBehavior* this, u32 arg1) {
|
||||
u32 temp, temp2;
|
||||
if (gPlayerState.flags & 0x80) {
|
||||
this->field_0x5[4] |= 0x80;
|
||||
sub_08077D38(this, arg1);
|
||||
gPlayerState.animation = 0xc00;
|
||||
SoundReq(SFX_PLY_VO1);
|
||||
return;
|
||||
}
|
||||
|
||||
if (gPlayerState.jump_status) {
|
||||
if ((gPlayerState.jump_status & 7) != 3) {
|
||||
if ((gPlayerState.jump_status & 0x78) == 0 && (u32)gPlayerEntity.zVelocity <= 0x17fff &&
|
||||
(gPlayerState.field_0xac & 0x40) && gPlayerEntity.z.WORD) {
|
||||
gPlayerState.jump_status |= 0x20;
|
||||
gPlayerState.field_0xab = 7;
|
||||
gPlayerState.field_0x3[1] |= (8 >> arg1) | ((8 >> arg1) << 4);
|
||||
sub_08077B98(this);
|
||||
this->stateID = 6;
|
||||
sub_08075898(this, arg1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
#ifndef EU
|
||||
sub_080759B8(this, arg1);
|
||||
return;
|
||||
} else if (gPlayerEntity.z.WORD) {
|
||||
#endif
|
||||
sub_080759B8(this, arg1);
|
||||
return;
|
||||
}
|
||||
|
||||
if (gPlayerState.flags & 0x40000) {
|
||||
if ((gPlayerState.field_0xac & 2) == 0) {
|
||||
if (gPlayerState.item == NULL)
|
||||
return;
|
||||
DeleteEntity(gPlayerState.item);
|
||||
gPlayerState.item = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
sub_08077D38(this, arg1);
|
||||
sub_08077B98(this);
|
||||
temp = (8 >> arg1);
|
||||
gPlayerState.field_0x3[1] |= temp | (temp << 4);
|
||||
gPlayerState.field_0xa |= temp;
|
||||
gPlayerState.keepFacing |= temp;
|
||||
this->stateID = 8;
|
||||
this->field_0x5[2] = 0x14;
|
||||
this->field_0xf = 6;
|
||||
this->field_0x5[4] |= 0x80;
|
||||
gPlayerState.field_0xab = 2;
|
||||
gPlayerState.flags |= 0x8000000;
|
||||
sub_08077DF4(this, 0x130);
|
||||
SoundReq(SFX_PLY_VO3);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((gPlayerState.sword_state & 0x80) == 0) {
|
||||
gPlayerState.sword_state = 0;
|
||||
sub_0806F948(&gPlayerEntity);
|
||||
}
|
||||
|
||||
if (gPlayerState.item) {
|
||||
if (gPlayerState.item->id != 1) {
|
||||
DeleteEntity(gPlayerState.item);
|
||||
gPlayerState.item = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
sub_08077D38(this, arg1);
|
||||
sub_08077B98(this);
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/itemSword/sub_080754B8.inc", void sub_080754B8(ItemBehavior* this, u32 arg1))
|
||||
|
||||
|
||||
@@ -91,9 +91,6 @@ u32 sub_0805795C(Manager* this, DiggingCaveEntrance* entr) {
|
||||
|
||||
extern void sub_08080930(u32);
|
||||
|
||||
#ifdef EU
|
||||
ASM_FUNC("asm/non_matching/eu/sub_08057A18.inc", void sub_08057A18(Manager* this, DiggingCaveEntrance* entr))
|
||||
#else
|
||||
void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) {
|
||||
u16 tmp;
|
||||
SetInitializationPriority();
|
||||
@@ -106,6 +103,8 @@ void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) {
|
||||
gUnk_03004030.unk_00 = entr;
|
||||
gUnk_03004030.unk_04 = gPlayerEntity.x.HALF.HI - gRoomControls.origin_x - ((entr->unk_00 & 0x3F) * 16);
|
||||
gUnk_03004030.unk_06 = gPlayerEntity.y.HALF.HI - gRoomControls.origin_y - ((entr->unk_00 & 0xFC0) >> 2);
|
||||
|
||||
#ifndef EU
|
||||
tmp = gUnk_03004030.unk_08;
|
||||
if (!tmp) {
|
||||
if ((entr->target_room | 0x80) != gUnk_03004030.unk_0b) {
|
||||
@@ -113,10 +112,11 @@ void sub_08057A18(Manager* this, DiggingCaveEntrance* entr) {
|
||||
}
|
||||
gUnk_03004030.unk_0b = entr->target_room | 0x80;
|
||||
}
|
||||
#endif
|
||||
|
||||
sub_08080930(entr->unk_03);
|
||||
DeleteManager(this);
|
||||
}
|
||||
#endif
|
||||
|
||||
DiggingCaveEntrance* sub_08057AA8(DiggingCaveEntrance* entr, int room) {
|
||||
for (; entr->unk_00 != 0xFFFF; entr++) {
|
||||
|
||||
+52
-5
@@ -55,7 +55,54 @@ const u32 gUnk_081080A4[0x50] = {
|
||||
const u8 gUnk_081081E4[] = { 0x16, 0x17, 0x17, 0x18, 0x18 };
|
||||
|
||||
#ifdef EU
|
||||
ASM_FUNC("asm/non_matching/eu/Manager7_Main.inc", void Manager7_Main(Manager7* this))
|
||||
void Manager7_Main(Manager7* this) {
|
||||
u32 tmp;
|
||||
const u32* tmp2;
|
||||
s32 tmp3;
|
||||
if (!this->manager.action) {
|
||||
this->manager.action = 1;
|
||||
this->manager.unk_0e = 8;
|
||||
this->unk_20 = 0xFF;
|
||||
|
||||
RegisterTransitionManager(this, sub_08057E30, 0);
|
||||
}
|
||||
if (gRoomControls.reload_flags)
|
||||
return;
|
||||
|
||||
if (sub_08057E40(this)) {
|
||||
tmp = (u32)gRoomVars.unk_10[0];
|
||||
if (this->unk_20 != tmp) {
|
||||
this->unk_20 = tmp;
|
||||
this->manager.unk_0e = 0;
|
||||
}
|
||||
}
|
||||
|
||||
tmp2 = &gUnk_081080A4[tmp << 4];
|
||||
tmp3 = this->manager.unk_0e;
|
||||
if (tmp3 == 0) {
|
||||
gUnk_02034490[0] = 1;
|
||||
LoadResourceAsync(&gGlobalGfxAndPalettes[tmp2[0]], tmp2[1], 0x1000);
|
||||
LoadPaletteGroup(gUnk_081081E4[tmp]);
|
||||
this->manager.unk_0e++;
|
||||
} else {
|
||||
switch (tmp3) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
LoadResourceAsync(&gGlobalGfxAndPalettes[tmp2[(this->manager.unk_0e << 1)]],
|
||||
tmp2[(this->manager.unk_0e << 1) + 1], 0x1000);
|
||||
this->manager.unk_0e++;
|
||||
gUnk_02034490[0] = 0;
|
||||
case 8:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
void Manager7_Main(Manager7* this) {
|
||||
u32 tmp;
|
||||
@@ -129,14 +176,15 @@ void sub_08057E64(void) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
ASM_FUNC("asm/non_matching/eu/sub_08057E7C.inc", void sub_08057E7C(u32 unk1))
|
||||
#else
|
||||
void sub_08057E7C(u32 unk1) {
|
||||
u32 tmp;
|
||||
const u32* tmp2;
|
||||
|
||||
#ifndef EU
|
||||
if (unk1 > 4)
|
||||
return;
|
||||
#endif
|
||||
|
||||
LoadPaletteGroup(gUnk_081081E4[unk1]);
|
||||
tmp2 = &gUnk_081080A4[unk1 << 4];
|
||||
for (tmp = 0; tmp < 8; tmp++, tmp2 += 2) {
|
||||
@@ -144,4 +192,3 @@ void sub_08057E7C(u32 unk1) {
|
||||
}
|
||||
gRoomVars.unk_10[0] = unk1;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -108,9 +108,6 @@ void MandiblesProjectile_Action2(Entity* this) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef EU
|
||||
ASM_FUNC("asm/non_matching/eu/MandiblesProjectile_Action3.inc", void MandiblesProjectile_Action3(Entity* this))
|
||||
#else
|
||||
void MandiblesProjectile_Action3(Entity* this) {
|
||||
u32 uVar1;
|
||||
s8* tmp;
|
||||
@@ -142,16 +139,20 @@ void MandiblesProjectile_Action3(Entity* this) {
|
||||
uVar1 = entity->animationState;
|
||||
this->direction = uVar1 << 2;
|
||||
this->animationState = uVar1 << 0x1a >> 0x1a;
|
||||
#ifdef EU
|
||||
this->spriteOrientation.flipY = 1;
|
||||
this->hitbox = &gHitbox_0;
|
||||
#else
|
||||
this->hitbox = &gHitbox_0;
|
||||
if (AreaIsDungeon() != 0) {
|
||||
this->spriteOrientation.flipY = 1;
|
||||
}
|
||||
#endif
|
||||
sub_080AA3E0(this, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void MandiblesProjectile_Action4(Entity* this) {
|
||||
s32 iVar1;
|
||||
|
||||
Reference in New Issue
Block a user