mirror of https://github.com/zeldaret/tmc.git
rupeeLike.c OK
This commit is contained in:
parent
f4320b6fcd
commit
2d286c0b34
|
@ -237,7 +237,7 @@ sub_08030338: @ 0x08030338
|
|||
_0803034C:
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x84
|
||||
ldr r0, [r0]
|
||||
|
|
|
@ -68,7 +68,7 @@ _08001230:
|
|||
beq _0800123E
|
||||
strb r1, [r0, #0xe]
|
||||
movs r1, #4
|
||||
ldr r3, _0800135C @ =InitializeAnimationAnimation
|
||||
ldr r3, _0800135C @ =UpdateAnimationVariableFrames
|
||||
bx r3
|
||||
_0800123E:
|
||||
ldr r3, _08001360 @ =sub_080043B4
|
||||
|
@ -238,7 +238,7 @@ _08001352:
|
|||
bx lr
|
||||
.align 2, 0
|
||||
_08001358: .4byte gEnemyFunctions
|
||||
_0800135C: .4byte InitializeAnimationAnimation
|
||||
_0800135C: .4byte UpdateAnimationVariableFrames
|
||||
_08001360: .4byte sub_080043B4
|
||||
_08001364: .4byte 0x00001800
|
||||
_08001368: .4byte gUnk_080012C8
|
||||
|
|
|
@ -431,8 +431,8 @@ InitializeAnimation: @ 0x08004260
|
|||
GetNextFrame: @ 0x08004274
|
||||
movs r1, #1
|
||||
|
||||
non_word_aligned_thumb_func_start InitializeAnimationAnimation
|
||||
InitializeAnimationAnimation: @ 0x08004276
|
||||
non_word_aligned_thumb_func_start UpdateAnimationVariableFrames
|
||||
UpdateAnimationVariableFrames: @ 0x08004276
|
||||
movs r3, #0x59
|
||||
ldrb r2, [r0, r3]
|
||||
subs r2, r2, r1
|
||||
|
@ -478,7 +478,7 @@ UpdateAnimationSingleFrame: @ 0x080042B8
|
|||
non_word_aligned_thumb_func_start sub_080042BA
|
||||
sub_080042BA: @ 0x080042BA
|
||||
push {lr}
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
_080042C0:
|
||||
pop {r1}
|
||||
mov lr, r1
|
||||
|
|
|
@ -97,8 +97,8 @@ InitializeAnimation: @ 0x08004260
|
|||
GetNextFrame: @ 0x08004274
|
||||
movs r1, #1
|
||||
|
||||
non_word_aligned_thumb_func_start InitializeAnimationAnimation
|
||||
InitializeAnimationAnimation: @ 0x08004276
|
||||
non_word_aligned_thumb_func_start UpdateAnimationVariableFrames
|
||||
UpdateAnimationVariableFrames: @ 0x08004276
|
||||
movs r3, #0x59
|
||||
ldrb r2, [r0, r3]
|
||||
subs r2, r2, r1
|
||||
|
@ -144,7 +144,7 @@ UpdateAnimationSingleFrame: @ 0x080042B8
|
|||
non_word_aligned_thumb_func_start sub_080042BA
|
||||
sub_080042BA: @ 0x080042BA
|
||||
push {lr}
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
_080042C0:
|
||||
pop {r1}
|
||||
mov lr, r1
|
||||
|
|
|
@ -671,7 +671,7 @@ SetSpriteSubEntryOffsetData1: @ 0x0806FF88
|
|||
adds r4, r4, r2
|
||||
ldrh r0, [r5, #2]
|
||||
ldrb r1, [r5, #1]
|
||||
bl sub_080700C8
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
ldrb r1, [r5, #6]
|
||||
ldrb r2, [r0]
|
||||
adds r1, r1, r2
|
||||
|
@ -715,7 +715,7 @@ SetSpriteSubEntryOffsetData2: @ 0x0806FFD8
|
|||
adds r4, r4, r2
|
||||
ldrh r0, [r5, #2]
|
||||
ldrb r1, [r5, #1]
|
||||
bl sub_080700C8
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
ldrb r1, [r5, #6]
|
||||
ldrb r2, [r0, #2]
|
||||
adds r1, r1, r2
|
||||
|
@ -826,8 +826,8 @@ _080700C4:
|
|||
_080700C6:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_080700C8
|
||||
sub_080700C8: @ 0x080700C8
|
||||
thumb_func_start GetSpriteSubEntryOffsetDataPointer
|
||||
GetSpriteSubEntryOffsetDataPointer: @ 0x080700C8
|
||||
lsls r0, r0, #1
|
||||
ldr r2, _080700E4 @ =gUnk_089FB780
|
||||
adds r0, r0, r2
|
||||
|
|
|
@ -1131,7 +1131,7 @@ sub_08070F50: @ 0x08070F50
|
|||
bl PositionEntityOnTop
|
||||
ldrh r0, [r4, #0x12]
|
||||
ldrb r1, [r4, #0x1e]
|
||||
bl sub_080700C8
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
ldrb r1, [r0]
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x62
|
||||
|
|
|
@ -9785,7 +9785,7 @@ _080AA052:
|
|||
_080AA05E:
|
||||
ldrh r0, [r5, #0x12]
|
||||
ldrb r1, [r5, #0x1e]
|
||||
bl sub_080700C8
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r5, #0x14]
|
||||
movs r0, #4
|
||||
|
@ -9989,7 +9989,7 @@ _080AA1EC:
|
|||
bne _080AA26C
|
||||
ldrh r0, [r4, #0x12]
|
||||
ldrb r1, [r4, #0x1e]
|
||||
bl sub_080700C8
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
adds r3, r0, #0
|
||||
ldrb r1, [r4, #0x14]
|
||||
movs r0, #4
|
||||
|
|
|
@ -391,7 +391,7 @@ _08048C6C:
|
|||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
movs r1, #7
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
adds r1, r6, #0
|
||||
ldrb r4, [r4, #0xa]
|
||||
lsls r1, r4
|
||||
|
@ -419,7 +419,7 @@ _08048CBC:
|
|||
movs r1, #0x1c
|
||||
ands r1, r0
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
_08048CE4:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
|
|
|
@ -238,7 +238,7 @@ sub_0802BD10: @ 0x0802BD10
|
|||
ands r1, r2
|
||||
strb r1, [r0, #0x10]
|
||||
movs r1, #2
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
|
@ -380,7 +380,7 @@ sub_0802BE18: @ 0x0802BE18
|
|||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
|
|
|
@ -412,7 +412,7 @@ sub_0802805C: @ 0x0802805C
|
|||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
bl sub_0807953C
|
||||
cmp r0, #0
|
||||
beq _0802807E
|
||||
|
@ -454,7 +454,7 @@ _0802809C:
|
|||
bl PositionRelative
|
||||
ldrh r0, [r5, #0x12]
|
||||
ldrb r1, [r5, #0x1e]
|
||||
bl sub_080700C8
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
ldrb r1, [r0]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x62
|
||||
|
|
|
@ -23,7 +23,7 @@ Object29: @ 0x08089848
|
|||
ands r1, r0
|
||||
adds r1, #1
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08089870: .4byte gUnk_08120D90
|
||||
|
|
|
@ -2269,7 +2269,7 @@ _08095BAC:
|
|||
strb r0, [r5, #0x18]
|
||||
ldrh r0, [r2, #0x12]
|
||||
ldrb r1, [r2, #0x1e]
|
||||
bl sub_080700C8
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
ldrb r1, [r0]
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x62
|
||||
|
|
|
@ -256,7 +256,7 @@ _080A273C:
|
|||
bl PositionEntityOnTop
|
||||
ldrh r0, [r4, #0x12]
|
||||
ldrb r1, [r4, #0x1e]
|
||||
bl sub_080700C8
|
||||
bl GetSpriteSubEntryOffsetDataPointer
|
||||
ldrb r1, [r0]
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x62
|
||||
|
|
|
@ -133,7 +133,7 @@ _08037D1C:
|
|||
_08037D26:
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
adds r0, r4, #0
|
||||
bl sub_080AEF88
|
||||
cmp r0, #0
|
||||
|
@ -158,7 +158,7 @@ sub_08037D54: @ 0x08037D54
|
|||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x5a
|
||||
ldrb r1, [r2]
|
||||
|
|
|
@ -403,7 +403,7 @@ sub_08020220: @ 0x08020220
|
|||
movs r1, #4
|
||||
subs r1, r1, r0
|
||||
adds r0, r5, #0
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
b _08020292
|
||||
_0802024C:
|
||||
movs r0, #3
|
||||
|
@ -437,7 +437,7 @@ _08020284:
|
|||
_0802028A:
|
||||
adds r0, r5, #0
|
||||
movs r1, #4
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
_08020292:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
|
@ -495,7 +495,7 @@ _080202F8:
|
|||
_080202FE:
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08020308
|
||||
|
@ -533,7 +533,7 @@ _08020340:
|
|||
bl sub_080AEFE0
|
||||
adds r0, r4, #0
|
||||
movs r1, #4
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
_0802034E:
|
||||
pop {r4, pc}
|
||||
|
||||
|
|
|
@ -324,7 +324,7 @@ sub_080315BC: @ 0x080315BC
|
|||
strb r0, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
b _080315FC
|
||||
_080315D4:
|
||||
adds r0, r4, #0
|
||||
|
|
|
@ -150,7 +150,7 @@ _080382B8: .4byte gLinkEntity
|
|||
_080382BC:
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
adds r0, r4, #0
|
||||
bl sub_080AEF88
|
||||
cmp r0, #0
|
||||
|
@ -192,7 +192,7 @@ sub_08038304: @ 0x08038304
|
|||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
adds r0, r4, #0
|
||||
bl sub_080AEF88
|
||||
cmp r0, #0
|
||||
|
|
754
asm/rupeeLike.s
754
asm/rupeeLike.s
|
@ -1,754 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start RupeeLike
|
||||
RupeeLike: @ 0x080292A0
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r5, #0xb]
|
||||
cmp r0, #0
|
||||
bne _080292F8
|
||||
adds r0, r5, #0
|
||||
bl sub_080043E8
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r4, r0, #0x18
|
||||
cmp r4, #0
|
||||
beq _080292CE
|
||||
ldrb r0, [r5, #0xc]
|
||||
cmp r0, #4
|
||||
bne _080292C4
|
||||
adds r0, r5, #0
|
||||
bl sub_080296D8
|
||||
_080292C4:
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl sub_08001290
|
||||
b _080292FE
|
||||
_080292CE:
|
||||
ldr r4, _080292F4 @ =gUnk_080CCC00
|
||||
adds r0, r5, #0
|
||||
bl GetNextFunction
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r4
|
||||
ldr r1, [r0]
|
||||
adds r0, r5, #0
|
||||
bl _call_via_r1
|
||||
movs r3, #0x10
|
||||
rsbs r3, r3, #0
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
bl SetChildOffset
|
||||
b _080292FE
|
||||
.align 2, 0
|
||||
_080292F4: .4byte gUnk_080CCC00
|
||||
_080292F8:
|
||||
adds r0, r5, #0
|
||||
bl sub_080293DC
|
||||
_080292FE:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_08029300
|
||||
sub_08029300: @ 0x08029300
|
||||
push {lr}
|
||||
ldr r2, _08029314 @ =gUnk_080CCC18
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08029314: .4byte gUnk_080CCC18
|
||||
|
||||
thumb_func_start sub_08029318
|
||||
sub_08029318: @ 0x08029318
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x3f
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x8e
|
||||
bne _0802932C
|
||||
adds r0, r4, #0
|
||||
bl sub_08029770
|
||||
b _080293A6
|
||||
_0802932C:
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #4
|
||||
bne _08029338
|
||||
adds r0, r4, #0
|
||||
bl sub_080296D8
|
||||
_08029338:
|
||||
ldr r0, [r4, #0x4c]
|
||||
ldrb r0, [r0, #8]
|
||||
cmp r0, #1
|
||||
bne _08029394
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #2
|
||||
bne _08029356
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
ldr r0, [r4, #0x54]
|
||||
movs r1, #4
|
||||
bl InitializeAnimation
|
||||
_08029356:
|
||||
movs r1, #0
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x3c
|
||||
strb r0, [r4, #0xe]
|
||||
strb r1, [r4, #0xf]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x83
|
||||
movs r0, #0x41
|
||||
strb r0, [r1]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x3b
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0xfc
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, _08029390 @ =gLinkEntity
|
||||
adds r0, #0x29
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x1a
|
||||
lsrs r0, r0, #0x1d
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x80
|
||||
strb r0, [r1]
|
||||
movs r0, #0x82
|
||||
lsls r0, r0, #1
|
||||
bl sub_08004488
|
||||
b _080293A6
|
||||
.align 2, 0
|
||||
_08029390: .4byte gLinkEntity
|
||||
_08029394:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x43
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _080293A6
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x1c
|
||||
bl sub_0804A9FC
|
||||
_080293A6:
|
||||
ldr r1, _080293B0 @ =gUnk_080CCC00
|
||||
adds r0, r4, #0
|
||||
bl sub_0804AA30
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080293B0: .4byte gUnk_080CCC00
|
||||
|
||||
thumb_func_start sub_080293B4
|
||||
sub_080293B4: @ 0x080293B4
|
||||
push {lr}
|
||||
ldr r3, _080293D4 @ =gUnk_080CCC34
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x84
|
||||
ldrb r2, [r1]
|
||||
lsls r1, r2, #1
|
||||
adds r1, r1, r2
|
||||
ldrb r2, [r0, #0xa]
|
||||
adds r1, r1, r2
|
||||
adds r1, r1, r3
|
||||
ldrb r2, [r1]
|
||||
movs r1, #0xff
|
||||
bl CreateDeathFx
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_080293D4: .4byte gUnk_080CCC34
|
||||
|
||||
thumb_func_start nullsub_141
|
||||
nullsub_141: @ 0x080293D8
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080293DC
|
||||
sub_080293DC: @ 0x080293DC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r0, [r4, #0x50]
|
||||
adds r1, r4, #0
|
||||
bl CopyPositionAndSpriteOffset
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r0, #1
|
||||
strh r0, [r4, #0x32]
|
||||
ldrh r0, [r4, #0x36]
|
||||
subs r0, #1
|
||||
strh r0, [r4, #0x36]
|
||||
ldr r1, _08029408 @ =gUnk_080CCC3C
|
||||
ldrb r0, [r4, #0xc]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08029408: .4byte gUnk_080CCC3C
|
||||
|
||||
thumb_func_start sub_0802940C
|
||||
sub_0802940C: @ 0x0802940C
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4, #0xa]
|
||||
movs r0, #0x17
|
||||
bl CreateEnemy
|
||||
adds r5, r0, #0
|
||||
cmp r5, #0
|
||||
beq _0802944A
|
||||
adds r0, r4, #0
|
||||
bl sub_0804A720
|
||||
str r4, [r5, #0x50]
|
||||
movs r1, #0
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xb]
|
||||
str r5, [r4, #0x54]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x81
|
||||
strb r1, [r0]
|
||||
adds r0, #3
|
||||
strb r1, [r0]
|
||||
ldrb r0, [r4, #0x1a]
|
||||
lsls r0, r0, #0x1c
|
||||
lsrs r0, r0, #0x1c
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x82
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_080297F0
|
||||
_0802944A:
|
||||
pop {r4, r5, pc}
|
||||
|
||||
thumb_func_start sub_0802944C
|
||||
sub_0802944C: @ 0x0802944C
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080296C8
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x81
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08029470
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl sub_08049FDC
|
||||
cmp r0, #0
|
||||
beq _08029470
|
||||
adds r0, r4, #0
|
||||
bl sub_08029770
|
||||
_08029470:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08029474
|
||||
sub_08029474: @ 0x08029474
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080296C8
|
||||
adds r3, r4, #0
|
||||
adds r3, #0x5a
|
||||
ldrb r2, [r3]
|
||||
movs r0, #0x80
|
||||
ands r0, r2
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r1, r0, #0x18
|
||||
cmp r1, #0
|
||||
beq _080294C0
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
ldr r1, _080294BC @ =gLinkEntity
|
||||
adds r0, r4, #0
|
||||
bl GetFacingDirection
|
||||
strb r0, [r4, #0x15]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x1c
|
||||
strb r0, [r4, #0x14]
|
||||
ldrb r1, [r4, #0x14]
|
||||
adds r0, r4, #0
|
||||
bl InitializeAnimation
|
||||
ldr r0, [r4, #0x54]
|
||||
ldrb r1, [r4, #0x14]
|
||||
adds r1, #4
|
||||
bl InitializeAnimation
|
||||
b _080294D2
|
||||
.align 2, 0
|
||||
_080294BC: .4byte gLinkEntity
|
||||
_080294C0:
|
||||
lsls r0, r2, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bne _080294D2
|
||||
strb r1, [r3]
|
||||
ldrb r0, [r4, #0x10]
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
_080294D2:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080294D4
|
||||
sub_080294D4: @ 0x080294D4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #1
|
||||
bl sub_08049FDC
|
||||
cmp r0, #0
|
||||
beq _0802951C
|
||||
ldrb r0, [r4, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08029508
|
||||
movs r0, #8
|
||||
strb r0, [r4, #0xe]
|
||||
ldr r1, _08029518 @ =gLinkEntity
|
||||
adds r0, r4, #0
|
||||
bl GetFacingDirection
|
||||
adds r1, r0, #0
|
||||
adds r0, r4, #0
|
||||
bl sub_08004596
|
||||
adds r0, r4, #0
|
||||
bl sub_0802969C
|
||||
_08029508:
|
||||
adds r0, r4, #0
|
||||
bl sub_080AEF88
|
||||
adds r0, r4, #0
|
||||
bl sub_080296C8
|
||||
b _08029538
|
||||
.align 2, 0
|
||||
_08029518: .4byte gLinkEntity
|
||||
_0802951C:
|
||||
movs r0, #6
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
adds r0, r4, #0
|
||||
movs r1, #3
|
||||
bl InitializeAnimation
|
||||
ldr r0, [r4, #0x54]
|
||||
movs r1, #7
|
||||
bl InitializeAnimation
|
||||
_08029538:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0802953C
|
||||
sub_0802953C: @ 0x0802953C
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
bl sub_080296C8
|
||||
adds r0, r5, #0
|
||||
bl sub_080296C8
|
||||
bl sub_0807953C
|
||||
cmp r0, #0
|
||||
beq _08029558
|
||||
ldrb r0, [r5, #0xf]
|
||||
adds r0, #1
|
||||
strb r0, [r5, #0xf]
|
||||
_08029558:
|
||||
ldrb r0, [r5, #0xe]
|
||||
cmp r0, #0
|
||||
beq _08029562
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
_08029562:
|
||||
ldrb r0, [r5, #0xf]
|
||||
cmp r0, #0x2d
|
||||
bhi _08029572
|
||||
ldr r0, _08029580 @ =gUnk_02002A40
|
||||
adds r0, #0xc0
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _08029584
|
||||
_08029572:
|
||||
ldrb r0, [r5, #0xe]
|
||||
cmp r0, #0
|
||||
bne _08029584
|
||||
adds r0, r5, #0
|
||||
bl sub_080296D8
|
||||
b _080295FE
|
||||
.align 2, 0
|
||||
_08029580: .4byte gUnk_02002A40
|
||||
_08029584:
|
||||
bl sub_08077B2C
|
||||
ldr r2, _08029600 @ =gLinkState
|
||||
ldrb r1, [r2, #0x1a]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x1a]
|
||||
ldr r4, _08029604 @ =gLinkEntity
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #9
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
movs r2, #0
|
||||
bl PositionRelative
|
||||
ldrh r0, [r5, #0x12]
|
||||
ldrb r1, [r5, #0x1e]
|
||||
bl sub_080700C8
|
||||
ldrb r1, [r0]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x62
|
||||
strb r1, [r2]
|
||||
ldrb r0, [r0, #1]
|
||||
subs r0, #1
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x63
|
||||
strb r0, [r1]
|
||||
adds r4, #0x29
|
||||
ldrb r1, [r4]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x83
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _080295FE
|
||||
movs r0, #0x41
|
||||
strb r0, [r1]
|
||||
ldr r0, _08029608 @ =gUnk_02002A40
|
||||
adds r0, #0xc0
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _080295FE
|
||||
ldr r1, _0802960C @ =gUnk_080CCC44
|
||||
ldrb r0, [r5, #0xa]
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
bl ModRupees
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x84
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
_080295FE:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08029600: .4byte gLinkState
|
||||
_08029604: .4byte gLinkEntity
|
||||
_08029608: .4byte gUnk_02002A40
|
||||
_0802960C: .4byte gUnk_080CCC44
|
||||
|
||||
thumb_func_start sub_08029610
|
||||
sub_08029610: @ 0x08029610
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldrb r0, [r1, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r1, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _08029628
|
||||
movs r0, #3
|
||||
strb r0, [r1, #0xc]
|
||||
movs r0, #1
|
||||
strb r0, [r1, #0xe]
|
||||
_08029628:
|
||||
adds r0, r1, #0
|
||||
bl sub_080296C8
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08029630
|
||||
sub_08029630: @ 0x08029630
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_080296C8
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0802965E
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x81
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldr r2, [r4, #0x54]
|
||||
ldrb r1, [r2, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
strb r0, [r2, #0x18]
|
||||
adds r0, r4, #0
|
||||
bl sub_080297F0
|
||||
_0802965E:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08029660
|
||||
sub_08029660: @ 0x08029660
|
||||
movs r1, #1
|
||||
strb r1, [r0, #0xc]
|
||||
movs r1, #0xd1
|
||||
strh r1, [r0, #0x12]
|
||||
ldr r2, _08029684 @ =gUnk_080CCC47
|
||||
ldrb r1, [r0, #0xa]
|
||||
adds r1, r1, r2
|
||||
ldrb r2, [r1]
|
||||
movs r1, #0xf
|
||||
ands r2, r1
|
||||
ldrb r3, [r0, #0x1a]
|
||||
movs r1, #0x10
|
||||
rsbs r1, r1, #0
|
||||
ands r1, r3
|
||||
orrs r1, r2
|
||||
strb r1, [r0, #0x1a]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08029684: .4byte gUnk_080CCC47
|
||||
|
||||
thumb_func_start sub_08029688
|
||||
sub_08029688: @ 0x08029688
|
||||
push {lr}
|
||||
adds r1, r0, #0
|
||||
ldr r0, [r1, #0x50]
|
||||
ldr r0, [r0, #4]
|
||||
cmp r0, #0
|
||||
bne _0802969A
|
||||
adds r0, r1, #0
|
||||
bl DeleteEntity
|
||||
_0802969A:
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_0802969C
|
||||
sub_0802969C: @ 0x0802969C
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r1, [r5, #0x15]
|
||||
movs r0, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080296C4
|
||||
lsrs r4, r1, #4
|
||||
ldrb r0, [r5, #0x14]
|
||||
cmp r4, r0
|
||||
beq _080296C4
|
||||
strb r4, [r5, #0x14]
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl InitializeAnimation
|
||||
ldr r0, [r5, #0x54]
|
||||
adds r1, r4, #4
|
||||
bl InitializeAnimation
|
||||
_080296C4:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080296C8
|
||||
sub_080296C8: @ 0x080296C8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl GetNextFrame
|
||||
ldr r0, [r4, #0x54]
|
||||
bl GetNextFrame
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_080296D8
|
||||
sub_080296D8: @ 0x080296D8
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r2, _08029764 @ =gLinkState
|
||||
movs r0, #0x41
|
||||
strb r0, [r2, #2]
|
||||
ldr r0, [r2, #0x30]
|
||||
movs r1, #0x11
|
||||
rsbs r1, r1, #0
|
||||
ands r0, r1
|
||||
str r0, [r2, #0x30]
|
||||
ldr r0, _08029768 @ =gLinkEntity
|
||||
mov ip, r0
|
||||
ldrb r0, [r0, #0x10]
|
||||
movs r1, #0x80
|
||||
orrs r0, r1
|
||||
mov r1, ip
|
||||
strb r0, [r1, #0x10]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #9
|
||||
str r0, [r1, #0x20]
|
||||
adds r1, #0x3d
|
||||
movs r0, #0xa6
|
||||
strb r0, [r1]
|
||||
movs r3, #0
|
||||
ldr r0, _0802976C @ =0x0000FFFE
|
||||
mov r1, ip
|
||||
strh r0, [r1, #0x36]
|
||||
ldrb r0, [r1, #0x14]
|
||||
lsls r0, r0, #2
|
||||
strb r0, [r1, #0x15]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
ldrb r0, [r0]
|
||||
mov r5, ip
|
||||
adds r5, #0x29
|
||||
movs r1, #7
|
||||
ands r1, r0
|
||||
lsls r1, r1, #3
|
||||
ldrb r2, [r5]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r5]
|
||||
mov r0, ip
|
||||
adds r0, #0x63
|
||||
strb r3, [r0]
|
||||
movs r0, #0xa0
|
||||
lsls r0, r0, #1
|
||||
mov r1, ip
|
||||
strh r0, [r1, #0x24]
|
||||
movs r0, #5
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x3c
|
||||
strb r0, [r4, #0xf]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x3b
|
||||
ldrb r1, [r2]
|
||||
movs r0, #3
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3d
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0
|
||||
bne _08029762
|
||||
movs r0, #0xf4
|
||||
strb r0, [r1]
|
||||
_08029762:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08029764: .4byte gLinkState
|
||||
_08029768: .4byte gLinkEntity
|
||||
_0802976C: .4byte 0x0000FFFE
|
||||
|
||||
thumb_func_start sub_08029770
|
||||
sub_08029770: @ 0x08029770
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #0x73
|
||||
bl LoadFixedGFX
|
||||
cmp r0, #0
|
||||
beq _080297E8
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x7f
|
||||
ands r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
movs r0, #0xd1
|
||||
strh r0, [r4, #0x12]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x29
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x39
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #0x18
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x82
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
ldrb r2, [r4, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x8d
|
||||
strb r0, [r1]
|
||||
ldr r0, _080297EC @ =gUnk_080FD260
|
||||
str r0, [r4, #0x48]
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimation
|
||||
ldr r2, [r4, #0x54]
|
||||
ldrb r1, [r2, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r2, #0x18]
|
||||
ldr r0, [r4, #0x54]
|
||||
movs r1, #6
|
||||
bl InitializeAnimation
|
||||
adds r0, r4, #0
|
||||
bl sub_080A29BC
|
||||
_080297E8:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_080297EC: .4byte gUnk_080FD260
|
||||
|
||||
thumb_func_start sub_080297F0
|
||||
sub_080297F0: @ 0x080297F0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0x78
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r1, [r4, #0x10]
|
||||
movs r0, #0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x10]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x3f
|
||||
movs r0, #0x8e
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_080AE068
|
||||
ldr r0, _08029850 @ =0x00000143
|
||||
strh r0, [r4, #0x12]
|
||||
ldr r1, _08029854 @ =gUnk_080CCC47
|
||||
ldrb r0, [r4, #0xa]
|
||||
adds r0, r0, r1
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0xf
|
||||
ands r1, r0
|
||||
ldrb r2, [r4, #0x1a]
|
||||
movs r0, #0x10
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r2
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x1a]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x60
|
||||
movs r0, #9
|
||||
strh r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x54
|
||||
bl InitializeAnimation
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08029850: .4byte 0x00000143
|
||||
_08029854: .4byte gUnk_080CCC47
|
|
@ -662,7 +662,7 @@ sub_08033C94: @ 0x08033C94
|
|||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #3
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x79
|
||||
ldrb r0, [r1]
|
||||
|
|
|
@ -211,7 +211,7 @@ sub_0802F284: @ 0x0802F284
|
|||
bls _0802F298
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
b _0802F29E
|
||||
_0802F298:
|
||||
adds r0, r4, #0
|
||||
|
|
|
@ -6,214 +6,12 @@
|
|||
|
||||
.text
|
||||
|
||||
|
||||
thumb_func_start TektiteGolden
|
||||
TektiteGolden: @ 0x08037EC8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldr r1, _08037EE4 @ =gUnk_080CF4A0
|
||||
bl EnemyFunctionHandler
|
||||
movs r3, #0x10
|
||||
rsbs r3, r3, #0
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
movs r2, #1
|
||||
bl SetChildOffset
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08037EE4: .4byte gUnk_080CF4A0
|
||||
|
||||
thumb_func_start sub_08037EE8
|
||||
sub_08037EE8: @ 0x08037EE8
|
||||
push {lr}
|
||||
ldr r2, _08037EFC @ =gUnk_080CF4B8
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08037EFC: .4byte gUnk_080CF4B8
|
||||
|
||||
thumb_func_start sub_08037F00
|
||||
sub_08037F00: @ 0x08037F00
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x43
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _08037F14
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x1c
|
||||
bl sub_0804A9FC
|
||||
_08037F14:
|
||||
ldr r1, _08037F54 @ =gUnk_080CF4A0
|
||||
adds r0, r4, #0
|
||||
bl sub_0804AA30
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x41
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x94
|
||||
bne _08037F50
|
||||
movs r1, #0
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
strb r1, [r4, #0xd]
|
||||
movs r0, #0x14
|
||||
strb r0, [r4, #0xe]
|
||||
strb r1, [r4, #0xf]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
strb r1, [r0]
|
||||
movs r1, #0x36
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, #0
|
||||
beq _08037F46
|
||||
ldr r0, [r4, #0x20]
|
||||
asrs r0, r0, #2
|
||||
_08037F46:
|
||||
str r0, [r4, #0x20]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
_08037F50:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08037F54: .4byte gUnk_080CF4A0
|
||||
|
||||
thumb_func_start sub_08037F58
|
||||
sub_08037F58: @ 0x08037F58
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x3a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08037F6E
|
||||
ldrb r0, [r4, #0xb]
|
||||
bl SetGlobalFlag
|
||||
_08037F6E:
|
||||
ldrb r0, [r4, #0xa]
|
||||
movs r2, #0x58
|
||||
cmp r0, #0
|
||||
beq _08037F78
|
||||
movs r2, #0x59
|
||||
_08037F78:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0xff
|
||||
bl CreateDeathFx
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08037F84
|
||||
sub_08037F84: @ 0x08037F84
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_08001242
|
||||
movs r1, #0x36
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, #0
|
||||
beq _08037F9E
|
||||
movs r1, #0xc0
|
||||
lsls r1, r1, #6
|
||||
adds r0, r4, #0
|
||||
bl sub_08003FC4
|
||||
_08037F9E:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08037FA0
|
||||
sub_08037FA0: @ 0x08037FA0
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
ldrb r0, [r5, #0xb]
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
beq _08037FB2
|
||||
bl DeleteThisEntity
|
||||
_08037FB2:
|
||||
adds r0, r5, #0
|
||||
bl sub_0804A720
|
||||
movs r4, #0
|
||||
movs r0, #1
|
||||
strb r0, [r5, #0xc]
|
||||
strb r4, [r5, #0xd]
|
||||
bl Random
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
adds r0, #0x20
|
||||
strb r0, [r5, #0xe]
|
||||
strb r4, [r5, #0xf]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x80
|
||||
strb r4, [r0]
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
bl InitializeAnimation
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08037FE0
|
||||
sub_08037FE0: @ 0x08037FE0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimationAnimation
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r2, r0, #0
|
||||
cmp r2, #0
|
||||
beq _08037FF8
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
b _08038046
|
||||
_08037FF8:
|
||||
ldrb r0, [r4, #0xf]
|
||||
cmp r0, #0
|
||||
beq _0803802C
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08038046
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #6
|
||||
strb r0, [r4, #0xe]
|
||||
strb r2, [r4, #0xf]
|
||||
movs r0, #0xe0
|
||||
lsls r0, r0, #0xa
|
||||
str r0, [r4, #0x20]
|
||||
adds r0, r4, #0
|
||||
bl sub_08038168
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimation
|
||||
b _08038046
|
||||
_0803802C:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08038046
|
||||
movs r0, #0x40
|
||||
strb r0, [r4, #0xf]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitializeAnimation
|
||||
_08038046:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_08038048
|
||||
sub_08038048: @ 0x08038048
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
adds r0, r4, #0
|
||||
bl sub_080AEF88
|
||||
movs r0, #0x36
|
||||
|
@ -315,7 +113,7 @@ sub_08038110: @ 0x08038110
|
|||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r1, #2
|
||||
bl InitializeAnimationAnimation
|
||||
bl UpdateAnimationVariableFrames
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
|
|
|
@ -59,7 +59,13 @@ typedef struct Entity {
|
|||
/* */ u8 b2 : 2; //0x10
|
||||
/* */ u8 b3 : 2; //0x40
|
||||
/* */ } PACKED spriteRendering;
|
||||
/*0x1a*/ u8 palette;
|
||||
/*0x1a*/ union {
|
||||
/* */ u8 raw;
|
||||
/* */ struct {
|
||||
/* */ u8 b0 : 4;
|
||||
/* */ u8 b4 : 4;
|
||||
/* */ } PACKED b;
|
||||
/* */} PACKED palette;
|
||||
/*0x1b*/ struct {
|
||||
/* */ u8 b0 : 4;
|
||||
/* */ u8 flipX : 2; //0x10
|
||||
|
@ -132,8 +138,8 @@ typedef struct Entity {
|
|||
/*0x78*/ union SplitHWord field_0x78;
|
||||
/*0x7a*/ u16 field_0x7a;
|
||||
/*0x7c*/ union SplitWord field_0x7c;
|
||||
/*0x80*/ u16 field_0x80;
|
||||
/*0x82*/ u16 field_0x82;
|
||||
/*0x80*/ union SplitHWord field_0x80;
|
||||
/*0x82*/ union SplitHWord field_0x82;
|
||||
/*0x84*/ union SplitHWord cutsceneBeh;
|
||||
/*0x86*/ u16 field_0x86;
|
||||
} Entity;
|
||||
|
|
|
@ -34,6 +34,11 @@ extern void EraseAllEntities(void);
|
|||
extern void SetTile(u32, u32, u32);
|
||||
extern void SetDirtTile(u32);
|
||||
extern void LoadRoomTileEntities(); //tba
|
||||
extern Entity* CreateDeathFx(Entity*, u32, u32);
|
||||
extern void UpdateAnimationVariableFrames(Entity*, u32);
|
||||
extern void CopyPositionAndSpriteOffset(Entity*, Entity*);
|
||||
extern u8* GetSpriteSubEntryOffsetDataPointer(u32, u32);
|
||||
extern u32 LoadFixedGFX(Entity*, u32);
|
||||
|
||||
// Unidentified
|
||||
extern void sub_0806ED78(Entity*);
|
||||
|
@ -183,4 +188,14 @@ extern void sub_080A4398(void);
|
|||
extern void sub_0801E738(u32);
|
||||
extern void sub_080A70AC(void*);
|
||||
extern void sub_080A7114(u32);
|
||||
extern void sub_08001242(void);
|
||||
extern void sub_08003FC4(Entity*, u32);
|
||||
extern u8 sub_080043E8(Entity*);
|
||||
extern void sub_08001290(Entity*, u32);
|
||||
extern void sub_08004488(u32);
|
||||
extern void sub_08004596(Entity*, u32);
|
||||
extern u32 sub_0807953C(void);
|
||||
extern void sub_08077B2C(void);
|
||||
extern void sub_080A29BC(Entity*);
|
||||
extern void sub_080AE068(Entity*);
|
||||
#endif
|
||||
|
|
|
@ -94,7 +94,7 @@ extern Entity gLinkEntity;
|
|||
|
||||
extern u32 GetInventoryValue(u32);
|
||||
extern s32 ModHealth(s32);
|
||||
|
||||
extern void ModRupees(s32);
|
||||
#endif
|
||||
|
||||
// clang-format on
|
|
@ -345,7 +345,7 @@ SECTIONS {
|
|||
asm/likeLike.o(.text);
|
||||
asm/spearMoblin.o(.text);
|
||||
asm/businessScrub.o(.text);
|
||||
asm/rupeeLike.o(.text);
|
||||
src/enemy/rupeeLike.o(.text);
|
||||
asm/madderpillar.o(.text);
|
||||
asm/waterDrop.o(.text);
|
||||
asm/wallMaster.o(.text);
|
||||
|
@ -385,6 +385,7 @@ SECTIONS {
|
|||
asm/flyingPot.o(.text);
|
||||
asm/gibdo.o(.text);
|
||||
asm/octorokGolden.o(.text);
|
||||
src/enemy/tektiteGolden.o(.text);
|
||||
asm/tektiteGolden.o(.text);
|
||||
asm/ropeGolden.o(.text);
|
||||
asm/cloudPiranha.o(.text);
|
||||
|
|
|
@ -44,7 +44,7 @@ void sub_0802A84C(Entity* this) {
|
|||
}
|
||||
|
||||
void sub_0802A8AC(Entity *this) {
|
||||
*((u8 *)&this->field_0x80 + 1) = 0;
|
||||
this->field_0x80.HALF.HI = 0;
|
||||
if (this->entityType.form < 2) {
|
||||
InitializeAnimation(this, 0);
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ extern void sub_0801ECFC();
|
|||
extern u32 sub_0806F520();
|
||||
extern void sub_0806F4E8();
|
||||
extern void sub_0806F3E4();
|
||||
extern void InitializeAnimationAnimation();
|
||||
extern void UpdateAnimationVariableFrames();
|
||||
extern void sub_0804A720();
|
||||
extern u32 Random();
|
||||
extern void sub_0801ED14();
|
||||
|
@ -75,7 +75,7 @@ void sub_0801EB7C(Entity* ent) {
|
|||
|
||||
void sub_0801EB84(Entity* ent) {
|
||||
ent->flags = ent->flags & 127;
|
||||
InitializeAnimationAnimation(ent, 2);
|
||||
UpdateAnimationVariableFrames(ent, 2);
|
||||
}
|
||||
|
||||
void nullsub_3() {
|
||||
|
|
|
@ -0,0 +1,281 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "enemy.h"
|
||||
#include "functions.h"
|
||||
#include "structures.h"
|
||||
#include "link.h"
|
||||
|
||||
extern void sub_080293DC(Entity*);
|
||||
extern void sub_080296D8(Entity*);
|
||||
extern void sub_08029770(Entity*);
|
||||
extern void sub_080297F0(Entity*);
|
||||
extern void sub_080296C8(Entity*);
|
||||
extern void sub_0802969C(Entity*);
|
||||
|
||||
extern void (*const gUnk_080CCC00[])(Entity*);
|
||||
extern void (*const gUnk_080CCC18[])(Entity*);
|
||||
extern void (*const gUnk_080CCC3C[])(Entity*);
|
||||
|
||||
extern u8 gUnk_080CCC34[];
|
||||
extern u8 gUnk_080CCC47[];
|
||||
extern BoundingBox gUnk_080FD260;
|
||||
|
||||
void RupeeLike(Entity* this) {
|
||||
u32 uVar1;
|
||||
|
||||
if (this->entityType.parameter == 0) {
|
||||
uVar1 = sub_080043E8(this);
|
||||
if (uVar1 != 0) {
|
||||
if (this->action == 4) {
|
||||
sub_080296D8(this);
|
||||
}
|
||||
sub_08001290(this, uVar1);
|
||||
} else {
|
||||
gUnk_080CCC00[GetNextFunction(this)](this);
|
||||
SetChildOffset(this, 0, 1, -0x10);
|
||||
}
|
||||
} else {
|
||||
sub_080293DC(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08029300(Entity* this) {
|
||||
gUnk_080CCC18[this->action](this);
|
||||
}
|
||||
|
||||
void sub_08029318(Entity* this) {
|
||||
if (this->damageType == 0x8e) {
|
||||
sub_08029770(this);
|
||||
} else {
|
||||
if (this->action == 4) {
|
||||
sub_080296D8(this);
|
||||
}
|
||||
if (*(u8*)(*(u32*)&this->field_0x4c + 8) == 1) {
|
||||
if (this->action == 2) {
|
||||
InitializeAnimation(this, 0);
|
||||
InitializeAnimation(this->attachedEntity, 4);
|
||||
}
|
||||
this->action = 4;
|
||||
this->actionDelay = 0x3c;
|
||||
this->field_0xf = 0;
|
||||
this->field_0x82.HALF.HI = 0x41;
|
||||
this->flags2 &= 0xfc;
|
||||
this->field_0x80.HALF.LO = gLinkEntity.spritePriority.b1;
|
||||
sub_08004488(0x104);
|
||||
} else {
|
||||
if (this->field_0x43 != 0) {
|
||||
sub_0804A9FC(this, 0x1c);
|
||||
}
|
||||
}
|
||||
}
|
||||
sub_0804AA30(this, gUnk_080CCC00);
|
||||
}
|
||||
|
||||
void sub_080293B4(Entity* this) {
|
||||
CreateDeathFx(this, 0xff, gUnk_080CCC34[this->cutsceneBeh.HALF.LO * 3 + this->entityType.form]);
|
||||
}
|
||||
|
||||
void nullsub_141() {
|
||||
}
|
||||
|
||||
void sub_080293DC(Entity* this) {
|
||||
CopyPositionAndSpriteOffset(this->parent, this);
|
||||
this->y.HALF.HI++;
|
||||
this->height.HALF.HI--;
|
||||
gUnk_080CCC3C[this->action](this);
|
||||
}
|
||||
|
||||
void sub_0802940C(Entity* this) {
|
||||
Entity* ent;
|
||||
|
||||
ent = CreateEnemy(0x17, this->entityType.form);
|
||||
if (ent != NULL) {
|
||||
sub_0804A720(this);
|
||||
ent->parent = this;
|
||||
ent->entityType.parameter = 1;
|
||||
this->attachedEntity = ent;
|
||||
this->field_0x80.HALF.HI = 0;
|
||||
this->cutsceneBeh.HALF.LO = 0;
|
||||
this->field_0x82.HALF.LO = this->palette.b.b0;
|
||||
sub_080297F0(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0802944C(Entity* this) {
|
||||
sub_080296C8(this);
|
||||
if ((this->field_0x80.HALF.HI != 0) && sub_08049FDC(this, 1)) {
|
||||
sub_08029770(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08029474(Entity* this) {
|
||||
u32 bVar1;
|
||||
|
||||
sub_080296C8(this);
|
||||
if (this->frames.b.f3) {
|
||||
this->action = 3;
|
||||
this->actionDelay = 8;
|
||||
bVar1 = GetFacingDirection(this, &gLinkEntity);
|
||||
this->direction = bVar1;
|
||||
this->animationState = (bVar1 << 0x18) >> 0x1c;
|
||||
InitializeAnimation(this, this->animationState);
|
||||
InitializeAnimation(this->attachedEntity, this->animationState + 4);
|
||||
} else {
|
||||
if (this->frames.all == 1) {
|
||||
this->frames.all = 0;
|
||||
this->flags |= 0x80;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080294D4(Entity* this) {
|
||||
if (sub_08049FDC(this, 1) != 0) {
|
||||
if (--this->actionDelay == 0) {
|
||||
this->actionDelay = 8;
|
||||
sub_08004596(this, GetFacingDirection(this, &gLinkEntity));
|
||||
sub_0802969C(this);
|
||||
}
|
||||
sub_080AEF88(this);
|
||||
sub_080296C8(this);
|
||||
} else {
|
||||
this->action = 6;
|
||||
this->flags &= 0x7f;
|
||||
InitializeAnimation(this, 3);
|
||||
InitializeAnimation(this->attachedEntity, 7);
|
||||
}
|
||||
}
|
||||
|
||||
extern s8 gUnk_080CCC44[];
|
||||
|
||||
void sub_0802953C(Entity* this) {
|
||||
u8* pbVar3;
|
||||
|
||||
sub_080296C8(this);
|
||||
sub_080296C8(this);
|
||||
if (sub_0807953C() != 0) {
|
||||
this->field_0xf++;
|
||||
}
|
||||
if (this->actionDelay != 0) {
|
||||
this->actionDelay--;
|
||||
}
|
||||
if (((this->field_0xf > 0x2d) || (gUnk_02002A40.stats.rupees == 0)) && (this->actionDelay == 0)) {
|
||||
sub_080296D8(this);
|
||||
} else {
|
||||
sub_08077B2C();
|
||||
gLinkState.field_0x1a[0] |= 0x80;
|
||||
PositionRelative(this, &gLinkEntity, 0, 0x10000);
|
||||
pbVar3 = GetSpriteSubEntryOffsetDataPointer((u16)this->spriteIndex, this->frameIndex);
|
||||
gLinkEntity.spriteOffsetX = pbVar3[0];
|
||||
gLinkEntity.spriteOffsetY = pbVar3[1] - 1;
|
||||
gLinkEntity.spritePriority.b1 = 0;
|
||||
if (--this->field_0x82.HALF.HI == 0) {
|
||||
this->field_0x82.HALF.HI = 0x41;
|
||||
if (gUnk_02002A40.stats.rupees != 0) {
|
||||
ModRupees(gUnk_080CCC44[this->entityType.form]);
|
||||
this->cutsceneBeh.HALF.LO = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08029610(Entity* this) {
|
||||
if (--this->field_0xf == 0) {
|
||||
this->action = 3;
|
||||
this->actionDelay = 1;
|
||||
}
|
||||
sub_080296C8(this);
|
||||
}
|
||||
|
||||
void sub_08029630(Entity* this) {
|
||||
sub_080296C8(this);
|
||||
if ((this->frames.b.f3) != 0) {
|
||||
this->field_0x80.HALF.HI = 1;
|
||||
this->attachedEntity->spriteSettings.b.draw = FALSE;
|
||||
sub_080297F0(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08029660(Entity* this) {
|
||||
u32 temp;
|
||||
this->action = 1;
|
||||
this->spriteIndex = 0xd1;
|
||||
temp = gUnk_080CCC47[this->entityType.form];
|
||||
this->palette.b.b0 = temp;
|
||||
}
|
||||
|
||||
void sub_08029688(Entity* this) {
|
||||
if (this->parent->field_0x4 == NULL) {
|
||||
DeleteEntity(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0802969C(Entity* this) {
|
||||
u32 bVar1;
|
||||
|
||||
if ((this->direction & 0xf) != 0) {
|
||||
|
||||
bVar1 = this->direction >> 4;
|
||||
if (bVar1 != this->animationState) {
|
||||
this->animationState = bVar1;
|
||||
InitializeAnimation(this, bVar1);
|
||||
InitializeAnimation(this->attachedEntity, bVar1 + 4);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080296C8(Entity* this) {
|
||||
GetNextFrame(this);
|
||||
GetNextFrame(this->attachedEntity);
|
||||
}
|
||||
|
||||
void sub_080296D8(Entity* this) {
|
||||
gLinkState.jumpStatus = 0x41;
|
||||
gLinkState.flags.all &= 0xffffffef;
|
||||
gLinkEntity.flags |= 0x80;
|
||||
gLinkEntity.field_0x20 = 0x18000;
|
||||
gLinkEntity.hurtBlinkTime = 0xa6;
|
||||
gLinkEntity.height.HALF.HI = -2;
|
||||
gLinkEntity.direction = gLinkEntity.animationState << 2;
|
||||
gLinkEntity.spritePriority.b1 = this->field_0x80.HALF.LO;
|
||||
gLinkEntity.spriteOffsetY = 0;
|
||||
gLinkEntity.nonPlanarMovement = 0x140;
|
||||
this->action = 5;
|
||||
this->field_0xf = 0x3c;
|
||||
this->flags2 |= 3;
|
||||
if ((s8)this->hurtBlinkTime == 0) {
|
||||
this->hurtBlinkTime = 0xf4;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08029770(Entity* this) {
|
||||
u32 temp;
|
||||
if (LoadFixedGFX(this, 0x73) != 0) {
|
||||
this->action = 2;
|
||||
this->flags = this->flags & 0x7f;
|
||||
this->spriteIndex = 0xd1;
|
||||
this->spritePriority.b1 = 3;
|
||||
temp = this->field_0x82.HALF.LO;
|
||||
this->palette.b.b0 = temp;
|
||||
this->damageType = 0x8d;
|
||||
this->boundingBox = &gUnk_080FD260;
|
||||
InitializeAnimation(this, 2);
|
||||
this->attachedEntity->spriteSettings.b.draw = TRUE;
|
||||
InitializeAnimation(this->attachedEntity, 6);
|
||||
sub_080A29BC(this);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_080297F0(Entity* this) {
|
||||
u32 temp;
|
||||
this->action = 1;
|
||||
this->actionDelay = 0x78;
|
||||
this->flags = this->flags | 0x80;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
this->damageType = 0x8e;
|
||||
sub_080AE068(this);
|
||||
this->spriteIndex = 0x143;
|
||||
temp = gUnk_080CCC47[this->entityType.form];
|
||||
this->palette.b.b0 = temp;
|
||||
this->spriteVramOffset = 9;
|
||||
InitializeAnimation(this, 0x54);
|
||||
}
|
|
@ -0,0 +1,108 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "enemy.h"
|
||||
#include "functions.h"
|
||||
#include "flags.h"
|
||||
|
||||
extern void sub_08038168(Entity*);
|
||||
|
||||
extern void (*const gUnk_080CF4A0)(Entity*);
|
||||
extern void (*const gUnk_080CF4B8[])(Entity*);
|
||||
|
||||
void TektiteGolden(Entity *this)
|
||||
{
|
||||
EnemyFunctionHandler(this, &gUnk_080CF4A0);
|
||||
SetChildOffset(this, 0, 1, -0x10);
|
||||
}
|
||||
|
||||
void sub_08037EE8(Entity* this)
|
||||
{
|
||||
gUnk_080CF4B8[this->action](this);
|
||||
}
|
||||
|
||||
void sub_08037F00(Entity *this)
|
||||
{
|
||||
u32 uVar1;
|
||||
|
||||
if (this->field_0x43 != 0) {
|
||||
sub_0804A9FC(this,0x1c);
|
||||
}
|
||||
sub_0804AA30(this, &gUnk_080CF4A0);
|
||||
if (this->bitfield == 0x94) {
|
||||
this->action = 1;
|
||||
this->previousActionFlag = 0;
|
||||
this->actionDelay = 0x14;
|
||||
this->field_0xf = 0;
|
||||
this->field_0x80.HALF.LO = 0;
|
||||
uVar1 = this->height.HALF.HI;
|
||||
if (uVar1 != 0) {
|
||||
this->field_0x20 >>= 2;
|
||||
}
|
||||
else {
|
||||
this->field_0x20 = uVar1;
|
||||
}
|
||||
|
||||
InitializeAnimation(this,0);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08037F58(Entity *this)
|
||||
{
|
||||
u32 uVar1;
|
||||
|
||||
if ((this->field_0x3a & 2) == 0) {
|
||||
SetGlobalFlag(this->entityType.parameter);
|
||||
}
|
||||
if ((this->entityType).form != 0) {
|
||||
uVar1 = 0x59;
|
||||
}
|
||||
else {
|
||||
uVar1 = 0x58;
|
||||
}
|
||||
CreateDeathFx(this, 0xff, uVar1);
|
||||
}
|
||||
|
||||
void sub_08037F84(Entity *this)
|
||||
{
|
||||
sub_08001242();
|
||||
if (this->height.HALF.HI != 0) {
|
||||
sub_08003FC4(this, 0x3000);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08037FA0(Entity *this)
|
||||
{
|
||||
|
||||
if (CheckGlobalFlag(this->entityType.parameter)) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
sub_0804A720(this);
|
||||
this->action = 1;
|
||||
this->previousActionFlag = 0;
|
||||
this->actionDelay = (Random() & 0x1f) + 0x20;
|
||||
this->field_0xf = 0;
|
||||
this->field_0x80.HALF.LO = 0;
|
||||
InitializeAnimation(this,0);
|
||||
}
|
||||
|
||||
void sub_08037Fe0(Entity *this)
|
||||
{
|
||||
UpdateAnimationVariableFrames(this, 2);
|
||||
if (this->actionDelay != 0) {
|
||||
this->actionDelay--;
|
||||
}
|
||||
else if (this->field_0xf != 0) {
|
||||
if ((this->frames.b.f3) != 0) {
|
||||
this->action = 2;
|
||||
this->actionDelay = 6;
|
||||
this->field_0xf = 0;
|
||||
this->field_0x20 = 0x38000;
|
||||
sub_08038168(this);
|
||||
InitializeAnimation(this, 2);
|
||||
}
|
||||
}
|
||||
else if ((this->frames.b.f3) != 0) {
|
||||
this->field_0xf = 0x40;
|
||||
InitializeAnimation(this, 1);
|
||||
}
|
||||
}
|
|
@ -57,7 +57,7 @@ void sub_08018CBC(Entity *this)
|
|||
this->action = 2;
|
||||
this->spriteSettings.b.draw = 1;
|
||||
this->spriteIndex = 0xa6;
|
||||
this->palette = 0x33;
|
||||
this->palette.raw = 0x33;
|
||||
this->spriteVramOffset = 0;
|
||||
(this->entityType).form = gLinkState.field_0x1d[0] - 1;
|
||||
this->actionDelay = gUnk_080B3DE0[(this->entityType).form * 2];
|
||||
|
|
|
@ -90,9 +90,9 @@ void sub_080600F0(Entity* this) {
|
|||
u32 uVar1;
|
||||
u32 uVar2;
|
||||
|
||||
uVar2 = this->field_0x80;
|
||||
if (this->field_0x80 < 8) {
|
||||
if ((this->field_0x82 & 1) != 0) {
|
||||
uVar2 = this->field_0x80.HWORD;
|
||||
if (this->field_0x80.HWORD < 8) {
|
||||
if ((this->field_0x82.HWORD & 1) != 0) {
|
||||
uVar2 = (uVar2 & 0xfc) + (this->field_0xf >> 1);
|
||||
} else {
|
||||
uVar2 = (uVar2 & 0xfc) + (this->animationState >> 1);
|
||||
|
@ -102,7 +102,7 @@ void sub_080600F0(Entity* this) {
|
|||
if (uVar2 != this->animIndex) {
|
||||
InitAnimationForceUpdate(this, uVar2);
|
||||
}
|
||||
if ((this->field_0x82 & 4) != 0) {
|
||||
if ((this->field_0x82.HWORD & 4) != 0) {
|
||||
uVar1 = 2;
|
||||
} else {
|
||||
uVar1 = 1;
|
||||
|
|
|
@ -63,7 +63,7 @@ void sub_08069428(Entity* this, s32 offsetX, bool32 createFx65);
|
|||
void sub_080693D0(Entity* this) {
|
||||
sub_0807DD94(this, 0);
|
||||
if (this->animIndex == 8) {
|
||||
u32 var0 = this->field_0x82 & 0xF;
|
||||
u32 var0 = this->field_0x82.HWORD & 0xF;
|
||||
bool32 createFx65 = ((-var0) | var0) >> 0x1F; // = !var0
|
||||
|
||||
if (this->frames.all == 1) {
|
||||
|
@ -121,7 +121,7 @@ void sub_080694EC(Entity* this) {
|
|||
anim = 2;
|
||||
if (!CheckKinstoneFused(47)) anim = 8;
|
||||
InitAnimationForceUpdate(this, anim);
|
||||
this->field_0x80 = anim;
|
||||
this->field_0x80.HWORD = anim;
|
||||
}
|
||||
|
||||
void Goron_Fusion(Entity* this) {
|
||||
|
|
|
@ -157,8 +157,8 @@ void sub_080661BC(Entity *this)
|
|||
if (this->animIndex == 0xc) {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
if ((this->frames.b.f3) != 0) {
|
||||
this->field_0x80 = GetAnimationState(this) + 8;
|
||||
InitAnimationForceUpdate(this, this->field_0x80);
|
||||
this->field_0x80.HWORD = GetAnimationState(this) + 8;
|
||||
InitAnimationForceUpdate(this, this->field_0x80.HWORD);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
|
@ -41,7 +41,7 @@ void sub_0806A1F8(Entity *this)
|
|||
void sub_0806A234(Entity *this)
|
||||
{
|
||||
sub_0807DD94(this, 0);
|
||||
if ((this->field_0x82 & 4) != 0) {
|
||||
if ((this->field_0x82.HWORD & 4) != 0) {
|
||||
if ((gUnk_030010A0 & 7) == 0) {
|
||||
sub_0806A26C(this);
|
||||
}
|
||||
|
|
|
@ -109,27 +109,27 @@ void sub_08066DE4(Entity* ent) {
|
|||
|
||||
void sub_08066E08(Entity* ent) {
|
||||
InitAnimationForceUpdate(ent, 0x50);
|
||||
ent->field_0x80 = ent->animIndex;
|
||||
ent->field_0x80.HWORD = ent->animIndex;
|
||||
}
|
||||
|
||||
void sub_08066E20(Entity* ent) {
|
||||
InitAnimationForceUpdate(ent, 0x44);
|
||||
ent->field_0x80 = ent->animIndex;
|
||||
ent->field_0x80.HWORD = ent->animIndex;
|
||||
}
|
||||
|
||||
void sub_08066E38(Entity* ent) {
|
||||
InitAnimationForceUpdate(ent, 0x48);
|
||||
ent->field_0x80 = ent->animIndex;
|
||||
ent->field_0x80.HWORD = ent->animIndex;
|
||||
}
|
||||
|
||||
void sub_08066E50(Entity* ent) {
|
||||
InitAnimationForceUpdate(ent, 0x4C);
|
||||
ent->field_0x80 = ent->animIndex;
|
||||
ent->field_0x80.HWORD = ent->animIndex;
|
||||
}
|
||||
|
||||
void sub_08066E68(Entity* ent) {
|
||||
InitAnimationForceUpdate(ent, 0x54);
|
||||
ent->field_0x80 = ent->animIndex;
|
||||
ent->field_0x80.HWORD = ent->animIndex;
|
||||
}
|
||||
|
||||
void sub_08066E80(Entity* ent, u8* param_2) {
|
||||
|
@ -172,7 +172,7 @@ void sub_08066E80(Entity* ent, u8* param_2) {
|
|||
return;
|
||||
}
|
||||
}
|
||||
ent->field_0x80 = ent->animIndex;
|
||||
ent->field_0x80.HWORD = ent->animIndex;
|
||||
gUnk_02033280[6] = 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ void Object1C(Entity *this)
|
|||
if (this->action == 0) {
|
||||
this->action = 1;
|
||||
}
|
||||
iVar1 = CheckRectOnScreen(this->field_0x80, this->field_0x82, 0x10, 0x10);
|
||||
iVar1 = CheckRectOnScreen(this->field_0x80.HWORD, this->field_0x82.HWORD, 0x10, 0x10);
|
||||
if (iVar1 == 0) {
|
||||
this->parent->field_0x20 &= ~(1 << this->entityType.parameter);
|
||||
DeleteThisEntity();
|
||||
|
|
|
@ -19,14 +19,14 @@ void sub_080A0EB0(Entity* ent) {
|
|||
|
||||
ent->action = 1;
|
||||
tilePos = COORD_TO_TILE(ent);
|
||||
ent->field_0x80 = tilePos;
|
||||
SetTile(16509, ent->field_0x80, 1);
|
||||
ent->field_0x80.HWORD = tilePos;
|
||||
SetTile(16509, ent->field_0x80.HWORD, 1);
|
||||
}
|
||||
|
||||
void sub_080A0EF0(Entity* ent) {
|
||||
s32 tileIndex;
|
||||
|
||||
tileIndex = GetTileType(ent->field_0x80, 1);
|
||||
tileIndex = GetTileType(ent->field_0x80.HWORD, 1);
|
||||
if (tileIndex != 0x407D) {
|
||||
sub_08078B48();
|
||||
gLinkEntity.x.WORD = ent->x.WORD;
|
||||
|
|
Loading…
Reference in New Issue