Merge pull request #418 from hatal175/macro

Decompile macro* files
This commit is contained in:
notyourav 2022-03-02 13:29:23 -08:00 committed by GitHub
commit 80ab6d013f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 738 additions and 1801 deletions

View File

@ -1,323 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start MacroAcorn
MacroAcorn: @ 0x0809E500
push {lr}
ldr r2, _0809E514 @ =gUnk_081242C8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809E514: .4byte gUnk_081242C8
thumb_func_start sub_0809E518
sub_0809E518: @ 0x0809E518
push {r4, r5, r6, lr}
adds r6, r0, #0
movs r1, #1
strb r1, [r6, #0xc]
ldrb r2, [r6, #0xa]
adds r0, r2, #0
cmp r0, #0xff
bne _0809E52E
ldrb r0, [r6, #0xb]
strb r0, [r6, #0x1e]
b _0809E5CA
_0809E52E:
ands r1, r2
rsbs r0, r1, #0
orrs r0, r1
asrs r5, r0, #0x1f
movs r0, #4
ands r5, r0
movs r0, #2
ands r0, r2
cmp r0, #0
beq _0809E5A4
ldr r0, _0809E5A0 @ =gEntCount
ldrb r0, [r0]
cmp r0, #0x44
bhi _0809E5B4
strb r5, [r6, #0x1e]
adds r5, #1
movs r0, #0x9a
movs r1, #0xff
adds r2, r5, #0
bl CreateObject
adds r4, r0, #0
adds r0, r6, #0
adds r1, r4, #0
bl CopyPosition
adds r5, #1
movs r0, #0x9a
movs r1, #0xff
adds r2, r5, #0
bl CreateObject
adds r4, r0, #0
movs r3, #0x80
lsls r3, r3, #9
adds r0, r6, #0
adds r1, r4, #0
movs r2, #0
bl PositionRelative
adds r1, r4, #0
adds r1, #0x63
movs r0, #0xff
strb r0, [r1]
adds r5, #1
movs r0, #0x9a
movs r1, #0xff
adds r2, r5, #0
bl CreateObject
adds r4, r0, #0
adds r0, r6, #0
adds r1, r4, #0
bl CopyPosition
b _0809E5C4
.align 2, 0
_0809E5A0: .4byte gEntCount
_0809E5A4:
adds r2, r5, #1
movs r0, #0x9a
movs r1, #0xff
bl CreateObject
adds r4, r0, #0
cmp r4, #0
bne _0809E5BA
_0809E5B4:
bl DeleteThisEntity
b _0809E5C4
_0809E5BA:
strb r5, [r6, #0x1e]
adds r0, r6, #0
adds r1, r4, #0
bl CopyPosition
_0809E5C4:
adds r0, r6, #0
bl sub_0809E5F0
_0809E5CA:
ldrb r1, [r6, #0x1e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0809E5E8
ldrb r0, [r6, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r6, #0x19]
adds r2, r6, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
_0809E5E8:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start nullsub_125
nullsub_125: @ 0x0809E5EC
bx lr
.align 2, 0
thumb_func_start sub_0809E5F0
sub_0809E5F0: @ 0x0809E5F0
push {r4, r5, lr}
movs r2, #0x2e
ldrsh r1, [r0, r2]
ldr r4, _0809E628 @ =gRoomControls
ldrh r2, [r4, #6]
subs r1, r1, r2
asrs r5, r1, #4
movs r3, #0x3f
ands r5, r3
movs r2, #0x32
ldrsh r1, [r0, r2]
ldrh r2, [r4, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r5, r1
adds r1, r0, #0
adds r1, #0x80
strh r5, [r1]
ldrb r0, [r0, #0xa]
cmp r0, #1
beq _0809E708
cmp r0, #1
bgt _0809E62C
cmp r0, #0
beq _0809E64E
b _0809E792
.align 2, 0
_0809E628: .4byte gRoomControls
_0809E62C:
cmp r0, #2
beq _0809E636
cmp r0, #3
beq _0809E6F0
b _0809E792
_0809E636:
ldr r0, _0809E6DC @ =0x00004022
adds r1, r5, #0
subs r1, #0x3d
movs r2, #1
bl SetTile
ldr r0, _0809E6E0 @ =0x0000406D
adds r1, r5, #0
subs r1, #0x3c
movs r2, #1
bl SetTile
_0809E64E:
ldr r0, _0809E6E4 @ =0x0000406C
adds r1, r5, #0
subs r1, #0x42
movs r2, #1
bl SetTile
ldr r4, _0809E6DC @ =0x00004022
adds r1, r5, #0
subs r1, #0x41
adds r0, r4, #0
movs r2, #1
bl SetTile
adds r1, r5, #0
subs r1, #0x40
adds r0, r4, #0
movs r2, #1
bl SetTile
adds r1, r5, #0
subs r1, #0x3f
adds r0, r4, #0
movs r2, #1
bl SetTile
subs r1, r5, #2
adds r0, r4, #0
movs r2, #1
bl SetTile
subs r1, r5, #1
adds r0, r4, #0
movs r2, #1
bl SetTile
adds r0, r4, #0
adds r1, r5, #0
movs r2, #1
bl SetTile
adds r1, r5, #1
adds r0, r4, #0
movs r2, #1
bl SetTile
ldr r0, _0809E6E8 @ =0x0000406E
adds r1, r5, #0
adds r1, #0x3e
movs r2, #1
bl SetTile
adds r1, r5, #0
adds r1, #0x3f
adds r0, r4, #0
movs r2, #1
bl SetTile
adds r1, r5, #0
adds r1, #0x40
adds r0, r4, #0
movs r2, #1
bl SetTile
ldr r0, _0809E6EC @ =0x0000406F
adds r1, r5, #0
adds r1, #0x41
movs r2, #1
bl SetTile
b _0809E792
.align 2, 0
_0809E6DC: .4byte 0x00004022
_0809E6E0: .4byte 0x0000406D
_0809E6E4: .4byte 0x0000406C
_0809E6E8: .4byte 0x0000406E
_0809E6EC: .4byte 0x0000406F
_0809E6F0:
ldr r0, _0809E794 @ =0x00004022
adds r1, r5, #0
subs r1, #0x44
movs r2, #1
bl SetTile
ldr r0, _0809E798 @ =0x0000406C
adds r1, r5, #0
subs r1, #0x45
movs r2, #1
bl SetTile
_0809E708:
ldr r4, _0809E794 @ =0x00004022
adds r1, r5, #0
subs r1, #0x42
adds r0, r4, #0
movs r2, #1
bl SetTile
adds r1, r5, #0
subs r1, #0x41
adds r0, r4, #0
movs r2, #1
bl SetTile
adds r1, r5, #0
subs r1, #0x40
adds r0, r4, #0
movs r2, #1
bl SetTile
ldr r0, _0809E79C @ =0x0000406D
adds r1, r5, #0
subs r1, #0x3f
movs r2, #1
bl SetTile
subs r1, r5, #2
adds r0, r4, #0
movs r2, #1
bl SetTile
subs r1, r5, #1
adds r0, r4, #0
movs r2, #1
bl SetTile
adds r0, r4, #0
adds r1, r5, #0
movs r2, #1
bl SetTile
adds r1, r5, #1
adds r0, r4, #0
movs r2, #1
bl SetTile
ldr r0, _0809E7A0 @ =0x0000406E
adds r1, r5, #0
adds r1, #0x3e
movs r2, #1
bl SetTile
adds r1, r5, #0
adds r1, #0x3f
adds r0, r4, #0
movs r2, #1
bl SetTile
adds r1, r5, #0
adds r1, #0x40
adds r0, r4, #0
movs r2, #1
bl SetTile
ldr r0, _0809E7A4 @ =0x0000406F
adds r1, r5, #0
adds r1, #0x41
movs r2, #1
bl SetTile
_0809E792:
pop {r4, r5, pc}
.align 2, 0
_0809E794: .4byte 0x00004022
_0809E798: .4byte 0x0000406C
_0809E79C: .4byte 0x0000406D
_0809E7A0: .4byte 0x0000406E
_0809E7A4: .4byte 0x0000406F

View File

@ -1,471 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start MacroBook
MacroBook: @ 0x0809A774
push {lr}
ldr r2, _0809A788 @ =gUnk_08123C80
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809A788: .4byte gUnk_08123C80
thumb_func_start sub_0809A78C
sub_0809A78C: @ 0x0809A78C
push {r4, r5, lr}
adds r4, r0, #0
movs r3, #0
movs r0, #1
strb r0, [r4, #0xc]
movs r2, #0x80
strb r2, [r4, #0xe]
strb r3, [r4, #0xf]
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
adds r5, r4, #0
adds r5, #0x80
strh r2, [r5]
adds r0, r4, #0
adds r0, #0x78
strh r3, [r0]
ldrh r0, [r4, #0x2e]
subs r0, #4
strh r0, [r4, #0x2e]
adds r1, r4, #0
adds r1, #0x63
movs r0, #0xfc
strb r0, [r1]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
ldrh r2, [r5]
adds r0, r4, #0
adds r1, r2, #0
bl sub_0805EC9C
adds r0, r4, #0
bl UpdateSpriteForCollisionLayer
ldrb r1, [r4, #0xf]
adds r0, r4, #0
bl InitAnimationForceUpdate
adds r0, r4, #0
bl sub_0809A958
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0809A7F4
sub_0809A7F4: @ 0x0809A7F4
push {r4, lr}
adds r4, r0, #0
bl UpdateAnimationSingleFrame
adds r0, r4, #0
bl sub_0809AA00
ldrb r0, [r4, #0xe]
adds r2, r0, #0
cmp r2, #0
beq _0809A810
subs r0, #1
strb r0, [r4, #0xe]
b _0809A840
_0809A810:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809A840
ldrb r0, [r4, #0xf]
cmp r0, #3
bne _0809A838
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x5a
strb r0, [r4, #0xe]
strb r2, [r4, #0xf]
adds r0, r4, #0
movs r1, #2
bl InitAnimationForceUpdate
b _0809A840
_0809A838:
ldrb r1, [r4, #0xf]
adds r0, r4, #0
bl InitAnimationForceUpdate
_0809A840:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809A844
sub_0809A844: @ 0x0809A844
push {r4, lr}
adds r4, r0, #0
bl UpdateAnimationSingleFrame
adds r0, r4, #0
bl sub_0809AA00
ldrb r0, [r4, #0xf]
cmp r0, #1
bhi _0809A85C
movs r1, #0
b _0809A870
_0809A85C:
ldrb r0, [r4, #0xe]
adds r2, r0, #0
cmp r2, #0
beq _0809A87C
subs r0, #1
strb r0, [r4, #0xe]
ldr r0, _0809A878 @ =gPlayerClones
ldr r1, [r0]
cmp r1, #0
bne _0809A8A0
_0809A870:
movs r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0xe]
b _0809A8A0
.align 2, 0
_0809A878: .4byte gPlayerClones
_0809A87C:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809A8A0
movs r0, #3
strb r0, [r4, #0xc]
strb r2, [r4, #0xe]
adds r0, r4, #0
movs r1, #3
bl InitAnimationForceUpdate
adds r0, r4, #0
movs r1, #0x78
bl RequestPriorityDuration
_0809A8A0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809A8A4
sub_0809A8A4: @ 0x0809A8A4
push {r4, lr}
adds r4, r0, #0
adds r2, r4, #0
adds r2, #0x5a
ldrb r1, [r2]
movs r0, #0xe0
ands r0, r1
cmp r0, #0x40
beq _0809A8D4
cmp r0, #0x40
bgt _0809A8C0
cmp r0, #0x20
beq _0809A8E2
b _0809A8FC
_0809A8C0:
cmp r0, #0x80
bne _0809A8FC
adds r0, r4, #0
adds r0, #0x59
ldrb r0, [r0]
cmp r0, #0
bne _0809A902
bl DeleteThisEntity
b _0809A902
_0809A8D4:
movs r0, #0xbf
ands r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_0809A9D4
b _0809A902
_0809A8E2:
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
ldrb r1, [r2]
movs r0, #0xdf
ands r0, r1
strb r0, [r2]
movs r0, #0xff
bl SetPlayerControl
movs r0, #0x2a
bl SetGlobalFlag
_0809A8FC:
adds r0, r4, #0
bl UpdateAnimationSingleFrame
_0809A902:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0809A92A
adds r1, r4, #0
adds r1, #0x80
ldrh r0, [r1]
adds r0, #8
strh r0, [r1]
ldr r0, [r4, #0x2c]
movs r2, #0x80
lsls r2, r2, #3
adds r0, r0, r2
str r0, [r4, #0x2c]
ldrh r2, [r1]
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
b _0809A94E
_0809A92A:
ldr r1, [r4, #0x54]
adds r0, r4, #0
movs r2, #0
bl sub_0809AA9C
ldr r1, _0809A950 @ =gPlayerEntity
adds r0, r4, #0
movs r2, #1
bl sub_0809AA9C
ldr r0, _0809A954 @ =gPlayerClones
ldr r1, [r0]
cmp r1, #0
beq _0809A94E
adds r0, r4, #0
movs r2, #1
bl sub_0809AA9C
_0809A94E:
pop {r4, pc}
.align 2, 0
_0809A950: .4byte gPlayerEntity
_0809A954: .4byte gPlayerClones
thumb_func_start sub_0809A958
sub_0809A958: @ 0x0809A958
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
movs r1, #0x2e
ldrsh r3, [r0, r1]
ldr r2, _0809A9CC @ =gRoomControls
ldrh r1, [r2, #6]
subs r1, #4
subs r3, r3, r1
asrs r3, r3, #4
movs r4, #0x3f
ands r3, r4
movs r5, #0x32
ldrsh r1, [r0, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
lsls r1, r1, #6
orrs r3, r1
adds r0, #0x82
strh r3, [r0]
ldrh r0, [r0]
adds r5, r0, #0
subs r5, #0x82
ldr r6, _0809A9D0 @ =gUnk_08123C90
movs r0, #0
movs r1, #0x80
lsls r1, r1, #7
mov sb, r1
_0809A996:
movs r4, #0
adds r0, #1
mov r8, r0
adds r7, r5, #0
adds r7, #0x40
_0809A9A0:
ldrh r0, [r6]
mov r1, sb
ands r0, r1
cmp r0, #0
beq _0809A9B4
ldrh r0, [r6]
adds r1, r5, r4
movs r2, #1
bl SetTile
_0809A9B4:
adds r4, #1
adds r6, #2
cmp r4, #3
ble _0809A9A0
mov r0, r8
adds r5, r7, #0
cmp r0, #4
ble _0809A996
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809A9CC: .4byte gRoomControls
_0809A9D0: .4byte gUnk_08123C90
thumb_func_start sub_0809A9D4
sub_0809A9D4: @ 0x0809A9D4
push {r4, r5, r6, r7, lr}
adds r0, #0x82
ldrh r0, [r0]
adds r5, r0, #0
subs r5, #0x82
movs r0, #0
_0809A9E0:
movs r4, #0
adds r7, r0, #1
adds r6, r5, #0
adds r6, #0x40
_0809A9E8:
adds r0, r5, r4
movs r1, #1
bl sub_0807BA8C
adds r4, #1
cmp r4, #3
ble _0809A9E8
adds r0, r7, #0
adds r5, r6, #0
cmp r0, #4
ble _0809A9E0
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0809AA00
sub_0809AA00: @ 0x0809AA00
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
movs r0, #0
strb r0, [r5, #0xf]
ldr r1, [r5, #0x54]
cmp r1, #0
bne _0809AA50
movs r0, #7
movs r1, #0x38
movs r2, #7
bl FindEntityByID
adds r4, r0, #0
adds r7, r5, #0
adds r7, #0x78
cmp r4, #0
beq _0809AA5C
movs r0, #0x80
lsls r0, r0, #4
mov r8, r0
ldr r0, _0809AA4C @ =0x0000FFFF
adds r6, r0, #0
_0809AA30:
ldrh r0, [r4, #0xa]
ands r0, r6
cmp r0, r8
bne _0809AA3A
str r4, [r5, #0x54]
_0809AA3A:
adds r0, r4, #0
movs r1, #7
bl FindNextDuplicateID
adds r4, r0, #0
cmp r4, #0
bne _0809AA30
b _0809AA5C
.align 2, 0
_0809AA4C: .4byte 0x0000FFFF
_0809AA50:
adds r0, r5, #0
movs r2, #0
bl sub_0809AA9C
adds r7, r5, #0
adds r7, #0x78
_0809AA5C:
ldr r4, _0809AA94 @ =gPlayerEntity
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0x20
movs r3, #0x22
bl EntityInRectRadius
strh r0, [r7]
lsls r0, r0, #0x10
cmp r0, #0
beq _0809AA8E
adds r0, r5, #0
adds r1, r4, #0
movs r2, #1
bl sub_0809AA9C
ldr r0, _0809AA98 @ =gPlayerClones
ldr r4, [r0]
cmp r4, #0
beq _0809AA8E
adds r0, r5, #0
adds r1, r4, #0
movs r2, #1
bl sub_0809AA9C
_0809AA8E:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809AA94: .4byte gPlayerEntity
_0809AA98: .4byte gPlayerClones
thumb_func_start sub_0809AA9C
sub_0809AA9C: @ 0x0809AA9C
push {r4, lr}
adds r4, r0, #0
adds r3, r1, #0
adds r0, #0x5a
ldrb r0, [r0]
movs r1, #3
ands r1, r0
cmp r1, #1
beq _0809AAB2
cmp r1, #2
bne _0809AABC
_0809AAB2:
adds r0, r3, #0
adds r0, #0x63
strb r1, [r0]
adds r2, r0, #0
b _0809AAC6
_0809AABC:
adds r1, r3, #0
adds r1, #0x63
movs r0, #0
strb r0, [r1]
adds r2, r1, #0
_0809AAC6:
movs r0, #0x2e
ldrsh r1, [r3, r0]
ldr r0, _0809AAE8 @ =gRoomControls
ldrh r0, [r0, #6]
movs r3, #0xad
lsls r3, r3, #1
adds r0, r0, r3
cmp r1, r0
bgt _0809AAE4
ldrb r0, [r4, #0xf]
adds r0, #1
strb r0, [r4, #0xf]
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
_0809AAE4:
pop {r4, pc}
.align 2, 0
_0809AAE8: .4byte gRoomControls

View File

@ -1,242 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start MacroDecoration
MacroDecoration: @ 0x08097DD4
push {lr}
ldr r2, _08097DE8 @ =gUnk_081233B8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08097DE8: .4byte gUnk_081233B8
thumb_func_start sub_08097DEC
sub_08097DEC: @ 0x08097DEC
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl UpdateSpriteForCollisionLayer
ldrb r0, [r4, #0xa]
cmp r0, #1
beq _08097E46
cmp r0, #1
bgt _08097E0A
cmp r0, #0
beq _08097E1C
b _08097EA2
_08097E0A:
cmp r0, #3
bgt _08097EA2
ldrb r0, [r4, #0xb]
strb r0, [r4, #0x1e]
ldrb r0, [r4, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x18]
b _08097E9C
_08097E1C:
ldrh r2, [r4, #0x2e]
movs r1, #0x10
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
strh r0, [r4, #0x2e]
ldrh r0, [r4, #0x32]
ands r1, r0
strh r1, [r4, #0x32]
adds r0, r4, #0
bl sub_08097EB8
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _08097EA2
adds r1, r0, #0
adds r1, #0xb
adds r0, r4, #0
bl ChangeObjPalette
b _08097EA2
_08097E46:
ldrb r0, [r4, #0xb]
strb r0, [r4, #0x1e]
lsls r0, r0, #0x18
lsrs r0, r0, #0x19
cmp r0, #1
beq _08097E76
cmp r0, #1
bgt _08097E5C
cmp r0, #0
beq _08097E68
b _08097E9C
_08097E5C:
cmp r0, #2
bne _08097E9C
adds r0, r4, #0
movs r1, #0xd
bl ChangeObjPalette
_08097E68:
ldrb r0, [r4, #0x1b]
movs r1, #0x3f
ands r1, r0
movs r0, #0x40
orrs r1, r0
strb r1, [r4, #0x1b]
b _08097E9C
_08097E76:
ldrb r1, [r4, #0x1b]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x1b]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
movs r1, #0xb
bl ChangeObjPalette
_08097E9C:
adds r0, r4, #0
bl sub_08097F34
_08097EA2:
pop {r4, pc}
thumb_func_start sub_08097EA4
sub_08097EA4: @ 0x08097EA4
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xa]
cmp r0, #0
beq _08097EB4
adds r0, r1, #0
bl sub_08097F10
_08097EB4:
pop {pc}
.align 2, 0
thumb_func_start sub_08097EB8
sub_08097EB8: @ 0x08097EB8
push {r4, r5, r6, lr}
movs r2, #0x2e
ldrsh r1, [r0, r2]
ldr r3, _08097F04 @ =gRoomControls
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r5, r1, #4
movs r2, #0x3f
ands r5, r2
movs r1, #0x32
ldrsh r0, [r0, r1]
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r5, r0
ldr r4, _08097F08 @ =gUnk_081233C0
movs r2, #0
ldrsh r0, [r4, r2]
ldr r1, _08097F0C @ =0x00007FFF
cmp r0, r1
beq _08097F00
adds r6, r1, #0
_08097EE8:
ldrh r0, [r4, #2]
movs r2, #0
ldrsh r1, [r4, r2]
adds r1, r5, r1
movs r2, #1
bl SetTile
adds r4, #4
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, r6
bne _08097EE8
_08097F00:
pop {r4, r5, r6, pc}
.align 2, 0
_08097F04: .4byte gRoomControls
_08097F08: .4byte gUnk_081233C0
_08097F0C: .4byte 0x00007FFF
thumb_func_start sub_08097F10
sub_08097F10: @ 0x08097F10
push {r4, lr}
adds r4, r0, #0
ldr r0, _08097F30 @ =gRoomControls
movs r2, #0xc
ldrsh r1, [r0, r2]
ldrh r0, [r0, #8]
subs r1, r1, r0
adds r0, r4, #0
bl sub_08097F60
adds r1, r4, #0
adds r1, #0x70
ldrh r1, [r1]
subs r1, r1, r0
strh r1, [r4, #0x32]
pop {r4, pc}
.align 2, 0
_08097F30: .4byte gRoomControls
thumb_func_start sub_08097F34
sub_08097F34: @ 0x08097F34
push {r4, lr}
adds r4, r0, #0
movs r0, #0x32
ldrsh r1, [r4, r0]
ldr r0, _08097F5C @ =gRoomControls
ldrh r0, [r0, #8]
subs r1, r1, r0
adds r0, r4, #0
bl sub_08097F60
ldrh r1, [r4, #0x32]
adds r1, r1, r0
adds r0, r4, #0
adds r0, #0x70
strh r1, [r0]
adds r0, r4, #0
bl sub_08097F10
pop {r4, pc}
.align 2, 0
_08097F5C: .4byte gRoomControls
thumb_func_start sub_08097F60
sub_08097F60: @ 0x08097F60
push {lr}
ldrb r2, [r0, #0xa]
cmp r2, #1
bne _08097F74
ldrb r0, [r0, #0x1e]
lsrs r0, r0, #1
cmp r0, #1
bne _08097F7C
asrs r1, r1, #3
b _08097F7E
_08097F74:
cmp r2, #1
blt _08097F7E
cmp r2, #3
bgt _08097F7E
_08097F7C:
asrs r1, r1, #1
_08097F7E:
adds r0, r1, #0
pop {pc}
.align 2, 0

View File

@ -1,20 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start MacroMushromStalks
MacroMushromStalks: @ 0x0808C91C
push {lr}
ldr r2, _0808C930 @ =gUnk_08121668
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808C930: .4byte gUnk_08121668

View File

@ -1,553 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start MacroPlayer
MacroPlayer: @ 0x0808CAE4
push {lr}
ldr r2, _0808CAF8 @ =gUnk_08121680
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808CAF8: .4byte gUnk_08121680
thumb_func_start sub_0808CAFC
sub_0808CAFC: @ 0x0808CAFC
push {r4, lr}
adds r4, r0, #0
ldr r1, _0808CB18 @ =gUnk_08121688
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
bl sub_0808CB9C
pop {r4, pc}
.align 2, 0
_0808CB18: .4byte gUnk_08121688
thumb_func_start sub_0808CB1C
sub_0808CB1C: @ 0x0808CB1C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0808CB70
movs r2, #1
strb r2, [r4, #0xc]
ldrb r0, [r4, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #0xa7
strh r0, [r4, #0x12]
movs r0, #0xd
strb r0, [r4, #0x1e]
adds r0, r4, #0
adds r0, #0x60
strh r2, [r0]
ldrb r1, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r4, #0x1a]
ldrb r2, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
strb r0, [r4, #0x19]
adds r3, r4, #0
adds r3, #0x29
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
strb r0, [r3]
ldrb r0, [r4, #0x1b]
ands r1, r0
movs r0, #0x80
orrs r1, r0
strb r1, [r4, #0x1b]
_0808CB70:
ldr r0, [r4, #0x50]
ldr r1, [r0, #0x2c]
str r1, [r4, #0x2c]
ldr r1, [r0, #0x30]
str r1, [r4, #0x30]
movs r5, #0
str r5, [r4, #0x34]
adds r1, r4, #0
bl SortEntityBelow
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _0808CB98
adds r0, r4, #0
adds r0, #0x60
movs r1, #0
strh r5, [r0]
strb r1, [r4, #0xd]
movs r0, #4
strb r0, [r4, #0x1e]
_0808CB98:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0808CB9C
sub_0808CB9C: @ 0x0808CB9C
push {r4, r5, lr}
adds r3, r0, #0
adds r0, #0x68
ldrh r1, [r0]
ldrb r4, [r0]
lsrs r5, r1, #8
movs r2, #0
ldrb r0, [r3, #0x14]
cmp r0, #4
bls _0808CBB2
movs r2, #1
_0808CBB2:
lsls r2, r2, #6
ldrb r1, [r3, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r3, #0x18]
cmp r4, #0xb7
bhi _0808CBCA
ldrb r0, [r3, #0x14]
lsrs r0, r0, #1
adds r4, r4, r0
_0808CBCA:
ldrh r0, [r3, #0x12]
cmp r5, r0
bne _0808CBDA
adds r0, r3, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r4, r0
beq _0808CBE4
_0808CBDA:
strh r5, [r3, #0x12]
adds r0, r3, #0
adds r1, r4, #0
bl InitAnimationForceUpdate
_0808CBE4:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0808CBE8
sub_0808CBE8: @ 0x0808CBE8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
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 r3, #4
strb r3, [r4, #0x14]
ldrb r2, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
strb r0, [r4, #0x19]
movs r0, #0x29
adds r0, r0, r4
mov ip, r0
ldrb r2, [r0]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
mov r2, ip
strb r0, [r2]
ldrb r0, [r4, #0x1b]
ands r1, r0
movs r0, #0x80
orrs r1, r0
strb r1, [r4, #0x1b]
adds r1, r4, #0
adds r1, #0x68
movs r0, #0x8a
lsls r0, r0, #1
strh r0, [r1]
subs r1, #0x10
movs r0, #0xff
strb r0, [r1]
ldr r0, _0808CC80 @ =0x0000FF50
strh r0, [r4, #0x36]
adds r0, r4, #0
adds r0, #0x6a
strh r3, [r0]
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
movs r1, #4
movs r2, #4
movs r3, #0
bl sub_0805EC9C
ldr r0, _0808CC84 @ =gUnk_02018EB0
str r4, [r0, #0x14]
movs r0, #0
bl sub_0807A094
adds r1, r0, #0
adds r0, r4, #0
bl ChangeObjPalette
movs r0, #0x3c
movs r1, #1
movs r2, #0
bl CreateObject
cmp r0, #0
beq _0808CC7C
str r4, [r0, #0x50]
str r0, [r4, #0x54]
_0808CC7C:
pop {r4, pc}
.align 2, 0
_0808CC80: .4byte 0x0000FF50
_0808CC84: .4byte gUnk_02018EB0
thumb_func_start sub_0808CC88
sub_0808CC88: @ 0x0808CC88
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r5, #0
adds r4, #0x6a
ldrh r1, [r4]
ldr r0, _0808CCB8 @ =0x000003FF
cmp r1, r0
bhi _0808CCB4
adds r0, r1, #4
strh r0, [r4]
ldrh r2, [r4]
adds r0, r5, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
ldrh r1, [r4]
adds r0, r5, #0
movs r2, #8
movs r3, #2
bl sub_0806FCF4
_0808CCB4:
pop {r4, r5, pc}
.align 2, 0
_0808CCB8: .4byte 0x000003FF
thumb_func_start sub_0808CCBC
sub_0808CCBC: @ 0x0808CCBC
push {r4, lr}
adds r4, r0, #0
bl sub_0808CC88
movs r1, #0x80
lsls r1, r1, #5
adds r0, r4, #0
bl GravityUpdate
cmp r0, #0
bne _0808CCFA
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x14
strb r0, [r4, #0x15]
adds r0, #0xec
strh r0, [r4, #0x24]
movs r0, #0xc0
lsls r0, r0, #0xa
str r0, [r4, #0x20]
ldrb r1, [r4, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
ldr r0, [r4, #0x54]
movs r1, #1
strb r1, [r0, #0xd]
ldr r0, _0808CCFC @ =gUnk_02018EB0
strb r1, [r0, #0x18]
_0808CCFA:
pop {r4, pc}
.align 2, 0
_0808CCFC: .4byte gUnk_02018EB0
thumb_func_start sub_0808CD00
sub_0808CD00: @ 0x0808CD00
push {r4, lr}
adds r4, r0, #0
bl sub_0808CC88
adds r0, r4, #0
bl UpdateAnimationSingleFrame
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl GravityUpdate
cmp r0, #0
beq _0808CD24
adds r0, r4, #0
bl LinearMoveUpdate
b _0808CD3E
_0808CD24:
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0xa
strb r0, [r4, #0x15]
movs r0, #0xc0
strh r0, [r4, #0x24]
movs r0, #0xa0
lsls r0, r0, #0xa
str r0, [r4, #0x20]
ldr r1, _0808CD40 @ =gUnk_02018EB0
movs r0, #1
strb r0, [r1, #0x19]
_0808CD3E:
pop {r4, pc}
.align 2, 0
_0808CD40: .4byte gUnk_02018EB0
thumb_func_start sub_0808CD44
sub_0808CD44: @ 0x0808CD44
push {r4, lr}
adds r4, r0, #0
bl sub_0808CC88
adds r0, r4, #0
bl UpdateAnimationSingleFrame
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl GravityUpdate
cmp r0, #0
beq _0808CD68
adds r0, r4, #0
bl LinearMoveUpdate
b _0808CD82
_0808CD68:
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x11
strb r0, [r4, #0x15]
adds r0, #0xef
strh r0, [r4, #0x24]
movs r0, #0x90
lsls r0, r0, #0xa
str r0, [r4, #0x20]
ldr r1, _0808CD84 @ =gUnk_02018EB0
movs r0, #1
strb r0, [r1, #0x1a]
_0808CD82:
pop {r4, pc}
.align 2, 0
_0808CD84: .4byte gUnk_02018EB0
thumb_func_start sub_0808CD88
sub_0808CD88: @ 0x0808CD88
push {r4, lr}
adds r4, r0, #0
bl sub_0808CC88
movs r1, #0xc0
lsls r1, r1, #5
adds r0, r4, #0
bl GravityUpdate
cmp r0, #0
beq _0808CDB8
adds r0, r4, #0
bl UpdateAnimationSingleFrame
adds r0, r4, #0
bl LinearMoveUpdate
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r0, #0x7f
bgt _0808CDD6
movs r0, #0x80
strh r0, [r4, #0x2e]
b _0808CDD6
_0808CDB8:
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x68
ldr r0, _0808CDD8 @ =0x00000C04
strh r0, [r1]
ldr r0, [r4, #0x54]
bl DeleteEntity
adds r0, r4, #0
bl sub_0805EC60
_0808CDD6:
pop {r4, pc}
.align 2, 0
_0808CDD8: .4byte 0x00000C04
thumb_func_start sub_0808CDDC
sub_0808CDDC: @ 0x0808CDDC
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808CDF6
ldrb r0, [r1, #0xc]
adds r0, #1
strb r0, [r1, #0xc]
movs r0, #0x10
strb r0, [r1, #0xe]
_0808CDF6:
pop {pc}
thumb_func_start sub_0808CDF8
sub_0808CDF8: @ 0x0808CDF8
push {lr}
adds r3, r0, #0
ldrb r0, [r3, #0xe]
subs r0, #1
strb r0, [r3, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808CE2C
ldr r0, _0808CE30 @ =gArea
ldrb r1, [r0, #0x16]
ldrb r0, [r3, #0xc]
adds r0, #1
adds r0, r0, r1
strb r0, [r3, #0xc]
ldr r2, _0808CE34 @ =gUnk_081216B4
lsls r1, r1, #1
adds r0, r1, r2
ldrb r0, [r0]
strb r0, [r3, #0x14]
adds r1, #1
adds r1, r1, r2
ldrb r0, [r1]
strb r0, [r3, #0x15]
movs r0, #0xa0
lsls r0, r0, #1
strh r0, [r3, #0x24]
_0808CE2C:
pop {pc}
.align 2, 0
_0808CE30: .4byte gArea
_0808CE34: .4byte gUnk_081216B4
thumb_func_start sub_0808CE38
sub_0808CE38: @ 0x0808CE38
push {r4, lr}
adds r4, r0, #0
bl UpdateAnimationSingleFrame
adds r0, r4, #0
bl LinearMoveUpdate
movs r1, #0x32
ldrsh r0, [r4, r1]
cmp r0, #0xc7
bgt _0808CE52
movs r0, #0x18
strb r0, [r4, #0x15]
_0808CE52:
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r0, #0x2f
bgt _0808CE60
ldr r1, _0808CE64 @ =gUnk_02018EB0
movs r0, #1
strb r0, [r1, #0x1b]
_0808CE60:
pop {r4, pc}
.align 2, 0
_0808CE64: .4byte gUnk_02018EB0
thumb_func_start sub_0808CE68
sub_0808CE68: @ 0x0808CE68
push {r4, lr}
adds r4, r0, #0
bl UpdateAnimationSingleFrame
adds r0, r4, #0
bl LinearMoveUpdate
movs r1, #0x32
ldrsh r0, [r4, r1]
cmp r0, #0xc7
bgt _0808CE82
movs r0, #8
strb r0, [r4, #0x15]
_0808CE82:
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r0, #0xd0
ble _0808CE90
ldr r1, _0808CE94 @ =gUnk_02018EB0
movs r0, #1
strb r0, [r1, #0x1b]
_0808CE90:
pop {r4, pc}
.align 2, 0
_0808CE94: .4byte gUnk_02018EB0
thumb_func_start sub_0808CE98
sub_0808CE98: @ 0x0808CE98
push {r4, lr}
adds r4, r0, #0
bl UpdateAnimationSingleFrame
adds r0, r4, #0
bl LinearMoveUpdate
movs r0, #0x32
ldrsh r1, [r4, r0]
movs r0, #0x90
lsls r0, r0, #1
cmp r1, r0
ble _0808CEB8
ldr r1, _0808CEBC @ =gUnk_02018EB0
movs r0, #1
strb r0, [r1, #0x1b]
_0808CEB8:
pop {r4, pc}
.align 2, 0
_0808CEBC: .4byte gUnk_02018EB0
thumb_func_start sub_0808CEC0
sub_0808CEC0: @ 0x0808CEC0
push {r4, lr}
adds r4, r0, #0
bl UpdateAnimationSingleFrame
adds r0, r4, #0
bl LinearMoveUpdate
movs r1, #0x32
ldrsh r0, [r4, r1]
cmp r0, #0xc7
bgt _0808CEDA
movs r0, #0x18
strb r0, [r4, #0x15]
_0808CEDA:
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r0, #0xf
bgt _0808CEE8
ldr r1, _0808CEEC @ =gUnk_02018EB0
movs r0, #1
strb r0, [r1, #0x1b]
_0808CEE8:
pop {r4, pc}
.align 2, 0
_0808CEEC: .4byte gUnk_02018EB0

View File

@ -1,67 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start MacroShoes
MacroShoes: @ 0x080984CC
push {r4, lr}
adds r4, r0, #0
ldr r1, _080984E8 @ =gUnk_08123504
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
bl sub_0800445C
pop {r4, pc}
.align 2, 0
_080984E8: .4byte gUnk_08123504
thumb_func_start sub_080984EC
sub_080984EC: @ 0x080984EC
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
ldr r2, _08098528 @ =gUnk_081234EC
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
str r1, [r0, #0x48]
ldrb r0, [r0, #0xb]
cmp r0, #1
bne _08098524
ldr r0, _0809852C @ =0x00004024
movs r1, #0x82
lsls r1, r1, #3
movs r2, #1
bl SetTile
ldr r0, _08098530 @ =0x00004026
ldr r1, _08098534 @ =0x00000411
movs r2, #1
bl SetTile
ldr r0, _08098538 @ =0x00004025
ldr r1, _0809853C @ =0x00000412
movs r2, #1
bl SetTile
_08098524:
pop {pc}
.align 2, 0
_08098528: .4byte gUnk_081234EC
_0809852C: .4byte 0x00004024
_08098530: .4byte 0x00004026
_08098534: .4byte 0x00000411
_08098538: .4byte 0x00004025
_0809853C: .4byte 0x00000412
thumb_func_start nullsub_532
nullsub_532: @ 0x08098540
bx lr
.align 2, 0

View File

@ -43432,11 +43432,6 @@
"start": 1185352,
"size": 32
},
{
"path": "macroPlayer/gUnk_081216B4.bin",
"start": 1185460,
"size": 8
},
{
"path": "object3D/gUnk_081216C8_EU.bin",
"variants": [
@ -44718,11 +44713,6 @@
"size": 4,
"type": "animation"
},
{
"path": "macroDecorations/gUnk_081233C0.bin",
"start": 1192896,
"size": 80
},
{
"path": "animations/gSpriteAnimations_Object79_0.bin",
"start": 1192994,
@ -44758,16 +44748,6 @@
"size": 23,
"type": "animation"
},
{
"path": "macroShoes/gUnk_081234F4.bin",
"start": 1193204,
"size": 8
},
{
"path": "macroShoes/gUnk_081234FC.bin",
"start": 1193212,
"size": 8
},
{
"path": "animations/gSpriteAnimations_PicoBloom_0.bin",
"start": 1193338,
@ -44939,11 +44919,6 @@
"size": 41,
"type": "animation"
},
{
"path": "macroBook/gUnk_08123C90.bin",
"start": 1195152,
"size": 40
},
{
"path": "object91/gUnk_08123DDC.bin",
"start": 1195484,

View File

@ -1,9 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081242C8:: @ 081242C8
.4byte sub_0809E518
.4byte nullsub_125

View File

@ -1,14 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08123C80:: @ 08123C80
.4byte sub_0809A78C
.4byte sub_0809A7F4
.4byte sub_0809A844
.4byte sub_0809A8A4
gUnk_08123C90:: @ 08123C90
.incbin "macroBook/gUnk_08123C90.bin"

View File

@ -1,12 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081233B8:: @ 081233B8
.4byte sub_08097DEC
.4byte sub_08097EA4
gUnk_081233C0:: @ 081233C0
.incbin "macroDecorations/gUnk_081233C0.bin"

View File

@ -1,9 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08121668:: @ 08121668
.4byte sub_0808C964
.4byte sub_0808CA10

View File

@ -1,25 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_08121680:: @ 08121680
.4byte sub_0808CAFC
.4byte sub_0808CB1C
gUnk_08121688:: @ 08121688
.4byte sub_0808CBE8
.4byte sub_0808CCBC
.4byte sub_0808CD00
.4byte sub_0808CD44
.4byte sub_0808CD88
.4byte sub_0808CDDC
.4byte sub_0808CDF8
.4byte sub_0808CE38
.4byte sub_0808CE68
.4byte sub_0808CE98
.4byte sub_0808CEC0
gUnk_081216B4:: @ 081216B4
.incbin "macroPlayer/gUnk_081216B4.bin"

View File

@ -1,19 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnk_081234EC:: @ 081234EC
.4byte gUnk_081234F4
.4byte gUnk_081234FC
gUnk_081234F4:: @ 081234F4
.incbin "macroShoes/gUnk_081234F4.bin"
gUnk_081234FC:: @ 081234FC
.incbin "macroShoes/gUnk_081234FC.bin"
gUnk_08123504:: @ 08123504
.4byte sub_080984EC
.4byte nullsub_532

View File

@ -701,11 +701,11 @@ SECTIONS {
src/object/jarPortal.o(.text);
src/object/bossDoor.o(.text);
asm/object/object3A.o(.text);
asm/object/macroMushroomStalks.o(.text);
src/object/macroMushroomStalks.o(.text);
asm/object/object75.o(.text); /* 75 and 76 are mislocated in object table */
asm/object/object76.o(.text);
asm/object/code_0808C964.o(.text);
asm/object/macroPlayer.o(.text);
src/object/macroPlayer.o(.text);
asm/object/object3D.o(.text);
src/object/object3E.o(.text);
src/object/giantLeaf.o(.text);
@ -764,11 +764,11 @@ SECTIONS {
src/object/lilypadSmall.o(.text);
asm/object/object74.o(.text);
src/object/bell.o(.text);
asm/object/macroDecorations.o(.text);
src/object/macroDecorations.o(.text);
asm/object/object79.o(.text);
src/object/steam.o(.text);
src/object/pushableLever.o(.text);
asm/object/macroShoes.o(.text);
src/object/macroShoes.o(.text);
src/object/objectOnSpinyBeetle.o(.text);
src/object/object7E.o(.text);
asm/object/picoBloom.o(.text);
@ -780,7 +780,7 @@ SECTIONS {
src/object/bigIceBlock.o(.text);
src/object/object86.o(.text);
src/object/octorokBossObject.o(.text);
asm/object/macroBook.o(.text);
src/object/macroBook.o(.text);
asm/object/mazaalBossObject.o(.text);
src/object/cabinFurniture.o(.text);
src/object/doubleBookshelf.o(.text);
@ -799,7 +799,7 @@ SECTIONS {
src/object/keyStealingTakkuri.o(.text);
asm/object/object98.o(.text);
asm/object/object99.o(.text);
asm/object/macroAcorn.o(.text);
src/object/macroAcorn.o(.text);
asm/object/object9B.o(.text);
src/object/treeHidingPortal.o(.text);
asm/object/treeHidingPortal.o(.text);
@ -1437,10 +1437,10 @@ SECTIONS {
src/object/bossDoor.o(.rodata);
data/animations/object/bossDoor.o(.rodata);
data/const/object/object3A.o(.rodata);
data/const/object/macroMushroomStalks.o(.rodata);
src/object/macroMushroomStalks.o(.rodata);
data/const/object/object75.o(.rodata);
data/const/object/object76.o(.rodata);
data/const/object/macroPlayer.o(.rodata);
src/object/macroPlayer.o(.rodata);
data/const/object/object3D.o(.rodata);
src/object/object3E.o(.rodata);
data/const/object/giantLeaf.o(.rodata);
@ -1510,13 +1510,13 @@ SECTIONS {
data/const/object/object74.o(.rodata);
data/const/object/bell.o(.rodata);
data/animations/object/bell.o(.rodata);
data/const/object/macroDecorations.o(.rodata);
src/object/macroDecorations.o(.rodata);
data/const/object/object79.o(.rodata);
data/animations/object/object79.o(.rodata);
src/object/steam.o(.rodata);
src/object/pushableLever.o(.rodata);
data/animations/object/pushableLever.o(.rodata);
data/const/object/macroShoes.o(.rodata);
src/object/macroShoes.o(.rodata);
src/object/objectOnSpinyBeetle.o(.rodata);
data/const/object/picoBloom.o(.rodata);
data/animations/object/picoBloom.o(.rodata);
@ -1533,7 +1533,7 @@ SECTIONS {
data/const/object/object86.o(.rodata);
data/animations/object/object86.o(.rodata);
src/object/octorokBossObject.o(.rodata);
data/const/object/macroBook.o(.rodata);
src/object/macroBook.o(.rodata);
data/animations/object/macroBook.o(.rodata);
data/const/object/mazaalBossObject.o(.rodata);
src/object/cabinFurniture.o(.rodata);
@ -1554,7 +1554,7 @@ SECTIONS {
src/object/keyStealingTakkuri.o(.rodata);
data/const/object/object98.o(.rodata);
data/animations/object/object98.o(.rodata);
data/const/object/macroAcorn.o(.rodata);
src/object/macroAcorn.o(.rodata);
data/const/object/object9B.o(.rodata);
data/animations/object/object9B.o(.rodata);
data/const/object/treeHidingPortal.o(.rodata);

99
src/object/macroAcorn.c Normal file
View File

@ -0,0 +1,99 @@
#include "entity.h"
#include "coord.h"
#include "object.h"
void sub_0809E518(Entity*);
void nullsub_125(Entity*);
void sub_0809E5F0(Entity*);
void MacroAcorn(Entity* this) {
static void (*const actionFuncs[])(Entity*) = {
sub_0809E518,
nullsub_125,
};
actionFuncs[this->action](this);
}
void sub_0809E518(Entity* this) {
u32 bVar2;
Entity* pEVar3;
this->action = 1;
if (this->type == 0xff) {
this->frameIndex = this->type2;
} else {
bVar2 = (this->type & 1) ? 4 : 0;
if ((this->type & 2)) {
if (gEntCount < 0x45) {
this->frameIndex = bVar2;
pEVar3 = CreateObject(HUGE_ACORN, 0xff, ++bVar2);
CopyPosition(this, pEVar3);
pEVar3 = CreateObject(HUGE_ACORN, 0xff, ++bVar2);
PositionRelative(this, pEVar3, 0, 0x10000);
pEVar3->spriteOffsetY = -1;
pEVar3 = CreateObject(HUGE_ACORN, 0xff, ++bVar2);
CopyPosition(this, pEVar3);
} else {
DeleteThisEntity();
}
} else {
pEVar3 = CreateObject(HUGE_ACORN, 0xff, bVar2 + 1);
if (pEVar3 == NULL) {
DeleteThisEntity();
} else {
this->frameIndex = bVar2;
CopyPosition(this, pEVar3);
}
}
sub_0809E5F0(this);
}
if ((this->frameIndex & 1) != 0) {
this->spriteRendering.b3 = 3;
this->spritePriority.b0 = 7;
}
}
void nullsub_125(Entity* this) {
}
void sub_0809E5F0(Entity* this) {
u32 position = COORD_TO_TILE(this);
this->field_0x80.HWORD = position;
switch (this->type) {
case 2:
SetTile(0x4022, position - 0x3d, 1);
SetTile(0x406d, position - 0x3c, 1);
case 0:
SetTile(0x406c, position - 0x42, 1);
SetTile(0x4022, position - 0x41, 1);
SetTile(0x4022, position - 0x40, 1);
SetTile(0x4022, position - 0x3f, 1);
SetTile(0x4022, position - 2, 1);
SetTile(0x4022, position - 1, 1);
SetTile(0x4022, position, 1);
SetTile(0x4022, position + 1, 1);
SetTile(0x406e, position + 0x3e, 1);
SetTile(0x4022, position + 0x3f, 1);
SetTile(0x4022, position + 0x40, 1);
SetTile(0x406f, position + 0x41, 1);
break;
case 3:
SetTile(0x4022, position - 0x44, 1);
SetTile(0x406c, position - 0x45, 1);
case 1:
SetTile(0x4022, position - 0x42, 1);
SetTile(0x4022, position - 0x41, 1);
SetTile(0x4022, position - 0x40, 1);
SetTile(0x406d, position - 0x3f, 1);
SetTile(0x4022, position - 2, 1);
SetTile(0x4022, position - 1, 1);
SetTile(0x4022, position, 1);
SetTile(0x4022, position + 1, 1);
SetTile(0x406e, position + 0x3e, 1);
SetTile(0x4022, position + 0x3f, 1);
SetTile(0x4022, position + 0x40, 1);
SetTile(0x406f, position + 0x41, 1);
break;
}
}

208
src/object/macroBook.c Normal file
View File

@ -0,0 +1,208 @@
#define NENT_DEPRECATED
#include "entity.h"
#include "functions.h"
#include "flags.h"
#include "asm.h"
#include "npc.h"
typedef struct {
Entity base;
u8 filler[0x10];
u16 playerWithinRect;
u8 filler2[0x6];
u16 unk80;
u16 tilePos;
} MacroBookEntity;
void MacroBook_Init(MacroBookEntity*);
void MacroBook_Action1(MacroBookEntity*);
void MacroBook_Action2(MacroBookEntity*);
void MacroBook_Action3(MacroBookEntity*);
void sub_0809A958(MacroBookEntity*);
void sub_0809AA00(MacroBookEntity*);
void sub_0809A9D4(MacroBookEntity*);
void sub_0809AA9C(MacroBookEntity*, Entity*, u32);
void MacroBook(Entity* this) {
static void (*const actionFuncs[])(MacroBookEntity*) = {
MacroBook_Init,
MacroBook_Action1,
MacroBook_Action2,
MacroBook_Action3,
};
actionFuncs[this->action]((MacroBookEntity*)this);
}
void MacroBook_Init(MacroBookEntity* this) {
super->action = 1;
super->actionDelay = 0x80;
super->field_0xf = 0;
super->spriteRendering.b0 = 3;
this->unk80 = 0x80;
this->playerWithinRect = 0;
super->x.HALF.HI -= 4;
super->spriteOffsetY = -4;
super->spritePriority.b0 = 7;
super->spriteRendering.b3 = 3;
sub_0805EC9C(super, this->unk80, this->unk80, 0);
UpdateSpriteForCollisionLayer(super);
InitAnimationForceUpdate(super, super->field_0xf);
sub_0809A958(this);
}
void MacroBook_Action1(MacroBookEntity* this) {
UpdateAnimationSingleFrame(super);
sub_0809AA00(this);
if (super->actionDelay) {
super->actionDelay--;
} else {
if ((super->frame & 0x80) != 0) {
if (super->field_0xf == 3) {
super->action = 2;
super->actionDelay = 90;
super->field_0xf = 0;
InitAnimationForceUpdate(super, 2);
} else {
InitAnimationForceUpdate(super, super->field_0xf);
}
}
}
}
void MacroBook_Action2(MacroBookEntity* this) {
UpdateAnimationSingleFrame(super);
sub_0809AA00(this);
if (super->field_0xf < 2) {
super->action = 1;
super->actionDelay = 0;
} else if (super->actionDelay) {
super->actionDelay--;
if (gPlayerClones[0] != 0) {
return;
}
super->action = 1;
super->actionDelay = 0;
} else {
if ((super->frame & 0x80) == 0) {
return;
}
super->action = 3;
super->actionDelay = 0;
InitAnimationForceUpdate(super, 3);
RequestPriorityDuration(super, 0x78);
}
}
void MacroBook_Action3(MacroBookEntity* this) {
switch (super->frame & 0xe0) {
case 0x80:
if (super->frameDuration == 0) {
DeleteThisEntity();
}
break;
case 0x40:
super->frame &= 0xbf;
sub_0809A9D4(this);
break;
case 0x20:
super->actionDelay++;
super->frame &= 0xdf;
SetPlayerControl(0xff);
SetGlobalFlag(0x2a);
default:
UpdateAnimationSingleFrame(super);
break;
}
if (super->actionDelay) {
this->unk80 += 8;
super->x.WORD += 0x400;
sub_0805EC9C(super, this->unk80, this->unk80, 0);
} else {
sub_0809AA9C(this, super->child, 0);
sub_0809AA9C(this, &gPlayerEntity, 1);
if (gPlayerClones[0] != NULL) {
sub_0809AA9C(this, gPlayerClones[0], 1);
}
}
}
void sub_0809A958(MacroBookEntity* this) {
static const u16 tileIndices[] = {
0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0x4074,
0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0x4074, 0, 0, 0x4022, 0x4022,
};
int index;
int index2;
int tilePos;
const u16* tileIndexPtr;
this->tilePos = COORD_TO_TILE_OFFSET(super, -4, 0);
tilePos = this->tilePos - 0x82;
tileIndexPtr = tileIndices;
for (index = 0; index < 5; index++, tilePos += 0x40) {
for (index2 = 0; index2 < 4; index2++, tileIndexPtr++) {
if ((*tileIndexPtr & 0x4000) != 0) {
SetTile(*tileIndexPtr, tilePos + index2, 1);
}
}
}
}
void sub_0809A9D4(MacroBookEntity* this) {
int index;
int index2;
int tilePos;
tilePos = this->tilePos - 0x82;
for (index = 0; index < 5; index++, tilePos += 0x40) {
for (index2 = 0; index2 < 4; index2++) {
sub_0807BA8C(tilePos + index2, 1);
}
}
}
void sub_0809AA00(MacroBookEntity* this) {
Entity* ent;
super->field_0xf = 0;
if (super->child == NULL) {
for (ent = FindEntityByID(NPC, TOWN_MINISH, 7); ent != NULL; ent = FindNextDuplicateID(ent, NPC)) {
if (ent->type == 0 && ent->type2 == 8) {
super->child = ent;
}
}
} else {
sub_0809AA9C(this, super->child, 0);
}
ent = &gPlayerEntity;
this->playerWithinRect = EntityInRectRadius(super, ent, 0x20, 0x22);
if (this->playerWithinRect != 0) {
sub_0809AA9C(this, ent, 1);
ent = gPlayerClones[0];
if (ent != NULL) {
sub_0809AA9C(this, ent, 1);
}
}
}
void sub_0809AA9C(MacroBookEntity* this, Entity* ent, u32 arg3) {
u32 bVar1;
bVar1 = super->frame & 3;
if (bVar1 == 1) {
ent->spriteOffsetY = bVar1;
} else if (bVar1 == 2) {
ent->spriteOffsetY = bVar1;
} else {
ent->spriteOffsetY = 0;
}
if (ent->x.HALF.HI <= gRoomControls.origin_x + 0x15a) {
super->field_0xf++;
ent->spriteOffsetY++;
}
}

View File

@ -0,0 +1,112 @@
#define NENT_DEPRECATED
#include "entity.h"
#include "room.h"
#include "asm.h"
typedef struct {
Entity base;
u8 filler[8];
s16 y2;
} MacroDecorationEntity;
void sub_08097DEC(MacroDecorationEntity*);
void sub_08097EA4(MacroDecorationEntity*);
void sub_08097EB8(MacroDecorationEntity*);
void sub_08097F34(MacroDecorationEntity*);
void sub_08097F10(MacroDecorationEntity*);
s32 sub_08097F60(MacroDecorationEntity*, s32);
void MacroDecoration(Entity* this) {
static void (*const actionFuncs[])(MacroDecorationEntity*) = {
sub_08097DEC,
sub_08097EA4,
};
actionFuncs[this->action]((MacroDecorationEntity*)this);
}
void sub_08097DEC(MacroDecorationEntity* this) {
u32 bVar1;
u32 uVar2;
super->action = 1;
UpdateSpriteForCollisionLayer(super);
switch (super->type) {
case 0:
super->x.HALF.HI &= 0xfff0;
super->y.HALF.HI &= 0xfff0;
sub_08097EB8(this);
if (super->type2 == 0) {
return;
}
ChangeObjPalette(super, super->type2 + 0xb);
return;
case 1:
bVar1 = super->frameIndex = super->type2;
bVar1 = (bVar1 << 0x18) >> 0x19;
switch ((s32)bVar1) {
case 2:
ChangeObjPalette(super, 0xd);
case 0:
super->spriteOrientation.flipY = 1;
break;
case 1:
super->spriteOrientation.flipY = 2;
super->spritePriority.b0 = 3;
ChangeObjPalette(super, 0xb);
break;
}
break;
case 2:
case 3:
super->frameIndex = super->type2;
super->spriteSettings.draw = 3;
break;
default:
return;
}
sub_08097F34(this);
}
void sub_08097EA4(MacroDecorationEntity* this) {
if (super->type) {
sub_08097F10(this);
}
}
void sub_08097EB8(MacroDecorationEntity* this) {
static const s16 tilePosArray[] = {
0xff7e, 0x4089, 0xff7f, 0x4022, 0xff80, 0x4022, 0xff81, 0x408a, 0xffbe, 0x4022, 0xffbf, 0x4022, 0xffc0, 0x4022,
0xffc1, 0x4022, 0xfffe, 0x4022, 0xffff, 0x4022, 0, 0x4022, 1, 0x4022, 2, 0x408b, 0x3e, 0x4022,
0x3f, 0x4022, 0x40, 0x4026, 0x41, 0x4022, 0x7e, 0x408c, 0x7f, 0x408c, 0x7fff, 0xffff,
};
const s16* tilePosPtr;
u16 tile = COORD_TO_TILE(super);
for (tilePosPtr = tilePosArray; *tilePosPtr != 0x7fff; tilePosPtr += 2) {
SetTile((u16)tilePosPtr[1], tile + tilePosPtr[0], 1);
}
}
void sub_08097F10(MacroDecorationEntity* this) {
super->y.HALF.HI = this->y2 - sub_08097F60(this, gRoomControls.scroll_y - gRoomControls.origin_y);
}
void sub_08097F34(MacroDecorationEntity* this) {
this->y2 = super->y.HALF.HI + sub_08097F60(this, super->y.HALF.HI - gRoomControls.origin_y);
sub_08097F10(this);
}
s32 sub_08097F60(MacroDecorationEntity* this, s32 arg2) {
switch (super->type) {
case 1:
if (super->frameIndex >> 1 == 1) {
arg2 >>= 3;
break;
}
case 2:
case 3:
arg2 >>= 1;
}
return arg2;
}

View File

@ -0,0 +1,12 @@
#include "entity.h"
void sub_0808C964(Entity*);
void sub_0808CA10(Entity*);
void MacroMushromStalks(Entity* this) {
static void (*const actionFuncs[])(Entity*) = {
sub_0808C964,
sub_0808CA10,
};
actionFuncs[this->action](this);
}

251
src/object/macroPlayer.c Normal file
View File

@ -0,0 +1,251 @@
#define NENT_DEPRECATED
#include "entity.h"
#include "coord.h"
#include "functions.h"
#include "object.h"
#include "area.h"
typedef struct {
Entity base;
union SplitHWord unk68;
u16 unk6a;
} MacroPlayerEntity;
extern u8 gUnk_02018EB0[];
extern int sub_0807A094(int);
void MacroPlayer_Type0(MacroPlayerEntity*);
void MacroPlayer_Type1(MacroPlayerEntity*);
void MacroPlayer_Type0_Init(MacroPlayerEntity*);
void MacroPlayer_Type0_Action1(MacroPlayerEntity*);
void MacroPlayer_Type0_Action2(MacroPlayerEntity*);
void MacroPlayer_Type0_Action3(MacroPlayerEntity*);
void MacroPlayer_Type0_Action4(MacroPlayerEntity*);
void MacroPlayer_Type0_Action5(MacroPlayerEntity*);
void MacroPlayer_Type0_Action6(MacroPlayerEntity*);
void MacroPlayer_Type0_Action7(MacroPlayerEntity*);
void MacroPlayer_Type0_Action8(MacroPlayerEntity*);
void MacroPlayer_Type0_Action9(MacroPlayerEntity*);
void MacroPlayer_Type0_Action10(MacroPlayerEntity*);
void sub_0808CB9C(MacroPlayerEntity*);
void MacroPlayer(Entity* this) {
static void (*const typeFuncs[])(MacroPlayerEntity*) = {
MacroPlayer_Type0,
MacroPlayer_Type1,
};
typeFuncs[this->type]((MacroPlayerEntity*)this);
}
void MacroPlayer_Type0(MacroPlayerEntity* this) {
static void (*const actionFuncs[])(MacroPlayerEntity*) = {
MacroPlayer_Type0_Init, MacroPlayer_Type0_Action1, MacroPlayer_Type0_Action2, MacroPlayer_Type0_Action3,
MacroPlayer_Type0_Action4, MacroPlayer_Type0_Action5, MacroPlayer_Type0_Action6, MacroPlayer_Type0_Action7,
MacroPlayer_Type0_Action8, MacroPlayer_Type0_Action9, MacroPlayer_Type0_Action10,
};
actionFuncs[super->action](this);
sub_0808CB9C(this);
}
void MacroPlayer_Type1(MacroPlayerEntity* this) {
Entity* pEVar1;
if (super->action == 0) {
super->action = 1;
super->spriteSettings.draw = 3;
super->spriteIndex = 0xa7;
super->frameIndex = 13;
super->spriteVramOffset = 1;
super->palette.b.b0 = 5;
super->spriteRendering.b3 = 0;
super->spritePriority.b0 = 0;
super->spriteOrientation.flipY = 2;
}
pEVar1 = super->parent;
super->x = pEVar1->x;
super->y = pEVar1->y;
super->z.WORD = 0;
SortEntityBelow(pEVar1, super);
if (super->subAction != 0) {
super->spriteVramOffset = 0;
super->subAction = 0;
super->frameIndex = 4;
}
}
void sub_0808CB9C(MacroPlayerEntity* this) {
u32 uVar1;
u32 uVar2;
u32 uVar3;
u32 uVar4;
u32 val;
uVar2 = this->unk68.HWORD;
uVar1 = this->unk68.HALF.LO;
uVar4 = uVar2 >> 8;
val = 0;
uVar3 = super->animationState;
val = uVar3 > 4;
super->spriteSettings.flipX = val;
if (uVar1 < 0xb8) {
uVar1 += super->animationState >> 1;
}
if ((uVar4 != (u16)super->spriteIndex) || (uVar1 != super->animIndex)) {
super->spriteIndex = uVar4;
InitAnimationForceUpdate(super, uVar1);
}
}
void MacroPlayer_Type0_Init(MacroPlayerEntity* this) {
Entity* pEVar1;
u8* ptr;
super->action++;
super->spriteSettings.draw = 1;
super->animationState = 4;
super->spriteRendering.b3 = 0;
super->spritePriority.b0 = 0;
super->spriteOrientation.flipY = 2;
this->unk68.HWORD = 0x114;
super->animIndex = 0xff;
super->z.HALF.HI = 0xff50;
this->unk6a = 4;
super->spriteRendering.b0 = 3;
sub_0805EC9C(super, 4, 4, 0);
ptr = gUnk_02018EB0;
*(Entity**)&ptr[0x14] = super;
ChangeObjPalette(super, sub_0807A094(0));
pEVar1 = CreateObject(PORTAL_FALLING_PLAYER, 1, 0);
if (pEVar1 != NULL) {
pEVar1->parent = super;
super->child = pEVar1;
}
}
void sub_0808CC88(MacroPlayerEntity* this) {
if (this->unk6a < 0x400) {
this->unk6a += 4;
sub_0805EC9C(super, this->unk6a, this->unk6a, 0);
sub_0806FCF4(super, this->unk6a, 8, 2);
}
}
void MacroPlayer_Type0_Action1(MacroPlayerEntity* this) {
sub_0808CC88(this);
if (GravityUpdate(super, 0x1000) == 0) {
super->action++;
super->direction = DirectionSouthWest;
super->speed = 0x100;
super->zVelocity = 0x30000;
super->spriteSettings.shadow = 0;
super->child->subAction = 1;
gUnk_02018EB0[0x18] = 1;
}
}
void MacroPlayer_Type0_Action2(MacroPlayerEntity* this) {
sub_0808CC88(this);
UpdateAnimationSingleFrame(super);
if (GravityUpdate(super, 0x2000)) {
LinearMoveUpdate(super);
} else {
super->action++;
super->direction = 10;
super->speed = 0xc0;
super->zVelocity = 0x28000;
gUnk_02018EB0[0x19] = 1;
}
}
void MacroPlayer_Type0_Action3(MacroPlayerEntity* this) {
sub_0808CC88(this);
UpdateAnimationSingleFrame(super);
if (GravityUpdate(super, 0x2000)) {
LinearMoveUpdate(super);
} else {
super->action++;
super->direction = 17;
super->speed = 0x100;
super->zVelocity = 0x24000;
gUnk_02018EB0[0x1a] = 1;
}
}
void MacroPlayer_Type0_Action4(MacroPlayerEntity* this) {
sub_0808CC88(this);
if (GravityUpdate(super, 0x1800)) {
UpdateAnimationSingleFrame(super);
LinearMoveUpdate(super);
if (super->x.HALF.HI < 0x80) {
super->x.HALF.HI = 0x80;
}
} else {
super->action++;
super->actionDelay = 60;
this->unk68.HWORD = 0xc04;
DeleteEntity(super->child);
sub_0805EC60(super);
}
}
void MacroPlayer_Type0_Action5(MacroPlayerEntity* this) {
if (--super->actionDelay == 0) {
super->action++;
super->actionDelay = 0x10;
}
}
void MacroPlayer_Type0_Action6(MacroPlayerEntity* this) {
static const u8 gUnk_081216B4[] = { 0, 0x1a, 0x2, 0x5, 0x4, 0x11, 0x6, 0x1a };
u32 uVar2;
if (--super->actionDelay == 0) {
uVar2 = gArea.curPortalExitDirection;
super->action += 1;
super->action += uVar2;
super->animationState = gUnk_081216B4[uVar2 * 2];
super->direction = gUnk_081216B4[uVar2 * 2 + 1];
super->speed = 0x140;
}
}
void MacroPlayer_Type0_Action7(MacroPlayerEntity* this) {
UpdateAnimationSingleFrame(super);
LinearMoveUpdate(super);
if (super->y.HALF.HI < 200) {
super->direction = DirectionWest;
}
if (super->x.HALF.HI < 0x30) {
gUnk_02018EB0[0x1b] = 1;
}
}
void MacroPlayer_Type0_Action8(MacroPlayerEntity* this) {
UpdateAnimationSingleFrame(super);
LinearMoveUpdate(super);
if (super->y.HALF.HI < 200) {
super->direction = DirectionEast;
}
if (super->x.HALF.HI > 0xd0) {
gUnk_02018EB0[0x1b] = 1;
}
}
void MacroPlayer_Type0_Action9(MacroPlayerEntity* this) {
UpdateAnimationSingleFrame(super);
LinearMoveUpdate(super);
if (super->y.HALF.HI > 0x120) {
gUnk_02018EB0[0x1b] = 1;
}
}
void MacroPlayer_Type0_Action10(MacroPlayerEntity* this) {
UpdateAnimationSingleFrame(super);
LinearMoveUpdate(super);
if (super->y.HALF.HI < 200) {
super->direction = DirectionWest;
}
if (super->x.HALF.HI < 0x10) {
gUnk_02018EB0[0x1b] = 1;
}
}

44
src/object/macroShoes.c Normal file
View File

@ -0,0 +1,44 @@
#include "entity.h"
#include "asm.h"
void sub_0800445C(Entity*);
void MacroShoes_Init(Entity*);
void MacroShoes_Idle(Entity*);
static const Hitbox MacroShoes_Type0Hitbox;
static const Hitbox MacroShoes_Type1Hitbox;
static const Hitbox* const MacroShoes_TypeHitboxes[] = {
&MacroShoes_Type0Hitbox,
&MacroShoes_Type1Hitbox,
};
static const Hitbox MacroShoes_Type0Hitbox = {
0, 0, { 4, 0, 0, 0 }, 0x34, 0x20,
};
static const Hitbox MacroShoes_Type1Hitbox = {
0, 0, { 4, 0, 0, 0 }, 0x30, 0x10,
};
void MacroShoes(Entity* this) {
static void (*const actionFuncs[])(Entity*) = {
MacroShoes_Init,
MacroShoes_Idle,
};
actionFuncs[this->action](this);
sub_0800445C(this);
}
void MacroShoes_Init(Entity* this) {
this->action = 1;
this->hitbox = (Hitbox*)MacroShoes_TypeHitboxes[this->type];
if (this->type2 == 1) {
SetTile(0x4024, 0x410, 1);
SetTile(0x4026, 0x411, 1);
SetTile(0x4025, 0x412, 1);
}
}
void MacroShoes_Idle(Entity* this) {
}