mirror of https://github.com/zeldaret/tmc.git
wisp.c OK
This commit is contained in:
parent
1db148cd09
commit
83e6edf470
|
|
@ -1995,34 +1995,3 @@ _0807C956:
|
||||||
mov sb, r4
|
mov sb, r4
|
||||||
pop {r4, r5, r6, r7, pc}
|
pop {r4, r5, r6, r7, pc}
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
|
|
||||||
thumb_func_start sub_0807C960
|
|
||||||
sub_0807C960: @ 0x0807C960
|
|
||||||
push {lr}
|
|
||||||
adds r2, r0, #0
|
|
||||||
movs r0, #1
|
|
||||||
rsbs r0, r0, #0
|
|
||||||
cmp r1, r0
|
|
||||||
beq _0807C994
|
|
||||||
ldr r0, _0807C984 @ =0x7FFFFFFF
|
|
||||||
ands r0, r1
|
|
||||||
ldr r1, _0807C988 @ =gUnk_08324AE4
|
|
||||||
adds r1, r0, r1
|
|
||||||
lsrs r0, r2, #0x18
|
|
||||||
cmp r0, #6
|
|
||||||
bne _0807C98C
|
|
||||||
adds r0, r1, #0
|
|
||||||
adds r1, r2, #0
|
|
||||||
bl LZ77UnCompVram
|
|
||||||
b _0807C994
|
|
||||||
.align 2, 0
|
|
||||||
_0807C984: .4byte 0x7FFFFFFF
|
|
||||||
_0807C988: .4byte gUnk_08324AE4
|
|
||||||
_0807C98C:
|
|
||||||
adds r0, r1, #0
|
|
||||||
adds r1, r2, #0
|
|
||||||
bl LZ77UnCompWram
|
|
||||||
_0807C994:
|
|
||||||
pop {pc}
|
|
||||||
.align 2, 0
|
|
||||||
|
|
||||||
|
|
@ -5,38 +5,6 @@
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_0807CF48
|
|
||||||
sub_0807CF48: @ 0x0807CF48
|
|
||||||
push {r4, r5, lr}
|
|
||||||
bl sub_0807D1C4
|
|
||||||
adds r4, r0, #0
|
|
||||||
ldrh r0, [r4, #4]
|
|
||||||
ldr r5, _0807CF64 @ =gUnk_0811E4AC
|
|
||||||
adds r1, r5, #0
|
|
||||||
bl sub_0807D184
|
|
||||||
ldrh r0, [r4, #2]
|
|
||||||
adds r1, r5, #0
|
|
||||||
bl sub_0807D184
|
|
||||||
pop {r4, r5, pc}
|
|
||||||
.align 2, 0
|
|
||||||
_0807CF64: .4byte gUnk_0811E4AC
|
|
||||||
|
|
||||||
thumb_func_start sub_0807CF68
|
|
||||||
sub_0807CF68: @ 0x0807CF68
|
|
||||||
push {r4, r5, lr}
|
|
||||||
bl sub_0807D1C4
|
|
||||||
adds r4, r0, #0
|
|
||||||
ldr r5, _0807CF84 @ =gUnk_0811E4A4
|
|
||||||
ldrh r0, [r4, #4]
|
|
||||||
adds r1, r5, #0
|
|
||||||
bl sub_0807D184
|
|
||||||
ldrh r0, [r4, #2]
|
|
||||||
adds r1, r5, #0
|
|
||||||
bl sub_0807D184
|
|
||||||
pop {r4, r5, pc}
|
|
||||||
.align 2, 0
|
|
||||||
_0807CF84: .4byte gUnk_0811E4A4
|
|
||||||
|
|
||||||
thumb_func_start sub_0807CF88
|
thumb_func_start sub_0807CF88
|
||||||
sub_0807CF88: @ 0x0807CF88
|
sub_0807CF88: @ 0x0807CF88
|
||||||
push {r4, r5, r6, r7, lr}
|
push {r4, r5, r6, r7, lr}
|
||||||
|
|
|
||||||
335
asm/wisp.s
335
asm/wisp.s
|
|
@ -1,335 +0,0 @@
|
||||||
.include "asm/macros.inc"
|
|
||||||
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
|
|
||||||
thumb_func_start Wisp
|
|
||||||
Wisp: @ 0x0803353C
|
|
||||||
push {lr}
|
|
||||||
ldr r1, _08033548 @ =gUnk_080CEB74
|
|
||||||
bl EnemyFunctionHandler
|
|
||||||
pop {pc}
|
|
||||||
.align 2, 0
|
|
||||||
_08033548: .4byte gUnk_080CEB74
|
|
||||||
|
|
||||||
thumb_func_start sub_0803354C
|
|
||||||
sub_0803354C: @ 0x0803354C
|
|
||||||
push {lr}
|
|
||||||
ldr r2, _08033560 @ =gUnk_080CEB8C
|
|
||||||
ldrb r1, [r0, #0xc]
|
|
||||||
lsls r1, r1, #2
|
|
||||||
adds r1, r1, r2
|
|
||||||
ldr r1, [r1]
|
|
||||||
bl _call_via_r1
|
|
||||||
pop {pc}
|
|
||||||
.align 2, 0
|
|
||||||
_08033560: .4byte gUnk_080CEB8C
|
|
||||||
|
|
||||||
thumb_func_start sub_08033564
|
|
||||||
sub_08033564: @ 0x08033564
|
|
||||||
push {r4, lr}
|
|
||||||
adds r4, r0, #0
|
|
||||||
adds r0, #0x41
|
|
||||||
ldrb r1, [r0]
|
|
||||||
movs r0, #0x80
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, #0
|
|
||||||
beq _08033628
|
|
||||||
movs r0, #0x3f
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, #0xe
|
|
||||||
beq _080335E4
|
|
||||||
cmp r0, #0xe
|
|
||||||
bgt _08033586
|
|
||||||
cmp r0, #0
|
|
||||||
beq _08033590
|
|
||||||
b _08033628
|
|
||||||
_08033586:
|
|
||||||
cmp r0, #0x14
|
|
||||||
beq _080335EE
|
|
||||||
cmp r0, #0x15
|
|
||||||
beq _080335E4
|
|
||||||
b _08033628
|
|
||||||
_08033590:
|
|
||||||
movs r0, #2
|
|
||||||
strb r0, [r4, #0xc]
|
|
||||||
ldrb r1, [r4, #0x18]
|
|
||||||
subs r0, #6
|
|
||||||
ands r0, r1
|
|
||||||
strb r0, [r4, #0x18]
|
|
||||||
ldrb r1, [r4, #0x10]
|
|
||||||
movs r0, #0x7f
|
|
||||||
ands r0, r1
|
|
||||||
strb r0, [r4, #0x10]
|
|
||||||
adds r1, r4, #0
|
|
||||||
adds r1, #0x7c
|
|
||||||
movs r0, #0x9f
|
|
||||||
lsls r0, r0, #2
|
|
||||||
strh r0, [r1]
|
|
||||||
ldr r2, _080335DC @ =gLinkState
|
|
||||||
ldr r0, [r2, #0x30]
|
|
||||||
movs r1, #0x80
|
|
||||||
lsls r1, r1, #7
|
|
||||||
orrs r0, r1
|
|
||||||
str r0, [r2, #0x30]
|
|
||||||
ldr r1, _080335E0 @ =gUnk_02002A40
|
|
||||||
ldrb r2, [r4, #0xa]
|
|
||||||
adds r0, r2, #1
|
|
||||||
adds r3, r1, #0
|
|
||||||
adds r3, #0xba
|
|
||||||
strb r0, [r3]
|
|
||||||
adds r1, #0xc8
|
|
||||||
movs r0, #0x96
|
|
||||||
lsls r0, r0, #2
|
|
||||||
strh r0, [r1]
|
|
||||||
lsls r2, r2, #0x18
|
|
||||||
cmp r2, #0
|
|
||||||
beq _08033628
|
|
||||||
bl DeleteThisEntity
|
|
||||||
b _08033628
|
|
||||||
.align 2, 0
|
|
||||||
_080335DC: .4byte gLinkState
|
|
||||||
_080335E0: .4byte gUnk_02002A40
|
|
||||||
_080335E4:
|
|
||||||
adds r1, r4, #0
|
|
||||||
adds r1, #0x45
|
|
||||||
movs r0, #0
|
|
||||||
strb r0, [r1]
|
|
||||||
b _08033628
|
|
||||||
_080335EE:
|
|
||||||
ldrb r1, [r4, #0x10]
|
|
||||||
movs r0, #0x7f
|
|
||||||
ands r0, r1
|
|
||||||
movs r1, #0
|
|
||||||
strb r0, [r4, #0x10]
|
|
||||||
adds r0, r4, #0
|
|
||||||
adds r0, #0x3d
|
|
||||||
strb r1, [r0]
|
|
||||||
ldrb r1, [r4, #0x18]
|
|
||||||
movs r0, #4
|
|
||||||
rsbs r0, r0, #0
|
|
||||||
ands r0, r1
|
|
||||||
strb r0, [r4, #0x18]
|
|
||||||
adds r0, r4, #0
|
|
||||||
movs r1, #2
|
|
||||||
movs r2, #0
|
|
||||||
bl CreateFx
|
|
||||||
adds r1, r0, #0
|
|
||||||
cmp r1, #0
|
|
||||||
beq _08033624
|
|
||||||
str r1, [r4, #0x54]
|
|
||||||
movs r0, #0xe
|
|
||||||
strb r0, [r4, #0xe]
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl CopyPosition
|
|
||||||
_08033624:
|
|
||||||
bl DeleteThisEntity
|
|
||||||
_08033628:
|
|
||||||
pop {r4, pc}
|
|
||||||
.align 2, 0
|
|
||||||
|
|
||||||
thumb_func_start sub_0803362C
|
|
||||||
sub_0803362C: @ 0x0803362C
|
|
||||||
push {r4, lr}
|
|
||||||
adds r4, r0, #0
|
|
||||||
bl sub_0806F520
|
|
||||||
cmp r0, #0
|
|
||||||
beq _08033648
|
|
||||||
ldr r0, _0803364C @ =gUnk_080CEB98
|
|
||||||
ldrb r1, [r4, #0xd]
|
|
||||||
lsls r1, r1, #2
|
|
||||||
adds r1, r1, r0
|
|
||||||
ldr r1, [r1]
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl _call_via_r1
|
|
||||||
_08033648:
|
|
||||||
pop {r4, pc}
|
|
||||||
.align 2, 0
|
|
||||||
_0803364C: .4byte gUnk_080CEB98
|
|
||||||
|
|
||||||
thumb_func_start sub_08033650
|
|
||||||
sub_08033650: @ 0x08033650
|
|
||||||
movs r1, #2
|
|
||||||
strb r1, [r0, #0xd]
|
|
||||||
bx lr
|
|
||||||
.align 2, 0
|
|
||||||
|
|
||||||
thumb_func_start sub_08033658
|
|
||||||
sub_08033658: @ 0x08033658
|
|
||||||
push {lr}
|
|
||||||
bl sub_0806F4E8
|
|
||||||
pop {pc}
|
|
||||||
|
|
||||||
thumb_func_start sub_08033660
|
|
||||||
sub_08033660: @ 0x08033660
|
|
||||||
push {r4, lr}
|
|
||||||
adds r4, r0, #0
|
|
||||||
bl sub_0806F3E4
|
|
||||||
cmp r0, #0
|
|
||||||
beq _08033672
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl sub_0804A7D4
|
|
||||||
_08033672:
|
|
||||||
pop {r4, pc}
|
|
||||||
|
|
||||||
thumb_func_start sub_08033674
|
|
||||||
sub_08033674: @ 0x08033674
|
|
||||||
push {r4, lr}
|
|
||||||
adds r4, r0, #0
|
|
||||||
bl sub_0804A720
|
|
||||||
movs r0, #0
|
|
||||||
strb r0, [r4, #0xe]
|
|
||||||
movs r0, #1
|
|
||||||
strb r0, [r4, #0xc]
|
|
||||||
strb r0, [r4, #0x1c]
|
|
||||||
ldrh r1, [r4, #0x2e]
|
|
||||||
adds r0, r4, #0
|
|
||||||
adds r0, #0x80
|
|
||||||
strh r1, [r0]
|
|
||||||
ldrh r0, [r4, #0x32]
|
|
||||||
adds r1, r4, #0
|
|
||||||
adds r1, #0x82
|
|
||||||
strh r0, [r1]
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl sub_08033744
|
|
||||||
ldrb r1, [r4, #0xb]
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl InitializeAnimation
|
|
||||||
pop {r4, pc}
|
|
||||||
.align 2, 0
|
|
||||||
|
|
||||||
thumb_func_start sub_080336A8
|
|
||||||
sub_080336A8: @ 0x080336A8
|
|
||||||
push {r4, lr}
|
|
||||||
adds r4, r0, #0
|
|
||||||
ldrb r0, [r4, #0xe]
|
|
||||||
subs r0, #1
|
|
||||||
strb r0, [r4, #0xe]
|
|
||||||
lsls r0, r0, #0x18
|
|
||||||
cmp r0, #0
|
|
||||||
bne _080336C0
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl sub_08033744
|
|
||||||
b _080336CE
|
|
||||||
_080336C0:
|
|
||||||
ldrh r0, [r4, #0x2a]
|
|
||||||
cmp r0, #0
|
|
||||||
beq _080336CE
|
|
||||||
adds r1, r0, #0
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl sub_0800417E
|
|
||||||
_080336CE:
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl sub_080AEF88
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl GetNextFrame
|
|
||||||
pop {r4, pc}
|
|
||||||
|
|
||||||
thumb_func_start sub_080336DC
|
|
||||||
sub_080336DC: @ 0x080336DC
|
|
||||||
push {lr}
|
|
||||||
adds r2, r0, #0
|
|
||||||
adds r1, r2, #0
|
|
||||||
adds r1, #0x7c
|
|
||||||
ldrh r0, [r1]
|
|
||||||
subs r0, #1
|
|
||||||
strh r0, [r1]
|
|
||||||
lsls r0, r0, #0x10
|
|
||||||
lsrs r0, r0, #0x10
|
|
||||||
cmp r0, #0xc
|
|
||||||
beq _0803371E
|
|
||||||
cmp r0, #0xc
|
|
||||||
bgt _080336FC
|
|
||||||
cmp r0, #0
|
|
||||||
beq _0803372E
|
|
||||||
b _08033740
|
|
||||||
_080336FC:
|
|
||||||
cmp r0, #0x18
|
|
||||||
beq _08033716
|
|
||||||
cmp r0, #0x24
|
|
||||||
bne _08033740
|
|
||||||
adds r0, r2, #0
|
|
||||||
adds r0, #0x80
|
|
||||||
ldrh r0, [r0]
|
|
||||||
strh r0, [r2, #0x2e]
|
|
||||||
adds r0, r2, #0
|
|
||||||
adds r0, #0x82
|
|
||||||
ldrh r0, [r0]
|
|
||||||
strh r0, [r2, #0x32]
|
|
||||||
b _08033740
|
|
||||||
_08033716:
|
|
||||||
adds r0, r2, #0
|
|
||||||
bl sub_080A29BC
|
|
||||||
b _08033740
|
|
||||||
_0803371E:
|
|
||||||
ldrb r0, [r2, #0x18]
|
|
||||||
movs r1, #4
|
|
||||||
rsbs r1, r1, #0
|
|
||||||
ands r1, r0
|
|
||||||
movs r0, #1
|
|
||||||
orrs r1, r0
|
|
||||||
strb r1, [r2, #0x18]
|
|
||||||
b _08033740
|
|
||||||
_0803372E:
|
|
||||||
movs r0, #1
|
|
||||||
strb r0, [r2, #0xc]
|
|
||||||
ldrb r1, [r2, #0x10]
|
|
||||||
movs r0, #0x80
|
|
||||||
orrs r0, r1
|
|
||||||
strb r0, [r2, #0x10]
|
|
||||||
adds r0, r2, #0
|
|
||||||
bl sub_08033744
|
|
||||||
_08033740:
|
|
||||||
pop {pc}
|
|
||||||
.align 2, 0
|
|
||||||
|
|
||||||
thumb_func_start sub_08033744
|
|
||||||
sub_08033744: @ 0x08033744
|
|
||||||
push {r4, r5, r6, lr}
|
|
||||||
adds r6, r0, #0
|
|
||||||
bl Random
|
|
||||||
adds r5, r0, #0
|
|
||||||
movs r0, #0xff
|
|
||||||
ands r5, r0
|
|
||||||
ldr r1, _0803378C @ =gUnk_080CEBA4
|
|
||||||
movs r0, #0x70
|
|
||||||
ands r0, r5
|
|
||||||
lsrs r0, r0, #4
|
|
||||||
adds r0, r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
strb r0, [r6, #0xe]
|
|
||||||
movs r0, #0xc
|
|
||||||
ands r0, r5
|
|
||||||
lsls r4, r0, #1
|
|
||||||
adds r0, r6, #0
|
|
||||||
bl sub_08049FA0
|
|
||||||
cmp r0, #0
|
|
||||||
bne _08033796
|
|
||||||
movs r0, #3
|
|
||||||
ands r0, r5
|
|
||||||
cmp r0, #0
|
|
||||||
beq _08033796
|
|
||||||
adds r0, r6, #0
|
|
||||||
bl sub_08049EE4
|
|
||||||
adds r4, r0, #0
|
|
||||||
movs r0, #0x80
|
|
||||||
ands r5, r0
|
|
||||||
cmp r5, #0
|
|
||||||
beq _08033790
|
|
||||||
adds r4, #4
|
|
||||||
b _08033792
|
|
||||||
.align 2, 0
|
|
||||||
_0803378C: .4byte gUnk_080CEBA4
|
|
||||||
_08033790:
|
|
||||||
adds r4, #0x1c
|
|
||||||
_08033792:
|
|
||||||
movs r0, #0x18
|
|
||||||
ands r4, r0
|
|
||||||
_08033796:
|
|
||||||
strb r4, [r6, #0x15]
|
|
||||||
pop {r4, r5, r6, pc}
|
|
||||||
.align 2, 0
|
|
||||||
|
|
@ -6,61 +6,6 @@
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
|
|
||||||
thumb_func_start ZeldaFollower
|
|
||||||
ZeldaFollower: @ 0x080682B0
|
|
||||||
push {r4, lr}
|
|
||||||
adds r4, r0, #0
|
|
||||||
ldrb r0, [r4, #0xc]
|
|
||||||
adds r2, r0, #0
|
|
||||||
cmp r2, #0
|
|
||||||
bne _080682F4
|
|
||||||
adds r0, #1
|
|
||||||
strb r0, [r4, #0xc]
|
|
||||||
ldrb r1, [r4, #0x18]
|
|
||||||
movs r0, #4
|
|
||||||
rsbs r0, r0, #0
|
|
||||||
ands r0, r1
|
|
||||||
movs r1, #1
|
|
||||||
orrs r0, r1
|
|
||||||
strb r0, [r4, #0x18]
|
|
||||||
movs r0, #4
|
|
||||||
strb r0, [r4, #0x14]
|
|
||||||
adds r0, r4, #0
|
|
||||||
adds r0, #0x68
|
|
||||||
strb r2, [r0]
|
|
||||||
adds r0, #1
|
|
||||||
strb r2, [r0]
|
|
||||||
adds r0, r4, #0
|
|
||||||
movs r1, #2
|
|
||||||
bl sub_0805E3A0
|
|
||||||
adds r0, r4, #0
|
|
||||||
movs r1, #0
|
|
||||||
bl InitAnimationForceUpdate
|
|
||||||
adds r0, r4, #0
|
|
||||||
movs r1, #0
|
|
||||||
bl sub_0806854C
|
|
||||||
_080682F4:
|
|
||||||
adds r0, r4, #0
|
|
||||||
adds r0, #0x68
|
|
||||||
ldrb r0, [r0]
|
|
||||||
lsls r0, r0, #0x18
|
|
||||||
asrs r0, r0, #0x18
|
|
||||||
cmp r0, #0
|
|
||||||
beq _0806830A
|
|
||||||
adds r0, r4, #0
|
|
||||||
bl sub_08068318
|
|
||||||
b _08068314
|
|
||||||
_0806830A:
|
|
||||||
ldrb r1, [r4, #0x18]
|
|
||||||
movs r0, #4
|
|
||||||
rsbs r0, r0, #0
|
|
||||||
ands r0, r1
|
|
||||||
strb r0, [r4, #0x18]
|
|
||||||
_08068314:
|
|
||||||
pop {r4, pc}
|
|
||||||
.align 2, 0
|
|
||||||
|
|
||||||
thumb_func_start sub_08068318
|
thumb_func_start sub_08068318
|
||||||
sub_08068318: @ 0x08068318
|
sub_08068318: @ 0x08068318
|
||||||
push {r4, r5, r6, r7, lr}
|
push {r4, r5, r6, r7, lr}
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,19 @@
|
||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
255 255 172
|
||||||
|
255 0 255
|
||||||
|
255 0 255
|
||||||
|
255 0 255
|
||||||
|
255 0 255
|
||||||
|
255 0 255
|
||||||
|
255 0 255
|
||||||
|
255 0 255
|
||||||
|
255 0 255
|
||||||
|
255 230 0
|
||||||
|
255 172 16
|
||||||
|
246 115 0
|
||||||
|
238 65 0
|
||||||
|
230 0 0
|
||||||
|
180 65 90
|
||||||
|
0 0 90
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 904 B |
|
|
@ -124,7 +124,7 @@ extern void sub_080580B0(u32);
|
||||||
extern void sub_080751E8(u32, u32, void*);
|
extern void sub_080751E8(u32, u32, void*);
|
||||||
extern void sub_08052CA4(u32, u32, u32, u32);
|
extern void sub_08052CA4(u32, u32, u32, u32);
|
||||||
extern void sub_08052878(void);
|
extern void sub_08052878(void);
|
||||||
extern void sub_0808091C(u32*, u32);
|
extern void sub_0808091C(ScreenTransitionData*, u32);
|
||||||
extern void sub_0805BC4C(void);
|
extern void sub_0805BC4C(void);
|
||||||
extern void sub_0807BB68(u32*, u32, u32);
|
extern void sub_0807BB68(u32*, u32, u32);
|
||||||
extern void sub_08054570(void);
|
extern void sub_08054570(void);
|
||||||
|
|
@ -220,4 +220,12 @@ extern void sub_0807CF68(u32);
|
||||||
extern void sub_0807D20C(u32, char*, u32);
|
extern void sub_0807D20C(u32, char*, u32);
|
||||||
extern u32 sub_0807CF88(u32, u8*);
|
extern u32 sub_0807CF88(u32, u8*);
|
||||||
extern u32 sub_0807D008(u32, void*);
|
extern u32 sub_0807D008(u32, void*);
|
||||||
|
extern void sub_0807D184(u32, char*);
|
||||||
|
extern void sub_0805E3A0(Entity*, u32);
|
||||||
|
extern u32 sub_0806F520();
|
||||||
|
extern void sub_0806F4E8();
|
||||||
|
extern u32 sub_0806F3E4(Entity*);
|
||||||
|
extern void sub_0804A7D4(Entity*);
|
||||||
|
extern void sub_08033744(Entity*);
|
||||||
|
extern void sub_0800417E(Entity*, u32);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -73,7 +73,14 @@ typedef struct {
|
||||||
u8 itemOnB;
|
u8 itemOnB;
|
||||||
u8 filler2[10];
|
u8 filler2[10];
|
||||||
u16 rupees;
|
u16 rupees;
|
||||||
u8 filler3[12];
|
u8 field_0x1a;
|
||||||
|
u8 field_0x1b;
|
||||||
|
u8 field_0x1c;
|
||||||
|
u8 field_0x1d;
|
||||||
|
u8 field_0x1e;
|
||||||
|
u8 field_0x1f;
|
||||||
|
u16 field_0x20;
|
||||||
|
u8 filler4[4];
|
||||||
} Stats;
|
} Stats;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
||||||
|
|
@ -376,7 +376,7 @@ SECTIONS {
|
||||||
asm/crow.o(.text);
|
asm/crow.o(.text);
|
||||||
asm/mulldozer.o(.text);
|
asm/mulldozer.o(.text);
|
||||||
asm/bombarossa.o(.text);
|
asm/bombarossa.o(.text);
|
||||||
asm/wisp.o(.text);
|
src/enemy/wisp.o(.text);
|
||||||
asm/spinyBeetle.o(.text);
|
asm/spinyBeetle.o(.text);
|
||||||
asm/mazaalHead.o(.text);
|
asm/mazaalHead.o(.text);
|
||||||
asm/mazaalMacro.o(.text);
|
asm/mazaalMacro.o(.text);
|
||||||
|
|
@ -581,6 +581,7 @@ SECTIONS {
|
||||||
src/npc/cat.o(.text);
|
src/npc/cat.o(.text);
|
||||||
asm/cat.o(.text);
|
asm/cat.o(.text);
|
||||||
asm/mountainMinish.o(.text);
|
asm/mountainMinish.o(.text);
|
||||||
|
src/npc/zeldaFollower.o(.text);
|
||||||
asm/zeldaFollower.o(.text);
|
asm/zeldaFollower.o(.text);
|
||||||
src/npc/melari.o(.text);
|
src/npc/melari.o(.text);
|
||||||
src/npc/bladeBrothers.o(.text);
|
src/npc/bladeBrothers.o(.text);
|
||||||
|
|
@ -665,7 +666,6 @@ SECTIONS {
|
||||||
src/flags.o(.text);
|
src/flags.o(.text);
|
||||||
src/code_0807CC3C.o(.text);
|
src/code_0807CC3C.o(.text);
|
||||||
asm/code_0807CC3C.o(.text);
|
asm/code_0807CC3C.o(.text);
|
||||||
src/code_080808D8.o(.text);
|
|
||||||
src/code_0808091C.o(.text);
|
src/code_0808091C.o(.text);
|
||||||
/* objects */
|
/* objects */
|
||||||
asm/itemOnGround.o(.text);
|
asm/itemOnGround.o(.text);
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,9 @@
|
||||||
extern void (*const gUnk_0811E478[])(u32);
|
extern void (*const gUnk_0811E478[])(u32);
|
||||||
|
|
||||||
extern s16 gUnk_02021EE0[6];
|
extern s16 gUnk_02021EE0[6];
|
||||||
|
extern char gUnk_0811E484[];
|
||||||
|
extern char gUnk_0811E4AC[];
|
||||||
|
extern char gUnk_0811E4A4[];
|
||||||
|
|
||||||
void sub_0807CD9C() {
|
void sub_0807CD9C() {
|
||||||
sub_080530C8();
|
sub_080530C8();
|
||||||
|
|
@ -69,8 +72,6 @@ s32 sub_0807CE54(void) {
|
||||||
return uVar1;
|
return uVar1;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern char gUnk_0811E484[];
|
|
||||||
|
|
||||||
u32 sub_0807CE90(void)
|
u32 sub_0807CE90(void)
|
||||||
{
|
{
|
||||||
struct_0807D1C4 *puVar1;
|
struct_0807D1C4 *puVar1;
|
||||||
|
|
@ -123,3 +124,23 @@ u32 sub_0807CF30(void* arg0) {
|
||||||
u32 sub_0807CF3C(void* arg0) {
|
u32 sub_0807CF3C(void* arg0) {
|
||||||
return sub_0807D008(5, arg0);
|
return sub_0807D008(5, arg0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sub_0807CF48(u32 arg0)
|
||||||
|
{
|
||||||
|
struct_0807D1C4 *temp;
|
||||||
|
|
||||||
|
temp = sub_0807D1C4(arg0);
|
||||||
|
sub_0807D184(temp->field_0x4, gUnk_0811E4AC);
|
||||||
|
sub_0807D184(temp->field_0x2, gUnk_0811E4AC);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_0807CF68(u32 arg0)
|
||||||
|
{
|
||||||
|
struct_0807D1C4 *temp;
|
||||||
|
char* str;
|
||||||
|
|
||||||
|
temp = sub_0807D1C4(arg0);
|
||||||
|
str = gUnk_0811E4A4;
|
||||||
|
sub_0807D184(temp->field_0x4, str);
|
||||||
|
sub_0807D184(temp->field_0x2, str);
|
||||||
|
}
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
#include "global.h"
|
|
||||||
#include "entity.h"
|
|
||||||
#include "structures.h"
|
|
||||||
#include "functions.h"
|
|
||||||
|
|
||||||
void sub_080808D8(void) {
|
|
||||||
gScreenTransition.transitionType = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void sub_080808E4(void) {
|
|
||||||
|
|
||||||
if (sub_08052638(gScreenTransition.areaID)) {
|
|
||||||
gScreenTransition.transitionType = 0;
|
|
||||||
} else {
|
|
||||||
gScreenTransition.transitionType = 5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void sub_08080904(void) {
|
|
||||||
gScreenTransition.transitionType = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void sub_08080910(void) {
|
|
||||||
gScreenTransition.transitionType = 1;
|
|
||||||
}
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "entity.h"
|
||||||
|
#include "structures.h"
|
||||||
|
#include "functions.h"
|
||||||
#include "room.h"
|
#include "room.h"
|
||||||
|
|
||||||
extern void sub_0805E5A8();
|
extern void sub_0805E5A8();
|
||||||
|
|
@ -6,16 +9,35 @@ extern void sub_0805E5A8();
|
||||||
extern RoomControls gRoomControls;
|
extern RoomControls gRoomControls;
|
||||||
extern u32 gUnk_0200B650;
|
extern u32 gUnk_0200B650;
|
||||||
extern u32 gUnk_02025EB0;
|
extern u32 gUnk_02025EB0;
|
||||||
extern u8 gScreenTransition[10];
|
|
||||||
|
|
||||||
extern void DoExitTransition(Entity*);
|
extern void DoExitTransition(ScreenTransitionData*);
|
||||||
extern void sub_080809D4();
|
extern void sub_080809D4();
|
||||||
|
|
||||||
void sub_0808091C(Entity* param_1, u32 param_2)
|
void sub_080808D8(void) {
|
||||||
|
gScreenTransition.transitionType = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_080808E4(void) {
|
||||||
|
|
||||||
|
if (sub_08052638(gScreenTransition.areaID)) {
|
||||||
|
gScreenTransition.transitionType = 0;
|
||||||
|
} else {
|
||||||
|
gScreenTransition.transitionType = 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08080904(void) {
|
||||||
|
gScreenTransition.transitionType = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08080910(void) {
|
||||||
|
gScreenTransition.transitionType = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_0808091C(ScreenTransitionData* param_1, u32 param_2)
|
||||||
{
|
{
|
||||||
DoExitTransition(param_1);
|
DoExitTransition(param_1);
|
||||||
gScreenTransition[9] = param_2;
|
gScreenTransition.transitionType = param_2;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ extern u32 GetNextFunction(Entity*);
|
||||||
extern void sub_0802AD54(Entity*);
|
extern void sub_0802AD54(Entity*);
|
||||||
extern void sub_0802B048(Entity*);
|
extern void sub_0802B048(Entity*);
|
||||||
extern void sub_0806F4E8(Entity*);
|
extern void sub_0806F4E8(Entity*);
|
||||||
extern void sub_0806F3E4(Entity*);
|
|
||||||
|
|
||||||
extern void (*const gUnk_080012C8[])(Entity*);
|
extern void (*const gUnk_080012C8[])(Entity*);
|
||||||
extern void (*const gUnk_080CD0F0[])(Entity*);
|
extern void (*const gUnk_080CD0F0[])(Entity*);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,149 @@
|
||||||
|
#include "global.h"
|
||||||
|
#include "entity.h"
|
||||||
|
#include "enemy.h"
|
||||||
|
#include "structures.h"
|
||||||
|
#include "link.h"
|
||||||
|
#include "functions.h"
|
||||||
|
|
||||||
|
extern void (*const gUnk_080CEB74[])(Entity*);
|
||||||
|
extern void (*const gUnk_080CEB8C[])(Entity*);
|
||||||
|
extern void (*const gUnk_080CEB98[])(Entity*);
|
||||||
|
|
||||||
|
extern u8 gUnk_080CEBA4[];
|
||||||
|
|
||||||
|
void Wisp(Entity* this) {
|
||||||
|
EnemyFunctionHandler(this, gUnk_080CEB74);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_0803354C(Entity* this) {
|
||||||
|
gUnk_080CEB8C[this->action](this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08033564(Entity* this) {
|
||||||
|
u32 bits;
|
||||||
|
Entity* ent;
|
||||||
|
|
||||||
|
bits = this->bitfield;
|
||||||
|
if ((bits & 0x80) == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ((s32)bits & 0x3f) {
|
||||||
|
case 0:
|
||||||
|
this->action = 2;
|
||||||
|
this->spriteSettings.b.draw = FALSE;
|
||||||
|
this->flags &= 0x7f;
|
||||||
|
this->field_0x7c.HALF.LO = 0x27c;
|
||||||
|
gLinkState.flags.all |= 0x4000;
|
||||||
|
gUnk_02002A40.stats.filler2[4] = this->entityType.form + 1;
|
||||||
|
gUnk_02002A40.stats.field_0x20 = 600;
|
||||||
|
if (this->entityType.form == 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
DeleteThisEntity();
|
||||||
|
break;
|
||||||
|
case 0xe:
|
||||||
|
case 0x15:
|
||||||
|
this->currentHealth = 0;
|
||||||
|
break;
|
||||||
|
case 0x14:
|
||||||
|
this->flags &= 0x7f;
|
||||||
|
this->hurtBlinkTime = 0;
|
||||||
|
this->spriteSettings.b.draw = FALSE;
|
||||||
|
ent = CreateFx(this, 2, 0);
|
||||||
|
if (ent != NULL) {
|
||||||
|
this->attachedEntity = ent;
|
||||||
|
this->actionDelay = 0xe;
|
||||||
|
CopyPosition(this, ent);
|
||||||
|
}
|
||||||
|
DeleteThisEntity();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_0803362C(Entity* this) {
|
||||||
|
if (sub_0806F520() != 0) {
|
||||||
|
gUnk_080CEB98[this->previousActionFlag](this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08033650(Entity* this) {
|
||||||
|
this->previousActionFlag = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08033658(Entity* this) {
|
||||||
|
sub_0806F4E8();
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08033660(Entity* this) {
|
||||||
|
if (sub_0806F3E4(this)) {
|
||||||
|
sub_0804A7D4(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08033674(Entity* this) {
|
||||||
|
sub_0804A720(this);
|
||||||
|
this->actionDelay = 0;
|
||||||
|
this->action = 1;
|
||||||
|
this->filler[0] = 1;
|
||||||
|
this->field_0x80.HWORD = this->x.HALF.HI;
|
||||||
|
this->field_0x82.HWORD = this->y.HALF.HI;
|
||||||
|
sub_08033744(this);
|
||||||
|
InitializeAnimation(this, this->entityType.parameter);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_080336A8(Entity* this) {
|
||||||
|
if (--this->actionDelay == 0) {
|
||||||
|
sub_08033744(this);
|
||||||
|
} else if (this->collisions != 0) {
|
||||||
|
sub_0800417E(this, this->collisions);
|
||||||
|
}
|
||||||
|
sub_080AEF88(this);
|
||||||
|
GetNextFrame(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_080336DC(Entity* this) {
|
||||||
|
switch ((u16)-- this->field_0x7c.HALF.LO) {
|
||||||
|
case 0x24:
|
||||||
|
this->x.HALF.HI = this->field_0x80.HWORD;
|
||||||
|
this->y.HALF.HI = this->field_0x82.HWORD;
|
||||||
|
break;
|
||||||
|
case 0x18:
|
||||||
|
sub_080A29BC(this);
|
||||||
|
break;
|
||||||
|
case 0xc:
|
||||||
|
this->spriteSettings.b.draw = TRUE;
|
||||||
|
break;
|
||||||
|
case 0x0:
|
||||||
|
this->action = 1;
|
||||||
|
this->flags |= 0x80;
|
||||||
|
sub_08033744(this);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08033744(Entity* this) {
|
||||||
|
u32 temp;
|
||||||
|
u32 rand = (u32)Random() % 256;
|
||||||
|
|
||||||
|
// 8 potential options
|
||||||
|
this->actionDelay = gUnk_080CEBA4[(rand & 0x70) >> 4];
|
||||||
|
|
||||||
|
// 4 potential options
|
||||||
|
temp = ((rand & 0xc) * 2);
|
||||||
|
|
||||||
|
// 75% chance to pass
|
||||||
|
if ((sub_08049FA0(this) == 0) && ((rand % 4) != 0)) {
|
||||||
|
temp = sub_08049EE4(this);
|
||||||
|
|
||||||
|
// 50% chance to pass
|
||||||
|
if ((rand & 0x80) != 0) {
|
||||||
|
temp += 0x4;
|
||||||
|
temp &= 0x18;
|
||||||
|
} else {
|
||||||
|
temp += 0x1c;
|
||||||
|
temp &= 0x18;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this->direction = temp;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
#include "global.h"
|
||||||
|
#include "entity.h"
|
||||||
|
#include "functions.h"
|
||||||
|
|
||||||
|
extern void sub_08068318(Entity*);
|
||||||
|
extern void sub_0806854C(Entity*, u32);
|
||||||
|
|
||||||
|
void ZeldaFollower(Entity *this)
|
||||||
|
{
|
||||||
|
if (this->action == 0) {
|
||||||
|
this->action++;
|
||||||
|
this->spriteSettings.b.draw = TRUE;
|
||||||
|
this->animationState = 4;
|
||||||
|
this->field_0x68.HALF.LO = 0;
|
||||||
|
this->field_0x68.HALF.HI = 0;
|
||||||
|
sub_0805E3A0(this, 2);
|
||||||
|
InitAnimationForceUpdate(this, 0);
|
||||||
|
sub_0806854C(this, 0);
|
||||||
|
}
|
||||||
|
if ((s8)this->field_0x68.HALF.LO != 0) {
|
||||||
|
sub_08068318(this);
|
||||||
|
} else {
|
||||||
|
this->spriteSettings.b.draw = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -665,7 +665,7 @@ void sub_0804BC70(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern u32 gUnk_0813AB80;
|
extern ScreenTransitionData gUnk_0813AB80;
|
||||||
|
|
||||||
void sub_0804BCDC() {
|
void sub_0804BCDC() {
|
||||||
sub_0808091C(&gUnk_0813AB80, 4);
|
sub_0808091C(&gUnk_0813AB80, 4);
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,25 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "entity.h"
|
||||||
|
|
||||||
extern void sub_0807C960();
|
extern void sub_0807C960();
|
||||||
extern u32 gUnk_0202CEB4;
|
extern u32 gUnk_0202CEB4;
|
||||||
extern u32 gUnk_02012654;
|
extern u32 gUnk_02012654;
|
||||||
|
extern u8 gUnk_08324AE4;
|
||||||
|
|
||||||
|
void sub_0807C960(void* dest, u32 offset)
|
||||||
|
{
|
||||||
|
void* temp;
|
||||||
|
|
||||||
|
if (offset != -1) {
|
||||||
|
temp = &gUnk_08324AE4 + (offset & 0x7fffffff);
|
||||||
|
if ((u32)dest >> 0x18 == 6) {
|
||||||
|
LZ77UnCompVram(temp, (void *)dest);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
LZ77UnCompWram(temp, (void *)dest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void sub_0807C998(u32* a1) {
|
void sub_0807C998(u32* a1) {
|
||||||
sub_0807C960(&gUnk_0202CEB4, a1[0]);
|
sub_0807C960(&gUnk_0202CEB4, a1[0]);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
JASC-PAL
|
||||||
|
0100
|
||||||
|
16
|
||||||
|
65 180 139
|
||||||
|
222 41 41
|
||||||
|
123 16 41
|
||||||
|
16 123 41
|
||||||
|
65 164 41
|
||||||
|
16 255 8
|
||||||
|
49 82 255
|
||||||
|
189 255 164
|
||||||
|
222 172 82
|
||||||
|
255 255 0
|
||||||
|
115 65 32
|
||||||
|
164 123 65
|
||||||
|
213 180 139
|
||||||
|
255 230 189
|
||||||
|
255 255 255
|
||||||
|
0 0 0
|
||||||
Loading…
Reference in New Issue