mirror of
https://github.com/zeldaret/tmc
synced 2026-06-04 18:59:28 -04:00
Decompile BlockPushed
This commit is contained in:
@@ -1,216 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
mov r8, r0
|
||||
adds r6, r1, #0
|
||||
ldrh r1, [r6, #2]
|
||||
asrs r7, r1, #4
|
||||
movs r0, #1
|
||||
ands r7, r0
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
cmp r1, #6
|
||||
bls _0806F1C8
|
||||
b _0806F332
|
||||
_0806F1C8:
|
||||
lsls r0, r1, #2
|
||||
ldr r1, _0806F1D4 @ =_0806F1D8
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0806F1D4: .4byte _0806F1D8
|
||||
_0806F1D8: @ jump table
|
||||
.4byte _0806F332 @ case 0
|
||||
.4byte _0806F342 @ case 1
|
||||
.4byte _0806F1F4 @ case 2
|
||||
.4byte _0806F24E @ case 3
|
||||
.4byte _0806F2BA @ case 4
|
||||
.4byte _0806F324 @ case 5
|
||||
.4byte _0806F336 @ case 6
|
||||
_0806F1F4:
|
||||
ldr r4, [r6]
|
||||
asrs r1, r4, #0xc
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
ldr r0, _0806F210 @ =0x00000FFF
|
||||
ands r4, r0
|
||||
movs r5, #0
|
||||
cmp r1, #1
|
||||
beq _0806F22A
|
||||
cmp r1, #1
|
||||
bgt _0806F214
|
||||
cmp r1, #0
|
||||
beq _0806F21A
|
||||
b _0806F248
|
||||
.align 2, 0
|
||||
_0806F210: .4byte 0x00000FFF
|
||||
_0806F214:
|
||||
cmp r1, #2
|
||||
beq _0806F23A
|
||||
b _0806F248
|
||||
_0806F21A:
|
||||
adds r0, r4, #0
|
||||
bl CheckRoomFlag
|
||||
adds r5, r0, #0
|
||||
_0806F222:
|
||||
adds r0, r4, #0
|
||||
bl SetRoomFlag
|
||||
b _0806F248
|
||||
_0806F22A:
|
||||
adds r0, r4, #0
|
||||
bl CheckLocalFlag
|
||||
adds r5, r0, #0
|
||||
_0806F232:
|
||||
adds r0, r4, #0
|
||||
bl SetLocalFlag
|
||||
b _0806F248
|
||||
_0806F23A:
|
||||
adds r0, r4, #0
|
||||
bl CheckGlobalFlag
|
||||
adds r5, r0, #0
|
||||
adds r0, r4, #0
|
||||
bl SetGlobalFlag
|
||||
_0806F248:
|
||||
cmp r5, #0
|
||||
beq _0806F342
|
||||
b _0806F34C
|
||||
_0806F24E:
|
||||
ldr r4, [r6]
|
||||
asrs r1, r4, #0xc
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
ldr r0, _0806F26C @ =0x00000FFF
|
||||
ands r4, r0
|
||||
movs r5, #0
|
||||
cmp r1, #1
|
||||
beq _0806F28A
|
||||
cmp r1, #1
|
||||
bgt _0806F270
|
||||
cmp r1, #0
|
||||
beq _0806F276
|
||||
b _0806F248
|
||||
.align 2, 0
|
||||
_0806F26C: .4byte 0x00000FFF
|
||||
_0806F270:
|
||||
cmp r1, #2
|
||||
beq _0806F29E
|
||||
b _0806F248
|
||||
_0806F276:
|
||||
adds r0, r4, #0
|
||||
bl CheckRoomFlag
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
beq _0806F222
|
||||
adds r0, r4, #0
|
||||
bl ClearRoomFlag
|
||||
b _0806F248
|
||||
_0806F28A:
|
||||
adds r0, r4, #0
|
||||
bl CheckLocalFlag
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
beq _0806F232
|
||||
adds r0, r4, #0
|
||||
bl ClearLocalFlag
|
||||
b _0806F248
|
||||
_0806F29E:
|
||||
adds r0, r4, #0
|
||||
bl CheckGlobalFlag
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
bne _0806F2B2
|
||||
adds r0, r4, #0
|
||||
bl SetGlobalFlag
|
||||
b _0806F248
|
||||
_0806F2B2:
|
||||
adds r0, r4, #0
|
||||
bl ClearGlobalFlag
|
||||
b _0806F248
|
||||
_0806F2BA:
|
||||
ldr r4, [r6]
|
||||
asrs r1, r4, #0xc
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
ldr r0, _0806F2D8 @ =0x00000FFF
|
||||
ands r4, r0
|
||||
movs r5, #0
|
||||
cmp r1, #4
|
||||
bhi _0806F248
|
||||
lsls r0, r1, #2
|
||||
ldr r1, _0806F2DC @ =_0806F2E0
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0806F2D8: .4byte 0x00000FFF
|
||||
_0806F2DC: .4byte _0806F2E0
|
||||
_0806F2E0: @ jump table
|
||||
.4byte _0806F2F4 @ case 0
|
||||
.4byte _0806F2FC @ case 1
|
||||
.4byte _0806F304 @ case 2
|
||||
.4byte _0806F30C @ case 3
|
||||
.4byte _0806F314 @ case 4
|
||||
_0806F2F4:
|
||||
adds r0, r4, #0
|
||||
bl CheckRoomFlag
|
||||
b _0806F320
|
||||
_0806F2FC:
|
||||
adds r0, r4, #0
|
||||
bl CheckLocalFlag
|
||||
b _0806F320
|
||||
_0806F304:
|
||||
adds r0, r4, #0
|
||||
bl CheckGlobalFlag
|
||||
b _0806F320
|
||||
_0806F30C:
|
||||
adds r0, r4, #0
|
||||
bl CheckKinstoneFused
|
||||
b _0806F320
|
||||
_0806F314:
|
||||
adds r0, r4, #0
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _0806F320
|
||||
movs r0, #1
|
||||
_0806F320:
|
||||
adds r5, r0, #0
|
||||
b _0806F248
|
||||
_0806F324:
|
||||
ldr r1, [r6, #4]
|
||||
cmp r1, #0
|
||||
beq _0806F332
|
||||
mov r0, r8
|
||||
bl _call_via_r1
|
||||
b _0806F35E
|
||||
_0806F332:
|
||||
movs r0, #0
|
||||
b _0806F34E
|
||||
_0806F336:
|
||||
ldr r0, _0806F348 @ =gPlayerState
|
||||
ldr r0, [r0, #0x30]
|
||||
movs r1, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806F34C
|
||||
_0806F342:
|
||||
ldrh r0, [r6, #6]
|
||||
b _0806F34E
|
||||
.align 2, 0
|
||||
_0806F348: .4byte gPlayerState
|
||||
_0806F34C:
|
||||
ldrh r0, [r6, #4]
|
||||
_0806F34E:
|
||||
cmp r7, #0
|
||||
beq _0806F35A
|
||||
mov r1, r8
|
||||
bl MessageNoOverlap
|
||||
b _0806F35E
|
||||
_0806F35A:
|
||||
bl MessageFromTarget
|
||||
_0806F35E:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -1,77 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r6, r0, #0
|
||||
ldr r2, _08057434 @ =gRoomControls
|
||||
ldr r0, [r2, #0x28]
|
||||
ldr r1, _08057438 @ =0xFFFFE000
|
||||
adds r0, r0, r1
|
||||
str r0, [r2, #0x28]
|
||||
ldr r0, [r2, #0x2c]
|
||||
ldr r1, _0805743C @ =0xFFFFF000
|
||||
adds r0, r0, r1
|
||||
str r0, [r2, #0x2c]
|
||||
ldr r5, _08057440 @ =gScreen
|
||||
movs r1, #0xa
|
||||
ldrsh r0, [r2, r1]
|
||||
ldrh r1, [r2, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #1
|
||||
ldrh r1, [r2, #0x2a]
|
||||
adds r0, r0, r1
|
||||
strh r0, [r5, #0x2e]
|
||||
movs r1, #0xc
|
||||
ldrsh r0, [r2, r1]
|
||||
ldrh r1, [r2, #8]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #1
|
||||
ldrh r2, [r2, #0x2e]
|
||||
adds r0, r0, r2
|
||||
strh r0, [r5, #0x30]
|
||||
ldr r2, _08057444 @ =gSineTable
|
||||
ldr r4, _08057448 @ =gRoomTransition
|
||||
ldr r1, [r4]
|
||||
ldrb r0, [r4]
|
||||
adds r0, #0x40
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r2
|
||||
movs r2, #0
|
||||
ldrsh r0, [r0, r2]
|
||||
asrs r0, r0, #5
|
||||
adds r0, #0x10
|
||||
bl sub_0805732C
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x22
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08057430
|
||||
ldr r0, [r4]
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08057430
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x24
|
||||
ldrb r0, [r2]
|
||||
adds r0, #1
|
||||
movs r1, #7
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r1, _0805744C @ =gUnk_08107C30
|
||||
ldrb r0, [r2]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r0]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x68
|
||||
strh r1, [r0]
|
||||
_08057430:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08057434: .4byte gRoomControls
|
||||
_08057438: .4byte 0xFFFFE000
|
||||
_0805743C: .4byte 0xFFFFF000
|
||||
_08057440: .4byte gScreen
|
||||
_08057444: .4byte gSineTable
|
||||
_08057448: .4byte gRoomTransition
|
||||
_0805744C: .4byte gUnk_08107C30
|
||||
.syntax divided
|
||||
@@ -0,0 +1,170 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
movs r2, #1
|
||||
strb r2, [r4, #0xc]
|
||||
movs r3, #0
|
||||
movs r0, #0x80
|
||||
strh r0, [r4, #0x24]
|
||||
ldrb r0, [r4, #0xe]
|
||||
strb r0, [r4, #0xf]
|
||||
strb r3, [r4, #0xe]
|
||||
ldrb r1, [r4, #0x11]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x11]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x81
|
||||
strb r3, [r0]
|
||||
adds r0, #2
|
||||
strb r3, [r0]
|
||||
ldrb r1, [r4, #0x19]
|
||||
movs r0, #0x3f
|
||||
ands r0, r1
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x19]
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #1
|
||||
bne _0808F9E8
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
strb r3, [r0]
|
||||
b _0808FA1C
|
||||
_0808F9E8:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
strb r2, [r0]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #5
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #2
|
||||
beq _0808FA0A
|
||||
cmp r0, #4
|
||||
bne _0808FA1C
|
||||
_0808FA0A:
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r0, #2
|
||||
strh r0, [r4, #0x32]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x63
|
||||
movs r0, #0xfe
|
||||
strb r0, [r1]
|
||||
strb r3, [r4, #0xd]
|
||||
strb r3, [r4, #0x1e]
|
||||
_0808FA1C:
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0
|
||||
beq _0808FAC4
|
||||
movs r6, #0
|
||||
cmp r0, #0x80
|
||||
beq _0808FA84
|
||||
ldrh r1, [r4, #0xa]
|
||||
ldr r0, _0808FA38 @ =0x00000101
|
||||
cmp r1, r0
|
||||
bne _0808FA3C
|
||||
movs r0, #0xf
|
||||
ldrsb r0, [r4, r0]
|
||||
ldrh r1, [r4, #0x32]
|
||||
b _0808FA42
|
||||
.align 2, 0
|
||||
_0808FA38: .4byte 0x00000101
|
||||
_0808FA3C:
|
||||
movs r0, #0xf
|
||||
ldrsb r0, [r4, r0]
|
||||
ldrh r1, [r4, #0x2e]
|
||||
_0808FA42:
|
||||
adds r0, r0, r1
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x7e
|
||||
strh r0, [r1]
|
||||
adds r5, r1, #0
|
||||
ldr r3, [r4, #0x50]
|
||||
cmp r3, #0
|
||||
bne _0808FA5E
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrh r0, [r0]
|
||||
bl CheckFlags
|
||||
b _0808FA7C
|
||||
_0808FA5E:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x82
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808FA76
|
||||
ldrb r0, [r3, #0xc]
|
||||
cmp r0, #2
|
||||
bne _0808FAA2
|
||||
adds r6, #1
|
||||
b _0808FAA2
|
||||
_0808FA76:
|
||||
ldrb r0, [r2]
|
||||
bl CheckLocalFlag
|
||||
_0808FA7C:
|
||||
cmp r0, #0
|
||||
beq _0808FAA2
|
||||
adds r6, #1
|
||||
b _0808FAA2
|
||||
_0808FA84:
|
||||
movs r6, #1
|
||||
ldrh r1, [r4, #0xa]
|
||||
ldr r0, _0808FA94 @ =0x00000101
|
||||
cmp r1, r0
|
||||
bne _0808FA98
|
||||
ldrh r1, [r4, #0x32]
|
||||
b _0808FA9A
|
||||
.align 2, 0
|
||||
_0808FA94: .4byte 0x00000101
|
||||
_0808FA98:
|
||||
ldrh r1, [r4, #0x2e]
|
||||
_0808FA9A:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x7e
|
||||
strh r1, [r0]
|
||||
adds r5, r0, #0
|
||||
_0808FAA2:
|
||||
cmp r6, #0
|
||||
beq _0808FAC4
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x81
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldrh r1, [r4, #0xa]
|
||||
ldr r0, _0808FABC @ =0x00000101
|
||||
cmp r1, r0
|
||||
bne _0808FAC0
|
||||
ldrh r0, [r5]
|
||||
strh r0, [r4, #0x32]
|
||||
b _0808FAC4
|
||||
.align 2, 0
|
||||
_0808FABC: .4byte 0x00000101
|
||||
_0808FAC0:
|
||||
ldrh r0, [r5]
|
||||
strh r0, [r4, #0x2e]
|
||||
_0808FAC4:
|
||||
adds r0, r4, #0
|
||||
bl sub_0808FF50
|
||||
pop {r4, r5, r6, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,201 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r6, r0, #0
|
||||
adds r5, r1, #0
|
||||
adds r7, r2, #0
|
||||
adds r0, r7, #0
|
||||
movs r1, #1
|
||||
bl sub_080002E0
|
||||
adds r4, r0, #0
|
||||
adds r0, r7, #0
|
||||
movs r1, #1
|
||||
bl GetTileIndex
|
||||
adds r3, r0, #0
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #7
|
||||
ands r0, r3
|
||||
cmp r0, #0
|
||||
bne _0809012C
|
||||
adds r3, r5, #0
|
||||
ldr r1, _080900D0 @ =0xFFFFBFDC
|
||||
adds r0, r3, r1
|
||||
cmp r0, #0xb
|
||||
bhi _0809011A
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080900D4 @ =_080900D8
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080900D0: .4byte 0xFFFFBFDC
|
||||
_080900D4: .4byte _080900D8
|
||||
_080900D8: @ jump table
|
||||
.4byte _08090114 @ case 0
|
||||
.4byte _08090108 @ case 1
|
||||
.4byte _0809011A @ case 2
|
||||
.4byte _0809011A @ case 3
|
||||
.4byte _0809011A @ case 4
|
||||
.4byte _0809011A @ case 5
|
||||
.4byte _0809011A @ case 6
|
||||
.4byte _0809011A @ case 7
|
||||
.4byte _08090114 @ case 8
|
||||
.4byte _0809010E @ case 9
|
||||
.4byte _08090114 @ case 10
|
||||
.4byte _0809010E @ case 11
|
||||
_08090108:
|
||||
cmp r4, #5
|
||||
bne _0809011A
|
||||
b _08090118
|
||||
_0809010E:
|
||||
cmp r4, #5
|
||||
bne _0809011A
|
||||
b _08090118
|
||||
_08090114:
|
||||
cmp r4, #0xa
|
||||
bne _0809011A
|
||||
_08090118:
|
||||
ldr r3, _08090128 @ =0x00004022
|
||||
_0809011A:
|
||||
adds r0, r3, #0
|
||||
adds r1, r7, #0
|
||||
movs r2, #1
|
||||
bl SetTile
|
||||
b _08090242
|
||||
.align 2, 0
|
||||
_08090128: .4byte 0x00004022
|
||||
_0809012C:
|
||||
ldr r1, _08090140 @ =0xFFFFBFDE
|
||||
adds r0, r3, r1
|
||||
cmp r0, #0xd
|
||||
bls _08090136
|
||||
b _08090242
|
||||
_08090136:
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _08090144 @ =_08090148
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08090140: .4byte 0xFFFFBFDE
|
||||
_08090144: .4byte _08090148
|
||||
_08090148: @ jump table
|
||||
.4byte _08090242 @ case 0
|
||||
.4byte _08090242 @ case 1
|
||||
.4byte _080901EC @ case 2
|
||||
.4byte _08090180 @ case 3
|
||||
.4byte _08090242 @ case 4
|
||||
.4byte _08090242 @ case 5
|
||||
.4byte _08090242 @ case 6
|
||||
.4byte _08090242 @ case 7
|
||||
.4byte _08090242 @ case 8
|
||||
.4byte _08090242 @ case 9
|
||||
.4byte _08090210 @ case 10
|
||||
.4byte _080901B4 @ case 11
|
||||
.4byte _08090210 @ case 12
|
||||
.4byte _080901B4 @ case 13
|
||||
_08090180:
|
||||
ldr r0, _080901A8 @ =0x00004024
|
||||
cmp r5, r0
|
||||
bne _08090194
|
||||
ldr r3, _080901AC @ =0x00004022
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x83
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x10
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_08090194:
|
||||
ldr r0, _080901B0 @ =0x0000402C
|
||||
cmp r5, r0
|
||||
bne _08090238
|
||||
ldr r3, _080901AC @ =0x00004022
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x83
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x10
|
||||
b _08090234
|
||||
.align 2, 0
|
||||
_080901A8: .4byte 0x00004024
|
||||
_080901AC: .4byte 0x00004022
|
||||
_080901B0: .4byte 0x0000402C
|
||||
_080901B4:
|
||||
ldr r0, _080901DC @ =0x0000402C
|
||||
cmp r5, r0
|
||||
bne _080901C8
|
||||
ldr r3, _080901E0 @ =0x0000402B
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x83
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x10
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_080901C8:
|
||||
ldr r0, _080901E4 @ =0x00004024
|
||||
cmp r5, r0
|
||||
bne _08090238
|
||||
ldr r3, _080901E8 @ =0x00004022
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x83
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x10
|
||||
b _08090234
|
||||
.align 2, 0
|
||||
_080901DC: .4byte 0x0000402C
|
||||
_080901E0: .4byte 0x0000402B
|
||||
_080901E4: .4byte 0x00004024
|
||||
_080901E8: .4byte 0x00004022
|
||||
_080901EC:
|
||||
ldr r0, _08090204 @ =0x00004025
|
||||
cmp r5, r0
|
||||
bne _08090200
|
||||
ldr r3, _08090208 @ =0x00004022
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x83
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x20
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_08090200:
|
||||
ldr r0, _0809020C @ =0x0000402D
|
||||
b _08090226
|
||||
.align 2, 0
|
||||
_08090204: .4byte 0x00004025
|
||||
_08090208: .4byte 0x00004022
|
||||
_0809020C: .4byte 0x0000402D
|
||||
_08090210:
|
||||
ldr r0, _08090244 @ =0x0000402D
|
||||
cmp r5, r0
|
||||
bne _08090224
|
||||
ldr r3, _08090248 @ =0x0000402B
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x83
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x20
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_08090224:
|
||||
ldr r0, _0809024C @ =0x00004025
|
||||
_08090226:
|
||||
cmp r5, r0
|
||||
bne _08090238
|
||||
ldr r3, _08090250 @ =0x00004022
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x83
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x20
|
||||
_08090234:
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
_08090238:
|
||||
adds r0, r3, #0
|
||||
adds r1, r7, #0
|
||||
movs r2, #1
|
||||
bl SetTile
|
||||
_08090242:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_08090244: .4byte 0x0000402D
|
||||
_08090248: .4byte 0x0000402B
|
||||
_0809024C: .4byte 0x00004025
|
||||
_08090250: .4byte 0x00004022
|
||||
.syntax divided
|
||||
@@ -0,0 +1,256 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
adds r6, r0, #0
|
||||
adds r4, r6, #0
|
||||
adds r4, #0x83
|
||||
ldrb r0, [r4]
|
||||
movs r2, #0x30
|
||||
ands r2, r0
|
||||
movs r0, #0
|
||||
mov sb, r0
|
||||
strb r2, [r4]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x70
|
||||
ldrh r5, [r0]
|
||||
adds r7, r5, #0
|
||||
subs r7, #0x80
|
||||
adds r0, #2
|
||||
ldrh r3, [r0]
|
||||
movs r0, #0x80
|
||||
rsbs r0, r0, #0
|
||||
adds r0, r0, r3
|
||||
mov r8, r0
|
||||
cmp r1, #1
|
||||
bne _0809039A
|
||||
movs r0, #0x20
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _080902D4
|
||||
adds r1, r3, #0
|
||||
subs r1, #0x7f
|
||||
movs r0, #0
|
||||
bl sub_08090480
|
||||
b _080902FE
|
||||
_080902D4:
|
||||
mov r0, r8
|
||||
movs r1, #2
|
||||
bl GetTileType
|
||||
adds r1, r0, #0
|
||||
ldr r0, _080902EC @ =0x00000301
|
||||
cmp r1, r0
|
||||
beq _080902F0
|
||||
adds r0, #7
|
||||
cmp r1, r0
|
||||
beq _080902F6
|
||||
b _080902FE
|
||||
.align 2, 0
|
||||
_080902EC: .4byte 0x00000301
|
||||
_080902F0:
|
||||
ldrb r0, [r4]
|
||||
movs r1, #8
|
||||
b _080902FA
|
||||
_080902F6:
|
||||
ldrb r0, [r4]
|
||||
movs r1, #2
|
||||
_080902FA:
|
||||
orrs r0, r1
|
||||
strb r0, [r4]
|
||||
_080902FE:
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x83
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x2a
|
||||
ands r0, r1
|
||||
adds r4, r2, #0
|
||||
cmp r0, #0
|
||||
beq _0809031E
|
||||
movs r0, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08090480
|
||||
movs r0, #0
|
||||
mov r1, r8
|
||||
bl sub_08090480
|
||||
_0809031E:
|
||||
ldrb r1, [r4]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0809034E
|
||||
subs r4, r7, #1
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl GetTileType
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #2
|
||||
cmp r0, r1
|
||||
bne _0809033C
|
||||
b _08090478
|
||||
_0809033C:
|
||||
movs r0, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_08090480
|
||||
subs r1, r7, #2
|
||||
movs r0, #2
|
||||
bl sub_08090480
|
||||
b _08090478
|
||||
_0809034E:
|
||||
subs r0, r7, #1
|
||||
movs r1, #2
|
||||
bl GetTileType
|
||||
adds r1, r0, #0
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #2
|
||||
cmp r1, r0
|
||||
beq _08090368
|
||||
adds r0, #8
|
||||
cmp r1, r0
|
||||
beq _0809036E
|
||||
b _08090376
|
||||
_08090368:
|
||||
ldrb r1, [r4]
|
||||
movs r0, #4
|
||||
b _08090372
|
||||
_0809036E:
|
||||
ldrb r1, [r4]
|
||||
movs r0, #1
|
||||
_08090372:
|
||||
orrs r0, r1
|
||||
strb r0, [r4]
|
||||
_08090376:
|
||||
ldrb r1, [r4]
|
||||
movs r0, #0x15
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08090478
|
||||
movs r0, #0x2a
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08090478
|
||||
movs r0, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08090480
|
||||
movs r0, #1
|
||||
mov r1, r8
|
||||
bl sub_08090480
|
||||
b _08090478
|
||||
_0809039A:
|
||||
movs r0, #0x10
|
||||
ands r0, r2
|
||||
cmp r0, #0
|
||||
beq _080903AE
|
||||
adds r1, r5, #0
|
||||
subs r1, #0x81
|
||||
movs r0, #0
|
||||
bl sub_08090480
|
||||
b _080903DA
|
||||
_080903AE:
|
||||
adds r0, r7, #0
|
||||
movs r1, #2
|
||||
bl GetTileType
|
||||
adds r1, r0, #0
|
||||
ldr r0, _080903C8 @ =0x00000302
|
||||
cmp r1, r0
|
||||
beq _080903CC
|
||||
adds r0, #4
|
||||
cmp r1, r0
|
||||
beq _080903D2
|
||||
b _080903DA
|
||||
.align 2, 0
|
||||
_080903C8: .4byte 0x00000302
|
||||
_080903CC:
|
||||
ldrb r0, [r4]
|
||||
movs r1, #4
|
||||
b _080903D6
|
||||
_080903D2:
|
||||
ldrb r0, [r4]
|
||||
movs r1, #1
|
||||
_080903D6:
|
||||
orrs r0, r1
|
||||
strb r0, [r4]
|
||||
_080903DA:
|
||||
adds r2, r6, #0
|
||||
adds r2, #0x83
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x15
|
||||
ands r0, r1
|
||||
adds r4, r2, #0
|
||||
cmp r0, #0
|
||||
beq _080903FA
|
||||
movs r0, #0
|
||||
adds r1, r7, #0
|
||||
bl sub_08090480
|
||||
movs r0, #0
|
||||
mov r1, r8
|
||||
bl sub_08090480
|
||||
_080903FA:
|
||||
ldrb r1, [r4]
|
||||
movs r0, #0x20
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0809042C
|
||||
mov r4, r8
|
||||
adds r4, #1
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl GetTileType
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #2
|
||||
cmp r0, r1
|
||||
beq _08090478
|
||||
movs r0, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_08090480
|
||||
mov r1, r8
|
||||
adds r1, #2
|
||||
movs r0, #1
|
||||
bl sub_08090480
|
||||
b _08090478
|
||||
_0809042C:
|
||||
mov r0, r8
|
||||
adds r0, #1
|
||||
movs r1, #2
|
||||
bl GetTileType
|
||||
adds r1, r0, #0
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #2
|
||||
cmp r1, r0
|
||||
beq _08090448
|
||||
adds r0, #6
|
||||
cmp r1, r0
|
||||
beq _0809044E
|
||||
b _08090456
|
||||
_08090448:
|
||||
ldrb r1, [r4]
|
||||
movs r0, #8
|
||||
b _08090452
|
||||
_0809044E:
|
||||
ldrb r1, [r4]
|
||||
movs r0, #2
|
||||
_08090452:
|
||||
orrs r0, r1
|
||||
strb r0, [r4]
|
||||
_08090456:
|
||||
ldrb r1, [r4]
|
||||
movs r0, #0x2a
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08090478
|
||||
movs r0, #0x15
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08090478
|
||||
movs r0, #2
|
||||
adds r1, r7, #0
|
||||
bl sub_08090480
|
||||
movs r0, #0
|
||||
mov r1, r8
|
||||
bl sub_08090480
|
||||
_08090478:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -0,0 +1,91 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
ldr r0, _08089750 @ =gPlayerState
|
||||
ldrb r1, [r0, #5]
|
||||
movs r0, #0x1f
|
||||
ands r0, r1
|
||||
cmp r0, #0x12
|
||||
bne _08089768
|
||||
ldr r6, _08089754 @ =gPlayerEntity
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08089768
|
||||
ldrb r3, [r6, #0x14]
|
||||
movs r2, #6
|
||||
ands r2, r3
|
||||
lsls r2, r2, #1
|
||||
ldr r0, _08089758 @ =gUnk_080B4468
|
||||
adds r2, r2, r0
|
||||
ldr r0, _0808975C @ =gUnk_080B4488
|
||||
lsrs r3, r3, #1
|
||||
lsls r3, r3, #1
|
||||
adds r3, r3, r0
|
||||
movs r0, #0x2e
|
||||
ldrsh r1, [r6, r0]
|
||||
movs r4, #0
|
||||
ldrsh r0, [r2, r4]
|
||||
adds r1, r1, r0
|
||||
ldr r5, _08089760 @ =gRoomControls
|
||||
ldrh r0, [r5, #6]
|
||||
subs r1, r1, r0
|
||||
asrs r1, r1, #4
|
||||
movs r4, #0x3f
|
||||
ands r1, r4
|
||||
movs r7, #0x32
|
||||
ldrsh r0, [r6, r7]
|
||||
movs r7, #2
|
||||
ldrsh r2, [r2, r7]
|
||||
adds r0, r0, r2
|
||||
ldrh r2, [r5, #8]
|
||||
subs r0, r0, r2
|
||||
asrs r0, r0, #4
|
||||
ands r0, r4
|
||||
lsls r0, r0, #6
|
||||
orrs r1, r0
|
||||
movs r0, #0
|
||||
ldrsh r7, [r3, r0]
|
||||
subs r1, r1, r7
|
||||
lsls r4, r1, #0x10
|
||||
lsrs r0, r4, #0x10
|
||||
adds r5, r6, #0
|
||||
adds r5, #0x38
|
||||
ldrb r1, [r5]
|
||||
bl sub_080002C8
|
||||
adds r1, r0, #0
|
||||
subs r0, #0x26
|
||||
cmp r0, #1
|
||||
bls _08089768
|
||||
cmp r1, #0x29
|
||||
beq _08089768
|
||||
ldrb r0, [r5]
|
||||
bl GetLayerByIndex
|
||||
asrs r1, r4, #0x10
|
||||
ldr r2, _08089764 @ =0x00002004
|
||||
adds r0, r0, r2
|
||||
adds r2, r0, r1
|
||||
ldrb r2, [r2]
|
||||
subs r1, r1, r7
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r2, #0
|
||||
bne _08089768
|
||||
cmp r0, #0
|
||||
bne _08089768
|
||||
movs r0, #1
|
||||
b _0808976A
|
||||
.align 2, 0
|
||||
_08089750: .4byte gPlayerState
|
||||
_08089754: .4byte gPlayerEntity
|
||||
_08089758: .4byte gUnk_080B4468
|
||||
_0808975C: .4byte gUnk_080B4488
|
||||
_08089760: .4byte gRoomControls
|
||||
_08089764: .4byte 0x00002004
|
||||
_08089768:
|
||||
movs r0, #0
|
||||
_0808976A:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.syntax divided
|
||||
@@ -1,542 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start BlockPushed
|
||||
BlockPushed: @ 0x08082E9C
|
||||
push {lr}
|
||||
ldr r2, _08082EB0 @ =gUnk_0811F624
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08082EB0: .4byte gUnk_0811F624
|
||||
|
||||
thumb_func_start sub_08082EB4
|
||||
sub_08082EB4: @ 0x08082EB4
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, _08082EE0 @ =gRoomControls
|
||||
ldrb r1, [r0, #4]
|
||||
adds r6, r0, #0
|
||||
cmp r1, #0x11
|
||||
bne _08082EF6
|
||||
adds r0, r4, #0
|
||||
bl sub_080AE068
|
||||
ldr r1, _08082EE4 @ =0x000001C1
|
||||
adds r0, r4, #0
|
||||
bl LoadFixedGFX
|
||||
cmp r0, #0
|
||||
bne _08082EE8
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
b _0808308E
|
||||
.align 2, 0
|
||||
_08082EE0: .4byte gRoomControls
|
||||
_08082EE4: .4byte 0x000001C1
|
||||
_08082EE8:
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r1, #4
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r0
|
||||
movs r0, #1
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0x18]
|
||||
_08082EF6:
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x20
|
||||
strb r0, [r4, #0xe]
|
||||
movs r0, #0x80
|
||||
strh r0, [r4, #0x24]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
subs r0, #0x88
|
||||
ands r0, r1
|
||||
movs r1, #6
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r4, r1]
|
||||
ldrh r1, [r6, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r5, r0, #4
|
||||
movs r2, #0x3f
|
||||
ands r5, r2
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r4, r1]
|
||||
ldrh r1, [r6, #8]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r2
|
||||
lsls r0, r0, #6
|
||||
orrs r5, r0
|
||||
ldrb r1, [r4, #0xa]
|
||||
lsls r1, r1, #3
|
||||
ldrh r0, [r4, #0x2e]
|
||||
adds r0, r1, r0
|
||||
strh r0, [r4, #0x2e]
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r1, r1, r0
|
||||
strh r1, [r4, #0x32]
|
||||
ldr r1, _08082F6C @ =gUnk_0811F64C
|
||||
ldrb r0, [r4, #0xa]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
str r0, [r4, #0x48]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x38
|
||||
ldrb r1, [r0]
|
||||
adds r0, r5, #0
|
||||
bl GetTileType
|
||||
str r0, [r4, #0x68]
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #1
|
||||
beq _08082F7A
|
||||
cmp r0, #1
|
||||
bgt _08082F70
|
||||
cmp r0, #0
|
||||
beq _08082F76
|
||||
b _08082FF0
|
||||
.align 2, 0
|
||||
_08082F6C: .4byte gUnk_0811F64C
|
||||
_08082F70:
|
||||
cmp r0, #2
|
||||
beq _08082F9A
|
||||
b _08082FF0
|
||||
_08082F76:
|
||||
adds r0, r5, #0
|
||||
b _08082FE8
|
||||
_08082F7A:
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #1
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x40
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x41
|
||||
b _08082FE8
|
||||
_08082F9A:
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #1
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #2
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x40
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x41
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x42
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x80
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x81
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x82
|
||||
_08082FE8:
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
b _08083088
|
||||
_08082FF0:
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #1
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #2
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #3
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x40
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x41
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x42
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x43
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x80
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x81
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x82
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x83
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xc0
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xc1
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xc2
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xc3
|
||||
adds r1, r4, #0
|
||||
bl sub_080832D8
|
||||
_08083088:
|
||||
ldr r0, _08083090 @ =0x0000010F
|
||||
bl EnqueueSFX
|
||||
_0808308E:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_08083090: .4byte 0x0000010F
|
||||
|
||||
thumb_func_start sub_08083094
|
||||
sub_08083094: @ 0x08083094
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl LinearMoveUpdate
|
||||
adds r0, r4, #0
|
||||
bl sub_0800445C
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080830B4
|
||||
adds r0, r4, #0
|
||||
bl sub_080830B8
|
||||
_080830B4:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080830B8
|
||||
sub_080830B8: @ 0x080830B8
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
mov sb, r0
|
||||
ldrb r5, [r0, #0xa]
|
||||
lsls r4, r5, #3
|
||||
movs r1, #0x2e
|
||||
ldrsh r0, [r0, r1]
|
||||
subs r0, r0, r4
|
||||
ldr r3, _080830FC @ =gRoomControls
|
||||
ldrh r1, [r3, #6]
|
||||
subs r0, r0, r1
|
||||
asrs r7, r0, #4
|
||||
movs r2, #0x3f
|
||||
ands r7, r2
|
||||
mov r6, sb
|
||||
movs r1, #0x32
|
||||
ldrsh r0, [r6, r1]
|
||||
subs r0, r0, r4
|
||||
ldrh r1, [r3, #8]
|
||||
subs r0, r0, r1
|
||||
asrs r0, r0, #4
|
||||
ands r0, r2
|
||||
lsls r0, r0, #6
|
||||
orrs r7, r0
|
||||
cmp r5, #1
|
||||
beq _08083128
|
||||
cmp r5, #1
|
||||
bgt _08083100
|
||||
cmp r5, #0
|
||||
beq _08083106
|
||||
b _080831EC
|
||||
.align 2, 0
|
||||
_080830FC: .4byte gRoomControls
|
||||
_08083100:
|
||||
cmp r5, #2
|
||||
beq _08083160
|
||||
b _080831EC
|
||||
_08083106:
|
||||
mov r0, sb
|
||||
bl sub_0800442E
|
||||
cmp r0, #0
|
||||
beq _08083112
|
||||
b _080832C0
|
||||
_08083112:
|
||||
ldr r0, _08083124 @ =0x00000365
|
||||
mov r1, sb
|
||||
adds r1, #0x38
|
||||
ldrb r2, [r1]
|
||||
adds r1, r7, #0
|
||||
bl sub_0807B7D8
|
||||
b _080832BA
|
||||
.align 2, 0
|
||||
_08083124: .4byte 0x00000365
|
||||
_08083128:
|
||||
mov r2, sb
|
||||
ldr r0, [r2, #0x68]
|
||||
mov r4, sb
|
||||
adds r4, #0x38
|
||||
ldrb r2, [r4]
|
||||
adds r1, r7, #0
|
||||
bl sub_0807B7D8
|
||||
ldr r0, _08083158 @ =0x0000036F
|
||||
adds r1, r7, #1
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
movs r0, #0xdc
|
||||
lsls r0, r0, #2
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x40
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
ldr r0, _0808315C @ =0x00000371
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x41
|
||||
b _080831CA
|
||||
.align 2, 0
|
||||
_08083158: .4byte 0x0000036F
|
||||
_0808315C: .4byte 0x00000371
|
||||
_08083160:
|
||||
mov r6, sb
|
||||
ldr r0, [r6, #0x68]
|
||||
mov r4, sb
|
||||
adds r4, #0x38
|
||||
ldrb r2, [r4]
|
||||
adds r1, r7, #0
|
||||
bl sub_0807B7D8
|
||||
ldr r0, _080831D4 @ =0x00000372
|
||||
adds r1, r7, #1
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
ldr r0, _080831D8 @ =0x0000036F
|
||||
adds r1, r7, #2
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
movs r0, #0xdd
|
||||
lsls r0, r0, #2
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x40
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
ldr r0, _080831DC @ =0x00000376
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x41
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
ldr r0, _080831E0 @ =0x00000375
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x42
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
movs r0, #0xdc
|
||||
lsls r0, r0, #2
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x80
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
ldr r0, _080831E4 @ =0x00000373
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x81
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
ldr r0, _080831E8 @ =0x00000371
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x82
|
||||
_080831CA:
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
b _080832BA
|
||||
.align 2, 0
|
||||
_080831D4: .4byte 0x00000372
|
||||
_080831D8: .4byte 0x0000036F
|
||||
_080831DC: .4byte 0x00000376
|
||||
_080831E0: .4byte 0x00000375
|
||||
_080831E4: .4byte 0x00000373
|
||||
_080831E8: .4byte 0x00000371
|
||||
_080831EC:
|
||||
mov r1, sb
|
||||
ldr r0, [r1, #0x68]
|
||||
mov r4, sb
|
||||
adds r4, #0x38
|
||||
ldrb r2, [r4]
|
||||
adds r1, r7, #0
|
||||
bl sub_0807B7D8
|
||||
ldr r5, _080832C8 @ =0x00000372
|
||||
adds r1, r7, #1
|
||||
ldrb r2, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807B7D8
|
||||
adds r1, r7, #2
|
||||
ldrb r2, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807B7D8
|
||||
ldr r0, _080832CC @ =0x0000036F
|
||||
adds r1, r7, #3
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
movs r2, #0xdd
|
||||
lsls r2, r2, #2
|
||||
mov r8, r2
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x40
|
||||
ldrb r2, [r4]
|
||||
mov r0, r8
|
||||
bl sub_0807B7D8
|
||||
adds r5, #4
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x41
|
||||
ldrb r2, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807B7D8
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x42
|
||||
ldrb r2, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807B7D8
|
||||
ldr r6, _080832D0 @ =0x00000375
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x43
|
||||
ldrb r2, [r4]
|
||||
adds r0, r6, #0
|
||||
bl sub_0807B7D8
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x80
|
||||
ldrb r2, [r4]
|
||||
mov r0, r8
|
||||
bl sub_0807B7D8
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x81
|
||||
ldrb r2, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807B7D8
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x82
|
||||
ldrb r2, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807B7D8
|
||||
adds r1, r7, #0
|
||||
adds r1, #0x83
|
||||
ldrb r2, [r4]
|
||||
adds r0, r6, #0
|
||||
bl sub_0807B7D8
|
||||
movs r0, #0xdc
|
||||
lsls r0, r0, #2
|
||||
adds r1, r7, #0
|
||||
adds r1, #0xc0
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
subs r5, #3
|
||||
adds r1, r7, #0
|
||||
adds r1, #0xc1
|
||||
ldrb r2, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807B7D8
|
||||
adds r1, r7, #0
|
||||
adds r1, #0xc2
|
||||
ldrb r2, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_0807B7D8
|
||||
ldr r0, _080832D4 @ =0x00000371
|
||||
adds r1, r7, #0
|
||||
adds r1, #0xc3
|
||||
ldrb r2, [r4]
|
||||
bl sub_0807B7D8
|
||||
_080832BA:
|
||||
mov r0, sb
|
||||
bl DeleteEntity
|
||||
_080832C0:
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080832C8: .4byte 0x00000372
|
||||
_080832CC: .4byte 0x0000036F
|
||||
_080832D0: .4byte 0x00000375
|
||||
_080832D4: .4byte 0x00000371
|
||||
|
||||
thumb_func_start sub_080832D8
|
||||
sub_080832D8: @ 0x080832D8
|
||||
push {lr}
|
||||
adds r3, r0, #0
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x38
|
||||
ldrb r0, [r2]
|
||||
cmp r0, #2
|
||||
beq _080832FC
|
||||
ldrb r1, [r1, #0x15]
|
||||
movs r0, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080832F6
|
||||
ldrb r2, [r2]
|
||||
movs r0, #0x21
|
||||
b _0808330A
|
||||
_080832F6:
|
||||
ldrb r2, [r2]
|
||||
movs r0, #0x20
|
||||
b _0808330A
|
||||
_080832FC:
|
||||
ldrb r1, [r1, #0x15]
|
||||
movs r0, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08083312
|
||||
ldrb r2, [r2]
|
||||
movs r0, #0x2f
|
||||
_0808330A:
|
||||
adds r1, r3, #0
|
||||
bl sub_0807B7D8
|
||||
b _0808331C
|
||||
_08083312:
|
||||
ldrb r2, [r2]
|
||||
movs r0, #0x2e
|
||||
adds r1, r3, #0
|
||||
bl sub_0807B7D8
|
||||
_0808331C:
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
@@ -1,27 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_0811F624:: @ 0811F624
|
||||
.4byte sub_08082EB4
|
||||
.4byte sub_08083094
|
||||
|
||||
gUnk_0811F62C:: @ 0811F62C
|
||||
.incbin "blockPushed/gUnk_0811F62C.bin"
|
||||
|
||||
gUnk_0811F634:: @ 0811F634
|
||||
.incbin "blockPushed/gUnk_0811F634.bin"
|
||||
|
||||
gUnk_0811F63C:: @ 0811F63C
|
||||
.incbin "blockPushed/gUnk_0811F63C.bin"
|
||||
|
||||
gUnk_0811F644:: @ 0811F644
|
||||
.incbin "blockPushed/gUnk_0811F644.bin"
|
||||
|
||||
gUnk_0811F64C:: @ 0811F64C
|
||||
.4byte gUnk_0811F62C
|
||||
.4byte gUnk_0811F634
|
||||
.4byte gUnk_0811F63C
|
||||
.4byte gUnk_0811F644
|
||||
@@ -28,7 +28,6 @@ void sub_08059B18(void);
|
||||
|
||||
bool32 sub_08059C8C(Manager12*, u32, u8*, u16*);
|
||||
|
||||
extern void sub_0807B9B8(s32, s32, s32);
|
||||
extern u32 gUnk_086E8460;
|
||||
|
||||
typedef struct {
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
/**
|
||||
* @file blockPushed.c
|
||||
* @ingroup Objects
|
||||
*
|
||||
* @brief Block Pushed object
|
||||
*/
|
||||
|
||||
#define NENT_DEPRECATED
|
||||
#include "global.h"
|
||||
#include "object.h"
|
||||
#include "functions.h"
|
||||
|
||||
typedef struct {
|
||||
/*0x00*/ Entity base;
|
||||
/*0x68*/ u32 unk_68;
|
||||
} BlockPushedEntity;
|
||||
|
||||
extern void (*const gUnk_0811F624[])(BlockPushedEntity*);
|
||||
extern const Hitbox* const gUnk_0811F64C[];
|
||||
|
||||
void sub_080832D8(u32, BlockPushedEntity*);
|
||||
void sub_080830B8(BlockPushedEntity*);
|
||||
|
||||
void BlockPushed(BlockPushedEntity* this) {
|
||||
gUnk_0811F624[super->action](this);
|
||||
}
|
||||
|
||||
void sub_08082EB4(BlockPushedEntity* this) {
|
||||
u16 tmp;
|
||||
u32 pos;
|
||||
|
||||
if (gRoomControls.area == 0x11) {
|
||||
sub_080AE068(super);
|
||||
if (LoadFixedGFX(super, 0x1c1) == 0) {
|
||||
super->spriteSettings.draw = 0;
|
||||
return;
|
||||
}
|
||||
super->spriteSettings.draw = 1;
|
||||
}
|
||||
super->action = 1;
|
||||
super->actionDelay = 0x20;
|
||||
super->speed = 0x80;
|
||||
super->spritePriority.b0 = 6;
|
||||
pos = COORD_TO_TILE(super);
|
||||
tmp = super->type * 8;
|
||||
super->x.HALF.HI += tmp;
|
||||
super->y.HALF.HI += tmp;
|
||||
super->hitbox = (Hitbox*)gUnk_0811F64C[super->type];
|
||||
this->unk_68 = GetTileType(pos, (u32)super->collisionLayer);
|
||||
switch (super->type) {
|
||||
case 0:
|
||||
sub_080832D8(pos, this);
|
||||
break;
|
||||
case 1:
|
||||
sub_080832D8(pos, this);
|
||||
sub_080832D8(pos + 1, this);
|
||||
sub_080832D8(pos + 0x40, this);
|
||||
sub_080832D8(pos + 0x41, this);
|
||||
break;
|
||||
case 2:
|
||||
sub_080832D8(pos, this);
|
||||
sub_080832D8(pos + 1, this);
|
||||
sub_080832D8(pos + 2, this);
|
||||
sub_080832D8(pos + 0x40, this);
|
||||
sub_080832D8(pos + 0x41, this);
|
||||
sub_080832D8(pos + 0x42, this);
|
||||
sub_080832D8(pos + 0x80, this);
|
||||
sub_080832D8(pos + 0x81, this);
|
||||
sub_080832D8(pos + 0x82, this);
|
||||
break;
|
||||
default:
|
||||
sub_080832D8(pos, this);
|
||||
sub_080832D8(pos + 1, this);
|
||||
sub_080832D8(pos + 2, this);
|
||||
sub_080832D8(pos + 3, this);
|
||||
sub_080832D8(pos + 0x40, this);
|
||||
sub_080832D8(pos + 0x41, this);
|
||||
sub_080832D8(pos + 0x42, this);
|
||||
sub_080832D8(pos + 0x43, this);
|
||||
sub_080832D8(pos + 0x80, this);
|
||||
sub_080832D8(pos + 0x81, this);
|
||||
sub_080832D8(pos + 0x82, this);
|
||||
sub_080832D8(pos + 0x83, this);
|
||||
sub_080832D8(pos + 0xc0, this);
|
||||
sub_080832D8(pos + 0xc1, this);
|
||||
sub_080832D8(pos + 0xc2, this);
|
||||
sub_080832D8(pos + 0xc3, this);
|
||||
break;
|
||||
}
|
||||
EnqueueSFX(SFX_10F);
|
||||
}
|
||||
|
||||
void sub_08083094(BlockPushedEntity* this) {
|
||||
LinearMoveUpdate(super);
|
||||
sub_0800445C(super);
|
||||
if (--super->actionDelay == 0) {
|
||||
sub_080830B8(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080830B8(BlockPushedEntity* this) {
|
||||
s32 offset = super->type * 8;
|
||||
u32 pos = COORD_TO_TILE_OFFSET(super, offset, offset);
|
||||
|
||||
switch (super->type) {
|
||||
case 0:
|
||||
if (sub_0800442E(super)) {
|
||||
return;
|
||||
}
|
||||
sub_0807B7D8(0x365, pos, super->collisionLayer);
|
||||
break;
|
||||
case 1:
|
||||
sub_0807B7D8(this->unk_68, pos, super->collisionLayer);
|
||||
sub_0807B7D8(0x36f, pos + 1, super->collisionLayer);
|
||||
sub_0807B7D8(0x370, pos + 0x40, super->collisionLayer);
|
||||
sub_0807B7D8(0x371, pos + 0x41, super->collisionLayer);
|
||||
break;
|
||||
case 2:
|
||||
sub_0807B7D8(this->unk_68, pos, super->collisionLayer);
|
||||
sub_0807B7D8(0x372, pos + 1, super->collisionLayer);
|
||||
sub_0807B7D8(0x36f, pos + 2, super->collisionLayer);
|
||||
sub_0807B7D8(0x374, pos + 0x40, super->collisionLayer);
|
||||
sub_0807B7D8(0x376, pos + 0x41, super->collisionLayer);
|
||||
sub_0807B7D8(0x375, pos + 0x42, super->collisionLayer);
|
||||
sub_0807B7D8(0x370, pos + 0x80, super->collisionLayer);
|
||||
sub_0807B7D8(0x373, pos + 0x81, super->collisionLayer);
|
||||
sub_0807B7D8(0x371, pos + 0x82, super->collisionLayer);
|
||||
break;
|
||||
default:
|
||||
sub_0807B7D8(this->unk_68, pos, super->collisionLayer);
|
||||
sub_0807B7D8(0x372, pos + 1, super->collisionLayer);
|
||||
sub_0807B7D8(0x372, pos + 2, super->collisionLayer);
|
||||
sub_0807B7D8(0x36f, pos + 3, super->collisionLayer);
|
||||
sub_0807B7D8(0x374, pos + 0x40, super->collisionLayer);
|
||||
sub_0807B7D8(0x376, pos + 0x41, super->collisionLayer);
|
||||
sub_0807B7D8(0x376, pos + 0x42, super->collisionLayer);
|
||||
sub_0807B7D8(0x375, pos + 0x43, super->collisionLayer);
|
||||
sub_0807B7D8(0x374, pos + 0x80, super->collisionLayer);
|
||||
sub_0807B7D8(0x376, pos + 0x81, super->collisionLayer);
|
||||
sub_0807B7D8(0x376, pos + 0x82, super->collisionLayer);
|
||||
sub_0807B7D8(0x375, pos + 0x83, super->collisionLayer);
|
||||
sub_0807B7D8(0x370, pos + 0xc0, super->collisionLayer);
|
||||
sub_0807B7D8(0x373, pos + 0xc1, super->collisionLayer);
|
||||
sub_0807B7D8(0x373, pos + 0xc2, super->collisionLayer);
|
||||
sub_0807B7D8(0x371, pos + 0xc3, super->collisionLayer);
|
||||
break;
|
||||
}
|
||||
DeleteEntity(super);
|
||||
}
|
||||
|
||||
void sub_080832D8(u32 param_1, BlockPushedEntity* this) {
|
||||
if (super->collisionLayer != 2) {
|
||||
if ((super->direction & 8) != 0) {
|
||||
sub_0807B7D8(0x21, param_1, super->collisionLayer);
|
||||
} else {
|
||||
sub_0807B7D8(0x20, param_1, super->collisionLayer);
|
||||
}
|
||||
} else {
|
||||
if ((super->direction & 8) != 0) {
|
||||
sub_0807B7D8(0x2f, param_1, super->collisionLayer);
|
||||
} else {
|
||||
sub_0807B7D8(0x2e, param_1, super->collisionLayer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void (*const gUnk_0811F624[])(BlockPushedEntity*) = {sub_08082EB4, sub_08083094, };
|
||||
const Hitbox gUnk_0811F62C = { 0, 0, { 0, 0, 0, 0 }, 5, 4 };
|
||||
const Hitbox gUnk_0811F634 = { 0, 0, { 0, 0, 0, 0 }, 13, 12 };
|
||||
const Hitbox gUnk_0811F63C = { 0, 0, { 0, 0, 0, 0 }, 21, 20 };
|
||||
const Hitbox gUnk_0811F644 = { 0, 0, { 0, 0, 0, 0 }, 29, 28 };
|
||||
|
||||
const Hitbox* const gUnk_0811F64C[] = {&gUnk_0811F62C, &gUnk_0811F634, &gUnk_0811F63C, &gUnk_0811F644, };
|
||||
@@ -3,9 +3,9 @@
|
||||
#include "flags.h"
|
||||
#include "room.h"
|
||||
#include "sound.h"
|
||||
#include "functions.h"
|
||||
|
||||
extern void sub_080A0960(Entity*, u32);
|
||||
extern void sub_0801AF18(u8*, u32, u32);
|
||||
|
||||
extern void (*const gUnk_08124950[])(Entity*);
|
||||
extern u8 gUnk_08124960;
|
||||
|
||||
+1
-5
@@ -3,10 +3,6 @@
|
||||
|
||||
extern void (*MaskActionFuncs[])(Entity*);
|
||||
|
||||
extern void sub_08000148(u16, u16, u32);
|
||||
|
||||
extern void sub_0805457C(Entity*, s32);
|
||||
|
||||
void Mask(Entity* this) {
|
||||
MaskActionFuncs[this->action](this);
|
||||
}
|
||||
@@ -79,7 +75,7 @@ void sub_08092A94(Entity* this) {
|
||||
// Presumably, make the mask fall
|
||||
SetTile(this->field_0x7c.HALF_U.LO, this->field_0x7c.HALF_U.HI, 1);
|
||||
|
||||
sub_08000148(this->field_0x7a.HWORD, this->field_0x7c.HALF.HI, 1);
|
||||
sub_08000148(this->field_0x7a.HWORD, (u16)this->field_0x7c.HALF.HI, 1);
|
||||
|
||||
this->action = 2;
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ static void sub_0808F2B0(Entity*);
|
||||
void sub_0808F14C(Entity*);
|
||||
void sub_0808F244(Entity*);
|
||||
|
||||
extern void sub_0806FCF4(Entity*, u32, u32, u32);
|
||||
extern void sub_0808F5EC(Entity*);
|
||||
|
||||
extern void (*const gUnk_08121E5C[])(Entity*);
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
#include "object.h"
|
||||
#include "game.h"
|
||||
|
||||
extern void sub_0807B9B8(s32, s32, s32);
|
||||
|
||||
extern void (*const OctorokBossObject_Actions[])(Entity*);
|
||||
extern const u16 gUnk_0812384C[];
|
||||
extern const u16 gUnk_0812388C[];
|
||||
|
||||
Reference in New Issue
Block a user