mirror of https://github.com/zeldaret/tmc.git
forestMinish.c 1 nonmatching
This commit is contained in:
parent
6aba97697b
commit
73b72d6696
144
asm/festari.s
144
asm/festari.s
|
|
@ -6,150 +6,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_0805FE10
|
||||
sub_0805FE10: @ 0x0805FE10
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl sub_0805E3A0
|
||||
adds r0, r4, #0
|
||||
bl sub_0801E99C
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_08078784
|
||||
adds r0, r4, #0
|
||||
bl sub_0807DD50
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0805FE48
|
||||
sub_0805FE48: @ 0x0805FE48
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x39
|
||||
movs r1, #0
|
||||
ldrsb r1, [r2, r1]
|
||||
cmp r1, #2
|
||||
bne _0805FE80
|
||||
movs r0, #0
|
||||
strb r1, [r5, #0xc]
|
||||
strb r0, [r2]
|
||||
ldr r1, _0805FE7C @ =gLinkEntity
|
||||
adds r0, r5, #0
|
||||
bl GetFacingDirection
|
||||
bl sub_0806F5A4
|
||||
adds r1, r0, #0
|
||||
adds r0, r5, #0
|
||||
bl InitAnimationForceUpdate
|
||||
adds r0, r5, #0
|
||||
bl sub_0806F118
|
||||
b _0805FF14
|
||||
.align 2, 0
|
||||
_0805FE7C: .4byte gLinkEntity
|
||||
_0805FE80:
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x84
|
||||
ldr r1, [r4]
|
||||
adds r0, r5, #0
|
||||
bl ExecuteScriptCommandSet
|
||||
ldr r1, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_0805FF2C
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x80
|
||||
ldrh r3, [r0]
|
||||
adds r7, r0, #0
|
||||
adds r6, r5, #0
|
||||
adds r6, #0x82
|
||||
cmp r3, #7
|
||||
bhi _0805FEC6
|
||||
ldrh r1, [r6]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0805FEBA
|
||||
movs r1, #0xfc
|
||||
ands r1, r3
|
||||
ldrb r0, [r5, #0xf]
|
||||
lsrs r0, r0, #1
|
||||
adds r3, r1, r0
|
||||
b _0805FEC6
|
||||
_0805FEBA:
|
||||
movs r0, #0xfc
|
||||
ands r0, r3
|
||||
ldrb r2, [r5, #0x14]
|
||||
lsrs r1, r2, #1
|
||||
adds r3, r0, r1
|
||||
strb r2, [r5, #0xf]
|
||||
_0805FEC6:
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x58
|
||||
ldrb r0, [r4]
|
||||
cmp r3, r0
|
||||
beq _0805FED8
|
||||
adds r0, r5, #0
|
||||
adds r1, r3, #0
|
||||
bl InitAnimationForceUpdate
|
||||
_0805FED8:
|
||||
adds r0, r5, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0805FF02
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #8
|
||||
beq _0805FEFE
|
||||
cmp r0, #8
|
||||
blt _0805FF02
|
||||
cmp r0, #0xc
|
||||
bgt _0805FF02
|
||||
cmp r0, #0xa
|
||||
blt _0805FF02
|
||||
_0805FEFE:
|
||||
movs r0, #0
|
||||
strh r0, [r7]
|
||||
_0805FF02:
|
||||
ldrh r1, [r6]
|
||||
mvns r0, r1
|
||||
adds r0, #1
|
||||
ands r1, r0
|
||||
cmp r1, #2
|
||||
bne _0805FF14
|
||||
adds r0, r5, #0
|
||||
bl sub_0806ED78
|
||||
_0805FF14:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0805FF18
|
||||
sub_0805FF18: @ 0x0805FF18
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl UpdateFuseInteraction
|
||||
cmp r0, #0
|
||||
beq _0805FF28
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
_0805FF28:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_0805FF2C
|
||||
sub_0805FF2C: @ 0x0805FF2C
|
||||
push {r4, r5, r6, lr}
|
||||
|
|
|
|||
|
|
@ -1,561 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start ForestMinish
|
||||
ForestMinish: @ 0x0805FFD8
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r5, [r4, #0xc]
|
||||
cmp r5, #1
|
||||
beq _08060044
|
||||
cmp r5, #1
|
||||
bgt _0805FFEC
|
||||
cmp r5, #0
|
||||
beq _0805FFF2
|
||||
b _0806008C
|
||||
_0805FFEC:
|
||||
cmp r5, #2
|
||||
beq _0806007E
|
||||
b _0806008C
|
||||
_0805FFF2:
|
||||
ldr r1, _0806003C @ =gUnk_0810A348
|
||||
adds r0, r4, #0
|
||||
bl LoadExtraSpriteData
|
||||
cmp r0, #0
|
||||
beq _0806008C
|
||||
movs r2, #1
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
ldrb r1, [r4, #0x18]
|
||||
subs r0, #5
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strb r0, [r4, #0x18]
|
||||
ldrb r0, [r4, #0xe]
|
||||
lsls r0, r0, #1
|
||||
strb r0, [r4, #0x14]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x69
|
||||
strb r0, [r1]
|
||||
strb r5, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl sub_0805E3A0
|
||||
ldr r1, _08060040 @ =gUnk_08109D18
|
||||
ldrb r0, [r4, #0xb]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, #0
|
||||
bl StartCutscene
|
||||
adds r0, r4, #0
|
||||
bl sub_0807DD50
|
||||
b _0806008C
|
||||
.align 2, 0
|
||||
_0806003C: .4byte gUnk_0810A348
|
||||
_08060040: .4byte gUnk_08109D18
|
||||
_08060044:
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x39
|
||||
movs r1, #0
|
||||
ldrsb r1, [r2, r1]
|
||||
cmp r1, #2
|
||||
bne _0806005E
|
||||
movs r0, #0
|
||||
strb r1, [r4, #0xc]
|
||||
strb r0, [r2]
|
||||
adds r0, r4, #0
|
||||
bl sub_0806F118
|
||||
b _0806008C
|
||||
_0806005E:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl sub_0807DDAC
|
||||
adds r0, r4, #0
|
||||
bl sub_0807DDE4
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x59
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0xf0
|
||||
beq _0806008C
|
||||
adds r0, r4, #0
|
||||
bl sub_080600F0
|
||||
b _0806008C
|
||||
_0806007E:
|
||||
adds r0, r4, #0
|
||||
bl UpdateFuseInteraction
|
||||
cmp r0, #0
|
||||
beq _0806008C
|
||||
movs r0, #1
|
||||
strb r0, [r4, #0xc]
|
||||
_0806008C:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08060090
|
||||
sub_08060090: @ 0x08060090
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
bl sub_0801E99C
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x68
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_08078784
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start ForestMinish_Head
|
||||
ForestMinish_Head: @ 0x080600A8
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r2, [r0]
|
||||
cmp r2, #0xff
|
||||
beq _080600BA
|
||||
movs r0, #0x81
|
||||
rsbs r0, r0, #0
|
||||
ands r2, r0
|
||||
_080600BA:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5b
|
||||
ldrb r1, [r0]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _080600CA
|
||||
movs r2, #0xff
|
||||
_080600CA:
|
||||
adds r0, r4, #0
|
||||
movs r1, #0
|
||||
bl SetExtraSpriteFrame
|
||||
ldrb r2, [r4, #0x1e]
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
bl SetExtraSpriteFrame
|
||||
adds r0, r4, #0
|
||||
movs r1, #1
|
||||
movs r2, #0
|
||||
bl SetSpriteSubEntryOffsetData1
|
||||
adds r0, r4, #0
|
||||
bl sub_0807000C
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_080600F0
|
||||
sub_080600F0: @ 0x080600F0
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, #0x80
|
||||
ldrh r3, [r0]
|
||||
cmp r3, #7
|
||||
bhi _08060120
|
||||
adds r0, #2
|
||||
ldrh r1, [r0]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08060114
|
||||
movs r1, #0xfc
|
||||
ands r1, r3
|
||||
ldrb r0, [r4, #0xf]
|
||||
lsrs r0, r0, #1
|
||||
adds r3, r1, r0
|
||||
b _08060120
|
||||
_08060114:
|
||||
movs r0, #0xfc
|
||||
ands r0, r3
|
||||
ldrb r2, [r4, #0x14]
|
||||
lsrs r1, r2, #1
|
||||
adds r3, r0, r1
|
||||
strb r2, [r4, #0xf]
|
||||
_08060120:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x58
|
||||
ldrb r0, [r0]
|
||||
cmp r3, r0
|
||||
beq _08060132
|
||||
adds r0, r4, #0
|
||||
adds r1, r3, #0
|
||||
bl InitAnimationForceUpdate
|
||||
_08060132:
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x82
|
||||
ldrh r1, [r0]
|
||||
movs r0, #4
|
||||
ands r0, r1
|
||||
movs r1, #1
|
||||
cmp r0, #0
|
||||
beq _08060144
|
||||
movs r1, #2
|
||||
_08060144:
|
||||
adds r0, r4, #0
|
||||
bl sub_080042BA
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start sub_0806014C
|
||||
sub_0806014C: @ 0x0806014C
|
||||
push {lr}
|
||||
movs r1, #0
|
||||
strb r1, [r0, #0xe]
|
||||
bl sub_08060158
|
||||
pop {pc}
|
||||
|
||||
thumb_func_start sub_08060158
|
||||
sub_08060158: @ 0x08060158
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r7, r0, #0
|
||||
cmp r7, #0
|
||||
beq _0806016A
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
b _080601CC
|
||||
_0806016A:
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x20
|
||||
movs r2, #0x20
|
||||
bl sub_0806EDD8
|
||||
adds r3, r0, #0
|
||||
cmp r3, #0
|
||||
bge _08060188
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x69
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, #0x14]
|
||||
lsls r3, r0, #2
|
||||
_08060188:
|
||||
ldrb r0, [r4, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
lsls r0, r0, #5
|
||||
asrs r1, r3, #1
|
||||
lsls r1, r1, #1
|
||||
ldr r2, _080601D0 @ =gUnk_08109C98
|
||||
adds r1, r1, r2
|
||||
adds r0, r0, r1
|
||||
ldrb r6, [r0]
|
||||
ldrb r5, [r0, #1]
|
||||
movs r0, #0x80
|
||||
ands r0, r5
|
||||
cmp r0, #0
|
||||
beq _080601AC
|
||||
adds r0, r3, #0
|
||||
bl sub_0806F5B0
|
||||
strb r0, [r4, #0x14]
|
||||
_080601AC:
|
||||
movs r0, #0x7f
|
||||
ands r5, r0
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
strb r6, [r0]
|
||||
strb r5, [r4, #0x1e]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x5b
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x58
|
||||
strb r7, [r0]
|
||||
subs r1, #2
|
||||
movs r0, #0xf0
|
||||
strb r0, [r1]
|
||||
_080601CC:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080601D0: .4byte gUnk_08109C98
|
||||
|
||||
thumb_func_start sub_080601D4
|
||||
sub_080601D4: @ 0x080601D4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #4
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
bne _080601E6
|
||||
movs r1, #2
|
||||
b _080601F2
|
||||
_080601E6:
|
||||
movs r0, #0x17
|
||||
bl CheckKinstoneFused
|
||||
rsbs r1, r0, #0
|
||||
orrs r1, r0
|
||||
lsrs r1, r1, #0x1f
|
||||
_080601F2:
|
||||
ldr r0, _08060204 @ =gUnk_0810A354
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r1, r4, #0
|
||||
bl TextboxNoOverlap
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08060204: .4byte gUnk_0810A354
|
||||
|
||||
thumb_func_start sub_08060208
|
||||
sub_08060208: @ 0x08060208
|
||||
push {lr}
|
||||
ldrb r1, [r0, #0xb]
|
||||
lsls r1, r1, #5
|
||||
ldr r2, _08060218 @ =gUnk_08109DC8
|
||||
adds r1, r1, r2
|
||||
bl ShowNPCDialogue
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_08060218: .4byte gUnk_08109DC8
|
||||
|
||||
thumb_func_start sub_0806021C
|
||||
sub_0806021C: @ 0x0806021C
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r0, #0x5b
|
||||
bl GetInventoryValue
|
||||
rsbs r1, r0, #0
|
||||
orrs r1, r0
|
||||
lsrs r4, r1, #0x1f
|
||||
movs r0, #0x40
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _08060238
|
||||
movs r4, #2
|
||||
_08060238:
|
||||
movs r0, #0x13
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _08060244
|
||||
movs r4, #3
|
||||
_08060244:
|
||||
ldrb r1, [r5, #0xb]
|
||||
lsls r1, r1, #5
|
||||
lsls r0, r4, #3
|
||||
ldr r2, _08060258 @ =gUnk_08109DC8
|
||||
adds r0, r0, r2
|
||||
adds r1, r1, r0
|
||||
adds r0, r5, #0
|
||||
bl ShowNPCDialogue
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_08060258: .4byte gUnk_08109DC8
|
||||
|
||||
thumb_func_start sub_0806025C
|
||||
sub_0806025C: @ 0x0806025C
|
||||
push {lr}
|
||||
ldrb r1, [r0, #0xb]
|
||||
lsls r1, r1, #5
|
||||
ldr r2, _0806026C @ =gUnk_08109DC8
|
||||
adds r1, r1, r2
|
||||
bl ShowNPCDialogue
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0806026C: .4byte gUnk_08109DC8
|
||||
|
||||
thumb_func_start sub_08060270
|
||||
sub_08060270: @ 0x08060270
|
||||
push {r4, r5, lr}
|
||||
adds r5, r0, #0
|
||||
movs r0, #0x46
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
bne _08060294
|
||||
movs r4, #1
|
||||
movs r0, #0x29
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
bne _080602A8
|
||||
movs r4, #0
|
||||
movs r0, #0x29
|
||||
bl SetGlobalFlag
|
||||
b _080602A8
|
||||
_08060294:
|
||||
movs r4, #3
|
||||
movs r0, #0x76
|
||||
bl CheckLocalFlag
|
||||
cmp r0, #0
|
||||
bne _080602A8
|
||||
movs r4, #2
|
||||
movs r0, #0x76
|
||||
bl SetLocalFlag
|
||||
_080602A8:
|
||||
ldr r0, _080602B8 @ =gUnk_0810A35A
|
||||
lsls r1, r4, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r1, r5, #0
|
||||
bl TextboxNoOverlap
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_080602B8: .4byte gUnk_0810A35A
|
||||
|
||||
thumb_func_start sub_080602BC
|
||||
sub_080602BC: @ 0x080602BC
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
movs r0, #0x48
|
||||
bl GetInventoryValue
|
||||
cmp r0, #0
|
||||
beq _080602D6
|
||||
bl Random
|
||||
movs r1, #1
|
||||
ands r1, r0
|
||||
adds r2, r1, #2
|
||||
b _080602F0
|
||||
_080602D6:
|
||||
ldr r0, _08060300 @ =gUnk_02002A40
|
||||
adds r2, r0, #0
|
||||
adds r2, #0xac
|
||||
ldr r1, _08060304 @ =gBombBagSizes
|
||||
adds r0, #0xae
|
||||
ldrb r0, [r0]
|
||||
adds r0, r0, r1
|
||||
ldrb r1, [r2]
|
||||
movs r2, #0
|
||||
ldrb r0, [r0]
|
||||
cmp r1, r0
|
||||
bhs _080602F0
|
||||
movs r2, #1
|
||||
_080602F0:
|
||||
ldr r0, _08060308 @ =gUnk_0810A362
|
||||
lsls r1, r2, #1
|
||||
adds r1, r1, r0
|
||||
ldrh r0, [r1]
|
||||
adds r1, r4, #0
|
||||
bl TextboxNoOverlap
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
_08060300: .4byte gUnk_02002A40
|
||||
_08060304: .4byte gBombBagSizes
|
||||
_08060308: .4byte gUnk_0810A362
|
||||
|
||||
thumb_func_start sub_0806030C
|
||||
sub_0806030C: @ 0x0806030C
|
||||
push {lr}
|
||||
ldr r0, [r1, #4]
|
||||
bl ModBombs
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08060318
|
||||
sub_08060318: @ 0x08060318
|
||||
push {r4, r5, lr}
|
||||
movs r5, #2
|
||||
_0806031C:
|
||||
movs r0, #8
|
||||
movs r1, #2
|
||||
movs r2, #2
|
||||
bl sub_0805EB00
|
||||
adds r4, r0, #0
|
||||
cmp r4, #0
|
||||
beq _08060336
|
||||
bl sub_080A29BC
|
||||
adds r0, r4, #0
|
||||
bl DeleteEntity
|
||||
_08060336:
|
||||
subs r5, #1
|
||||
cmp r5, #0
|
||||
bge _0806031C
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
|
||||
thumb_func_start sub_08060340
|
||||
sub_08060340: @ 0x08060340
|
||||
ldr r0, _08060350 @ =gUnk_02002A40
|
||||
movs r2, #0x92
|
||||
lsls r2, r2, #3
|
||||
adds r1, r0, r2
|
||||
ldr r0, [r0, #0x50]
|
||||
str r0, [r1]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_08060350: .4byte gUnk_02002A40
|
||||
|
||||
thumb_func_start sub_08060354
|
||||
sub_08060354: @ 0x08060354
|
||||
push {r4, lr}
|
||||
ldr r0, _08060378 @ =gUnk_02002A40
|
||||
movs r2, #0x92
|
||||
lsls r2, r2, #3
|
||||
adds r1, r0, r2
|
||||
ldr r2, [r0, #0x50]
|
||||
ldr r0, [r1]
|
||||
subs r4, r2, r0
|
||||
movs r0, #0x3b
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
bne _08060380
|
||||
cmp r4, #4
|
||||
ble _080603B0
|
||||
ldr r0, _0806037C @ =0x00008444
|
||||
b _080603B2
|
||||
.align 2, 0
|
||||
_08060378: .4byte gUnk_02002A40
|
||||
_0806037C: .4byte 0x00008444
|
||||
_08060380:
|
||||
movs r0, #0x3c
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
bne _08060398
|
||||
cmp r4, #9
|
||||
ble _080603B0
|
||||
ldr r0, _08060394 @ =0x00008444
|
||||
b _080603B2
|
||||
.align 2, 0
|
||||
_08060394: .4byte 0x00008444
|
||||
_08060398:
|
||||
movs r0, #0x3d
|
||||
bl CheckGlobalFlag
|
||||
cmp r0, #0
|
||||
bne _080603B0
|
||||
cmp r4, #0xe
|
||||
ble _080603B0
|
||||
ldr r0, _080603AC @ =0x00008444
|
||||
b _080603B2
|
||||
.align 2, 0
|
||||
_080603AC: .4byte 0x00008444
|
||||
_080603B0:
|
||||
movs r0, #0
|
||||
_080603B2:
|
||||
pop {r4, pc}
|
||||
|
||||
thumb_func_start ForestMinish_Fusion
|
||||
ForestMinish_Fusion: @ 0x080603B4
|
||||
push {r4, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
bne _080603F4
|
||||
ldr r1, _080603F0 @ =gUnk_0810A348
|
||||
adds r0, r4, #0
|
||||
bl LoadExtraSpriteData
|
||||
cmp r0, #0
|
||||
beq _080603FA
|
||||
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]
|
||||
adds r0, r4, #0
|
||||
movs r1, #2
|
||||
bl sub_0805E3A0
|
||||
adds r0, r4, #0
|
||||
movs r1, #6
|
||||
bl InitializeAnimation
|
||||
b _080603FA
|
||||
.align 2, 0
|
||||
_080603F0: .4byte gUnk_0810A348
|
||||
_080603F4:
|
||||
adds r0, r4, #0
|
||||
bl GetNextFrame
|
||||
_080603FA:
|
||||
pop {r4, pc}
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start Festari
|
||||
Festari: @ 0x0805FDF8
|
||||
push {lr}
|
||||
ldr r2, _0805FE0C @ =gUnk_08109BBC
|
||||
ldrb r1, [r0, #0xc]
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r2
|
||||
ldr r1, [r1]
|
||||
bl _call_via_r1
|
||||
pop {pc}
|
||||
.align 2, 0
|
||||
_0805FE0C: .4byte gUnk_08109BBC
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r5, r0, #0
|
||||
adds r2, r5, #0
|
||||
adds r2, #0x39
|
||||
movs r1, #0
|
||||
ldrsb r1, [r2, r1]
|
||||
cmp r1, #2
|
||||
bne _0805FE80
|
||||
movs r0, #0
|
||||
strb r1, [r5, #0xc]
|
||||
strb r0, [r2]
|
||||
ldr r1, _0805FE7C @ =gLinkEntity
|
||||
adds r0, r5, #0
|
||||
bl GetFacingDirection
|
||||
bl sub_0806F5A4
|
||||
adds r1, r0, #0
|
||||
adds r0, r5, #0
|
||||
bl InitAnimationForceUpdate
|
||||
adds r0, r5, #0
|
||||
bl sub_0806F118
|
||||
b _0805FF14
|
||||
.align 2, 0
|
||||
_0805FE7C: .4byte gLinkEntity
|
||||
_0805FE80:
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x84
|
||||
ldr r1, [r4]
|
||||
adds r0, r5, #0
|
||||
bl ExecuteScriptCommandSet
|
||||
ldr r1, [r4]
|
||||
adds r0, r5, #0
|
||||
bl sub_0805FF2C
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x80
|
||||
ldrh r3, [r0]
|
||||
adds r7, r0, #0
|
||||
adds r6, r5, #0
|
||||
adds r6, #0x82
|
||||
cmp r3, #7
|
||||
bhi _0805FEC6
|
||||
ldrh r1, [r6]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0805FEBA
|
||||
movs r1, #0xfc
|
||||
ands r1, r3
|
||||
ldrb r0, [r5, #0xf]
|
||||
lsrs r0, r0, #1
|
||||
adds r3, r1, r0
|
||||
b _0805FEC6
|
||||
_0805FEBA:
|
||||
movs r0, #0xfc
|
||||
ands r0, r3
|
||||
ldrb r2, [r5, #0x14]
|
||||
lsrs r1, r2, #1
|
||||
adds r3, r0, r1
|
||||
strb r2, [r5, #0xf]
|
||||
_0805FEC6:
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x58
|
||||
ldrb r0, [r4]
|
||||
cmp r3, r0
|
||||
beq _0805FED8
|
||||
adds r0, r5, #0
|
||||
adds r1, r3, #0
|
||||
bl InitAnimationForceUpdate
|
||||
_0805FED8:
|
||||
adds r0, r5, #0
|
||||
bl UpdateAnimationSingleFrame
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x5a
|
||||
ldrb r1, [r0]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0805FF02
|
||||
ldrb r0, [r4]
|
||||
cmp r0, #8
|
||||
beq _0805FEFE
|
||||
cmp r0, #8
|
||||
blt _0805FF02
|
||||
cmp r0, #0xc
|
||||
bgt _0805FF02
|
||||
cmp r0, #0xa
|
||||
blt _0805FF02
|
||||
_0805FEFE:
|
||||
movs r0, #0
|
||||
strh r0, [r7]
|
||||
_0805FF02:
|
||||
ldrh r1, [r6]
|
||||
mvns r0, r1
|
||||
adds r0, #1
|
||||
ands r1, r0
|
||||
cmp r1, #2
|
||||
bne _0805FF14
|
||||
adds r0, r5, #0
|
||||
bl sub_0806ED78
|
||||
_0805FF14:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
.include "asm/macros.inc"
|
||||
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r0, [r4, #0xe]
|
||||
adds r7, r0, #0
|
||||
cmp r7, #0
|
||||
beq _0806016A
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0xe]
|
||||
b _080601CC
|
||||
_0806016A:
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0xe]
|
||||
adds r0, r4, #0
|
||||
movs r1, #0x20
|
||||
movs r2, #0x20
|
||||
bl sub_0806EDD8
|
||||
adds r3, r0, #0
|
||||
cmp r3, #0
|
||||
bge _08060188
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x69
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, #0x14]
|
||||
lsls r3, r0, #2
|
||||
_08060188:
|
||||
ldrb r0, [r4, #0x14]
|
||||
lsrs r0, r0, #1
|
||||
lsls r0, r0, #5
|
||||
asrs r1, r3, #1
|
||||
lsls r1, r1, #1
|
||||
ldr r2, _080601D0 @ =gUnk_08109C98
|
||||
adds r1, r1, r2
|
||||
adds r0, r0, r1
|
||||
ldrb r6, [r0]
|
||||
ldrb r5, [r0, #1]
|
||||
movs r0, #0x80
|
||||
ands r0, r5
|
||||
cmp r0, #0
|
||||
beq _080601AC
|
||||
adds r0, r3, #0
|
||||
bl sub_0806F5B0
|
||||
strb r0, [r4, #0x14]
|
||||
_080601AC:
|
||||
movs r0, #0x7f
|
||||
ands r5, r0
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x5a
|
||||
strb r6, [r0]
|
||||
strb r5, [r4, #0x1e]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x5b
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x58
|
||||
strb r7, [r0]
|
||||
subs r1, #2
|
||||
movs r0, #0xf0
|
||||
strb r0, [r1]
|
||||
_080601CC:
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_080601D0: .4byte gUnk_08109C98
|
||||
.syntax divided
|
||||
|
|
@ -74,6 +74,8 @@ typedef struct {
|
|||
u8 filler3[12];
|
||||
} Stats;
|
||||
|
||||
extern u8 gBombBagSizes[];
|
||||
|
||||
extern LinkState gLinkState;
|
||||
extern Stats gStats;
|
||||
extern Entity gLinkEntity;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "link.h"
|
||||
|
||||
#ifndef NPC_H
|
||||
#define NPC_H
|
||||
|
|
@ -174,8 +175,14 @@ extern u32 UpdateFuseInteraction(Entity*);
|
|||
extern void ShowNPCDialogue(Entity*, u32*);
|
||||
|
||||
typedef struct {
|
||||
u8 filler[8];
|
||||
u8 unk;
|
||||
/*0x000*/ u8 filler[8];
|
||||
/*0x008*/ u8 unk;
|
||||
/*0x009*/ u8 filler2[0x47];
|
||||
/*0x050*/ u32 unk2;
|
||||
/*0x051*/ u8 filler3[0x54];
|
||||
/*0x0a8*/ Stats stats;
|
||||
/*0x0d0*/ u8 filler4[0x3c0];
|
||||
/*0x490*/ u32 unk3;
|
||||
} struct_02002A40;
|
||||
|
||||
extern struct_02002A40 gUnk_02002A40;
|
||||
|
|
|
|||
|
|
@ -534,9 +534,9 @@ SECTIONS {
|
|||
asm/code_0805E744.o(.text);
|
||||
/* npcs */
|
||||
src/gentari.o(.text);
|
||||
asm/gentari.o(.text);
|
||||
src/festari.o(.text);
|
||||
asm/festari.o(.text);
|
||||
asm/forestMinish.o(.text);
|
||||
src/forestMinish.o(.text);
|
||||
asm/postman.o(.text);
|
||||
asm/npc5.o(.text);
|
||||
asm/townsperson.o(.text);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,91 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "npc.h"
|
||||
#include "link.h"
|
||||
|
||||
extern void sub_0805E3A0(Entity*, u32);
|
||||
extern u32 sub_0801E99C(Entity*);
|
||||
extern void sub_08078784(Entity*, u32);
|
||||
extern void sub_0807DD50(Entity*);
|
||||
extern void sub_0806F118(Entity*);
|
||||
extern void ExecuteScriptCommandSet(Entity*, void *);
|
||||
extern void sub_0805FF2C(Entity*, void*);
|
||||
extern void sub_0806ED78(Entity*);
|
||||
|
||||
extern void (*const gUnk_08109BBC[])(Entity*);
|
||||
|
||||
|
||||
void Festari(Entity *this)
|
||||
{
|
||||
gUnk_08109BBC[this->action](this);
|
||||
}
|
||||
|
||||
void sub_0805FE10(Entity *this)
|
||||
{
|
||||
this->action = 1;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
sub_0805E3A0(this, 2);
|
||||
this->field_0x68 = sub_0801E99C(this);
|
||||
sub_08078784(this, this->field_0x68);
|
||||
sub_0807DD50(this);
|
||||
}
|
||||
|
||||
#if NON_MATCHING
|
||||
void sub_0805FE48(Entity *this)
|
||||
{
|
||||
u8 bVar1;
|
||||
u16 uVar2;
|
||||
u32 uVar3;
|
||||
u32 uVar4;
|
||||
|
||||
if (this->interactType == 2) {
|
||||
this->action = 2;
|
||||
this->interactType = 0;
|
||||
InitAnimationForceUpdate(this, sub_0806F5A4(GetFacingDirection(this, &gLinkEntity)));
|
||||
sub_0806F118(this);
|
||||
}
|
||||
else {
|
||||
ExecuteScriptCommandSet(this, *(void **)&this->cutsceneBeh);
|
||||
sub_0805FF2C(this, *(void **)&this->cutsceneBeh);
|
||||
if (this->field_0x80 < 8) {
|
||||
if ((this->field_0x82 & 1) != 0) {
|
||||
uVar4 = (uVar4 & 0xfc) + (this->field_0xf >> 1);
|
||||
}
|
||||
else {
|
||||
uVar4 = (uVar4 & 0xfc) + (this->animationState >> 1);
|
||||
this->field_0xf = this->animationState;
|
||||
}
|
||||
}
|
||||
if (uVar4 != this->animIndex) {
|
||||
InitAnimationForceUpdate(this, uVar4);
|
||||
}
|
||||
UpdateAnimationSingleFrame(this);
|
||||
|
||||
if (this->frames.b.f3)
|
||||
{
|
||||
switch (this->animIndex) {
|
||||
case 8:
|
||||
case 10:
|
||||
case 11:
|
||||
case 12:
|
||||
this->field_0x80 = 0;
|
||||
}
|
||||
}
|
||||
if ((this->field_0x82 & (~this->field_0x82 + 1)) == 2) {
|
||||
sub_0806ED78(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void sub_0805FE48(Entity *this) {
|
||||
asm(".include \"asm/non_matching/festari/sub_0805FE48.inc\"");
|
||||
}
|
||||
#endif
|
||||
|
||||
void sub_0805FF18(Entity *this)
|
||||
{
|
||||
if (UpdateFuseInteraction(this)) {
|
||||
this->action = 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,304 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
#include "npc.h"
|
||||
#include "flags.h"
|
||||
#include "textbox.h"
|
||||
#include "link.h"
|
||||
|
||||
extern void sub_0805E3A0(Entity*, u32);
|
||||
extern void StartCutscene(Entity*, void*);
|
||||
extern void sub_0807DD50(Entity*);
|
||||
extern void sub_0806F118(Entity*);
|
||||
extern void sub_0807DDAC(Entity*, u32);
|
||||
extern void sub_0807DDE4(Entity*);
|
||||
extern void sub_080600F0(Entity*);
|
||||
extern u32 sub_0801E99C(Entity*);
|
||||
extern void sub_08078784(Entity*, u32);
|
||||
extern void sub_0807000C(Entity*);
|
||||
extern void sub_080042BA(Entity*, u32);
|
||||
extern void sub_08060158(Entity*);
|
||||
extern u32 CheckKinstoneFused(u32);
|
||||
extern Entity* sub_0805EB00(u32, u32, u32);
|
||||
extern void sub_080A29BC(Entity* parent);
|
||||
extern void DeleteEntity(Entity*);
|
||||
extern u32 Random(void);
|
||||
extern void ModBombs(s32);
|
||||
|
||||
extern SpriteLoadData gUnk_0810A348;
|
||||
extern void* gUnk_08109D18[];
|
||||
extern u8 gUnk_08109C98[];
|
||||
extern u16 gUnk_0810A354[];
|
||||
extern u32 gUnk_08109DC8[];
|
||||
extern u16 gUnk_0810A35A[];
|
||||
extern u16 gUnk_0810A362[];
|
||||
|
||||
void ForestMinish(Entity* this) {
|
||||
switch (this->action) {
|
||||
case 0:
|
||||
if (LoadExtraSpriteData(this, &gUnk_0810A348)) {
|
||||
this->action = 1;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
this->field_0x69 = this->animationState = this->actionDelay << 1;
|
||||
this->actionDelay = 0;
|
||||
sub_0805E3A0(this, 2);
|
||||
StartCutscene(this, gUnk_08109D18[this->entityType.parameter]);
|
||||
sub_0807DD50(this);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (this->interactType == 2) {
|
||||
this->action = 2;
|
||||
this->interactType = 0;
|
||||
sub_0806F118(this);
|
||||
} else {
|
||||
sub_0807DDAC(this, 0);
|
||||
sub_0807DDE4(this);
|
||||
if (this->frameDuration != 0xf0) {
|
||||
sub_080600F0(this);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (UpdateFuseInteraction(this)) {
|
||||
this->action = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08060090(Entity* this) {
|
||||
this->field_0x68 = sub_0801E99C(this);
|
||||
sub_08078784(this, this->field_0x68);
|
||||
}
|
||||
|
||||
void ForestMinish_Head(Entity* this) {
|
||||
u32 pbVar1;
|
||||
|
||||
pbVar1 = this->frames.all;
|
||||
if (this->frames.all != 0xff) {
|
||||
pbVar1 &= -0x81;
|
||||
}
|
||||
if ((this->frameSpriteSettings & 1) == 0) {
|
||||
pbVar1 = 0xff;
|
||||
}
|
||||
SetExtraSpriteFrame(this, 0, pbVar1);
|
||||
SetExtraSpriteFrame(this, 1, this->frameIndex);
|
||||
SetSpriteSubEntryOffsetData1(this, 1, 0);
|
||||
sub_0807000C(this);
|
||||
}
|
||||
|
||||
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 = (uVar2 & 0xfc) + (this->field_0xf >> 1);
|
||||
} else {
|
||||
uVar2 = (uVar2 & 0xfc) + (this->animationState >> 1);
|
||||
this->field_0xf = this->animationState;
|
||||
}
|
||||
}
|
||||
if (uVar2 != this->animIndex) {
|
||||
InitAnimationForceUpdate(this, uVar2);
|
||||
}
|
||||
if ((this->field_0x82 & 4) != 0) {
|
||||
uVar1 = 2;
|
||||
} else {
|
||||
uVar1 = 1;
|
||||
}
|
||||
sub_080042BA(this, uVar1);
|
||||
}
|
||||
|
||||
void sub_0806014C(Entity* this) {
|
||||
this->actionDelay = 0;
|
||||
sub_08060158(this);
|
||||
}
|
||||
|
||||
#if 0
|
||||
void sub_08060158(Entity *this)
|
||||
{
|
||||
u8 bVar1;
|
||||
u8 bVar2;
|
||||
s32 iVar4;
|
||||
u32 temp;
|
||||
if (this->actionDelay != 0) {
|
||||
this->actionDelay--;
|
||||
}
|
||||
else {
|
||||
this->actionDelay = 2;
|
||||
iVar4 = sub_0806EDD8(this, 0x20, 0x20);
|
||||
if (iVar4 < 0) {
|
||||
this->animationState = this->field_0x69;
|
||||
iVar4 = this->field_0x69 << 2;
|
||||
}
|
||||
temp = (this->animationState >> 1) * 0x20 + (iVar4 >> 1) * 2;
|
||||
bVar1 = gUnk_08109C98[temp];
|
||||
bVar2 = gUnk_08109C98[temp + 1];
|
||||
if ((bVar2 & 0x80) != 0) {
|
||||
this->animationState = sub_0806F5B0(iVar4);
|
||||
}
|
||||
this->frames.all = bVar1;
|
||||
this->frameIndex = bVar2 & 0x7f;
|
||||
this->frameSpriteSettings = 1;
|
||||
this->animIndex = 0;
|
||||
this->frameDuration = 0xf0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
NAKED
|
||||
void sub_08060158(Entity* this) {
|
||||
asm(".include \"asm/non_matching/forestMinish/sub_08060158.inc\"");
|
||||
}
|
||||
|
||||
void sub_080601D4(Entity* this) {
|
||||
u32 temp;
|
||||
u32 uVar2;
|
||||
|
||||
if (CheckGlobalFlag(4) == 0) {
|
||||
uVar2 = 2;
|
||||
} else {
|
||||
temp = CheckKinstoneFused(0x17);
|
||||
uVar2 = (-temp | temp) >> 0x1f;
|
||||
}
|
||||
TextboxNoOverlap(gUnk_0810A354[uVar2], this);
|
||||
}
|
||||
|
||||
void sub_08060208(Entity *this)
|
||||
{
|
||||
ShowNPCDialogue(this, &gUnk_08109DC8[this->entityType.parameter * 0x8]);
|
||||
}
|
||||
|
||||
void sub_0806021C(Entity *this)
|
||||
{
|
||||
u32 uVar1;
|
||||
u32 uVar2;
|
||||
|
||||
//jabber nut
|
||||
uVar1 = GetInventoryValue(0x5B);
|
||||
uVar2 = (-uVar1 | uVar1) >> 0x1f;
|
||||
|
||||
//earth element
|
||||
if (GetInventoryValue(0x40)) {
|
||||
uVar2 = 2;
|
||||
}
|
||||
|
||||
//mole mitts
|
||||
if (GetInventoryValue(0x13)) {
|
||||
uVar2 = 3;
|
||||
}
|
||||
ShowNPCDialogue(this, gUnk_08109DC8 + this->entityType.parameter * 0x8 + uVar2 * 2);
|
||||
}
|
||||
|
||||
void sub_0806025C(Entity *this)
|
||||
{
|
||||
ShowNPCDialogue(this, &gUnk_08109DC8[this->entityType.parameter * 0x8]);
|
||||
}
|
||||
|
||||
void sub_08060270(Entity *this)
|
||||
{
|
||||
u32 index;
|
||||
|
||||
//flippers
|
||||
if (GetInventoryValue(0x46) == 0) {
|
||||
index = 1;
|
||||
if (CheckGlobalFlag(0x29) == 0) {
|
||||
index = 0;
|
||||
SetGlobalFlag(0x29);
|
||||
}
|
||||
}
|
||||
else {
|
||||
index = 3;
|
||||
if (CheckLocalFlag(0x76) == 0) {
|
||||
index = 2;
|
||||
SetLocalFlag(0x76);
|
||||
}
|
||||
}
|
||||
TextboxNoOverlap(gUnk_0810A35A[index], this);
|
||||
}
|
||||
|
||||
void sub_080602BC(Entity *this)
|
||||
{
|
||||
u32 index;
|
||||
|
||||
//spin attack
|
||||
if (GetInventoryValue(0x48) != 0) {
|
||||
index = (Random() & 1) + 2;
|
||||
}
|
||||
else {
|
||||
if (gUnk_02002A40.stats.bombCount < gBombBagSizes[gUnk_02002A40.stats.bombBagType]) {
|
||||
index = 1;
|
||||
}
|
||||
else {
|
||||
index = 0;
|
||||
}
|
||||
}
|
||||
TextboxNoOverlap(gUnk_0810A362[index], this);
|
||||
}
|
||||
|
||||
void sub_0806030C(Entity* this, u32 *arg1)
|
||||
{
|
||||
ModBombs(*(arg1 + 1));
|
||||
}
|
||||
|
||||
void sub_08060318(void)
|
||||
{
|
||||
Entity *ent;
|
||||
int i;
|
||||
|
||||
for (i = 2; i >= 0; i--) {
|
||||
ent = sub_0805EB00(8, 2, 2);
|
||||
if (ent != NULL) {
|
||||
sub_080A29BC(ent);
|
||||
DeleteEntity(ent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_08060340(void)
|
||||
{
|
||||
gUnk_02002A40.unk3 = gUnk_02002A40.unk2;
|
||||
}
|
||||
|
||||
u32 sub_08060354(void)
|
||||
{
|
||||
u32 iVar1;
|
||||
s32 iVar2;
|
||||
|
||||
iVar2 = gUnk_02002A40.unk2 - gUnk_02002A40.unk3;
|
||||
if (CheckGlobalFlag(0x3b) == 0) {
|
||||
if (4 < iVar2) {
|
||||
return 0x8444;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (CheckGlobalFlag(0x3c) == 0) {
|
||||
if (iVar2 > 9) {
|
||||
return 0x8444;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (CheckGlobalFlag(0x3d) == 0) {
|
||||
if (iVar2 > 14) {
|
||||
return 0x8444;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ForestMinish_Fusion(Entity *this)
|
||||
{
|
||||
if (this->action == 0) {
|
||||
if (LoadExtraSpriteData(this, &gUnk_0810A348)) {
|
||||
this->action++;
|
||||
this->spriteSettings.b.draw = TRUE;
|
||||
sub_0805E3A0(this, 2);
|
||||
InitializeAnimation(this, 6);
|
||||
}
|
||||
}
|
||||
else {
|
||||
GetNextFrame(this);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue