mirror of https://github.com/zeldaret/tmc.git
first part of vaati reborn enemy
This commit is contained in:
parent
a1a8e0d1fc
commit
fa2779a383
|
@ -1,216 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r0, #3
|
||||
bl CheckRoomFlag
|
||||
cmp r0, #0
|
||||
bne _0806B7CC
|
||||
b _0806B968
|
||||
_0806B7CC:
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #1
|
||||
beq _0806B84C
|
||||
cmp r0, #1
|
||||
bgt _0806B7DC
|
||||
cmp r0, #0
|
||||
beq _0806B7E6
|
||||
b _0806B93C
|
||||
_0806B7DC:
|
||||
cmp r0, #2
|
||||
beq _0806B86C
|
||||
cmp r0, #3
|
||||
beq _0806B874
|
||||
b _0806B93C
|
||||
_0806B7E6:
|
||||
ldrh r0, [r5, #0x32]
|
||||
adds r0, #1
|
||||
strh r0, [r5, #0x32]
|
||||
ldrb r0, [r5, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
movs r1, #0xff
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0806B82C
|
||||
movs r0, #0x3b
|
||||
movs r1, #3
|
||||
movs r2, #0
|
||||
bl CreateNPC
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
bne _0806B80C
|
||||
b _0806B968
|
||||
_0806B80C:
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl CopyPosition
|
||||
ldr r0, _0806B828 @ =0x00001634
|
||||
bl TextboxNoOverlapFollow
|
||||
ldrb r0, [r5, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r5, #0xd]
|
||||
bl DeleteThisEntity
|
||||
b _0806B968
|
||||
.align 2, 0
|
||||
_0806B828: .4byte 0x00001634
|
||||
_0806B82C:
|
||||
ldrb r0, [r5, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xf]
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806B83A
|
||||
b _0806B95A
|
||||
_0806B83A:
|
||||
movs r0, #0x20
|
||||
strb r0, [r5, #0xf]
|
||||
ldr r0, _0806B848 @ =0x000001A9
|
||||
bl SoundReq
|
||||
b _0806B95A
|
||||
.align 2, 0
|
||||
_0806B848: .4byte 0x000001A9
|
||||
_0806B84C:
|
||||
adds r0, r5, #0
|
||||
bl sub_0806B9BC
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
bne _0806B85C
|
||||
bl DeleteThisEntity
|
||||
_0806B85C:
|
||||
movs r3, #0x84
|
||||
lsls r3, r3, #0xe
|
||||
adds r0, r4, #0
|
||||
adds r1, r5, #0
|
||||
movs r2, #0
|
||||
bl PositionRelative
|
||||
b _0806B95A
|
||||
_0806B86C:
|
||||
adds r0, r5, #0
|
||||
bl sub_0806B96C
|
||||
b _0806B95A
|
||||
_0806B874:
|
||||
ldrb r0, [r5, #0xd]
|
||||
cmp r0, #1
|
||||
beq _0806B8A2
|
||||
cmp r0, #1
|
||||
bgt _0806B884
|
||||
cmp r0, #0
|
||||
beq _0806B88E
|
||||
b _0806B91E
|
||||
_0806B884:
|
||||
cmp r0, #2
|
||||
beq _0806B8C4
|
||||
cmp r0, #3
|
||||
beq _0806B906
|
||||
b _0806B91E
|
||||
_0806B88E:
|
||||
ldrb r0, [r5, #0xe]
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0806B91E
|
||||
ldrb r0, [r5, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r5, #0xd]
|
||||
b _0806B91E
|
||||
_0806B8A2:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806B91E
|
||||
movs r0, #2
|
||||
strb r0, [r5, #0xd]
|
||||
ldr r1, _0806B8C0 @ =0x0000013F
|
||||
adds r0, r5, #0
|
||||
bl sub_0801D2B4
|
||||
b _0806B8FA
|
||||
.align 2, 0
|
||||
_0806B8C0: .4byte 0x0000013F
|
||||
_0806B8C4:
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x5a
|
||||
ldrb r1, [r2]
|
||||
movs r0, #0x10
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806B91E
|
||||
movs r0, #0xef
|
||||
ands r0, r1
|
||||
strb r0, [r2]
|
||||
ldrb r0, [r5, #0xe]
|
||||
adds r0, #1
|
||||
strb r0, [r5, #0xe]
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
beq _0806B91E
|
||||
cmp r0, #0xa
|
||||
bne _0806B91E
|
||||
ldrb r0, [r5, #0xd]
|
||||
adds r0, #1
|
||||
strb r0, [r5, #0xd]
|
||||
movs r0, #0xf4
|
||||
bl EnqueueSFX
|
||||
movs r0, #0
|
||||
strb r0, [r5, #0xe]
|
||||
_0806B8FA:
|
||||
ldrb r1, [r5, #0xd]
|
||||
subs r1, #1
|
||||
adds r0, r5, #0
|
||||
bl InitAnimationForceUpdate
|
||||
b _0806B91E
|
||||
_0806B906:
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0806B91E
|
||||
movs r0, #0
|
||||
bl SetRoomFlag
|
||||
bl DeleteThisEntity
|
||||
_0806B91E:
|
||||
ldrb r0, [r5, #0xf]
|
||||
subs r0, #1
|
||||
strb r0, [r5, #0xf]
|
||||
lsls r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0806B95A
|
||||
movs r0, #0x20
|
||||
strb r0, [r5, #0xf]
|
||||
ldr r0, _0806B938 @ =0x000001A9
|
||||
bl SoundReq
|
||||
b _0806B95A
|
||||
.align 2, 0
|
||||
_0806B938: .4byte 0x000001A9
|
||||
_0806B93C:
|
||||
adds r0, r5, #0
|
||||
bl sub_0806B9BC
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
bne _0806B94E
|
||||
bl DeleteThisEntity
|
||||
b _0806B968
|
||||
_0806B94E:
|
||||
ldrb r0, [r4, #0xd]
|
||||
cmp r0, #0
|
||||
beq _0806B968
|
||||
ldrb r0, [r5, #0xa]
|
||||
cmp r0, #4
|
||||
beq _0806B962
|
||||
_0806B95A:
|
||||
adds r0, r5, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
b _0806B968
|
||||
_0806B962:
|
||||
adds r0, r5, #0
|
||||
bl GetNextFrame
|
||||
_0806B968:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
|
@ -7,437 +7,6 @@
|
|||
.text
|
||||
|
||||
|
||||
thumb_func_start VaatiRebornEnemy
|
||||
VaatiRebornEnemy: @ 0x0803D0C8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xa]
|
||||
cmp r0, #1
|
||||
beq _0803D0F4
|
||||
cmp r0, #1
|
||||
bgt _0803D0DC
|
||||
cmp r0, #0
|
||||
beq _0803D0E6
|
||||
b _0803D12C
|
||||
_0803D0DC:
|
||||
cmp r0, #2
|
||||
beq _0803D104
|
||||
cmp r0, #3
|
||||
beq _0803D11C
|
||||
b _0803D12C
|
||||
_0803D0E6:
|
||||
adds r0, r4, #0
|
||||
bl sub_0803DFBC
|
||||
ldr r0, _0803D0F0 @ =gUnk_080D0470
|
||||
b _0803D106
|
||||
.align 2, 0
|
||||
_0803D0F0: .4byte gUnk_080D0470
|
||||
_0803D0F4:
|
||||
adds r0, r4, #0
|
||||
bl sub_0803DC58
|
||||
ldr r0, _0803D100 @ =gUnk_080D0490
|
||||
b _0803D106
|
||||
.align 2, 0
|
||||
_0803D100: .4byte gUnk_080D0490
|
||||
_0803D104:
|
||||
ldr r0, _0803D118 @ =gUnk_080D0498
|
||||
_0803D106:
|
||||
ldrb r1, [r4, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
b _0803D12C
|
||||
.align 2, 0
|
||||
_0803D118: .4byte gUnk_080D0498
|
||||
_0803D11C:
|
||||
ldr r0, _0803D130 @ =gUnk_080D04A0
|
||||
ldrb r1, [r4, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r4, #0
|
||||
bl _call_via_r1
|
||||
_0803D12C:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_0803D130: .4byte gUnk_080D04A0
|
||||
|
||||
thumb_func_start sub_0803D134
|
||||
sub_0803D134: @ 0x0803D134
|
||||
push {r4, r5, r6, lr}
|
||||
adds r5, r0, #0
|
||||
movs r0, #0x7b
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
beq _0803D146
|
||||
bl DeleteThisEntity
|
||||
_0803D146:
|
||||
adds r0, r5, #0
|
||||
bl sub_0804A720
|
||||
movs r0, #0
|
||||
bl CheckRoomFlag
|
||||
cmp r0, #0
|
||||
bne _0803D158
|
||||
b _0803D25A
|
||||
_0803D158:
|
||||
ldr r0, _0803D25C @ =gEntCount
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0x41
|
||||
bhi _0803D25A
|
||||
movs r0, #0
|
||||
bl ClearRoomFlag
|
||||
movs r2, #0
|
||||
movs r0, #3
|
||||
strb r0, [r5, #0xc]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x74
|
||||
movs r0, #0xff
|
||||
strb r0, [r1]
|
||||
strb r2, [r5, #0xe]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x76
|
||||
strb r2, [r0]
|
||||
ldrb r1, [r5, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r5, #0x18]
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
strb r0, [r5, #0x15]
|
||||
adds r3, r5, #0
|
||||
adds r3, #0x29
|
||||
ldrb r1, [r3]
|
||||
subs r0, #7
|
||||
ands r0, r1
|
||||
movs r1, #4
|
||||
orrs r0, r1
|
||||
strb r0, [r3]
|
||||
str r2, [r5, #0x34]
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x80
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x86
|
||||
strb r2, [r0]
|
||||
adds r1, #5
|
||||
movs r0, #0x30
|
||||
strb r0, [r1]
|
||||
subs r1, #1
|
||||
subs r0, #0x31
|
||||
strb r0, [r1]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x87
|
||||
strb r2, [r0]
|
||||
subs r0, #5
|
||||
strb r2, [r0]
|
||||
adds r0, #1
|
||||
strb r2, [r0]
|
||||
ldr r0, [r5, #0x2c]
|
||||
str r0, [r5, #0x78]
|
||||
ldr r0, [r5, #0x30]
|
||||
str r0, [r5, #0x7c]
|
||||
movs r0, #0x4a
|
||||
movs r1, #1
|
||||
bl CreateEnemy
|
||||
adds r4, r0, #0
|
||||
str r5, [r4, #0x50]
|
||||
str r4, [r5, #0x54]
|
||||
movs r6, #0
|
||||
_0803D1E2:
|
||||
movs r0, #0x54
|
||||
movs r1, #0
|
||||
bl CreateEnemy
|
||||
adds r4, r0, #0
|
||||
str r5, [r4, #0x50]
|
||||
adds r0, #0x79
|
||||
strb r6, [r0]
|
||||
adds r6, #1
|
||||
cmp r6, #5
|
||||
ble _0803D1E2
|
||||
movs r6, #0
|
||||
_0803D1FA:
|
||||
movs r0, #0x4a
|
||||
movs r1, #3
|
||||
bl CreateEnemy
|
||||
adds r4, r0, #0
|
||||
str r5, [r4, #0x50]
|
||||
strb r6, [r4, #0xe]
|
||||
adds r6, #1
|
||||
cmp r6, #3
|
||||
ble _0803D1FA
|
||||
movs r6, #0
|
||||
_0803D210:
|
||||
movs r0, #0x54
|
||||
movs r1, #1
|
||||
bl CreateEnemy
|
||||
adds r4, r0, #0
|
||||
str r5, [r4, #0x50]
|
||||
movs r0, #1
|
||||
adds r2, r6, #0
|
||||
ands r2, r0
|
||||
lsls r2, r2, #6
|
||||
ldrb r0, [r4, #0x18]
|
||||
movs r3, #0x41
|
||||
rsbs r3, r3, #0
|
||||
adds r1, r3, #0
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
lsls r1, r6, #1
|
||||
ldr r0, _0803D260 @ =gUnk_080D04A8
|
||||
adds r1, r1, r0
|
||||
movs r2, #0
|
||||
ldrsb r2, [r1, r2]
|
||||
lsls r2, r2, #0x10
|
||||
movs r3, #1
|
||||
ldrsb r3, [r1, r3]
|
||||
lsls r3, r3, #0x10
|
||||
adds r0, r5, #0
|
||||
adds r1, r4, #0
|
||||
bl PositionRelative
|
||||
adds r6, #1
|
||||
cmp r6, #1
|
||||
ble _0803D210
|
||||
adds r0, r5, #0
|
||||
movs r1, #0
|
||||
bl InitAnimationForceUpdate
|
||||
_0803D25A:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0803D25C: .4byte gEntCount
|
||||
_0803D260: .4byte gUnk_080D04A8
|
||||
|
||||
thumb_func_start sub_0803D264
|
||||
sub_0803D264: @ 0x0803D264
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
cmp r0, #0
|
||||
beq _0803D318
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
movs r7, #0xff
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r6, r0, #0x18
|
||||
cmp r6, #0
|
||||
beq _0803D27E
|
||||
b _0803D400
|
||||
_0803D27E:
|
||||
adds r5, r4, #0
|
||||
adds r5, #0x74
|
||||
ldrb r1, [r5]
|
||||
movs r0, #0x70
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0803D2E4
|
||||
ldr r0, [r4, #0x54]
|
||||
ldrb r0, [r0, #0xe]
|
||||
cmp r0, #0
|
||||
bne _0803D2DE
|
||||
adds r0, r4, #0
|
||||
bl sub_0803DD78
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x75
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0803D2B0
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xc]
|
||||
strb r6, [r5]
|
||||
movs r0, #0x10
|
||||
strb r0, [r4, #0xe]
|
||||
b _0803D2D6
|
||||
_0803D2B0:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0803D2C4
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0803D2D6
|
||||
_0803D2C4:
|
||||
bl Random
|
||||
movs r1, #0x80
|
||||
ands r1, r0
|
||||
lsrs r1, r1, #3
|
||||
movs r0, #8
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0x15]
|
||||
b _0803D400
|
||||
_0803D2D6:
|
||||
ldrb r0, [r4, #0x15]
|
||||
orrs r0, r7
|
||||
strb r0, [r4, #0x15]
|
||||
b _0803D400
|
||||
_0803D2DE:
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xe]
|
||||
b _0803D400
|
||||
_0803D2E4:
|
||||
movs r0, #3
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r5]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x75
|
||||
strb r0, [r1]
|
||||
strb r6, [r5]
|
||||
movs r0, #0xc0
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r4, #0x15]
|
||||
orrs r0, r7
|
||||
strb r0, [r4, #0x15]
|
||||
ldrb r1, [r4, #0x18]
|
||||
movs r0, #4
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
orrs r0, r1
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl InitAnimationForceUpdate
|
||||
b _0803D400
|
||||
_0803D318:
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x77
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
movs r6, #0xff
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r5, r0, #0x18
|
||||
cmp r5, #0
|
||||
bne _0803D3BA
|
||||
adds r0, r4, #0
|
||||
bl sub_0803DEE0
|
||||
cmp r0, #1
|
||||
beq _0803D366
|
||||
cmp r0, #1
|
||||
blo _0803D344
|
||||
cmp r0, #2
|
||||
beq _0803D384
|
||||
cmp r0, #3
|
||||
beq _0803D374
|
||||
b _0803D3BA
|
||||
_0803D344:
|
||||
movs r0, #4
|
||||
strb r0, [r4, #0xc]
|
||||
movs r0, #0xa0
|
||||
strb r0, [r4, #0xe]
|
||||
ldrb r0, [r4, #0x15]
|
||||
orrs r0, r6
|
||||
strb r0, [r4, #0x15]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x84
|
||||
ldrb r0, [r1]
|
||||
orrs r0, r6
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl InitAnimationForceUpdate
|
||||
b _0803D3BA
|
||||
_0803D366:
|
||||
movs r0, #6
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x74
|
||||
strb r5, [r0]
|
||||
strb r5, [r4, #0xe]
|
||||
b _0803D3B4
|
||||
_0803D374:
|
||||
movs r0, #5
|
||||
strb r0, [r4, #0xc]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x74
|
||||
strb r5, [r0]
|
||||
movs r0, #0x20
|
||||
strb r0, [r4, #0xf]
|
||||
b _0803D3B4
|
||||
_0803D384:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x74
|
||||
strb r5, [r0]
|
||||
movs r0, #0x20
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x86
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0803D3A2
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x80
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0803D3B4
|
||||
_0803D3A2:
|
||||
bl Random
|
||||
movs r1, #0x80
|
||||
ands r1, r0
|
||||
lsrs r1, r1, #3
|
||||
movs r0, #8
|
||||
orrs r1, r0
|
||||
strb r1, [r4, #0x15]
|
||||
b _0803D3BA
|
||||
_0803D3B4:
|
||||
ldrb r0, [r4, #0x15]
|
||||
orrs r0, r6
|
||||
strb r0, [r4, #0x15]
|
||||
_0803D3BA:
|
||||
ldr r0, [r4, #0x54]
|
||||
ldrb r0, [r0, #0xe]
|
||||
cmp r0, #0
|
||||
bne _0803D400
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x85
|
||||
ldrb r0, [r2]
|
||||
adds r1, r0, #1
|
||||
strb r1, [r2]
|
||||
movs r0, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0803D3FA
|
||||
movs r0, #0x30
|
||||
ands r0, r1
|
||||
cmp r0, #0x10
|
||||
beq _0803D3F4
|
||||
cmp r0, #0x10
|
||||
bgt _0803D3E6
|
||||
cmp r0, #0
|
||||
beq _0803D3EE
|
||||
b _0803D3FA
|
||||
_0803D3E6:
|
||||
cmp r0, #0x20
|
||||
beq _0803D3F4
|
||||
cmp r0, #0x30
|
||||
bne _0803D3FA
|
||||
_0803D3EE:
|
||||
ldrh r0, [r4, #0x32]
|
||||
adds r0, #1
|
||||
b _0803D3F8
|
||||
_0803D3F4:
|
||||
ldrh r0, [r4, #0x32]
|
||||
subs r0, #1
|
||||
_0803D3F8:
|
||||
strh r0, [r4, #0x32]
|
||||
_0803D3FA:
|
||||
adds r0, r4, #0
|
||||
bl sub_080AEFB4
|
||||
_0803D400:
|
||||
adds r0, r4, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
|
||||
thumb_func_start sub_0803D408
|
||||
sub_0803D408: @ 0x0803D408
|
||||
push {r4, r5, lr}
|
||||
|
|
|
@ -4,28 +4,6 @@
|
|||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnk_080D0470:: @ 080D0470
|
||||
.4byte sub_0803D134
|
||||
.4byte sub_0803D264
|
||||
.4byte sub_0803D408
|
||||
.4byte sub_0803D560
|
||||
.4byte sub_0803D658
|
||||
.4byte sub_0803D700
|
||||
.4byte sub_0803D830
|
||||
.4byte sub_0803D8FC
|
||||
|
||||
gUnk_080D0490:: @ 080D0490
|
||||
.4byte sub_0803D974
|
||||
.4byte sub_0803D9BC
|
||||
|
||||
gUnk_080D0498:: @ 080D0498
|
||||
.4byte sub_0803DAA8
|
||||
.4byte sub_0803DAE4
|
||||
|
||||
gUnk_080D04A0:: @ 080D04A0
|
||||
.4byte sub_0803DB88
|
||||
.4byte sub_0803DBB8
|
||||
|
||||
gUnk_080D04A8:: @ 080D04A8
|
||||
.incbin "baserom.gba", 0x0D04A8, 0x0000004
|
||||
|
||||
|
|
|
@ -416,6 +416,7 @@ SECTIONS {
|
|||
src/enemy/lakitu.o(.text);
|
||||
src/enemy/lakituCloud.o(.text);
|
||||
asm/enemy49.o(.text);
|
||||
src/enemy/vaatiRebornEnemy.o(.text);
|
||||
asm/vaatiRebornEnemy.o(.text);
|
||||
src/enemy/vaatiProjectile.o(.text);
|
||||
asm/ballChainSoldier.o(.text);
|
||||
|
@ -1120,6 +1121,7 @@ SECTIONS {
|
|||
data/animations/enemy/lakitu.o(.rodata);
|
||||
src/enemy/lakituCloud.o(.rodata);
|
||||
data/const/enemy/enemy49.o(.rodata);
|
||||
src/enemy/vaatiRebornEnemy.o(.rodata);
|
||||
data/const/enemy/vaatiRebornEnemy.o(.rodata);
|
||||
data/animations/enemy/vaatiRebornEnemy.o(.rodata);
|
||||
src/enemy/vaatiProjectile.o(.rodata);
|
||||
|
|
|
@ -88,7 +88,105 @@ void sub_0806B67C(Entity* this) {
|
|||
}
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/vaati/sub_0806B7BC.inc", void sub_0806B7BC(Entity* this))
|
||||
void sub_0806B7BC(Entity* this) {
|
||||
Entity* entity;
|
||||
|
||||
if (CheckRoomFlag(3) == 0) {
|
||||
return;
|
||||
}
|
||||
switch (this->type) {
|
||||
case 0:
|
||||
this->y.HALF.HI++;
|
||||
if (--this->actionDelay == 0) {
|
||||
entity = CreateNPC(VAATI_REBORN, 3, 0);
|
||||
if (entity == NULL) {
|
||||
break;
|
||||
}
|
||||
CopyPosition(this, entity);
|
||||
TextboxNoOverlapFollow(0x1634);
|
||||
this->subAction = this->subAction + 1;
|
||||
DeleteThisEntity();
|
||||
return;
|
||||
}
|
||||
if (this->field_0xf-- == 1) {
|
||||
this->field_0xf = 0x20;
|
||||
SoundReq(SFX_1A9);
|
||||
}
|
||||
UpdateAnimationSingleFrame(this);
|
||||
break;
|
||||
case 1:
|
||||
entity = sub_0806B9BC(this);
|
||||
if (entity == NULL) {
|
||||
DeleteThisEntity();
|
||||
}
|
||||
PositionRelative(entity, this, 0, 0x210000);
|
||||
UpdateAnimationSingleFrame(this);
|
||||
break;
|
||||
case 2:
|
||||
sub_0806B96C(this);
|
||||
UpdateAnimationSingleFrame(this);
|
||||
break;
|
||||
case 3:
|
||||
switch (this->subAction) {
|
||||
case 0:
|
||||
if (--this->actionDelay == 0) {
|
||||
this->subAction += 1;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (this->frames.b.f3 != 0) {
|
||||
this->subAction = 2;
|
||||
sub_0801D2B4(this, 0x13f);
|
||||
InitAnimationForceUpdate(this, this->subAction - 1);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if ((this->frames.all & 0x10) != 0) {
|
||||
this->frames.all &= 0xef;
|
||||
|
||||
switch (++this->actionDelay) {
|
||||
case 1:
|
||||
break;
|
||||
case 10:
|
||||
this->subAction++;
|
||||
EnqueueSFX(SFX_SUMMON);
|
||||
this->actionDelay = 0;
|
||||
InitAnimationForceUpdate(this, this->subAction - 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (this->frames.b.f3 != 0) {
|
||||
SetRoomFlag(0);
|
||||
DeleteThisEntity();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (--this->field_0xf == 0) {
|
||||
this->field_0xf = 0x20;
|
||||
SoundReq(SFX_1A9);
|
||||
}
|
||||
UpdateAnimationSingleFrame(this);
|
||||
break;
|
||||
default:
|
||||
entity = sub_0806B9BC(this);
|
||||
if (entity == NULL) {
|
||||
DeleteThisEntity();
|
||||
break;
|
||||
}
|
||||
if (entity->subAction == 0) {
|
||||
break;
|
||||
}
|
||||
if (this->type != 4) {
|
||||
UpdateAnimationSingleFrame(this);
|
||||
} else {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0806B96C(Entity* this) {
|
||||
Entity* entity;
|
||||
|
|
Loading…
Reference in New Issue