mirror of https://github.com/zeldaret/tmc.git
wisp.c OK
This commit is contained in:
parent
1db148cd09
commit
83e6edf470
|
@ -1994,35 +1994,4 @@ _0807C956:
|
|||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.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
|
||||
|
||||
.align 2, 0
|
|
@ -5,38 +5,6 @@
|
|||
|
||||
.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
|
||||
sub_0807CF88: @ 0x0807CF88
|
||||
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
|
||||
|
||||
|
||||
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
|
||||
sub_08068318: @ 0x08068318
|
||||
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_08052CA4(u32, u32, u32, u32);
|
||||
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_0807BB68(u32*, u32, u32);
|
||||
extern void sub_08054570(void);
|
||||
|
@ -220,4 +220,12 @@ extern void sub_0807CF68(u32);
|
|||
extern void sub_0807D20C(u32, char*, u32);
|
||||
extern u32 sub_0807CF88(u32, u8*);
|
||||
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
|
|
@ -73,7 +73,14 @@ typedef struct {
|
|||
u8 itemOnB;
|
||||
u8 filler2[10];
|
||||
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;
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -376,7 +376,7 @@ SECTIONS {
|
|||
asm/crow.o(.text);
|
||||
asm/mulldozer.o(.text);
|
||||
asm/bombarossa.o(.text);
|
||||
asm/wisp.o(.text);
|
||||
src/enemy/wisp.o(.text);
|
||||
asm/spinyBeetle.o(.text);
|
||||
asm/mazaalHead.o(.text);
|
||||
asm/mazaalMacro.o(.text);
|
||||
|
@ -581,6 +581,7 @@ SECTIONS {
|
|||
src/npc/cat.o(.text);
|
||||
asm/cat.o(.text);
|
||||
asm/mountainMinish.o(.text);
|
||||
src/npc/zeldaFollower.o(.text);
|
||||
asm/zeldaFollower.o(.text);
|
||||
src/npc/melari.o(.text);
|
||||
src/npc/bladeBrothers.o(.text);
|
||||
|
@ -665,7 +666,6 @@ SECTIONS {
|
|||
src/flags.o(.text);
|
||||
src/code_0807CC3C.o(.text);
|
||||
asm/code_0807CC3C.o(.text);
|
||||
src/code_080808D8.o(.text);
|
||||
src/code_0808091C.o(.text);
|
||||
/* objects */
|
||||
asm/itemOnGround.o(.text);
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
extern void (*const gUnk_0811E478[])(u32);
|
||||
|
||||
extern s16 gUnk_02021EE0[6];
|
||||
extern char gUnk_0811E484[];
|
||||
extern char gUnk_0811E4AC[];
|
||||
extern char gUnk_0811E4A4[];
|
||||
|
||||
void sub_0807CD9C() {
|
||||
sub_080530C8();
|
||||
|
@ -69,8 +72,6 @@ s32 sub_0807CE54(void) {
|
|||
return uVar1;
|
||||
}
|
||||
|
||||
extern char gUnk_0811E484[];
|
||||
|
||||
u32 sub_0807CE90(void)
|
||||
{
|
||||
struct_0807D1C4 *puVar1;
|
||||
|
@ -123,3 +124,23 @@ u32 sub_0807CF30(void* arg0) {
|
|||
u32 sub_0807CF3C(void* 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 "entity.h"
|
||||
#include "structures.h"
|
||||
#include "functions.h"
|
||||
#include "room.h"
|
||||
|
||||
extern void sub_0805E5A8();
|
||||
|
@ -6,16 +9,35 @@ extern void sub_0805E5A8();
|
|||
extern RoomControls gRoomControls;
|
||||
extern u32 gUnk_0200B650;
|
||||
extern u32 gUnk_02025EB0;
|
||||
extern u8 gScreenTransition[10];
|
||||
|
||||
extern void DoExitTransition(Entity*);
|
||||
extern void DoExitTransition(ScreenTransitionData*);
|
||||
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);
|
||||
gScreenTransition[9] = param_2;
|
||||
gScreenTransition.transitionType = param_2;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@ extern u32 GetNextFunction(Entity*);
|
|||
extern void sub_0802AD54(Entity*);
|
||||
extern void sub_0802B048(Entity*);
|
||||
extern void sub_0806F4E8(Entity*);
|
||||
extern void sub_0806F3E4(Entity*);
|
||||
|
||||
extern void (*const gUnk_080012C8[])(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() {
|
||||
sub_0808091C(&gUnk_0813AB80, 4);
|
||||
|
|
|
@ -1,12 +1,29 @@
|
|||
#include "global.h"
|
||||
#include "entity.h"
|
||||
|
||||
extern void sub_0807C960();
|
||||
extern u32 gUnk_0202CEB4;
|
||||
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) {
|
||||
sub_0807C960(&gUnk_0202CEB4, a1[0]);
|
||||
sub_0807C960(&gUnk_0202CEB4 - 0x800, a1[1]);
|
||||
sub_0807C960(&gUnk_02012654, a1[2]);
|
||||
sub_0807C960(&gUnk_02012654 - 0x800, a1[3]);
|
||||
}
|
||||
}
|
|
@ -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